Alexa METARs and TAFs

What is it?

The Alexa METAR and TAF Reader skill is something I developed for pilots to check the airport weather at home. Airports with weather stations generate an hourly report called a METAR (METeorological Report). This is available in printed form and on the Internet. Additionally, many airports have a radio service called ATIS (Automated Terminal Information Service) that plays a recording the weather and other terminal information.

The content of METARs and ATIS, though similar, are not the same. This skill translates the METAR data to be as like ATIS as possible. ICAO aviation phonetics are used and wind directions are magnetic-north referenced. Also, ATIS often contains airport-specific information not present in METARs.

Pilots, this skill is not a substitute for real ATIS! Get a legal weather briefing before launching!

Due to popular demand, I have added a few more features of interest to pilots and non-pilots alike. It now reads TAFs (Terminal Area Forecasts) as well as METARs, and the user can configure the output format a bit.

How to Enable

From your Alexa, just say:

That should do it. If not, you can do it from the Alexa App on your phone, but you’ll have to look for it. This is Amazon’s landing page for the skill.

Basic Operation

The primary means I had in mind for calling up airports was by their four-letter ICAO identifier using ICAO phonetics. This actually works pretty well, since, like Alexa, ICAO phonetics are designed for maximum comprehensibility when read aloud over a noisy radio channel. The skill will also work with “regular” letter pronunciations, but Alexa is much more likely to misunderstand if you don’t use the phonetics.

For example, do get the weather at New York JFK, you might say:

Note that the ICAO abbreviation for JFK airport is KJFK. All conterminous US airports start with ‘K’, and if you leave out the first letter and only give three, the skill will prepend a ‘K’, assuming you want a US airport.

However, you can certainly specify any international airport by using all for letters. For example:

That’ll get you London Heathrow.

You can access any airport out of the thousands available from the Aviation Digital Data Service using this method.

As a secondary method, you can also access an airport by the name of the city it is in.

Will return the weather in Liverpool, England. Overall, though, my list of cities is limited, and biased strongly towards US and Canadian airports. Furthermore, if there are two cities of the same name, just naming the city will get you the one with the busier airport. Often, you can specify the other airport by also providing the state and country if appropriate.

The first two will get your KPDX. The last one will get you KPWM.

In general, though, the city method is pretty error-prone, so I’m not a huge fan of it. I might take it out entirely.

Getting a Forecast (TAF)

All the examples above return the current weather, the METAR. Various users have asked if they could get a tool that also returns the weather forecast, the TAF. Well, you can do that similarly, just add the word “TAF” or “forecast” to your request:

Alexa, ask airport weather to get the forecast for kilo sierra foxtrot oscar

Gets you the TAF at San Francisco International.

Gets you the forecast at LAX.

Note that terminal forecasts are essentially a written product. There is no verbal version of a TAF. This skill sort of just reads the TAF aloud as written, trying to do whatever makes the most sense — but if you ask me, it doesn’t make all that much sense to read a TAF out loud as they are quite long and detailed!

Non-aviation users, be aware that many fewer airports have TAFs than have METARs. There are thousands of US airports with weather reporting, but to a fist approximation, only the airports with commercial service will have terminal forecasts. If you get an error message getting a TAF, it is likely it doesn’t exist.

Customization

You can customize the way this skill works a little bit.

Wind direction

Winds on METARS are always true-north referenced, but on ATIS, they are magnetic-north referenced. This skill by default returns a magnetic-north result, for maximal ATIS “realism.”

You can change this:

Note that when the skill reads a TAF it will also follow this preference, though TAFs in real life are true-north referenced.

Visibility Unit

Americans use nautical miles. In most of the rest of the world, they use kilometers.

Note that when the skill reads out the visibility, if it is in miles, the words “miles” or “nautical miles” are not read, consistent with the custom in the US. If set to kilometers, you will hear the word “kilometers.”

Pressure Unit

Americans use inches of mercury to set their altimeters. The rest of the world uses millibar. Change it like this:

If you are having trouble getting the system to recognize “millibar”, you can try “bar.”

In millibar mode, the skill will precede the altimeter setting with “QNH”. In inches, you’ll get no unit, consistent with US custom. (See a pattern here?)

Temperature

All aviation weather products uses Centigrade. All. Always. However, some users like Fahrenheit, so you can change it:

In Fahrenheit, the skill will say “Fahrenheit.” In Celsius it will not say the unit.

Default Airport

Stating an airport identifier using ICAO phonetics can get tedious. The system can be trained to remember one “default” or “local” airport. It is a two step process.

First, get the skill to read the airport weather you want using whatever method works for you.

Next, say

Subsequently, you can recall the default like this:

or

Repetition

Airport ATIS transmissions are actually a short recording on a loop. The pilot can listen to it repeat as many times as he needs to copy the weather. Looping indefinitely would not be a good idea on Alexa, but you can have it repeat a few times for you.

Only the numbers one through ten will be accepted. Note also that the TAF will not repeat, regardless of your setting. TAF is already insanely long to read out loud.

Alternative Phrasings

If you stick to the phrasing above, you should not have any problems. Nevertheless, I have tried to get the tool to respond to a bunch of common variations: get foo, get the weather at foo, give me foo, etc. However, it is certainly possible to confuse this skill. Let me know if there is an obvious and important “utterance” that you think the skill mishandles.

 

A Few Notes about What’s Under the Hood

This skill is hosted by Amazon Lambda. Lambda is a neat way to run code, but it is utterly stateless. That means that your preferences are stored in a separate database, Amazon DynamoDB.

The weather information itself comes from a server hosted by the Aviation Digital Data Service, or ADDS. In order to make sure this app doesn’t hit ADDS too much, the skill also caches weather reports and forecasts for up to three minutes. That means that the weather data you get may be up to three minutes older than the latest available. I thought this was a reasonable compromise to hitting the ADDS server for Every. Single. Request.

Questions and Comments

Feel free to contact me with suggestions at dave@toolsofourtools.org.

Also, if you are interested in the code, you can check it out on github: https://github.com/djacobow/alexa_metar.