Métrica de paisagem: quantidade de habitat usando vetores
Cálculo da quantidade de hatbiat no R usando vetores
By Maurício Vancine in Blog
February 18, 2024
Contextualização
Download dos dados
# data
download.file("https://geo.fbds.org.br/SP/RIO_CLARO/USO/SP_3543907_USO.dbf", "/home/mude/Downloads/SP_3543907_USO.dbf", mode = "wb")
download.file("https://geo.fbds.org.br/SP/RIO_CLARO/USO/SP_3543907_USO.prj", "/home/mude/Downloads/SP_3543907_USO.prj", mode = "wb")
download.file("https://geo.fbds.org.br/SP/RIO_CLARO/USO/SP_3543907_USO.shp", "/home/mude/Downloads/SP_3543907_USO.shp", mode = "wb")
download.file("https://geo.fbds.org.br/SP/RIO_CLARO/USO/SP_3543907_USO.shx", "/home/mude/Downloads/SP_3543907_USO.shx", mode = "wb")
Importar dados
rc <- sf::st_read("/home/mude/Downloads/SP_3543907_USO.shp") %>%
dplyr::filter(CLASSE_USO == "formação florestal")
tm_shape(rc) +
tm_fill(fill = "forestgreen")
Amostragem dos pontos e buffers
# buffers
set.seed(42)
po <- sf::st_sample(x = rc, size = 10) %>%
sf::st_buffer(1e3) %>%
sf::st_as_sf() %>%
dplyr::mutate(area_ha = sf::st_area(.)/1e4,
porcentagem = NA)
po
tm_shape(rc) +
tm_fill(fill = "forestgreen") +
tm_shape(po) +
tm_borders(col = "red")
Quantidade de habitat
# habitat amount
rc_po <- NULL
for(i in 1:nrow(po)){
po_i <- po[i,]
rc_po_i <- sf::st_as_sf(sf::st_union(sf::st_intersection(rc, po_i)))
rc_po <- rbind(rc_po, rc_po_i)
rc_po_area <- sf::st_area(rc_po_i)/1e4
po[i,]$porcentagem <- round(rc_po_area/po[i, ]$area_ha*100, 2)
}
po
map_habitat_amount <- tm_shape(rc) +
tm_fill(fill = "gray") +
tm_shape(rc_po) +
tm_fill(fill = "forestgreen") +
tm_shape(po) +
tm_borders(col = "red") +
tm_text(text = "porcentagem")
map_habitat_amount