- ✨ 新增可视化进度条 - 使用tqdm显示实时分析进度
- 📁 优化输出路径 - 所有结果文件自动保存到脚本所在目录
- 🔄 智能降级 - 未安装tqdm时自动使用简单进度显示
- 🛠️ 代码优化 - 改进的代码结构和错误处理
- 📝 完善文档 - 更详细的使用说明和示例
这个工具集提供了两个主要脚本,用于分析ET(蒸散发)产品数据集:
- 快速浏览数据集文件夹结构
- 统计文件数量和大小
- 识别数据集类型
- 无需深入读取NetCDF文件
自动遍历指定路径下的所有ET产品NetCDF文件,提取并整理以下信息:
- ✅ 时间分辨率(daily, monthly, 8-day等)
- ✅ 空间分辨率(度和公里)
- ✅ 时间跨度(起止日期)
- ✅ 空间范围(经纬度范围)
- ✅ 数据类型(总ET、PET、分量等)
- ✅ 主要变量名称
- ✅ 文件统计信息
在运行脚本前,请确保安装了必要的Python包:
# 必需的包
pip install xarray netCDF4 pandas numpy openpyxl
# 推荐安装(显示漂亮的进度条)
pip install tqdm或者使用conda:
conda install xarray netCDF4 pandas numpy openpyxl tqdm -c conda-forge打开 analyze_et_products.py 或 quick_scan.py,找到以下代码行:
data_path = r"Z:\Evaporation_Flux"将其修改为你的实际数据路径。
python analyze_et_products.py所有输出文件会自动保存在脚本所在的目录,包括:
-
ET_products_summary_[时间戳].csv - 数据集汇总表
- 包含每个数据集的概览信息
- 易于快速了解所有数据集
-
ET_products_detail_[时间戳].csv - 详细信息表
- 包含每个文件的详细元数据
- 用于深入分析
-
ET_products_report_[时间戳].xlsx - Excel综合报告
- 包含以上两个表格的整合版本
- 方便在Excel中查看和筛选
分析进度: 45%|████████████▌ | 123/275 [02:15<02:48, 0.90文件/s] 当前: ERA5_ET_2020.nc
[123/275] (45%) 正在分析: ERA5_ET_2020.nc
| 字段 | 说明 |
|---|---|
| 数据集名称 | 文件夹名称(如 ERA5L, GLEAM等) |
| 文件数量 | 该数据集包含的NetCDF文件数 |
| ET类型 | 总ET / PET / 包含分量 等 |
| 时间分辨率 | daily / monthly / 8-day 等 |
| 空间分辨率 | 度数和公里数 |
| 空间范围 | 经纬度范围 |
| 主要变量 | 数据集中的变量名 |
| 时间跨度 | 数据的起止日期 |
A: 确保数据路径正确,Windows路径需要使用原始字符串(r"路径")或双反斜杠
A: 某些文件可能格式特殊,脚本会记录错误并继续处理其他文件
A: 脚本会尝试多种常见的时间坐标名称(time, t, Time等),如果都失败会标记为"N/A"
A: 对于大量文件,处理可能需要一些时间。脚本会显示进度信息。
脚本会根据以下规则自动识别ET数据类型:
- 总ET: 包含 ET, evapotranspiration, LE 等变量
- PET: 包含 PET, potential_evapotranspiration 等变量
- 蒸腾: 包含 transpiration, ET_t 等变量
- 土壤蒸发: 包含 soil_evaporation, Es 等变量
- 冠层截留: 包含 interception, Ei 等变量
如果需要添加新的识别规则或修改分析逻辑,可以编辑:
identify_et_type()- 修改ET类型识别规则get_temporal_resolution()- 修改时间分辨率判断analyze_netcdf_file()- 修改文件分析逻辑
1. 快速扫描 (quick_scan.py)
↓
了解数据集概况
↓
2. 详细分析 (analyze_et_products.py)
↓
获取完整元数据
↓
3. 数据融合 (使用collocation模块)
↓
生成融合产品
SimpleAverage工具生成的元数据可以帮助选择合适的collocation方法:
# 在分析完ET产品后
from collocation import simple_average, tc, eivd
# 读取多个ET产品
products = [product1, product2, product3]
# 快速融合 - 简单平均
quick_merge = simple_average(np.array(products), axis=0)
# 或使用高级方法
data = np.column_stack(products)
EeeT, SNR, rho2, fMSE = tc(data)遇到问题可以检查:
- Python版本是否 >= 3.7
- 依赖包是否正确安装
- NetCDF文件是否损坏
- 是否有文件读取权限
- 数据路径是否正确
获取帮助:
- 查看示例:
python ../examples/simple_average_example.py - 查看文档: API_CN.md
- 提交Issue: GitHub Issues
v1.1 (2024-10-31)
- ✨ 新增可视化进度条支持
- 📁 优化输出路径处理
- 🔄 智能降级机制
- 🛠️ 代码结构优化
- 📝 完善文档和示例
v1.0 (2024-10-31)
- 🎉 初始版本发布
- ✅ 支持自动识别时空分辨率
- ✅ 支持ET类型分类
- ✅ 生成CSV和Excel报告
欢迎贡献!请:
- Fork本仓库
- 创建特性分支
- 提交变更
- 发起Pull Request
本工具采用MIT许可证。详见 LICENSE 文件。
A comprehensive toolkit for analyzing Evapotranspiration (ET) product datasets stored in NetCDF format.
Quick Scan Tool (quick_scan.py):
- Rapid overview of dataset folder structure
- File count and size statistics
- Dataset type identification
- No deep NetCDF reading required
Detailed Analysis Tool (analyze_et_products.py):
- Automatic traversal of all ET product NetCDF files
- Extraction of comprehensive metadata:
- Temporal resolution (daily, monthly, 8-day, etc.)
- Spatial resolution (degrees and kilometers)
- Temporal coverage (start and end dates)
- Spatial extent (lat/lon ranges)
- Data type (Total ET, PET, components, etc.)
- Variable names
- File statistics
- Install dependencies:
pip install xarray netCDF4 pandas numpy openpyxl tqdm- Modify data path in script:
data_path = r"your/data/path"- Run analysis:
# Quick scan
python quick_scan.py
# Detailed analysis
python analyze_et_products.pyThe metadata generated by SimpleAverage tools helps select appropriate collocation methods:
from collocation import simple_average, tc, eivd
# Quick fusion - simple average
quick_merge = simple_average(products_array, axis=0)
# Or use advanced methods
EeeT, SNR, rho2, fMSE = tc(products_data)See Main README and API Documentation
- Python >= 3.7
- xarray
- netCDF4
- pandas
- numpy
- openpyxl (for Excel output)
- tqdm (recommended, for progress bars)
This tool is licensed under the MIT License. See LICENSE file for details.