Apakah ada cara untuk menambahkan potongan kode arbitrer ke model ArcGIS?
Saya membayangkan sesuatu yang mirip dengan "tampilkan kode blok" pembuat ekspresi dalam pelabelan lanjutan atau kalkulator bidang .
Misalnya proyek saya saat ini dapat mengambil manfaat besar dari mengambil nama pengguna orang yang menjalankan alat. Saya tahu dengan python ini sederhana import os; os.environ.get('USERNAME')
. Saya pikir saya bisa menulis cuplikan itu get_username.py
, menambahkannya ke kotak alat di Arccatalog, lalu menambahkan alat itu ke model dan menggunakannya sebagai parameter model yang diperlukan untuk alat saya saat ini. Itu banyak pekerjaan untuk hal sekecil itu, dan lain kali saya mungkin menginginkan yang lain, seperti substitusi variabel inline atau variabel gabungan .
Saya pikir alat snipet kode atau sejenisnya dapat mengatasi semua kebutuhan ini secara umum, secara luas bermanfaat.
sumber
Jawaban:
Jawaban baru untuk posting lama, hanya untuk memperjelas cara membuat model yang dapat digunakan kembali untuk melakukan ini.
Buka model, Sisipkan-> Alat Model Saja-> Hitung Nilai.
Dalam Ekspresi, ketik:
getuser()
Di Blok Kode, ketik:
(Lihat " Mendapatkan nama pengguna dalam format tertentu " untuk sumber cuplikan kode nama pengguna dari @ChadCooper)
Untuk Tipe Data, pilih
String
.Ubah nama lingkaran output menjadi
username
. Model hasil akhir akan terlihat seperti:Dan Anda kemudian dapat hanya menarik model ini ke model masa depan dan referensi variabel yang disebut% username% dalam model atau skrip yang akan datang. Pastikan model ini berjalan sebelum Anda mencoba mengakses variabel% username%. Anda dapat melakukan ini dengan menggunakan prasyarat .
sumber
Sebenarnya Anda bisa melakukan ini dengan alat Calculate Value (Data Management) .
Itu tidak terlalu elegan (seluruh kode sumber untuk alat ini dicetak dalam log setiap kali berjalan), dan editor (benar-benar hanya kotak teks) sangat buruk.
Saya akan menyarankan menulis modul yang kemudian Anda dapat mengimpor dan memanggil fungsi dari dan kemudian Anda hanya perlu menulis cuplikan yang sangat singkat dalam dialog. Kalau tidak, itu tidak sangat bersih.
Hitung Nilai tersedia di semua tingkat lisensi untuk Arcgis v10. Dengan v9.x tersedia untuk Arcview hanya jika ekstensi Spatial atau 3D Analyst diinstal ( ref ).
sumber
%USERNAME%
ke koneksi database .sde). Setuju editor tidak layak nama itu, berfungsi dengan baik sebagai tujuan tempel.Mungkin saya salah paham pertanyaannya tetapi sepertinya fungsi alat skrip python, di dalam ArcToolBox, adalah apa yang Anda cari:
http://help.arcgis.com/en/arcgisdesktop/10.0/help/index.html#/Integrating_scripts_within_a_model/002w0000006n000000/
http://help.arcgis.com/en/arcgisdesktop/10.0/help/index.html#//001500000000000000.htm
Anda sebenarnya bisa menggunakan / menggabungkan beberapa bahasa skrip lain juga (R dalam contoh ini):
http://help.arcgis.com/en/arcgisdesktop/10.0/help/index.html#//002w0000007w000000
sumber