Estradas ausentes dos dados do OpenStreetMap com osmose

9

Atualmente, estou tentando extrair redes de estradas dos dumps do OpenStreetMap baixados no Geofabrik . Estou usando o seguinte comando de osmose (versão 0.45) para extrair estradas:

osmosis \
--rbf input.osm.pbf \
--tf reject-relations \
--tf accept-ways highway=motorway,motorway_link,trunk,trunk_link,primary,primary_link,secondary,secondary_link,tertiary,tertiary_link,unclassified,residential \
--tf reject-ways highway=construction \
--lp --wb output_roads.osm.pbf

Isso deve retornar um arquivo contendo todas as estradas de automóveis, exceto as de serviço.

No entanto, faltam algumas (e às vezes muitas) estradas. Eu tentei este comando em 3 arquivos de entrada:

  • Região francesa "Midi-Pyrénées": a rede rodoviária parece quase completa. A tabela de atributos contém 72010 elementos.
  • toda a França: faltam muitas estradas. A tabela de atributos contém apenas 65803 elementos (menos de uma única região). Todos os tipos de rodovias são impactados: primário para residencial. Não existe um padrão óbvio para as estradas que faltam.
  • toda a Europa: quase todas as estradas estão faltando. A tabela de atributos contém 62092 elementos (menos que toda a França ...).

Eu acho que há alguma limitação que eu não conheço, no comando osmose ou no arquivo de saída. O que eu estou fazendo errado aqui?

Isso pode não estar relacionado, mas tentei usar a --used-nodeopção para reduzir o tamanho dos arquivos de saída, mas isso sempre gera um erro ( org.openstreetmap.osmosis.core.OsmosisRuntimeException: Unable to create object stream writing to temporary file null.). Eu não tenho ideia do porquê.

Atualização 29/08/2018: Eu também tentei usar osmfilter( input.o5m --keep="highway=" > output_roads.osm), com os mesmos resultados. Tentei osmose e osmfilter no Windows 7 e no Debian 9.5 (ambos de 64 bits).

ArMoraer
fonte
Portanto, considere usar `--tf accept-ways highway = * \`; no seu exemplo, você não leva em consideração todo o tipo de estrada.
obchardon
1
Você está executando uma versão recente da osmose? E você tem espaço livre suficiente em disco?
Andrej
1
Parece ok. você já tentou --rb?
Andrej
2
your suggestion gives almost the sames results (65356 elements for France): Isso me chamou a atenção: 65356 é exatamente uma limitação de valor de 16 bits (2 ^ 16), como um valor máximo de Int16. Eu acho que deve ser a limitação que você está procurando. Talvez você não possa obter mais de 2 ^ 16 recursos no máximo.
Gisnside 23/08/19
2
65356 é um arenque vermelho, 2 ^ 16 é 65536.
bugmenot123

Respostas:

1

Eu recomendaria que você usasse o site HOT para baixar dados do OSM. Você pode fazer o download de dados para um local específico ou até desenhar um limite para uma área. e faça o download apenas da estrada.

https://export.hotosm.org/en/v3/exports/new/describe

yvvazsua
fonte
Não tenho certeza se isso responde à pergunta de como fazer isso em osmose, mas se a resposta é que você não pode fazê-lo em osmose e em HOT, então acho que você precisa pelo menos mostrar como fazer consultas comparáveis para aqueles na pergunta com o número de resultados retornados.
nmtoken