Sắp xếp lớp tính năng để tính toán trường ID tuần tự bằng Máy tính trường ArcGIS?


8

Tôi đang ở trong ArcMap và tôi muốn sắp xếp các bản ghi dựa trên một trường và sau đó thực hiện Trường tính toán với giá trị tăng tự động với sắp xếp tại chỗ. Có ý kiến ​​gì không?

Có vẻ như tôi có thể nhận được một con trỏ cập nhật trên lớp tính năng sau đó thực hiện tăng tự động, nhưng tôi vẫn muốn xem liệu có cách nào để thực hiện việc này trong Máy tính trường trong ArcMap không.

Câu trả lời:


5

Tôi đã sử dụng ModelBuilder và tôi đã thực hiện sắp xếp trường theo sau là trường tính toán sử dụng mã sắp xếp bên dưới và nó hoạt động rất tốt.

Trước đây, tôi đã thử hai bước này bên ngoài ModelBuilder và nó đã thất bại.

Biểu hiện:

autoIncrement()

Loại biểu thức: PYTHON_9.3

Khối mã:

rec=0
def autoIncrement():
    global rec
    pStart = 1 #adjust start value, if req'd 
    pInterval = 1 #adjust interval value, if req'd
    if (rec == 0): 
        rec = pStart 
    else: 
        rec = rec + pInterval 
    return rec

11

Hãy thử sử dụng Sắp xếp (Quản lý dữ liệu) theo sau là Trường tính toán (Quản lý dữ liệu) bằng cách sử dụng ví dụ tăng tự động trên trang trợ giúp ví dụ Trường tính toán .

Nếu bạn cần sắp xếp dữ liệu và cập nhật tại chỗ (không có tập dữ liệu trung gian), thì tôi nghĩ bạn sẽ phải sử dụng UpdateCoder cũng có thể sắp xếp theo một trường.


Đề nghị tuyệt vời. Và nếu bạn cần làm điều này trên cơ sở định kỳ, hãy xem xét liên kết các công cụ này với nhau trong ModelBuilder.
RyanKDalton

1
Mẫu ESRI để đánh số tuần tự dựa trên FID (ID hàng gốc). Tôi muốn đánh số dựa trên loại hiện tại - có thể thực hiện được không? Trong mã từ ESRI, rec "toàn cầu" là gì? Cảm ơn.
GeorgeC

Câu trả lời của tôi hy vọng đã trả lời câu hỏi đầu tiên của bạn theo hai cách: 1) sử dụng Sắp xếp (Quản lý dữ liệu) hoặc 2) sử dụng UpdateCoder với đối số trường sắp xếp. Tôi không nghĩ rằng bạn có thể truy cập trạng thái sắp xếp của chế độ xem bảng hiện tại thông qua Arcpy, mặc dù có thể có thể thông qua ArcObjects. Đối với câu hỏi thứ hai của bạn, globallàm cho biến vẫn tồn tại giữa các phép tính (một phép tính trên mỗi hàng) để nó có thể lưu trữ số lượng chạy được sử dụng trong mỗi phép tính.
blah238

Thay vì sử dụng ví dụ gia tăng dựa trên biến toàn cục, bạn có thể sử dụng trình itertools.count tạo .
dùng2856
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.