আলফাআর্থ ফাউন্ডেশনস জিসিএস ডেটা

gs://alphaearth_foundations GCS বাকেটটিতে COG (ক্লাউড অপ্টিমাইজড জিওটিআইএফএফ) ফাইল রয়েছে যা একসাথে আলফাআর্থ ফাউন্ডেশনের বার্ষিক স্যাটেলাইট এম্বেডিং ডেটাসেট তৈরি করে। এতে ২০১৭ থেকে ২০২৪ সাল পর্যন্ত বছরের বার্ষিক এম্বেডিং রয়েছে, যার মধ্যে রয়েছে।

লাইসেন্স

এই ডেটাসেটটি CC-BY 4.0 এর অধীনে লাইসেন্সপ্রাপ্ত এবং এর জন্য নিম্নলিখিত অ্যাট্রিবিউশন টেক্সট প্রয়োজন: "The AlphaEarth Foundations Satellite Embedding dataset is produced by Google and Google DeepMind."

এই বাকেটটি "অনুরোধকারীর অর্থ প্রদান" হিসেবে সেট আপ করা হয়েছে, তাই ডেটা ডাউনলোড করার জন্য বহির্গমন এবং অন্যান্য চার্জ লাগতে পারে।

ডিরেক্টরি কাঠামো

এগুলি বছর অনুসারে ডিরেক্টরিতে বিভক্ত; প্রতিটি বছরের ডিরেক্টরি 120টি উপ-ডিরেক্টরিতে বিভক্ত, প্রতি UTM জোনে একটি করে, যার নামগুলি জোন নম্বর এবং গোলার্ধ ( N বা S ) প্রতিফলিত করে।

প্রতিটি ডিরেক্টরির মধ্যে বেশ কয়েকটি COG ফাইল থাকে। এই ফাইলগুলিতে সেই UTM জোনের জন্য সমস্ত পিক্সেল ডেটা থাকে।

ফাইল গঠন

প্রতিটি ফাইল ৮১৯২x৮১৯২ পিক্সেল, ৬৪টি চ্যানেল সহ। ডি-কোয়ান্টাইজেশন ম্যাপিং প্রয়োগের পরে (নীচে দেখুন) প্রতিটি পিক্সেলের মান স্বাভাবিক করা হয়েছে যাতে এর ইউক্লিডীয় দৈর্ঘ্য ১ হয়।

ফাইলগুলিতে 4096x4096 পিক্সেল, 2048x2048 পিক্সেল এবং আরও অনেক কিছুর ওভারভিউ স্তর রয়েছে যা 1x1 শীর্ষ-স্তরের ওভারভিউ স্তরে পরিণত হয়। এই ওভারভিউ স্তরগুলি এমনভাবে তৈরি করা হয় যাতে প্রতিটি ওভারভিউ পিক্সেল সেই ওভারভিউ পিক্সেলের অধীনে সর্বোচ্চ-রেজোলিউশনের পিক্সেলের গড় হয়, যেখানে গড়ের মাত্রা 1 দৈর্ঘ্যে স্বাভাবিক করা হয়েছে।

চ্যানেলগুলি স্যাটেলাইট এমবেডিং ডেটাসেটের A00 থেকে A63 অক্ষের সাথে ক্রমানুসারে সঙ্গতিপূর্ণ। COG গুলিতে চ্যানেলগুলির জন্য এই নামকরণও থাকে।

প্রতিটি চ্যানেলের জন্য প্রতিটি পিক্সেলের মান একটি স্বাক্ষরিত 8-বিট পূর্ণসংখ্যা। এই মানগুলি এম্বেডিংয়ের স্থানীয় মানের ([-1, 1] পরিসরে) সাথে কীভাবে ম্যাপ করা হয় তা নীচে বর্ণনা করা হয়েছে।

মান -১২৮ একটি মাস্কড পিক্সেলের সাথে মিলে যায়। যদি এটি একটি চ্যানেলে উপস্থিত থাকে, তবে এটি সমস্ত চ্যানেলে উপস্থিত থাকবে। COG গুলি এটি প্রতিফলিত করে (অর্থাৎ, তাদের NoData মান -১২৮ তে সেট করা আছে)।

প্রতিটি ফাইলের নামও কিছু তথ্য বহন করে। উদাহরণস্বরূপ, gs://alphaearth_foundations/satellite_embedding/v1/annual/2019/1S/x8qqwcsisbgygl2ry-0000008192-0000000000.tiff নামের ফাইলটি বিবেচনা করুন। উপরে বর্ণিত হিসাবে, এই ফাইলটি 2019 সালের বার্ষিক এম্বেডিংয়ের অংশ এবং UTM জোন 1S (জোন 1, দক্ষিণ গোলার্ধ) এ রয়েছে। বেস ফাইলের নাম, x8qqwcsisbgygl2ry-0000008192-0000000000 , এই ফাইলটিকে সংশ্লিষ্ট আর্থ ইঞ্জিন স্যাটেলাইট এম্বেডিং ইমেজ নামের সাথে লিঙ্ক করার জন্য কাজ করে। এই উদাহরণে, এই ফাইলটি আর্থ ইঞ্জিন ইমেজ GOOGLE/SATELLITE_EMBEDDING/V1/ANNUAL/x8qqwcsisbgygl2ry এর একটি অংশের সাথে সম্পর্কিত। ফাইলের নামের দুটি দশমিক অংশ নির্দিষ্ট করে যে এই COG-এর মানগুলি সেই আর্থ ইঞ্জিন চিত্রের সাপেক্ষে কোথায়, Y-তে অফসেট হিসেবে এবং X-তে অফসেট হিসেবে। এই ক্ষেত্রে, COG-এর পিক্সেল উৎপত্তি আর্থ ইঞ্জিন চিত্রের উৎপত্তির সাপেক্ষে (0, 8192)। এর কারণ হল প্রতিটি আর্থ ইঞ্জিন চিত্রকে (যা 16384x16384 পিক্সেল) উপবিভক্ত করা প্রয়োজন ছিল যাতে ফলস্বরূপ COG গুলি খুব বেশি ভারী না হয়।

ডি-কোয়ান্টাইজেশন

প্রতিটি পিক্সেলের প্রতিটি চ্যানেলে কাঁচা স্বাক্ষরিত ৮-বিট মান (যা -১২৭ এবং ১২৭ এর মধ্যে হবে, কারণ -১২৮ "কোনও ডেটা নেই" মান হিসাবে সংরক্ষিত) বিশ্লেষণ-প্রস্তুত ভাসমান-পয়েন্ট মান (যা -১ এবং ১ এর মধ্যে হবে) রূপান্তর করতে, ম্যাপিংটি সম্পাদন করতে হবে

  • ১২৭.৫ দিয়ে ভাগ করো
  • বর্গক্ষেত্র
  • মূল মানের চিহ্ন দিয়ে গুণ করো

এটি NumPy তে প্রকাশ করা হবে এইভাবে

  # values is a NumPy array of raw pixel values
  de_quantized_values = ((values / 127.5) ** 2) * np.sign(values)

আর্থ ইঞ্জিনে, সংশ্লিষ্ট অপারেশনটি হবে

  var de_quantized_values = values.divide(127.5).pow(2).multiply(values.signum());

ডাউনস্যাম্পলড পিরামিড তৈরি করা

যদি আপনি এই COG গুলির বেস রেজোলিউশন স্তর থেকে আপনার নিজস্ব ডাউনস্যাম্পলড সংস্করণ বা বহিরাগত ওভারভিউ তৈরি করতে চান (উদাহরণস্বরূপ, বেশ কয়েকটি ফাইল মোজাইক করার পরে), তাহলে আপনাকে নীচের পদ্ধতিটি ব্যবহার করতে হবে। স্ট্যান্ডার্ড রাস্টার পিরামিডিং কৌশলগুলি (যেমন, কাঁচা পূর্ণসংখ্যার মানগুলিতে -r গড়ের সাথে gdaladdo ব্যবহার করা) সঠিক ফলাফল দেবে না।

  1. ডি-কোয়ান্টাইজ: উপরে বর্ণিত পদ্ধতি ব্যবহার করে কাঁচা ৮-বিট পূর্ণসংখ্যাকে ফ্লোটে রূপান্তর করুন।
  2. যোগফল ভেক্টর: উপাদান-ভিত্তিক অ-পরিমাণিত ভেক্টরগুলির যোগফল সম্পাদন করুন।
  3. স্বাভাবিকীকরণ: ফলস্বরূপ যোগফল ভেক্টরের ইউক্লিডীয় আদর্শ গণনা করুন এবং এটিকে একক দৈর্ঘ্যে পুনরায় স্বাভাবিকীকরণের জন্য আদর্শ দ্বারা ভাগ করুন।
import numpy as np

# Assuming 'raw_values' is a NumPy array of shape (N, 64)
# containing the raw signed 8-bit integers from N pixels.
# N = 4 for a 2x2 aggregation, for example.

# 1. De-quantize
de_quantized_values = ((raw_values / 127.5) ** 2) * np.sign(raw_values)

# 2. Sum the de-quantized vectors
sum_vec = np.sum(de_quantized_values, axis=0)  # Shape (64,)

# 3. Normalize the sum vector
norm = np.linalg.norm(sum_vec)
# Add epsilon to prevent division by zero
pyramided_vec = sum_vec / (norm + 1e-9)

# 'pyramided_vec' is the correctly downsampled 64-dimensional unit vector.

COG-তে ওভারভিউ স্তরগুলি এই পদ্ধতি ব্যবহার করে তৈরি করা হয়েছে; যদি সেগুলি আপনার প্রয়োজন অনুসারে হয়, তাহলে আপনি কেবল সেই ওভারভিউ স্তরগুলি ব্যবহার করতে পারেন এবং কোনও গণনা করতে হবে না।

ম্যানিফেস্ট এবং সূচক

এই ডেটাসেটের ফাইলগুলির একটি তালিকা gs://alphaearth_foundations/satellite_embedding/v1/annual/manifest.txt এ পাওয়া যাবে।

যেহেতু ফাইলের নাম থেকে বিশ্বের কোন অঞ্চলটি কভার করে তা নির্ধারণ করা সম্ভব নয়, তাই gs://alphaearth_foundations/satellite_embedding/v1/annual/aef_index.parquet , gs://alphaearth_foundations/satellite_embedding/v1/annual/aef_index.gpkg //alphaearth_foundations/satellite_embedding/v1/annual/aef_index.gpkg , এবং gs://alphaearth_foundations/satellite_embedding/v1/annual/aef_index.csv ফাইলগুলিতে তিনটি আকারে (GeoParquet, GeoPackage এবং CSV) একটি সূচকও প্রদান করা হয়েছে। এই সূচকে ডেটাসেটে প্রতিটি ফাইলের জন্য একটি এন্ট্রি রয়েছে। প্রতিটি ফাইলের জন্য প্রদত্ত তথ্য হল

  • ফাইলের জ্যামিতি WGS84 (অর্থাৎ, EPSG:4326) বহুভুজ হিসেবে। CSV ফর্ম্যাটে, এটি WKT কলামে রয়েছে। এই জ্যামিতি কীভাবে গণনা করা হয় তার বিস্তারিত জানার জন্য নীচে দেখুন।
  • crs : এই ছবিটি যে UTM জোনের CRS এর সাথে সম্পর্কিত, সেটি একটি EPSG কোড হিসেবে ব্যবহৃত হয়, যেমন EPSG:32610
  • year : ছবিটি যে বছরটি জুড়ে রয়েছে।
  • utm_zone : ছবির UTM জোন, যেমন 10N
  • utm_west , utm_south , utm_east , utm_north : কাঁচা পিক্সেল অ্যারের UTM সীমানা। এটি কোনও জ্যামিতি প্রক্রিয়াকরণ প্রতিফলিত করে না এবং সমস্ত পিক্সেল অন্তর্ভুক্ত করে, সেগুলি বৈধ হোক বা না হোক।
  • wgs84_west , wgs84_south , wgs84_east , wgs84_north : WGS84 জ্যামিতির সর্বনিম্ন/সর্বোচ্চ দ্রাঘিমাংশ এবং অক্ষাংশ।

জ্যামিতি প্রক্রিয়াকরণ

পিক্সেল অ্যারেটি মূলত কিছু UTM জোনে থাকে, তাই সেই UTM জোনে পিক্সেল অ্যারের বাউন্ডিং বক্সটি একটি সরল আয়তক্ষেত্র। WGS84-এ সেই বাউন্ডিং বক্সটি বহুভুজে রূপান্তরিত হয়। এই বহুভুজে বেশ কয়েকটি অতিরিক্ত বিন্দু রয়েছে যাতে এর প্রান্তগুলি WGS84-এ বক্ররেখার রেখাগুলিকে ঘনিষ্ঠভাবে অনুসরণ করে যেখানে UTM-এর সরলরেখাগুলি রূপান্তরিত হয়। এই বহুভুজটি ছবিতে পিক্সেলের বৈধতা/অবৈধতা বিবেচনা করে না, কেবল ছবির পিক্সেল অ্যারের সীমানা বিবেচনা করে।

এরপর বহুভুজটিকে ছবির UTM জোনের সর্বনিম্ন এবং সর্বোচ্চ দ্রাঘিমাংশে ক্লিপ করা হয়। বাস্তবে, এর ফলে UTM জোনের প্রান্তে ঝুলন্ত কয়েকটি বৈধ পিক্সেল এতে অন্তর্ভুক্ত নাও হতে পারে। সূচক থেকে এই পিক্সেলগুলি বাদ দিলে কোনও সমস্যা হওয়ার কথা নয়: পার্শ্ববর্তী UTM জোনের কিছু চিত্র সেই এলাকাটি জুড়ে থাকা উচিত।

মনে রাখবেন যে UTM জোনের সর্বনিম্ন/সর্বোচ্চ দ্রাঘিমাংশে ক্লিপ করার অর্থ হল কোনও বহুভুজ অ্যান্টিমেরিডিয়ান অতিক্রম করবে না, যা এই ফাইলটি প্রক্রিয়াকরণকে কিছুটা সহজ করে তুলবে।