Opvragen Gewas perceel (BRP)

Graag zou ik een http request willen doen waarbij ik een locatie meegeef (WG84 of anders RD coordinaten) en dan als resultaat het perceel terug krijg wat ligt op die locatie.

Ik ben niet zo bekend met PDOK en WFS services, misschien dat iemand mij opweg kan helpen?

BRP staat doorgaans voor Basisregistratie Personen. Met percelen heb je het over BRK. Basisregistratie Kadaster.
Met Top10NL kan je op kleine schaal zien wat waar ligt. Maar ik weet niet of gewassen daar onderdeel van zijn.
BGT: Basisregistratie Grootschalige Topografie maakt grove onderscheid tussen boomgaard, fruitteelt, akkerbouw geloof ik.

Als ik het goed begrijp wil je een 3 trapsraket bouwen:

  1. Met xy coördinaat het perceel opvragen en daarmee

  2. de Top10NL en/of BGT raadplegen.

  3. dat resultaat opslaan.

Daar kan ik je verder niet bij helpen behalve
Succes wensen :slight_smile:

Welkom hier @GeeJee!
Ik denk/hoop dat ik je vraag begrijp. Met ‘perceel’ zul je in deze context ‘GewasPerceel’ bedoelen.
Dat is inderdaad de BRP, Basisregistratie GewasPercelen, v.h. AAN geheten (of uit het AAN, Agrarisch Areaal Nederland, beheerd door RVO). (BRP is idd ook afkorting Basisregistratie Personen
).

PDOK levert hiervoor web services: (OGC) Webservices - PDOK, waaronder een WFS om data op te vragen.
De basis URL is 'https://service.pdok.nl/rvo/brpgewaspercelen/wfs/v1_0?

Er zijn wel veel plekken waar het principe van WFS is uitgelegd, bijv hier. Je moet een GetFeature met Filter Encoding, zeg Query moeten doen.

Dat is inderdaad nogal technisch, maar uiteindelijk kan dit met een URL en kun je de data als GML of GeoJSON OutputFormat terugkrijgen op basis van een RD (evt WGS84) coordinaat, bijv 160000,420000 (Wintertarwe perceel, even ten westen Oss) als volgt met bijv curl. (CQL werkt hier niet).

curl 'https://service.pdok.nl/rvo/brpgewaspercelen/wfs/v1_0?request=GetFeature&service=WFS&typename=BrpGewas&version=2.0.0&outputformat=json&&Filter=<Filter><Contains><PropertyName>geom</PropertyName><gml:Point><gml:coordinates>160000,420000</gml:coordinates></gml:Point></Contains></Filter>'

Met als resultaat een FeatureCollection met 1 Feature:

{
"type": "FeatureCollection",
"numberMatched": 1,
"name": "BrpGewas",
"crs": { 
"type": "name", 
"properties": { "name": "urn:ogc:def:crs:EPSG::28992" } },
"features": [
{ "type": "Feature", 
"id": "brp_gewas.57cd1a07-da1a-4c38-8218-82f17c3a769b", 
"properties": { 
"category": "Bouwland", 
"gewas": "Tarwe, winter-", 
"gewascode": 233, 
"jaar": 2023,
 "status": "Voorgesteld" }, 
"bbox": 
[ 159759.93600000065635, 419877.853000001050532, 160216.927000001072884, 420138.872100000211503 ], 
"geometry": 
{ "type": "Polygon", "coordinates": [ [ [ 159759.93600000065635, 419877.853000001050532 ], [ 159768.859000001102686, 419880.024000001489185 ], [ 159768.864599999040365, 419880.426699997857213 ], [ 159769.013099998235703, 419880.80110000341665 ], [ 159769.071400001674192, 419880.864800000330433 ], [ 159769.285100001870887, 419881.098200000473298 ], [ 159769.644999999523861, 419881.278999998408835 ], [ 159802.657600000587991, 419888.722399998980109 ], [ 159810.506000000983477, 419890.491999998164829 ], [ 159870.587999999581371, 419905.157000002567656 ], [ .
.
159790.153999999165535, 419935.296000000962522 ], [ 159784.523699998855591, 419924.800800001306925 ], [ 159782.14299999923, 419920.363000003853813 ], [ 159774.954999998211861, 419906.964200001966674 ], [ 159773.543999999761581, 419904.333999998285435 ], [ 159759.93600000065635, 419877.853000001050532 ] ] ] } }
],
"bbox": [ 159759.936000001, 419877.853000001, 160216.927000001, 420138.8721 ]
}
5 likes

Bedankt @Just_OSGeo, dit is precies wat ik nodig heb.
Ik heb de http query nog uitgebreid met SRSNAME=EPSG:4326, zodat ik met lat-long coordinaten kan werken.

Weet jij toevallig ook of het mogelijk is om de feature als een array van multi-lines terug kan krijgen ipv een polygon (dus als bv een perceel vier zijden heeft dat ik dan 4 (multi)lines terug krijg). Of is de vorm van het perceel in de database als polygon opgeslagen en heeft het geen ‘weet’ van zijden?

Dan wil je grenzen in feite. De dataset BRK-DKK, de standaard Kadastrale Percelen, kent inderdaad de subset/tabel “grenzen” (lines) met bijbehorende wederzijdse identificatie. De polygonen, “Kadastrale Percelen”, zijn van die grenzen afgeleid. Is natuurlijk logisch om alleen grenzen bij te houden.

Binnen de BRP, althans via de WFS, zie ik geen mogelijkheid: je kunt alleen polygonen terugkrijgen m.i.

Het is wel mogelijk om van een Polygon een serie LineStrings te maken. Zeker als het simpele omtrek-(exterior zonder interior) Polygonen zijn. Bijvoorbeeld in Python met de Shapely bibliotheek, iteratie over polygoon, opsplitsen in lijnen. Maar dat zijn andere lijnstukken dan formele grenzen, omdat deze dan nog gecombineerd moeten worden op wederzijdse identificatie.