Este projeto realiza uma análise geoespacial para identificação de áreas potencialmente planas no município de Lorena/SP utilizando:
- Modelo Digital de Elevação (DEM)
- Métodos de análise de relevo
- Máscaras de uso e ocupação do solo
- Exportação para KML e GeoTIFF
O objetivo é detectar regiões com baixa variação altimétrica e baixa inclinação, removendo áreas ambientais e áreas já ocupadas.
PO-247/
│
├── analise_geo.R
├── README.md
├── Apresentação de Técnica.pptx
│
├── Mapas/
│ │
│ ├── Alos Palsar/
│ │ ├── AP_27627_PLR_F6730_RT2.zip
│ │ └── AP_27627_PLR_F6730_RT2/
│ │ ├── AP_27627_PLR_F6730_RT2.dem.tif
│ │ └── AP_27627_PLR_F6730_RT2.kmz
│ │
│ ├── IBGE_Malha_SP_Municipios_2025/
│ │ ├── SP_Municipios_2025.shp
│ │ ├── SP_Municipios_2025.dbf
│ │ ├── SP_Municipios_2025.prj
│ │ ├── SP_Municipios_2025.shx
│ │ └── ...
│ │
│ └── Lorena/
│ ├── Mapa_uso_ocupação_Lorena.kml
│ └── Mapa de Uso e Ocupação.pdf
│
└── resultados/
├── cidade_maxmin.tif
├── maxmin.kml
└── slope.kml
O projeto utiliza:
sfterra
Instalação:
install.packages(c(
"sf",
"terra"
))Fonte:
- ALOS PALSAR DEM
Arquivo utilizado:
AP_27627_PLR_F6730_RT2.dem.tif
Características:
- Raster de altitude
- Resolução aproximada de 12,5 metros
- Dados em metros de elevação
Fonte:
- IBGE — Malha Municipal 2025
Arquivo:
SP_Municipios_2025.shp
Arquivo:
Mapa_uso_ocupação_Lorena.kml
Utilizado para:
- remover áreas ambientais
- remover áreas ocupadas
- restringir regiões analisáveis
O projeto utiliza:
- SIRGAS 2000
- WGS84
- EPSG:31983
- SIRGAS 2000 / UTM Zona 23S
A projeção UTM é utilizada porque:
- trabalha em metros
- facilita cálculo de área
- melhora cálculo de slope
- preserva distâncias locais
São carregados:
- município
- DEM
- mapa ambiental
Todos os dados são reprojetados para:
EPSG:31983
O DEM é recortado para o município de Lorena.
Etapas:
mask()crop()
Para cada pixel:
- Analisa vizinhança 3x3
- Calcula:
max(altitude) - min(altitude)
Se:
diferença <= 1 metro
O pixel é considerado plano.
Considere:
N(i,j)
como a vizinhança do pixel.
A condição é:
max(N(i,j)) - min(N(i,j)) <= 1
cidade.maxmin <- focal(
cidade.raster.cropped,
w = matrix(1, 3, 3),
fun = function(x, ...) {
if(any(is.na(x))) {
return(NA)
}
if((max(x) - min(x)) <= 1) {
return(1)
} else {
return(0)
}
}
)Calcula a inclinação do terreno usando derivadas espaciais.
O slope é calculado por:
slope = arctan(
sqrt(
(dz/dx)^2 +
(dz/dy)^2
)
)
Onde:
dz/dx= variação leste-oestedz/dy= variação norte-sul
O projeto utiliza:
slope <= 1°
slope <- terrain(
cidade.raster.cropped,
v = "slope",
unit = "degrees"
)As áreas do KML são removidas usando:
mask(
raster,
uso.vect,
inverse = TRUE
)Os rasters binários são convertidos para polígonos:
as.polygons()A área é calculada em metros quadrados:
expanse(
poligono,
unit = "m"
)São removidos polígonos menores que:
1000 m²
Arquivos:
maxmin.kmlslope.kml
Compatíveis com:
- Google Earth
- QGIS
- ArcGIS
Arquivo:
cidade_maxmin.tif
Preserva:
- CRS
- resolução
- pixels
- georreferenciamento
O projeto gera:
- Áreas potencialmente planas
- Comparação entre métodos
- Exclusão de áreas ambientais
- Arquivos para visualização geográfica
Exemplo:
- LiDAR
- Drone
- Copernicus DEM
Utilizar bandas:
- HH
- HV
- VH
- VV
Para detectar:
- áreas urbanas
- vegetação
- corpos d'água
Combinar:
- slope
- altitude
- distância da rede
- uso do solo
- acesso viário
Aplicar:
- DBSCAN
- Connected Components
- Segmentação raster
Jader K M de Campos
Projeto desenvolvido para estudos geoespaciais aplicados à engenharia elétrica e planejamento territorial.