Birkaç aydır Python ile kod yazıyorum ve öncelikle coğrafi işlem görevleri için oldukça karmaşık bazı senaryolar geliştirdim. Bir SQL / VBA / VBScript arka planından geldiğim için hala çok şey öğreniyorum.
Derlenmiş kod genellikle bir dil yorumlayıcısı tarafından işlenmesi gereken koddan daha hızlı çalışır biliyorum, bu yüzden büyük veri ile çalışmak için bir .EXE dosyasına bir coğrafi işleme Python komut dosyası derleme olasılığı ile ilgileniyorum.
Bu mümkün mü? Öyleyse, arcgisscripting veya arcpy modüllerini içe aktaran bir Python (.py) komut dosyasını derlemenin en iyi yolu nedir?
Ne yapmak istediğimi bulmaya birkaç dakika harcadım ve arama bu makaleyi diğerleri arasında döndürdü: http://www.ehow.com/how_2091641_compile-python-code.html
Derleyici çalışıyor gibi görünüyordu, ancak ortaya çıkan .EXE dosyasını yürüttükten sonra, bazı dosyaların kullanılamadığını söyleyen şifreli bir hata verdi.
Python betiği, komut satırından oldukça iyi görünen şeyleri çalıştırıyor, ancak .py dosyasını derleyebilseydim biraz hafif bir gelişme görüp göremediğimi merak ediyorum. Yine, işlenmesi için +20 saat süren bazı büyük veri kümeleriyle çalışıyorum (havzaları girdi suyu kalitesi örnek sitelerinden ayırmak). İyileştirmelerden alabileceğim her şeyi alacağım.
Senaryo sitelerinin bir test seti kullanılarak komut satırından hızlı dışında ArcGIS% 10 koştu karşı ArcCatalog'da yeni araç kutusundaki bir komut aracı olarak senaryoyu kurma. Komut satırından herhangi bir ArcGIS örneğini adanmış bir makinede açmadan komut dosyasını çalıştırıyorum.
Peki, arcgisscripting modülünü içe aktaran ve ArcToolBox araçlarını çağıran Python betiklerini derlemek mümkün müdür?
DÜZENLE
Giriş için teşekkürler, bu benim için yararlı. Komut dosyası, çok sayıda ArcGIS aracını koordine etmenin ve istenen biçimlerde / konumlarda / uygun atıfta bulunmanın bir yoludur. Zaten bazı geçici raster dosyaları için bir çizik kişisel geodatabase yerine sıfırdan bir klasöre yazarak ESG GRID formatında IMG formatına karşı saklanabileceğini düşünüyorum bazı yağ kesilmiş. Yine de profiler önerilerine göz atacağım.
Ofisimde Python'un "derlenmiş kodun bir yorumlayıcıyla çalışan koddan çok daha hızlı" olduğunu söyleyen bazı sorular var. araçlar her iki şekilde de zaman alacaktır. Ve bugünkü bilgi işlem makinelerinde, yorumlanmış kodun, fazladan bir yol katetmeyi garanti etmek için derlenmiş koddan çok daha yavaş olmayabileceği anlaşılıyor.
EDIT - raster formatlarıyla programın optimizasyonu hakkında güncelleme.
Bu Python programının "optimizasyonunu" takip etmek istedim ve geçici bir rasterleri kişisel bir coğrafi veri tabanı yerine GRID formatına yazarak 2 saatlik işlem süresini tıraş edebildim. Sadece bu değil, veri boyutu disk alanı tüketiminde önemli bir azalma oldu. Tüm rasterleri yazdığım orijinal çalışma (ve sadece rasterlere dönüştürülen nokta özellikleri ve daha sonra havza rasterleri) sadece bu dosyalar için 37.1 GB veri ile sonuçlandı. Son iki veri çıkışının GRID formatında bir klasöre yazılması 667 MB veriye indirgenmiştir.
GDB dosyasının bu verileri nasıl ele alacağını merak ediyorum. Ancak, işleme süremi 9.5 saatten 7.5 saate düşürmek, kesinlikle GRID formatında coğrafi veri tabanlarının dışındaki rasterlerle uğraşmayı savunmak için yeterlidir.