Earth Engine Python API'si, Google Colaboratory not defterine dağıtılabilir. Colab not defterleri, bulutta çalışan ve Google Drive ile yüksek düzeyde entegre olan Jupyter not defterleridir. Bu sayede, not defterlerini oluşturmak, bunlara erişmek ve paylaşmak kolaydır. Google Colab veya Jupyter not defterlerini bilmiyorsanız lütfen Colab karşılama sitesini keşfetmeye biraz zaman ayırın.
Aşağıdaki bölümlerde, Earth Engine'in Google Colab'da dağıtılması ve üçüncü taraf Python paketleri kullanılarak harita ve grafiklerin görselleştirilmesi açıklanmaktadır.
Colab not defteri açma
Not defterleri Google Drive'dan veya Colaboratory arayüzünden açılabilir.
Yeni not defteri
Google Drive
Google Drive'ı açıp yeni bir dosya oluşturun.
- Yeni > Diğer > Colaboratory
- Bir klasörü sağ tıklayın ve bağlam menüsünden Diğer > Colaboratory'yi seçin.
Colab arayüzü
Colab sitesini ziyaret edin ve yeni bir dosya oluşturun.
- Dosya > Yeni > Yeni Python 3 not defteri
- Daha önce Colab ile etkileşim kurduysanız yukarıdaki bağlantılı siteyi ziyaret ettiğinizde, pencerenin alt kısmındaki açılır menüyü kullanarak yeni bir dosya başlatabileceğiniz bir dosya gezgini görürsünüz.
Mevcut not defteri
Mevcut not defteri dosyaları (.ipynb), Google Drive'dan ve Colab arayüzünden açılabilir.
Google Drive
Colab not defterleri, not defteri dosyalarının oluşturulduğu yere bağlı olarak Google Drive'daki çeşitli klasörlerde bulunabilir. Google Drive'da oluşturulan not defterleri, oluşturuldukları veya taşındıkları klasörde bulunur. Colab arayüzünden oluşturulan not defterleri varsayılan olarak "Colab Not Defterleri" adlı bir klasöre kaydedilir. Bu klasör, Colab ile çalışmaya başladığınızda Google Drive'ınızın "Drive'ım" klasörüne otomatik olarak eklenir.
Colab dosyalarını sarı "CO" simgesi ve ".ipynb" dosya uzantısı ile tanıyabilirsiniz. Dosyaları, çift tıklayıp açılan sayfanın üst kısmındaki Aç > Colaboratory düğmesini seçerek veya dosyayı sağ tıklayıp bağlam menüsünden Aç > Colaboratory'yi seçerek açın.
Colab arayüzü
Not defterlerini Colab arayüzünden açarak Google Drive, GitHub ve yerel donanımdaki mevcut dosyalara erişebilirsiniz. İlk kullanımdan sonra Colab arayüzünü ziyaret ettiğinizde bir dosya gezgini modülü gösterilir. Dosya gezgininin üst kısmındaki sekmelerden bir kaynak seçin ve açmak istediğiniz .ipynb dosyasına gidin. Dosya gezginine, Colab arayüzünde Dosya > Not defteri aç'ı seçerek veya Ctrl+O klavye kombinasyonunu kullanarak da erişebilirsiniz.
API'yi içe aktarma ve kimlik bilgileri alma
Bu bölümde, Earth Engine Python API'sinin nasıl içe aktarılacağı ve erişimin nasıl doğrulanacağı gösterilmektedir. Bu içerik, Colab not defteri olarak da sunulmaktadır:
Earth Engine API, Google Colaboratory'ya varsayılan olarak dahil edildiğinden yalnızca içe aktarma ve kimlik doğrulama işlemi gerekir. Bu adımlar her yeni Colab oturumu için veya Colab çekirdeğinizi yeniden başlatırsanız ya da Colab sanal makineniz etkin olmamanız nedeniyle geri dönüştürülürse tamamlanmalıdır.
API'yi içe aktarma
API'yi oturumunuza aktarmak için aşağıdaki hücreyi çalıştırın.
import ee
Kimlik doğrulama ve başlatma
Earth Engine sunucularına erişiminizi doğrulamak için ee.Authenticate
işlevini, başlatmak için de ee.Initialize
işlevini çalıştırın. Bir kod hücresi ekleyin, aşağıdaki satırları girin, projeyi düzenleyin ve hücreyi çalıştırın.
# Trigger the authentication flow. ee.Authenticate() # Initialize the library. ee.Initialize(project='my-project')
Earth Engine hesabınıza erişim izni vermeniz istenir. Bu adımı tamamlamak için hücreye basılan talimatları uygulayın.
API'yi test etme
Everest Dağı'nın yüksekliğini yazdırarak API'yi test edin. API'yi kullanmadan önce ilk kullanıma hazırlamanız gerektiğini unutmayın. Aşağıdaki Python komut dosyasını yeni bir hücrede çalıştırın.
# Print the elevation of Mount Everest. dem = ee.Image('USGS/SRTMGL1_003') xy = ee.Geometry.Point([86.9250, 27.9881]) elev = dem.sample(xy, 30).first().get('elevation').getInfo() print('Mount Everest elevation (m):', elev)
Harita görselleştirme
ee.Image
nesneleri not defteri çıkış hücrelerinde gösterilebilir. Aşağıdaki iki örnekte, statik bir görüntü ve etkileşimli bir harita gösterilmektedir.
Statik resim
IPython.display
modülü, Earth Engine getThumbUrl
işlevine yapılan bir çağrıdan oluşturulan bir resmi temsil eden URL'nin sonuçlarını görüntüleyebilen Image
işlevini içerir. Aşağıdaki komut dosyası, dünya genelindeki bir yükseklik modelinin küçük resmini gösterir.
# Import libraries. import ee from IPython.display import Image # Trigger the authentication flow. ee.Authenticate() # Initialize the library. ee.Initialize(project='my-project') # Import a DEM and display a thumbnail of it. dem = ee.Image('USGS/SRTMGL1_003') Image(url=dem.updateMask(dem.gt(0)) .getThumbUrl({'min': 0, 'max': 4000, 'dimensions': 512, 'palette': ['006633', 'E5FFCC', '662A00', 'D8D8D8', 'F5F5F5']}))
Etkileşimli harita
folium
paketi, etkileşimli bir Leaflet haritasında ee.Image
nesnelerini görüntülemek için kullanılabilir. Folium'da Earth Engine'dan gelen karoları işlemek için varsayılan bir yöntem yoktur. Bu nedenle, kullanılmadan önce bir yöntem tanımlanmalı ve folium.Map
modülüne eklenmelidir.
Aşağıdaki komut dosyası, Earth Engine karolarını işleme yöntemi ekleme ve bunu bir Leaflet haritasında yükseklik modelini görüntülemek için kullanma örneğini gösterir.
# Import libraries. import ee import folium # Trigger the authentication flow. ee.Authenticate() # Initialize the library. ee.Initialize(project='my-project') # Define a method for displaying Earth Engine image tiles to folium map. def add_ee_layer(self, ee_image_object, vis_params, name): map_id_dict = ee.Image(ee_image_object).getMapId(vis_params) folium.raster_layers.TileLayer( tiles = map_id_dict['tile_fetcher'].url_format, attr = "Map Data © Google Earth Engine", name = name, overlay = True, control = True ).add_to(self) # Add EE drawing method to folium. folium.Map.add_ee_layer = add_ee_layer # Fetch an elevation model. dem = ee.Image('USGS/SRTMGL1_003') # Set visualization parameters. vis_params = { 'min': 0, 'max': 4000, 'palette': ['006633', 'E5FFCC', '662A00', 'D8D8D8', 'F5F5F5']} # Create a folium map object. my_map = folium.Map(location=[20, 0], zoom_start=3) # Add the elevation model to the map object. my_map.add_ee_layer(dem.updateMask(dem.gt(0)), vis_params, 'DEM') # Add a layer control panel to the map. my_map.add_child(folium.LayerControl()) # Display the map. display(my_map)
Grafik görselleştirme
Bazı Earth Engine işlevleri, matplotlib
gibi veri görselleştirme paketleri tarafından noktayla gösterilebilen tablo verileriyle sonuçlanır. Aşağıdaki örnekte, Earth Engine'daki tablo verilerinin nokta grafiği olarak gösterilmesi gösterilmektedir. Daha fazla bilgi için Colaboratory'da grafik oluşturma başlıklı makaleyi inceleyin.
# Import libraries. import ee import matplotlib.pyplot as plt # Trigger the authentication flow. ee.Authenticate() # Initialize the Earth Engine module. ee.Initialize(project='my-project') # Fetch a Landsat TOA image. img = ee.Image('LANDSAT/LT05/C02/T1_TOA/LT05_034033_20000913') # Select Red and NIR bands, scale them, and sample 500 points. samp_fc = img.select(['B3','B4']).sample(scale=30, numPixels=500) # Arrange the sample as a list of lists. samp_dict = samp_fc.reduceColumns(ee.Reducer.toList().repeat(2), ['B3', 'B4']) samp_list = ee.List(samp_dict.get('list')) # Save server-side ee.List as a client-side Python list. samp_data = samp_list.getInfo() # Display a scatter plot of Red-NIR sample pairs using matplotlib. plt.scatter(samp_data[0], samp_data[1], alpha=0.2) plt.xlabel('Red', fontsize=12) plt.ylabel('NIR', fontsize=12) plt.show()