Pt:Fortaleza/Importação de Endereços PMF/Conversão de Dados

From OpenStreetMap Wiki
Jump to navigation Jump to search
Proposta de importação Conversão de dados Plano de trabalho Guia de importação Progresso

Esta etapa serve para descrever como foi realizada a aquisição e conversão dos dados originais, os colocando no padrão de tags do OSM. Este passo só é realizado uma vez.

Download dos dados

Os dados brutos podem ser baixados a partir da IDE da SEFIN através do seguinte procedimento:

  • Selecionar Downloads;
  • Cartografia Base;
  • Quadras Fiscais e;
  • Selecionar o arquivo CSV ou SHP, prosseguindo com o download.

Conversão dos números de endereço

A conversão aqui descrita se trata a partir do arquivo CSV pela maior familiaridade com esse tipo de arquivo. Contudo, o mesmo procedimento pode ser feito com o QGIS utilizando o SHP.

  • Abra o Microsoft Excel (ou qualquer outro editor de planilhas), sem abrir o arquivo
  • Vá para a aba Dados e clique em Obter Dados - De Text/CSV
  • Selecione a codificação 65001: UTF-8 na aba Origem do Arquivo, para que todas as acentuações sejam lidas corretamente
  • Carregue os dados
  • Exclua todas as colunas, mantendo somente as seguintes colunas: endereco, bairro e the_geom
  • Salve o arquivo em formato CSV, clicando em Arquivo - Salvar como - CSV (separado por vírgulas). Atenção: não escolha a opção CSV UTF-8 pois o problema de acentuação persistirá.
  • Feche o Excel e abra o arquivo salvo diretamente (sem realizar o procedimento de importação), com um duplo clique no arquivo.

Limpeza geral

Inicialmente precisamos de limpar e consertar os dados primeiro. Para isso, realizaremos o seguinte procedimento:

  • Adicione uma nova coluna (B) ao lado da coluna Endereço e utilize a seguinte fórmula: =ARRUMAR(A2). Faça isso para todas as linhas.
  • Copie todos as linhas da coluna criada e cole em cima da coluna Endereço. Aparecerá um erro REF, mas clique nas opções de colagem (aperte Ctrl) e selecione Valores.
  • Limpe a coluna criada anteriormente e utilize agora a seguinte fórmula, copiando para todas as linhas desta coluna: =NÚM.CARACT(A2)-NÚM.CARACT(SUBSTITUIR(A2;",";""))>1
    • Este procedimento serve para verificar as células que contém mais de uma vírgula, pois isso atrapalhará a separação do nome da rua e o número da casa.
  • Adicione uma outra coluna ao lado da criada anteriormente (C) e crie um filtro para cada coluna, selecionando os cabeçalhos (primeira linha) e indo na aba Página Inicial - Classificar e filtrar - Filtro
  • Filtre somente os resultados VERDADEIRO da primeira coluna criada (B), clicando na seta do cabeçalho desta coluna e selecionando VERDADEIRO somente.
  • Com os dados filtrados, adicione a seguinte fórmula na primeira célula da coluna vazia ao lado, copiando depois para todas as células filtradas abaixo: =SUBSTITUIR(A2071;",";"";1) (troque A2071 pela primeira célula filtrada).
  • Retire o filtro criado anteriormente e crie uma nova coluna ao lado da criada também anteriormente.
  • Nesta nova coluna (D) utilize a seguinte fórmula para todas as linhas: =SE(A2="";"";SE(B2=VERDADEIRO;C2;A2))
  • Copie todos os dados da coluna D na coluna A, com o mesmo procedimento feito anteriormente (opções de colagem - valores).
  • Apague as colunas criadas (B, C e D).


Após ter os dados já limpos, há a necessidade de ajustá-los para o padrão OSM. Começamos pela coluna Endereço. Inicialmente vamos separar o nome da via e o número da casa da seguinte maneira:

  • Adicione uma coluna ao lado direito da coluna Endereço.
  • Selecione a coluna inteira Endereço e vá para a aba Dados
  • Clique em Texto para colunas - Delimitado - Vírgula.
  • Crie uma nova coluna novamente entre a primeira e a coluna criada e adicione a seguinte fórmula na primeira linha vazia, copiando para as de abaixo: =PRI.MAIÚSCULA(A2)
  • Copie os valores ajustados para a primeira coluna, apague a coluna criada, e faça o mesmo procedimento com a coluna Bairros.

Identificação de valores incorretos

Temos agora que identificar os números que não estão em um formato correto, como LOT ou LIVRE. Para isso, temos de realizar a seguinte operação:

  • Converta a coluna B (número de casa) para Texto
  • Realize, uma a uma, nesta ordem, a substituição destes termos para vazio. Para isso, selecione a coluna B, vá em Substituir (Ctrl+U) e na primeira opção insira os termos abaixo, e na segunda opção deixe em branco.
  • - (traço) (espaço) LOTE LOT LOO LO LT . (ponto) _ (underline) ) (parêntese direito) ( (parêntese esquerdo) L000 L00 L0 = (igual) LJ AREAL BL CL ESCOL ETEL ETL GLEBA GL INSTITUCIONAL LARGO LA LBQD LBD LB LC LD/C LD LE LF LG/H LG LH LIVRE LIII LI LK LL LM LN LP LQAT LQ LR LSN LS LU LV MERCA MON AREAVERDE AREA AZIO VAGO NESGA OOO OSN OVII P/00 P/0 CASA CC CEMIT CENTR CS D00 D0 ESTAC ESTAD ETE FUNDO G0 G2P G4M GOA IB IGREJA IGREJ II INST J027 JARDI P/L P/Q0 P/Q P/ PARQU PARTE PATIO PA PG10S PGB9S PL\ PL P9E11 P0 PORCA PQ PRACA PT0 PT PRAC Q/0 Q]0 Q000 Q00 Q0 R] REMANESCENTE REMAN RESER RQ SAO SITIO /0 TERRENOC TERRENOB TERRE TERF TERE TERB TERA TER TE TD TF TG VAZIP VAZI VAZ VAO VAIZO VAGA VAG VA VC VERDE VIZIN VI VZAIO VZ TV0 TVB TV ] {{ | + « 9EP10 9Q A0 A560 AP102 B12 B3 B7 A1 A2 /17 C0 D170 D4/5 D760 D881 D913 E01 E0 N04 N32 NS6


Alguns números foram convertidos automaticamente para data, por conta da maneira que o Excel trata os dados. Temos de consultar a base original para realizar a correção desses dados. Para isso, fazemos o seguinte:

  • Na coluna B filtre os valores de data somente
  • Formate as células selecionadas como TEXTO
  • Substitua os valores das seguintes células, respectivamente:
    • A83074 - 11
    • A101470 - 6
    • A107869 - 1
    • A131008 - 6
    • A202050 - 14
    • A242250 - 1
    • A246407 - 7
    • A271889 - 7
    • A289598 - 12
    • A293310 - 4
    • A296494 - 2
  • Após a conversão o Excel irá retornar um erro para cada célula. Aceite a sugestão de converter para número.

Identificação manual de valores incorretos

Temos agora de realizar uma limpeza manual dos valores que não foram possíveis de serem limpos anteriormente. Para isso, realizaremos o seguinte procedimento:

  • Filtramos inicialmente, na coluna B, os valores que têm uma barra (/).
    • Para valores que somente há uma barra ou barra e somente um número (/4, por exemplo), retire manualmente as barras.
    • As células que têm algo parecido como 2/A, retire a barra, deixando 2A
    • Para os que têm algo como T/V ou QD6, eliminá-los também.
    • Por fim, os valores que são parecidos como 14/15 ou L4/5, retirar a letra, a barra e o número após ela.
  • Agora iremos filtrar os valores com a letra L.
    • Inicialmente filtramos os valores que contêm a letra L na coluna B, realizando a simples filtragem nesta coluna.
    • Agora necessitamos de separar os valores que iniciam somente com a letra L. Para isso, criamos uma nova coluna e inserimos a seguinte fórmula em todas as células: =ESQUERDA(B2;NÚM.CARACT("L"))="L"
    • Nesta nova coluna, filtre os valores FALSO e limpe manualmente os valores existentes (ou seja, deixe somente os valores parecidos como 46L).
    • Agora filtre os valores VERDADEIRO na coluna criada e busque manualmente os valores estranhos, como L4A6 ou L1OA. Ao realizar a correção, aceite a sugestão de converter a célula para número.
    • Por fim, na coluna B selecione todos os valores e retire todos os L, com a função Substituir.

Iremos realizar o mesmo tipo de procedimento com todas as outras letras restantes. Para isso, procederemos da seguinte forma:

  • Limpe todos os dados da coluna criada anteriormente.
  • Agora realizamos o mesmo procedimento, buscando a letra P.
    • Filtramos somente os valores VERDADEIRO da coluna C e depois buscamos pela letra P na coluna B.
    • Adicione a seguinte fórmula na coluna vazia: =ESQUERDA(B734;NÚM.CARACT("P"))="P" e copie essa fórmula para todas as linhas abaixo.
    • Nesta nova coluna, filtre os valores FALSO e limpe manualmente os valores existentes (ou seja, deixe somente os valores parecidos como 4P).
    • Agora filtre os valores VERDADEIRO na coluna criada e busque manualmente os valores estranhos, como P1E2 ou L1OA. Ao realizar a correção, aceite a sugestão de converter a célula para número.
    • Por fim, na coluna B selecione todos os valores e retire todos os P, com a função Substituir.

Faça agora o mesmo procedimento anterior, nesta ordem, com as letras T e V.

Com a letra Q, faremos um procedimento um pouco diferente:

  • Limpe todos os dados da coluna criada anteriormente.
  • Agora realizamos o mesmo procedimento, buscando a letra Q.
    • Filtramos somente os valores VERDADEIRO da coluna C e depois buscamos pela letra Q na coluna B.
    • Adicione a seguinte fórmula na coluna vazia: =ESQUERDA(B132;NÚM.CARACT("Q"))="Q" e copie essa fórmula para todas as linhas abaixo.
    • Nesta nova coluna, filtre os valores FALSO e limpe manualmente os valores existentes (ou seja, deixe somente os valores parecidos como 4P).
    • Agora filtre os valores VERDADEIRO na coluna criada e exclua todos os valores encontrados.

Por fim, faça uma limpeza manual dos valores estranhos que restaram, que são poucos.

Identificação de endereços sem número

Vamos agora filtrar os endereços sem número. Para isso, temos de prosseguir da seguinte maneira:

  • Filtre, na coluna B, os endereços com número 0.
  • Após filtrado, apague todos
  • Filtre novamente os valores que contém SN e apague todos eles também
  • Filtre outra vez os valores que contém S/N e apague todos eles
  • Apague também o valor S\N

Separação dos números com addr:unit

Agora iremos identificar os endereços que contém detalhes na numeração (como por exemplo 50A), e separá-los (como addr:housenumber=* para 50 e addr:unit=* para A) da seguinte maneira:

  • Adicione quatro colunas ao lado direito da coluna dos numeração de porta (C, D, E e F) e adicione a seguinte fórmula na primeira linha vazia, copiando para as de abaixo: =ÉTEXTO(B2).
  • Filtre somente os resultados VERDADEIRO da primeira coluna criada (C), clicando na seta do cabeçalho desta coluna e selecionando VERDADEIRO somente.
  • Com os dados filtrados, adicione a seguinte fórmula na célula da primeira coluna vazias ao lado (D), copiando depois para todas as células filtradas abaixo: =ESQUERDA(B13;SOMA(NÚM.CARACT(B13)-NÚM.CARACT(SUBSTITUIR(B13;{"0";"1";"2";"3";"4";"5";"6";"7";"8";"9"};""))))
  • Adicione a seguinte fórmula na coluna E: =DIREITA(B13;NÚM.CARACT(B13)-SOMA(NÚM.CARACT(B13)-NÚM.CARACT(SUBSTITUIR(B13;{"0";"1";"2";"3";"4";"5";"6";"7";"8";"9"};""))))
  • Retire todos os filtros ativos e na coluna F adicione a fórmula =SE(C2=VERDADEIRO;D2;(SE(ÉCÉL.VAZIA(B2);"";B2)))
  • Crie uma nova coluna G e copie e cole nela todos as linhas da coluna F. Ao colar, cole somente os valores, como descrito em passos anteriores.
  • Novamente, crie uma nova coluna H e copie e cole nela todos as linhas da coluna E. Ao colar, cole somente os valores, como descrito em passos anteriores.
  • Apague as colunas B a F, e nas colunas restante adicione na primeira linha as etiquetas addr:street=*, addr:housenumber=*, addr:unit=* e addr:suburb=*, respectivamente.
  • Por fim, adicione uma nova coluna com a etiqueta addr:city=* e adicione Fortaleza em todas as linhas.

Pronto, agora temos os números de maneira correta no nosso arquivo! Prosseguimos então para a correção dos nomes dos bairros e das ruas.

Conversão dos nomes

Padronização dos nomes dos bairros

Inicialmente iremos padronizar os nomes dos bairros, que não estão totalmente corretos devido a pequenos problemas de acentuação ou letras maiúsculas. Para isso, faremos praticamente todo o trabalho de maneira manual.

  • Na coluna dos bairros selecione todos os valores.
  • Vá em Localizar e Selecionar e depois Substituir (ou o comando Ctrl+U).
  • Substitua os seguintes valores, nesta ordem (valor a ser buscado e valor a ser substituído, respectivamente), e depois aperte em Substituir Tudo:
    • Alto Da Balança - Alto da Balança
    • Barra Do Ceará - Barra do Ceará
    • Boa Vista / Castelão - Boa Vista/Castelão
    • Cais Do Porto - Cais do Porto
    • Cidade Dos Funcionários - Cidade dos Funcionários
    • Conjunto Ceará Ii - Conjunto Ceará II
    • Jardim Das Oliveiras - Jardim das Oliveiras
    • João Xxiii - João XXIII
    • José De Alencar - José de Alencar
    • Pirambú - Pirambu
    • Praia De Iracema - Praia de Iracema
    • Praia Do Futuro I - Praia do Futuro I
    • Praia Do Futuro Ii - Praia do Futuro II
    • Sapiranga / Coité - Sapiranga/Coité
    • Vicente Pinzon - Vicente Pinzón

Padronização dos nomes das ruas

Por fim, devemos realizar a correção dos nomes de ruas. Sugerimos fazer isso por bairros (do menor para o maior, conforme sugerido no plano de trabalho), para que o trabalho seja mais organizado e possa ser feito de maneira concomitante à importação.

  • Colocamos inicialmente a primeira coluna (nome das vias) em ordem alfabética.
  • Em seguida, filtramos o bairro desejado.
  • Corrigimos então os nomes das ruas de maneira manual. De qualquer forma, como os nomes estão organizados em ordem alfabética, basta corrigir o primeiro valor e copiar o nome para as células abaixo.

Fazendo desta maneira, separando os trabalhos por bairros, o trabalho não fica tão pesado e é possível fazer isso por etapas (corrige um bairro, se realiza a importação, depois corrige outro bairro sucessivamente).

Conversão dos dados para o padrão OSM

Por fim, com os dados já limpos e padronizados, temos de converter esse arquivo CSV para o padrão OSM. Para isso, usaremos o QGIS:

  • Após abrir o QGIS, vá no menu - Camada - Adicionar camada - Adicionar Camada de texto delimitado (Ctrl + Shift + T).
  • Abra o arquivo criado anteriormente, selecione ponto e vírgula como delimitador, primeiro registro tem nomes de campos, e na Definição de Geometria selecione Well know text (WKT), e então selecione a última coluna que contém os dados de polígonos, e escolha o tipo de geometria como polígono.
  • Ao adicionar os polígonos com os endereços, temos agora que converter para pontos e deixá-lo em um arquivo pronto para ser lido no JOSM. Para isso, fazemos assim:
    • Menu - Vetor - Geometrias - Centroides
    • Selecione a camada dos dados e execute o processamento.
    • Com a camada de pontos já pronta, exporte o arquivo como SHP. Pode ser salvo em outro tipo de arquivo, mas a experiência atual recomenda salvar em SHP, para que o JOSM abra sem problemas.