乐于分享
好东西不私藏

指定经度纬度的epw天气文件下载

指定经度纬度的epw天气文件下载

import requestsurl = "https://re.jrc.ec.europa.eu/api/tmy"params = {"lat"36"lon"120"outputformat""epw"}resp = requests.get(url, params=params)withopen("my_weather.epw""wb"as f:    f.write(resp.content)print("EPW 文件已保存")

步骤1:明确目标:准备一个标准化请求

在通过API获取数据时,首先需要与服务器“约定”好请求的数据内容和格式。

  • 核心API地址https://re.jrc.ec.europa.eu/api/tmy。这是PVGIS服务器上专门用于获取TMY数据的功能接口。

  • 请求参数 (params):

    • lat=36 & lon=120:服务器的输入是地理坐标,即你需要的气象站位置。

    • outputformat="epw":这是一份明确的格式要求,告诉服务器直接返回可供EnergyPlus等专业软件直接读取的.epw文件,而不是未经处理的原始CSV等文本数据。

步骤2:递交请求:生成HTTP请求

requests.get(url, params=params) 这个函数调用将上面的参数组合成一个标准的HTTP GET请求。这个请求的逻辑等价于在浏览器地址栏输入:https://re.jrc.ec.europa.eu/api/tmy?lat=36&lon=120&outputformat=epw

步骤3:获得响应:PVGIS服务器开始“工作”

当PVGIS服务器收到你的明确请求后,便会触发其后台计算流程:

  1. 数据库检索:根据你提供的坐标,从其庞大的气象数据库(例如最常被使用的ERA5数据集)中,调取该位置长达10年甚至更久的历史气象数据。

  2. TMY数据合成:服务器运行其内置算法(通常是Sandia等成熟方法),从多年数据中为每个月份遴选出最具代表性的月份。整个拼接过程,本质上是在服务器端完成一次自动化的小规模计算。

  3. 封装EPW文件:服务器将计算生成的8760小时(365天×24小时)的TMY数据,按照EPW格式的严格规范(包含文件头、数据标签等)打包成一个字节流。

步骤4:接收并保存:保存本地文件

resp = requests.get(...) 这一行已经将服务器生成的EPW文件下载到了变量 resp 中,而文件内容则存储在 resp.content 属性里。最终代码通过标准的文件写入操作 with open("my_weather.epw", "wb") as f: f.write(resp.content),将这个二进制文件保存到你的电脑磁盘上。

 总结

总之,这段代码的工作原理是:你通过API向PVGIS服务器发送了一个精确的请求,触发服务器为你的位置实时计算并生成数据的典型气象年(TMY)数据,最后以EPW文件格式返回并提供给你本地保存。