TFRecord
      adalah format biner untuk mengenkode urutan panjang
      protos
        tf.Example secara efisien.  File TFRecord mudah dimuat oleh TensorFlow melalui
      paket tf.data seperti yang dijelaskan
      di sini dan
      di sini.
      Halaman ini menjelaskan cara Earth Engine mengonversi antara format ee.FeatureCollection atau ee.Image dan TFRecord.
    
Mengekspor data ke TFRecord
Anda dapat mengekspor tabel (ee.FeatureCollection) atau gambar (ee.Image) ke file TFRecord di Google Drive atau Cloud Storage.  Konfigurasi ekspor bergantung pada
      hal yang Anda ekspor seperti yang dijelaskan di bawah.  Semua angka yang diekspor dari Earth Engine ke
      TFRecord dikonversi menjadi jenis float.
    
Mengekspor tabel
Saat mengekspor ee.FeatureCollection ke file TFRecord, ada korespondensi 1:1
      antara setiap
      ee.Feature
      dalam tabel dan setiap
      tf.train.Example
      (yaitu setiap data) dalam file TFRecord.  Setiap properti ee.Feature
      dienkode sebagai
      tf.train.Feature
      dengan daftar float yang sesuai dengan angka atau ee.Array yang disimpan di
      properti.  Jika mengekspor tabel dengan array dalam properti, Anda harus memberi tahu TensorFlow bentuk array saat dibaca.  Tabel yang diekspor ke file TFRecord akan selalu
      dikompresi dengan jenis kompresi GZIP. Anda selalu mendapatkan tepat satu file TFRecord untuk setiap ekspor.
      Contoh berikut menunjukkan penguraian data dari tabel properti skalar yang diekspor ('B2',...,'B7', 'landcover').  Perhatikan bahwa dimensi daftar float adalah
      [1] dan jenisnya adalah tf.float32:
    
Python
dataset = tf.data.TFRecordDataset(exportedFilePath) featuresDict = { 'B2': tf.io.FixedLenFeature(shape=[1], dtype=tf.float32), 'B3': tf.io.FixedLenFeature(shape=[1], dtype=tf.float32), 'B4': tf.io.FixedLenFeature(shape=[1], dtype=tf.float32), 'B5': tf.io.FixedLenFeature(shape=[1], dtype=tf.float32), 'B6': tf.io.FixedLenFeature(shape=[1], dtype=tf.float32), 'B7': tf.io.FixedLenFeature(shape=[1], dtype=tf.float32), 'landcover': tf.io.FixedLenFeature(shape=[1], dtype=tf.float32) } parsedDataset = dataset.map(lambda example: tf.io.parse_single_example(example, featuresDict))
      Perhatikan bahwa contoh ini mengilustrasikan fitur skalar pembacaan (yaitu shape=[1]).
      Jika mengekspor array 2D atau 3D (misalnya patch gambar), Anda akan menentukan
      bentuk patch pada waktu penguraian, misalnya shape=[16, 16] untuk patch piksel
      16x16.
    
Mengekspor gambar
Saat Anda mengekspor gambar, data akan diurutkan sebagai saluran, tinggi, lebar (CHW).  Ekspor
      dapat dibagi menjadi beberapa file TFRecord dengan setiap file berisi satu atau beberapa
      patch berukuran patchSize, yang ditentukan pengguna dalam ekspor.  Ukuran file dalam byte ditentukan pengguna dalam parameter maxFileSize.
      Ada korespondensi 1:1 antara setiap patch dan setiap
      tf.train.Example
      dalam file TFRecord yang dihasilkan.  Setiap band gambar disimpan sebagai
      tf.train.Feature
      terpisah di setiap tf.train.Example, dengan panjang daftar float yang disimpan di
      setiap fitur adalah lebar patch * tinggi.  Daftar yang diratakan dapat dibagi menjadi
      beberapa piksel individual seperti yang ditunjukkan dalam
      contoh ini. 
      Atau, bentuk patch yang diekspor dapat dipulihkan seperti dalam
      contoh ini.
    
      Untuk membantu mengurangi efek tepi, patch yang diekspor dapat tumpang-tindih.  Secara khusus, Anda dapat menentukan kernelSize yang akan menghasilkan ubin berukuran:
[patchSize[0] + kernelSize[0], patchSize[1] + kernelSize[1]]
      Setiap kartu tumpang-tindih dengan kartu yang berdekatan sebesar [kernelSize[0]/2, kernelSize[1]/2].  Akibatnya, kernel berukuran kernelSize yang berpusat pada piksel tepi patch
      berukuran patchSize berisi data yang sepenuhnya valid.  Pengaturan spasial patch
      dalam ruang diilustrasikan oleh Gambar 1, dengan Dimensi Padding sesuai dengan
      bagian kernel yang tumpang-tindih dengan gambar yang berdekatan:
    
      kernelSize/2.
      
      formatOptions
    
    Parameter patchSize, maxFileSize, dan kernelSize
      diteruskan ke panggilan ee.Export (JavaScript) atau ee.batch.Export
      (Python) melalui kamus formatOptions, dengan kunci adalah nama
      parameter tambahan yang diteruskan ke Export.  Kemungkinan formatOptions
      untuk gambar yang diekspor ke format TFRecord adalah:
| Properti | Deskripsi | Jenis | 
|---|---|---|
patchDimensions | 
        Dimensi yang disusun bertingkat di area ekspor, yang mencakup setiap piksel dalam kotak pembatas tepat sekali (kecuali jika dimensi patch tidak membagi kotak pembatas secara merata dalam hal ini ubin batas di sepanjang tepi x/y terbesar akan dihapus). Dimensi harus > 0. | Array<int>[2]. | 
kernelSize | 
        Jika ditentukan, ubin akan dibuffer oleh dimensi margin secara positif dan negatif, sehingga menyebabkan tumpang-tindih di antara patch yang berdekatan. Jika ditentukan, dua dimensi harus disediakan (masing-masing X dan Y). | Array<int>[2]. Default: [1, 1] | 
compressed | 
        Jika benar, mengompresi file .tfrecord dengan gzip dan menambahkan akhiran ".gz" | Boolean. Default: true | 
maxFileSize | 
        Ukuran maksimum, dalam byte, untuk .tfrecord yang diekspor (sebelum kompresi). Ukuran file yang lebih kecil akan menghasilkan sharding yang lebih besar (dan, dengan demikian, lebih banyak file output). | Int. Default: 1 GiB | 
defaultValue | 
        Nilai yang ditetapkan di setiap band piksel yang disamarkan sebagian atau sepenuhnya, dan nilai yang ditetapkan pada setiap nilai dalam fitur 3D output yang dibuat dari band array dengan panjang array di piksel sumber kurang dari kedalaman nilai fitur (yaitu nilai pada indeks 3 dari piksel array dengan panjang 2 di band array dengan kedalaman fitur yang sesuai sebesar 3). Bagian pecahan dihapus untuk rentang jenis bilangan bulat, dan dikencangkan ke rentang jenis rentang. Default-nya adalah 0. | Int. Default: 0 | 
tensorDepths | 
        Pemetaan dari nama band array input ke kedalaman tensor 3D yang dibuatnya. Array akan terpotong, atau diisi dengan nilai default agar sesuai dengan bentuk yang ditentukan. Untuk setiap band array, ini harus memiliki entri yang sesuai. | Array<int>[]. Default: [] | 
sequenceData | 
        Jika benar, setiap piksel akan di-output sebagai SequenceExample yang memetakan band skalar ke konteks dan band array ke urutan contoh. SequenceExamples adalah output dalam urutan piksel baris utama di setiap patch, lalu menurut urutan patch area baris utama dalam urutan file. | Boolean. Default: false | 
collapseBands | 
        Jika true (benar), semua band akan digabungkan menjadi satu tensor 3D, dengan nama band pertama dalam gambar. Semua band dipromosikan ke byte, int64, lalu mengambang dalam urutan tersebut, bergantung pada jenis yang paling jauh dalam urutan tersebut dalam semua band. Band array diizinkan selama tensor_depths ditentukan. | Boolean. Default: false | 
maskedThreshold | 
        Proporsi maksimum piksel yang disamarkan dalam patch yang diizinkan. Patch yang melebihi izin ini akan dihapus, bukan ditulis ke file. Jika kolom ini ditetapkan ke selain 1, sidecar JSON tidak akan dihasilkan. Default-nya adalah 1. | Mengambang. Default: 1 | 
File “mixer” TFRecord
Saat Anda mengekspor ke TFRecord, Earth Engine akan membuat sidecar dengan file TFRecord Anda yang disebut "mixer". Ini adalah file JSON sederhana yang digunakan untuk menentukan pengaturan spasial patch (yaitu georeferensi). File ini diperlukan untuk mengupload prediksi yang dibuat pada gambar seperti yang dijelaskan di bagian berikutnya.
Mengekspor Deret Waktu
Ekspor gambar ke Examples dan SequenceExamples didukung.  Saat Anda mengekspor ke
      Examples, wilayah ekspor akan dipotong menjadi patch dan patch tersebut diekspor dalam
      urutan baris utama ke sejumlah file .tfrecord dengan setiap band memiliki fiturnya sendiri
      (kecuali jika Anda menentukan collapseBands).  Saat Anda mengekspor ke SequenceExamples,
      SequenceExample per piksel akan diekspor, dengan SequenceExamples tersebut dalam urutan baris utama
      dalam patch, lalu dalam urutan baris utama patch di wilayah ekspor asli
      (jika Anda tidak yakin, selalu asumsikan bahwa semuanya akan berada dalam urutan baris utama dalam kapasitas tertentu).
      Catatan: setiap band skalar gambar akan dikemas ke dalam konteks SequenceExample,
      sedangkan band array akan menjadi data urutan yang sebenarnya.
Array Band
Band array dapat diekspor saat gambar diekspor ke format TFRecord.  Ekspor
      band array menyediakan cara untuk mengisi “FeatureLists” SequenceExamples, dan
      cara untuk membuat tensor 3D saat mengekspor ke Contoh reguler.  Untuk informasi tentang cara
      mengelola panjang/kedalaman band array, lihat collapseBands dan/atau
      tensorDepths dalam tabel di atas.  Catatan: penggunaan collapseBands
      dan ekspor ke SequenceExamples (sehingga menetapkan parameter sequenceData) akan
      menyebabkan semua band diciutkan menjadi satu deret waktu per piksel.
Mengupload TFRecords ke Earth Engine
      Anda dapat mengupload tabel (khusus command line) dan gambar ke Earth Engine sebagai file TFRecord.  Untuk tabel, hubungan 1:1
      yang dijelaskan sebelumnya berlaku dalam arah
      terbalik (yaitu tf.train.Example -> ee.Feature).
    
Mengupload gambar
      Jika Anda membuat prediksi pada gambar yang diekspor, berikan mixer saat Anda mengupload prediksi (sebagai file TFRecord) untuk mendapatkan gambar yang digeoreferensikan.  Perhatikan bahwa bagian patch yang tumpang-tindih (Dimensi Padding pada Gambar 1) akan dihapus sehingga menghasilkan cakupan yang berdekatan dari region yang diekspor.  Prediksi harus diatur sebagai
      urutan tf.train.Example dengan jumlah dan urutan yang sama dengan contoh gambar
      yang diekspor awalnya (bahkan di antara jumlah file arbitrer).