পাইথন ইনস্টলেশন - কোলাব নোটবুক

আর্থ ইঞ্জিন পাইথন API একটি Google Colaboratory নোটবুকে স্থাপন করা যেতে পারে। Colab নোটবুক হল জুপিটার নোটবুক যেগুলি ক্লাউডে চলে এবং Google ড্রাইভের সাথে অত্যন্ত একীভূত, সেগুলিকে সেট আপ, অ্যাক্সেস এবং শেয়ার করা সহজ করে তোলে। আপনি যদি Google Colab বা Jupyter notebook এর সাথে অপরিচিত না হন, তাহলে অনুগ্রহ করে Colab ওয়েলকাম সাইটটি ঘুরে দেখার জন্য কিছু সময় ব্যয় করুন।

নিম্নলিখিত বিভাগগুলি Google Colab-এ আর্থ ইঞ্জিন স্থাপন এবং তৃতীয় পক্ষের পাইথন প্যাকেজগুলি ব্যবহার করে মানচিত্র এবং চার্টগুলিকে ভিজ্যুয়ালাইজ করার বর্ণনা দেয়৷

একটি Colab নোটবুক খুলুন

নোটবুকগুলি গুগল ড্রাইভ বা কোলাবোরেটরি ইন্টারফেস থেকে খোলা যেতে পারে।

নতুন নোটবুক

গুগল ড্রাইভ

গুগল ড্রাইভ খুলুন এবং একটি নতুন ফাইল তৈরি করুন।

  • নতুন > আরও > সহযোগী
  • একটি ফোল্ডারে ডান ক্লিক করুন এবং প্রসঙ্গ মেনু থেকে আরও > সহযোগী নির্বাচন করুন।

Colab ইন্টারফেস

Colab সাইটে যান এবং একটি নতুন ফাইল তৈরি করুন।

  • ফাইল> নতুন> নতুন পাইথন 3 নোটবুক
  • আপনি যদি আগে Colab-এর সাথে ইন্টারঅ্যাক্ট করে থাকেন, তাহলে উপরের লিঙ্ক করা সাইটটিতে গেলে আপনি একটি ফাইল এক্সপ্লোরার পাবেন যেখানে আপনি উইন্ডোর নীচে ড্রপডাউন মেনু ব্যবহার করে একটি নতুন ফাইল শুরু করতে পারবেন।

বিদ্যমান নোটবুক

বিদ্যমান নোটবুক ফাইল (.ipynb) Google Drive এবং Colab ইন্টারফেস থেকে খোলা যেতে পারে।

গুগল ড্রাইভ

নোটবুকের ফাইলগুলি কোথায় তৈরি করা হয়েছে তার উপর নির্ভর করে কোল্যাব নোটবুকগুলি Google ড্রাইভের বিভিন্ন ফোল্ডারে থাকতে পারে। Google ড্রাইভে তৈরি করা নোটবুকগুলি যে ফোল্ডারে তৈরি বা সরানো হয়েছিল সেই ফোল্ডারে থাকবে৷ Colab ইন্টারফেস থেকে তৈরি করা নোটবুকগুলি 'Colab Notebooks' নামে একটি ফোল্ডারে ডিফল্ট হবে যা আপনি Colab-এর সাথে কাজ শুরু করার সময় আপনার Google ড্রাইভের 'মাই ড্রাইভ' ফোল্ডারে স্বয়ংক্রিয়ভাবে যোগ হয়ে যাবে।

Colab ফাইলগুলি একটি হলুদ 'CO' চিহ্ন এবং '.ipynb' ফাইল এক্সটেনশন দ্বারা চিহ্নিত করা যেতে পারে। ফাইল খুলুন হয় সেগুলিতে দ্বিগুণ ক্লিক করে এবং ফলাফলের পৃষ্ঠার শীর্ষে পাওয়া বোতাম থেকে Open with > Colaboratory নির্বাচন করে অথবা একটি ফাইলে ডান ক্লিক করে এবং ফাইলের প্রসঙ্গ মেনু থেকে Open with > Colaboratory নির্বাচন করে।

Colab ইন্টারফেস

Colab ইন্টারফেস থেকে নোটবুক খোলার ফলে আপনি Google Drive, GitHub এবং স্থানীয় হার্ডওয়্যার থেকে বিদ্যমান ফাইলগুলি অ্যাক্সেস করতে পারবেন। প্রাথমিক ব্যবহারের পরে Colab ইন্টারফেস পরিদর্শন করার ফলে একটি ফাইল এক্সপ্লোরার মডেল প্রদর্শিত হবে। ফাইল এক্সপ্লোরারের শীর্ষে থাকা ট্যাবগুলি থেকে, একটি উত্স নির্বাচন করুন এবং আপনি যে .ipynb ফাইলটি খুলতে চান সেখানে নেভিগেট করুন৷ ফাইল এক্সপ্লোরারটি Colab ইন্টারফেস থেকে ফাইল > ওপেন নোটবুক নির্বাচন করে বা Ctrl+O কীবোর্ড সমন্বয় ব্যবহার করেও অ্যাক্সেস করা যেতে পারে।

এপিআই আমদানি করুন এবং শংসাপত্র পান

এই বিভাগটি দেখায় কিভাবে আর্থ ইঞ্জিন পাইথন API আমদানি করতে হয় এবং অ্যাক্সেস প্রমাণীকরণ করতে হয়। এই কন্টেন্ট Colab নোটবুক হিসেবেও পাওয়া যায়:

আর্থ ইঞ্জিন API ডিফল্টরূপে Google Colaboratory-তে অন্তর্ভুক্ত থাকে তাই শুধুমাত্র আমদানি এবং প্রমাণীকরণ প্রয়োজন। প্রতিটি নতুন Colab সেশনের জন্য অথবা আপনি Colab কার্নেল রিস্টার্ট করলে বা আপনার Colab ভার্চুয়াল মেশিন নিষ্ক্রিয়তার কারণে রিসাইকেল করা হলে এই ধাপগুলি অবশ্যই সম্পূর্ণ করতে হবে।

API আমদানি করুন

আপনার সেশনে API আমদানি করতে নিম্নলিখিত ঘরটি চালান।

import ee

প্রমাণীকরণ এবং আরম্ভ

আর্থ ইঞ্জিন সার্ভারে আপনার অ্যাক্সেসকে প্রমাণীকরণ করতে ee.Authenticate ফাংশনটি চালান এবং এটিকে আরম্ভ করার জন্য ee.Initialize । একটি কোড সেল যোগ করুন, নিম্নলিখিত লাইনগুলি লিখুন, প্রকল্পটি সম্পাদনা করুন এবং সেলটি চালান৷

# Trigger the authentication flow.
ee.Authenticate()

# Initialize the library.
ee.Initialize(project='my-project')

আপনাকে আপনার আর্থ ইঞ্জিন অ্যাকাউন্টে অ্যাক্সেস অনুমোদন করতে বলা হবে। এই ধাপটি সম্পূর্ণ করতে কক্ষে প্রিন্ট করা নির্দেশাবলী অনুসরণ করুন।

API পরীক্ষা করুন

মাউন্ট এভারেস্টের উচ্চতা প্রিন্ট করে API পরীক্ষা করুন। মনে রাখবেন যে API ব্যবহার করার আগে আপনাকে অবশ্যই এটি শুরু করতে হবে। একটি নতুন ঘরে নিম্নলিখিত পাইথন স্ক্রিপ্টটি চালান।

# 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)

মানচিত্র ভিজ্যুয়ালাইজেশন

ee.Image অবজেক্ট নোটবুক আউটপুট কোষে প্রদর্শিত হতে পারে. নিম্নলিখিত দুটি উদাহরণ একটি স্থির চিত্র এবং একটি ইন্টারেক্টিভ মানচিত্র প্রদর্শন করে।

স্ট্যাটিক ইমেজ

IPython.display মডিউলটিতে Image ফাংশন রয়েছে, যা আর্থ ইঞ্জিন getThumbUrl ফাংশনে কল থেকে জেনারেট হওয়া একটি ইমেজের প্রতিনিধিত্বকারী URL-এর ফলাফল প্রদর্শন করতে পারে। নিচের স্ক্রিপ্টটি একটি গ্লোবাল এলিভেশন মডেলের একটি থাম্বনেইল প্রদর্শন করবে।

# 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']}))

ইন্টারেক্টিভ মানচিত্র

folium প্যাকেজটি একটি ইন্টারেক্টিভ লিফলেট মানচিত্রে ee.Image বস্তু প্রদর্শন করতে ব্যবহার করা যেতে পারে। আর্থ ইঞ্জিন থেকে টাইলস পরিচালনা করার জন্য Folium-এর কোনো ডিফল্ট পদ্ধতি নেই, তাই ব্যবহারের আগে একটিকে সংজ্ঞায়িত করে folium.Map মডিউলে যোগ করতে হবে।

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

# 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)

চার্ট ভিজ্যুয়ালাইজেশন

কিছু আর্থ ইঞ্জিন ফাংশন ট্যাবুলার ডেটা তৈরি করে যা ডেটা ভিজ্যুয়ালাইজেশন প্যাকেজ যেমন matplotlib দ্বারা প্লট করা যেতে পারে। নীচের উদাহরণটি আর্থ ইঞ্জিন থেকে ছকযুক্ত ডেটার প্রদর্শনকে একটি স্ক্যাটার প্লট হিসাবে দেখায়। আরও তথ্যের জন্য Colaboratory-তে চার্টিং দেখুন।

# 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()