Friday, October 11, 2024

Extração de coordenadas de documentos oficiais para adicionar dados ao OpenStreetMap

Alguns documentos oficiais incluem as coordenadas dos pontos que definem os limites da área sendo demarcada. É o caso de muitos decretos de criação de áreas de proteção ambiental. Nesta página, explicarei como extraí os pontos do decreto de criação da Unidade de Conservação Refúgio de Vida Silvestre Pedra da Andorinha, produzi um mapa no formato shapefile e adicionei os dados ao OpenStreetMap.

O primeiro passo foi extrair os pontos do decreto para um arquivo de texto simples. Para isso, usei pdftotext para converter o PDF em texto simples e o editor Neovim para rapidamente converter o texto em TSV (valores separados por caractere de tabulação):

ponto   lat lon
PT01    9551732.23  388815.68
PT02    9551052.78  390156.19
PT03    9547911.34  387749.10
PT04    9547732.38  387370.57
PT05    9548043.16  386975.17
PT06    9548244.76  386713.29
PT07    9548837.69  386640.01
PT01    9551732.23  388815.68

Os limites da Pedra da Andorinha são definidos por apenas sete pontos e, portanto, o arquivo TSV poderia ser facilmente produzido sem uso do pdftotext ou do Neovim. Mas, em alguns casos, os limites da área são definidos por milhares de pontos, tornando imprescindível o uso de expressões regulares para limpar o texto.

As coordenadas no decreto estão no sistema SIRGAS 2000 e o Estado do Ceará está completamente inserido no fuso 24. Assim, com o banco de dados pronto, o próximo passo foi a conversão das coordenadas em um mapa. Para isso, utilizei o seguinte código R para a criação do arquivo SHP (agradeço a Matheus Gomes, Narcélio de Sá e Raquel Dezidério Souto pela ajuda para encontrar a string de projeção correta):

library("sp")
library("sf")

p <- read.delim("andorinha.tsv")
p <- Polygon(p[, c("lon", "lat")], hole = FALSE)
x <- Polygons(list(p), 1)
sp <- SpatialPolygons(list(x))
proj4string(sp) <- "+proj=utm +zone=24 +south +datum=WGS84 +units=m +no_defs +ellps=WGS84 +towgs84=0,0,0"
st_write(st_as_sf(sp), "andorinha_utm.shp")

Por fim, bastou abrir o arquivo SHP no JOSM, baixar os dados da área do mapa ou uma imagem de satélite para conferir se o polígono estava no lugar certo e com as dimensões corretas, adicionar as etiquetas necessárias (veja exemplos já existentes no OpenStreetMap) e subir os dados para o servidor do OpenStreetMap. Também pode ser usado o comando do Neste caso, o resultado foi este: Pedra da Andorinha.

Extração de coordenadas de documentos oficiais para adicionar dados ao OpenStreetMap

Alguns documentos oficiais incluem as coordenadas dos pontos que definem os limites da área sendo demarcada. É o caso de muitos decretos de ...