weather: проверяйте сводку и прогноз погоды из командной строки

Автор: Дан Фразиер (Dann Frazier)
Перевод: Алексей Бешенов

2008-03-05

Оригинал: «weather: check weather conditions and forecasts on the command line», 4 октября 2007 г.

weather из пакета weather-util — простая консольная утилита для просмотра текущего состояния погоды и прогноза. Данные в формате METAR берутся от National Oceanic and Atmospheric Administration, а прогнозы предоставляются National Weather Service. В документации говорится, что программа ограничивается только информацией для Соединенных Штатов, но на деле METAR предоставляется станциями по всему миру (см., например, http://www.google.ru/search?q=METAR+Russia). Впрочем, прогноз погоды можно будет получить только для США.

Многие места уже предопределены в /etc/weatherrc. Если там уже есть интересующая вас местность, то для работы потребуется только узнать ее синоним. Например, в /etc/weatherrc есть следующая запись для Альбукерки, штат Нью-Мексико:

 [ABQ]
City = Albuquerque
ID = KABQ
St = NM
Таким образом, синоним для Альбукерки — «ABQ». Поэтому текущее состояние дел в Альбукерке можно узнать командой weather ABQ:
$ weather ABQ
Current conditions at Albuquerque International Airport (KABQ)
Last updated Sep 26, 2007 - 04:56 PM EDT / 2007.09.26 2056 UTC
  Wind: from the ESE (120 degrees) at 3 MPH (3 KT)
  Sky conditions: mostly clear
  Temperature: 77.0 F (25.0 C)
  Relative Humidity: 15%
weather -f ABQ покажет краткосрочный прогноз:
$ weather -f ABQ
Current conditions at Albuquerque International Airport (KABQ)
Last updated Sep 26, 2007 - 04:56 PM EDT / 2007.09.26 2056 UTC
  Wind: from the ESE (120 degrees) at 3 MPH (3 KT)
  Sky conditions: mostly clear
  Temperature: 77.0 F (25.0 C)
  Relative Humidity: 15%
City Forecast for Albuquerque, NM
Issued Wednesday afternoon - Sep 26, 2007
  Wednesday night... Low 52, 0% chance of precipitation.
  Thursday... Sunny, high 81, 0% chance of precipitation.
  Thursday night... Low 54, 5% chance of precipitation.
  Friday... Partly cloudy, high 80.
  Friday night... Low 56.
Новые местоположения можно добавлять прямо в этот файл, либо в пользовательские файлы ~/.weatherrc. Запись [default] задает место по умолчанию. Например, в моем ~/.weatherrc написано
 [default]
City = denver
Forecast = True
ID = KFNL
St = CO
City и St (город, штат) — поля для получения прогнозов; текущая погода находится по полю ID. Я использую такие настройки, чтобы указать weather, что меня интересует погода в Денвере, штат Колорадо, а для получения текущей сводки должна использоваться ближайшая станция. Если вы не укажете [default], то по умолчанию получите данные для Роли (Raleigh), Северная Каролина.

Для определения своих настроек важно знать, какую информацию использует в своей работе weather. Например, мне нужно узнать сводку для Лаббока, штат Техас, и я выполняю такую команду:

$ weather -o --city=Lubbock --st=TX
Current conditions at Fort Collins-Loveland Municipal Airport (KFNL)
Last updated Sep 26, 2007 - 05:55 PM EDT / 2007.09.26 2155 UTC
  Wind: from the ENE (070 degrees) at 5 MPH (4 KT)
  Sky conditions: clear
  Temperature: 71 F (22 C)
  Relative Humidity: 23%
(-o отключает отображение прогноза.) Как видите, weather рассказал о погоде у меня в Денвере, а не в Лаббоке — для текущих сводок используется идентификатор станции, а не информация о городе и штате. Нужная информация будет получена, если указать --id:
$ weather -o --id=KLBB
Current conditions at Lubbock International Airport (KLBB)
Last updated Sep 26, 2007 - 05:53 PM EDT / 2007.09.26 2153 UTC
  Wind: from the S (170 degrees) at 9 MPH (8 KT) gusting to 18 MPH (16 KT)
  Sky conditions: mostly cloudy
  Weather: Cumulonimbus clouds, towering cumulus clouds observed
  Temperature: 86.0 F (30.0 C)
  Relative Humidity: 38%
Благодаря тому, что weather работает с командной строкой, возможно автоматизировать многие вещи. Например, отмену еженедельного похода по пивным в случае дождя:
$ cat /etc/cron.weekly/pub-reminder
#!/bin/sh

set -e

if weather -f | egrep -q '(100)|([5-9][0-9])% chance of precipitation'; then mailx -s 'Cancellation' $PUBCRAWLEES < ~/pub-crawl-cancelled else mailx -s 'Get on your bike' $PUBCRAWLEES < ~/pub-crawl-is-a-go fi

Конечно, я бы просто посоветовал надеть плащ.

weather можно взять из пакета weather-util в Debian Etch, testing, unstable и Ubuntu Edgy, Feisty, Gutsy.

О поиске метеостанций

Идентификаторы метеостанций следует искать по адресу http://www.weather.gov/tg/siteloc.shtml. Там доступна информация для многих стран, в том числе и для России.