Một-nhiều người tham gia vào một lớp tính năng vào một bảng


10

Tôi đang sử dụng ArcMap 10.2.2 với giấy phép Nâng cao. Tôi đã sử dụng ArcMap cho các phân tích cơ bản khác, nhưng còn khá mới đối với chương trình và chỉ có các kỹ năng mã hóa cơ bản, không có kinh nghiệm SQL ngoài các truy vấn rất cơ bản sử dụng trình tạo mã SQL trong ArcMap.

Tôi có đa giác về phạm vi địa lý của loài và tôi có một bảng với danh sách các mầm bệnh / bệnh do những loài đó mang theo. Một số loài mang nhiều mầm bệnh. Trong một thế giới lý tưởng, tôi sẽ tham gia đa giác của các phạm vi vào bảng của loài + mầm bệnh và giữ dữ liệu đa giác / không gian, nhưng dường như không có công cụ GIS nào để làm điều này (tôi sẽ sau đó đếm các mầm bệnh chồng chéo, vì vậy điều quan trọng là mỗi tổ hợp mầm bệnh có tính năng riêng, thay vì một tính năng có thông tin cho nhiều mầm bệnh). Đây là những gì dữ liệu của tôi trông như thế nào (# 1 & # 2, # 3 là cho sau này):

Bảng thuộc tính cho các tính năng không gian:

bảng thuộc tính cho các tính năng không gian

Bảng không có dữ liệu không gian:

bảng không có dữ liệu không gian

(Xin lưu ý rằng đây không phải là dữ liệu thực và sự kết hợp giữa các mầm bệnh có thể không có thật. Tôi thực sự có 115 đa giác và 519 hàng bảng. Các loài mang bất cứ nơi nào giữa 1-40 mầm bệnh và do đó các loài có khoảng từ 1-40 hàng trong bàn của tôi)

Là một phần thưởng bổ sung, vì những phân tích trong tương lai tôi cần thực hiện, lý tưởng nhất là tôi có thể thực hiện việc tham gia một-nhiều này để tôi có thể giữ một cột dữ liệu bổ sung từ bảng (xem bên dưới để biết ví dụ về nó trông như thế nào) Tuy nhiên, điều này ít quan trọng hơn vì nếu tôi có thể tìm ra cách tham gia, tôi chỉ có thể làm lại phân tích.

bảng không có dữ liệu không gian, có thêm trường

Có một vài giải pháp mà tôi tìm thấy cho vấn đề này, nhưng chúng không hiệu quả với tôi vì những lý do được liệt kê dưới đây:

Giải pháp 1: Blog của David Aalbers - Tôi còn quá nhiều người mới để tìm ra cách chỉnh sửa tập lệnh mới hơn và tìm ra cách nhập nó vào ArcMap. Tôi đã thử tập lệnh cũ hơn và nó chỉ tạo ra một tấn đa giác trống có tiêu đề test, test_1, test_1_1, test_1_1_1, v.v.

Giải pháp 2: Tham gia nhiều người - Tôi đã thử sử dụng công cụ Make Query Table (và tôi không có kiến ​​thức về SQL, mặc dù tôi đã sử dụng trình tạo biểu thức) và tôi đã nhận được ERROR 000383: Vấn đề với bảng, không thể tìm thấy không gian làm việc & Không thể thực thi (MakeQueryTable). Tất cả các tệp của tôi nằm trong cùng một thư mục, nhưng chúng không nằm trong cơ sở dữ liệu địa lý.


1
Đặt bảng truy vấn sẽ chỉ hoạt động với cơ sở dữ liệu
FelixIP

1
Tạo bảng truy vấn yêu cầu tất cả dữ liệu trong cùng một fgdb.
klewis

Câu trả lời:


22

Để nhân lên các tính năng, hãy làm điều này (có sẵn cho những người có ArcGIS 10.1 trở lên).

  1. Đặt các tính năng và bảng vào cùng một tệp cơ sở dữ liệu địa lý (bạn phải chuyển đổi tệp Shapefiles / Excel / DBF thành cơ sở dữ liệu địa lý để làm việc này).
  2. Đảm bảo đa giác của bạn có trường ID duy nhất sẽ được bảo tồn (bạn có thể tạo trường Dài và tính toán ObjectID vào đó để giá trị ObjectID sẽ không bị mất).
  3. Thực hiện nối chuẩn của bảng (thuộc tính, không có dữ liệu không gian) với các tính năng (dữ liệu không gian) trên trường khớp. Lưu ý rằng bảng thuộc tính của các tính năng (dữ liệu không gian) sẽ có cùng số lượng tính năng đã làm trước đó, nhưng đừng lo lắng về điều này, tất cả chúng sẽ hiển thị trong bước tiếp theo.
  4. Xuất các tính năng sang cùng một cơ sở dữ liệu địa lý như một lớp tính năng mới (nhấp chuột phải vào lớp từ mục lục và chọn xuất). Lưu ý rằng số lượng tính năng trong bảng thuộc tính của các tính năng được xuất hiện có số lượng tính năng phù hợp, giống như bảng gốc (có thuộc tính, không có dữ liệu không gian) hoặc, trong trường hợp có nhiều tham gia, một bộ hoàn chỉnh các tính năng cho tất cả các kết hợp các tính năng và hồ sơ liên quan.

Các tính năng sẽ nhân lên trong một lớp tính năng mới, nơi mọi tính năng sẽ xuất hiện (ngay cả khi nó không có trận đấu trong bảng) và khi có trận đấu 1: M trước đó, các tính năng sẽ được nhân lên để tạo tỷ lệ 1: 1 khớp từng tính năng với tất cả các mục trong bảng của nó. Trường ID duy nhất bạn đã tạo ở bước 2 sẽ cho phép bạn liên kết các đa giác được nhân với bộ đa giác đơn ban đầu. Với lớp tính năng mới của các tính năng được nhân lên, bạn có thể thực hiện các lựa chọn trên các trường bảng, tóm tắt, Tham gia không gian, v.v.

Nếu bạn muốn tạo một giá trị ID duy nhất đại diện cho từng loài và tổ hợp bệnh duy nhất, bạn có thể sử dụng phiên bản 10.2 của công cụ được mô tả trong bài đăng trên Blog này . Có loại khóa này cho phép bạn sử dụng nó để thực hiện các phép nối tiêu chuẩn để tóm tắt các bảng và thống kê dựa trên mối quan hệ đa trường để thay thế cho việc tạo mối quan hệ đa trường thực tế bằng cách thiết lập Bảng truy vấn.

Dưới đây là một tài liệu tham khảo tốt từ esri: https://support.esri.com/en/technical-article/000001228


Hoạt động hoàn hảo khi xuất khẩu trong cơ sở dữ liệu địa lý!
MooseGirl

1
Tôi đã sửa đổi bước 4 của mình để nói rằng việc xuất sẽ thành một lớp đối tượng mới trong cùng cơ sở dữ liệu địa lý như dữ liệu gốc. Theo quy trình đó sẽ luôn hoạt động, mặc dù có thể một số biến thể về nơi lưu trữ dữ liệu nguồn và đầu ra cũng có thể được cho phép.
Richard Fairhurst

Điều đó đã rõ ràng trước đây (mặc dù những người tuyệt vọng trong tương lai chắc chắn sẽ đánh giá cao nó được đánh vần), nhưng ban đầu tôi đã không kết nối đúng với thư mục cơ sở dữ liệu địa lý (hoặc một cái gì đó) bởi vì nó sẽ không cho phép tôi xuất sang cơ sở dữ liệu địa lý. Tôi khởi động lại và nó hoạt động tốt.
MooseGirl

1
Tôi đã thêm rằng các tính năng được tham gia sẽ không có số lượng thuộc tính phù hợp và các tính năng được xuất sẽ. Điều này làm tôi thất vọng rất nhiều khi tôi thử điều này, cho đến khi tôi trải qua tất cả các bước.
nittyjee

Nó có vẻ như thiếu 'không' trong số 3, "... sẽ notcó cùng số lượng tính năng ..."
matt wilkie

-2

Truy vấn SQL:

SELECT spp, disease, type
FROM table1, table2
WHERE table1.bimonial = table2.spp;
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.