Skip to content

Latest commit

 

History

History
306 lines (219 loc) · 7.73 KB

File metadata and controls

306 lines (219 loc) · 7.73 KB

ET产品数据集分析工具

Python Version License

English | 中文文档


中文文档

🎉 v1.1 更新

  • ✨ 新增可视化进度条 - 使用tqdm显示实时分析进度
  • 📁 优化输出路径 - 所有结果文件自动保存到脚本所在目录
  • 🔄 智能降级 - 未安装tqdm时自动使用简单进度显示
  • 🛠️ 代码优化 - 改进的代码结构和错误处理
  • 📝 完善文档 - 更详细的使用说明和示例

功能概述

这个工具集提供了两个主要脚本,用于分析ET(蒸散发)产品数据集:

1. 快速扫描工具 (quick_scan.py)

  • 快速浏览数据集文件夹结构
  • 统计文件数量和大小
  • 识别数据集类型
  • 无需深入读取NetCDF文件

2. 详细分析工具 (analyze_et_products.py)

自动遍历指定路径下的所有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

使用方法

1. 修改数据路径

打开 analyze_et_products.py 或 quick_scan.py,找到以下代码行:

data_path = r"Z:\Evaporation_Flux"

将其修改为你的实际数据路径。

2. 运行脚本

python analyze_et_products.py

3. 查看结果

所有输出文件会自动保存在脚本所在的目录,包括:

  1. ET_products_summary_[时间戳].csv - 数据集汇总表

    • 包含每个数据集的概览信息
    • 易于快速了解所有数据集
  2. ET_products_detail_[时间戳].csv - 详细信息表

    • 包含每个文件的详细元数据
    • 用于深入分析
  3. ET_products_report_[时间戳].xlsx - Excel综合报告

    • 包含以上两个表格的整合版本
    • 方便在Excel中查看和筛选

进度显示

安装了tqdm(推荐):

分析进度: 45%|████████████▌             | 123/275 [02:15<02:48, 0.90文件/s] 当前: ERA5_ET_2020.nc

未安装tqdm(简单模式):

[123/275] (45%) 正在分析: ERA5_ET_2020.nc

输出示例

汇总表字段说明

字段 说明
数据集名称 文件夹名称(如 ERA5L, GLEAM等)
文件数量 该数据集包含的NetCDF文件数
ET类型 总ET / PET / 包含分量 等
时间分辨率 daily / monthly / 8-day 等
空间分辨率 度数和公里数
空间范围 经纬度范围
主要变量 数据集中的变量名
时间跨度 数据的起止日期

常见问题

Q1: 路径不存在错误

A: 确保数据路径正确,Windows路径需要使用原始字符串(r"路径")或双反斜杠

Q2: 读取NetCDF文件失败

A: 某些文件可能格式特殊,脚本会记录错误并继续处理其他文件

Q3: 时间坐标识别失败

A: 脚本会尝试多种常见的时间坐标名称(time, t, Time等),如果都失败会标记为"N/A"

Q4: 处理速度慢

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模块)
   ↓
   生成融合产品

与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)

详见 主README 和 API文档

技术支持

遇到问题可以检查:

  1. Python版本是否 >= 3.7
  2. 依赖包是否正确安装
  3. NetCDF文件是否损坏
  4. 是否有文件读取权限
  5. 数据路径是否正确

获取帮助:

  • 查看示例: 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报告

贡献指南

欢迎贡献!请:

  1. Fork本仓库
  2. 创建特性分支
  3. 提交变更
  4. 发起Pull Request

许可证

本工具采用MIT许可证。详见 LICENSE 文件。


English Version

ET Product Dataset Analysis Tools

A comprehensive toolkit for analyzing Evapotranspiration (ET) product datasets stored in NetCDF format.

Features

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

Quick Start

  1. Install dependencies:
pip install xarray netCDF4 pandas numpy openpyxl tqdm
  1. Modify data path in script:
data_path = r"your/data/path"
  1. Run analysis:
# Quick scan
python quick_scan.py

# Detailed analysis
python analyze_et_products.py

Integration with Collocation Module

The 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

Requirements

  • Python >= 3.7
  • xarray
  • netCDF4
  • pandas
  • numpy
  • openpyxl (for Excel output)
  • tqdm (recommended, for progress bars)

License

This tool is licensed under the MIT License. See LICENSE file for details.