Earth2Studio 创建数据源
将以下提示词粘贴到你的 AI 对话框中:
请根据 https://skillhub.cn/install/skillhub.md,安装 @org-02qudk26/earth2studio-create-datasource。
技能介绍
要解决什么问题
Earth2Studio 通过统一的数据源抽象拉取 S3、GCS、Azure、HTTP、HuggingFace 等远程存储里的气象与地球系统数据。社区要接一个新仓库,往往卡在:该用 DataArray 还是 DataFrame、Lexicon 怎么映射远程变量、异步批量拉取怎么写、测试和 PR 规范是什么。本技能把从分析存储到提交 NVIDIA 上游 PR 的流程拆成可执行的步骤,减少漏项和返工。
技能如何工作
技能按固定顺序推进,并在关键节点做类型与依赖确认:
- 来源分类:区分网格化分析/再分析(
Source)、网格化预报(ForecastSource)、稀疏站点(DataFrameSource/ForecastFrameSource),决定返回类型与是否处理lead_time。 - 访问与依赖:优先用 fsspec 及
s3fs、gcsfs、adlfs、huggingface_hub等,而不是直接堆 boto3/requests;在pyproject.toml里按需uv add。 - Lexicon 与实现:在
earth2studio/lexicon/建词表类,对照E2STUDIO_VOCAB映射远程键;数据源类按规范方法顺序实现__call__、fetch、异步任务 dataclass、managed_session、gather_with_concurrency等模式。 - 交付物优先:先写源文件与
test/data/test_*.py(含_call_mock、慢测_fetch/_cache),再注册__init__.py、RST 文档、CHANGELOG.md。 - 验证与 PR:用真实数据跑验证脚本,PR 到
NVIDIA/earth2studio,并在评论里附指标覆盖表与数据合理性摘要。
适用边界
- 一次只做一个来源类型;其它协议需再次调用技能。
- 步骤 12 的佩戴性验证需要网络与存储访问权限;无权限时只能做到实现与单测,不能完成端到端验证。
- 环境需 Python 3.10+ 且用
uv run python;所有新文件需 SPDX 许可证头。 - 用户若只要「实现源码+测试」,可跳过文档、注册与 PR 相关步骤(约 8–14)。
使用场景
- 已在 fork 的 earth2studio 仓库里,要把单位内部的 S3 再分析 Zarr 接成新的 `Source` 并补 Lexicon 映射
- 社区预报模型权重在 Hugging Face 上,需要封装为带 `lead_time` 的 `ForecastSource` 供异步批量拉取
- 稀疏站点 CSV/Parquet 在 GCS 上,要按 `DataFrameSource` 规范实现时间对齐与 `time_tolerance`
- 源文件和 `test/data` 已写好,需按技能清单完成 RST 文档、`CHANGELOG` 并向 NVIDIA 上游开 PR 附验证摘要
适合人员
- 维护 earth2studio fork、定期向上游合入新数据源的地球系统 ML 工程师
- 要把 Azure Blob 或 HTTP 开放数据集纳入 Earth2Studio 流水线、但不熟悉 Lexicon 与异步 fetch 规范的研究员
- 负责 NVIDIA Earth2Studio 生态扩展、需统一测试覆盖率与 SPDX 头合规的开源协作者
- 在 uv 管理的 Python 3.10+ 环境中交付 fsspec 访问层,并避免整文件下载的性能敏感后端开发者