该存储库包含用于下载论文 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}
}