gs://alphaearth_foundations GCS 值區包含 COG (Cloud Optimized GeoTIFF) 檔案,這些檔案共同組成 AlphaEarth Foundations 年度衛星嵌入資料集。其中包含 2017 年至 2025 年 (含) 的年度嵌入。
Google 致力於持續製作年度衛星嵌入圖層,並會在預期交付內容有任何異動時,至少提前一年通知您。不過,這項承諾的前提是 USGS 和 ESA 持續提供資料集製作所需的輸入資料串流。
授權
這個資料集是依據 CC BY 4.0 授權條款提供,使用時必須附上以下出處資訊:「AlphaEarth Foundations Satellite Embedding 資料集是由 Google 和 Google DeepMind 製作。」
這個值區設為「要求者付費」,因此下載資料可能會產生輸出和其他費用。
目錄結構
這些檔案會依年份劃分為目錄;每個年份的目錄會劃分為 120 個子目錄,每個子目錄代表一個 UTM 區域,名稱會反映區域編號和半球 (N 或 S)。
每個目錄中都有許多 COG 檔案。這些檔案包含該 UTM 區域的所有像素資料。
檔案結構
每個檔案都是 8192x8192 像素,並有 64 個通道。套用去量化對應 (如下所示) 後,每個像素的大小都會經過正規化,因此歐幾里得長度為 1。
檔案包含 4096x4096 像素、2048x2048 像素等概覽層,直到 1x1 頂層概覽層為止。這些概覽圖層的建構方式,是讓每個概覽像素成為該概覽像素下方最高解析度像素的平均值,且平均值的量值已正規化為長度 1。
這些管道依序對應至「衛星嵌入」資料集的 A00 到 A63 軸。COGs 也包含頻道的這個命名。
每個像素的各個管道值都是帶正負號的 8 位元整數。這些值如何對應至嵌入的原始值 (範圍為 [-1, 1]),請參閱「去量化」。
值為 -128 時,對應的是已遮蓋的像素。如果某個管道有這項資訊,所有管道都會有。COGS 會反映這點 (也就是說,COGS 的 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 中的偏移量。在本例中,相對於 Earth Engine 影像的原點,COG 的像素原點位於 (0, 8192)。這是因為必須細分每個 Earth Engine 圖像 (16384x16384 像素),才能避免產生的 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) 無法產生正確結果。
- 取消量化:使用「取消量化」一節所述方法,將原始 8 位元整數轉換為浮點數。
- 加總向量:對解除量化的向量執行元素級別的加總。
- 正規化:計算結果總和向量的歐幾里得範數,然後除以該範數,重新正規化為單位長度。
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:這個圖片所屬 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 區域的最小和最大經度,表示沒有多邊形會跨越子午線,這應該會讓處理這個檔案稍微簡單一些。