Skip to content

gispulse-src-gpu

French urban-planning documents data source for GISPulse — Géoportail de l'Urbanisme WFS layers: zoning, prescriptions and informational layers (domain REGLEMENTAIRE, jurisdiction FR).

Provider

FieldValue
Upstream producerIGN + DGALN (Direction générale de l'aménagement, du logement et de la nature)
PlatformGéoportail de l'Urbanisme (https://www.geoportail-urbanisme.gouv.fr/)
RedistributorIGN Géoplateforme (public WFS wfs_du namespace, no API key required)
MandateLoi ALUR / ordonnance 2013-1184 (dematerialised urban-planning documents)
LicenceLicence Ouverte 2.0
CadenceContinuous (updated as communes publish/approve new PLU documents)

Note: GpuSource is declared with SourceDomain.REGLEMENTAIRE and is semantically a RegulatorySource. Promotion (wiring ruleset() over the wfs_du attributes) is deferred to a follow-up plugin once the RuleClause-to-PLU mapping is stabilised.

Note: Servitudes d'utilité publique (SUP — servitude, assiette_sup_*, generateur_sup_*, acte_sup) are intentionally not in this plugin. They are conceptually distinct and warrant a dedicated gispulse-src-sup package.

Entries

All entries use AccessProtocol.WFS, endpoint https://data.geopf.fr/wfs/ows, format application/json.

idLabelWFS typenamePayloadJurisdiction
zone-urbaUrban zoning (PLU, PLUi, POS)wfs_du:zone_urbaVECTORFR
doc-urbaUrban planning documents — footprints and metadatawfs_du:doc_urbaVECTORFR
secteur-ccCommunal map sectorswfs_du:secteur_ccVECTORFR
prescription-surfSurface prescriptionswfs_du:prescription_surfVECTORFR
prescription-linLinear prescriptionswfs_du:prescription_linVECTORFR
prescription-pctPoint prescriptionswfs_du:prescription_pctVECTORFR
info-surfSurface informational layerswfs_du:info_surfVECTORFR
info-linLinear informational layerswfs_du:info_linVECTORFR
info-pctPoint informational layerswfs_du:info_pctVECTORFR

Schema highlights:

  • Common fields (all entries): gid (int), idurba (str — parent document id, joins to doc-urba), geometry
  • zone-urba: adds libelle, libelong, typezone (U/AU/A/N), destdomi, nomfic, urlfic
  • doc-urba: adds typedoc (PLU/PLUi/POS/CC/RNU), datappro, datefin, datvalid, intercoid, insee, siren
  • secteur-cc: adds libelle, libelong, typesect (constructible / non-constructible), insee
  • prescription-{surf,lin,pct}: adds libelle, txt, typepsc, stypepsc, nomfic, urlfic
  • info-{surf,lin,pct}: adds libelle, txt, typeinf, stypeinf, nomfic, urlfic

Revision

revision(entry_id) issues a single HTTP HEAD against the Géoplateforme WFS GetCapabilities URL:

https://data.geopf.fr/wfs/ows?SERVICE=WFS&VERSION=2.0.0&REQUEST=GetCapabilities

The freshness token is derived from the ETag header (preferred) or the Last-Modified header. The GPU millésime is service-wide (one consolidated GetCapabilities for all wfs_du layers), so all nine entries share one probe. Returns None — meaning "freshness unknown" — when the endpoint is unreachable or exposes neither header.

Usage

python
from gispulse.plugins.api import get_catalog_entry

entry = get_catalog_entry("gpu", "zone-urba")
# entry.access.protocol → AccessProtocol.WFS
# entry.access.endpoint → "https://data.geopf.fr/wfs/ows"
# entry.access.params   → {"typename": "wfs_du:zone_urba"}

entry = get_catalog_entry("gpu", "doc-urba")
entry = get_catalog_entry("gpu", "prescription-surf")

The plugin registers automatically via the gispulse.data_sources entry-point when installed:

bash
pip install gispulse-src-gpu

References

Published under AGPL-3.0 license.