OpenAPI 3.x 规范:下载 weather-v1.yaml

运梦气象 API 参考

通过 API Key 调用运梦天气平台接口。本页是 OpenAPI 3.x 规范的可读化对照;机器消费请直接下载 /api-specs/weather-v1.yaml


认证方式

所有 API 请求通过 HTTP 请求头传递 API Key 进行身份认证。

请求头格式

Authorization: Bearer sk-xxxxxxxxxxxxxxxx
  • API Key 以 sk- 为前缀
  • 使用 Bearer 令牌类型
  • 在 HTTP Authorization 请求头中传递

认证流程

  1. 用户在运梦天气平台管理后台创建 API Key
  2. 客户端在每次请求中携带 Authorization: Bearer sk-xxx 请求头
  3. 网关验证 API Key 有效性并转换为内部认证令牌
  4. 下游服务基于内部令牌完成用户身份识别

认证失败响应

{
  "code": 401,
  "success": false,
  "data": null,
  "msg": "API Key 无效或已被禁用"
}

API Key 应妥善保管,不要在客户端代码中硬编码。泄露后应立即在管理后台禁用并重新生成。


气象数据下载

同步等待下载完成,直接返回数据结果。会实际扣费,出错时自动退款。

  • 方法: POST
  • 路径: /api/energy-weather/search/weather/action/downloadSync
  • 完整 URL: https://console.yun-meng.top/api/energy-weather/search/weather/action/downloadSync

请求参数 (JSON Body)

参数类型必填说明
latnumber纬度,范围 (-90, 90)
lonnumber经度,范围 (-180, 180)
dataSourceIdstring数据源标识(见下方数据源说明)
stimestring开始时间,格式 yyyy-MM-dd HH:mm(与 /api-specs/weather-v1.yaml 严格一致)
etimestring结束时间,格式 yyyy-MM-dd HH:mm
fieldsstring下载字段列表(见下方字段说明)
timezonestring时区偏移,例如东八区为 "8"

请求示例:

{
    "lon": 117.35184,
    "lat": 32.03253,
    "dataSourceId": "era5",
    "stime": "2022-01-01 00:00",
    "etime": "2022-01-01 23:00",
    "timezone": "8",
    "fields": ["tas"]
}

响应

Content-Type: application/json,统一 envelope(与 /api-specs/weather-v1.yaml 严格一致):

{
    "code": 200,
    "success": true,
    "data": {
        "timeList": [
            "2022-01-01 00:00",
            "2022-01-01 01:00",
            "..."
        ],
        "tas": [
            6.344323730468773,
            5.634362792968773,
            "..."
        ]
    },
    "msg": "success",
    "errorCode": 0
}
字段类型说明
codeintegerHTTP 语义状态码,成功 200
successboolean业务成功标志
data.timeListstring时间列表,格式 yyyy-MM-dd HH:mm
data.<field>number各请求字段的数值数组,与 timeList 一一对应(如 data.tasdata.ws
msgstring文案消息
errorCodeinteger业务错误码,0 表示无错

出错时 envelope code=400success=falsemsg 包含余额不足等提示;下载失败时自动退款。

调用示例

import requests

url = 'https://console.yun-meng.top/api/energy-weather/search/weather/action/downloadSync'
headers = {
    'Authorization': 'Bearer sk-your-api-key',
    'Content-Type': 'application/json',
}
data = {
    "lat": 32.03253,
    "lon": 117.35184,
    "dataSourceId": "era5",
    "stime": "2022-01-01 00:00",
    "etime": "2022-01-20 23:00",
    "fields": ["tas", "ws"],
    "timezone": "8"
}

response = requests.post(url, headers=headers, json=data)
result = response.json()

if result["success"]:
    data = result["data"]
    time_list = data["timeList"]
    tas = data["tas"]
    print(f"共 {len(time_list)} 条数据")
    print(f"第一条:{time_list[0]},气温:{tas[0]}℃")
else:
    print("请求失败:", result["msg"])

可用字段 (fields)

字段代码名称单位说明
tas气温地面约 1.5–2 米处百叶箱中的温度
hurs相对湿度%地面约 1.25–2 米的空气湿度
sp气压hPa作用在单位面积上的大气压力
pr降水量mm/h地面积聚的液态或固态降水深度
uas纬向风m/s地面约 10 m 风的纬向分量(西风为正)
vas经向风m/s地面约 10 m 风的经向分量(南风为正)
ws地面风速m/s地面约 10 米的风速
wd风向°风的来向,正北方向为 0°,顺时针方向为正
rsds地表水平辐射W/㎡地表水平方向获得的太阳辐射
dni法向直接辐射W/㎡在与太阳光线垂直的平面上接收到的直接辐射
dhi散射辐射W/㎡以漫射形式到达地球表面的辐射能
u100100 米纬向风速m/s距地面约 100 m 处纬向风速(西风为正),风能资源评估关键指标
v100100 米经向风速m/s距地面约 100 m 处经向风速(南风为正)
u10n10 米中性纬向风速m/s中性层结状态下距地面 10 m 处的纬向风速
v10n10 米中性经向风速m/s中性层结状态下距地面 10 m 处的经向风速

数据源 (dataSourceId)

完整 enum 见 /api-specs/weather-v1.yaml;以下表格按公开数据源口径说明(详见 数据源)。

代码名称数据源类型说明
era5欧洲中期天气中心 ERA5历史再分析ECMWF 第五代再分析(历史回测、资源评估)
nasa美国国家航空航天局 MERRA-2历史再分析NASA GMAO 第二代再分析(历史回测、气候复盘)
zg1中国数源 V1.0历史中国区历史气象数据源,按经纬度查询
ger德国气象局未来预报德国气象局数值预报(短期预测、调度,未来 ~7 天)

相关资源