BOM Weather Data

Overview

This dataset is built from Australian Bureau of Meteorology's (BOM) automated weather station historical datasets and current observations. Omnata combines, cleans and normalizes these datasets for consumption via Snowflake.

The historical data looks backwards from 1st of August 2025 to the beginning of BOM records. However, stations and available measures have changed over time, so some columns may return null where those measurements or stations are not available.

Dataset Schema

Core Observation Fields

Field
Type
Description
Units

station_id

String

Unique BOM station identifier

-

station_name

String

Human-readable station name

-

observation_time

Timestamp

Date and time of observation (local time)

ISO 8601

observation_time_utc

Timestamp

Date and time of observation (UTC)

ISO 8601

latitude

Float

Station latitude

Decimal degrees

longitude

Float

Station longitude

Decimal degrees

elevation

Integer

Station elevation above sea level

Meters

Weather Measurements

Field
Type
Description
Units

air_temperature

Float

Air temperature

°C

apparent_temperature

Float

Apparent temperature (feels like)

°C

dew_point

Float

Dew point temperature

°C

relative_humidity

Integer

Relative humidity

%

wind_direction

String

Wind direction (compass point)

Cardinal/Ordinal

wind_direction_degrees

Integer

Wind direction

Degrees (0-360)

wind_speed_kmh

Float

Wind speed

km/h

wind_gust_kmh

Float

Wind gust speed

km/h

pressure_msl

Float

Mean sea level pressure

hPa

pressure_qnh

Float

QNH pressure

hPa

rainfall_since_9am

Float

Rainfall since 9am local time

mm

visibility

Integer

Visibility

km

cloud_cover

String

Cloud cover description

Text

weather_description

String

Current weather conditions

Text

Data Quality Indicators

Field
Type
Description

data_quality

String

Quality assessment (Good/Fair/Poor)

automatic_station

Boolean

Whether station is automated (AWS)

last_updated

Timestamp

When record was last updated

Data Availability

  • Spatial Coverage: ~700+ weather stations across Australia

  • Update Frequency: Daily

  • Granularity: 30mins

Usage Examples

Basic Query

-- Get latest observations for Sydney area stations
SELECT station_name, observation_time, air_temperature, 
       wind_speed_kmh, rainfall_since_9am
FROM OBSERVATIONS
WHERE station_name LIKE '%SYDNEY%'
  AND observation_time >= CURRENT_TIMESTAMP - INTERVAL '24 HOURS'
ORDER BY observation_time DESC;

Temperature Analysis

-- Find stations with extreme temperatures in last 24 hours
SELECT station_name, state, 
       MAX(air_temperature) as max_temp,
       MIN(air_temperature) as min_temp,
       AVG(air_temperature) as avg_temp
FROM OBSERVATIONS 
WHERE observation_time >= CURRENT_TIMESTAMP - INTERVAL '24 HOURS'
  AND air_temperature IS NOT NULL
GROUP BY station_name, state
HAVING MAX(air_temperature) > 35 OR MIN(air_temperature) < 5
ORDER BY max_temp DESC;

Data Quality Notes

  1. Missing Values: Some observations may be NULL due to equipment issues or maintenance

  2. Manual Stations: Update less frequently than automated stations

  3. Quality Flags: Use data_quality field to filter for reliable observations

  4. Timezone: All times are provided in both local and UTC formats

Compliance and Attribution

This dataset is derived from the Australian Bureau of Meteorology's publicly available weather observations. Usage complies with BOM's data licensing terms. Original data remains the property of the Commonwealth of Australia, Bureau of Meteorology.

Last updated