Phân tích sự khác biệt giữa hai shapefile để đưa kết quả vào shapefile mới?


9

Tôi có hai shapefile đa giác của cùng một khu vực từ hai năm khác nhau (1985 và 1997) và tôi cần phân tích sự khác biệt giữa hai shapefile dẫn đến shapefile đa giác thứ ba chỉ hiển thị sự khác biệt.

Các shapefiles bao gồm một khu vực nội thành với các tòa nhà, công viên, khu vực kín / không kín và khu vực nước. Tôi cần tìm hiểu ví dụ nếu một tòa nhà được thiết kế hoặc xây dựng hoặc nếu một công viên bị di chuyển hoặc đóng cửa hoặc những thứ tương tự. Bất kỳ sự khác biệt giữa các hình dạng.

Tôi cần đầu ra ở một phần ba, shapefile mới. Có một cách tự động để đạt được điều này?

Tôi đang làm việc với cơ sở dữ liệu địa lý tập tin sở hữu trong ArcGIS 10.1, vì vậy tôi thích các giải pháp trong ArcGIS. Nhưng nếu có một cách dễ dàng để làm điều này trong QGIS, tôi cũng sẽ hoan nghênh nó.

Tôi nghĩ có thể làm việc với phân tích cấu trúc liên kết trong ArcGIS nhưng tôi không chắc chắn ví dụ về cách so sánh các hình dạng theo thuộc tính: Mỗi hình dạng có một "loại" trường trong bảng thuộc tính và tôi cần so sánh không chỉ các hình dạng nhưng các loại đa giác.

Lưu ý, Tìm sự khác biệt giữa các shapefiles bằng ArcGIS cho Desktop? Nghe có vẻ tương tự, nhưng tôi đang tìm kiếm một đầu ra ở định dạng tệp hình đa giác.

Đây là một quá trình phát hiện thay đổi trên dữ liệu vectơ (không có vấn đề viễn thám). Có một số ý kiến ​​tốt đẹp trong câu trả lời này nhưng không có giải pháp nào cả.


1
Khi bạn nói sự khác biệt, bạn có nghĩa là sự khác biệt về hình học, thuộc tính hoặc cả hai? Đây có phải là một quá trình phát hiện thay đổi?
Ryan Garnett

Có, đây là một quá trình phát hiện thay đổi. Đầu tiên tôi cần những thay đổi về hình học, thứ cấp tôi cần thay đổi về thuộc tính. Nhưng hình học là quan trọng hơn vì đầu ra nên được hình dung theo một cách nào đó.
Afr

Câu trả lời:


2

Mặc dù tôi nghĩ rằng Câu trả lời của Ryan là cách hành động hợp lý nhất, bạn có thể sử dụng Công cụ xử lý địa lý Intersect bằng cách sử dụng cả hai chiếc featureclass của bạn làm đầu vào.

Đầu ra mà bạn nhận được, sẽ chứa các thuộc tính từ cả hai đầu vào. Bạn có thể kiểm tra các tính năng có các giá trị khác nhau trong hai trường 'loại'.

Có một vài hạn chế đối với quy trình này:

  • Đầu tiên, Công cụ Intersect giống như tất cả các công cụ quá mức chỉ có thể hoạt động trên một số lượng giới hạn . Nếu bạn có quá nhiều đỉnh trong dữ liệu của mình, bạn sẽ phải xếp dữ liệu của mình và chạy quy trình theo từng giai đoạn.

  • Bạn sẽ tìm thấy nhiều đa giác cúi trong đầu ra.

  • Điều này đòi hỏi các lớp tính năng của bạn hoàn toàn bao gồm khu vực bạn quan tâm và không có khoảng trống.


Đây là công việc, cảm ơn! Đó là một giải pháp khá cơ bản nhưng đó là điều tôi có thể làm việc với.
Afr

6

Có một số cách để làm điều này. Tôi đã hoàn thành điều này trong quá khứ với kết quả tuyệt vời bằng cách sử dụng kết hợp các thuộc tính và xử lý raster. Tiền đề của quá trình là gán từng tính năng có giá trị n (1, 2, 4, 8, 16, 32, 64, v.v.). Việc chỉ định các giá trị này đảm bảo rằng khi bạn trừ lớp một (1985) khỏi lớp 2 (1997), bạn sẽ nhận được một giá trị duy nhất, xác định những gì nó đã thay đổi. Ví dụ: nếu 1 = tòa nhà, 2 = công viên, 4 = con dấu / chưa niêm phong và 8 = nước; bằng cách trừ đi các giá trị, không có cách nào để có được cùng một giá trị. Khi bạn thêm cột giá trị này, bạn sẽ muốn chuyển đổi đa giác thành raster, sử dụng ArcGIS hoặc QGIS. Tôi khuyên bạn nên đặt kích thước pixel raster thành một giá trị nhỏ (nghĩa là: nếu dữ liệu được thu thập từ hình ảnh Quickbird, sau đó đặt kích thước pixel của hình ảnh Quickbird). Sử dụng Máy tính Raster (trong ArcGIS hoặc QGIS) trừ Layer2 khỏi Layer1. Điều này sẽ dẫn đến Layer3, lớp đã thay đổi. Bạn có thể chuyển đổi dữ liệu này trở lại thành một lớp đa giác để phân tích thêm về GIS. Nếu bạn muốn biết thêm thông tin, hoặc chi tiết cụ thể, tôi có thể chia sẻ thêm với bạn.


Đây là một cách tiếp cận rất hay, nhưng tôi sẽ không chuyển đổi hình dạng của mình thành dữ liệu raster và quay lại vì tôi sẽ mất quá nhiều thông tin. Đây có phải là cách có thể đạt được chỉ với các lớp vector?
Afr

Bạn có thể làm một cái gì đó tương tự với các vectơ, nhưng nó không sử dụng cách tiếp cận giá trị. Bạn có thể muốn chơi với công cụ Khác biệt đối xứng có sẵn trong ArcGIS và QGIS. Tôi không biết về một cách tiếp cận dựa trên vector bắt chước cách tiếp cận mà tôi đã vạch ra.
Ryan Garnett

sự chấp thuận của bạn nhắc nhở tôi về việc sử dụng các thao tác bitwise như được mô tả ở đây blog.millermedeiros.com/ Kẻ
geogeek

Liệu ARCGIS 9.2 có công cụ khác biệt đối xứng. Tôi không thể tìm thấy. Phiên bản nào của ARCGIS có thể được sử dụng để phân tích sự khác biệt đối xứng này?
Bandrush Barda

Tôi tin rằng bạn cần giấy phép ArcInfo. Nếu bạn không có loại giấy phép đó, bạn có thể tải xuống ETGeoWizards. Sự khác biệt đối xứng là một công cụ có sẵn trong tab Công cụ địa lý. QGIS cũng có sự khác biệt đối xứng trong các công cụ Vector, miễn phí.
Ryan Garnett

0

Để thực hiện phát hiện thay đổi trong ArcGIS, từ hai tệp đa giác, hãy sử dụng thao tác lớp phủ (UNION). Điều đó cung cấp cho bạn ma trận chuyển tiếp hiển thị chi tiết về các thay đổi (có thể nằm trong vùng đất).


Tôi nghĩ rằng đây chỉ là một biến thể của câu trả lời được chấp nhận nhưng với hướng dẫn ít chi tiết hơn. Ngoài ra, trong khi cả Union và Intersect đều là các hoạt động lớp phủ đa giác, Intersect mà tôi sẽ sử dụng trong trường hợp này để giảm thiểu kích thước đầu ra và bất kỳ bộ dữ liệu trung gian nào.
PolyGeo
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.