Hợp nhất các bảng thuộc tính từ các lớp đối tượng thành một bảng duy nhất?


8

Tôi có một số lượng lớn (khoảng 1.100) lớp tính năng đa giác.

Những gì tôi muốn làm là hợp nhất các bảng thuộc tính từ mỗi lớp tính năng này vào một bảng duy nhất , theo cách đơn giản nhất và nhanh nhất có thể.

Đây sẽ là bước đầu tiên trong tập lệnh hoặc mô hình sau đó sử dụng bảng đó với tất cả các giá trị đa giác từ tất cả các lớp để thực hiện một số phép nối và lựa chọn bảng. Mỗi lần tôi chạy tập lệnh này, tôi sẽ muốn thực hiện lại việc hợp nhất bảng, vì các lớp tính năng đa giác cơ bản có thể thay đổi. Nếu có thể ghi bảng đã hợp nhất vào bộ nhớ, với tốc độ, đó sẽ là điều tốt nhất.

Tôi đang sử dụng ArcGIS 10.1. Tôi nghĩ rằng tôi có thể làm điều này đủ dễ dàng trong VBA / VB.net, nhưng có thể đơn giản nhất để thiết lập nó thành mô hình ModelBuilder, để dễ dàng chia sẻ với các đồng nghiệp.


Python là ngôn ngữ tốt hơn nhiều để sử dụng cho việc xử lý địa lý so với VB.NET. ArcPy chỉ cung cấp rất nhiều thứ hữu ích mà bạn không có trong các môi trường khác.
Giá của Curtis

Câu trả lời:


8

Tôi nghĩ rằng cá nhân tôi sẽ có mô hình chạy công cụ Hợp nhất để tạo một lớp đối tượng được hợp nhất được lưu trữ trong in_memorykhông gian làm việc và sau đó sử dụng công cụ Tạo bảng xem với lớp tính năng được hợp nhất đó làm đầu vào để tạo phiên bản trong bộ nhớ của bảng thuộc tính .

Công cụ Make Table View cũng cung cấp tính linh hoạt để áp dụng truy vấn SQL để lọc bảng.


Tôi bắt đầu xuống con đường này. ArcMap ném bom vào tôi khi xây dựng mô hình ModelBuilder, chứ đừng nói đến việc chạy nó. Các bộ dữ liệu rất lớn và nhiều đến mức giới hạn bộ nhớ 32 bit.
user13706

Tôi tự hỏi nếu đảo ngược thứ tự - tạo hai chế độ xem bảng và sau đó hợp nhất - có dễ dàng hơn trên máy trạm của bạn không?
nmpeterson

1

Nếu bạn có một tập hợp các trường là những trường duy nhất bạn muốn, Append_man Management sẽ chỉ sao chép các trường có khớp tên. Nó có thể hiệu quả hơn về bộ nhớ so với Hợp nhất. Nếu bộ nhớ vẫn giết chết bạn, bạn có thể sử dụng Trình lặp ModelBuilder 10.x để nối thêm chúng cùng một lúc. Nếu bạn đang viết cho in_memory và bảng không quá lớn, điều đó sẽ hoạt động tốt.

Một điều khác, nếu bạn thực sự cần một bảng (chứ không phải đầu ra của lớp tính năng), bạn có thể cắt giảm bộ nhớ cần thiết bằng cách tạo chế độ xem bảng từ đầu vào của bạn và nối thêm chúng - vì vậy bạn có thể bỏ qua các trường hình dạng (có lẽ lớn) .

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.