Montana Mesonet Spatial Services (OGC API)
The Montana Climate Office is pleased to announce a high-performance OGC API – Features endpoint for the Montana Mesonet. This service allows researchers, consultants, and the public to stream real-time weather observations directly into GIS software or analysis environments without the need to download and manage static files.
Unlike a traditional web download, this connection is “live.” Whenever you refresh your map or pan across the state, your software fetches the most recent observations—including air temperature, precipitation, and soil moisture—directly from our servers.
Live Service Map
This map is powered by the OGC API endpoint. It fetches the latest station data and displays them in real-time.
Service URL
Endpoint: https://mesonet.climate.umt.edu/api/latest/wfs
GIS Connection Instructions
QGIS
QGIS provides the most robust support for modern OGC API standards.
- Open Data Source Manager: Click the Layer menu > Add Layer > Add WFS Layer… (or press
Ctrl+L). - Create Connection: In the WFS / OGC API - Features tab, click New.
- Details: Enter “Montana Mesonet” for the name and paste the Service URL above into the URL field. Click OK.
- Add Layer: Click Connect, select the
stations_latestlayer, and click Add.
ArcGIS Pro
- Insert Tab: Go to the Insert tab on the top ribbon.
- New Server: Click Connections > Server > New OGC API Server.
- Configure: Paste the Service URL into the Server URL box and click OK.
- Add to Map: In your Catalog Pane, expand Servers, and drag the
stations_latestlayer onto your map.
ArcGIS Online
- Open Map Viewer: Sign in to your account and open a new or existing Map.
- Add Layer: Click the Add (+) button and select OGC WFS Layer.
- URL: Paste the Service URL into the URL field.
- Finish: The system will detect the features; click Add to Map.
Technical Access (Python & R)
For developers and data scientists, the service provides data in GeoJSON format. This makes it easy to ingest live weather data directly into data frames for analysis.
Python (Requests)
import requests
# Fetch the stations with latest observations
url = "https://mesonet.climate.umt.edu/api/latest/wfs/collections/stations_latest/items"
params = {"limit": 100}
response = requests.get(url, params=params)
data = response.json()
for feature in data['features']:
print(f"Station: {feature['id']}, Temp: {feature['properties']['Air Temperature @ 2 m [°F]']}")
R (sf package)
library(sf)
# Load the Montana Mesonet data directly into an sf object
mesonet_url <- "https://mesonet.climate.umt.edu/api/latest/wfs/collections/stations_latest/items"
mesonet_data <- st_read(mesonet_url)
# View the first few rows
head(mesonet_data)
Technical Specifications
- Update Frequency: Data is cached and refreshed every 60 seconds.
- Coordinate System: Data is served in WGS 84 (EPSG:4326).
- Smart Filtering: The API supports server-side spatial filtering. Your GIS software will only request data for the stations currently visible in your map extent, ensuring fast performance even on mobile connections.