Thiếu đường từ dữ liệu OpenStreetMap với thẩm thấu


9

Tôi hiện đang cố gắng trích xuất các mạng lưới đường từ các bãi chứa OpenStreetMap được tải xuống trên Geofabrik . Tôi đang sử dụng lệnh thẩm thấu (phiên bản 0.45) sau đây để trích xuất đường:

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

Điều này sẽ trả về một tệp chứa tất cả các đường ô tô trừ đường dịch vụ.

Tuy nhiên, một số (và đôi khi rất nhiều) đường bị thiếu. Tôi đã thử lệnh này trên 3 tệp đầu vào:

  • "Midi-Pyrénées" khu vực Pháp: mạng lưới đường bộ dường như đã hoàn tất. Bảng thuộc tính chứa 72010 phần tử.
  • tất cả của Pháp: rất nhiều con đường bị mất tích. Bảng thuộc tính chỉ chứa 65804 phần tử (ít hơn một vùng). Tất cả các loại đường cao tốc bị ảnh hưởng: chính đến dân cư. Không có bất kỳ mô hình rõ ràng cho những con đường bị mất tích.
  • tất cả châu Âu: gần như tất cả các con đường đều mất tích. Bảng thuộc tính chứa 62092 phần tử (ít hơn tất cả của Pháp ...).

Tôi đoán có một số hạn chế mà tôi không biết, trên lệnh thẩm thấu hoặc trên tệp đầu ra. Tôi làm gì sai ở đây?

Điều này có thể không liên quan nhưng tôi đã thử sử dụng --used-nodetùy chọn để giảm kích thước của các tệp đầu ra, nhưng điều này luôn tạo ra lỗi ( org.openstreetmap.osmosis.core.OsmosisRuntimeException: Unable to create object stream writing to temporary file null.). Tôi không biết tại sao.

Cập nhật 29/08/2018: Tôi cũng đã thử sử dụng osmfilter( input.o5m --keep="highway=" > output_roads.osm), với kết quả tương tự. Tôi đã thử thẩm thấu và osmfilter cả trên Windows 7 và Debian 9.5 (cả 64 bit).


Vì vậy, hãy cân nhắc sử dụng `--tf chấp nhận đường cao tốc = * \`, trong ví dụ của bạn, bạn không tính đến tất cả các loại đường.
obchardon

1
Bạn đang chạy một phiên bản thẩm thấu gần đây? Và bạn có đủ không gian trống trên đĩa không?
AndreJ

1
Âm thanh ok. bạn đã thử --rbchưa
AndreJ

2
your suggestion gives almost the sames results (65356 elements for France): Điều này khiến tôi chú ý: 65356 chính xác là giới hạn 16 bit của giá trị (2 ^ 16), giống như giá trị tối đa Int16. Tôi đoán đó phải là giới hạn mà bạn đang tìm kiếm. Có lẽ bạn không thể nhận được nhiều hơn 2 ^ 16 tính năng tối đa.
gisnside

2
65356 là cá trích đỏ, 2 ^ 16 là 65536.
bugmenot123

Câu trả lời:


1

Tôi khuyên bạn nên sử dụng trang web HOT để tải xuống dữ liệu OSM. Bạn có thể tải xuống dữ liệu cho một vị trí cụ thể hoặc thậm chí vẽ ranh giới cho một khu vực. và chỉ tải xuống đường.

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


Tôi không chắc chắn nếu điều này trả lời câu hỏi làm thế nào để làm điều này trong thẩm thấu, nhưng nếu câu trả lời là bạn không thể làm điều đó trong thẩm thấu và có thể trong HOT, thì tôi nghĩ bạn ít nhất cần chỉ ra cách thực hiện các truy vấn có thể so sánh cho những người trong câu hỏi với số lượng kết quả trả về.
nmtoken
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.