Menu

FAQ

Jerry

This section started as a FAQ, and I have compiled the accumulated FAQs into Documentation/FAQ.

Brief History

Around November 11, 2015, Weather.com retired its weather data feed, leaving Meteorologist v1.6.1 without a data source. Ed was developing a replacement, Meteo2, written in Swift, leaving many older Mac systems behind. Wanting to maintain compatibility with older systems, Jerry rescued the existing code base into v1.7.X by restoring primary functions and adding several new features. When Meteo2 was officially announced, Ed changed back to using the name Meteorologist v2.0.0; hence the v1.7.X code was renamed to Meteorologist Classic. Compatibility was extended back to macOS v10.4 for all Macs with Intel processors, and a prototype version for Macs with PowerPC processors was working but stagnated due to insufficient interest.

Meteorologist Classic has adapted to several weather services. Around June 11, 2021, Yahoo Weather retired its weather service, ending one of the best services for an open source project due to its unlimited request allowance. After years of stable operation, removing Yahoo Weather plus finding several alternative weather services for adoption presented a ripe opportunity to rewrite and enhance the code. The new v1.8.X branch looks and feels very familiar to previous versions. Behind the scenes, it behaves much better as a Mac app, using less memory, sharing resources (ie, network, CPU, memory), and working as you would expect a fine Mac app should.

Weather Services

AW: AccuWeather
NWS: USA National Oceanic and Atmospheric Administration's National Weather Service
OW: OpenWeather
T: Tomorrow
VC: Visual Crossing
WAPI: WeatherAPI
Wb: Weatherbit
WS: WeatherStack

System Requirements, minimum

CPU: Intel or Apple silicon with Rosetta 2
OS: macOS v10.6

Apple silicon based Macs with Rosetta 2 translation is confirmed to run on the latest macOS 26 Tahoe. However, Rosetta 2 lacks permission to access Apple's Location Services. Otherwise, Rosetta 2 works admirably.

Although macOS v10.6 is the minimum, newer systems have additional features or compatibility with weather services. This table shows the availability between weather services and OS version.

OS AW NWS OW T VC WAPI Wb WS
10.6 - - - - - can - -
10.7 - - - - - can - -
10.8 yes - yes - - can - -
10.9 yes - yes - - can - -
10.10 yes yes yes yes can can can yes
10.11 yes yes yes yes can can can yes
10.12+ yes yes yes yes yes yes yes yes

10.6: Apple Location Services available to automatically find your location's coordinates. WAPI can work if you update its SSL certificate trust.

10.7: Asynchronous networking services available.

10.8: Apple Geocoding available to find any location's coordinates.

10.9: Flexible asynchronous networking services available.

10.10: TLS with SNI networking services available. Apple Geocoding requires SNI. VC and Wb can work if you update their SSL certificate trust.

Updating SSL certificate trust

  • Install "ISRG Root X1" from Let's Encrypt.

For a detailed explanation of the issue, please see MacPorts' Problem Wiki.

Geocoding

A weather service's core API accepts location requests (ie, coordinates) and returns weather data nearest to that location. However, people understand locations by description (eg, address, city, postal code) instead of coordinates. The terminology for translating a location's description into coordinates is geocoding. When adding a location to track, the first step is finding its coordinates. On macOS v10.8 or later, Apple offers a generic geocoding service. However, the geocoding service now requires TLS with SNI, available on macOS v10.10 or later.

Since most weather services lack geocoding service, Meteorologist Classic will use Apple's service. A complementary, optional service is Apple Location Services which you can enable to estimate your Mac's coordinates. The weather services which do offer geocoding {AW, OW, WAPI} have specific requirements, described below. Lastly, the parts of an address are prioritized in this order {coordinates, postal code, city}. Therefore, besides coordinates:

AW: Accepts postal code or city; Country Code is optional but helpful.
OW: Accepts postal code or city (optionally accepts US states); Country Code is required. I suggest trying all three methods because each method accesses a different locations database.
WAPI: Accepts postal code (for {UK, US, Canada} only) or city.
Apple: Requirements unknown but uses best effort for anything.
NWS: Supports US territories only. This is actually indirect geocoding via Apple, and the results are only weather stations. Current conditions are reported for the weather station's location. However, forecasts and alerts are based on the address data you provide; coordinates would be most accurate.

Find more info about ISO 3166 Country Codes.

Call Limits (at zero cost)

All weather services have API call limits (per month, day, hour, minute) shared by all Meteorologist Classic users. Exceeding any of those limits will disable that service for all Meteorologist Classic users for the rest of the period (month or day). Furthermore, each weather service counts calls differently; that is, one update request may count as multiple calls. The table below shows each weather service's absolute call limit along with how many calls per request. Although NWS lacks an absolute call limit, its servers may return an error when receiving burst requests. When selecting a weather service, the pull-down menu lists the services in decreasing order of the average daily request allowance.

Call Limit AW NWS OW T VC WAPI Wb WS
Per Month - - 1,000,000 - - 1,000,000 - 250
Per Day 50 - - 500 1,000 - 500 -
Per Hour - - - 25 - - - -
Per Minute - - 60 - - - - -
Per Second - - - 3 - - 5 -
-
Calls/Request 2 3 3 2 1 1 2 1
Counter Reset (3) - (4) (2) (4) (1) (2) (1)
  1. monthly, midnight, UTC
  2. daily, midnight, UTC
  3. daily, midnight, UTC-9
  4. unknown

Intervals

In Preferences:General:Menu Bar, there are two interval options: Cycle and Refresh. If you track more than one location, the menu bar display can cycle through each location at the specified interval; use zero for no cycling. The locations display order is as listed in Preferences:Locations, which can be rearranged by drag and drop.

The refresh interval specifies how often weather data is requested. Most services update their data hourly. Therefore, setting the refresh interval to at least sixty (60) minutes is a practical minimum, and even higher will help reduce the requests and stay within call limits. The absolute minimum refresh interval is the number of locations plus one. The data refresh process for all locations sends one request per minute because all weather services want to avoid burst requests, a potential denial of service attack.

Weather Data

All weather services offer a core set of data such as Temperature, Humidity, Wind, etc. Some services offer quite a bit more; major differences are listed in the table below. To see exactly what is available, use the Location Editor sheet (select a location, click Edit). You can rearrange the weather data display order by drag and drop.

Data AW NWS OW T VC WAPI Wb WS
Forecast Periods(1) 5 14(2) 16 4 15 3 16 0
Alerts(3) - yes - - yes yes yes -
Air Quality - - yes yes - yes - -
  1. In Preferences:General, when selecting Forecast Periods, you are selecting the maximum periods (days) to display, but a weather service may offer less.
  2. NWS uses half-day forecast periods, so the forecast range is actually seven days.
  3. Alerts will display only if present in the report.

Trashing the Preferences file

There are some occasions when the Preferences file must be trashed. For instance, when the internal data structures change (eg, supporting new features), the old Preferences data will be incompatible. But before trashing the Preferences file, first try removing and then adding your locations. This may save you the time of resetting your preference options. If Meteorologist Classic is still operating strangely, follow the steps below.

  1. Quit Meteorologist Classic.
  2. Trash preferences file. </Users/[username]/Library/Preferences/com.heat.meteo-classic.plist>
  3. In the Terminal app, enter this command killall cfprefsd to restart the Preferences service. If you skip this step, macOS may be using its cached preferences.
  4. Start Meteorologist Classic.

Internationalization

Meteorologist Classic has many international users, and I have always appreciated the code's internationalization (i18n) support from the beginning. There are actually two considerations: weather data and app. Most weather services can return weather data (ie, summary) in various languages. For each location you track, you can select the preferred weather data language. Listing supported languages here is a bit too much, but my recommendation is to simply try it.Since v1.8.X, weather service language support was greatly simplified and reset. If you would like to see more language options, post a note in the Discussion forum or send me a message.

The app itself can display its text in any language, but that requires translation help. With the v1.8.X branch, much of the text was revised for clarity, and I had disconnected the localization (l10n) support. Starting with v1.8.7, I have restored l10n support. I will gladly incorporate contributed translations for any language. Look for the Localizable.strings file in the svn repo or contact me for details. Thanks!

[Older FAQ]


Project Members:

Related

Discussion: Aeris Weather maps
Discussion: Meteorologist 3.1.0 crashes on startup on Mavericks
Discussion: DarkSky Lat/Long
Docs/FAQ: Older FAQ