Jalan yang hilang dari data OpenStreetMap dengan osmosis


9

Saat ini saya mencoba untuk mengekstrak jaringan jalan dari kesedihan OpenStreetMap yang diunduh di Geofabrik . Saya menggunakan perintah osmosis (versi 0.45) berikut untuk mengekstrak jalan:

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

Ini harus mengembalikan file yang berisi semua jalan mobil kecuali jalan layanan.

Namun, beberapa (dan kadang-kadang banyak) jalan hilang. Saya telah mencoba perintah ini pada 3 file input:

  • "Midi-Pyrénées" Wilayah Prancis: jaringan jalan tampaknya hampir selesai. Tabel atribut berisi 72010 elemen.
  • seluruh Prancis: banyak jalan hilang. Tabel atribut hanya berisi 65803 elemen (kurang dari satu wilayah). Semua jenis jalan raya terkena dampak: primer hingga perumahan. Tidak ada pola yang jelas untuk jalan yang hilang.
  • seluruh Eropa: hampir semua jalan hilang. Tabel atribut berisi 62092 elemen (kurang dari semua Perancis ...).

Saya kira ada beberapa batasan yang tidak saya sadari, baik pada perintah osmosis atau pada file output. Apa yang saya lakukan salah di sini?

Ini mungkin tidak berhubungan tetapi saya telah mencoba menggunakan --used-nodeopsi untuk mengurangi ukuran file output, tetapi ini selalu menghasilkan kesalahan ( org.openstreetmap.osmosis.core.OsmosisRuntimeException: Unable to create object stream writing to temporary file null.). Saya tidak tahu kenapa.

Pembaruan 29/08/2018: Saya juga mencoba menggunakan osmfilter( input.o5m --keep="highway=" > output_roads.osm), dengan hasil yang sama. Saya mencoba osmosis dan osmfilter baik pada Windows 7 dan Debian 9.5 (keduanya 64 bit).


Jadi pertimbangkan untuk menggunakan `--tf accept-ways highway = * \`, dalam contoh Anda, Anda tidak memperhitungkan semua jenis jalan.
obchardon

1
Apakah Anda menjalankan osmosis versi terbaru? Dan apakah Anda memiliki cukup ruang kosong pada disk?
AndreJ

1
Kedengarannya ok. Anda mencoba --rb?
AndreJ

2
your suggestion gives almost the sames results (65356 elements for France): Ini menarik perhatian saya: 65356 persis batasan nilai 16 bit (2 ^ 16), seperti nilai maks Int16. Saya kira itu pasti batasan yang Anda cari. Mungkin Anda tidak bisa mendapatkan lebih dari 2 ^ 16 fitur maks.
gisnside

2
65356 adalah herring merah, 2 ^ 16 adalah 65536.
bugmenot123

Jawaban:


1

Saya akan merekomendasikan Anda menggunakan situs HOT untuk mengunduh data OSM. Anda dapat mengunduh data untuk lokasi tertentu atau bahkan menggambar batas untuk suatu area. dan unduh hanya jalan.

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


Saya tidak yakin apakah ini menjawab pertanyaan tentang bagaimana melakukan ini dalam osmosis, tetapi jika jawabannya adalah Anda tidak dapat melakukannya dalam osmosis dan dapat dalam HOT, maka saya pikir Anda setidaknya perlu menunjukkan cara melakukan kueri yang sebanding kepada orang-orang dalam pertanyaan dengan jumlah hasil yang dikembalikan.
nmtoken
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.