gs://alphaearth_foundations GCS paketinde, AlphaEarth Foundations'ın yıllık uydu yerleştirme veri kümesini oluşturan COG (Cloud Optimized GeoTIFF) dosyaları bulunur. 2017-2025 yılları arasındaki yıllık yerleştirmeleri içerir.
Google, yıllık uydu yerleştirme katmanlarının sürekli olarak üretilmesini sağlamayı taahhüt eder. USGS ve ESA'dan gelen ve veri kümesi üretiminin dayandığı giriş veri akışlarının sürekli olarak kullanılabilir olması koşuluyla, teslimatta beklenen değişikliklerle ilgili en az bir yıl önceden bildirimde bulunur.
Lisans
Bu veri kümesi CC-BY 4.0 kapsamında lisanslanmıştır ve şu ilişkilendirme metnini gerektirir: "AlphaEarth Foundations Satellite Embedding veri kümesi Google ve Google DeepMind tarafından üretilmiştir."
Bu paket "istek sahibi öder" olarak ayarlandığından veri indirmek için çıkış ve diğer ücretler alınabilir.
Dizin yapısı
Yıllara göre dizinlere ayrılırlar. Her yılın dizini, UTM bölgesi başına bir tane olmak üzere 120 alt dizine ayrılır. Bu alt dizinlerin adları, bölge numarasını ve yarım küreyi (N veya S) yansıtır.
Her dizinde bir dizi COG dosyası bulunur. Bu dosyalar, söz konusu UTM bölgesiyle ilgili tüm piksel verilerini içerir.
Dosya yapısı
Her dosya 64 kanallı ve 8.192x8.192 pikseldir. Her pikselin büyüklüğü, nicelikten arındırma eşlemesi uygulandıktan sonra (aşağıya bakın) 1 Öklid uzunluğuna sahip olacak şekilde normalleştirilmiştir.
Dosyalar, 4096x4096 piksel, 2048x2048 piksel ve bu şekilde devam ederek 1x1 piksel boyutunda üst düzey bir genel bakış katmanına kadar genel bakış katmanları içerir. Bu genel bakış katmanları, her bir genel bakış pikselinin, o genel bakış pikselinin altındaki en yüksek çözünürlüklü piksellerin ortalaması olacak şekilde oluşturulur. Ortalamanın büyüklüğü, uzunluğu 1 olacak şekilde normalleştirilir.
Kanallar, Satellite Embedding veri kümesinin A00 ile A63 eksenlerine sırasıyla karşılık gelir. COGS'de kanallar için bu adlandırma da yer alır.
Her kanal için her pikselin değeri, işaretli 8 bitlik bir tam sayıdır. Bu değerlerin, yerleştirme işlemlerinin yerel değerleriyle ([-1, 1] aralığında) eşlenme şekli De-quantization (De-kuantizasyon) bölümünde açıklanmaktadır.
-128 değeri, maskelenmiş bir piksele karşılık gelir. Bir kanalda varsa tüm kanallarda bulunur. COGS'ler bunu yansıtır (yani NoData değeri -128 olarak ayarlanmıştır).
Her dosyanın adı da bazı bilgiler içerir. Örneğin, gs://alphaearth_foundations/satellite_embedding/v1/annual/2019/1S/x8qqwcsisbgygl2ry-0000008192-0000000000.tiff adlı dosyayı ele alalım.
Dosya adından da anlaşılacağı gibi bu dosya, UTM bölgesi 1S (bölge 1, güney yarımküre) için 2019 yıllık yerleştirme işleminin bir parçasıdır.
Temel dosya adı, x8qqwcsisbgygl2ry-0000008192-0000000000, bu dosyayı ilgili Earth Engine Satellite Embedding Image adına bağlamak için kullanılır. Bu örnekte, bu dosya Earth Engine görüntüsünün GOOGLE/SATELLITE_EMBEDDING/V1/ANNUAL/x8qqwcsisbgygl2ry bir bölümüne karşılık geliyor. Dosya adının ondalık kısımları, bu COG'nin değerlerinin Earth Engine görüntüsüne göre nerede olduğunu Y'deki bir ofset ve ardından X'teki bir ofset olarak belirtir. Bu durumda, COG'nin piksel başlangıcı, Earth Engine görüntüsünün başlangıcına göre (0, 8192) konumundadır.
Bunun nedeni, sonuçta elde edilen COG'ların çok hantal olmaması için her bir Earth Engine görüntüsünün (16384x16384 piksel) alt bölümlere ayrılmasının gerekmesidir.
De-quantization
Her pikselin her kanalındaki ham imzalı 8 bitlik değeri (128 "veri yok" değeri olarak ayrıldığından -127 ile 127 arasında olacak) analize hazır kayan nokta değerine (-1 ile 1 arasında olacak) dönüştürmek için aşağıdaki eşleme gerçekleştirilir:
- 127,5'e bölün
- kare
- orijinal değerin işaretiyle çarpın.
Bu, NumPy'de şu şekilde ifade edilir:
# values is a NumPy array of raw pixel values
de_quantized_values = ((values / 127.5) ** 2) * np.sign(values)
Earth Engine'de ilgili işlem
var de_quantized_values = values.divide(127.5).pow(2).multiply(values.signum());
Alt örneklenmiş piramitler oluşturma
Bu COG'ların temel çözünürlük katmanından kendi alt örneklenmiş sürümlerinizi veya harici genel görünümlerinizi oluşturmayı planlıyorsanız (örneğin, birkaç dosyayı mozaikledikten sonra) aşağıdaki prosedürü kullanmanız gerekir. Standart raster piramit oluşturma teknikleri (ör. ham tamsayı değerlerinde -r average ile gdaladdo kullanma) doğru sonuçlar vermez.
- De-quantize: De-quantization bölümünde açıklanan yöntemi kullanarak ham 8 bitlik tam sayıları kayan noktalı sayılara dönüştürün.
- Vektörleri Toplama: Nicemlenmesi kaldırılmış vektörlerin öğe bazında toplamını gerçekleştirin.
- Normalleştirme: Ortaya çıkan toplam vektörün Öklid normunu hesaplayın ve birim uzunluğa yeniden normalleştirmek için normu bu değere bölün.
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'deki genel bakış katmanları bu prosedür kullanılarak oluşturulmuştur. İhtiyaçlarınıza uygunsa bu genel bakış katmanlarını ek hesaplama yapmadan hemen kullanabilirsiniz.
Manifest ve dizin
Bu veri kümesindeki dosyaların listesini gs://alphaearth_foundations/satellite_embedding/v1/annual/manifest.txt bölümünde bulabilirsiniz.
Dosya adlarından hangi bölgeyi kapsadıkları belirlenemediğinden, gs://alphaearth_foundations/satellite_embedding/v1/annual/aef_index.parquet, gs://alphaearth_foundations/satellite_embedding/v1/annual/aef_index.gpkg ve gs://alphaearth_foundations/satellite_embedding/v1/annual/aef_index.csv dosyalarında üç biçimde (GeoParquet, GeoPackage ve CSV) bir dizin de sağlanmıştır. Bu dizinde, veri kümesindeki her dosya için bir giriş bulunur. Her dosya için sağlanan bilgiler
- Dosyanın WGS84 olarak geometrisi (ör. EPSG:4326) poligonu. CSV biçiminde bu,
WKTsütunundadır. Hesaplama ayrıntıları için Geometri işleme başlıklı makaleyi inceleyin. crs: Bu görüntünün ait olduğu UTM bölgesinin EPSG kodu olarak CRS'si (ör.EPSG:32610).year: Resmin kapsadığı yıl.utm_zone: Resmin UTM bölgesi (ör.10N).utm_west,utm_south,utm_east,utm_north: Ham piksel dizisinin UTM sınırları. Bu, herhangi bir geometri işlemeyi yansıtmaz ve geçerli olup olmadıklarına bakılmaksızın tüm pikselleri içerir.wgs84_west,wgs84_south,wgs84_east,wgs84_north: WGS84 geometrisinin minimum ve maksimum boylam ve enlemi.
Geometri işleme
Piksel dizisi, bazı UTM bölgelerinde doğal olarak bulunur. Bu nedenle, söz konusu UTM bölgesinde piksel dizisinin sınırlayıcı kutusu basit bir dikdörtgendir. Bu sınırlayıcı kutu, WGS84'te bir poligona dönüştürülür. Bu çokgen, kenarlarının WGS84'teki eğri çizgileri yakından takip etmesi için bir dizi ek nokta içerir. Bu eğri çizgiler, UTM'deki düz çizgilerin dönüştürüldüğü çizgilerdir. Bu çokgen, resimdeki piksellerin geçerliliğini dikkate almaz. Yalnızca resmin piksel dizisinin sınırlarını dikkate alır.
Ardından, poligon, görüntünün UTM bölgesinin minimum ve maksimum boylamına göre kırpılır. Pratikte bu durum, UTM bölgesinin kenarından taşan birkaç geçerli pikselin dahil edilmemesine neden olabilir. Bu piksellerin dizinden çıkarılması herhangi bir soruna neden olmamalıdır. Komşu UTM bölgesindeki bir resim bu alanı kapsamalıdır.
UTM bölgesinin minimum ve maksimum boylamına kırpmanın, hiçbir poligonun antimeridyeni geçmediği anlamına geldiğini unutmayın. Bu da dosyanın işlenmesini biraz daha kolaylaştırır.