Edição em lote (quadras) de edificações em São Paulo

Augusto S,

Correção. O site para baixar os arquivos da prefeitura é:

http://downloadfolhasscm.prefeitura.sp.gov.br/PaginasPublicas/index.aspx

É necessário criar um usuário.

[]s

Pessoal,

Apenas para citar, pois acho que o tema merece uma discussão a parte, estou tentando conseguir os dados de CEP dos correios.

Essa idéia surgiu a ver os outros exemplos de importação citados, onde o código postal estava atribuído aos prédios. Verifiquei que as ruas mapeadas no Butantã (SP/SP) não contém o CEP. Antes de copiar os dados do site dos correios resolvi perguntar se é possível baixar a base e utilizá-la.

A primeira resposta foi que a base é proprietária e é vendida. Agora perguntei se posso copiar o resultado de uma busca realizada no site. Também questionei o acesso citando a lei de acesso à informação (12.527 de 18.11.11).

Não encontrei algo neste forum e o que achei na Talk-br não parece ser conclusivo.

[]s

Pessoal,

O **Augusto S **me alertou que a permisão de uso que o Vitor George conseguiu é para um outro link.

Dessa forma, até segundo aviso, aguardem para utilizar os dados do link anterior.

Fiz um cadastro no sistema e-SIC da Prefeitura e aguardo resposta sobre a restrição de uso.

[]s,

P.S. 1 (13:34:51) : Um mês no banco de espera:

" O seu pedido de informação deverá ser processado no prazo de 20 (vinte) dias, conforme estabelecido no § 2º do art. 18 do Decreto Municipal 53.523/2012, podendo esse prazo ser prorrogado por mais 10 (dez) dias, mediante justificativa expressa, conforme dispõe o art. 19. "

P.S. 2 (13:59)
No meu entendimento, na resposta que o Vitor recebeu da Prefeitura informa que os dados da página “Dados Abertos” pode ser utilizada de forma livre, bastando fazer citação da fonte. A divergência é que o link hoje (27.08.14) não aponta mais para a mesma página.

Bonix,

Por favor, use esta versão http://www.prefeitura.sp.gov.br/cidade/secretarias/upload/desenvolvimento_urbano/dados_estatisticos/arquivos/20131203_mdc.zip.zip (cuidado! download de 1.5GB) dos dados da prefeitura. Mais especificamente, olhe o arquivo DEINFO_EDIFICACAO.shp.

Além de reduzir a burocracia, já que o VItor George já checou que este arquivo está OK para importação, este arquivo contém a altura dos prédios, informação esta que pode ser retida na chave height=* http://wiki.openstreetmap.org/wiki/Key:height.

Eu tenho a impressão que esse arquivo usa coordadas UTM, então a opção certa no ogr2osm seria -p ‘+proj=utm +zone=23 +south +ellps=aust_SA +towgs84=-67.35,3.88,-38.22,0,0,0,0 +units=m +no_defs’

Bacana. Seria ótimo ter as alturas dos prédios.
É muito útil para visualizações 3D ou 2,5D

Pessoal,

O arquivo que pode conter a altura dos prédios, conforme indicado pelo Augusto S, tem 611 Mb. A minha impressão é que levaria um noite inteira para o JOSM apenas ler o conteúdo.

Fiz um teste com um arquivo menor com dados de logradouros, pois ainda quero conseguir a base de CEPs, e foi necessário cerca de 20min para abrir o arquivo. A tela do JOSM ficou preta sem mostrar qualquer informação. Fiz a conversão do shapefile para osm com a projeção sugerida e o resultado foi o mesmo.

É preciso verifcar como Vitor George está fazendo para ler os dados.

Iniciei uma página no wiki para documentar o que estamos discutindo aqui:
https://wiki.openstreetmap.org/wiki/PMSP_Buildings_Import

Aí vai um “translation script” do ogr2osm que extrai um setor do shapefile de 611MB


# -*- coding: utf-8 -*-
import re
    
def filterFeature(ogrfeature, fieldNames, reproject):
    if not ogrfeature:
        return

    if ogrfeature.GetFieldAsString('COD_SETOR_') == "106":
        return ogrfeature
    else:
        return
    
def filterTags(attrs):
    if not attrs:
        return
    tags = {}
    
    if float(attrs['ALTURA_EDI']) > 0:
        tags['height'] = str(float(attrs['ALTURA_EDI']))
    tags['building'] = 'yes'

    return tags

Depois de salvar o código acima como sampa-buildings.py, obter o arquivo DEINFO_EDIFICACAO.shp do zip de 1.5GB (link acima) e instalar o ogr2osm https://github.com/pnorman/ogr2osm, vocé pode rodar


python ogr2osm.py -t sampa-buildings.py -p '+proj=utm +zone=23 +south +ellps=aust_SA +towgs84=-67.35,3.88,-38.22,0,0,0,0 +units=m +no_defs' DEINFO_EDIFICACAO.shp

O resultado será isso: https://my.owndrive.com/public.php?service=files&t=631cdb1a2f168c82cccdb77e3950fbc0

Iterando sobre todos os valores de COD_SETOR_, geraríamos algumas centenas de arquivos osm, cada um com em torno de 10MB. Isso provavelmente é grande demais para manipular de forma prática. Outra forma de quebrar o shapefile de 600MB é usar o script chunk.py disponível aqui https://github.com/osmlab/nycbuildings/ juntamente com o arquivo DEINFO_QUADRA_PREDIAL.shp. Isso iria querar os shapefile de edifícios em 60 mil shapefile-zinhos, um para quadra da cidade. Pode parecer pequeno demais, mas talvez isso funcione muito bem junto com o Tasking Manager.

A propósito, eu notei que os dados da prefeitura se alinham perfeitamente com as imagens do Mapbox, mas há um deslocamento de cerca de 5m com relação às imagens do Bing. Alguém de SP saberia confirmar que as imagens do Mapbox estão corretas e as do Bing deslocadas?

Nota: Descobri agora que o pessoal em Nova York quebrou o dataset deles em 5285 pedaços https://www.openstreetmap.org/user/lxbarth/diary/23588. Eles usaram distritos eleitorais para fazer essa subdivisão. Em SP eu não achei nada intermediário entre quadras (60 mil) e setores (algumas centenas). Alguma idéia?

Augusto S,

Encontrei uma solução que permitiu manipular os arquivos sem muita demora.

Em uma máquina virtual com Win7 e usando do Qgis 2.4 consegui abrir o arquivo DEINFO_EDIFICACAO.

Consegui filtrar este arquivo através do atributo comum “COD_SETOR_”=“082” , o que resultou em um arquivo com 12903 linhas para o bairro do Butanta.

O arquivo shapefile “Edificação SHP_DISTRITOS__BUTANTA” contém 12904 linhas.

Até aqui, só perderíamos um registro.

O problema aparece quando você compara as duas imagens abaixo:

DEINFO= https://www.evernote.com/shard/s458/sh/6f809dad-fdfc-427d-a373-c9976e25d878/a77bb3b1ace6f6c6804c060737ae4d4a

Edificação = https://www.evernote.com/shard/s458/sh/bdada9e8-c2ba-4a04-88aa-703edf1ed97d/c22f3653ccced3bf8afba7146abcd189

Pesquisando por imagens no Google encontrei esta imagem:
https://www.evernote.com/shard/s458/sh/d431ea29-2f77-4148-ab43-ae4442681921/0f1fe67d835d7c30cf08001279641e47

Isso sugere que:** DEINFO FILTRADO = BUTANTA + JAGUARE**

Alguém com mais experiência poderia dizer se chega aos mesmos resultados que eu.

@Augusto S,
Você consegue gerar uma imagem dos dados que filtrou?

@Vitor George,
Você chegou a se deparar com esta diferença?

Conclusão:
A menos de algum malabarismo com os filtros, concluo que não temos como aproveitar a informação de altura dos prédios.


Sobre a divisão do shapefile

Um servidor de TASK conseguiria entender isso? Cada fração oferecida corresponderia a apenas um arquivo?

[]s

Nenhuma das duas regiões abragidas pelas imagens que você postou acima está estritamente contida na outra (e a semelhança no número de linhas só pode ter sido coincidência.) São simplesmente duas formas diferentes, mas igualmente válidas, de quebrar o arquivo.

Eu estou conseguindo usar o chunk.py para quebrar o shapezão de 611MB por quadras. Em breve eu vou fornecer uma amostra.

O servidor task vai ser uma mão na roda. Vai facilitar bastante a nossa vida, assim como facilitou para o pessoal em Nova York.

Eu cheguei neste SRID 4618 fazendo vários testes. No caso, eu usei a base de rios. Eu sabia a posição do córrego in loco e este foi o sistema de coordenadas que dava o local correto. Mas eu não fiz um teste em outras regiões como foi proposto aqui.

Augusto S,

Com o QGIS consegui visualizar porque a busca pelo atributo “COD_SETOR_”=“082” dá resultados diferentes.

No arquivo Edificação SHP_DISTRITOS__BUTANTA foi criado com setores diferentes, a saber: 082, 101, 159, 200.

Veja nesta imagem como fica marcando cada setor com uma cor:

https://www.evernote.com/shard/s458/sh/5b7daa59-6bc3-49df-ab59-34d237a78f6a/f399d76a1a6387bc8b3a105cd6e6382f

Antes de analisar achava que esta imagem era composta apenas pelo código 082.

Dessa forma, quebrar por quadras pode ser uma boa escolha.

Outro resultado que posso inferir é que a liberação que o Vitor George conseguiu também serve para o Mapa Digital da Cidade, uma vez que este é apenas uma divisão em unidades menores do arquivo “DEINFO”.

[]s

Augusto S,

Sem o servidor de TASK dá para dividir por setor. Não é pouco trabalho, mas é algo alcançável por uma pessoa quando a área estiver vazia.

No caso de NY me parece que a previsão inicial no wiki era de 2 meses. Levaram 9 com toda a automação que conseguiram criar.

Acho que li na Task-br o Alex Barth oferecendo o servidor deles para o Vitor George. Pessoalmente não vejo problemas.

[]s

Em vez de passar quadra a quadra para importar os prédios, e depois passar quadra a quadra para importar os endereços, é muito melhor fazer as duas coisas ao mesmo tempo. Assim, eu diria que devemos fundir essas duas importações (https://wiki.openstreetmap.org/wiki/Geolog_PMSP_Import e https://wiki.openstreetmap.org/wiki/PMSP_Buildings)) em uma só.

A parte que diz respeito aos prédios é relativamente simples, mas a parte dos endereços vai requerer um algoritmo de conversão extremamente inteligente. Acho que é hora de começar a discutir isso.

Outra coisa a averigar é se a prefeitura de SP não possui, ou pretende adquirir em breve, a numeração individualizada dos prédios/lotes. Eu achava que nenhuma cidade brasileira tivesse isso, mas acabei de descobrir que Porto Alegre tem.

Augusto S,

1 - Acho que vai tornar a tarefa difícil demais para ser finalizada.
NY não fez apenas os prédios?

2 - Ninguém ainda discutiu como fazer as ruas sem quebrar o roteamento.

3 - Quase não há prédios mapeados.
Muitas ruas estão mapeadas com correções sobre as imagens velhas do Bing.

4 - Sobrepor as ruas da Prefeitura pode ser um retrocesso sobre tudo o que já foi criado.
O processo tem que ser manual.
Poderíamos manter uma base com os arquivos “normalizados” para quem se dispor a esta tarefa.

O Rio de Janeiro também tem os prédios mapeados, o Thundercel mostra no youtube.

[]s

Prédios e endereços. Veja aqui: https://www.openstreetmap.org/user/lxbarth/diary/23588

A informação de numeração vai na quadra e não na rua. Logo isso pode ser adicionado sem mexer na geometria das ruas. Veja http://wiki.openstreetmap.org/wiki/Addresses#Using_interpolation.

Augusto S,

Estou usando o org2osm em uma máquina virtual Debian. Aumentei a memória de 1GB para 4GB, e 2 núcleos de um Core i7. Mesmo assim não consigo filtrar o arquivo DEINFO_EDIFICACAO.shp (538M). O script retorna “Morto”.

Cada tentativa leva de 30 a 45 min.

Poderia dizer quais as características da máquina em que consegue aplicar o filtro e gerar arquivos menores?

Obrigado.

Pessoal,

Acabo de fazer a seguinte consulta à Secretaria Municipal de Desenvolvimento Urbano de São Paulo:

===========
Prezados,

Gostaria de saber se a SMDU possui ou pretende adquirir o cadastro com o número de todas as edificações ou lotes da cidade de São Paulo.

A título de exemplo podemos citar a cidade do Rio de Janeiro. A Prefeitura disponibiliza o acesso ao desenho das edificações com suas respectivas numerações neste site:
http://portalgeo.rio.rj.gov.br/mapa_digital_rio/?config=config/ipp/cadlog.xml

Caso esta informação já esteja disponível, gostaria de saber como acessá-la, e se poderá ser considerada de domínio público e sem restrições de reutilização.

Muito Obrigado.

Prazo de atendimento: 20/09/2014

erro: esta mensagem foi submetida involuntariamente

erro: esta mensagem também foi submetida involuntariamente

Espero que não aconteça uma terceira vez.
O editor WYSIWYG que estou prototipando para o fórum quase já tem uma funcionalidade razoável.

Oi pessoal,

Abri o GEOLOG e realmente a projeção 2 foi a que mais se aproximou, ainda que com um certo erro. Não tinha lido o fórum com calma, desculpe por ter insistido no 4618.

Minha idéia é, a partir do shapefile, gerar um script em python no QGIS que:

  1. Escolhe um segmento;
  2. Gera uma duplicata a 5 metros do original;
  3. Encurta nas duas pontas em 5 metros;
  4. Coloca as tags adequadas para a faixa de endereço.

Ao pegar uma tarefa, a pessoa escolhe uma rua, abre os dados gerados pelo script acima, verifica e sobe.

Tenho que descobrir como encurtar os segmentos, não sei se existe uma função para isso.

Abraço,
Vitor