AeroWeather Help

Quick Start

When the app starts for the first time, default groups and a close-by airport will be shown. The list  allows groups and station be to mixed in the same view. Stations can be added through the + button and deleted or moved via the edit button. Swiping a station to the left will also delete it.

However, groups are managed by taping on three-dot button. For each group the available options depend group. Groups in the main view can be hidden or shown. In fact, all groups can be hidden so only station will be shown.

Data will usually be loaded automatically, however, by pulling down the list data can be reloaded manually at any time.

Besides the list view you can also change to the map view by tapping on the map button, which then toggles back to the list view. The stations that are currently shown in the list will also appear when swapping to the map view.



Many settings can be changed right within the view they will be applied to (three-dot button). In the general settings (accessible thru cog-wheel button) are the preferences which usually don’t have to be changed often. First look at the Unit and Format sections.

AeroWeather Lite

  • Local Times: if enabled, all times in decoded METAR/TAF will be shown at the station’s local time. Otherwise UTC times are shown instead.
  • Twilight: twilight times are shown in the following format: dawn  ➚ sunrise ☀️  sunset ➘ dusk. If switched off, sunrise ☀️  sunset will be shown.
  • Calculations: if enabled, an additional section will show up underneath TAF section. Depending on the available METAR data it’ll show: freezing level (based on ISA), density altitude, pressure altitude, and station elevation. Either temperature for windchill or heat index will be display automatically. Definitions from US NOAA are used to calculate windchill and heat index.
  • World Magnetic Model (WMM): magnetic variation data is continuously changing and airport data might not be accurate anymore. The NOAA WMM allows calculation of magnetic variation for any point on the globe and it shows also its annual change.
  • Indicators: choose how and if different kind of indicators should be shown throughout the app.



The METAR cell is interpreted as follows:

1 station name / ICAO/IATA identifier
2 wind direction and speed / wind gusts speed / temperature / flightrule indicator
3 weather description / dew point / relative humidity (%)
4 visibility / pressure (plus trend over the last 4 METARs)
5 most critical cloud coverage (OVC/BKN) and ceiling; age of data (in minutes)


The flightrule condition icon indicates the current visibility and cloud ceiling either by ICAO or NOAA definition:

Visual Meterological Conditions
Instrument Meterological Conditions
Visibility < 5000m/3.1mi or BKN/OVC ceiling < 450m/1500ft
Visual Flight Rules
Ceiling greather than 3000 feet AGL and visibility greather than 5 miles
Marginal Visual Flight Rules
Ceiling between 1000 – 3000 feet AGL and/or visibility between 3 – 5 miles
Instrument Flight Rules
Ceiling between 500 – 1000 feet AGL and/or visibility between 1 – 3 miles
Low Instrument Flight Rules
Ceiling below 500 feet AGL and/or visibility less than 1 mile
* AGL = above ground level

Apple Watch (Pro only)

Starting in version 2.0 stations for watch and widget are now organised in separate groups. On the iPhone tap on the ooo-button (bottom right) when in main list. Then make sure the Apple Watch groups is checked (you can uncheck it again after to set the station). Go back to the main list and then into the Watch group and add some stations.

In the Watch app you can choose between iPhone list and nearby mode by applying a “long press” on the display. When chosing iPhone list all stations defined in the above mentioned Watch group will be shown. Nearby will first acquire the current position and display close-by stations. Besides the two modes there’s also a refresh button to do a data refresh manually



Apple Watch Complication (Pro only)

While in versions before 2.0 the Watch always used the first station in the iPhone list as complication station, it’s now possible to use any station shown on the Watch to be set as complications station. Go to a detail view of any station on the Watch and then do a “long press” to set it.

There are many possibilities to customize complication display (depending on the complication type). There are indicators for present weather, wind, ceiling and visibility.

Use the Watch app on your iPhone to customize the thresholds for the wind, ceiling and visibility indicators. Whenever a limit is reached it’ll be displayed by a letter code:

  • W: wind speed greater or equal defined limit (WG: if there are gusts)
  • C: ceiling lower or equal defined limit
  • V: visibility lower or equal defined limit

There is also an option to show present weather as 2-letter METAR code or symbol (e.g., ❄️ or SN).

Customization of Watch Complication

Alert Notifications

Internet access is required to view, create, and edit alerts.

  • Create/modify alerts: go to any station detail page and then tap on “Location” (center bottom). When scrolling down you’ll see the alerts. There’s is currently no limitation on the number of alerts per station.
  • Alert status: if an alert is enabled the server sends notifications whenever the criteria is met. If you don’t want a particular alert temporarily you can just disable it and enable it again at a later point in time.
  • Alerts group: this group in the main list just gives you an overview of all defined alerts grouped by stations. It’s not possible to create alerts there, however, alerts can be deleted and enabled/disabled. A checkmark indicates that an alert is enabled. Tapping on an alert toggles its status (enabled/disabled). Only enabled alerts will be executed.


File Exchange Format (Pro only)

AeroWeather (2.0 or higher) now offers a new possibility to exchange data from and to the app. It allows to exchange groups, stations, and notes. Data is formatted in JSON and stored in files with .aw2 extension.

Please download and consult the AeroWeather Exchange Format specifications (pdf).


URL Scheme

You can use the URL scheme (aeroweather:// or aeroweather-lite://) to launch the app and display a station or even create a new group.

To display a station based on ICAO or IATA identifier in Lite resp. Pro version:


In the Pro version you can even create new groups or overwrite existing groups with stations. JSON is used as to specify a group and should look like this:

         "name":"Athens - Columbus",

In “applicationID” use typically a unique name of app (e.g., app bundle ID) . This field is mandatory and never shown to the user.  The field “applicationName” is optional and may be presented to the user for information.

Use “previousGroups” to determine what to do with previously created groups. If it is set to “replace”, an existing group with the same name will be replaced with the new set of locations. If it is set to “delete”, all previously created groups with “applicationID” will be deleted. Omit “previousGroups” to create groups no matter of existing ones.  Multiple groups can be defined: the “groupName” is the name which will appear in the group list. List either IATA or ICAO identifiers in “locations” you wish to add in the new group. IATA or ICAO identifiers can be mixed.

The full URL for the example above would look like:

aeroweather://createGroups/json={"metadata":{"creatorBundleID":"","previousGroups":"replace"},"groups":[{"name":"Norway","locations":["ENGM","BGO","TRD","TOS"]},{"name":"Athens - Columbus","locations":["KUNI","CMH"]}]}

The URL usually needs to URL encoded.

Here is sample code in Swift to generate createGroups URL:

var completeDictionary = [String: Any]()
var metaDictionary = [String: Any]()
metaDictionary["creatorBundleID"] = "" 
metaDictionary["creatorName"] = "myRoster" 
metaDictionary["previousGroups"] = "replace"

var group1 = [String: Any]()
group1["name"] = "Norway"
group1["locations"] = ["ENGM","BGO","TRD","TOS"]

var group2 = [String: Any]()
group2["name"] = "Athens - Columbus"
group2["locations"] = ["KUNI","CMH"]

completeDictionary["metadata"] = metaDictionary
completeDictionary["groups"] = [group1, group2]

if let jsonData = try? completeDictionary, options: []), let jsonString = String(data: jsonData, encoding: .utf8) {
 let url = "aeroweather://createGroups/json="+ jsonString
 if let encodedUrl = url.addingPercentEncoding(withAllowedCharacters: .urlQueryAllowed), let urlToOpen = URL(string: encodedUrl) {
  if#available(iOS10.0, *) {, options: [:], completionHandler: nil)
  } else {