понимание ответа openweather API

У меня возникли проблемы с интерпретацией ответа API openweather. У меня нет четкого понимания значений, возвращаемых в приведенном ниже вызове.

*приложение взято из openweather, а не из моего собственного

http://samples.openweathermap.org/data/2.5/forecast/daily?zip=91001&appid=b6907d289e10d714a6e88b30761fae22

В частности дт, но и день, и мин.

{
  dt: 1519070400,
  temp: {
   day: 283.99,
   min: 271.86,
   etc...
}

Это определения этих значений из API

dt - время прогноза данных temp.day - дневная температура. Единица измерения по умолчанию: Кельвин, Метрическая система: Цельсий, Имперская система: Фаренгейт.

Мои вопросы...

1) Я думаю, что единица dt — это какой-то номер utc, но когда я пытаюсь преобразовать его с помощью конвертеров UTC, он возвращает недействительное значение. Я не могу найти больше информации в документах о том, что это такое, кроме определения. Что это за единица и есть ли у вас советы, как ее преобразовать?

2) temp.day - читая определение, я предполагаю, что это сегодняшняя температура, возвращенная в Кельвинах, но когда я конвертирую ее в градусы Фаренгейта, температура значительно отличается. В этом примере почтовый индекс — Пасадена, Калифорния, где текущая температура составляет 70 градусов по Фаренгейту, но когда я конвертирую возвращенный результат 283,99 Кельвина в градусы по Фаренгейту, результат составляет 51 градус. Вы знаете, что это может быть?

Любая помощь приветствуется, поскольку я пытаюсь лучше понять эти типы ответов API.


person adamscott    schedule 20.05.2018    source источник


Ответы (2)


Прошу прощения за задержку. В любом случае, я надеюсь, что это будет полезно!

1) Используйте этот конвертер: https://chrome.google.com/webstore/detail/utime/kpcibgngaaabebmcabmkocdokepdaki В его настройках выберите GMT ​​(западноевропейское время, Лондон.....) Таким образом, преобразование будет выполнено в соответствии с часовым поясом UTC 0000. Преобразует временные метки UNIX в удобочитаемые даты и наоборот. Это просто отметка времени.

2) Вы используете образец файла, поэтому он не подключен к реальному сервису API! Настоящий URL-адрес API следующий:

http://api.openweathermap.org/data/2.5/forecast/daily?zip=91001&appid=xxxxxx

URL-адрес предназначен для ежедневного API 16, который недоступен для бесплатной учетной записи, поэтому вы не сможете получить доступ к данным, если вы все еще используете бесплатный план. Температура указывается в кельвинах. Есть возможность менять единицы измерения (единицы=метрики - для C / единицы=имперские - для F).

person Olga Makarova    schedule 14.08.2018

  1. Чтобы преобразовать временную метку UNIX в объект даты JavaScript, умножьте ее на 1000 в конструкторе.

    var date = new Date(unix_timestamp * 1000);

  2. Не зная, какое преобразование вы использовали, сложно отладить. Если вы хотите оставить ответ как Кельвин. обязательно используйте следующее преобразование.

    var fahrenheitTemp = (kelvinTemp − 273.15) × 9/5 + 32;

    В противном случае вы можете просто передать запрос единиц следующим образом.

    http://api.openweathermap.org/data/2.5/forecast/daily?zip=91001&appid=xxxxxx&units=imperal

person Michael Freytag    schedule 15.12.2019