Yanıtlar:
Hangi araçları kullanacağına karar vermeden önce, kullanıcının amaçlarını açıkça tanımlaması gerektiğine inanıyorum. ModelBuilder ve Python komut dosyası farklı görevlerde mükemmeldir. Birkaç düşünce:
Basit metin işleme Python ile çok kolaydır ve ModelBuilder ile çok zor veya mümkün değildir.
örneğin, "m_2010_naip_2310345_nw.img" ile "2310345nw.img" arasındaki dosya adlarının bir listesini yeniden adlandırmak için os.path
modül kullanılarak Python ile kolayca yapılabilir .
Diğer yandan:
ModelBuilder, yaygın araçları hızlı bir şekilde bir araya getirmek ve hata ayıklama komut dosyalarına duyulan ihtiyacı ortadan kaldırmak için çok kullanışlıdır.
ModelBuilder, klasörler ve alt klasörler arasında geçiş yapmak için uygulaması kolay, çok kullanışlı bir özyinelemeli yineleyiciye sahiptir.
ModelBuilder, karmaşık görevler için iş akışını görsel olarak ve sezgisel olarak gösteren mükemmel bir performans sergiliyor .
ModelBuilder, Python script araçlarını içerebilir .
Yalnızca ArcGIS sınırları dahilinde çalışıyorsanız, yaklaşma yaklaşımını belirlemeye çalışırken göz önünde bulundurmam gereken birkaç husus var.
Bu düşünceler göz önüne alındığında:
Kişisel kullanım için "hangisi daha iyidir" cevabı muhtemelen yoktur, ancak istihdam olanaklarına uzun vadeli bakıyorsanız, Python'u öğrenerek kendinizi yalnızca önceden programlanmış araçların nasıl kullanılacağını bilenlerin dışında tutacaksınız veya sadece ModelBuilder'ı kullanmayı biliyorum. Ayrıca, ArcGIS (ArcPy) için Python sınırlarının dışına çıkma ve diğer GIS dışı kütüphanelerin yanı sıra diğer özel ve açık kaynaklı GIS kütüphanelerini kullanarak çok daha fazla iş ve projeyi otomatikleştirmeye başlayabilmenizi sağlar. , görüntü manipülasyonu, istatistikler vb.
Model Builder, görsel programlama dilini öğrenmek için büyük ve kolay bir yöntemdir ve genel olarak GIS programlamasına iyi bir giriş yapar. Ancak bazı şeylerde python daha fazlasını yapabilir.
Bir örnek, ESRI dışı GIS kütüphanelerinin entegrasyonu. Neredeyse Açık Kaynak GIS'in tümüne python yoluyla da erişilebilmektedir (örneğin, GRASS , Sextante , QGIS , SAGA ). Bu bana çok yardımcı oldu, çünkü sadece bir ArcView lisansım var. Bu yüzden ArcGIS’te belirli bir coğrafi işlem aracını her kullanamadığımda Açık Kaynak CBS’de başka hangi seçeneklerin mevcut olduğuna bakıyorum. Daha sonra bu OpenSource araçlarını alıyorum ve bunları daha büyük bir python betiğinde ArcGIS araçlarıyla birleştiriyorum veya daha küçük bir python betiği ile ModelBuilder'da birleştiriyorum.
Eminim diğer üyeler daha fazla avantaj söyleyebilir.
Python ve ArcGIS'i kullanırken, ArcGIS'te olanlara ek olarak Python'un tüm işlevselliğini elde edersiniz. Bu tür bir güce ve esnekliğe ihtiyacınız varsa isteklerinize bağlıdır. Ek olarak, Python gibi bir programlama dilini tanımak ve gerçekten bu programdan yararlanmak zaman alır. Bu yatırım sana değerse, size kalmış. Ancak, ciddi veri işleme için, gerçek bir kodlama dili cephaneliğinizde çok iyi bir eklentidir.
ModelBuilder'ın kaçırabileceği herhangi bir fonksiyonellik dışında, daha temel bir tartışma da var. Genel olarak, komut dosyaları karmaşık iş akışları oluşturmak için çok daha uygundur. Kod yukarıdan aşağıya işlenir ve karmaşık işlevler, örneğin işlevler kullanılarak daha küçük alt görevlere bölünebilir. veya nesneler. Model üreticisi gibi bir grafik aracı büyük bir spagetti olma eğilimindedir.
Python komut dosyaları oluştururken kısmiyım. En azından benim için kod yazmak, kutulara vb. Bağlantı yapmakla uğraşmaktan çok daha eğlenceli.
Python komut dosyası oluşturma işleminde gerçekten harika olan, komut dosyalarınızı sizin için uygun bir zamanda çalışacak şekilde programlayabilmenizdir. Tamamlanması biraz zaman alan veya normal çalışma saatleri dışında çalıştırılması gereken bir komut dosyanız varsa, bu gerçekten kullanışlıdır. Burada bir betiği nasıl programlayacağınıza dair bir örnek görebilirsiniz .
@Aaron'dan da bahsedildiği gibi, kolayca Python betiğinde döngü oluşturabilirsiniz.
Sadece Python komut dosyası kullanıyorsanız, Model Builder ile bir model oluşturmak ve onu bir Python komut dosyası olarak dışa aktarmak isteyebilirsiniz. Bunu bir komut dosyasında birkaç aracı nasıl kullanacağımı anlamakta sorun yaşıyorsam bazen yapıyorum. Senaryoları nasıl bir araya getireceğine dair bir fikir edinmene yardımcı olabilir.
Python komut dosyasıyla değil, model oluşturucu ile hiç bir çözüme mahkum olmadığımı fark ettim. Model oluşturucunun bana göre biraz 'kara kutu' olması sorunun nerede olduğunu bulmayı zorlaştırıyor.
Python hakkında daha fazla yardım bulabileceğimi de buldum. Model oluşturucu hakkında birçok çıkmaz konu ve konu bulma eğilimindeyim. Ayrıca, Python'da olduğu gibi yazdığınız herhangi bir betiğin çoğu bölümünün küçük parçacıklarını bulabileceğiniz bir alan daha az olacaktır.