Environmental Data
Environmental Data comprises of 15 datasets categorised into 2 data groups, namely (a) Weather and (b) Ambient Air. It is provided by National Environment Agency (NEA) as the designated agency for Single Source Of Truth (SSOT).
You can download a sample dataset from the Dataset preview section, available on DataHive. Detailed metadata including the descriptions for the data fields can be found here.
Weather
Under the Weather Data Group, there are 13 datasets available:
| Weather |
|---|
| 1) Rainfall |
| 2) Air Temperature |
| 3) Relative Humidity |
| 4) Surface Wind Speed |
| 5) Surface Wind Direction |
| 6) Wind Gust Speed |
| 7) Wind Gust Direction |
| 8) Ultraviolet Index |
| 9) 24hr Forecast |
| 10) 4-day Forecast |
| 11) 2hr Nowcast |
| 12) Earthquake Alert |
| 13) Heavy Rain Warning |
Rainfall, temperature, relative humidity and wind readings are taken from a network of automatic weather stations located across the island and are updated in near real-time. Ultraviolet Index readings are taken at hourly intervals from 7am to 7pm. All weather data is updated on Trusted Center for Sensor Data (TCS) with a 15min latency.
To learn more about the various types of weather instrumentation and measurements , visit weather.gov.sg.
Meteorological Service Singapore (MSS) provides the following local weather forecasts at different intervals:
- 2-hour forecast for town centres
- 24-hour forecast for the north, south, east, west and central Singapore
- Daily 4 day outlook for Singapore in general
While alerts and warnings are provided on an adhoc basis:
- Earthquake Alert
- Heavy Rain Warning
Detailed explanations of the weather forecast terminology can be found at weather.gov.sg.
Ambient Air
Under Ambient Air Data Group, there are 2 datasets available:
| Ambient Air |
|---|
| 1) Overall and Regional Pollutant Standards Index (PSI) |
| 2) PM 2.5 |
Ambient Air readings for different regions in Singapore are provided on hourly basis.
For detailed explanations on pollutant standards, visit haze.gov.sg.
Verified Data Files (VDF)
Due to the collection of weather data from remote sensor stations, there may be instances of missing readings. MSS generates a verified data file (VDF) on a daily basis with a 7-day lag for upload onto TCS. The VDF will then be merged into the respective near real-time weather dataset. VDF is available for the following datasets:
- Rainfall
- Air Temperature
- Relative Humidity
- Surface Wind Speed
- Surface Wind Direction
- Wind Gust Speed
- Wind Gust Direction
Datasets Update Frequency
| Dataset | Update Frequency |
|---|---|
| Rainfall | Every 5 min (For near real-time) |
| Air Temperature | Every 5 min (For near real-time) |
| Relative Humidity | Every 5 min (For near real-time) |
| Surface Wind Speed | Every 5 min (For near real-time) |
| Surface Wind Direction | Every 5 min (For near real-time) |
| Wind Gust Direction | Every 5 min (For near real-time) |
| Wind Gust Speed | Every 5 min (For near real-time) |
| Overall and regional PSI (24hr PSI) | Hourly |
| Hourly PM2.5 | Hourly |
| 24hr Forecast & Nowcast | Ad-hoc |
| 4-day forecast | Ad-hoc |
| 2-hr nowcast | Ad-hoc |
| Ultraviolet Index | Every hour (7am to 7pm) |
| Regional Earthquake Alert | Ad-hoc |
| Heavy Rain Warning | Ad-hoc |
Usage Guideline for Forecast Data
Forecast data are not sensor-measured readings. It is derived based on meteorologists’ continual assessment and expertise in analysing information using specialised meteorological systems such as weather radars, satellites, observation networks, as well as from numerical weather prediction models. Hence, forecast data is subjected to changes, to reflect timely weather information.
FAQ
How near real-time are the weather data updated on TCS?
- TCS receives weather data from NEA with a 15 mins time lag.
The RAIN_AREA_IMAGE_METADATA and SATELLITE_IMAGE_METADATA contain alphanumeric characters. How can I retrieve the images?
- To retrieve the images, you will need to decode the base64 encoded characters. See sample python code
import base64
encoded_string = "SGVsbG8gV29ybGQ="
decoded_bytes = base64.b64decode(encoded_string)
with open("decoded_image.jpg", "wb") as f:
f.write(decoded_bytes)
How do I interpret the RECORD_TIMESTAMP number?
- The timestamp is encoded in 14 characters number with the format YYYYMMDDhhmmss. For example, 20240105191500 represents 5 Jan 2024, 7:15:00 pm.
What are the meanings of the 2 letter shortcodes used in the forecast datasets?
| Shortcode | Meaning |
|---|---|
| FA | Fair (day, with sun) |
| FN | Fair (night, with moon) |
| FW | Fair and Warm |
| PC or PD | Partly Cloudy (day, with sun) |
| PN | Partly Cloudy (night, with moon) |
| CL | Cloudy |
| HZ | Hazy |
| LH | Slightly Hazy |
| WD | Windy |
| FG or BR | Fog or Mist |
| LR | Light Rain |
| MR or RA | Moderate Rain |
| HR | Heavy Rain |
| PS | Passing Showers |
| LS | Light Showers |
| SH | Showers |
| HS | Heavy Showers |
| TL or TS | Thundery Showers |
| HT | Heavy Thundery Showers |
| HG | Heavy Thundery Showers with Gusty Winds |