Mengatur lokasi keluaran tunggal untuk banyak file di ModelBuilder?

8

Saya telah membuat model di ModelBuilder. Langkah pertama adalah bagi pengguna untuk menentukan lokasi File Geodatabase tempat semua output akan disimpan. Yang saya inginkan adalah semua output (dari alat yang berbeda dalam model) disimpan dalam FGDB itu; Namun, itu bisa disebut apa saja dan terletak di mana saja.

Jadi bagaimana saya menyebabkan output disimpan di lokasi yang ditentukan pada langkah pertama?

MapMan
sumber

Jawaban:

8

Halaman ini di situs Esri akan memberi Anda semua informasi yang Anda butuhkan untuk melakukan ini dalam ModelBuilder. Pada dasarnya Anda membuat variabel untuk folder output / geodatabase - yang dapat dibuat pengguna atau hardcoded - dan kemudian memanggilnya di alat lain dengan namanya, dikelilingi oleh %simbol.

orang bodoh
sumber
2

Pertama buat skrip dan tentukan kelas fitur input dan parameter jalur ruang kerja keluaran. Selanjutnya, ekspor model ke skrip python atau vbs. Kemudian, Anda bisa mengedit kode untuk menggunakan variabel workspace output untuk semua alat perantara berdasarkan workspace output asli yang didefinisikan pengguna.

Contoh di bawah menggambarkan ini menggunakan arcpy, namun Anda harus menggunakan hanya python atau vbs karena Anda menggunakan versi 9.3.1 dan bukan 10.

misalnya

    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", "")
artwork21
sumber
Saya berharap untuk melakukan semuanya di dalam ModelBuilder daripada mengekspornya. Saya telah melihat beberapa model yang digunakan orang yang bekerja di sini sebelumnya untuk saya, dan ia telah menetapkan FGDB-nya di langkah pertama, kemudian menggunakan "% Temp FGDB%" untuk output lainnya, tapi saya tidak bisa untuk membuatnya bekerja.
MapMan
1
%Temp FGDB%akan bekerja jika Anda mengubah nama gelembung parameter di ModelBuilder menjadi Temp FGDB: apa pun yang disebut gelembung parameter adalah bagaimana ia dapat dirujuk di alat lain.
nmpeterson
1

Saya menemukan cara sederhana untuk melakukan ini dalam pembangun model. Katakanlah Anda mengulangi beberapa file untuk melakukan klip ke semuanya.

1) Buat interator untuk kelas fitur. Klik kanan padanya dan buat variabel untuk ruang kerja.

2) Ubah nama gelembung ruang kerja menjadi "Workspace", dan klik kanan padanya dan pilih "make parameter". Ini akan meminta Anda untuk memasukkan dalam folder yang berisi file ketika Anda menjalankan model sebagai alat.

3) tambahkan alat klip. jalankan baris dari gelembung output "FeatureClass" dari iterator ke alat klip, dan pilih fitur input.

1) tambahkan alat "Buat Folder", dan klik kanan padanya dan buat dua variabel dari itu, nama dan lokasi.

2) buat nama folder apa pun yang Anda inginkan. Saya menggunakan "Output"

3) Untuk lokasi: Dalam kasus saya, saya sudah memiliki folder tempat saya ingin folder keluaran berada. Itu adalah folder utama yang saya gunakan sebagai input untuk iterator. Ingat saya mengubah nama itu menjadi "Workspace". Sekarang kita bisa merujuk ke lokasi itu dengan mengetik:

%workspace%

ke dalam gelembung lokasi untuk alat folder buat.

4) Sekarang, Anda menggunakan alat konektor untuk menggambar garis dari output alat "Buat Folder" (bernama "Folder Output" untuk saya) hingga gelembung iterator utama). Ini akan menampilkan dialog kecil, pilih opsi "prasyarat". Ini akan memberi tahu bahwa ia perlu membuat folder sebelum menjalankan bagian ini.

5) Akhirnya, pada output alat klip Anda, Anda dapat mengetik:

%Output Folder%\%Name%_clip.shp

% Output Folder% merujuk gelembung keluaran dari folder yang kami buat. iterator membuat gelembung yang disebut "Nama" untuk Anda, jadi kami merujuknya dengan% Name%. Lalu saya menambahkan akhiran untuk memperjelas bahwa itu adalah keluaran dari alat klip.

Saya harap itu membantu! Adam

Adam B
sumber
0

Anda dapat menggunakan alat "kelas fitur dalam sebuah geodatabase" di bagian atas pembuat model Anda, tempat Anda dapat menghubungkan banyak output ke sana. Anda hanya perlu menentukan lokasinya.

Mehdi
sumber