Repositori ini berisi skrip untuk mengunduh data yang disajikan dalam makalah MMEarth: Menjelajahi Tugas Dalih Multi-Modal Untuk Pembelajaran Representasi Geospasial. Skrip digunakan untuk mengunduh data satelit skala besar dari berbagai sensor dan satelit (Sentinel-2, Sentinel-1, ERA5 - suhu & curah hujan, Aster GDEM, dll) yang kami sebut modalitas. Data diunduh dari Google Earth Engine.
Terakhir Diperbarui pada 2024.11.07
Data MMEarth dapat diunduh menggunakan tautan berikut. Untuk memungkinkan pengembangan yang lebih mudah dengan data Multi-Modal, kami juga menyediakan 2 set data "taster" lagi bersama dengan data MMEarth asli. Lisensi untuk datanya adalah CC BY 4.0.
Kumpulan data | Ukuran Gambar | Jumlah Ubin | Ukuran kumpulan data | Tautan Data | Skrip Bash |
---|---|---|---|---|---|
MMBumi | 128x128 | 1,2 juta | 597GB | unduh | pesta |
MMEarth64 | 64x64 | 1,2 juta | 152GB | unduh | pesta |
MMEarth100k | 128x128 | 100k | 48GB | unduh | pesta |
Ketiga dataset tersebut memiliki struktur serupa seperti di bawah ini:
.
├── data_1M_v001/ # root data directory
│ ├── data_1M_v001.h5 # h5 file containing the data
│ ├── data_1M_v001_band_stats.json # json file containing information about the bands present in the h5 file for each data stack
│ ├── data_1M_v001_splits.json # json file containing information for train, val, test splits
│ └── data_1M_v001_tile_info.json # json file containing additional meta information of each tile that was downloaded.
Contoh Notebook Jupyter yang menunjukkan contoh memuat data menggunakan pytorch ada di sini. Alternatifnya, pemuat data juga telah ditambahkan ke TorchGeo.
Untuk memulai repositori ini, Anda dapat menginstal dependensi dan paket dengan perintah ini
pip install -r requirements.txt
Setelah ini selesai, Anda perlu menyiapkan gcloud dan earthengine agar kodenya berfungsi. Ikuti langkah-langkah di bawah ini:
earthengine authenticate
.earthengine authenticate
tidak berfungsi secara langsung karena Anda akan mendapatkan banyak tautan untuk diklik, dan tautan ini tidak akan berfungsi saat membukanya dari browser di mesin lokal Anda. Oleh karena itu jalankan perintah ini earthengine authenticate --quiet
. Ikuti instruksi di terminal Anda dan semuanya akan berfungsi. Langkah tambahannya adalah menambahkan nama proyek di setiap file yang memiliki earthengine.initialize(project = '$PROJECT_NAME')
. Repositori ini memungkinkan pengunduhan data dari berbagai sensor. Saat ini kode ditulis untuk mengunduh sensor/modalitas berikut:
Pengunduhan data hanya terjadi bila Anda memiliki file geojson dengan semua ubin yang ingin Anda unduh. Di sini ubin mewakili ROI (atau poligon) untuk setiap lokasi yang Anda inginkan. Setelah Anda memiliki ubin, tumpukan data (data untuk setiap modalitas) diunduh untuk setiap ubin di geojson. Data dapat diunduh dengan mengikuti struktur luas ini, dan masing-masing poin dijelaskan lebih lanjut di bawah ini:
create_tiles_polygon.py
adalah file yang digunakan untuk membuat ubin. Konfigurasi yang sesuai adalah config/config_tiles.yaml
. Untuk sampel global, berbagai teknik pengambilan sampel didasarkan pada bioma dan ekoregion dari RESOLVE ECOREGIONS.main_download.py
adalah skrip utama untuk mengunduh data. Konfigurasi yang sesuai adalah config/config_data.yaml
. File konfigurasi berisi berbagai parameter yang akan diatur mengenai modalitas dan jalur yang berbeda. Berdasarkan file geojson yang dibuat dari langkah di atas, file ini mengunduh tumpukan data untuk setiap ubin.ee_utils/ee_data.py
berisi fungsi khusus untuk mengambil setiap modalitas dalam tumpukan data dari GEE. Ini menggabungkan semua modalitas ini ke dalam satu array, dan mengekspornya sebagai file GeoTIFF. Informasi pita dan informasi ubin lainnya disimpan dalam file json ( tile_info.json
). post_download.py
melakukan 4 operasi secara berurutan:tile_info.json
(file-file ini dibuat saat mengunduh secara paralel menggunakan slurm - dijelaskan lebih lanjut di bawah)redownload.py
adalah file yang dapat digunakan untuk mengunduh ulang ubin apa pun yang gagal diunduh. Terkadang saat mengunduh tumpukan data, skrip dapat melewati ubin karena berbagai alasan (kurangnya gambar referensi sentinel-2, masalah jaringan, masalah GEE). Oleh karena itu, jika diperlukan, kami memiliki opsi untuk mengunduh ulang ubin ini. (Alternatifnya adalah mengunduh ubin lebih banyak dari yang diperlukan).( CATATAN : File dieksekusi dengan menggunakan SLURM. Informasi lebih lanjut mengenai hal ini disediakan di bagian Eksekusi Slurm)
Mengunduh Tumpukan Data: GEE menyediakan fungsi yang disebut getDownloadUrl()
yang memungkinkan Anda mengekspor gambar sebagai file GeoTIFF. Kami memperluasnya dengan menggabungkan semua modalitas untuk satu lokasi menjadi satu gambar, dan mengekspornya sebagai satu file GeoTIFF. Untuk lebih mempercepat pengunduhan data, kami menggunakan pemrosesan paralel menggunakan SLURM. Gambar di atas memberikan gambaran bagaimana hal ini dilakukan. Informasi ubin (ubin GeoJSON) berisi informasi lokasi dan lebih banyak lagi tentang N ubin yang perlu kita unduh. N/40 ubin diunduh oleh 40 pekerjaan slurm (kami menetapkan pekerjaan maksimal sebagai 40 karena ini adalah jumlah maksimum permintaan bersamaan oleh GEE API).
Untuk menjalankan unduhan paralel slurm, jalankan perintah berikut
sbatch slurm_scripts/slurm_download_parallel.sh
Silakan kutip makalah kami jika Anda menggunakan kode ini atau data apa pun yang disediakan.
Vishal Nedungadi, Ankit Kariryaa, Stefan Oehmcke, Serge Belongie, Christian Igel, & Nico Lang (2024). MMEarth: Menjelajahi Tugas Dalih Multi-Modal Untuk Pembelajaran Representasi Geospasial.
@misc{nedungadi2024mmearth,
title={MMEarth: Exploring Multi-Modal Pretext Tasks For Geospatial Representation Learning},
author={Vishal Nedungadi and Ankit Kariryaa and Stefan Oehmcke and Serge Belongie and Christian Igel and Nico Lang},
year={2024},
eprint={2405.02771},
archivePrefix={arXiv},
primaryClass={cs.CV}
}