Pt:Importação de dados do BHMap

From OpenStreetMap Wiki
Jump to navigation Jump to search

Apresentação

A Prefeitura de Belo Horizonte possui um portal de dados georreferenciados, que é mantido pela Prodabel. O portal utiliza a projeção EPSG 31983, que aparenta ser o padrão utilizado em outros dados georreferenciados da Prefeitura. O portal também está sob a licença ODbL[1], o que facilitará o processo de importação dos dados.

O portal disponibiliza diversas camadas que poderiam ser agregadas ao OpenStreetMap, e que podem ser exportadas como CSV, GeoJSON ou Shapefile. Uma delas possui a geometria da maioria (senão todos) dos prédios existentes em Belo Horizonte, totalizando, aproximadamente, 700 mil edificações. A importação destes prédios seria uma ótima adição ao OSM.

Metodologia

Usando outras importações de dados brasileiros como base, foi proposto a seguinte metodologia:

Verificação do uso da tag building=yes nos prédios existentes

Algumas edificações mapeadas atualmente no OSM estão fazendo o uso indevido da tag building, o que pode dificultar o processo de importação de geometrias. Um dos problemas que pode acontecer é a exclusão de prédios válidos oriundos da camada do BHMap. No entanto, este problema é fácil de verificar e corrigir, para isto basta usar uma query do Overpass e o QGIS para ordenar o resultado do Overpass por área.

Abaixo segue a query do Overpass para obter todos os prédios mapeados atualmente em BH:

try it yourself in overpass-turbo
[out:json][timeout:225];
{{geocodeArea:Belo Horizonte, MG}}->.searchArea;
(
  way["building"](area.searchArea);
  relation["building"](area.searchArea);
);
out body;
>;
out skel qt;


Para fazer a verificação do uso da tag no QGIS, é necessário executar a query acima e exportá-la como GeoJSON. Segue abaixo um GIF de como realizar o procedimento para calcular a área dos prédios mapeados.

Passo a passo para calcular a área dos prédios mapeados, utilizando o QGIS.

Depois de calcular a área dos prédios, recomenda-se ordená-los por área, e verificar um por um, para saber se foi a tag building foi utilizada para demarcar o lote, e não a estrutura predial em si. A camada de satélite do Bing pode ser útil para descobrir se o uso da tag está certo.

Preparação da camada de edificações do BHMap

Verificação do alinhamento da camada com os dados existentes

Os dados oriundos do BHMap aparentam estar alinhados com a camada de imagem de satélite do Bing. A Prefeitura disponibiliza, através de uma camada específica do portal, informações sobre marcos geodésicos e suas coordenadas, além de descrições sobre a localização física da estação, podendo ser de auxílio para o alinhamento das camadas oriundas do portal da prefeitura, simliar ao método utilizado na importação de prédios em Porto Alegre[2]. A rede geodésica do IBGE não fornece estações visíveis para auxiliar no alinhamento da camada do BHMap com os dados do OSM.

Camada do BHMap sobreposta na camada do Bing no JOSM.



Marcos geodésicos

A prefeitura possui 50 marcos geodésicos instalados na cidade. Através do portal, é possível obter a monografia de cada estação geodésica. Geralmente, são compostos por uma base de concreto com uma placa de bronze contendo o número do vértice (marco) e o inscrito "PMBH/PRODABEL, PROTEGIDO POR LEI - ESTEIO S.A. - CURITIBA", além da data de sua instalação. Com o mapa, é possível ver que estas estações foram visitadas em 2019, o que significa que ainda estão ativas. Através de uma inspeção visual realizada in loco, foi possível confirmar a existência dos marcos geodésicos. Logo, o primeiro passo seria importar estes marcos para o OpenStreetMap com o intuito de auxiliar no alinhamento das camadas do BHMap com as camadas existentes do OSM.

Foto incluída na monografia do marco M-138
Estrutura física do marco geodésico M-123

A importação dos marcos geodésicos foi realizada no dia 1 de dezembro de 2019: https://www.openstreetmap.org/changeset/77789007



Adição de tags do OSM para detalhamento da geometria predial

A camada do BHMap possui propriedades que não são utilizadas no OSM. Será necessário utilizar um script para adicionar a tag building em cada geometria.

O BHMap também fornece camadas que possam auxiliar no detalhamento dos prédios. Por exemplo, há uma camada que lista os comércios existentes (sob o nome de Atividades Econômicas), outra que lista locais de entretenimento, UPAs, entre outros.

Para agilizar o processo e não realizar importações subsequentes adicionando detalhes aos edifícios, essa etapa será realizada após o preparo das camadas de endereços e edificações, uma vez que os dados das diversas camadas poderá auxilair na correção das geometrias prediais. Por exemplo, juntando a camada de edifícios com a de escolas municipais, além de conter um prédio, o lote da escola municipal ganharia uma etiqueta de amenity=school.

Separação por quadras e regional

Como o JOSM possui um limite de objetos a ser enviado para o servidor do OSM (e para facilitar o trabalho do projeto ao todo), após conversa com diversos membros da comunidade, a melhor opção é dividir os dados a serem importados pelas quadras conforme o Cadastro Técnico Municipal (CTM). O BHMap já nos fornece esta separação em quadras, basta apenas obter os edifícios pertencentes a cada quadra. Além dessa separação por quadras, também seria realizada uma separação por regionais, priorizando aquela que há o menor número de prédios mapeados no OpenStreetMap para reduzir o número de casos de dados duplicados e eventuais conflitos.

É possível realizar esta separação no QGIS, separando primeiro as regionais obtidas na camada Regional do BHMap, separando as quadras de Belo Horizonte por regional, e finalmente separando os edifícios a serem importados por quadras.

Verificação e mesclagem da camada do BHMap com os dados existentes

Uma etapa mais ou menos simples, na qual seria verificada a camada da etapa anterior para encontrar possíveis conflitos. Feito isso, a camada seria mesclada com a camada do OSM já existente, mantendo os prédios já mapeados, os quais poderão ser editados e corrigidos conforme os dados do BHMap.

Com base no que foi percebido pelo usuário Sérgio em sua importação de numeração predial em Porto Alegre, e posteriormente observado pelo naoliv, antes de enviar os dados ao OSM, deve-se realizar a validação do JOSM ao menos duas vezes, conforme relatado aqui.

Validação e realização da importação

Nesta etapa, conforme descrito acima, seria realizada a dupla-verificação com o validador do JOSM, além da verificação manual para preservar o que já está mapeado no OpenStreetMap, realizando alterações com base nos dados do portal da prefeitura e evitar conflitos existentes.

A camada de quadras do BHMap possui um identificador para cada quadra, então seguiria-se a ordem crescente do código da quadra conforme a regional selecionada para importação, visto que o código das quadras não segue nenhum padrão que possibilita descobrir qual regional a quadra pertence.

Informações adicionais

Propriedades das camadas

Cada camada do portal da prefeitura possui diferentes propriedades que podem ser úteis na etapa de detalhar as edificações importadas. Algumas camadas que podem ser usadas para descrever a tag amenity já possuem informações como logradouro (endereço), número, telefone, bairro e região.

Edificações

A geometria de cada prédio possui uma estrutura, em GeoJSON, similar ao código abaixo. Note que o campo coordinates foi truncado para reduzir o tamanho desta página. Como é possível perceber, cada prédio é definido como uma geometria do tipo MultiPolygon.[3]

{ 
    "type": "Feature", 
    "properties": { 
        "AREA": 90.33, 
        "COTA_MAX_M": 1056.66, 
        "COTA_MAX_0": 1053.15, 
        "COTA_MIN_M": 1055.49, 
        "COTA_MIN_0": 1049.09, 
        "DESVIO_PAD": 0.39, 
        "DESVIO_PA0": 1.11, 
        "ID_EDIF": 2461405.0, 
        "ID_LOTE_CT": 234848.0, 
        "MEDIA_MDE": 1056.31, 
        "MEDIA_MDT": 1050.98, 
        "MODA_MDE": 1056.0, 
        "MODA_MDT": 1052.0 
    }, 
    "geometry": { 
        "type": "MultiPolygon", 
        "coordinates": [...] 
    } 
},

Comentário do autor: talvez poderíamos incluir o id do lote e do edifício usando as tags bhmap:id_edif e bhmap:id_lote_ct.

Endereçamento

Nesta camada, os endereços são representados por um ponto apenas, sendo que é possível ter mais de um endereço para cada geometria predial. Além disso, não há relação direta com a camada das geometrias, o que dificulta a mesclagem desta camada com a anterior.[4]

{ 
    "type": "Feature", 
    "properties": { 
        "IDEND": "30057700129", 
        "ID_EDC": 875203.0, 
        "STATUS": null, 
        "IND_ATIVO": "Sim", 
        "ID_LOGRADO": 300577.0, 
        "SIGLA_TIPO": "RUA", 
        "NOME_LOGRA": "DEPUTADO FABIO VASCONCELOS", 
        "NUMERO_IMO": 129.0, 
        "LETRA_IMOV": null, 
        "ID_BAIRRO_": 18.0, 
        "NUM_BAIRRO": "0623", 
        "NOME_BAIRR": "Buritis", 
        "ID_BAIRRO0": 212.0, 
        "NUM_BAIRR0": 171.0, 
        "TIPO_BAIRR": "Bairro", 
        "NOME_BAIR0": "dos Buritis", 
        "ID_REGIONA": 7.0, 
        "NOME_REGIO": "OESTE", 
        "CEP": 30575831.0, 
        "LESTE": "607100,373528842", 
        "NORTE": "7791197,40534679" 
    }, 
    "geometry": { 
        "type": "Point", 
        "coordinates": [ 
            -4895426.505212712101638, -2269813.723745346069336 
        ] 
    } 
},

Conforme discutido com algumas pessoas (tanto da comunidade brasileira quanto da internacional), uma solução para contornar o problema de mesclagem desta camada com a de geometria é importar os endereços como pontos, apenas passando as informações para o formato de tags que o OSM utiliza.

Atividades Econômicas

Cada atividade econômica é representada por um ponto, podendo existir diversas atividades em um mesmo ponto. Fornece também as CNAEs (Classificação Nacional de Atividades Econômicas), além do nome e tipo de unidade comercial.[5]

{
    "type":"Feature",
    "id":"ATIVIDADE_ECONOMICA.343332",
    "geometry":{
        "type":"Point",
        "coordinates":[
            611100.68821799,7796578.90995713
        ]
    },
    "geometry_name":"GEOMETRIA",
    "properties":{
        "ID_ATVECON":343332,
        "CNAE_PRINCIPAL":"4781400",
        "DESCRICAO_CNAE":"COMERCIO VAREJISTA DE ARTIGOS DO VESTUARIO E COMPLEMENTOS",
        "CNAE_SECUNDARIAS":null,
        "NATUREZA_JURIDICA":"SOCIEDADE EMPRESÁRIA LIMITADA",
        "PORTE_EMPRESA":"MICROEMPRESA - ME",
        "AREA_UTILIZADA":"80",
        "IND_SIMPLES":"S",
        "IND_MEI":"S",
        "TIPO_UNIDADE":"UNIDADE PRODUTIVA",
        "FORMA_ATUACAO":"ESTABELECIMENTO FIXO",
        "DESC_LOGRADOURO":"RUA",
        "NOME_LOGRADOURO":"ESPIRITO SANTO",
        "NUMERO_IMOVEL":"1063",
        "COMPLEMENTO":null,
        "NOME_BAIRRO":"CENTRO",
        "NOME":"MUNDO INTIMO LTDA",
        "NOME_FANTASIA":null,
        "CNPJ":"...",
        "DATA_INICIO_ATIVIDADE":"04/10/1999"
    }
}


Densidade de edificações subdividido por regional

Utilizando o Overpass, é possível ter noção da distribuição dos prédios existentes no OSM, separado por regional. Abaixo segue uma tabela com a quantidade de prédios existentes dividido por regional, juntamente com a quantidade total, e, mais abaixo, a query do Overpass para obter os prédios mapeados atualmente em cada regional.

Note que, devido à geometria irregular das regionais, nem todos os prédios mapeados pela prefeitura foram incluídos na contagem (que foi realizada no QGIS), o que deixa, aproximadamente, 4 mil prédios fora do total de 741.032 prédios disponíveis na camada do BHMap.

Regional Quantidade (OSM) Quantidade (BHMap)
Barreiro 100 98723
Centro-Sul 2714 57443
Leste 376 73403
Nordeste 307 92055
Noroeste 4930 90461
Norte 37 72825
Oeste 1311 82007
Pampulha 1229 83157
Venda Nova 51 88289
Total 11055 738363

--Aoalmeida (talk) 00:14, 7 December 2019 (UTC)

Regional Barreiro

try it yourself in overpass-turbo
[out:json][timeout:225];
{{geocodeArea:Barreiro, Belo Horizonte, MG}}->.searchArea;
(
  way["building"](area.searchArea);
  relation["building"](area.searchArea);
);
out body;
>;
out skel qt;

Regional Centro-Sul

try it yourself in overpass-turbo
[out:json][timeout:225];
{{geocodeArea:Regional Centro-Sul, Belo Horizonte, MG}}->.searchArea;
(
  way["building"](area.searchArea);
  relation["building"](area.searchArea);
);
out body;
>;
out skel qt;

Regional Leste

try it yourself in overpass-turbo
[out:json][timeout:225];
{{geocodeArea:Regional Leste, Belo Horizonte, MG}}->.searchArea;
(
  way["building"](area.searchArea);
  relation["building"](area.searchArea);
);
out body;
>;
out skel qt;

Regional Nordeste

try it yourself in overpass-turbo
[out:json][timeout:225];
{{geocodeArea:Regional Nordeste, Belo Horizonte, MG}}->.searchArea;
(
  way["building"](area.searchArea);
  relation["building"](area.searchArea);
);
out body;
>;
out skel qt;

Regional Noroeste

try it yourself in overpass-turbo
[out:json][timeout:225];
{{geocodeArea:Regional Noroeste, Belo Horizonte, MG}}->.searchArea;
(
  way["building"](area.searchArea);
  relation["building"](area.searchArea);
);
out body;
>;
out skel qt;

Regional Norte

try it yourself in overpass-turbo
[out:json][timeout:225];
{{geocodeArea:Regional Norte, Belo Horizonte, MG}}->.searchArea;
(
  way["building"](area.searchArea);
  relation["building"](area.searchArea);
);
out body;
>;
out skel qt;

Regional Oeste

try it yourself in overpass-turbo
[out:json][timeout:225];
{{geocodeArea:Regional Oeste, Belo Horizonte, MG}}->.searchArea;
(
  way["building"](area.searchArea);
  relation["building"](area.searchArea);
);
out body;
>;
out skel qt;

Regional Pampulha

try it yourself in overpass-turbo
[out:json][timeout:225];
{{geocodeArea:Pampulha, Belo Horizonte, MG}}->.searchArea;
(
  way["building"](area.searchArea);
  relation["building"](area.searchArea);
);
out body;
>;
out skel qt;

Regional Venda Nova

try it yourself in overpass-turbo
[out:json][timeout:225];
{{geocodeArea:Venda Nova, Belo Horizonte, MG}}->.searchArea;
(
  way["building"](area.searchArea);
  relation["building"](area.searchArea);
);
out body;
>;
out skel qt;

Mapeamento das propriedades das camadas para tags do OSM

Como foi mencionado anteriormente, as camadas que serão usadas para detalhar o "uso" de um prédio possuem diferentes propriedades, podendo até mesmo ter propriedades em comum com outras camadas. Entretanto, estes elementos não são utilizados pelo OSM, então temos que convertê-las para tags que o OSM possa utilizar, para enriquecer o mapa.

Locais de Entretenimento[6]

Categoria do BHMap Tag principal Tags adicionais
Arquivo Público amenity=archive -
Biblioteca amenity=library -
Centro Cultural amenity=community_centre community_centre=cultural_centre
Centro de Referência amenity=community_centre community_centre=cultural_centre
Escola Livre de Artes amenity=arts_centre -
Museu tourism=museum museum_type=
Patrimônio Cultural (diretoria) government=culture -
Teatro amenity=theatre theatre:type=, theatre:genre=

Assistência Social

Categoria do BHMap Tag principal Tags adicionais
Centro de Referência de Assistência Social (CRAS) amenity=social_facility social_facility=outreach
Centro de Referência Especializado de Assistência Social (CREAS) amenity=social_facility social_facility=outreach
Centro de Referência em Área de Risco (CREAR) amenity=social_facility -

Saúde

Categoria do BHMap Tag principal Tags adicionais
Centro de Saúde amenity=clinic healthcare=center, healthcare:speciality=community
Hospital amenity=hospital emergency=*
Farmácia Distrital amenity=pharmacy healthcare=pharmacy, operator=Prefeitura de Belo Horizonte
Centro de Especialidades Odontológicas amenity=dentist -
Centro de Esterilização amenity=veterinary -
Centro de Referência em Saúde Mental amenity=social_facility social_facility:for=mental_health
Centro de Especialidades Médicas amenity=clinic healthcare=center, healthcare:speciality=community
Centro de Referência em Saúde do Trabalhador amenity=clinic healthcare=center
Centro Municipal de Oftalmologia amenity=doctors -
Laboratório healthcare=laboratory healthcare:speciality=*
Centro de Reabilitação healthcare=rehabilitation -
Centro de Convivência amenity=social_facility social_facility:nursing_home, social_facility:for=mental
Serviço de Residência Terapêutica amenity=social_facility social_facility:nursing_home, social_facility:for=mental

Referências