このリポジトリには、論文「MMEarth: Exploring Multi-Modal Pretext Tasks For Geospatial Representation Learning」で提示されたデータをダウンロードするためのスクリプトが含まれています。スクリプトは、モダリティと呼ばれるさまざまなセンサーや衛星 (Sentinel-2、Sentinel-1、ERA5 - 気温と降水量、Aster GDEM など) から大規模な衛星データをダウンロードするために使用されます。データは Google Earth Engine からダウンロードされます。
最終更新日: 2024.11.07
MMEarth データは、次のリンクを使用してダウンロードできます。マルチモーダル データを使用したより簡単な開発を可能にするために、オリジナルの MMEarth データとともにさらに 2 つの「テイスター」データセットも提供します。データのライセンスは CC BY 4.0 です。
データセット | 画像サイズ | タイルの数 | データセットのサイズ | データリンク | Bash スクリプト |
---|---|---|---|---|---|
MMEアース | 128x128 | 1.2M | 597GB | ダウンロード | バッシュ |
MMEarth64 | 64x64 | 1.2M | 152GB | ダウンロード | バッシュ |
MMEarth100k | 128x128 | 100k | 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.
pytorch を使用してデータをロードする例を示すサンプル Jupyter Notebook はここにあります。あるいは、データローダーも 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 からデータ スタック内の各モダリティを取得するためのカスタム関数が含まれています。これらすべてのモダリティを 1 つの配列にマージし、GeoTIFF ファイルとしてエクスポートします。バンド情報およびその他のタイル情報は、json ファイル ( tile_info.json
) に保存されます。 post_download.py
ファイルは 4 つの操作を順番に実行します。tile_info.json
ファイルの結合 (これらのファイルは、slurm を使用して並列ダウンロードするときに作成されます - 詳細は以下で説明します)redownload.py
は、ダウンロードに失敗したタイルを再ダウンロードするために使用できるファイルです。データ スタックをダウンロードするときに、さまざまな理由 (sentinel-2 参照イメージの欠如、ネットワークの問題、GEE の問題) によりスクリプトがタイルをスキップすることがあります。したがって、必要に応じて、これらのタイルを再ダウンロードするオプションがあります。 (代わりに、必要以上のタイルをダウンロードすることもできます)。(注: ファイルは SLURM を利用して実行されます。これについての詳細は、「SLURM の実行」セクションで説明されています)
データ スタックのダウンロード: GEE は、画像を GeoTIFF ファイルとしてエクスポートできるgetDownloadUrl()
と呼ばれる関数を提供します。単一の場所のすべてのモダリティを 1 つの画像に結合することでこれを拡張し、これを 1 つの GeoTIFF ファイルとしてエクスポートします。データのダウンロードをさらに高速化するために、SLURM を使用した並列処理を利用します。上の図は、これがどのように行われるかを示しています。タイル情報 (タイル GeoJSON) には、ダウンロードする必要がある N 個のタイルに関する位置情報と詳細が含まれています。 N/40 タイルは 40 の slurm ジョブによってダウンロードされます (これが GEE API による同時リクエストの最大数であるため、最大ジョブを 40 に設定します)。
slurm 並列ダウンロードを実行するには、次のコマンドを実行します。
sbatch slurm_scripts/slurm_download_parallel.sh
このコードまたは提供されたデータを使用する場合は、論文を引用してください。
ヴィシャル・ネドゥンガディ、アンキット・カリヤア、ステファン・オームケ、セルジュ・ベロンジー、クリスチャン・イーゲル、ニコ・ラング(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}
}