Windy气象API怎么调用?气象数据接口获取步骤
注册获取APIKey,免费版每分钟限10次请求。确认目标区域可用模型,选错则请求失败。构造POST请求体时lat/lon须为数字,参数需模型支持,levels可选但需存在于可用列表。返回数据按时间序列组织,wind参数返回矢量分量,需自行计算风速风向。
要接入Windy的全球气象数据,其实并不复杂——但前提是,你得先摸清它那套独特的参数依赖规则。很多开发者遇到的情况是:文档读了不少,但照着示例一跑,400或空响应就来了。别慌,这不是你的代码有问题,而是Windy的参数依赖逻辑和模型匹配规则,确实有点绕。下面把关键步骤拆开讲清楚。

第一步:注册并获取合法API Key
首先,你需要注册一个开发者账号,完成邮箱验证后,进入控制台点击“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中会列出所有可用模型缩写。挑一个支持你所需参数的即可。
构造POST请求体并发送
构造请求体时,有几个细节需要特别留意。首先,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)】,这点很容易被忽略,但确实很关键。
Windows 10 是一款微软推出的经典操作系统,拥有硬件兼容性与多任务处理能力。它更偏向把系统状态查看和常用调节动作放在一起,适合需要持续观察和微调设备状态的场景。
极度公式是一款跨平台专业LaTeX公式识别编辑软件,支持OCR公式识别和多平台编辑。和使用说明,避免使用,享受完整功能与稳定支持。做扫描整理、文字提取和表格转换时,它能把识别后的处理步骤接得更顺,资料录入这类场景会省下不少时间。
















