Not: REST API, tüm kullanıcılar için uygun olmayabilecek yeni ve gelişmiş özellikler içerir. Earth Engine'i ilk kez kullanıyorsanız lütfen JavaScript kılavuzu ile başlayın.
Earth Engine REST API hızlı başlangıç kılavuzunda, Earth Engine öğesindeki piksel bloklarına nasıl erişileceği gösterilmektedir. Hesaplama pikselleri örneği, sonucu almadan önce piksellere nasıl hesaplama uygulanacağını gösterir. Bu örnek, FeatureCollection
öğesinin her özelliğindeki ImageCollection
öğesinin her resmindeki piksellerin ortalamasını almayı gösterir. Bu, computeFeatures
uç noktasına gönderilen bir POST
isteğidir.
Başlamadan önce
Aşağıdaki işlemleri yapmak için bu talimatları uygulayın:
- Earth Engine'e başvurma
- Google Cloud projesi oluşturma
- Projede Earth Engine API'yi etkinleştirin.
- Hizmet hesabı oluşturma
- Hizmet hesabına, Earth Engine hesaplamaları yapması için proje düzeyinde izin verme
Not: Bu eğitimi tamamlamak için Earth Engine erişimi için kayıtlı bir hizmet hesabınızın olması gerekir. Devam etmeden önce hizmet hesabı kaydetmek için bu talimatlara bakın.
Google Cloud'da kimlik doğrulama
İlk olarak, Google Cloud'a kimliği doğrulanmış istekler gönderebilmek için oturum açmanız gerekir. Projeyi aynı anda ayarlarsınız. Oturum açma işlemini tamamlamak için çıkıştaki talimatları uygulayın.
# INSERT YOUR PROJECT HERE
PROJECT = 'your-project'
!gcloud auth login --project {PROJECT}
Hizmet hesabınız için özel anahtar dosyası edinme
Earth Engine'i kullanmak için kayıtlı bir hizmet hesabınız olmalıdır. Yoksa bu talimatları uygulayarak edinebilirsiniz. Hizmet hesabınızın e-posta adresini aşağıdaki hücreye kopyalayın. (Earth Engine'i kullanmak için hizmet hesabının önceden kaydedilmiş olması gerekir.) Aşağıdaki hücrede, hizmet hesabı için bir anahtar dosyası oluşturmak üzere gsutil
komut satırı kullanılır. Anahtar dosyası, not defteri sanal makinesinde oluşturulur.
# INSERT YOUR SERVICE ACCOUNT HERE
SERVICE_ACCOUNT='your-service-account@your-project.iam.gserviceaccount.com'
KEY = 'key.json'
!gcloud iam service-accounts keys create {KEY} --iam-account {SERVICE_ACCOUNT}
AuthorizedSession
başlatın ve kimlik bilgilerinizi test edin
Kimlik bilgilerini almak için özel anahtarı kullanarak özel anahtarı test edin. HTTP istekleri göndermek için yetkili bir oturum oluşturmak üzere kimlik bilgilerini kullanın. Kimlik bilgilerinin çalışıp çalışmadığını kontrol etmek için oturum üzerinden GET
istekte bulunun.
from google.auth.transport.requests import AuthorizedSession
from google.oauth2 import service_account
credentials = service_account.Credentials.from_service_account_file(KEY)
scoped_credentials = credentials.with_scopes(
['https://www.googleapis.com/auth/cloud-platform'])
session = AuthorizedSession(scoped_credentials)
url = 'https://earthengine.googleapis.com/v1beta/projects/earthengine-public/assets/LANDSAT'
response = session.get(url)
from pprint import pprint
import json
pprint(json.loads(response.content))
Hesaplamayı serileştirme
Bir şeyi hesaplama isteği gönderebilmeniz için hesaplamanın Earth Engine ifade grafiği biçimine dönüştürülmesi gerekir. Aşağıda, ifade grafiğinin nasıl elde edileceği gösterilmektedir.
Earth Engine'de kimlik doğrulama
Hizmet hesabından Earth Engine kapsamlı kimlik bilgileri alın. Bunları kullanarak Earth Engine'i başlatın.
import ee
# Get some new credentials since the other ones are cloud scope.
ee_creds = ee.ServiceAccountCredentials(SERVICE_ACCOUNT, KEY)
ee.Initialize(ee_creds)
Hesaplama tanımlama
İstemci API'si ile basit bir hesaplama prototipi oluşturun. Hesaplamanın sonucunun FeatureCollection
olduğunu unutmayın.
Hesaplamanın hatasız bir şekilde yapılabildiğini kontrol etmek için ilk Feature
değerini (poligondaki ortalama NDVI) alın.
# A collection of polygons.
states = ee.FeatureCollection('TIGER/2018/States')
maine = states.filter(ee.Filter.eq('NAME', 'Maine'))
# Imagery: NDVI vegetation index from MODIS.
band = 'NDVI'
images = ee.ImageCollection('MODIS/006/MOD13Q1').select(band)
image = images.first()
computation = image.reduceRegions(
collection=maine,
reducer=ee.Reducer.mean().setOutputs([band]),
scale=image.projection().nominalScale()
)
# Print the value to test.
print(computation.first().get(band).getInfo())
İfade grafiğini serileştirme
Bu işlem, Earth Engine ifade grafiğini (özellikle bir Expression
) temsil eden bir nesne oluşturur. Genellikle bunları istemci API'lerinden biriyle oluşturmanız gerekir.
# Serialize the computation.
serialized = ee.serializer.encode(computation)
İsteği gönderin
computeFeatures
uç noktasına bir POST
isteği gönderin. İsteğin, serileştirilmiş hesaplama olan Expression
içerdiğini unutmayın.
import json
url = 'https://earthengine.googleapis.com/v1beta/projects/{}/table:computeFeatures'
response = session.post(
url = url.format(PROJECT),
data = json.dumps({'expression': serialized})
)
import json
pprint(json.loads(response.content))
Yanıt, diğer uygulamalar veya işlemler tarafından kullanılabilen GeoJSON olarak sonuçtaki FeatureCollection
öğesini içerir.