ArcGIS python kodunu paylaşmak için dosya organizasyonu


13

ArcGIS python kodunu ve coğrafi işleme araçlarını paylaşmak için en iyi organizasyon yapısı nedir? Hatta kod paylaşımı ve paylaşım araçları ayrı sorular mı?

Esri, Arcgis 9.3 ve 10.0 için yayınlanan araç yapısını dağıtma yöntemlerine sahiptir :

dağıtma aracı klasör yapısı örneği

Ancak diğer yerlerde insanlar Also do avoid distributing your code the way its done in Arc Scripts or Code Galleriesyerli python Distutils lehine şeyler söylüyorlar . Esri , karşı argümana biraz ağırlık veren 10.1 ( ref ) için karşılık gelen bir dağıtım araçları makalesine sahip görünmüyor .

GIS.se ne diyor?

Güncelleme: belki de çok geç olsa da, bu sorunun ucu, paylaşım için kullanılan araçlar (arcgis online, google drive, dropbox, github, bitbucket vb.) Gelmeden önce dosya ve klasör yapısı için en iyi uygulamalar hakkında daha fazla Oyna.

Güncelleme2: Kimse görünüşe göre yetim dağıtıcı yaklaşımı hakkında konuşmayacak mı?


Bunun için uygulanabilir bir çözüm buldunuz mu?
traggatmot

@traggatmot hayır sahip değilim. Bugün Esri'nin Github sitesini en çok yıldız ve / veya en aktif katkı geçmişine sahip python-with-toolboxes projesi için inceleyeceğim (bu Q'nun paylaşım ve yeniden kullanımla ilgili olması nedeniyle 2. vurgu)
matt wilkie

Yanıtlar:


10

10.1 ve 10.2'de gösterdiğiniz Toolshare Klasörleri artık belgelenmiyor.

Bunun şu anki tavsiyenin Toolshare Klasörleri yerine Geoprocessing Paketleri kullanmak olacağından şüpheleniyorum :

Coğrafi işleme paketleri, Sonuçlar penceresindeki bir veya daha fazla sonuçtan oluşturulur. Sonucu oluşturmak için kullanılan tüm veriler ve araçlar pakete dahil edilmiştir. Pakete metin belgeleri, slayt gösterileri ve sıkıştırılmış ZIP ​​dosyaları gibi ek dosyalar ekleyebilirsiniz. İş arkadaşınız, içeriğini hemen kullanmaya başlamak için paketi açar.

Örgütsel en iyi uygulama açısından, araç kutularını ve kullandıkları Python kodlarını saklama biçimim, onları dağıtmak için kullanılabilecek aynı klasör yapısındadır.


... varsayalım ki "organizasyonel yapı nedir" cevabı, bir geoprocessing paket dosyasını manuel olarak açıp onun doğasını inceleyerek keşfedilebilir.
matt wilkie

* .Zip olarak yeniden adlandırmayı ve * .gpk dosyasını açmayı denemedim ama benim anlayışım bunu yapabilmeniz. Bir toolshare klasörü gibi çok fazla görüneceğinden şüpheleniyorum.
PolyGeo

5

Google Drive'ı Python komut dosyalarını ve komut dosyası araçlarını iş arkadaşları arasında paylaşmak için kullanıyorum . Tüm komut dosyaları, bağlı tüm komut dosyası araçlarını (ve modellerini) içeren bir ArcGIS araç kutusuyla birlikte paylaşılan bir klasörde depolanır. Bu yaklaşımın çeşitli yararları vardır: 1) Herkes aynı komut dosyası sürümlerinde çalışır, 2) Yazma veya salt okunur ayrıcalıklar ayarlayabilirsiniz ve 3) Örneğin, farklı işyerleri, üniversiteler ve ülkelerde işbirliği çok daha kolaydır. Yönetebileceğiniz veya yapamayacağınız bir sunucuda kullanıcı erişimini ayarlamaya çalışmaktan çok sürün.


1
+1 ve aynı şey Dropbox
om_henners

Böylece tüm komut dosyalarınızı ve araç kutularınızı aynı klasör düzeyinde depolarsınız, değil mi?
RyanKDalton

@RyanDalton Basitlik açısından, klasörleri genellikle araç kutuları ile aynı düzeyde bir derinlikte depolarım. Bununla birlikte, Gdrive karmaşık dosya yapısını da destekler.
Aaron

2
Bu iş akışını çekici bulan herkes kesinlikle sürüm kontrol yazılımı Git'e ve popüler depo paylaşım web sitesi GitHub'a göz atmalıdır . Yukarıdakilerin tümünü sunar - ana komut dosyası, tanımlanmış ayrıcalıklar ve geniş erişilebilirlik - komut dosyasında yapılan tüm değişiklikleri izleme (tarih ve yazar dahil), üretim sürümünü korurken yeni özelliklerle deneme, birden çok yönetimi yönetme yeteneği aynı dosyaları aynı anda düzenleme, vb. Kullanımı daha karmaşık, ama son derece yararlı buldum.
Matt Parker

Google Drive, Dropbox, Git + Github, Mercurial + Bitbucket ve arkadaşlarınızın tümü, dosya ve kod paylaşmanın harika yollarıdır , ancak bu sorunun özü değildir. Paylaşım için kullanılan araçlar devreye girmeden önce dosya ve klasör yapısı için en iyi uygulamalardan sonrayım.
matt wilkie

1

Esri'nin ArcGIS Pro dokümanı Python modülleri aracılığıyla coğrafi işlemeyi genişletmek , Windows ve Linux ikili yükleyicilerini oluşturmak da dahil olmak üzere Distutils dostu bir projenin nasıl yapılandırılacağını gösterir.

(Not: Bu, komut dosyalarını ve araçları paylaşmak içindir, komut dosyalarını, haritaları ve verileri tek bir paket olarak paylaşmak için iyi bir model değildir.)

Kaynak proje düzeni:

Src ağacı

Bunu son kullanıcının sisteminde, C:\Path\to\ArcGIS\Desktop\python

Hedef klasör ağacı

Pip'den bahsetmiyorlar ama örnekleri inceleyerek neden işe yaramayacağını anlamıyorum. Örn: ortak düzenleme ve / veya sık sık değişen bir araç seti için pip install --editable X:\path\to\src,pip install --editable http://github.com/project/path/to/master

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.