OSMBrasil / Geolog-PMSP

1 stars 2 forks source link

Polígonos com logradouros, para Tasking Manager #3

Closed alexandre-mbm closed 9 years ago

alexandre-mbm commented 10 years ago

O que é o identificador da feição, num shapefile?

               Arquivo: DEINFO_SEGTOS_212
              Variável: ID
      Nome da variável: Identificador da feição
 Descrição da variável: Código identificador da feição
                 Fonte: Prodam
                  Tipo: Texto
               Tamanho: 10
                Sigilo: 0

Ou: qual é o termo em inglês?

Já agrupei a consulta por CODL, mas saber desse ID pode ajudar com outras. Ou seja, já tenho um JSON de logradouros mas estou cogitando agrupá-los de alguma forma, antes de fazer os polígonos para o Tasking Manager. Assim as tarefas não ficariam tão pequenas.

Se IDnão for um campo que possibilite agrupamento, uma alternativa ainda é agrupar os polígonos "manchas" de logradouros por bounding boxes. Estou investigando ID. Registro isso aqui para o caso de não dar tempo e eu viajar sem terminar. São ideias. Farei commits num diretório tasking-manager.

willemarcel commented 10 years ago

Não sei se entendi o contexto, mas talvez ajude: feição é cada um dos elementos (polígono, linha, ponto, etc) presentes em um shapefile ou em um banco de dados.

alexandre-mbm commented 10 years ago

A pergunta é: será que esse ID é chave compartilhada com outros shapefiles? Claro que eu posso checar isso realizando consultas, mas talvez algum de vocês já tenha a resposta.

Olhando TileMill/data/GEOLOG/XLS/DEINFO_DICIONARIO_GEOLOG.xls, parece que não.

Isso que estou procurando é bobagem, pois é o caso de se fazer geo consultas. Como é de se esperar. Acontece que, segundo li no tópico que há no fórum, sobre a importação de buildings, os interessados só identificaram áreas muito grandes ou muito pequenas.

Vou ver de que tamanho é uma quadra ou um setor fiscal. Ainda não sei.


Exemplo de quadras: gist 53cbf6bbb1db7b0cff55. São 57073. Dois arquivos, não sei se redundantes. Exemplo de setores: gist 797826b75f969524aa07. São 314.

alexandre-mbm commented 10 years ago

Algoritmo

Minha proposta de divisão (que vou fazendo enquanto tiver tempo antes de viajar → fui: 29/09 16h38):

  1. Dada a lista de polígonos de quadras, inchá-los e uni-los em pequenos grupos, para ter algumas dessas áreas menores integrando mais ou menos as áreas dos setores
    • Esquecer as áreas dos setores (por enquanto) e chamar as recém criadas de "subsetores"
  2. Dada a lista de linhas de logradouros e dada a lista de polígonos de subsetores, inchá-las em polígonos e unir aquelas que estejam completamente contidas numa mesma área de subsetor
  3. Dada a lista de linhas de logradouros não aproveitados em subsetores, inchar as linhas em polígonos e unir aquelas que estejam completamente contidas numa área de setor
  4. Dada a lista de linhas de logradouros não aproveitados nem em subsetores nem em setores, inchar essas linhas como polígonos; elas serão tarefas isoladas

Isso poderia ser feito ainda em fases GDAL, usando ogr da biblioteca osgeo do Python, mas eu quero fazer com a Shapely. Para treinar diretamente a manipulação de GeoJSON, no sentido de me preparar para alexandre-mbm/osm-tasking-manager2#4: Importação de Mapillary.

alexandre-mbm commented 10 years ago

Dica sobre modo de testar

Para fins de teste (ou até finalização em partes), trabalhar com bbox limitante no centro de São Paulo, ou com um ou alguns dos polígonos de setores — inchados ou não — como extent invés da bbox. Para não pesar a renderização de pré-visualização em geojson.io.

Em GNU/Linux o resultado do script pode ir para a área de transferência com muita praticidade:

$ python genareas.py | xclip -sel clip

Daí é só fazer Control+V no geojson.io para ver o teste.

Recursos úteis

Pendências