داده‌های GCS بنیاد آلفاارث

فایل gs://alphaearth_foundations GCS شامل فایل‌های COG (فایل GeoTIFF بهینه‌شده برای ابر) است که در کنار هم مجموعه داده‌های سالانه جاسازی ماهواره‌ای AlphaEarth Foundations را تشکیل می‌دهند. این مجموعه شامل جاسازی‌های سالانه برای سال‌های ۲۰۱۷ تا ۲۰۲۵، از جمله است.

گوگل متعهد به تولید مداوم لایه‌های جاسازی ماهواره‌ای سالانه است و حداقل یک سال قبل از هرگونه تغییر پیش‌بینی‌شده در تحویل، اطلاع‌رسانی خواهد کرد، منوط به اینکه جریان‌های داده ورودی از USGS و ESA که تولید مجموعه داده‌ها به آنها متکی است، در دسترس باشند.

مجوز

این مجموعه داده تحت مجوز CC-BY 4.0 منتشر شده است و به متن ارجاع زیر نیاز دارد: « مجموعه داده جاسازی ماهواره‌ای AlphaEarth Foundations توسط گوگل و Google DeepMind تولید شده است.»

این سطل به صورت «درخواست‌کننده هزینه را پرداخت می‌کند» تنظیم شده است، بنابراین دانلود داده‌ها ممکن است شامل هزینه‌های خروجی و سایر هزینه‌ها باشد.

ساختار دایرکتوری

آنها بر اساس سال به دایرکتوری‌ها تقسیم می‌شوند؛ دایرکتوری هر سال به ۱۲۰ زیردایرکتوری تقسیم می‌شود، یکی برای هر منطقه UTM، که نام آنها نشان دهنده شماره منطقه و نیمکره ( N یا S ) است.

درون هر دایرکتوری تعدادی فایل COG وجود دارد. این فایل‌ها شامل تمام داده‌های پیکسلی برای آن منطقه UTM هستند.

ساختار فایل

هر فایل ۸۱۹۲x۸۱۹۲ پیکسل است و ۶۴ کانال دارد. بزرگی هر پیکسل، پس از اعمال نگاشت غیرکوانتیزه (به زیر مراجعه کنید)، نرمال‌سازی شده است، به طوری که طول اقلیدسی آن ۱ است.

این فایل‌ها شامل لایه‌های نمای کلی با ابعاد ۴۰۹۶x۴۰۹۶ پیکسل، ۲۰۴۸x۲۰۴۸ پیکسل و به همین ترتیب تا یک لایه نمای کلی سطح بالا ۱x۱ هستند. این لایه‌های نمای کلی به گونه‌ای ساخته شده‌اند که هر پیکسل نمای کلی، میانگین پیکسل‌های با بالاترین وضوح زیر آن پیکسل نمای کلی است، که در آن بزرگی میانگین به طول ۱ نرمال‌سازی شده است.

این کانال‌ها به ترتیب با محورهای A00 تا A63 از مجموعه داده‌های Satellite Embedding مطابقت دارند. COGها نیز حاوی این نامگذاری برای کانال‌ها هستند.

مقدار هر پیکسل برای هر کانال، یک عدد صحیح ۸ بیتی علامت‌دار است. نحوه‌ی نگاشت این مقادیر به مقادیر اصلی (در محدوده‌ی [-1, 1]) جاسازی‌ها در بخش De-quantization توضیح داده شده است.

مقدار -۱۲۸ مربوط به یک پیکسل ماسک شده است. اگر در یک کانال وجود داشته باشد، در تمام کانال‌ها نیز وجود خواهد داشت. COGها این را منعکس می‌کنند (یعنی مقدار NoData آنها روی -۱۲۸ تنظیم شده است).

نام هر فایل همچنین حاوی اطلاعاتی است. برای مثال، فایلی با نام gs://alphaearth_foundations/satellite_embedding/v1/annual/2019/1S/x8qqwcsisbgygl2ry-0000008192-0000000000.tiff را در نظر بگیرید. همانطور که از نام فایل مشخص است، این فایل بخشی از جاسازی سالانه ۲۰۱۹ برای منطقه UTM 1S (منطقه ۱، نیمکره جنوبی) است. نام فایل پایه، 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)

در Earth Engine، عملیات مربوطه به صورت زیر خواهد بود:

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

ایجاد هرم‌های کوچک‌شده

اگر قصد دارید نسخه‌های نمونه‌برداری شده یا نمای کلی خارجی خود را از لایه وضوح پایه این COGها ایجاد کنید (برای مثال، پس از موزاییک کردن چندین فایل)، باید از روش زیر استفاده کنید. تکنیک‌های استاندارد هرمی‌سازی رستری (مثلاً استفاده از gdaladdo با -r average روی مقادیر عدد صحیح خام) نتایج صحیحی تولید نمی‌کنند.

  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 بیابید.

از آنجایی که از روی نام فایل‌ها نمی‌توان مشخص کرد که کدام منطقه از جهان را پوشش می‌دهند، یک فهرست نیز در سه شکل (GeoParquet، GeoPackage و CSV) در فایل‌های gs://alphaearth_foundations/satellite_embedding/v1/annual/aef_index.parquet ، gs://alphaearth_foundations/satellite_embedding/v1/annual/aef_index.gpkg و gs://alphaearth_foundations/satellite_embedding/v1/annual/aef_index.csv ارائه شده است. این فهرست شامل یک ورودی برای هر فایل در مجموعه داده‌ها است. اطلاعات ارائه شده برای هر فایل به صورت زیر است:

  • هندسه فایل به عنوان یک چندضلعی WGS84 (یعنی EPSG:4326). در فرم CSV، این در ستون WKT قرار دارد. برای جزئیات محاسبات به پردازش هندسه مراجعه کنید.
  • crs : CRS مربوط به ناحیه UTM که این تصویر به آن تعلق دارد، به صورت یک کد 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 به این معنی است که هیچ چندضلعی از آنتی‌مریدین عبور نمی‌کند، که این امر باید پردازش این فایل را کمی ساده‌تر کند.