이 저장소에는 MMEarth: 지리공간 표현 학습을 위한 다중 모드 사전 텍스트 작업 탐색 논문에 제시된 데이터를 다운로드하기 위한 스크립트가 포함되어 있습니다. 스크립트는 우리가 양식이라고 부르는 다양한 센서 및 위성(Sentinel-2, Sentinel-1, ERA5 - 온도 및 강수량, Aster GDEM 등)에서 대규모 위성 데이터를 다운로드하는 데 사용됩니다. 데이터는 Google Earth Engine에서 다운로드됩니다.
최종 업데이트 날짜: 2024.11.07
MMearth 데이터는 다음 링크를 사용하여 다운로드할 수 있습니다. Multi-Modal 데이터로 더욱 쉽게 개발할 수 있도록 원본 MMearth 데이터와 함께 2개의 "맛보기" 데이터세트도 추가로 제공합니다. 데이터 라이센스는 CC BY 4.0입니다.
데이터세트 | 이미지 크기 | 타일 수 | 데이터 세트 크기 | 데이터링크 | 배시 스크립트 |
---|---|---|---|---|---|
엠지구 | 128x128 | 120만 | 597GB | 다운로드 | 세게 때리다 |
엠엠어스64 | 64x64 | 120만 | 152GB | 다운로드 | 세게 때리다 |
MM지구100k | 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.
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에서 데이터 스택의 각 양식을 검색하기 위한 사용자 정의 함수가 포함되어 있습니다. 이러한 모든 양식을 하나의 배열로 병합하고 이를 GeoTIFF 파일로 내보냅니다. 밴드 정보 및 기타 타일 정보는 json 파일( tile_info.json
)에 저장됩니다. post_download.py
파일은 4가지 작업을 순차적으로 수행합니다.tile_info.json
파일 병합(이 파일은 slurm을 사용하여 병렬로 다운로드할 때 생성됩니다. 자세한 내용은 아래에 설명되어 있습니다.)redownload.py
는 다운로드에 실패한 타일을 다시 다운로드하는 데 사용할 수 있는 파일입니다. 때로는 데이터 스택을 다운로드할 때 다양한 이유(sentinel-2 참조 이미지 부족, 네트워크 문제, GEE 문제)로 인해 스크립트가 타일을 건너뛸 수 있습니다. 따라서 필요한 경우 이러한 타일을 다시 다운로드할 수 있는 옵션이 있습니다. (대안은 필요한 것보다 더 많은 타일을 다운로드하는 것입니다).( 참고 : 파일은 SLURM을 사용하여 실행됩니다. 이에 대한 자세한 내용은 Slurm 실행 섹션에서 제공됩니다.)
데이터 스택 다운로드: GEE는 이미지를 GeoTIFF 파일로 내보낼 수 있는 getDownloadUrl()
이라는 기능을 제공합니다. 단일 위치에 대한 모든 양식을 하나의 이미지로 병합하여 이를 확장하고 이를 단일 GeoTIFF 파일로 내보냅니다. 데이터 다운로드 속도를 더욱 높이기 위해 SLURM을 사용하여 병렬 처리를 사용합니다. 위의 그림은 이것이 어떻게 수행되는지에 대한 아이디어를 제공합니다. 타일 정보(타일 GeoJSON)에는 위치 정보와 다운로드해야 하는 N 타일에 대한 자세한 내용이 포함되어 있습니다. N/40 타일은 40개의 slurm 작업으로 다운로드됩니다(GEE API의 최대 동시 요청 수이므로 최대 작업을 40으로 설정합니다).
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}
}