পাইথন ইনস্টলেশন

পাইথন সমর্থন

আর্থ ইঞ্জিন পাইথন ক্লায়েন্ট লাইব্রেরি Google ক্লাউড দ্বারা সমর্থিত পাইথন সংস্করণগুলির সাথে সামঞ্জস্যপূর্ণ। Python পয়েন্ট রিলিজ সময়সূচী ( PEP 602 ; স্ট্যাটাস অফ পাইথন সংস্করণ ) অনুসরণ করে প্রতি বছর সমর্থন আপডেট করা হয়। অসমর্থিত পাইথন সংস্করণ ব্যবহার করলে প্রমাণীকরণ ব্যর্থতা, অপ্রত্যাশিত আচরণ, বা নির্দিষ্ট ক্রিয়াকলাপ ব্যর্থ হতে পারে।

অপশন ইনস্টল করুন

আপনি যদি Google Colab ব্যবহার করেন, আর্থ ইঞ্জিন পাইথন ক্লায়েন্ট লাইব্রেরির সর্বশেষ সংস্করণ ইতিমধ্যেই ইনস্টল করা হয়েছে (পিপের মাধ্যমে)। আর্থ ইঞ্জিন এবং কোলাবের সাথে শুরু করতে নিম্নলিখিত নোটবুকটি ব্যবহার করে দেখুন:

আপনি Colab ব্যবহার না করলে, আর্থ ইঞ্জিন ক্লায়েন্ট লাইব্রেরি কনডা (প্রস্তাবিত) বা পিপ ব্যবহার করে আপনার সিস্টেমে ম্যানুয়ালি ইনস্টল এবং আপডেট করা যেতে পারে:


পিপ ব্যবহার করে একটি নির্বিচারে পাইথন পরিবেশে API ইনস্টল করুন । একটি টার্মিনাল বা কমান্ড প্রম্পট থেকে:

pip install earthengine-api

একবার ইনস্টল করা হলে, আপনি এখানে বর্ণিত আর্থ ইঞ্জিন API আমদানি, প্রমাণীকরণ এবং আরম্ভ করতে পারেন।

API আপডেট করুন :

pip install earthengine-api --upgrade

প্যাকেজ আমদানি

পাইথন API প্যাকেজটিকে ee বলা হয়। প্রতিটি নতুন পাইথন সেশন এবং স্ক্রিপ্টের জন্য এটি অবশ্যই আমদানি এবং আরম্ভ করা আবশ্যক:

import ee

প্রমাণীকরণ এবং সূচনা

আর্থ ইঞ্জিন পাইথন ক্লায়েন্ট লাইব্রেরি ব্যবহার করার আগে, আপনাকে পাইথন ক্লায়েন্ট আরম্ভ করার জন্য প্রমাণীকরণ এবং ফলাফলের শংসাপত্রগুলি ব্যবহার করতে হবে। চালান:

ee.Authenticate()

এটি আপনার পরিবেশের জন্য সর্বোত্তম প্রমাণীকরণ মোড নির্বাচন করবে, এবং আপনাকে আপনার স্ক্রিপ্টগুলির অ্যাক্সেস নিশ্চিত করতে অনুরোধ করবে। আরম্ভ করার জন্য, আপনাকে আপনার মালিকানাধীন একটি প্রকল্প প্রদান করতে হবে বা ব্যবহারের অনুমতি থাকতে হবে। এই প্রকল্পটি সমস্ত আর্থ ইঞ্জিন অপারেশন চালানোর জন্য ব্যবহার করা হবে:

ee.Initialize(project='my-project')

সমস্যা সমাধানের জন্য এবং প্রমাণীকরণ মোড এবং ক্লাউড প্রকল্প সম্পর্কে আরও জানতে প্রমাণীকরণ নির্দেশিকা দেখুন।

হ্যালো বিশ্ব!

আপনি আর্থ ইঞ্জিনের সাথে কাজ করার জন্য প্রস্তুত কিনা তা পরীক্ষা করার জন্য এখানে একটি ছোট স্ক্রিপ্ট রয়েছে৷

import ee
ee.Authenticate()
ee.Initialize(project='my-project')
print(ee.String('Hello from the Earth Engine servers!').getInfo())

সিনট্যাক্স

Python এবং JavaScript API উভয়ই একই সার্ভার-সাইড কার্যকারিতা অ্যাক্সেস করে, কিন্তু ক্লায়েন্ট-সাইড এক্সপ্রেশন ( ক্লায়েন্ট বনাম সার্ভার সম্পর্কে আরও জানুন ) ভাষার সিনট্যাক্স পার্থক্যের কারণে পরিবর্তিত হতে পারে। নিম্নলিখিত সারণিতে জাভাস্ক্রিপ্ট API-এর সাথে সম্পর্কিত Python API-এর সাথে কাজ করার সময় আপনি যে সাধারণ সিনট্যাক্স পার্থক্যগুলির সম্মুখীন হবেন তার একটি তালিকা অন্তর্ভুক্ত করে।

জাভাস্ক্রিপ্ট এবং পাইথনের মধ্যে সাধারণ সিনট্যাক্স পার্থক্য
সম্পত্তি জাভাস্ক্রিপ্ট পাইথন
ফাংশন সংজ্ঞা
function myFun(arg) {
  return arg;
}

var myFun = function(arg) {
  return arg;
};
def my_fun(arg):
  return arg
বেনামী ফাংশন ম্যাপিং
var foo = col.map(function(arg) {
  return arg;
});
foo = col.map(lambda arg: arg)
পরিবর্তনশীল সংজ্ঞা
var myVar = 'var';
my_var = 'var'
লজিক্যাল অপারেটর
var match = such.and(that);
var match = such.or(that);
var match = such.not(that);
match = such.And(that)
match = such.Or(that)
match = such.Not(that)
মাল্টি-লাইন পদ্ধতি চেইন
var foo = my.really()
              .reallyLong()
              .methodChain();
foo = (my.really()
       .reallyLong()
       .methodChain())
অভিধান কী
var dic = {'key': value};
var dic = {key: value};
dic = {'key': value}
অভিধান বস্তু অ্যাক্সেস
var value = dic.key;
var value = dic['key'];
value = dic['key']
ফাংশন যুক্তি সংজ্ঞা
// Positional arguments.
var foo = fun(argX, argY, argZ);
// Keyword arguments object.
var foo = fun({y: argY});
# Positional arguments.
foo = fun(arg_x, arg_y, arg_z)
# Keyword arguments dictionary.
foo = fun(**{'y': arg_y})
# Keyword arguments.
foo = fun(x=arg_x, z=arg_z)
বুলিয়ান
var t = true;
var f = false;
t = True
f = False
শূন্য মান
var na = null;
na = None
মন্তব্য করুন
//
#

তারিখ বস্তু

datetime মডিউল দিয়ে ক্লায়েন্ট-সাইড ডেট অবজেক্টগুলিকে সংজ্ঞায়িত করুন এবং ম্যানিপুলেট করুন। আপনার স্ক্রিপ্টে মডিউল অন্তর্ভুক্ত করুন:

import datetime

ee.Date কে ক্লায়েন্ট-সাইড তারিখে রূপান্তর করুন:

ee_date = ee.Date('2020-01-01')
py_date = datetime.datetime.utcfromtimestamp(ee_date.getInfo()['value']/1000.0)

ক্লায়েন্ট-সাইড তারিখকে ee.Date:

py_date = datetime.datetime.utcnow()
ee_date = ee.Date(py_date)

ডেটা রপ্তানি করা হচ্ছে

Python API এর সাথে ডেটা রপ্তানি করতে ee.batch মডিউল ব্যবহার করা প্রয়োজন, যা Export ফাংশনগুলির একটি ইন্টারফেস প্রদান করে। উপরের সিনট্যাক্স সারণীতে উল্লেখিত পার্থক্যগুলিকে মাথায় রেখে আপনি JavaScript API এর সাথে প্যারামিটার আর্গুমেন্টগুলি পাস করুন৷ একটি সংজ্ঞায়িত টাস্কে start() মেথড কল করে এক্সপোর্ট টাস্ক শুরু করতে হবে। status() পদ্ধতিতে কল করে একটি টাস্কের স্ট্যাটাস জিজ্ঞাসা করুন। নিম্নলিখিত উদাহরণ একটি ee.Image অবজেক্ট রপ্তানি প্রদর্শন করে।

একটি এক্সপোর্ট টাস্ক তৈরি করুন:

task = ee.batch.Export.image.toDrive(image=my_image,  # an ee.Image object.
                                     region=my_geometry,  # an ee.Geometry object.
                                     description='mock_export',
                                     folder='gdrive_folder',
                                     fileNamePrefix='mock_export',
                                     scale=1000,
                                     crs='EPSG:4326')

একটি রপ্তানি কাজ শুরু করুন:

task.start()

এক্সপোর্ট টাস্ক স্ট্যাটাস চেক করুন:

task.status()

task.status() এর ফলাফল হল টাস্কের অবস্থা এবং এর আইডির মতো তথ্য ধারণকারী একটি অভিধান।

{
  'state': 'READY',
  'description': 'my_export_task',
  'creation_timestamp_ms': 1647567508236,
  'update_timestamp_ms': 1647567508236,
  'start_timestamp_ms': 0,
  'task_type': 'EXPORT_IMAGE',
  'id': '56TVJIZABUMTD5CJ5YHTMYK4',
  'name': 'projects/earthengine-legacy/operations/56TVJIZABUMTX5CJ5HHTMYK4'
}

আপনি state ক্ষেত্র ব্যবহার করে কাজের অগ্রগতি নিরীক্ষণ করতে পারেন। state মানগুলির একটি তালিকা এবং টাস্ক লাইফসাইকেল সম্পর্কে আরও তথ্যের জন্য প্রক্রিয়াকরণ পরিবেশ পৃষ্ঠাটি দেখুন।

প্রিন্টিং বস্তু

পাইথনে একটি আর্থ ইঞ্জিন অবজেক্ট মুদ্রণ করা বস্তুটির জন্য ক্রমিক অনুরোধ প্রিন্ট করে, বস্তুটি নয়। এর কারণ বুঝতে ক্লায়েন্ট বনাম সার্ভার পৃষ্ঠা দেখুন।

সার্ভার থেকে ক্লায়েন্টের কাছে পছন্দসই বস্তু পেতে আর্থ ইঞ্জিন অবজেক্টে getInfo() কল করুন:

# Load a Landsat image.
img = ee.Image('LANDSAT/LT05/C02/T1_L2/LT05_034033_20000913')

# Print image object WITHOUT call to getInfo(); prints serialized request instructions.
print(img)

# Print image object WITH call to getInfo(); prints image metadata.
print(img.getInfo())
মনে রাখবেন getInfo() হল একটি সিঙ্ক্রোনাস অপারেশন, যার অর্থ getInfo() কলের পর এক্সপ্রেশনের এক্সিকিউশন ব্লক করা হয় যতক্ষণ না ফলাফলটি ক্লায়েন্টের কাছে ফিরে আসে। অতিরিক্তভাবে, প্রচুর ডেটা বা ব্যয়বহুল গণনার জন্য অনুরোধ একটি ত্রুটি এবং/অথবা হ্যাং করতে পারে। সাধারণভাবে, সর্বোত্তম অনুশীলন হল আপনার ফলাফলগুলি রপ্তানি করা , এবং একবার সম্পূর্ণ হলে, আরও বিশ্লেষণের জন্য সেগুলিকে একটি নতুন স্ক্রিপ্টে আমদানি করুন৷

UI অবজেক্ট

আর্থ ইঞ্জিন ui মডিউল শুধুমাত্র JavaScript API কোড এডিটরের মাধ্যমে উপলব্ধ। পাইথনে UI উপাদানগুলির জন্য তৃতীয় পক্ষের লাইব্রেরি ব্যবহার করুন। লাইব্রেরি যেমন geemap , Folium , এবং ipyleaflet ইন্টারেক্টিভ মানচিত্র প্রদর্শন প্রদান করে, যখন চার্টিং করা যেতে পারে Matplotlib , Altair , বা seaborn , কয়েকটি নাম। geemap এবং Matplotlib ব্যবহার করার জন্য Colab সেটআপ নোটবুকের আর্থ ইঞ্জিনের উদাহরণ দেখুন।

বিকাশকারী গাইডে পাইথন

পাইথন কোড সমগ্র আর্থ ইঞ্জিন ডেভেলপার গাইড জুড়ে অন্তর্ভুক্ত করা হয়েছে। যেখানে উপলব্ধ, কোড ব্লকের উপরে "Colab (Python)" ট্যাবে ক্লিক করে কোডের উদাহরণ দেখা যেতে পারে। কোলাব নোটবুক হিসাবে পৃষ্ঠা চালানোর জন্য বা GitHub-এ দেখার জন্য গাইড পৃষ্ঠাগুলিতে উপরের বোতামগুলিও থাকতে পারে। পাইথন কোডের উদাহরণগুলি Google Colab ব্যবহার করে চালানোর উদ্দেশ্যে। ইন্টারেক্টিভ ম্যাপ এবং অবজেক্ট এক্সপ্লোরেশন geemap লাইব্রেরি দ্বারা পরিচালিত হয়। আর্থ ইঞ্জিন পাইথন ক্লায়েন্ট লাইব্রেরি এবং geemap দুটোই Colab-এ আগে থেকেই ইনস্টল করা আছে।

আর্থ ইঞ্জিন সেটআপ

পাইথন কোড চালানোর জন্য আপনাকে আর্থ ইঞ্জিন লাইব্রেরি আমদানি করতে হবে, প্রমাণীকরণ করতে হবে এবং শুরু করতে হবে। নিম্নলিখিত কমান্ডগুলি উদাহরণগুলিতে ব্যবহৃত হয় (বিকল্পগুলির জন্য প্রমাণীকরণ এবং প্রারম্ভিকতা পৃষ্ঠা দেখুন)।

import ee
ee.Authenticate()
ee.Initialize(project='my-project')

geemap সাথে ইন্টারেক্টিভ অন্বেষণ

geemap লাইব্রেরি ম্যাপ টাইলস প্রদর্শন এবং আর্থ ইঞ্জিন অবজেক্টের সমৃদ্ধ উপস্থাপনা মুদ্রণের জন্য ব্যবহৃত হয়। এই বৈশিষ্ট্যগুলির জন্য গ্রন্থাগার যথাক্রমে ipyleaflet এবং eerepr উপর নির্ভর করে। geemap লাইব্রেরি এবং এর নির্ভরতাগুলি Google Colab-এ আগে থেকেই ইনস্টল করা আছে; প্রতিটি সেশনে এটি আমদানি করুন।

import geemap.core as geemap

জিওগ্রাফিক আর্থ ইঞ্জিন ডেটা ক্লাস, যেমন ee.Image এবং ee.FeatureCollection , geemap.Map অবজেক্ট ব্যবহার করে দেখা যেতে পারে। প্রথমত, মানচিত্র বস্তুটি সংজ্ঞায়িত করুন। তারপরে, এটিতে স্তর যুক্ত করুন বা এর ভিউপোর্ট পরিবর্তন করুন।

# Initialize a map object.
m = geemap.Map()

# Define an example image.
img = ee.Image.random()

# Add the image to the map.
m.add_layer(img, None, 'Random image')

# Display the map (you can call the object directly if it is the final line).
display(m)