Tạo đường trung bình có nghĩa là từ nhiều dòng bằng cách sử dụng QGIS


12

Tôi có nhiều tính năng đường (cũng có nhiều điểm ...) đại diện cho đường dẫn tương tự (đường mòn trên núi, trong trường hợp này) với độ chính xác GPS khác nhau, dẫn đến nhiều đường gần nhau, nhưng không trùng nhau hoàn hảo.

Với mục đích của dự án này, tôi đang tìm cách tính toán một dòng "trung bình" từ tất cả chúng và tạo ra một dòng kết quả của vị trí có thể xảy ra nhất của đường mòn.

Bạn sẽ tiến hành như thế nào, sử dụng QGIS hoặc bất kỳ công cụ nào khác (tôi nghĩ về OGR ...)?

nhập mô tả hình ảnh ở đây


Hãy xem các bản nhạc Trung bình trên wiki OpenStreetMap, mô tả một phương pháp sử dụng R.
Jake

2
Điều này nghe có vẻ tương tự như "sự kết hợp" và trên trang web này đã có một vài chủ đề về nó: gis.stackexchange.com/search?q=conflation có câu hỏi và câu trả lời nào giúp bạn gần gũi hơn không?
SaultDon

Tôi sẽ xem xét "liên kết" ngày hôm nay, nhưng cho đến nay, "Các bài hát trung bình" được đề xuất trước đó dường như thực hiện mánh khóe. Tôi chỉ đơn giản là tìm kiếm thêm một chút để xem liệu nó có thể được thực hiện trực tiếp thông qua QGIS hay không, nhưng cả hai câu trả lời của bạn đều tuyệt vời, cảm ơn!
Horizen

Bạn có thể xem chủ đề này và các liên kết của nó: gis.stackexchange.com/questions/70623/iêu
johns

Câu trả lời:


9

Dữ liệu kiểm tra:

  • QGIS 2.18.16, GRASS GIS 7
  • 4 bài hát GPS
  • trong một mạng lưới 1x1km

TÔI.)

Tạo các điểm dọc theo Tuyến đường GPS của bạn bằng Plugin QGIS Locate Points Along Lines( https://plugins.qgis.org/plugins/LocatePoints/ ). Tôi đã sử dụng một khoảng 5m trong sơ đồ của mình.

nhập mô tả hình ảnh ở đây

nhập mô tả hình ảnh ở đây

II.)

Tạo một Concave Hullvới Processing > Toolbox > QGIS geoalgorithms >Vector geometry tools > Concave hull. Tôi đã sử dụng một ngưỡng 0.1trong ví dụ của tôi. Nếu ngưỡng là thấp, có thể có lỗ hổng trong đa giác đầu ra.

nhập mô tả hình ảnh ở đây

III.)

Bây giờ, bạn có thể tính toán dòng "trung bình" với sự trợ giúp của thuật toán bộ xương. Tìm kiếm bộ xương trong Processing Toolbox. Sử dụng v.voronoi.skeletoncông cụ từ GRASS GIS 7 commands.

nhập mô tả hình ảnh ở đây


7

Phương pháp bản đồ nhiệt:

Cách tiếp cận tốn nhiều thời gian hơn, do thời gian tính toán của các bước xử lý. Nó có thể được coi là một ý tưởng có thể để đến gần hơn với một giải pháp tổng quát hơn.

Dữ liệu kiểm tra:

  • QGIS 2.18.16, GRASS GIS 7
  • 4 bài hát GPS
  • trong một mạng lưới 1x1km

TÔI.)

Tạo các điểm dọc theo Tuyến đường GPS của bạn bằng Plugin QGIS Xác định vị trí các điểm dọc theo đường ( https://plugins.qgis.org/plugins/LocatePoints/ ). Đối với phương pháp bản đồ nhiệt tôi đã sử dụng khoảng cách 2m .

II.)

Tạo bản đồ nhiệt với plugin bản đồ nhiệt QGIS. Tôi đã sử dụng bán kính 40m. Tôi tăng bán kính cho đến khi không có lỗ trong raster đầu ra. Bạn phải thử điều này với các giá trị bán kính khác nhau.

nhập mô tả hình ảnh ở đây

III.)

EDITED Không cần phải giữ giá trị raster bản đồ nhiệt chính xác.

Bây giờ tôi muốn làm mỏng raster đến các khu vực "trắng", nơi tập trung nhiều điểm nhất. Do đó, tôi tính toán lại raster đầu ra. Các giá trị tối thiểu / tối đa của raster đầu ra là 089.7935. Tôi chỉ sử dụng các giá trị ở trên 44. Do đó, tôi đã sử dụng một "quy tắc của ngón tay cái". Làm tròn giá trị tối đa và chia cho hai. Làm tròn giá trị này một lần khác. 89/2 = 44,5-> 44. Tôi đã sử dụng Shell OSGeo4W : gdal_calc -A heatmap.tif --calc="A>=44" --NoDataValue=0 --outfile=heatmap_44_NoData.tif.

nhập mô tả hình ảnh ở đây

IV.)

EDITED

a) Đa giác hóa bản đồ nhiệt tính toán lại với Raster > Conversion > Polygonize ...

b) Đơn giản hóa đa giác Vector > Geometry Tools > Simplify geometries. Tôi đã sử dụng một dung sai của 2. Một đa giác đơn giản hơn làm giảm thời gian xử lý cho các bộ xương.

c) Tính toán bộ xương: tìm kiếm bộ xương trong Hộp công cụ xử lý. Sử dụng v.voronoi.skeletoncông cụ từ các lệnh GRASS GIS 7.

nhập mô tả hình ảnh ở đây

Bạn có thể thấy rằng dòng kết quả đại diện cho vị trí có thể xảy ra nhất của đường mòn hơn trong câu trả lời đầu tiên của tôi. Đặc biệt đối với khúc cua ở phía Bắc, đường trung bình đi theo ba rãnh gần nhau hơn. Tương tự cho uốn cong ở phía Đông.

Ưu điểm của phương pháp:

  • kết quả tốt hợp lý độc quyền sử dụng QGIS

Nhược điểm:

  • thời gian xử lý các tập dữ liệu lớn
  • bạn phải thử tham số tiên nghiệm (bán kính bản đồ nhiệt, giá trị tối thiểu / tối đa)
  • khó tự động hóa các bước xử lý
  • không được kiểm tra cho các khúc cua / đường cong hẹp và cho các rãnh thực sự bước ra khỏi đường

Nếu ai đó có thể tối ưu hóa các bước xử lý, chào mừng bạn!


+1. Đây là một cách tiếp cận hiệu quả để tìm "đường trung bình". Tuy nhiên, đó không nhất thiết là ước tính tốt nhất của dòng chính xác . Để xem tại sao không, hãy tưởng tượng rằng hầu hết các đường được truyền đi rất nhanh, nhưng một đường được truyền đi rất chậm, đủ chậm để các lỗi tại bất kỳ vị trí nào sẽ được tính trung bình. Con đường duy nhất này sẽ cung cấp đại diện đáng tin cậy nhất cho sự thật, nhưng bằng cách lấy lại từng đường dẫn, thông tin này sẽ bị mất và tính trung bình với nhiều đại diện nghèo hơn. Rõ ràng đây là một trường hợp cực đoan, nhưng trong thực tế, một số con đường có thể tốt hơn những con đường khác.
whuber

Tôi hiểu. Cảm ơn bạn đã phản hồi của bạn. Plugin Heat Map trong QGIS cung cấp một số tùy chọn nâng cao, nơi bạn có thể use weight from field. Có thể sử dụng thông tin như vận tốc (di chuyển chậm / nhanh) hoặc các thông tin khác để cân dữ liệu theo một cách nào đó không? Trọng số có thể được sử dụng để cải thiện bản đồ nhiệt.
Stefan

Có, bạn có thể làm điều đó - nhưng không có kỹ thuật nào trong số này giải quyết mối lo ngại rằng dữ liệu có thể có sự tự tương quan (tích cực mạnh). Đối phó với điều đó sẽ đòi hỏi một cái gì đó giống như phân tích chuỗi thời gian của các đường dẫn riêng lẻ.
whuber
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.