Skip to content

Commit 39acf75

Browse files
committed
Add Exeter and Portsmouth Met Office demo points
1 parent 9b19dcf commit 39acf75

5 files changed

Lines changed: 119 additions & 2 deletions

File tree

Lines changed: 81 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,81 @@
1+
# Met Office Exeter and Portsmouth Demo Site Check
2+
3+
Date: 2026-05-26
4+
5+
## Purpose
6+
7+
Determine whether Met Office Weather DataHub Land Observations has useful live locations in or near Exeter and Portsmouth for the CSAPI demo publisher set.
8+
9+
## Method
10+
11+
Used the existing Oracle host-local Met Office Land Observations key through `/etc/os4csapi/publisher-secrets.env` and its configured key file. The key was not printed, changed, rotated, or committed.
12+
13+
Queried the access-gated Land Observations `nearest` endpoint for:
14+
15+
- Exeter city
16+
- Exeter Airport
17+
- Portsmouth city
18+
- Lee-on-Solent
19+
- Southampton Airport
20+
21+
Then queried each returned geohash observation endpoint to confirm data availability.
22+
23+
## Findings
24+
25+
### Exeter
26+
27+
Recommended demo location: `Exeter Airport Area`
28+
29+
- Query points: Exeter city and Exeter Airport
30+
- Returned Met Office geohash: `gcj8ds`
31+
- Decoded geohash center: approximately `50.73761, -3.40027`
32+
- Distance from Exeter city query: about `9.6 km`
33+
- Distance from Exeter Airport query: about `1.0 km`
34+
- Observation endpoint returned `48` records
35+
- Sample fields: `datetime`, `humidity`, `mslp`, `pressure_tendency`, `temperature`, `visibility`, `weather_code`, `wind_direction`, `wind_gust`, `wind_speed`
36+
37+
Assessment: strong demo candidate. The resolved point is very close to Exeter Airport and gives the demo a southwest England weather reference.
38+
39+
### Portsmouth / East Solent
40+
41+
Recommended demo location: `Portsmouth / Thorney Island Area`
42+
43+
- Query points: Portsmouth city and Lee-on-Solent
44+
- Returned Met Office geohash: `gcp34f`
45+
- Decoded geohash center: approximately `50.81451, -0.92834`
46+
- Distance from Portsmouth city query: about `11.2 km`
47+
- Distance from Lee-on-Solent query: about `19.6 km`
48+
- Observation endpoint returned `48` records
49+
- Sample fields: `datetime`, `humidity`, `mslp`, `pressure_tendency`, `temperature`, `visibility`, `weather_code`, `wind_direction`, `wind_gust`, `wind_speed`
50+
51+
Assessment: useful south coast candidate, but it should not be labeled as a Portsmouth city-centre station. Use Portsmouth-adjacent or Thorney Island / east Solent language.
52+
53+
### Southampton Airport
54+
55+
- Query point: Southampton Airport
56+
- Returned Met Office geohash: `gcnfur`
57+
- Decoded geohash center: approximately `51.14960, -1.56555`
58+
- Distance from Southampton Airport query: about `26.5 km`
59+
- Observation endpoint returned `48` records
60+
61+
Assessment: valid data, but less compelling for this request than Exeter Airport and Portsmouth / Thorney Island.
62+
63+
## Changes Made
64+
65+
Added both recommended locations to:
66+
67+
- `publishers/met_office_datahub/stations.json`
68+
- `publishers/met_office_global_spot/forecast_points.json`
69+
70+
For Land Observations, the resolved geohashes are stored in config to avoid repeated nearest lookups:
71+
72+
- `exeter-airport-area` -> `gcj8ds`
73+
- `portsmouth-thorney-island-area` -> `gcp34f`
74+
75+
For Global Spot, the same curated point labels and coordinates are added as virtual forecast points so the future forecast card work can align observed and forecast demos without implying the forecast point is a physical sensor.
76+
77+
## Operational Notes
78+
79+
Adding two Land Observations locations increases the default Met Office Land Observations cycle from 3 to 5 locations. With geohashes cached in config, the publisher should make one observation endpoint request per location per cycle, still far below the documented 360 calls/day free-plan limit at hourly cadence.
80+
81+
The Global Spot default set also increases from 3 to 5 locations. At one hourly forecast API request per location per hour, the default operational cadence is about 120 calls/day, still below the documented 360 calls/day free-plan allowance.

docs/research/new-publisher-source-planning/Met_Office_Global_Spot_Forecast_Publisher_Status_2026-05-26.md

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -56,6 +56,8 @@ This is intentionally separate from `publishers/met_office_datahub`, which publi
5656
Forecast points:
5757

5858
- London Heathrow Area
59+
- Exeter Airport Area
60+
- Portsmouth / Thorney Island Area
5961
- Stornoway Coastal Area
6062
- Cairngorm Upland Area
6163

@@ -68,7 +70,7 @@ Forecast parameters:
6870
- Forecast Precipitation Probability
6971
- Forecast Weather Code
7072

71-
With three locations at one request per location per hour, the default operational cadence is about 72 requests/day, comfortably below the documented 360 calls/day free-plan allowance.
73+
With five locations at one request per location per hour, the default operational cadence is about 120 requests/day, comfortably below the documented 360 calls/day free-plan allowance.
7274

7375
## Validation Completed
7476

publishers/met_office_datahub/stations.json

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -92,6 +92,24 @@
9292
"geohash": null,
9393
"selectionReason": "Urban and airport-adjacent weather context that complements UK-AIR Camden and aviation demo layers."
9494
},
95+
{
96+
"id": "exeter-airport-area",
97+
"name": "Exeter Airport Area",
98+
"description": "Curated Met Office Land Observations lookup point for the Exeter Airport area.",
99+
"lat": 50.7344,
100+
"lon": -3.4139,
101+
"geohash": "gcj8ds",
102+
"selectionReason": "Live nearest lookup resolved a Met Office observation geohash about 1 km from Exeter Airport, adding a strong southwest England weather reference for demos."
103+
},
104+
{
105+
"id": "portsmouth-thorney-island-area",
106+
"name": "Portsmouth / Thorney Island Area",
107+
"description": "Curated Met Office Land Observations lookup point for the Portsmouth-adjacent east Solent / Thorney Island area.",
108+
"lat": 50.8198,
109+
"lon": -1.0880,
110+
"geohash": "gcp34f",
111+
"selectionReason": "Live nearest lookup from Portsmouth resolved an observation geohash east of the city, about 11 km from Portsmouth, providing a south coast weather reference with honest Portsmouth-adjacent labeling."
112+
},
95113
{
96114
"id": "stornoway-coastal-area",
97115
"name": "Stornoway Coastal Area",

publishers/met_office_global_spot/README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -86,6 +86,6 @@ python -m publishers.met_office_global_spot.met_office_global_spot_publisher --o
8686

8787
## Implementation Notes
8888

89-
The initial curated points mirror the Met Office Land Observations demo geography: London Heathrow, Stornoway, and Cairngorm. At one hourly API request per point per cycle, a one-hour cadence uses 72 calls/day, comfortably below the 360 calls/day free-plan allowance.
89+
The initial curated points mirror the Met Office Land Observations demo geography: London Heathrow, Exeter Airport, Portsmouth / Thorney Island, Stornoway, and Cairngorm. At one hourly API request per point per cycle, a one-hour cadence uses 120 calls/day, comfortably below the 360 calls/day free-plan allowance.
9090

9191
The runtime client has a configurable endpoint path because public DataHub pages confirm the Site-Specific Forecast / Global Spot product and `/sitespecific/v0` context, but the exact hourly endpoint path should be validated with the live subscribed API before production service installation.

publishers/met_office_global_spot/forecast_points.json

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -65,6 +65,22 @@
6565
"lon": -0.4543,
6666
"selectionReason": "Urban and airport-adjacent forecast context that complements the London Met Office land observation location and UK-AIR Camden."
6767
},
68+
{
69+
"id": "exeter-airport-area",
70+
"name": "Exeter Airport Area",
71+
"description": "Curated Met Office Global Spot forecast point for the Exeter Airport area.",
72+
"lat": 50.7344,
73+
"lon": -3.4139,
74+
"selectionReason": "Southwest England forecast point paired with the live-validated Met Office Land Observations geohash near Exeter Airport."
75+
},
76+
{
77+
"id": "portsmouth-thorney-island-area",
78+
"name": "Portsmouth / Thorney Island Area",
79+
"description": "Curated Met Office Global Spot forecast point for the Portsmouth-adjacent east Solent / Thorney Island area.",
80+
"lat": 50.8198,
81+
"lon": -1.0880,
82+
"selectionReason": "South coast forecast point paired with the live-validated Portsmouth-adjacent Met Office Land Observations geohash; label avoids implying a city-centre station."
83+
},
6884
{
6985
"id": "stornoway-coastal-area",
7086
"name": "Stornoway Coastal Area",

0 commit comments

Comments
 (0)