Point-Observation

Point-Observation API
Powered by DTN

Overview

DTN Point Observation API delivers high-quality weather observation data via https://point-observation.weather.mg. The API can be requested for weather stations, or relevant locations / cities.

Data sources used for the Point Observation API

A dense network of reliable weather condition measurements is crucial for the accurate reporting and forecasting of weather on a (hyper)local scale. This is especially important for short-term weather forecasts (the next few hours) and alerting when adverse weather is occurring or approaching. DTN therefore invests significantly to ensure a dense network of weather condition measurements is available. The available networks include:

Value proposition of the Point Observation API

The value proposition of the Point Observation API is as listed in the following table, which emphasizes where DTN adds value to core data.

ParameterValue added
Coverage
  • Provides global coverage of observations with the densest network, including 20,000 stations.
  • For locations, the API provides observations as reported by the most representative station.
Spatial resolution
  • Uses multiple station sources.
Completeness
Frequency
  • Provides higher-frequency updates for specific locations.
Unique
  • Delivers data from DTN own weather stations in Germany, Switzerland, Liechtenstein, and Luxemburg.
  • Uses gap filling to ensure continuous availability of weather data. For details, see Fill gaps in observation data.
Reliability
  • Delivers quality-controlled data.
  • Relies on its own Timezone database to ensure the right time zones are used, enabling both local time and UTC usage.

Request URL Builder

Parameters

The list of standard weather parameters for the point Observation API is included below while the potential parameters available are listed here.


Parameter listingBasicStandardIndustryGap filling industry package
Temperature parameters    
airTemperatureInCelsius3-h1-h1-hY
dewPointTemperatureInCelsius3-h1-h1-hY
relativeHumidityInPercent3-h1-h1-hY
airTemperatureNearGroundInCelsiusn/a1-h1-hn/a
maxAirTemperatureInCelsius12-h12-h12-hn/a
minAirTemperatureInCelsius12-h12-h12-hn/a
feelsLikeTemperatureInCelsiusn/a1-h1-hn/a
Wind parameters    
windSpeedInMeterPerSecond3-h1-h1-hY
windDirectionInDegree3-h1-h1-hY
maxWindGustInMeterPerSecondn/a1-h1-hn/a
Precipitation and weather code parameters    
weathercodeTraditional3-h1-h1-hn/a
pastWeatherCode6-h6-h6-hn/a
Weathercode/Icon-Mapping 12-h   n/a
freshSnowfallInCentimetern/a24-h24-hn/a
snowDepthInCentimetern/a12-h12-hn/a
precipitationAmountInMillimeter PTxH12-h1-h1-hn/a
Cloud, radiation and sunshine parameters    
sunshineDurationInMinutes PTxH24-h24-h24-hn/a
totalCloudCoverInOctan/a1-h1-hY
effectiveCloudCoverInOcta PT0S3-h1-h1-hY
globalRadiationInJoulePerSquareCentimetern/a1-h1-hn/a
averageGlobalRadiationInWattPerSquareMetern/a1-h1-hn/a
Daily sum global radiationn/a24-h24-hn/a
evaporationPenmanInMillimeter 24-h24-hn/a
Other parameters    
visibilityInMetern/a1-h1-hn/a
airPressureAtSeaLevelInHectoPascaln/a1-h1-hY

Station Metadata

When requesting for observation using locatedAt, adding "meteoGroupStationId" in the "fields" parameter will include a stationId information together with observation data in the response

Sample Request:

        https://point-observation.weather.mg/observation/hourly?fields=airTemperatureInCelsius,meteoGroupStationId&locatedAt=6.669,53.58&observedPeriod=PT0S
    

Sample Response:

      {
        "observations": [
            {
                "locatedAt": [
                    6.669,
                    53.58
                ],
                "meteoGroupStationId": "6510110",
                "observedFrom": "2021-04-07T01:00:00+02:00",
                "observedUntil": "2021-04-07T01:00:00+02:00",
                "observedPeriod": "PT0S",
                "airTemperatureInCelsius": 2.6
            },
            {
                "locatedAt": [
                    6.669,
                    53.58
                ],
                "meteoGroupStationId": "6510110",
                "observedFrom": "2021-04-07T02:00:00+02:00",
                "observedUntil": "2021-04-07T02:00:00+02:00",
                "observedPeriod": "PT0S",
                "airTemperatureInCelsius": 2.9
            },
            {
                "locatedAt": [
                    6.669,
                    53.58
                ],
                "meteoGroupStationId": "6510110",
                "observedFrom": "2021-04-07T03:00:00+02:00",
                "observedUntil": "2021-04-07T03:00:00+02:00",
                "observedPeriod": "PT0S",
                "airTemperatureInCelsius": 2.8
            }
        ]
    }
    

Formatting

A sample request using the Point-Observation API looks like this:

https://point-observation.weather.mg/observation/hourly?fields=airTemperatureInCelsius&locatedAt=13.2,52.4&observedPeriod=PT0S

The above request will return current air temperature, in degrees Celsius, for the city of Berlin, Germany, starting 3 hours before the time the request was received. The returned data will be formatted in JSON, and will look like this:

    {
    "observations": [
        {
            "locatedAt": [
                13.2,
                52.4
            ],
            "observedFrom": "2019-04-24T13:00:00+02:00",
            "observedUntil": "2019-04-24T13:00:00+02:00",
            "observedPeriod": "PT0S",
            "airTemperatureInCelsius": 20.4
        },
        {
            "locatedAt": [
                13.2,
                52.4
            ],
            "observedFrom": "2019-04-24T14:00:00+02:00",
            "observedUntil": "2019-04-24T14:00:00+02:00",
            "observedPeriod": "PT0S",
            "airTemperatureInCelsius": 21.4
        },
        {
            "locatedAt": [
                13.2,
                52.4
            ],
            "observedFrom": "2019-04-24T15:00:00+02:00",
            "observedUntil": "2019-04-24T15:00:00+02:00",
            "observedPeriod": "PT0S",
            "airTemperatureInCelsius": 22.7
        }
    ]
}
    

Nitty-Gritty

For more detailed information on this API, check us out on Bitbucket.