2025-01-04 15:39:20 +08:00

122 lines
4.4 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# NASA EARTHDATA 数据爬取与预处理 —— 以 HLS 数据集为例
## 1 安装 miniforge
### 1.1 miniforge
- miniforge是结合conda与mamba的最小化包比Anaconda和Miniconda更快更轻量并且配置命令与原conda基本一致支持直接使用mamba命令。
- 简而言之环境配置效率上miniforge > Mambaforge (202407已废弃) > Miniconda + Mamba > Miniconda > Anaconda
- 官方仓库地址https://github.com/conda-forge/miniforge
- 官方下载地址https://conda-forge.org/download/
### 1.2 配置环境变量
- 为了在控制台中直接使用conda命令, 需要将安装的相关目录配置到Path环境变量中。
```
D:\program\miniforge3
D:\program\miniforge3\Scripts
D:\program\miniforge3\Library\bin
```
### 1.3 配置权限
- 详细配置与miniconda相同图文教程地址https://gis-xh.github.io/my-note/python/01conda/Win11-Miniconda-install/
- Windows环境下需要设置虚拟环境文件夹的访问权限为所有用户可访问否则会出现无法读取虚拟环境文件的问题
- 具体地:
- 设置`D:\program\miniforge3\env`目录为所有用户可访问,具体操作为:右键点击文件夹 -> 属性 -> 安全 -> 编辑 -> 添加 -> 添加所有用户 -> 全选 -> 应用 -> 确定
### 1.4 配置镜像源
- 生成下载源文件的配置文件 (若已经安装过Anaconda/Miniconda则无需执行此步骤)
```sh
conda config --set show_channel_urls yes
```
-`C:\Users\实际用户名\`目录找到`.condarc`文件,使用记事本打开,输入如下内容并保存
```
envs_dirs:
- D:\program\miniforge3\envs
- 其他路径地址(可选,创建虚拟环境时将会按照顺序查找)
channels:
- defaults
show_channel_urls: true
channel_alias: https://mirrors.tuna.tsinghua.edu.cn/anaconda
default_channels:
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/r
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/pro
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/msys2
custom_channels:
conda-forge: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
msys2: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
bioconda: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
menpo: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
pytorch: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
simpleitk: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
```
### 1.5 初始化 conda
- 打开控制台,初始化 PowerShell 与 CMD
```sh
conda init powershell
```
```sh
conda init cmd.exe
```
## 2 运行环境配置
### 2.1 使用mamba创建并激活虚拟环境
- 克隆虚拟环境 (Windows环境下推荐)
```sh
mamba env create -f setup/lpdaac_windows.yml
```
- 激活虚拟环境
```sh
mamba activate lpdaac_windows
```
## 3 HLS 数据爬取
### 3.1 账户准备
- 参考自NASA官网示例Demohttps://github.com/nasa/LPDAAC-Data-Resources/blob/main/setup/setup_instructions_python.md
- 首次运行爬取命令时,需要输入用户名和密码,用户名和密码可以在 [Earthdata](https://urs.earthdata.nasa.gov/) 注册获取。
- 需要注意的是,密码中最好不要出 `@/#/$/%` 等符号,爬取时可能会出错。
### 3.2 爬取云端数据并在内存中进行预处理
- `-roi`:感兴趣区,需要按照 **左下右上** 的逆时针顺序设置点坐标
- `-dir`:输出目录,必须是已存在的目录
- `-start`:开始时间,格式为 `YYYY-MM-DD`
- `-end`:结束时间,格式为 `YYYY-MM-DD`
- `-prod`:产品名称,例如 `HLSL30``HLSS30``both`
- `-bands`:波段名称,如 `COASTAL-AEROSOL,BLUE,GREEN,RED,NIR1,SWIR1,SWIR2,CIRRUS,TIR1,TIR2,Fmask`
- `-cc`:筛选影像云量阈值,如 `70`
- `-qf`:是否使用质量波段过滤云/云阴影像元,默认 `True`
- `-scale`:是否对影像使用缩放因子,默认 `True`
- 爬取所有光谱波段
```sh
python .\\HLS_SuPER\\HLS_SuPER.py -roi '113.10114,30.62845,114.24349,31.59081' -dir .\\data\\HLS\\L30 -start 2024-01-01 -end 2024-01-31 -prod HLSL30 -bands COASTAL-AEROSOL,BLUE,GREEN,RED,NIR1,SWIR1,SWIR2,CIRRUS,TIR1,TIR2,Fmask -cc 70 -qf True -scale True
```
- 仅爬取必要的核心波段
```sh
python .\\HLS_SuPER\\HLS_SuPER.py -roi '113.10114,30.62845,114.24349,31.59081' -dir .\\data\\HLS\\L30\\subset -start 2024-01-01 -end 2024-01-31 -prod HLSL30 -bands BLUE,GREEN,RED,NIR1,SWIR1,SWIR2 -cc 70 -qf True -scale True
```