Como cortar o subconjunto da cidade (qualquer relação) dos dados do OSM

Uma vez eu precisava obter um subconjunto limpo da cidade a partir de dados brutos do OSM (porque é muito conveniente, compacto e simplesmente bonito). Para minha surpresa, não encontrei uma receita pronta, e é por isso que levei um pouco de suor para concluir esta tarefa.

Em vista do exposto, considero meu dever compartilhar minha experiência.

Chisinau OSM

Suponha que eu queira obter um subconjunto de Chisinau (por quê? ... está quente lá, minha casa está lá, minha mãe está lá)

Obviamente, não estamos interessados ​​no Planet.osm , mas existe o geofabrik , mas o planeta é cortado em shmatka bastante grande - http://download.geofabrik.de/europe/moldova.html

Portanto, a fronteira da cidade está nos dados brutos .

É fácil obter um campo de teste de um relacionamento, o fazemos com as mãos ou com a ajuda de qualquer utilitário adequado, por exemplo, este .

III ... agora a osmose entra em jogo .

Temos o osm de toda a Moldávia e a faixa limitadora de Chisinau. Isso é suficiente para obter o site da cidade a partir de um arquivo XML (OSM) bruto:

osmosis --read-xml file="moldova.osm" --bounding-polygon file="kishinev.poly" --write-xml file="kishinev.osm" 

Da mesma forma, você pode extrair dados do arquivo PBF (Protocolbuffer Binary Format):

 osmosis --read-pbf file="moldova.osm.pbf" --bounding-polygon file="kishinev.poly" --write-xml file="kishinev.osm" 

Você pode ler um pouco mais sobre osmose aqui .

Bem, o subconjunto finalizado precisa ser aberto com urgência no JOSM ou importado para um projeto pessoal!

Chisinau JOSM

UPD:


Como o zverik observou, todas as opções acima serão muito mais fáceis de usar usando * osmium-tool * ( das docas )
1. Baixe o conjunto de dados do país
2. Extraia a fronteira da cidade
 osmium getid -r -t moldova-latest.osm.pbf r1691801 -o kishinev-boundary.osm 

3. Extraia a cidade do conjunto de dados
 osmium extract -p kishinev-boundary-with-tags.osm moldova-latest.osm.pbf -s simple -o kishinev.osm 


Preste atenção ao flak -s simples
Esta é uma estratégia de extração e existem apenas três:
1. -s simple - aparar estradas ao longo da fronteira
2. -s complete_ways - não corta estradas de fronteira ( padrão )
3. -s smart - extrai dependências de estradas nas fronteiras

O formato do arquivo de saída é determinado por sua extensão no comando

OSMIUM é uma ferramenta extremamente poderosa, conveniente e útil que é agradável de usar.

Source: https://habr.com/ru/post/pt463251/


All Articles