Google Earth Engine'a (EE) resim yüklerken Kod Düzenleyici kullanıcı arayüzünde veya 'earthengine' komut satırı aracının upload
komutunda sunulandan daha fazla esnekliğe ihtiyacınız varsa "manifest" olarak bilinen bir JSON dosyası kullanarak ve komut satırı aracının upload image --manifest
komutunu kullanarak resim yüklemeyi tanımlayabilirsiniz.
Resim karolarının bir manifest kullanılarak tek bir öğe olarak nasıl yükleneceğini gösteren tam bir örneği bu Colab not defterinde bulabilirsiniz.
Tek seferlik kurulum
- Manifest yüklemeleri yalnızca Google Cloud Storage'da bulunan dosyalarla çalışır. Google Cloud Storage'ı kullanmaya başlamak için, henüz yoksa bir Google Cloud projesi oluşturun. Kurulum sırasında faturalandırma için bir kredi kartı belirtmeniz gerektiğini unutmayın. EE şu anda sizden ücret almıyor ancak dosyalarınızı EE'ye yüklemeden önce Google Cloud Storage'a aktarmak küçük bir maliyet gerektirir. Genel yükleme veri boyutları (onlar veya yüzler gigabayt) için maliyet oldukça düşük olur.
- Projenizde Cloud Storage API'yi etkinleştirin ve paket oluşturun.
- Earth Engine Python istemcisini yükleyin. Veri yüklemek için kullanacağımız
earthengine
komut satırı aracını içerir. - Otomatik yüklemeler için projenizle ilişkili bir Google Cloud hizmet hesabı kullanmak isteyebilirsiniz. Test için hizmet hesabına ihtiyacınız yoktur ancak zamanınız olduğunda lütfen bunları kullanmaya başlamayı öğrenin.
Çok büyük kaynak dosyalar (100 GB veya daha büyük) birden fazla karoya bölündüğünde daha hızlı yüklenebilir.
Öğe kimlikleri ve adları
Cloud projesine ait öğeler için öğe adlarında şu kuralı kullanın:
projects/some-project-id/assets/some-asset-id
.
Eski proje ve kullanıcıya ait öğelerin öğe adları hakkında bilgi edinme
Eski projelerde, manifest'teki öğe adının Earth Engine'ın başka bir yerinde görünen öğe kimliğinden biraz farklı olması gerekir. Öğe kimlikleri users/some_user
veya projects/some_project
ile başlayan öğeleri yüklemek için manifest'teki öğe adının başına projects/earthengine-legacy/assets/
dizesi eklenmelidir. Örneğin, EE öğe kimliği users/username/my_geotiff
, projects/earthengine-legacy/assets/users/username/my_geotiff
adı kullanılarak yüklenmelidir.
Evet, bu durum projects/some_projects/some_asset
gibi kimliklerin projects
'nin iki kez geçtiği adlara dönüştürüldüğü anlamına gelir:
projects/earthengine-legacy/assets/projects/some_projects/some_asset
.
Bu durum kafa karıştırıcı olsa da Google Cloud API standartlarına uymak için gereklidir.
Manifestleri kullanma
Aşağıdaki kod bloğunda temel bir manifest gösterilmektedir. gs://earthengine-test
adlı bir Google Cloud Storage paketinden small.tif
adlı bir dosya yükler.
{ "name": "projects/some-project-id/assets/some-asset-id", "tilesets": [ { "sources": [ { "uris": [ "gs://earthengine-test/small.tif" ] } ] } ] }
Kullanmak için manifest.json
adlı bir dosyaya kaydedip şunu çalıştırın:
earthengine upload image --manifest /path/to/manifest.json
(gs://earthengine-test/small.tif
dosyası mevcuttur ve herkese açıktır. Test için bu dosyayı kullanabilirsiniz.)
Karo grupları
JSON'un karmaşık manifest yapısı, yaygın bir yükleme sorununu çözmek için yeterli esneklik sağlamak amacıyla gereklidir: birden fazla kaynak dosyadaki pikselleri tek bir öğede birleştirmenin tüm olası yollarını nasıl tanımlayacağınız. Daha açık belirtmek gerekirse, dosyaları gruplamanın iki bağımsız yolu vardır:
- Mozaikler. Bazen birden fazla dosya birden fazla karoyu temsil eder (örneğin, her karo 1x1 derecelik bir karedir). Bu tür dosyalar, EE öğesinde aynı bantta mozaik halinde (birleştirilerek) oluşturulmalıdır.
- Ayrı bantlar. Bazen birden fazla dosya birden fazla bandı temsil eder. Bu tür dosyalar, EE öğesinde bantlar olarak birlikte gruplandırılmalıdır.
(Her iki yöntemin de aynı anda kullanılması gerekebilir ancak bu durum nadirdir.)
Bu seçenekleri açıklamak için manifest'lerde karo grubu kavramı tanıtılır. Tek bir karo grubu, tek bir GDAL kaynağına karşılık gelir. Bu nedenle, tek bir karo grubundaki tüm kaynakların aynı GDAL yapısına (bant sayısı ve türü, projeksiyon, dönüştürme, eksik değer) sahip olması gerekir. GDAL kaynağının birden fazla bandı olabileceğinden, bir karo grubu birden fazla EE bandına ait veriler içerebilir.
Mozaik beslemesi için manifest şöyle görünür:
{ "name": "projects/some-project-id/assets/some-asset-id", "tilesets": [ { "sources": [ { "uris": [ "gs://bucket/N30W22.tif" ] }, { "uris": [ "gs://bucket/N31W22.tif" ] } ] } ] }
Ayrı bantlar için manifest şu şekilde görünür (aşağıda açıklandığı şekilde bir bands
bölümü de eklemeniz gerekir):
{ "name": "projects/some-project-id/assets/some-asset-id", "bands": ..., "tilesets": [ { "id": "tileset_for_band1", "sources": [ { "uris": [ "gs://bucket/band1.tif" ] } ] }, { "id": "tileset_for_band2", "sources": [ { "uris": [ "gs://bucket/band2.tif" ] } ] } ] }
Ayrı bantlar söz konusu olduğunda, netlik için her bir karo grubuna farklı bir karo grubu kimliği vermemiz gerektiğini unutmayın. Karo grubu kimliği herhangi bir dize olabilir. Bu dizeler yüklenen öğede saklanmaz. Karo grubu kimlikleri yalnızca, yığılmış karo gruplarını birbirinden ayırt etmek için besleme sırasında kullanılır.
Bantlar
İkinci önemli kavram, kaynak dosyaların EE öğe bantlarıyla eşleştirilmesidir.
Bu işlem, manifestin bands
bölümü kullanılarak yapılır.
bands
bölümü atlanabilir. Bu durumda bantlar önce ilk karo grubundaki dosyalardan, ardından sonraki karo grubundan ve bu şekilde oluşturulur.
Bantlar varsayılan olarak "b1", "b2" vb. olarak adlandırılır. Varsayılan bant adlarını geçersiz kılmak için sonuna şu şekilde bir "bantlar" bölümü ekleyin:
{ "name": "projects/earthengine-legacy/assets/users/username/some_folder/some_id", "tilesets": [ { "sources": [ { "uris": [ "gs://bucket/rgb.tif" ] } ] } ], "bands": [ { "id": "R", "tilesetBandIndex": 0 }, { "id": "G", "tilesetBandIndex": 1 }, { "id": "B", "tilesetBandIndex": 2 } ] }
EE bantlarının sayısı, tüm karo kümelerindeki toplam bant sayısıyla aynı olmalıdır.
Bir dosyadaki tüm bantları beslemek istemiyorsanız GDAL bantlarından hangilerinin besleneceğini belirtmek için tilesetBandIndex
alanını kullanabilirsiniz.
İlk bantın tilesetBandIndex değeri 0'dır.
Örnek:
Kaynak dosyanın dört bandı olduğunu varsayalım: "tmin", "tmin_error", "tmax", "tmax_error". Yalnızca "tmin" ve "tmax" değerlerini beslemek istiyoruz. Alakalı manifest bölümleri şöyle görünür:
{ "name": "projects/earthengine-legacy/assets/users/username/some_folder/some_id", "tilesets": [ { "id": "temperature", "sources": [ { "uris": [ "gs://bucket/temperature.tif" ] } ] } ], "bands": [ { "id": "tmin", "tilesetBandIndex": 0, "tilesetId": "temperature" }, { "id": "tmax", "tilesetBandIndex": 2, "tilesetId": "temperature" } ] }
Maske bantları
Bant maskelemesi, manifestin maskBands
bileşeni tarafından kontrol edilir.
Üç olası maske yapılandırması desteklenir (ancak maske bandının her zaman belirli bir dosyadaki son bant olduğu varsayılır).
- Aynı dosyadaki tüm veri bantları için maskeleme yapın.
- Diğer tüm dosyalardan gelen tüm veri bantları için maskeleme.
- Bazı veri bantları için maskeleme.
1. En yaygın durum, son bandı diğer bantlar için maske olarak kullanılan tek bir GeoTIFF'tir. Bu işlem yalnızca Byte türündeki GeoTIFF'ler için işe yarar. Aşağıdaki manifest dosyasını kullanın:
{ "name": "projects/earthengine-legacy/assets/users/username/some_folder/some_id", "tilesets": [ { "id": "data_tileset", "sources": [ { "uris": [ "gs://bucket/data_file.tif" ] } ] } ], "bands": [ { "id": "data_band", "tilesetId": "data_tileset" }, { "id": "qa_band", "tilesetId": "data_tileset" } ], "maskBands": [ { "tilesetId": "data_tileset" } ] }
2. Bir maske GeoTIFF'yi başka bir GeoTIFF'teki tüm bantlar için maske olarak kullanmak istiyorsanız aşağıdaki manifest'i kullanın:
{ "name": "projects/earthengine-legacy/assets/users/username/some_folder/some_id", "tilesets": [ { "id": "data_tileset", "sources": [ { "uris": [ "gs://bucket/data_file.tif" ] } ] }, { "id": "mask_tileset", "sources": [ { "uris": [ "gs://bucket/mask_file.tif" ] } ] } ], "bands": [ { "id": "data_band", "tilesetId": "data_tileset" }, { "id": "qa_band", "tilesetId": "data_tileset" } ], "maskBands": [ { "tilesetId": "mask_tileset" } ] }
3. Başka bir dosyadaki belirli bir bant için maske olarak GeoTIFF kullanmak isterseniz aşağıdaki manifest dosyasını kullanın (önceki örnekten farkı, maskBands
içindeki bandIds
alanının ayarlanmış olmasıdır):
{ "name": "projects/earthengine-legacy/assets/users/username/some_folder/some_id", "tilesets": [ { "id": "data_tileset", "sources": [ { "uris": [ "gs://bucket/data_file.tif" ] } ] }, { "id": "mask_tileset", "sources": [ { "uris": [ "gs://bucket/mask_file.tif" ] } ] } ], "bands": [ { "id": "data_band", "tilesetId": "data_tileset" }, { "id": "qa_band", "tilesetId": "data_tileset" } ], "maskBands": [ { "tilesetId": "mask_tileset", "bandIds": ["data_band"] } ] }
Son örnekte, data_tileset
karo grubundan iki bantla çalışıyoruz ancak yalnızca sağlanan tek maskBands
liste nesnesinin bandIds
alanında belirtildiği gibi bantlardan birine (data_band
) maske uyguluyoruz.
Maske bandı olarak yalnızca maskBands
içinde belirtilen karo grubunun son bandının kullanıldığını unutmayın.
Piramit satış politikası
Earth Engine, besleme sırasında resim piramitleri oluştururken 2x2 piksellik ızgaraları tek bir piksel haline getirmek için piksel değerini bir şekilde dönüştürerek tekrar tekrar küçültmelidir. Varsayılan olarak, piksel değerleri ortalaması alınır. Bu, raster bandı aşağı yukarı kesintisiz verileri temsil ettiğinde çoğu durumda doğru işlemdir. Ancak, varsayılan değere güvenmenin yanlış sonuçlar vereceği iki durum vardır. Bu durumda, bant tanımında pyramidingPolicy
alanı ayarlanmalıdır (ayarlanmazsa değerinin varsayılan olarak "ORTALAMA" olduğu varsayılır).
Rastır görüntülerin sınıflandırılması için (ör. yer örtüsü sınıflandırması için) pikselleri piramide dönüştürmenin en mantıklı yolu, sonraki değeri oluşturmak üzere dört değerin çoğunu almaktır. Bu işlem, "MODE" piramide oluşturma politikası kullanılarak yapılır:
{ "name": "projects/earthengine-legacy/assets/users/username/some_folder/some_id", "tilesets": [ { "sources": [ { "uris": [ "gs://bucket/landcover.tif" ] } ] } ], "bands": [ { "id": "landcover", "pyramidingPolicy": "MODE" } ] }
"MEAN" veya "MODE" işlevinin anlamlı olmadığı raster bantlar (ör. bit paketlenmiş pikseller) için "SAMPLE" piramide oluşturma politikası kullanılmalıdır. "SAMPLE" her zaman her 2x2 ızgaradaki sol üst pikselin değerini alır. Aşağıdaki örnekte, "MEAN" piramide oluşturma politikası sürekli bir değişkeni ("NDVI") temsil eden bir banda, "SAMPLE" ise verilerin "QA" bandına atanır.
{ "name": "projects/earthengine-legacy/assets/users/username/some_folder/some_id", "tilesets": [ { "sources": [ { "uris": [ "gs://bucket/ndvi.tif" ] } ] } ], "bands": [ { "id": "NDVI", "tilesetBandIndex": 0, "pyramidingPolicy": "MEAN" }, { "id": "QA", "tilesetBandIndex": 1, "pyramidingPolicy": "SAMPLE" } ] }
Başlangıç ve bitiş zamanı
Özellikle koleksiyonlara dahil edilmişlerse verilere daha fazla bağlam bilgisi vermek için tüm öğelerin başlangıç ve bitiş zamanı belirtilmelidir. Bu alanlar zorunlu değildir ancak mümkün olduğunda kullanılmasını önemle tavsiye ederiz.
Başlangıç ve bitiş zamanı genellikle kaynak dosyanın oluşturulduğu zamanı değil, gözlemin yapıldığı zamanı ifade eder.
Bitiş zamanı, basitlik açısından hariç tutulan bir sınır olarak kabul edilir. Örneğin, tam olarak bir gün süren öğeler için başlangıç ve bitiş zamanı olarak iki Öğenin süresi yoksa bitiş zamanını başlangıç zamanıyla aynı olacak şekilde ayarlayın. Manifestlerdeki saatleri ISO 8601 dizeleri olarak gösterin. Tarih değerlerini basitleştirmek için bitiş süresinin hariç tutulduğunu (örneğin, günlük öğeler için ertesi günün gece yarısı) varsaymanız önerilir.
Örnek:
{ "name": "projects/some-project-id/assets/some-asset-id", "tilesets": [ { "sources": [ { "uris": [ "gs://bucket/img_20190612.tif" ] } ] } ], "startTime": "1980-01-31T00:00:00Z", "endTime": "1980-02-01T00:00:00Z" }
Manifest yapısı referansı
Aşağıdaki JSON yapısı, olası tüm resim yükleme manifesti alanlarını içerir. Alan tanımlarını aşağıdaki Manifest alan tanımları bölümünde bulabilirsiniz.
{ "name": <string>, "tilesets": [ { "dataType": <string>, "id": <string>, "crs": <string>, "sources": [ { "uris": [ <string> ], "affineTransform": { "scaleX": <double>, "shearX": <double>, "translateX": <double>, "shearY": <double>, "scaleY": <double>, "translateY": <double> } } ] } ], "bands": [ { "id": <string>, "tilesetId": <string>, "tilesetBandIndex": <int32>, "missingData": { "values": [<double>] }, "pyramindingPolicy": <string> } ], "maskBands": [ { "tilesetId": <string>, "bandIds": [ <string> ] } ], "footprint": { "points": [ { "x": <double>, "y": <double> } ], "bandId": <string> }, "missingData": { "values": [<double>] }, "pyramidingPolicy": <string>, "uriPrefix": <string>, "startTime": { "seconds": <integer> }, "endTime": { "seconds": <integer> }, "properties": { <unspecified> } }
Manifest alan tanımları
ad
string
Oluşturulacak öğenin adı.
name
, "projects/*/assets/**" biçimindedir (ör. "projects/earthengine-legacy/assets/users/USER/ASSET").
karo grupları
list
Kartel kümelerinin özelliklerini tanımlayan sözlüklerin listesi.
Daha fazla bilgi için aşağıdaki tilesets
sözlük öğesi alanlarına bakın.
tilesets[i].dataType
string
Verilerin sayısal veri türünü belirtir. Varsayılan değer, GDAL'ın bildirdiği türdür. Bu durumda tanımlamaya gerek yoktur.
Veri türü | Değer |
---|---|
Belirtilmedi | "DATA_TYPE_UNSPECIFIED" |
8 bitlik işaretli tam sayı | "INT8" |
8 bit işaretsiz tam sayı | "UINT8" |
16 bitlik işaretli tam sayı | "INT16" |
16 bit işaretsiz tam sayı | "UINT16" |
32 bitlik işaretli tam sayı | "INT32" |
32 bitlik işaretsiz tam sayı | "UINT32" |
32 bit kayan nokta | "FLOAT32" |
64 bit kayan nokta | "FLOAT64" |
tilesets[i].id
string
Karo grubun kimliği. Öğe manifestinde belirtilen karo kümeleri arasında benzersiz olmalıdır. Bu kimlik, işleme adımı sırasında atılır ve yalnızca bir karo grubunu bir banda bağlamak için kullanılır. Boş dize geçerli bir kimliktir.
tilesets[i].crs
string
Mümkün olduğunda standart kod (ör. EPSG kodu) olarak, aksi takdirde WKT biçiminde belirtilen piksel ızgara koordinat referans sistemi.
tilesets[i].sources
list
Bir resim dosyasının ve yan dosyalarının özelliklerini tanımlayan sözlüklerin listesi. Daha fazla bilgi için aşağıdaki sources
sözlük öğesi alanlarına bakın.
tilesets[i].sources[j].uris
list
Beslenecek verilerin URI'lerinin listesi. Yalnızca Google Cloud Storage URI'leri desteklenir. Her URI aşağıdaki biçimde belirtilmelidir:
gs://bucket-id/object-id
.
Birincil nesne listenin ilk öğesi, yan araçlar ise daha sonra listelenmelidir. Her URI'nin önüne, ayarlanmışsa ImageManifest.uriPrefix
eklenir.
tilesets[i].sources[j].affineTransform
dictionary
İsteğe bağlı bir doğrusal dönüşüm. Yalnızca uris
'teki veriler (yan araç dahil) pikselleri yerleştirmek için yeterli değilse belirtilmelidir.
Aşağıdaki anahtarlara sahip bir sözlük olarak sağlanır:
"scaleX", "shearX", "translateX", "shearY", "scaleY", "translateY".
Daha fazla bilgi için
bu referansa göz atın.
Örnek anahtarlar ve değerler:
{ "scaleX": 0.1, "shearX": 0.0, "translateX": -180.0, "shearY": 0.0, "scaleY": -0.1, "translateY": 90.0 }
bantlar
list
Bir karo grubundan alınan tek bir bandın özelliklerini tanımlayan sözlüklerin listesi.
Öğenin bant sırasının bands
sırasıyla aynı olduğunu unutmayın.
Daha fazla bilgi için aşağıdaki bands
sözlük öğesi alanlarına bakın.
bands[i].id
string
Grubun kimliği (adı).
bands[i].tilesetId
string
Banta karşılık gelen karo grubunun kimliği.
bands[i].tilesetBandIndex
int32
Banda karşılık gelen karo grubundan sıfır tabanlı bant dizini.
bands[i].missingData.values
list
Bantta veri olmadığını gösteren değerlerin listesi (çift tür).
bands[i].pyramidingPolicy
string
Piramit oluşturma politikası. Daha fazla bilgi için bu bağlantıya göz atın. Seçenekler aşağıdakileri içerir:
- "MEAN" (varsayılan)
- "MODE"
- "SAMPLE"
maskBands
list
Bir karo grubundan alınan tek bir maske bandının özelliklerini tanımlayan sözlüklerin listesi.
En fazla 1 maske bandı sağlanabilir.
Daha fazla bilgi için aşağıdaki maskBands
sözlük öğesi alanlarına bakın.
maskBands[i].tilesetId
string
Maske bandına karşılık gelen karo grubunun kimliği. Karo grubunun son bandı her zaman maske bandı olarak kullanılır.
maskBands[i].bandIds
list of strings
Maske bandının geçerli olduğu bantların kimliklerinin listesi. Boşsa maske bandı, öğedeki tüm bantlara uygulanır. Her bantın yalnızca bir karşılık gelen maske bandı olabilir.
ayak izi
dictionary
Bir resimdeki tüm geçerli piksellerin ayak izinin özelliklerini tanımlayan bir sözlük.
Boş bırakılırsa varsayılan ayak izi resmin tamamıdır. Daha fazla bilgi için aşağıdaki footprint
sözlük öğesi alanlarına bakın.
footprint.points
list
Bir resimdeki tüm geçerli piksellerin ayak izini tanımlayan noktaların listesi. Nokta, kayan nokta değerlerine sahip "x" ve "y" anahtarlarına sahip bir sözlükle tanımlanır. Nokta listesi, resmin tüm geçerli piksellerinin merkezlerini içermesi gereken basit bir poligonun dış kısmını oluşturan bir halkayı tanımlar. Bu doğrusal bir halka olmalıdır: son nokta ilk noktaya eşit olmalıdır. Koordinatlar, bandId
tarafından belirtilen bantın projeksiyonundadır.
Not: footprint
, piksel (1x1 dikdörtgen) ayak izini kesiyorsa bir pikseli içerecek şekilde alındığından her bir pikselin merkezi gibi tam sayı olmayan koordinatlar kullanın. Komşu pikselleri yanlışlıkla seçmemek için tam sayı değerli koordinatlar kullanmayın. Bu koordinatlar, pikseller arasındaki sınırlardır. Ayak izini piksel merkezleri boyunca çizmek, istenen piksellerin antimeridyen veya kutup gibi bir harita sınırına bitişik olduğunda hataya neden olabilecek istenmeyen piksellerin dahil edilmesini önler.
Örneğin, dört pikseli de geçerli olan 2x2 boyutunda bir resim için aşağıdakiler olası bir halkadır:
[ { "x": 0.5, "y": 0.5 }, { "x": 0.5, "y": 1.5 }, { "x": 1.5, "y": 1.5 }, { "x": 1.5, "y": 0.5 }, { "x": 0.5, "y": 0.5 } ]
footprint.bandId
string
CRS'si yer kaplamasının koordinatlarını tanımlayan bandın kimliği. Boş bırakılırsa ilk bant kullanılır.
missingData.values
list
Resmin tüm bantlarında veri olmadığını gösteren değerlerin listesi (çift tür). Kendi missingData
değerini belirtmeyen tüm bantlar için geçerlidir.
pyramidingPolicy
string
Piramit oluşturma politikası. Belirtilmemişse varsayılan olarak "MEAN" politikası uygulanır. Kendilerini belirtmeyen tüm bantlar için geçerlidir. Daha fazla bilgi için bu bağlantıya göz atın. Seçenekler aşağıdakileri içerir:
- "MEAN" (varsayılan)
- "MODE"
- "SAMPLE"
uriPrefix
string
Manifest dosyasında tanımlanan tüm uris
öğelerinin önüne eklenen isteğe bağlı bir ön ek.
startTime
integer
Öğeyle ilişkili zaman damgası (varsa). Bu genellikle bir uydu görüntüsünün çekildiği zamana karşılık gelir. Bir ay veya yıl boyunca ortalama değerler gibi bir zaman aralığına karşılık gelen öğeler için bu zaman damgası, söz konusu aralığın başlangıcına karşılık gelir. Dönem (1970-01-01) itibarıyla saniye ve (isteğe bağlı olarak) nanosaniye olarak belirtilir. UTC saat diliminde olduğu varsayılır.
endTime
integer
Bir ay veya yıl boyunca ortalama değerler gibi bir zaman aralığına karşılık gelen öğeler için bu zaman damgası, söz konusu aralığın sonuna (hariç) karşılık gelir. Dönem (1970-01-01) itibarıyla saniye ve (isteğe bağlı olarak) nanosaniye olarak belirtilir. UTC saat diliminde olduğu varsayılır.
mülkler
dictionary
Anahtar/değer çiftlerinin keyfi bir düz sözlüğü. Anahtarlar dize, değerler ise sayı veya dize olabilir. Liste değerleri, kullanıcı tarafından yüklenen öğeler için henüz desteklenmiyor.
Sınırlamalar
JSON manifest boyutu
JSON manifest dosyası boyutu sınırı 10 MB'tır. Yüklemeniz gereken çok sayıda dosya varsa veri kümesini tanımlamak için gereken karakter sayısını azaltmanın yollarını düşünün. Örneğin, uris
listesindeki her URI için Google Cloud paketi yolunu sağlama ihtiyacını ortadan kaldırmak amacıyla uriPrefix
alanını kullanın. Daha fazla boyut azaltma gerekiyorsa dosya adlarını kısaltmayı deneyin.
Resim dosyası biçimi
Her resim dosyası TIFF resim olmalıdır. CRS, manifestte belirtilmemişse dosya, yerleşik bir CRS içeren bir GeoTIFF olmalıdır.
TIFF dosyaları DEFLATE, JPEG-XL/JXL, LERC, LERC_DEFLATE, LERC_ZSTD, LZMA, LZW, WEBP veya ZSTD ile sıkıştırılabilir.
Büyük dosyalar için en iyi yükleme deneyimi için öneriler:
- En iyi seçim: ZSTD, hız ve sıkıştırma arasında iyi bir denge sunar.
- Kullanmayın: LZMA, iyi sıkıştırmaya rağmen çok yavaş olabilir.
- Sıkıştırılmamış dosyalar: Daha büyük dosyalar ve daha uzun yükleme süreleri
- Kayıplı sıkıştırma (ör. JPEG): Piksel değerlerini değiştirebilir. Kayıpsız sıkıştırma kullanın (ör. DEFLATE, LZMA, LZW, ZSTD) kullanmamalısınız.