Google Earth Engine: Javascript API ve Python API

Sep 22 2020

Google Earth Engine, en yaygın olarak tarayıcıdaki Python API veya Javascript API aracılığıyla kullanılıyor gibi görünüyor. Birini seçmeye çalışırken, bir Tyler Erickson sunumunda şu karşılaştırmaya rastladım :

Bazı farklılıklar açık olsa da (örneğin Python'da daha birçok çizim seçeneği), diğerleri benim için daha soyut.


Sorular:

  1. Pratik anlamda, Python API'de "Earth Engine'e bir dizi çağrı" yapabilmenin avantajları nelerdir?
  2. Verileri dışa aktarırken verimlilik veya hesaplamaların hızı açısından, burada listelenmeyen başka farklılıklar var mı?

Yanıtlar

3 TylerErickson Sep 22 2020 at 16:46

Soruda atıfta bulunulan slayttaki ek bağlam için, bunun Earth Engine Kod Düzenleyicisi (Earth Engine JavaScript API'sına karşı geliştirme için bir web IDE) ile Earth Engine Python API'yi karşılaştırdığını unutmayın. Slayt, 3 yıldan uzun bir süre önce yapılmış bir sunumdan alınmıştır ve hem JavaScript hem de Python API'leri değişmiştir ve Kod Düzenleyici, komut dosyası modülleri kullanarak Kod Düzenleyici komut dosyaları arasında kod paylaşma yeteneği gibi ek özellikler kazanmıştır .

Soru 1 için:

Açıklığa kavuşturmak için, JavaScript veya Python istemci kitaplıkları kullanılarak ve ayrıca Kod Düzenleyici içinden bir dizi istek yapılabilir . Ancak, doğrudan Python (veya JavaScript) istemci kitaplığıyla çalışmak, sonuçlarla neler yapabileceğiniz konusunda size daha fazla esneklik sağlar. Örneğin, Earth Engine çağrılarını diğer hizmetlere yönelik isteklerle karıştırabilir ve şu anda Kod Düzenleyici geliştirme ortamı tarafından desteklenmeyen kitaplıkları kullanabilirsiniz.

Bir dizi arama yapabilmek aşağıdaki örnekleri kolaylaştırır:

  • Duyarlılık Analizleri. Bir (veya daha fazla) parametreyi değiştirirken veri elde edebilirsiniz, bu da bir hassasiyet analizi gerçekleştirmenize olanak tanır . Örneğin, değişen scaleparametre ee.Image.reduceRegion'dan elde edilen sonuçları nasıl etkiler ?
  • Seri Çıkışlar. Bir dizi çıktı görüntüsü, harita veya tablo üretebilirsiniz. Örneğin, bir ülkedeki her havza için bulutsuz bir görüntü oluşturabilirsiniz.
  • Jupyter Dizüstü Bilgisayarlar. Ara sonuçları görüntüleyen iş akışları / öğreticiler geliştirebilirsiniz. Örneğin, bu eğiticiden bağlantılı Jupyter / Colab not defterine bakın .

Soru # 2 için:

  • Slayttaki basit listenin ötesinde, söz dizimindeki bazı farklılıklar gibi kesinlikle başka farklılıklar da vardır . Diğeri, Earth Engine Kod Düzenleyicisinin, geliştiricilerin barındırılan uygulamaları ( Earth Engine Uygulamaları ) kolayca yayınlamalarına olanak sağlamasıdır ; bu, aynı şeyi Python API kullanarak yapmak için önemli ölçüde daha fazla çalışma gerektirir.
  • Hem JavaScript hem de Python API'leri , Earth Engine arka uç sunucularında gerçekleştirilen hesaplamalar için daha düşük seviyeli bir REST API kullanır, bu nedenle birini diğerine göre kullanmanın hesaplama veya dışa aktarma performansı avantajı yoktur.