您的位置:首页 >Windy气象API怎么调用?气象数据接口获取步骤
发布于2026-07-30 阅读(0)
扫一扫,手机访问
要接入Windy的全球气象数据,其实并不复杂——但前提是,你得先摸清它那套独特的参数依赖规则。很多开发者遇到的情况是:文档读了不少,但照着示例一跑,400或空响应就来了。别慌,这不是你的代码有问题,而是Windy的参数依赖逻辑和模型匹配规则,确实有点绕。下面把关键步骤拆开讲清楚。

首先,你需要注册一个开发者账号,完成邮箱验证后,进入控制台点击“Create new key”,选择“Point Forecast API v2”类型,系统会自动生成一串32位字母数字组合的Key。这一步没什么可说的,【没有有效Key,后续所有请求都会被拒绝】,这是底线。
不过要特别注意的是:免费版每分钟最多10次请求,超出就返回429错误。如果是在生产环境里跑定时任务,提前升级付费套餐是必须的,否则任务频繁中断会让人很头疼。
Windy的模型选择不是通用的,每个经纬度坐标只支持特定模型。举个例子,海南三亚可以用gfs或cams,但法国巴黎则支持iconEU、arome甚至ecmwf。选错模型,请求直接失败,而且错误提示只会告诉你“invalid model”,根本不提你该选哪个。
那么,怎么确认呢?比较简单的方法是:打开Windy网页版,放大地图到目标位置,右下角状态栏会显示当前加载的模型名称,比如“GFS 0.25°”,这个就是你接口里model参数的合法值。
另一个更靠谱的方法是调用模型探测接口,传入坐标,返回的JSON中会列出所有可用模型缩写。挑一个支持你所需参数的即可。
构造请求体时,有几个细节需要特别留意。首先,lat和lon必须是数字类型,不能是字符串,小数点后保留3到5位,超过6位会被截断,导致定位偏移。
其次,parameters数组只能填Windy明确支持的参数名。比如gfs模型支持“wind”,但不支持“uv”——紫外线需要换cams模型。填错任意一个参数,整个数组会被忽略,返回数据里对应字段为空。
还有一个容易忽略的点:levels参数不是必需的,但如果你要取850hPa高度的温度,就必须显式传["850h"],而且这个level必须存在于a vailLevels返回列表中。否则,Windy会静默忽略你的level设置,直接返回地表数据。
一个完整的body示例是这样的:
{
"lat": 23.118,
"lon": 113.254,
"model": "gfs",
"parameters": ["wind", "temp", "rh"],
"key": "JEexHogRy9RENJWr6BFzlhH8NaWDfkk5"
}
用curl或requests发送POST到指定端点,响应头Content-Type应为application/json,状态码200才代表成功。
Windy返回的数据不是按固定时间间隔排列的。gfs模型通常每3小时一组(0h、3h、6h…),但ECMWF可能只返回0h、6h、12h、24h、36h、48h、72h共7组。各组内部的时间戳格式是ISO 8601字符串,不是Unix时间戳,这一点要特别注意。
关键字段路径是response["data"]["properties"]["timeseries"],这是主数据数组,每项包含time和data对象。data里的字段名与你请求的parameters完全一致。比如请求["wind"],则data.wind是一个包含u(东向风速)和v(北向风速)的对象。
这里有个关键点需要强调:【wind参数返回的是矢量分量,不是直接的风速和风向;你需要自己计算 magnitude = sqrt(u²+v²),direction = atan2(u,v)】,这点很容易被忽略,但确实很关键。
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
正版软件
正版软件
正版软件
正版软件
正版软件
1
2
3
4
5
6
7
8
9