נתוני GCS של AlphaEarth Foundations

gs://alphaearth_foundations קטגוריית GCS מכילה קובצי COG (Cloud Optimized GeoTIFF) שביחד יוצרים את מערך הנתונים השנתי של Satellite Embedding של AlphaEarth Foundations. הוא מכיל את ההטמעות השנתיות לשנים 2017 עד 2025, כולל.

‫Google מחויבת להמשיך ליצור שכבות שנתיות של הטמעת נתוני לוויין, ותספק הודעה מראש לפחות שנה לפני כל שינוי צפוי באספקה, בכפוף לזמינות השוטפת של זרמי נתוני הקלט מ-USGS ומ-ESA שעליהם מתבססת יצירת מערך הנתונים.

רישיון

קבוצת הנתונים הזו מורשית במסגרת CC-BY 4.0 ונדרש להוסיף את טקסט השיוך הבא: "קבוצת הנתונים AlphaEarth Foundations Satellite Embedding נוצרה על ידי Google ו-Google DeepMind".

החל מיולי 2026, מאגר הנתונים הזה מוגדר כ'הספק משלם'.

מבנה הספרייה

הם מחולקים לספריות לפי שנה. כל ספרייה של שנה מחולקת ל-120 ספריות משנה, אחת לכל אזור UTM, והשמות שלהן משקפים את מספר האזור ואת חצי הכדור (N או S).

בכל ספרייה יש מספר קובצי COG. הקבצים האלה מכילים את כל נתוני הפיקסלים של אזור ה-UTM הזה.

מבנה הקובץ

כל קובץ הוא בגודל ‎8,192x8,192 פיקסלים, עם 64 ערוצים. הגודל של כל פיקסל, אחרי החלת מיפוי ביטול הכימות (ראו בהמשך), עבר נורמליזציה כך שאורך אוקלידי יהיה 1.

הקבצים מכילים שכבות של תצוגה כללית ברזולוציות של ‎4,096x4,096 פיקסלים, ‎2,048x2,048 פיקסלים וכן הלאה, עד לשכבת תצוגה כללית ברמה העליונה בגודל ‎1x1. שכבות התצוגה הכללית האלה מורכבות כך שכל פיקסל בתצוגה הכללית הוא הממוצע של הפיקסלים ברזולוציה הגבוהה ביותר שמתחת לפיקסל הזה בתצוגה הכללית, כאשר הגודל של הממוצע עבר נורמליזציה כך שהאורך שלו הוא 1.

הערוצים תואמים, לפי הסדר, לצירים A00 עד A63 של מערך הנתונים של הטמעת הלוויין. גם ב-COG מופיע השם הזה של הערוצים.

הערך של כל פיקסל בכל ערוץ הוא מספר שלם חתום של 8 ביט. האופן שבו הערכים האלה ממופים לערכים המקוריים (בטווח [‎-1, 1]) של ההטמעות מוסבר במאמר De-quantization.

הערך ‎-128 מתאים לפיקסל מוסתר. אם היא מופיעה בערוץ אחד, היא תופיע בכל הערוצים. הערך הזה משתקף ב-COG (כלומר, הערך NoData מוגדר כ-‎-128).

השם של כל קובץ מכיל גם מידע מסוים. לדוגמה, קובץ בשם gs://alphaearth_foundations/satellite_embedding/v1/annual/2019/1S/x8qqwcsisbgygl2ry-0000008192-0000000000.tiff. כפי שאפשר לראות בשם הקובץ, הקובץ הזה הוא חלק מהטמעה שנתית משנת 2019, עבור אזור UTM‏ 1S (אזור 1, חצי הכדור הדרומי). שם הקובץ הבסיסי, x8qqwcsisbgygl2ry-0000008192-0000000000, משמש לקישור הקובץ הזה לשם התמונה המקבילה של הטמעת לוויין ב-Earth Engine. בדוגמה הזו, הקובץ הזה תואם לחלק מהתמונה של Earth Engine‏ GOOGLE/SATELLITE_EMBEDDING/V1/ANNUAL/x8qqwcsisbgygl2ry. שני החלקים העשרוניים של שם הקובץ מציינים את המיקום של ערכי ה-COG ביחס לתמונה של Earth Engine, כהיסט ב-Y ואחריו היסט ב-X. במקרה הזה, המקור של הפיקסלים ב-COG הוא (0, 8192) ביחס למקור של התמונה ב-Earth Engine. הסיבה לכך היא שהיה צורך לחלק כל תמונה של Earth Engine (שהיא בגודל 16,384x16,384 פיקסלים) כדי שקבצי ה-COG שיתקבלו לא יהיו גדולים מדי.

הסרת קוונטיזציה

כדי להמיר את הערך הגולמי עם סימן של 8 ביט (שיהיה בין ‎-127 ל-127 כולל, כי ‎-128 שמור כערך 'אין נתונים') בכל ערוץ של כל פיקסל לערך נקודה צפה שמוכן לניתוח (שיהיה בין ‎-1 ל-1), המיפוי שצריך לבצע הוא

  • לחלק ב-127.5
  • ריבוע
  • הכפלה בסימן של הערך המקורי

ב-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. הסרת קוונטיזציה: המרת המספרים השלמים הגולמיים בני 8 הביטים למספרים ממשיים באמצעות השיטה שמתוארת במאמר הסרת קוונטיזציה.
  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.

שכבות העל ב-COGs נוצרו באמצעות התהליך הזה. אם הן מתאימות לצרכים שלכם, תוכלו להשתמש בהן באופן מיידי ללא חישובים נוספים.

מניפסט ואינדקס

רשימת הקבצים במערך הנתונים הזה מופיעה בכתובת 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: הגבולות של מנטר התנועה של Urchin במערך הפיקסלים הגולמי. הנתון הזה לא משקף עיבוד גיאומטרי, והוא כולל את כל הפיקסלים, גם אם הם תקפים וגם אם לא.
  • wgs84_west, wgs84_south, wgs84_east, wgs84_north: קווי האורך וקווי הרוחב המינימליים והמקסימליים של גיאומטריית WGS84.

עיבוד גיאומטרי

מערך הפיקסלים נמצא באופן טבעי באזור UTM מסוים, ולכן באזור UTM הזה תיבת התוחמת של מערך הפיקסלים היא מלבן פשוט. התיבה התוחמת הזו עוברת המרה למצולע ב-WGS84. הפוליגון הזה כולל מספר נקודות נוספות כדי שהקצוות שלו יתאימו באופן מדויק לקווים המעוקלים ב-WGS84 שהקווים הישרים ב-UTM הופכים אליהם. הפוליגון הזה לא מתייחס לתוקף של הפיקסלים בתמונה, אלא רק לגבולות של מערך הפיקסלים של התמונה.

לאחר מכן, הפוליגון נחתך לפי קווי האורך המינימליים והמקסימליים של אזור ה-UTM של התמונה. בפועל, יכול להיות שהמערכת לא תכלול כמה פיקסלים תקינים שחורגים מהקצה של אזור ה-UTM. השמטה של הפיקסלים האלה מהאינדקס לא אמורה לגרום לבעיות: חלק מהתמונה מאזור ה-UTM הסמוך אמור לכסות את האזור הזה.

שימו לב: חיתוך לפי קווי האורך המינימליים והמקסימליים של אזור UTM פירושו שאף מצולע לא חוצה את קו התאריך הבינלאומי, ולכן העיבוד של הקובץ הזה אמור להיות פשוט יותר.