Python Kurulumu - Colab Not Defteri

Earth Engine Python API, Google Colaboratory not defterinde dağıtılabilir. Colab not defterleri, bulutta çalışan ve Google Drive ile yüksek düzeyde entegre edilmiş Jupyter not defterleridir. Bu sayede kolayca kurulabilir, erişilebilir ve paylaşılabilir. Google Colab veya Jupyter not defterleri hakkında bilginiz yoksa lütfen Colab karşılama sitesini inceleyin.

Aşağıdaki bölümlerde, Earth Engine'in Google Colab'de dağıtılması ve üçüncü taraf Python paketleri kullanılarak haritaların 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örde sağ tıklayın ve bağlam menüsünden Diğer > Colaboratory'yi seçin.

Colab arayüzü

Colab sitesini ziyaret edip yeni bir dosya oluşturun.

  • File > New > New Python 3 notebook (Dosya > Yeni > Yeni Python 3 not defteri)
  • Daha önce Colab ile etkileşimde bulunduysanız yukarıda bağlantısı verilen 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österilir.

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 yer alır. Colab arayüzünden oluşturulan not defterleri, Colab ile çalışmaya başladığınızda Google Drive'ınızın "Drive'ım" klasörüne otomatik olarak eklenen "Colab Notebooks" adlı klasöre kaydedilir.

Colab dosyaları, sarı renkli "CO" simgesi ve ".ipynb" dosya uzantısıyla tanımlanabilir. Dosyaları çift tıklayıp sonuç sayfasının üst kısmındaki düğmeden Birlikte aç > Colaboratory'yi seçerek veya dosyayı sağ tıklayıp dosyanın bağlam menüsünden Birlikte aç > Colaboratory'yi seçerek açabilirsiniz.

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 dosya gezgini modalı görünür. Dosya Gezgini'nin üst kısmındaki sekmelerden bir kaynak seçin ve açmak istediğiniz .ipynb dosyasına gidin. Dosya Gezgini'ne Dosya > Not defteri aç'ı seçerek veya Ctrl+O klavye kombinasyonunu kullanarak da Colab arayüzünden erişebilirsiniz.

API'yi içe aktarma ve kimlik bilgilerini alma

Bu bölümde, Earth Engine Python API'nin 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'ye varsayılan olarak dahil edildiğinden yalnızca içe aktarılması ve kimliğinin doğrulanması gerekir. Bu adımlar her yeni Colab oturumu için, Colab çekirdeğinizi yeniden başlattığınızda veya Colab sanal makineniz etkinlik olmadığı için geri dönüştürüldüğünde 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ğrulaması yapma ve başlatma

Earth Engine sunucularına erişiminizi doğrulamak için ee.Authenticate işlevini, başlatmak için ise 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şimi yetkilendirmeniz 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 başlatmanız gerektiğini unutmayın. Yeni bir hücrede aşağıdaki Python komut dosyasını ç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 resmin ve etkileşimli bir haritanın nasıl görüntüleneceği gösterilmektedir.

Statik resim

IPython.display modülü, Earth Engine getThumbUrl işlevine yapılan bir çağrıdan oluşturulan resmi temsil eden bir URL'nin sonuçlarını gösterebilen Image işlevini içerir. Aşağıdaki komut dosyası, küresel 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'den gelen kutucukları işlemek için varsayılan bir yöntem yoktur. Bu nedenle, kullanılmadan önce bir yöntem tanımlanıp folium.Map modülüne eklenmelidir.

Aşağıdaki komut dosyası, Earth Engine parçalarını işleme yöntemi ekleme ve bunu bir yükseklik modelini Leaflet haritasında görüntülemek için kullanma örneği sunar.

# 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 çizilebilen tablo verileri üretir. Aşağıdaki örnekte, Earth Engine'den alınan tablosal verilerin dağılım grafiği olarak gösterilmesi açıklanmaktadır. Daha fazla bilgi için Colaboratory'de 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()