使用OpenWeatherMap API(onecall 2.5),使用某个地区之前6天的天气数据,为什么杨森数据中没有降水?

是否有任何相关数据?如果有,如何使用onecall 2.5 HTTP请求接收它?

这是我的完整代码:

const API_KEY = "XXX";
const LATITUDE = 26.640629;
const LONGITUDE = -81.872307;

const endDate = new Date();
const startDate = new Date(endDate.getTime() - (5 * 24 * 60 * 60 * 1000));

async function getWeatherData() {
  try {
    const weatherDataList = [];
    for (let date = startDate; date <= endDate; date.setDate(date.getDate() + 1)) {
      const weatherData = await (await fetch(`https://api.openweathermap.org/data/2.5/onecall/timemachine?lat=${LATITUDE}&lon=${LONGITUDE}&dt=${Math.floor(date.getTime() / 1000)}&appid=${API_KEY}&units=imperial`)).json();

      const weatherDataLocalList = [];

      weatherDataLocalList.push(weatherData.current.temp);
      weatherDataLocalList.push(weatherData.current.humidity);
      weatherDataLocalList.push(weatherData.current.pressure * 0.02952998751);
      weatherDataLocalList.push(weatherData.current.wind_speed * 0.44704);
      weatherDataLocalList.push(1);

      weatherDataList.push(weatherDataLocalList);
    }
    predict2(weatherDataList);
  } catch (error) {
    console.error("Error fetching weather data:", error);
  }
}

getWeatherData();

这是我正在使用的URL:https://api.openweathermap.org/data/2.5/onecall/timemachine?lat=${LATITUDE}&lon=${LONGITUDE}&dt=${Math.floor(date.getTime() / 1000)}&appid=${API_KEY}&units=imperial

推荐答案

One Call API 3.0 (for historical data)返回的数据返回两个包含降水数据的子字段:

  • data.rain
  • data.snow

每个字段包含一个包含每小时降水率(毫米/小时)的array.

如果这sub-fields are missing, that means there was no precipitation:

如果您在API响应中没有看到一些参数,这意味着这些天气现象在所选城市或地点的测量时间内并未发生.API响应中仅显示真正测量或计算的数据.


请注意,此答案适用于One Call API 3.0.根据这migration guide,API 2.5有数据,但字段略有不同:current.raincurrent.snow.(API 2.5将于2024年6月关闭.)

Javascript相关问答推荐

在JavaScript中对大型级联数组进行切片的最有效方法?

有条件的悲剧

如何最好地从TypScript中的enum获取值

在Angular中将样式应用于innerHTML

如何在Angular中插入动态组件

如何在Obsidian dataview中创建进度条

MathJax可以导入本地HTML文档使用的JS文件吗?

如何将Openjphjs与next.js一起使用?

Prisma具有至少一个值的多对多关系

PDF工具包阿拉伯字体的反转数字

如何在ASP.NET JavaScript中使用Google Charts API仅对绘制为负方向的条形图移动堆叠条形图标签位置

在HTML语言中调用外部JavaScript文件中的函数

如何使用JavaScript拆分带空格的单词

用于在路径之间移动图像的查询

匹配一个或多个可选重复的特定模式

在渲染turbo流之后滚动到元素

在SuperBase JS客户端中寻址JSON数据

MUI迷你图:如何将$符号添加到MUI迷你图中的工具提示数据

使用Java脚本替换字符串中的小文本格式hashtag

在每次重新加载页面时更改指针光标