Tìm kiếm nhiều bộ dữ liệu tính năng cho các lớp tính năng ArcSDE bằng các bộ lọc trường trong ArcCatalog?


11

Tôi có ~ 30 bộ dữ liệu tính năng và ~ 100 lớp tính năng trải khắp các bộ dữ liệu tính năng. Tôi muốn tìm kiếm một lớp đối tượng theo tên trong số các bộ dữ liệu tính năng. Ngoài ra, tôi muốn truy vấn tất cả các lớp tính năng mà các bản ghi có "Date_Mod" từ someDate đến someOtherDate.

Đây là tất cả trong ArcGIS SDE 10.0 trên máy chủ sql 2008.

Câu trả lời:


10

Đối với tôi, tôi khuyên bạn nên chọn kịch bản python cho nhiệm vụ này (arcpy).

Đây là một số ý tưởng:

  1. Sử dụng ListDatasets để nhận tất cả các bộ dữ liệu.
  2. Sử dụng ListFeatureClass để nhận tất cả các featureclass.
  3. Sử dụng SearchCthon để truy vấn dữ liệu.
  4. Hãy xem chức năng Mô tả - nó cũng có thể rất hữu ích cho một số nhiệm vụ.

CẬP NHẬT:

Đã tìm thấy sau khi đăng: @Aragon đã mô tả chi tiết cách thực hiện bước 3.


Tôi đã tạo ra một kịch bản python xuất ra một cái gì đó tương tự với 4 mục được liệt kê, vì vậy tôi có thể chứng minh rằng thực tế là điều này là có thể. Đầu tiên, quyết định chính xác những gì bạn muốn đầu ra của bạn được. Trong tập lệnh của bạn, tạo bảng đầu ra trước. Sau đó, bạn bắt đầu ở cấp độ không gian làm việc và tiến hành một loạt các mô tả và danh sách, thu thập dữ liệu của bạn trên đường đi. Bạn sẽ cần thêm ListFields và thu thập các giá trị tối thiểu và tối đa trong các cột ngày. Thuật toán chính xác của bạn sẽ phụ thuộc vào định dạng của đầu ra & vị trí của bộ dữ liệu tính năng đầu vào (tất cả chúng có bắt nguồn từ một không gian làm việc chung không?).
RHB

6

bạn có thể kiểm tra phương pháp SearchCthon tại đây . chỉ có một điều là xây dựng một biểu thức SQL thay vì where_clause. Các biểu thức truy vấn cũng giống như các biểu thức SQL tiêu chuẩn trong ArcGIS. nó tương tự như hộp thoại Chọn theo thuộc tính. bạn có thể viết công cụ của riêng bạn bằng cách xem mã sau đây

Tóm lược

Hàm SearchCthon thiết lập một con trỏ chỉ đọc trên một lớp tính năng hoặc bảng. SearchCoder có thể được sử dụng để lặp qua các đối tượng hàng và trích xuất các giá trị trường. Việc tìm kiếm có thể tùy chọn bị giới hạn bởi một mệnh đề where hoặc theo trường và được sắp xếp tùy ý.

Cú pháp Tìm kiếm (bộ dữ liệu, {where_clause}, {spatial_Vference}, {Field}, {sort_fields})

Thí dụ:

import arcpy

# Open a searchcursor 
#  Input: C:/Data/Counties.shp 
#  FieldList: NAME; STATE_NAME; POP2000 
#  SortFields: STATE_NAME A; POP2000 D 
# 
rows = arcpy.SearchCursor("C:/Data/Counties.shp", "'POP2000' > 5000", "", "NAME; 
STATE_NAME; POP2000", "STATE_NAME A; POP2000 D") 
currentState = "" 

# Iterate through the rows in the cursor 
# 
for row in rows: 
    if currentState != row.STATE_NAME: 
        currentState = row.STATE_NAME 

    # Print out the state name, county, and population 
    # 
    print "State: %s, County: %s, population: %i" % \
            (row.STATE_NAME, row.NAME, row.POP2000) 

Tôi hy vọng nó sẽ giúp bạ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.