আর্থ ইঞ্জিন পাইথন এপিআই একটি গুগল কোলাবোরেটরি নোটবুকে স্থাপন করা যেতে পারে। কোলাব নোটবুক হলো জুপিটার নোটবুক যা ক্লাউডে চলে এবং গুগল ড্রাইভের সাথে নিবিড়ভাবে সমন্বিত, ফলে এগুলি সেট আপ করা, অ্যাক্সেস করা এবং শেয়ার করা সহজ। আপনি যদি গুগল কোলাব বা জুপিটার নোটবুকের সাথে পরিচিত না হন, তবে অনুগ্রহ করে কোলাবের স্বাগত সাইটটি ঘুরে দেখতে কিছু সময় ব্যয় করুন।
নিম্নলিখিত বিভাগগুলিতে গুগল কোলাবে আর্থ ইঞ্জিন স্থাপন এবং তৃতীয় পক্ষের পাইথন প্যাকেজ ব্যবহার করে মানচিত্র ও চার্ট ভিজ্যুয়ালাইজ করার পদ্ধতি বর্ণনা করা হয়েছে।
একটি কোলাব নোটবুক খুলুন
নোটবুকগুলো গুগল ড্রাইভ অথবা কোলাবোরেটরি ইন্টারফেস থেকে খোলা যায়।
নতুন নোটবুক
গুগল ড্রাইভ
গুগল ড্রাইভ খুলুন এবং একটি নতুন ফাইল তৈরি করুন।
- নতুন > আরও > সহযোগিতামূলক
- একটি ফোল্ডারের ভেতরে রাইট ক্লিক করুন এবং কনটেক্সট মেনু থেকে More > Colaboratory নির্বাচন করুন।
কোলাব ইন্টারফেস
কোলাব সাইটে যান এবং একটি নতুন ফাইল তৈরি করুন।
- ফাইল > নতুন > নতুন পাইথন ৩ নোটবুক
- আপনি যদি আগে কোলাব ব্যবহার করে থাকেন, তবে উপরে লিঙ্ক করা সাইটটিতে গেলে আপনি একটি ফাইল এক্সপ্লোরার পাবেন, যেখানে উইন্ডোর নিচের ড্রপডাউন মেনু ব্যবহার করে একটি নতুন ফাইল শুরু করতে পারবেন।
বিদ্যমান নোটবুক
বিদ্যমান নোটবুক ফাইলগুলো (.ipynb) গুগল ড্রাইভ এবং কোলাব ইন্টারফেস থেকে খোলা যাবে।
গুগল ড্রাইভ
নোটবুক ফাইলগুলো কোথায় তৈরি করা হয়েছে তার উপর নির্ভর করে কোলাব নোটবুকগুলো গুগল ড্রাইভের বিভিন্ন ফোল্ডারে থাকতে পারে। গুগল ড্রাইভে তৈরি করা নোটবুকগুলো সেই ফোল্ডারেই থাকবে যেখানে সেগুলো তৈরি বা সরানো হয়েছে। কোলাব ইন্টারফেস থেকে তৈরি করা নোটবুকগুলো ডিফল্টভাবে 'Colab Notebooks' নামের একটি ফোল্ডারে থাকে, যা আপনি কোলাবে কাজ শুরু করার সাথে সাথে আপনার গুগল ড্রাইভের 'My Drive' ফোল্ডারে স্বয়ংক্রিয়ভাবে যুক্ত হয়ে যায়।
কোলাব ফাইলগুলো একটি হলুদ 'CO' চিহ্ন এবং '.ipynb' ফাইল এক্সটেনশন দ্বারা চেনা যায়। ফাইল খোলার জন্য, হয় সেটির উপর ডাবল-ক্লিক করে প্রাপ্ত পেজের উপরের দিকে থাকা বাটন থেকে 'Open with > Colaboratory' নির্বাচন করুন, অথবা ফাইলটির উপর রাইট-ক্লিক করে সেটির কনটেক্সট মেনু থেকে 'Open with > Colaboratory' নির্বাচন করুন।
কোলাব ইন্টারফেস
কোলাব ইন্টারফেস থেকে নোটবুক খুললে আপনি গুগল ড্রাইভ, গিটহাব এবং স্থানীয় হার্ডওয়্যার থেকে বিদ্যমান ফাইলগুলি অ্যাক্সেস করতে পারবেন। প্রথমবার ব্যবহারের পর কোলাব ইন্টারফেসে গেলে একটি ফাইল এক্সপ্লোরার মোডাল প্রদর্শিত হবে। ফাইল এক্সপ্লোরারের উপরের ট্যাবগুলি থেকে, একটি উৎস নির্বাচন করুন এবং আপনি যে .ipynb ফাইলটি খুলতে চান সেখানে যান। ফাইল > ওপেন নোটবুক নির্বাচন করে অথবা Ctrl+O কিবোর্ড কম্বিনেশন ব্যবহার করেও কোলাব ইন্টারফেস থেকে ফাইল এক্সপ্লোরার অ্যাক্সেস করা যায়।
এপিআই আমদানি করুন এবং ক্রেডেনশিয়াল সংগ্রহ করুন
এই বিভাগে দেখানো হয়েছে কীভাবে আর্থ ইঞ্জিন পাইথন এপিআই (Earth Engine Python API) ইম্পোর্ট করতে হয় এবং অ্যাক্সেস প্রমাণীকরণ করতে হয়। এই বিষয়বস্তুটি একটি কোলাব নোটবুক (Colab notebook) হিসেবেও উপলব্ধ:
আর্থ ইঞ্জিন এপিআই গুগল কোলাবোরেটরিতে ডিফল্টভাবে অন্তর্ভুক্ত থাকে, তাই এটিকে শুধু ইম্পোর্ট এবং অথেন্টিকেট করতে হয়। প্রতিটি নতুন কোলাব সেশনের জন্য, অথবা আপনার কোলাব কার্নেল রিস্টার্ট করলে, কিংবা নিষ্ক্রিয়তার কারণে আপনার কোলাব ভার্চুয়াল মেশিন রিসাইকেল করা হলে এই ধাপগুলো অবশ্যই সম্পন্ন করতে হবে।
এপিআই আমদানি করুন
আপনার সেশনে এপিআই (API) ইম্পোর্ট করতে নিম্নলিখিত সেলটি চালান।
import ee
প্রমাণীকরণ এবং প্রারম্ভিকীকরণ
আর্থ ইঞ্জিন সার্ভারগুলিতে আপনার অ্যাক্সেস প্রমাণীকরণের জন্য ee.Authenticate ফাংশনটি চালান এবং এটিকে ইনিশিয়ালাইজ করার জন্য ee.Initialize চালান। একটি কোড সেল যোগ করুন, নিম্নলিখিত লাইনগুলি লিখুন, প্রজেক্টটি সম্পাদনা করুন এবং সেলটি চালান।
# Trigger the authentication flow. ee.Authenticate() # Initialize the library. ee.Initialize(project='my-project')
আপনাকে আপনার আর্থ ইঞ্জিন অ্যাকাউন্টে প্রবেশের অনুমতি দিতে বলা হবে। এই ধাপটি সম্পন্ন করতে সেলে মুদ্রিত নির্দেশাবলী অনুসরণ করুন।
এপিআই পরীক্ষা করুন
মাউন্ট এভারেস্টের উচ্চতা প্রিন্ট করে এপিআইটি পরীক্ষা করুন। মনে রাখবেন, এপিআই ব্যবহার করার আগে আপনাকে অবশ্যই এটি ইনিশিয়ালাইজ করতে হবে। একটি নতুন সেলে নিম্নলিখিত পাইথন স্ক্রিপ্টটি চালান।
# 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 ফাংশনটি রয়েছে, যা Earth Engine-এর 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']}))
ইন্টারেক্টিভ মানচিত্র
একটি ইন্টারেক্টিভ লিফলেট ম্যাপে ee.Image অবজেক্টগুলো প্রদর্শন করতে folium প্যাকেজটি ব্যবহার করা যায়। আর্থ ইঞ্জিন থেকে টাইলস হ্যান্ডেল করার জন্য 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 এর মতো ডেটা ভিজ্যুয়ালাইজেশন প্যাকেজ ব্যবহার করে প্লট করা যায়। নিচের উদাহরণটিতে আর্থ ইঞ্জিন থেকে প্রাপ্ত সারণী ডেটাকে একটি স্ক্যাটার প্লট হিসেবে প্রদর্শন করা হয়েছে। আরও তথ্যের জন্য কোলাবোরেটরিতে চার্টিং (Charting in 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()
গুগল কোলাবে চালান
গিটহাবে উৎস দেখুন