Metodologia: Carregamento das informações do OpenStreetMap

Por André Baceti, da Murabei

 

A map is not the territory it represents, but, if correct, it has a similar structure to the territory, which accounts for its usefulness.

Alfred Korzybski

OPENSTREETMAP (OSM)

OpenStreetMap é uma plataforma colaborativa de mapas onde diversos usuários são responsáveis por atualizar as informações de ruas, estações de metros, café, caixas eletrônicos dentre varias outras informações! Os dados são open-source e podem ser utilizados para qualquer aplicação (comercial ou não) desde que a fonte seja citada… bom fazendo nossa parte:

O estudo atual utiliza dados disponíveis através do OpenStreetMaps link para o copyright, aqui.

AQUISIÇÃO DOS DADOS DO OSM

Bom fizemos nossa parte! A primeira coisa que temos que fazer é baixar os dados do OpenStreetMaps. Por ser open-source, existe disponível literalmente dumps (arquivos que com os quais é possível replicar a base) das bases que compõe a plataforma e eles podem ser baixados através do site. Basicamente é possível baixar o mundo inteiro que são os arquivos chamados de planet.osm, mas também algumas plataformas parceiras disponibilizam extratos de países individuais, como o Brasil. Já que o estudo inicialmente será focado no Brasil vamos baixar os dados apenas para este, disponível no link.

O arquivo é grande, por isso, pode demorar um pouco para baixar. Basicamente esse arquivo contem todas as ruas com suas características (pavimentação, limite de velocidade, sentido) e diversos pontos de interesse o que justifica o tamanho do arquivo. Assim que terminar de baixar devemos subir o conteúdo do arquivo em um banco Postgres com extensão Postgis para poder trabalhar mais facilmente com os dados

SUBINDO UM POSTGRES COM EXTENSÃO POSTGIS ATRAVÉS DO DOCKER-COMPOSE

Para criar um servidor local de Postgres com PostGis, vamos utilizar o docker-compose e mapear um disco para que a informação guardada não seja perdida caso o container seja excluído (se vc não tem a menor ideia do que eu estou falando… vale a pena dar uma olhada em Docker, é algo fantástico!). Primeiramente vamos criar um volume para persistir os dados:

docker volume create --name covid_radar_postgres --opt type=none --opt device=[caminho para a pasta]--opt o=bind

Abaixo segue a configuração do docker-compose.yml

version: "3.3"

services:
  db:
    image: kartoza/postgis:12.0
    ports:
      - 9999:5432
    environment:
      - POSTGRES_USER=projeto
      - POSTGRES_PASSWORD=projeto1234
      - POSTGRES_DBNAME=projeto
    volumes:
      - covid_radar_postgres:/var/lib/postgresql/

volumes:
  covid_radar_postgres:
  external: true

Usando o docker-compose com o comando docker-compose up criamos um banco local, servindo na porta 9999 o postgres.

CARREGANDO OS DADOS DO OSM NO POSTGIS

Para carregar os dados do OSM, no Linux pelo menos, é necessário instalar osm2pgsql. Após a instalação e com o Postgres rodando através do docker-compose pode-se carregar os dados usando o comando abaixo.

osm2pgsql --proj 4326 --slim --username projeto -W --database projeto -H 0.0.0.0 --port 9999 -d projeto dados_brutos/osm/brazil-latest.osm.pbf

No comando acima existe uma peculiaridade muito importante e que é o inferno na vida de qualquer pessoa que for trabalhar com dados georreferenciados… as projeções. E sobre isso vale a pena conversamos um pouco.

SOBRE AS PROJEÇÕES E AS PEQUENAS MENTIRAS QUE NOS CONTAM OS MAPAS

Como vimos anteriormente, a terra é redonda (ou quase redonda), e coisas redondas não ficam planas. Isso significa que não é possível ver o globo em uma cartolina na frente da sala de aula… mas todos nós um dia vimos um mapa na parede, então que diabos está acontecendo? Basicamente o que vimos nas nossas aulas de geografia, Google Maps, Wase, etc… é o que chamamos de projeções cartográficas.

Todos nós já vimos um mapa do mundo em uma parede… ele não é verdade

A projeção permite que algo esférico, possa ser representado de forma plana, mas com um custo: a projeção distorce o espaço… Mas o que significa isso? Podemos ver o mapa abaixo, o mais tradicional das nossas aulas de geografia/Google Maps:

Projeção de Mercator. Groenlândia parece ser maior que o Brasil e Canadá maior que a África

Basicamente o que a projeção de Mercator faz é tornar os quadrantes entre as latitudes e longitudes quadrados iguais no mapa quando este é colocado de forma plana. Isso faz com que quanto mais próximos do polos, maior parece a área, sendo que esta na verdade isto não é real. Encontrei um site bem legal que mostra como são essas distorções, abaixo podemos ver um comparativo do tamanho do Canadá vs. a África  e da Groenlândia vs. Brasil.

O Canadá parece ser muito maior que o Brasil ou mesmo muito maior que a própria África!

 

Mas na realidade, sua área corresponde à mais ou menos metade da África.

 

A Groenlândia é o país que mais sofre distorção, parecendo muito maior que o Brasil…

 

 A Groenlândia é na verdade algo como 1/3 do Brasil

Bom agora que entendemos que os mapas planos não são reais, posso comentar que não existe só um tipo de projeção. Pensando no caso da Groenlândia, que utilidade tem usar a projeção de Mercator para um mapa do país? Basicamente nenhuma, a projeção de Mercator distorce tanto a Groenlândia que usando ele fica difícil ter uma ideia das distâncias entre as cidades do país . O que pode ser feito é gerar uma projeção centrada na Groenlândia (a de Mercator é centrada no equador por exemplo), o que daria uma aproximação visual das distâncias muito mais útil. É possível verificar algumas possíveis projeções nesse site.

SOBRE AS PROJEÇÕES E O INFERNOS DOS DATAGIS

Voltando ao carregamento das bases do OSM, o parâmetro –proj 4326 diz qual projeção será usada para salvar os dados no PostGis, o número 4326 corresponde à projeção WGS-84 no EPSG (EPSG Geodetic Parameter Dataset) um repositório público de sistemas de projeção. Idealmente, fica mais fácil se todas as bases utilizadas em um projeto estejam no mesmo sistema de projeção, mas o que pode acontecer se não estiverem? Muitas coisas podem acontecer, mas o clássico é a cidade de São Paulo ir parar no meio do Atlântico quando carregar os dados no mapa…

Acho que é isso, no final dessa etapa temos um banco de dados com todos os dados do OSM carregados em um PostGis. Usamos a projeção EPSG-4326 para carregar os dados, que deve facilitar nossa vida quando formos cruzar os pontos de interesse disponíveis do OSM com a grade de setores censitários do IBGE.

Compartilhe:

Compartilhar no facebook
Facebook
Compartilhar no twitter
Twitter
Compartilhar no pinterest
Pinterest
Compartilhar no linkedin
LinkedIn
Leia também

Relacionados

Iniciativas

Conheça nossas frentes

Conectando quem precisa de ajuda com os que podem ajudar. De um lado estão cadastradas as necessidades do sistema de saúde e apoio aos vulneráveis. Do outro, as empresas que podem ajudar com os seus recursos.

Informações da pandemia em tempo real, que permitem acompanhar e simular o avanço da Covid-19 por regiões, cidades e até bairros. Utiliza dados de mobilidade e propagação fornecidos por fontes oficiais.

Um espaço onde você também pode compartilhar informações para ajudar a mapear e conter o avanço da Covid-19 no país.

O Covid Radar é o resultado da coalizão de diversas organizações que estâo contribuindo para minimizar os impactos da COVID-19 no país. Juntos estamos desenvolvendo soluções para apoiar instituições de saúde, empresas públicas e privadas, mídia e sociedade.