此儲存庫包含用於下載論文 MMEarth:探索地理空間表示學習的多模態藉口任務中提供的資料的腳本。這些腳本用於從不同的感測器和衛星(Sentinel-2、Sentinel-1、ERA5 - 溫度和降水、Aster GDEM 等)下載大規模衛星數據,我們稱之為模態。數據是從 Google Earth Engine 下載的。
最後更新於 2024.11.07
MMEarth 資料可以使用以下連結下載。為了更輕鬆地使用多模態資料進行開發,我們還提供了另外 2 個「taster」資料集以及原始 MMEarth 資料。資料的授權是 CC BY 4.0。
數據集 | 影像尺寸 | 磁磚數量 | 資料集大小 | 數據鏈 | bash腳本 |
---|---|---|---|---|---|
MM地球 | 128x128 | 1.2M | 597GB | 下載 | 巴什 |
MM地球64 | 64x64 | 1.2M | 152GB | 下載 | 巴什 |
MM地球10萬 | 128x128 | 10萬 | 48GB | 下載 | 巴什 |
所有 3 個資料集都具有類似的結構,如下所示:
.
├── 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.
這裡有一個 Jupyter Notebook 範例,展示了使用 pytorch 載入資料的範例。另外,資料載入器也已加入 TorchGeo。
若要開始使用此儲存庫,您可以使用此命令安裝依賴項和套件
pip install -r requirements.txt
完成此操作後,您需要設定 gcloud 和 Earthengine 以使程式碼正常運作。請依照以下步驟操作:
earthengine authenticate
。earthengine authenticate
無法直接工作,因為您將獲得多個要單擊的鏈接,並且從本地計算機上的瀏覽器打開這些鏈接時這些鏈接將無法工作。因此運行此命令earthengine authenticate --quiet
。按照終端上的說明進行操作,一切都會正常。另一個步驟是在每個具有earthengine.initialize(project = '$PROJECT_NAME')
的檔案中新增項目名稱。 該存儲庫允許從各種感測器下載資料。目前編寫的程式碼是為了下載以下感測器/模式:
只有當您擁有包含要下載的所有切片的 geojson 檔案時,才會進行資料下載。這裡的圖塊代表您想要的每個位置的 ROI(或多邊形)。取得圖塊後,將下載 geojson 中每個圖塊的資料堆疊(每種模態的資料)。可以按照這個大致結構下載數據,以下對每一點進行進一步解釋:
create_tiles_polygon.py
是用來建立圖塊的檔案。對應的設定是config/config_tiles.yaml
。對於全球樣本,各種採樣技術基於 RESOLVE ECOREGIONS 中的生物群落和生態區。main_download.py
是下載資料的主腳本。對應的設定是config/config_data.yaml
。設定檔包含有關不同模式和路徑的各種要設定的參數。根據上述步驟建立的 geojson 文件,該文件下載每個圖塊的資料堆疊。ee_utils/ee_data.py
檔案包含用於從 GEE 擷取資料堆疊中的每種模態的自訂函數。它將所有這些模式合併到一個陣列中,並將其匯出為 GeoTIFF 檔案。 Band資訊和其他tile資訊儲存在json檔案( tile_info.json
)中。 post_download.py
檔依序執行 4 個操作:tile_info.json
檔案(這些檔案是在使用 slurm 並行下載時建立的 - 下面將詳細說明)redownload.py
是可用來重新下載任何下載失敗的圖塊的檔案。有時,在下載資料堆疊時,腳本可能會因各種原因(缺少 Sentinel-2 參考影像、網路問題、GEE 問題)而跳過圖塊。因此,如果需要,我們可以選擇重新下載這些圖塊。 (另一種方法是下載比需要更多的圖塊)。(注意:這些文件是透過使用 SLURM 執行的。有關這方面的更多信息,請參閱 Slurm 執行部分)
下載資料堆疊: GEE 提供了一個名為getDownloadUrl()
的函數,可讓您將映像匯出為 GeoTIFF 檔案。我們透過將單一位置的所有模式合併到一個影像中來擴展此功能,並將其匯出為單一 GeoTIFF 檔案。為了進一步加快資料下載速度,我們利用 SLURM 進行平行處理。上圖展示了這是如何完成的。瓦片資訊(瓦片GeoJSON)包含位置資訊以及我們需要下載的N個瓦片的更多資訊。 N/40 個圖塊由 40 個 slurm 作業下載(我們將最大作業設為 40,因為這是 GEE API 的最大並發請求數)。
若要執行 slurm 並行下載,請執行以下命令
sbatch slurm_scripts/slurm_download_parallel.sh
如果您使用此程式碼或任何提供的數據,請引用我們的論文。
Vishal Nedungadi、Ankit Kariryaa、Stefan Oehmcke、Serge Belongie、Christian Igel 與 Nico Lang (2024)。 MMEarth:探索地理空間表示學習的多模態藉口任務。
@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}
}