WFS — Web Feature Service

WFS — Web Feature Service

OGC-compliant Web Feature Service (WFS 2.0) serving site geometry polygons as GeoJSON features. Ideal for loading editable vector layers into QGIS, running spatial analysis in Python (geopandas), or querying geometries from any WFS-capable client.

URL

https://app.raad.com/wfs

Feature Types

Each site has two kinds of feature types:

Type Name Contents raad:{site-uuid} All geometry polygons for that site raad:{site-uuid}__building_structure Only building structure polygons raad:{site-uuid}__cooling Only cooling system polygons raad:{site-uuid}__grid_power Only power infrastructure polygons raad:{site-uuid}__capture_area Only capture area boundaries

Setup in QGIS — Click to Add

  1. Go to Layer → Add Layer → Add WFS / OGC API — Features Layer
  2. Click New, set name to Raad WFS, URL to https://app.raad.com/wfs
  3. Open the Authentication tab → click the green + → choose HTTP Header auth
  4. Set header name Authorization, value Bearer YOUR_MAP_ACCESS_TOKEN, and save
  5. Click OK → Connect — browse the feature type list and double-click any row to add it

Setup in ArcGIS Pro

  1. On the Insert tab → Connections → New WFS Server
  2. Set the URL to https://app.raad.com/wfs
  3. Expand Custom request headers, add AuthorizationBearer YOUR_MAP_ACCESS_TOKEN
  4. Click OK — in the Catalog pane, expand the connection and add a feature type to the map

Python — geopandas

import geopandas as gpd
import requests
from io import BytesIO

TOKEN = "YOUR_MAP_ACCESS_TOKEN"
SITE_ID = "YOUR_SITE_UUID"

headers = {"Authorization": f"Bearer {TOKEN}"}
params = {
    "SERVICE": "WFS",
    "REQUEST": "GetFeature",
    "TYPENAMES": f"raad:{SITE_ID}",
    "outputFormat": "application/json"
}

response = requests.get("https://app.raad.com/wfs", headers=headers, params=params)
gdf = gpd.GeoDataFrame.from_features(response.json()["features"], crs="EPSG:4326")
print(gdf[["label", "system_type", "geometry"]].head())

# Filter to just building structures
buildings = gdf[gdf["system_type"] == "building_structure"]
buildings.plot(color="steelblue", alpha=0.5)

Python — requests (raw GeoJSON)

import requests

TOKEN = "YOUR_MAP_ACCESS_TOKEN"
SITE_ID = "YOUR_SITE_UUID"
SYSTEM_TYPE = "cooling"  # or omit for all types

headers = {"Authorization": f"Bearer {TOKEN}"}
params = {
    "SERVICE": "WFS",
    "REQUEST": "GetFeature",
    "TYPENAMES": f"raad:{SITE_ID}__{SYSTEM_TYPE}",
    "outputFormat": "application/json"
}

response = requests.get("https://app.raad.com/wfs", headers=headers, params=params)
geojson = response.json()
print(f"{geojson['numberReturned']} features returned")