-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy path03_ndvi_tessellation.R
63 lines (49 loc) · 2.07 KB
/
03_ndvi_tessellation.R
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
setwd("/home/marc/Documents/imatges_bcn")
library(terra)
library(stars)
library(tidyverse)
library(sf)
library(tmap)
# read bcn shape
bcn <- st_read("./0301100100_UNITATS_ADM_POLIGONS.json")
bcn <- st_transform(bcn, "EPSG:25831")
barris <- bcn |>
filter(TIPUS_UA == "BARRI")
# read raster
bcn_normalitzat <- stars::read_stars("./raster_normalitzat.tiff")
# crop raster
bcn_normalitzat_crop <- st_crop(bcn_normalitzat, barris)
# rescale
bcn_normalitzat_crop_nvdi <- st_apply(bcn_normalitzat_crop, 1, \(x) ((x-100)/100))
tmap::tm_shape(terra::rast(bcn_normalitzat_crop_nvdi)[[1]]) +
tm_raster(palette = "RdYlGn",
breaks = c(-1,0,0.2,0.4,0.6,1),
labels = c("Aigua, cobertes artificials, etc.",
"Sòl nu i/o vegetació morta",
"Vegetació dispersa i/o poc vigorosa",
"Vegetació abundant i/o vigorosa",
"Vegetació molt densa i molt vigorosa"),
title = "Índex de Vegetació de Diferència Normalitzada") +
tm_shape(barris) +
tm_borders()
# Read tessellation w/ and w/o differences
tes_buildings <- st_read("tessellation_limit.geojson")
tes_nobuildings <- st_read("tessellation_nobuilding_limit.geojson")
# get average nvdi per tessella outside buildings
mitjana_per_tessella <- aggregate(bcn_normalitzat_crop_nvdi, tes_nobuildings, FUN = mean) |>
st_as_sf() |>
rename("nvdi" = "raster_normalitzat.tiff.V1") |>
select("nvdi", "geometry")
# join values to full map
tes_buildings$nvdi <- mitjana_per_tessella$nvdi
tm_shape(tes_buildings) +
tm_polygons(col = "nvdi",
palette = "RdYlGn",
breaks = c(-1, 0, 0.2, 0.4, 0.6, 1),
labels = c("Aigua, cobertes artificials, etc.",
"Sòl nu i/o vegetació morta",
"Vegetació dispersa i/o poc vigorosa",
"Vegetació abundant i/o vigorosa",
"Vegetació molt densa i molt vigorosa"),
title = "Índex de Vegetació de Diferència Normalitzada",
lwd = 0.1)