মনে রাখবেন: REST API-তে নতুন ও উন্নত ফিচার আছে যা সব ব্যবহারকারীর জন্য উপযুক্ত নাও হতে পারে। আপনি Earth Engine-এ নতুন হলে, জাভাস্ক্রিপ্ট গাইড দিয়ে শুরু করুন।
Earth Engine REST API কুইকস্টার্ট থেকে জানা যায় যে কীভাবে Earth Engine অ্যাসেট থেকে পিক্সেলের ব্লক অ্যাক্সেস করতে হয়। কম্পিউট পিক্সেল উদাহরণ থেকে বোঝা যায় যে ফলাফল পাওয়ার আগে কীভাবে পিক্সেলের উপর কম্পিউটেশন প্রয়োগ করতে হয়। এই উদাহরণে FeatureCollection-এর প্রতিটি ফিচারের ImageCollection-এর প্রতিটি ছবিতে পিক্সেলের গড় মান দেখানো হয়েছে। নির্দিষ্টভাবে, এটি computeFeatures এন্ডপয়েন্টে করা একটি POST অনুরোধ।
শুরু করার আগে
এইসব নির্দেশাবলী অনুসরণ করুন:
- Earth Engine-এর জন্য আবেদন করুন
- Google Cloud প্রোজেক্ট তৈরি করা
- প্রোজেক্টে Earth Engine API চালু করুন
- পরিষেবার অ্যাকাউন্ট তৈরি করা
- Earth Engine কম্পিউটেশন করার জন্য পরিষেবা অ্যাকাউন্টকে প্রোজেক্ট লেভেল অনুমতি দিন
মনে রাখবেন: এই টিউটোরিয়াল সম্পূর্ণ করতে, আপনার একটি পরিষেবা অ্যাকাউন্ট প্রয়োজন হবে যা Earth Engine অ্যাক্সেসের জন্য রেজিস্টার করা আছে। এগিয়ে যাওয়ার আগে, পরিষেবা অ্যাকাউন্ট রেজিস্টার করতে এই নির্দেশাবলী দেখুন।
Google Cloud-এ যাচাইকরণ করুন
প্রথমেই আপনাকে লগ-ইন করতে হবে যাতে আপনি Google Cloud-এ যাচাই করা অনুরোধ করতে পারেন। আপনি একই সময়ে প্রোজেক্ট সেট করবেন। সাইন-ইন সম্পূর্ণ করতে আউটপুটে দেওয়া নির্দেশাবলী অনুসরণ করুন।
# INSERT YOUR PROJECT HERE
PROJECT = 'your-project'
!gcloud auth login --project {PROJECT}
আপনার পরিষেবা অ্যাকাউন্টের জন্য ব্যক্তিগত কী ফাইল পান
Earth Engine ব্যবহার করার জন্য আপনার আগে থেকেই একটি রেজিস্টার করা পরিষেবা অ্যাকাউন্ট থাকতে হবে। আপনার কাছে না থাকলে, একটি পেতে এইসব নির্দেশাবলী অনুসরণ করুন। আপনার পরিষেবা অ্যাকাউন্টের ইমেল আইডি কপি করে নিম্নলিখিত সেলে পেস্ট করুন। (Earth Engine ব্যবহার করার জন্য পরিষেবা অ্যাকাউন্টটি আগে থেকেই রেজিস্টার করা থাকতে হবে)। নিম্নলিখিত সেলে, পরিষেবা অ্যাকাউন্টের জন্য কী ফাইল তৈরি করতে gsutil কমান্ড লাইন ব্যবহার করা হয়। নোটবুক VM-এ 'কী' ফাইল তৈরি করা হবে।
# 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 শুরু করুন এবং আপনার ক্রেডেনশিয়াল পরীক্ষা করুন
ক্রেডেনশিয়াল পেতে ব্যক্তিগত কী ব্যবহার করে সেটি পরীক্ষা করুন। HTTP অনুরোধ করার জন্য অনুমোদিত সেশন তৈরি করতে ক্রেডেনশিয়াল ব্যবহার করুন। ক্রেডেনশিয়াল কাজ করছে কিনা তা চেক করতে সেশনের মাধ্যমে GET অনুরোধ করুন।
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))
একটি গণনা সিরিয়ালাইজ করুন
কিছু গণনা করার জন্য অনুরোধ পাঠানোর আগে, গণনাটি Earth Engine এক্সপ্রেশন গ্রাফ ফর্ম্যাটে রাখতে হবে। এক্সপ্রেশন গ্রাফ কীভাবে পাওয়া যায় তা নিচে দেখানো হয়েছে।
Earth Engine-এ যাচাই করুন
পরিষেবা অ্যাকাউন্ট থেকে Earth Engine স্কোপ করা ক্রেডেনশিয়াল পান। Earth Engine শুরু করতে এগুলি ব্যবহার করুন।
import ee
# Get some new credentials since the other ones are cloud scope.
ee_creds = ee.ServiceAccountCredentials(SERVICE_ACCOUNT, KEY)
ee.Initialize(ee_creds)
গণনা নির্ধারণ করুন
ক্লায়েন্ট API-এর মাধ্যমে একটি সাধারণ কম্পিউটেশনের প্রোটোটাইপ তৈরি করুন। মনে রাখবেন যে গণনার ফলাফল হল FeatureCollection।
কোনও সমস্যা ছাড়াই গণনা করা যাবে কিনা তা চেক করতে, প্রথম Feature (পলিগনে NDVI-এর গড়) থেকে একটি ভ্যালু নিন।
# 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/061/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())
এক্সপ্রেশন গ্রাফ সিরিয়ালাইজ করো
এটি এমন একটি অবজেক্ট তৈরি করবে যা Earth Engine এক্সপ্রেশন গ্রাফকে (বিশেষত, একটি Expression) উপস্থাপন করে। সাধারণত, আপনাকে ক্লায়েন্ট API-এর একটির মাধ্যমে এগুলি তৈরি করতে হবে।
# Serialize the computation.
serialized = ee.serializer.encode(computation)
অনুরোধ পাঠান
computeFeatures এন্ডপয়েন্টে POST অনুরোধ করুন। মনে রাখবেন যে অনুরোধে Expression থাকে, যা হল সিরিয়ালাইজ করা গণনা।
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))
উত্তরে GeoJSON হিসেবে ফলাফল FeatureCollection থাকে, যা অন্যান্য অ্যাপ বা প্রসেস ব্যবহার করতে পারে।
Google Colab-এ রান করুন
GitHub-এ সোর্স দেখুন