De BGT opvragen via API en wegschrijven met ogr2ogr

Beste Bas,

Filteren op het veld creation_date is momenteel niet mogelijk in de BGT OGC API. Als je specifiek op dit veld wilt filteren dan zal je dat client-side moeten doen. Dus meer binnen halen en dan zelf filteren op creation_date.

De API heeft wel ondersteuning voor filteren op tijd via een peildatum. Bijv: https://api.pdok.nl/lv/bgt/ogc/v1/collections/wegdeel/items?datetime=2025-01-01T00%3A00%3A00.000Z&limit=10. Dus via de generieke datetime parameter.

Hiermee filter je in geval van de BGT op een peildatum tussen tijdstip_registratie en eind_registratie (incl. lege eind_registratie). Mogelijk kan je dit gebruiken? Eventueel door hiermee alleen de actuele data (van 2025) op te halen en vervolgens lokaal verder op creation_date te filteren?

Om dit via ogr2ogr te doen kan je de -oo DATETIME=<waarde> optie meegeven op de command line. Voorbeeld (ik gebruik even GeoPackage als output ipv Postgres maar het idee is hetzelfde):

ogr2ogr -overwrite -f GPKG -s_srs EPSG:28992 -t_srs EPSG:28992 wegdeel.gpkg -oo DATETIME=2025-01-01T00:00:00.000Z OAPIF:https://api.pdok.nl/lv/bgt/ogc/v1 wegdeel

Tip: met --debug on krijg je meer logging te zien.

Voorbeeld output:

ogr2ogr --debug on -overwrite -f GPKG -s_srs EPSG:28992 -t_srs EPSG:28992 wegdeel.gpkg -oo DATETIME=2025-01-01T00:00:00.000Z OAPIF:https://api.pdok.nl/lv/bgt/ogc/v1 wegdeel
HTTP: Establish persistent session named 'OAPIF:0x14d812360'.
HTTP: Fetch(https://api.pdok.nl/lv/bgt/ogc/v1/collections)
HTTP: libcurl/8.7.1 (SecureTransport) LibreSSL/3.3.6 zlib/1.2.12 nghttp2/1.63.0
GDAL: GDALOpen(OAPIF:https://api.pdok.nl/lv/bgt/ogc/v1, this=0x14d812360) succeeds as OAPIF.
GPKG: GeoPackage v1.2.0
GDAL: GDALOpen(wegdeel.gpkg, this=0x14d081200) succeeds as GPKG.
HTTP: Fetch(https://api.pdok.nl/lv/bgt/ogc/v1)
HTTP: Fetch(https://api.pdok.nl/lv/bgt/ogc/v1/api?f=json)
HTTP: Fetch(https://api.pdok.nl/lv/bgt/ogc/v1/collections/wegdeel/items?f=json&limit=20)
GeoJSON: First pass: 100.00 %
ogr2ogr: Switching layer active SRS to Amersfoort / RD New
HTTP: Fetch(https://api.pdok.nl/lv/bgt/ogc/v1/collections/wegdeel/items?f=json&limit=1000&crs=http://www.opengis.net/def/crs/EPSG/0/28992&datetime=2025-01-01T00:00:00.000Z)
GeoJSON: First pass: 25.91 %
GeoJSON: First pass: 51.81 %
GeoJSON: First pass: 77.72 %
GeoJSON: First pass: 100.00 %
HTTP: Fetch(https://api.pdok.nl/lv/bgt/ogc/v1/collections/wegdeel/items?crs=http%3A%2F%2Fwww.opengis.net%2Fdef%2Fcrs%2FEPSG%2F0%2F28992&cursor=FCA%7CsdVOzQ&datetime=2025-01-01T00%3A00%3A00.000Z&f=json&limit=1000)
GeoJSON: First pass: 46.81 %
GeoJSON: First pass: 93.63 %
GeoJSON: First pass: 100.00 %
HTTP: Fetch(https://api.pdok.nl/lv/bgt/ogc/v1/collections/wegdeel/items?crs=http%3A%2F%2Fwww.opengis.net%2Fdef%2Fcrs%2FEPSG%2F0%2F28992&cursor=Io0%7CsdVOzQ&datetime=2025-01-01T00%3A00%3A00.000Z&f=json&limit=1000)
GeoJSON: First pass: 40.49 %
GeoJSON: First pass: 80.99 %
GeoJSON: First pass: 100.00 %
HTTP: Fetch(https://api.pdok.nl/lv/bgt/ogc/v1/collections/wegdeel/items?crs=http%3A%2F%2Fwww.opengis.net%2Fdef%2Fcrs%2FEPSG%2F0%2F28992&cursor=M_o%7CsdVOzQ&datetime=2025-01-01T00%3A00%3A00.000Z&f=json&limit=1000)
.....
.....
4 likes