Skip to content

byyuchun/AIForCDS

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

AIForCDS — ERA5-Land 智能下载助手

    _    ___   ___                 ____  ____   ____
   / \  |_ _| / _ \  _ __ ___      / ___||  _ \ / ___|
  / _ \  | | | | | || '_ ` _ \ ____\___ \| | | |\___ \
 / ___ \ | | | |_| || | | | | |_____|__) | |_| | ___) |
/_/   \_\___| \___/ |_| |_| |_|    |____/|____/|____/

把“自然语言需求”转换成可执行的 CDS API 下载配置,自动拆分按月下载 ERA5‑Land 日统计数据。

这是什么

  • 你用中文描述需求(时间、变量、区域等)
  • 脚本通过 Qwen 对话模型补全缺失信息
  • 生成可执行配置并调用 cdsapi 开始下载

功能亮点

  • 多轮对话补参(不清楚就问)
  • 按月拆分下载,失败自动重试
  • 下载进度与日志可选
  • ZIP 自动解压,可生成最终配置文件

1) 环境与依赖

  • Python 3.9+(推荐)
  • 安装依赖:
pip install cdsapi openai

2) 配置 CDS API(必做)

在 CDS 官网注册账号、同意数据集条款后,创建凭据文件:

Windows 路径%USERPROFILE%\.cdsapirc(例如 C:\Users\你的用户名\.cdsapirc

内容示例:

url: https://cds.climate.copernicus.eu/api
key: <uid>:<api_key>

没有 .cdsapirc 将导致 cdsapi.Client 无法认证。


3) 配置 Qwen API Key 与下载路径(这个可以通过注册qwen账号免费获取token,https://bailian.console.aliyun.com/cn-beijing/?tab=model#/model-market)

脚本从配置文件读取 Qwen API Key 和下载目录。推荐创建 settings.local.json(不容易误提交)。

3.1 配置文件优先级

脚本按以下顺序查找配置:

  1. 环境变量 CDS_SETTINGS_PATHAI_FOR_CDS_SETTINGS
  2. settings.local.json
  3. settings.json
  4. setting.json

3.2 配置文件示例(settings.local.json

{
  "output_dir": "D:\\Work\\DataForLhy",
  "dataset": "derived-era5-land-daily-statistics",

  "qwen": {
    "api_key": "你的Qwen API Key",
    "base_url": "https://dashscope.aliyuncs.com/compatible-mode/v1",
    "model": "qwen3-max",
    "max_retries": 4
  },

  "defaults": {
    "daily_statistic": "daily_mean",
    "frequency": "1_hourly",
    "time_zone": "utc+00:00",
    "format": "netcdf",
    "area": null
  },

  "behavior": {
    "split_by": "month",
    "skip_if_exists": true,
    "cds_progress_bar": true,
    "log_progress": false,
    "log_interval_sec": 2.0,
    "max_retries": 6,
    "base_sleep_seconds": 3.0,
    "extract_zip": true,
    "remove_zip_after_extract": true,
    "save_generated_config": true,
    "generated_config_name": "download_config.generated.json"
  },

  "dialog": {
    "max_turns": 8
  }
}

3.3 关键字段解释

  • qwen.api_key:你的 Qwen(通义千问)API Key
  • qwen.base_url:OpenAI 兼容接口地址(DashScope)
  • output_dir:下载数据保存目录

4) 快速运行

最简单方式(自动找配置)

python .\AIForCDS.py

直接给出需求

python .\AIForCDS.py --query "我要下载最近五年的五六月分地表温度数据"

显式指定配置文件

python .\AIForCDS.py --settings setting.json

5) 对话示例(Case)

下图为真实运行过程:脚本会根据你的自然语言逐步追问关键参数,直到配置完整并确认下载范围。

Case: 多轮对话与确认示例


6) 常见问题

Q1:提示找不到配置文件

  • 创建 settings.local.json
  • 或设置环境变量 CDS_SETTINGS_PATH
  • 或用 --settings 直接指定

Q2:cdsapi 认证失败

  • 检查 .cdsapirc 是否存在
  • key 是否正确、是否已同意 CDS 数据集条款

Q3:下载量太大

  • 对话中提供 area(bbox)或缩小时间范围

7) 输出说明

  • 文件默认按月拆分保存到 output_dir
  • ZIP 会自动解压(可在 behavior 中关闭)
  • 可生成最终可执行配置文件:download_config.generated.json

8) 小提示

  • 建议不要把 api_key 提交到公开仓库
  • 如果要切换配置文件,用环境变量更方便:
$env:CDS_SETTINGS_PATH="D:\\path\\my_settings.json"
python .\AIForCDS.py

如需扩展功能或修改默认行为,请编辑 settings.local.json 或调整 AIForCDS.py


✨ Contact / 合作交流

作者非气象相关专业学生,做的不好,欢迎指正。

📌 WeChat:18355798603

About

CDS(Climate Data Store)AI下载助手-把“自然语言需求”转换成可执行的 CDS API 下载配置,自动拆分按月下载 ERA5‑Land 日统计数据。

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages