Organisasi file untuk berbagi kode python ArcGIS

13

Apa struktur organisasi terbaik untuk berbagi kode python ArcGIS dan alat geoprocessing? Atau bahkan, apakah berbagi kode dan alat berbagi pertanyaan terpisah?

Esri memiliki Metode untuk mendistribusikan struktur alat , diterbitkan untuk Arcgis 9.3 dan 10.0:

mendistribusikan contoh struktur folder alat

Namun di tempat lain orang mengatakan hal-hal seperti yang Also do avoid distributing your code the way its done in Arc Scripts or Code Galleriesmendukung Distutils python asli . Esri tampaknya tidak memiliki artikel alat pendistribusi yang sesuai untuk 10.1 ( ref ), memberikan bobot pada argumen balasan.

Apa kata GIS.se?

Pembaruan: meskipun mungkin sudah terlambat, tetapi inti pertanyaan ini adalah tentang praktik terbaik untuk struktur file dan folder sebelum alat yang digunakan untuk berbagi (arcgis online, google drive, dropbox, github, bitbucket, dll.) bermain.

Update2: dan tidak akan ada yang berbicara untuk pendekatan distutils yang tampaknya yatim piatu?

matt wilkie
sumber
Apakah Anda pernah menemukan solusi yang bisa diterapkan untuk ini?
traggatmot
@traggatmot tidak, saya belum. Hari ini saya akan memeriksa situs Github Esri untuk proyek python-with-toolboxes dengan bintang paling banyak dan / atau sejarah kontribusi paling aktif (penekanan pada tanggal 2 karena Q ini adalah tentang berbagi dan menggunakan kembali)
matt wilkie

Jawaban:

10

Pada 10.1 dan 10.2 Folder Toolshare yang Anda ilustrasikan tampaknya tidak lagi didokumentasikan.

Saya menduga ini karena rekomendasi saat ini adalah untuk menggunakan Paket Geoprocessing daripada Folder Toolshare:

Paket pemrosesan geoproses dibuat dari satu hasil atau lebih di jendela Hasil. Semua data dan alat yang digunakan untuk membuat hasil sudah termasuk dalam paket. Anda dapat menambahkan file tambahan ke paket, seperti dokumen teks, tayangan slide, dan file ZIP terkompresi. Rekan Anda membongkar paket untuk segera mulai menggunakan kontennya.

Dalam hal praktik terbaik organisasi, cara saya menyimpan kotak alat dan kode Python apa pun yang mereka gunakan adalah dalam struktur folder yang sama yang masih dapat digunakan untuk membantu mendistribusikannya yaitu struktur Folder Toolshare.

PolyGeo
sumber
... yang saya kira berarti jawaban untuk "apa struktur organisasi" dapat ditemukan dengan secara manual membuka ritsleting file paket geoprocessing dan memeriksa jeroan itu.
matt wilkie
Saya belum mencoba mengubah nama menjadi * .zip dan membuka ritsleting * .gpk tetapi pengertian saya adalah Anda bisa melakukannya. Saya menduga itu akan terlihat sangat buruk seperti folder toolshare.
PolyGeo
5

Saya telah menggunakan Google Drive untuk berbagi skrip Python dan alat skrip antara kolega. Semua skrip disimpan dalam folder bersama dengan kotak alat ArcGIS, yang berisi semua alat skrip yang ditautkan (dan model). Ada beberapa manfaat dari pendekatan ini: 1) Semua orang bekerja dengan versi skrip yang sama, 2) Anda dapat menetapkan hak istimewa menulis atau hanya-baca, dan 3) Kolaborasi, misalnya, di berbagai tempat kerja, universitas, dan negara yang berbeda jauh lebih mudah dengan Google Berkendara daripada mencoba mengatur akses pengguna pada server yang mungkin atau mungkin tidak Anda kelola.

Harun
sumber
1
+1, dan hal yang sama dapat dikatakan untuk Dropbox
om_henners
Jadi, Anda menyimpan semua skrip & kotak alat di tingkat folder yang sama, benar?
RyanKDalton
@RyanDalton Untuk kesederhanaan, saya biasanya menyimpan folder satu dalam pada tingkat yang sama dengan kotak alat. Meskipun, Gdrive mendukung struktur file yang rumit juga.
Aaron
2
Siapa pun yang menemukan alur kerja ini menarik harus melihat perangkat lunak kontrol versi Git dan situs web berbagi-repositori yang populer, GitHub. Ini memberi Anda semua hal di atas - skrip master, hak istimewa yang ditentukan, dan aksesibilitas luas - dengan kemampuan untuk melacak semua perubahan yang dilakukan pada skrip (termasuk tanggal dan penulis), bereksperimen dengan fitur-fitur baru sambil mempertahankan versi produksi, mengelola beberapa mengedit file yang sama secara bersamaan, dll. Ini lebih rumit untuk digunakan, tetapi saya merasa ini sangat berguna.
Matt Parker
Google Drive, Dropbox, Git + Github, Mercurial + Bitbucket , dan teman - teman semuanya adalah rute hebat untuk berbagi file dan kode, tetapi itu bukan inti dari pertanyaan ini. Saya mengejar praktik terbaik untuk struktur file dan folder sebelum alat-digunakan-untuk-berbagi ikut bermain.
matt wilkie
1

Esri's ArcGIS Pro doc Memperluas proses geoprosesing melalui modul Python menunjukkan bagaimana membuat struktur proyek yang ramah terhadap Distutils, termasuk membangun installer biner Windows dan Linux.

(Catatan: ini untuk berbagi skrip dan alat, ini bukan model yang baik untuk berbagi skrip dan peta dan data sebagai satu paket.)

Tata letak proyek sumber:

Pohon Src

Menjadi ini pada sistem pengguna akhir, di bawah C:\Path\to\ArcGIS\Desktop\python

Pohon folder tujuan

Mereka tidak menyebutkan pip tetapi dari mempelajari contoh-contoh saya tidak melihat mengapa itu tidak berhasil. Contoh: untuk pengeditan kolaboratif dan / atau perangkat yang sering berubah, instal menggunakan pip install --editable X:\path\to\src,pip install --editable http://github.com/project/path/to/master

matt wilkie
sumber