Resim manifesti yükleme

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

  1. 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.
  2. Projenizde Cloud Storage API'yi etkinleştirin ve paket oluşturun.
  3. Earth Engine Python istemcisini yükleyin. Veri yüklemek için kullanacağımız earthengine komut satırı aracını içerir.
  4. 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).

  1. Aynı dosyadaki tüm veri bantları için maskeleme yapın.
  2. Diğer tüm dosyalardan gelen tüm veri bantları için maskeleme.
  3. 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.