A number of years ago we built a wrapper API for radar data provided by the Australian Bureau of Meteorology. Supplementing terabytes of meteorological data sourced from around the world, our suite of tools saw significant adoption by certain clients because of the ease of which compelling weather information could be created and shared. The creation of weather slides into a GIF format was something we were doing around 7 years before the Bureau decided to do something similar.
We've recently deprecated the former FLIGHT module and API entirely, and the new API provides backwards-compatibility while making other features more accessible, This article will describe how to use the new system.
The former system was 'open' in nature, in that anybody could build an animated radar gif for personal use with a URL call to an endpoint on our flight.org website. This led to a measure of abuse and usage that was unexpected, and with news agencies using the system in a manner that was contrary to the BOM's copyright notice, it had to stop. As a result of the failed open experiment, an image will now only be returned by way of a time-limited key assigned to each request.
The API isn't entirely relevant for brokers, but it may be useful when weather events create a need. We obviously work with industries outside of the finance industry, and aviation is one sector where we have considerable expertise, and weather is obviously a core consideration in that industry.
Note: This is a proof-of-concept product only. The examples on this page may return errors, and no data should be used for anything other than educational or personal user. As introduced shortly, if there's value in a service we'll make the necessary arrangements and scale the system accordingly.
Weather Radar Result
Radar renderings for both video and animated GIFs may br returned from the BM server, or copied locally to a cache directory on your own website. The former method will cache video based on time resolved by the system, while the latter method will cache the video/gif and resulting HTML for a defined period as defined by you. Any request made to the BM server will include a time-limited key as a URL parameter - this prevents unauthorised access on our end, and it prevents hot-linking on your end.
For our first example, we'll render the Terry Hills 256km radar. The shortcode, [bm_bom l="IDR712"]
returns the following:
Pro Tip: Consider returning the current metar for the defined location. For example, the current metar for Sydney is as follows: YSSY 210230Z 09011KT CAVOK 28/15 Q1006
. You might also just show the temperature, pressure, dewpoint, or other data (T28°, 1006HPA, DP15°). We've updated the Metar functionality with changes introduced in a scheduled article.
Using timestamps or language accepted via PHP's strtotime() function, we can return an animation for the last three hours with the shortcode of [bm_bom l="IDR712" start="- 3 hours" end="now"]
. The default animation speed of 70 centiseconds (or 0.7 of a second) may be lowered to speed up the animation (in our case, 0.4 seconds, or 40 centiseconds), and for the sake of the example we'll also increase the last slide 'wait' time from 230 centiseconds (2.3 seconds) to 4 seconds. Shortcode of [bm_bom l="IDR712" start="- 3 hours" end="now" delay="40" delayed="400"]
returns the following:
Animated GIFs are particularly clumsy when the filesize is large (for example, when rendering an entire day of paints), and the GIF format is largely unsuitable for social media (and not supported on platforms such as LinkedIn). For that reason, you may optionally create any animation as a video by way of the video="1" attribute. For example, we'll return a video with [bm_bom l="IDR714" start="- 3 hours" end="now" delay="40" delayed="400" video="1"]
(note that we're using the IDR714 64km scale plot). The result:
Video: In the example example, we're referencing the video on BM's server. To copy locally, you should use the shortcode of copy="1"
. When stored locally, the video file is copied into a weather directory in your cache directory. Old video (and GIF) data may be removed periodically from Yabber if required..
Doppler Radar Result
In the radar examples above we excluded the type="radar"
attribute because it's the default output. However, in order to return a Doppler radar paint we'll have to explicitly define it as an shortcode attribute. To return a Sydney Doppler 256km paint, we'll use identical shortcode to the radar example, with the exception that we'll include the type attribute. Shortcode of [bm_bom l="IDR712" type="doppler"]
returns the following:
What is Doppler Radar?: From the BOM, "Around 1842 the Austrian physicist Christian Doppler had discovered what is now called the Doppler effect. This is the theory that sound waves will change in pitch when there is a shift in the frequency. An example of this would be an ambulance siren, which has a higher pitch when it is approaching, but a lower pitch if it is travelling away. With Doppler's theory you can calculate how fast the ambulance is moving based on the shift in the siren's frequency. This theory is used by Doppler weather radar to determine the speed of precipitation in the atmosphere, toward or away from the radar. Since precipitation as it falls generally moves with the wind, you can determine the wind velocity with Doppler technology".
A video Doppler video radar paint may be returned in the manned described for the radar paint.
Shortcode Attributes
When an image is requested via the API, a URL structure is created based on the shortcode attributes below. When a radar GIF or video is returned, we'll include typography
, location
, and range
overlays by default. You may optionally include catchments
, rail
, roads
, waterways
, and districts
overlays.
Defaults
typography
, location
, and range
overlays. To disable any of these values, use range="0"
(all 1, or true, by default).Options
catchments
, rail
, roads
, waterways
, and districts
.. To enable any of these overlays, use roads="1"
(example below).Required Attributes
type
(radar
, rainfall
, or doppler
), and l
(a lower-case 'L', with the value set to the IDR/IDE station code).GIF and Video Options
start
and end
attributes - both accepting a UNIX timestamp (preferred) or an accepted strtotime
format (such as "- 1 hour", "- 1 day", and so on). The delay
and delayed
attributes determine the animation speed; delay
is the interval between each slide rotation, and delayed
is the time applied to the last slide before the GIF repeats itself. Timestamps are always preferred.Copy
Other attributes apply but they're moderately complicated and relate mainly to video rendering. Generally speaking, the default output is acceptable in the majority of cases.
An example of a GIF for a 256km Melbourne radar plot with most 'Options' enabled is returned as follows: [bm_bom l="IDR022" type="radar" catchments="1" rail="1" roads="1" waterways="1" districts="1"]
. Note that the crowded nature of resulting panel may be distracting - only use those features that contribute towards an understanding of the paint.
Example (All Options)
Melbourne Radar: The optional overlays should generally be avoided unless required. The radar is intended to draw attention to weather threats, and obfuscating the paint with bold overlays such as topography often diminishes the value of the GIF.
The video file size is generally amount 50% of the GIF. The size of the video increases considerably when upscaling is applied.
BM BOM Radar API
BOM Radar data may be accessed via a standard RESTful API. Documenting the API is outside the scope of this article, and it's of use to very few people, so we should be contacted for more information on the suite of BOM endpoints.
All requests should be made in the following format: radar/111/00000/IDR711.{json|mp4}?apikey=12345
on the api.beliefmedia.com/weather
endpoint. The first string of three characters (111) relates to the default options, and the second string (00000) determines what overlays are applied to the result. The start, end, video, delay, delayed, upscale, rh
(unique key), and other parameters are included in the query string.
1 - topography
1 - location
1 - range0 - catchments
0 - rail
0 - roads
0 - waterways
0 - districts
The API key is generated by way of your pkey
, domain
, and timestamp
, and it has an expiry of around 15 seconds. The function to create the mutating key is available in Yabber.
The standard JSON response will always include the GIF url, the video URL (if requested), and all slides used in the manufacture of the panel.
To access a video directly, a call is made to radar/111/00000/IDR711.mp4?apikey=123
with the same URL parameters.
The API can be queried directly to return various data dating back at least 10+ years.
Satellite Video Animations
The method of creating Satellite animations is a little different to that applied to radar paints because the overhead and time required to create a satellite rendering is higher, and the output for satellite imagery is always video. All requests should be made to the satellite.json
or satellite.mp4
endpoint with start, end, and delay parameters passed in the URL. Once a request is made, we'll continue to update the video so any request always retrieves an up-to-date rendering.
A large number of BOM IDE (Satellite) products are deprecated by the BOM and marked as 'Do Not Use', but since we're using the system for the purpose of evaluating its use as a client tool, we retrieve that data for the purpose of gaining an understanding of how the system is used.
The BOM returns images in various formats and sizes, with some of the .tiff
images suitable for seriously high-quality renderings. However, to ensure consistency, we rationalise every satellite image of all types by converting to a .png
file and scaling to 1280 pixels.
Available Satellite Types
As best we can tell, the following is a list of satellite products the BOM makes available. It's the IDE code that is referenced in the API call to initialise creation and activate continued maintenance of the applicable product video. Those products that have reached end of life are marked as 'Deprecated' and shouldn't be used outside of a research environment.
Note: Images returned via the links below are video placeholders, so they're used just to give you an idea of how the satellite return will present when rendered.
IDE00006 - GMS VIS 12km (IDE00006), Deprecated
IDE00105 - GMS IR (IDE00105), Deprecated
IDE00106 - GMS VIS (IDE00106), Deprecated
IDE00123 - GMS IR zehr AUS WEST (IDE00123), Deprecated
IDE00124 - GMS IR enh. AUS WEST (IDE00124), Deprecated
IDE00125 - GMS IR AUS WEST (IDE00125), Deprecated
IDE00126 - GMS VIS AUS WEST (IDE00126), Deprecated
IDE00133 - GMS IR zehr AUS (IDE00133), Deprecated
IDE00134 - GMS IR enh. AUS (IDE00134), Deprecated
IDE00135 - GMS IR w. Blue Marble AUS (IDE00135)
IDE00135-radar - GMS IR w. Blue Marble AUS (IDE00135-radar)
IDE00143 - GMS IR zehr AUS EAST (IDE00143), Deprecated
IDE00144 - GMS IR enh. AUS EAST (IDE00144), Deprecated
IDE00145 - GMS IR AUS EAST (IDE00145), Deprecated
IDE00146 - GMS VIS AUS EAST (IDE00146), Deprecated
IDE00153 - GMS IR zehr FD (IDE00153), Deprecated
IDE00154 - GMS IR enh. FD (IDE00154), Deprecated
IDE00155 - GMS IR FD (IDE00155), Deprecated
IDE00156 - GMS VIS FD (IDE00156), Deprecated
IDE00401 - AHI IR (Ch13) greyscale 2km AUS equirect. IMG (IDE00401)
IDE00402 - AHI VIS (Ch3) greyscale 2km AUS equirect. IMG (IDE00402)
IDE00403 - AHI IR (Ch13) Zehr 2km AUS equirect. IMG (IDE00403)
IDE00404 - AHI IR (Ch13) 'rainbow' 2km AUS equirect. IMG (IDE00404)
IDE00405 - AHI IR (Ch13) Blue Marble 2km AUS equirect. IMG (IDE00405)
IDE00406 - AHI VIS (true colour) / IR (Ch13 greyscale) composite 2km AUS equirect. IMG (IDE00406)
IDE00407 - AHI WV (Ch8) 2km AUS equirect. IMG (IDE00407)
IDE00409 - AHI VIS (Ch3) greyscale 0.5km AUS equirect. IMG (IDE00409)
IDE00411 - AHI IR (Ch13) greyscale 2km FD GEOS IMG (IDE00411)
IDE00412 - AHI VIS (Ch3) greyscale 4km FD GEOS IMG (IDE00412)
IDE00416 - AHI VIS (true colour) / IR (Ch13 greyscale) composite 4km AUS GEOS IMG (IDE00416)
IDE00420 - AHI cloud cover only 2km FD GEOS GIS
IDE00421 - AHI IR (Ch13) greyscale 2km FD GEOS GIS
IDE00422 - AHI VIS (Ch3) greyscale 2km FD GEOS GIS
IDE00423 - AHI IR (Ch13) Zehr 2km FD GEOS GIS
IDE00425 - AHI VIS (true colour) / IR (Ch13 greyscale) composite 1km FD GEOS GIS
IDE00426 - AHI VIS (true colour) / IR (Ch13 greyscale) composite 2km FD GEOS GIS
IDE00427 - AHI WV (Ch8) 2km FD GEOS GIS
IDE00430 - AHI cloud cover only 2km AUS equirect. GIS
IDE00431 - AHI IR (Ch13) greyscale 2km AUS equirect. GIS
IDE00432 - AHI VIS (Ch3) greyscale 2km AUS equirect. GIS
IDE00433 - AHI IR (Ch13) Zehr 2km AUS equirect. GIS
IDE00435 - AHI VIS (true colour) / IR (Ch13 greyscale) composite 1km AUS equirect. GIS
IDE00436 - AHI VIS (true colour) / IR (Ch13 greyscale) composite 2km AUS equirect. GIS
IDE00437 - AHI WV (Ch8) 2km AUS equirect. GIS
When any rendering is requested for the first time, it may be a short time before the video is returned (this delay is associated with rendering video in the same way YouTube will render a video once uploaded). The video file is always hosted on the BM server.
Satellite Examples
Satellite video requests are made to the bom/satellite/[IDE_IDENIIFIER].{json|mp4}
endpoints in a manner similar to the radar returns, and the shortcode is virtually identical. For example, the IDE00135 satellite imagery is retuned with the shortcode of [bm_bom_satellite ide="IDE00135" start="- 24 hours" end="now"]
with a result as follows:
A request to the IDE00416 satellite animation is retuned with the shortcode of [bm_bom_satellite ide="IDE00416" start="- 24 hours" end="now"]
. The result:
Some satellite products are intended as an overlay, and we haven't included that combined data simply because there isn't a need (just yet). Others don't show a timestamp, and it's expected that if we develop this proof into a product we'll include our own Zulu timestamp on each slide.
Elementor Widget
The examples rendered to this page were accomplished with standard WordPress shortcode. For many, shortcode introduces a complexity that they'd rather avoid, so the Elementor Widget provides an easy method of rendering any chart type to a page.
Pictured: BM's Elementor Weather is expected to include a range of meteorological tools - not just the BOM proofs. After you have selected the applicable result, the options will return based on your selection. All radar and satellite options are returned in a select menu, so there's no need to reference any of our location tables. Once you have created your rendering, clicks Save. Simple.
The Elementor block also includes a facility to return Metars (and TAFs), and within days we'll incorporate various weather graphs and day-to-day forecasting tools. The only data we're interested in returning is that which is relevant to Australia.
Creating Charts in Yabber
Charts may be created within the resources section in Yabber. Select the applicable attributes, click Save, and the image is saved. Keep in mind that this method returns a fixed image that won't change; for cases where you want to reference an always up-to-date chart, you should reference a chart programmatically via the API's .gif
of video
endpoint supported by the mutating API key.
Once a gif or video is created in Yabber, it may be sent to social or downloaded.
Considerations
In the past we had a few Twitter accounts set up to create an ongoing archive of weather, but Twitter suspended those accounts when another account shared by our IP address posted a link to a Washington Post article - apparently the value provided to those that were keeping an eye on cyclones and other significant weather events was less critical than censoring occurrences of a story linking an infested laptop owned to the son of a high-ranking US official. We've since ceased most of our Twitter activity, and we generally no longer encourage advertising on the platform due to a clear instability in the reliability of their policies. We may reactivate those accounts for the purpose of a social demonstration, but it's unlikely in the short-term. For the purpose of our demo social accounts, we've reactivated an old page that rendered Sydney ATIS reports whenever there was a change to instead show radar videos. The Sydney Weather Radar page shows how simple automation can create a useful resource, although you could quite easily render daily videos and upload to YouTube or elsewhere.
When a video is returned to a page we don't preload the content, and we apply a thumbnail image as a placeholder. The placeholder may be modified with both the Elementor plugin and shortcode. Once played, the video will loop by default.
Copyright
In terms of the data the BOM makes available to 'guest' users, they state the following: "All products available via the anonymous FTP service are subject to the default terms of the Bureau's copyright notice: you may download, use and copy that material for personal use, or use within your organisation but you may not supply that material to any other person or use it for any commercial purpose. Users intending to publish Bureau data should do so as Registered Users.".
At this stage, the data should be used for personal use only. If there's interest in pursuing the product we'll upgrade the system for the commercial environment and make the necessary arrangements with the BOM. What we've built is a demonstration in usable tech rather than a practical tool. That all said, there is an expectation that we'll do something with the service, so those that use it for their own personal use should report errors, bugs, and areas for additional functionality.
Conclusion
The radar tool clearly isn't designed for the finance industry specifically, but when significant weather events start to impact on property and lifestyle, it becomes a valuable short-term resource. We have an expertise in the aviation and publishing industries, and it's here where the tool will be adopted more widely.
The weather module will be developed over coming weeks to include other forecasting and weather tools, so ensure you keep an eye on the revision log for changes, or monitor our social media accounts.
The revised tool includes new features, so if you encounter any bugs, issues, or require new functionality, please let us know.