Đặt vị trí đầu ra duy nhất cho nhiều tệp trong ModelBuilder?


8

Tôi đã tạo một mô hình trong ModelBuilder. Bước đầu tiên là để người dùng chỉ định vị trí của Cơ sở dữ liệu địa lý tệp mà tất cả các đầu ra sẽ được lưu vào. Điều tôi muốn là cho tất cả các đầu ra (từ các công cụ khác nhau trong mô hình) được lưu trong FGDB đó; tuy nhiên, nó có thể được gọi là bất cứ thứ gì và nằm ở bất cứ đâu.

Vậy làm cách nào để khiến đầu ra được lưu ở vị trí được chỉ định trong bước đầu tiên?

Câu trả lời:


8

Trang này trên trang của Esri sẽ cung cấp cho bạn tất cả thông tin bạn cần để thực hiện việc này trong ModelBuilder. Về cơ bản, bạn tạo một biến cho thư mục đầu ra / cơ sở dữ liệu địa lý - có thể do người dùng tạo hoặc mã hóa cứng - và sau đó gọi nó trong các công cụ khác bằng tên của nó, được bao quanh bởi %các ký hiệu.


2

Đầu tiên tạo một tập lệnh và xác định lớp tính năng đầu vào và các tham số đường dẫn không gian làm việc đầu ra. Tiếp theo, xuất mô hình ra kịch bản python hoặc vbs. Sau đó, bạn chỉ có thể chỉnh sửa mã để sử dụng biến không gian làm việc đầu ra cho tất cả các công cụ trung gian dựa trên không gian làm việc đầu ra ban đầu mà người dùng xác định.

Ví dụ dưới đây minh họa điều này bằng arcpy, tuy nhiên bạn sẽ phải sử dụng chỉ python hoặc vbs vì bạn đang sử dụng phiên bản 9.3.1 chứ không phải 10.

ví dụ

    inputlayer = arcpy.GetParameterAsText(0)
    outputpath = arcpy.GetParameterAsText(1)

    # Process: Buffer
    arcpy.Buffer_analysis(inputlayer, outputpath + "\\buffer.shp", "50 Feet", "FULL", "ROUND", "NONE", "")

    # Process: Select
    arcpy.Select_analysis(outputpath + "\\buffer.shp", outputpath + "\\bufferSelect.shp", "")

Tôi đã hy vọng làm tất cả trong ModelBuilder sau đó xuất nó ra. Tôi đã xem xét một số mô hình mà người sử dụng để làm việc ở đây trước đây với tôi và anh ấy đã đặt FGDB của mình ở bước đầu tiên, sau đó đã sử dụng "% Temp FGDB%" cho các đầu ra khác, nhưng tôi dường như không thể để làm cho nó hoạt động.
Mapman

1
%Temp FGDB%sẽ hoạt động nếu bạn thay đổi tên của bong bóng tham số trong ModelBuilder thành Temp FGDB: bất cứ điều gì bong bóng tham số được gọi là cách nó có thể được tham chiếu trong các công cụ khác.
nmpeterson

1

Tôi đã tìm ra một cách đơn giản để làm điều này trong trình xây dựng mô hình. Hãy nói rằng bạn đang lặp đi lặp lại qua một vài tệp để thực hiện một clip cho tất cả chúng.

1) Tạo một interator cho các lớp tính năng. Nhấp chuột phải vào nó và tạo một biến cho không gian làm việc.

2) Đổi tên bong bóng không gian làm việc thành "Không gian làm việc", đồng thời nhấp chuột phải vào nó và chọn "tạo tham số". Điều này sẽ nhắc bạn nhập vào thư mục chứa các tệp khi bạn chạy mô hình dưới dạng công cụ.

3) thêm công cụ clip. chạy một dòng từ bong bóng đầu ra "FeatureClass" của trình vòng lặp đến công cụ clip và chọn tính năng nhập.

1) thêm vào công cụ "Tạo thư mục" và nhấp chuột phải vào nó và tạo hai biến từ đó, tên và vị trí.

2) đặt tên của thư mục bất cứ điều gì bạn muốn. Tôi đã sử dụng "Đầu ra"

3) Đối với vị trí: Trong trường hợp của tôi, tôi đã có thư mục mà tôi muốn xuất thư mục để cư trú. Đó là thư mục chính tôi sử dụng làm đầu vào cho iterator. Tháng 11 tôi đổi tên nó thành "Workspace". Bây giờ chúng ta có thể tham khảo vị trí đó bằng cách nhập vào:

%workspace%

vào bong bóng vị trí cho công cụ tạo thư mục.

4) Bây giờ, bạn sử dụng công cụ trình kết nối để vẽ một đường từ đầu ra của công cụ "Tạo thư mục" (có tên là "Thư mục đầu ra" cho tôi) cho đến bong bóng lặp chính). Nó sẽ hiển thị một hộp thoại nhỏ, chọn tùy chọn "điều kiện tiên quyết". Điều này sẽ nói với nó rằng nó cần tạo thư mục trước khi chạy phần này.

5) Cuối cùng, trong đầu ra của công cụ clip của bạn, bạn có thể nhập:

%Output Folder%\%Name%_clip.shp

% Thư mục đầu ra% tham chiếu bong bóng đầu ra của thư mục mà chúng tôi đã tạo. iterator tạo ra một bong bóng gọi là "Tên" cho bạn, vì vậy chúng tôi đã tham chiếu rằng theo% Name%. Sau đó, tôi thêm một hậu tố để làm rõ rằng đó là một đầu ra từ công cụ clip.

Tôi hy vọng điều đó sẽ giúp! Ađam


0

Bạn có thể sử dụng công cụ "các lớp tính năng trong cơ sở dữ liệu địa lý" ở đầu trình xây dựng mô hình của mình, nơi bạn có thể kết nối nhiều đầu ra với nó. Bạn sẽ chỉ cần xác định vị trí của 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.