[Dutch] Digitale Kadastrale Kaart polygonen

classic Classic list List threaded Threaded
8 messages Options
Reply | Threaded
Open this post in threaded view
|

[Dutch] Digitale Kadastrale Kaart polygonen

Rein van 't Veer
Beste Osgeo.nl lijst,

Allereerst dank dat jullie naar mijn verzoek zouden willen kijken: mijn naam is Rein van 't Veer en ik werk bij Geodan, gedetacheerd bij het Kadaster. In teamverband werk ik aan het project GRID: een vernieuwingsproject om geodata beter beschikbaar te krijgen.

Eén van de doelen van het GRID-project is om de onlangs vrijgegeven Digitale Kadastrale Kaart (DKK, handig per provincie te downloaden vanaf https://www.pdok.nl/nl/producten/pdok-downloads/basis-registratie-kadaster/kadastrale-kaart) op andere manieren te ontsluiten - als REST API en als Linked Data. Maar we lopen er even tegenaan dat de dataset, gedownload als GML de nodige uitdagingen bevat. Dit probleem leg ik graag voor aan deze open groep, aangezien het antwoord erop, naar ik hoop, voor anderen waardevol kan zijn die de DKK willen gebruiken.

Zo bevat de 'laag' Percelen per perceelsobject twee typen geometrie: een punt-object en (naar ik in de ruwe GML kan zien), een polygoongeometrie. We zijn natuurlijk vooral geïnteresseerd in de laatste, maar deze wordt door QGIS (via GDAL) gevoeglijk genegeerd. GDAL lijkt maar moeizaam om te kunnen gaan met meer dan één geometrie per object.

Vraag is nu: hoe krijg ik de polygonen (de brk_krt:begrenzingPerceel) geconverteerd naar GeoJSON? En hoe kan ik niet de punten, maar de polygonen vanuit GML openen in QGIS? GDAL lijkt helaas een voorkeur te hebben voor de puntgeometrieën. De pagina http://www.gdal.org/drv_geojson.html geeft wel enige aanwijzing voor conversie met behulp van de omgevingsvariabele GEOMETRY_AS_COLLECTION=YES, maar dit lijkt niet het gewenste effect te hebben op bijvoorbeeld een opdracht als: 

$ ogrinfo Perceel.gml
Had to open data source read-only.
INFO: Open of `Perceel.gml'
      using driver `GML' successful.
1: Perceel (Point)

$ ogr2ogr -f GeoJSON Perceel.NO.geojson Perceel.gml

$ ogrinfo Perceel.NO.geojson
ERROR 4: GeoJSON Driver doesn't support update.
Had to open data source read-only.
INFO: Open of `Perceel.NO.geojson'
      using driver `GeoJSON' successful.
1: OGRGeoJSON (Point)

$ export GEOMETRY_AS_COLLECTION=YES

$ ogrinfo Perceel.YES.geojson
ERROR 4: GeoJSON Driver doesn't support update.
Had to open data source read-only.
INFO: Open of `Perceel.geojson'
      using driver `GeoJSON' successful.
1: OGRGeoJSON (Geometry Collection)

De Geometry Collection bevat vervolgens enkel punten. GDAL onderkent geen polygonen in de dataset. Hoe kom ik er op een elegante (automatische) manier achter welke typen geometrie er in de dataset zitten? Iemand enig idee hoe dit benaderd kan worden? Ik heb wel een vergelijkbare melding gevonden op http://gis.stackexchange.com/questions/37217/why-are-the-polygons-in-my-gml-not-rendered maar het handmatig aanpassen van het GDAL .gfs is niet echt een elegante oplossing. Moet ik met Sax of een ander olifantenmiddel de puntgeometrieën eruit filteren? Of kan er een andere library benut worden zoals de Java(Script) Topology Suite? 

Alles suggesties zijn welkom, alvast veel dank,
Rein van 't Veer

_______________________________________________
Dutch mailing list
[hidden email]
http://lists.osgeo.org/mailman/listinfo/dutch
Reply | Threaded
Open this post in threaded view
|

Re: [Dutch] Digitale Kadastrale Kaart polygonen

Richard Duivenvoorde
On 19-04-16 19:39, Rein van 't Veer wrote:
>
> Alles suggesties zijn welkom, alvast veel dank,
> Rein van 't Veer

Hoi Rein,

is dit iets hetzelfde probleem wat Diethard Jansen hier beschrijft en
naar het lijkt een oplossing voor lijkt te geven?

http://www.qgis.nl/2016/03/10/kadastrale-percelen-en-het-gfs-bestand/

(ben er zelf nog niet ingedoken...)

Groet,

Richard Duivenvoorde
_______________________________________________
Dutch mailing list
[hidden email]
http://lists.osgeo.org/mailman/listinfo/dutch
Reply | Threaded
Open this post in threaded view
|

Re: [Dutch] Digitale Kadastrale Kaart polygonen

Martijn Meijers
In reply to this post by Rein van 't Veer
Hoi,

De .gfs file aanpassen is volgens mij de meest handige optie.

"""
Starting with OGR 1.11, the <GeometryElementPath> and <GeometryType> can
be specified as many times as there are geometry fields in the GML file.
Another possibility is to define a <GeomPropertyDefn> element as many
times as necessary:
""" --- http://gdal.org/drv_gml.html

Nadat je ogrinfo een keertje gedraaid hebt, kun je zelf de .gfs file
bewerken. Het <GeometryType> element vervangen lijkt te werken bij mij.

Dit heb ik er voor in de plaats gezet:

"""
     <GeomPropertyDefn>
         <Name>geometry</Name>
         <ElementPath>begrenzingPerceel</ElementPath>
         <Type>Polygon</Type>
     </GeomPropertyDefn>
"""

En dan laadt de GML goed in QGIS (zie bijgevoegde schermafbeelding).

Zie ook:

https://twitter.com/bmmeijers/status/644501439625199616

Een andere optie is om zelf vanuit het schema te starten (de xsd) en aan
de hand daarvan een gfs file te maken.


Martijn

On 19-04-16 19:39, Rein van 't Veer wrote:

> Beste Osgeo.nl lijst,
>
> Allereerst dank dat jullie naar mijn verzoek zouden willen kijken: mijn
> naam is Rein van 't Veer en ik werk bij Geodan, gedetacheerd bij het
> Kadaster. In teamverband werk ik aan het project GRID: een
> vernieuwingsproject om geodata beter beschikbaar te krijgen.
>
> Eén van de doelen van het GRID-project is om de onlangs vrijgegeven
> Digitale Kadastrale Kaart (DKK, handig per provincie te downloaden vanaf
> https://www.pdok.nl/nl/producten/pdok-downloads/basis-registratie-kadaster/kadastrale-kaart) op
> andere manieren te ontsluiten - als REST API en als Linked Data. Maar we
> lopen er even tegenaan dat de dataset, gedownload als GML de nodige
> uitdagingen bevat. Dit probleem leg ik graag voor aan deze open groep,
> aangezien het antwoord erop, naar ik hoop, voor anderen waardevol kan
> zijn die de DKK willen gebruiken.
>
> Zo bevat de 'laag' Percelen per perceelsobject twee typen geometrie: een
> punt-object en (naar ik in de ruwe GML kan zien), een polygoongeometrie.
> We zijn natuurlijk vooral geïnteresseerd in de laatste, maar deze wordt
> door QGIS (via GDAL) gevoeglijk genegeerd. GDAL lijkt maar moeizaam om
> te kunnen gaan met meer dan één geometrie per object.
>
> Vraag is nu: hoe krijg ik de polygonen (de brk_krt:begrenzingPerceel)
> geconverteerd naar GeoJSON? En hoe kan ik niet de punten, maar de
> polygonen vanuit GML openen in QGIS? GDAL lijkt helaas een voorkeur te
> hebben voor de puntgeometrieën. De pagina
> http://www.gdal.org/drv_geojson.html geeft wel enige aanwijzing voor
> conversie met behulp van de omgevingsvariabele
> GEOMETRY_AS_COLLECTION=YES, maar dit lijkt niet het gewenste effect te
> hebben op bijvoorbeeld een opdracht als:
>
> $ ogrinfo Perceel.gml
> Had to open data source read-only.
> INFO: Open of `Perceel.gml'
>        using driver `GML' successful.
> 1: Perceel (Point)
>
> $ ogr2ogr -f GeoJSON Perceel.NO.geojson Perceel.gml
>
> $ ogrinfo Perceel.NO.geojson
> ERROR 4: GeoJSON Driver doesn't support update.
> Had to open data source read-only.
> INFO: Open of `Perceel.NO.geojson'
>        using driver `GeoJSON' successful.
> 1: OGRGeoJSON (Point)
>
> $ export GEOMETRY_AS_COLLECTION=YES
>
> $ ogrinfo Perceel.YES.geojson
> ERROR 4: GeoJSON Driver doesn't support update.
> Had to open data source read-only.
> INFO: Open of `Perceel.geojson'
>        using driver `GeoJSON' successful.
> 1: OGRGeoJSON (Geometry Collection)
>
> De Geometry Collection bevat vervolgens enkel punten. GDAL onderkent
> geen polygonen in de dataset. Hoe kom ik er op een elegante
> (automatische) manier achter welke typen geometrie er in de dataset
> zitten? Iemand enig idee hoe dit benaderd kan worden? Ik heb wel een
> vergelijkbare melding gevonden op
> http://gis.stackexchange.com/questions/37217/why-are-the-polygons-in-my-gml-not-rendered maar
> het handmatig aanpassen van het GDAL .gfs is niet echt een elegante
> oplossing. Moet ik met Sax of een ander olifantenmiddel de
> puntgeometrieën eruit filteren? Of kan er een andere library benut
> worden zoals de Java(Script) Topology Suite?
>
> Alles suggesties zijn welkom, alvast veel dank,
> Rein van 't Veer
>
>
> _______________________________________________
> Dutch mailing list
> [hidden email]
> http://lists.osgeo.org/mailman/listinfo/dutch
>

_______________________________________________
Dutch mailing list
[hidden email]
http://lists.osgeo.org/mailman/listinfo/dutch

Screenshot from 2016-04-19 20-06-11.png (927K) Download Attachment
Reply | Threaded
Open this post in threaded view
|

Re: [Dutch] Digitale Kadastrale Kaart polygonen

Just van den Broecke
In reply to this post by Rein van 't Veer
Beste Rein,

Toevallig hebben we (Frank Steggink en ik) afgelopen week bij NLExtract
net het inlezen van de BRK-DKK naar PostGIS afgerond (op documentatie
na). Omdat de DKK relatief simpel is in vgl tot andere basisregs, konden
we deze met een simpel Stetl config, zonder programmeren of zelfs XSLT
inlezen. De ETL staat hier:
https://github.com/opengeogroep/NLExtract/tree/master/brk/etl

De kern hierbij is het gebruik van ogr2ogr, maarrr, en dat is de crux
van mijn antwoord: met gebruikmaking van "GFS". Zie
http://www.gdal.org/drv_gml.html. Met GFS kan je een bijna XPath achtige
filtering en typering van je bron-GML doen. Wel recente GDAL gebruiken 1.11.

Mijn eerste PoC stond gelukkig nog in GitHub, heb daar net GeoJSON
generatie aan toegevoegd:
https://github.com/opengeogroep/NLExtract/tree/master/brk/dkk/test
Het flatten.sh script doet niets anders dan ogr2ogr aanroepen. De .gfs
file bepaalt de extractie.

De "echte" NLExtract BRK ETL bevat echter nog veel meer mogelijkheden en
zou ik in een productie-omgeving aanbevelen:
- automatische verwerking alle .zip's zonder uit te pakken
- filtering van files uit de zips, bijv alleen Percelen
- spatial filtering
- download van brondata
- heel NL bijna 8 miljoen percelen binnen uurtje in PostGIS ingelezen

Met vriendelijke groet,

Just

On 19-04-16 19:39, Rein van 't Veer wrote:

> Beste Osgeo.nl lijst,
>
> Allereerst dank dat jullie naar mijn verzoek zouden willen kijken: mijn
> naam is Rein van 't Veer en ik werk bij Geodan, gedetacheerd bij het
> Kadaster. In teamverband werk ik aan het project GRID: een
> vernieuwingsproject om geodata beter beschikbaar te krijgen.
>
> Eén van de doelen van het GRID-project is om de onlangs vrijgegeven
> Digitale Kadastrale Kaart (DKK, handig per provincie te downloaden vanaf
> https://www.pdok.nl/nl/producten/pdok-downloads/basis-registratie-kadaster/kadastrale-kaart) op
> andere manieren te ontsluiten - als REST API en als Linked Data. Maar we
> lopen er even tegenaan dat de dataset, gedownload als GML de nodige
> uitdagingen bevat. Dit probleem leg ik graag voor aan deze open groep,
> aangezien het antwoord erop, naar ik hoop, voor anderen waardevol kan
> zijn die de DKK willen gebruiken.
>
> Zo bevat de 'laag' Percelen per perceelsobject twee typen geometrie: een
> punt-object en (naar ik in de ruwe GML kan zien), een polygoongeometrie.
> We zijn natuurlijk vooral geïnteresseerd in de laatste, maar deze wordt
> door QGIS (via GDAL) gevoeglijk genegeerd. GDAL lijkt maar moeizaam om
> te kunnen gaan met meer dan één geometrie per object.
>
> Vraag is nu: hoe krijg ik de polygonen (de brk_krt:begrenzingPerceel)
> geconverteerd naar GeoJSON? En hoe kan ik niet de punten, maar de
> polygonen vanuit GML openen in QGIS? GDAL lijkt helaas een voorkeur te
> hebben voor de puntgeometrieën. De pagina
> http://www.gdal.org/drv_geojson.html geeft wel enige aanwijzing voor
> conversie met behulp van de omgevingsvariabele
> GEOMETRY_AS_COLLECTION=YES, maar dit lijkt niet het gewenste effect te
> hebben op bijvoorbeeld een opdracht als:
>
> $ ogrinfo Perceel.gml
> Had to open data source read-only.
> INFO: Open of `Perceel.gml'
>        using driver `GML' successful.
> 1: Perceel (Point)
>
> $ ogr2ogr -f GeoJSON Perceel.NO.geojson Perceel.gml
>
> $ ogrinfo Perceel.NO.geojson
> ERROR 4: GeoJSON Driver doesn't support update.
> Had to open data source read-only.
> INFO: Open of `Perceel.NO.geojson'
>        using driver `GeoJSON' successful.
> 1: OGRGeoJSON (Point)
>
> $ export GEOMETRY_AS_COLLECTION=YES
>
> $ ogrinfo Perceel.YES.geojson
> ERROR 4: GeoJSON Driver doesn't support update.
> Had to open data source read-only.
> INFO: Open of `Perceel.geojson'
>        using driver `GeoJSON' successful.
> 1: OGRGeoJSON (Geometry Collection)
>
> De Geometry Collection bevat vervolgens enkel punten. GDAL onderkent
> geen polygonen in de dataset. Hoe kom ik er op een elegante
> (automatische) manier achter welke typen geometrie er in de dataset
> zitten? Iemand enig idee hoe dit benaderd kan worden? Ik heb wel een
> vergelijkbare melding gevonden op
> http://gis.stackexchange.com/questions/37217/why-are-the-polygons-in-my-gml-not-rendered maar
> het handmatig aanpassen van het GDAL .gfs is niet echt een elegante
> oplossing. Moet ik met Sax of een ander olifantenmiddel de
> puntgeometrieën eruit filteren? Of kan er een andere library benut
> worden zoals de Java(Script) Topology Suite?
>
> Alles suggesties zijn welkom, alvast veel dank,
> Rein van 't Veer
>
>
> _______________________________________________
> Dutch mailing list
> [hidden email]
> http://lists.osgeo.org/mailman/listinfo/dutch
>


_______________________________________________
Dutch mailing list
[hidden email]
http://lists.osgeo.org/mailman/listinfo/dutch
Reply | Threaded
Open this post in threaded view
|

Re: [Dutch] Digitale Kadastrale Kaart polygonen

Rein van 't Veer
In reply to this post by Rein van 't Veer
Dank al voor de zinnige tips en bijdragen,
http://www.qgis.nl/2016/03/10/kadastrale-percelen-en-het-gfs-bestand/ beschrijft inderdaad hetzelfde principe, maar handmatig. De kneep zit 'm in de automatische conversie of automatische generatie van de GFS. Als geautomatiseerd platform willen we zo min mogelijk handmatige conversie en aanpassing doen, dus hoe komen we erachter hoeveel geometrieen er per object zijn?

Een verse build van GDAL toont mij namelijk dezelfde output als de (nogal oude 1.10) versie die ik hiervoor op mijn Debian systeem had: 

$ ogrinfo --version
GDAL 2.1.0beta1, released 2016/04/01

$ ogrinfo Perceel.gml
Had to open data source read-only.
INFO: Open of `Perceel.gml'
      using driver `GML' successful.
1: Perceel (Point)

Dus hoe 'detecteer' ik automatisch het aantal en de typen geometrieen in een GML? Ik wil in principe alle geometrieen exporteren naar GeoJSON. Handmatige aanpassing van de .gfs is daarin een weg die ik liever niet wil bewandelen. De voorbeeld gfs in NLextract kan wel goed van pas komen, indien de DKK echt een uitzondering is in de toepassing van meervoudige geometrieen.

Dank, 
Rein


_______________________________________________
Dutch mailing list
[hidden email]
http://lists.osgeo.org/mailman/listinfo/dutch
Reply | Threaded
Open this post in threaded view
|

Re: [Dutch] Digitale Kadastrale Kaart polygonen

Martijn Meijers
Hoi,

Dat er meerdere geometrien in de GML zitten, daar kun je niet met
ogr/gdal achterkomen, denk ik.

Zie: https://trac.osgeo.org/gdal/wiki/rfc41_multiple_geometry_fields

"""
Other candidate drivers (upgrade not originaly covered by this RFC) ¶

     GML driver : currently, only one geometry per feature reported.
Possibility of changing this by hand-editing of the .gfs file

     --> implemented post RFC in GDAL 1.11
"""

Je zou kunnen kijken hoeveel werk het is om de GML driver van ogr2ogr
hetzelfde te laten doen als die van PostGIS (daar worden meerdere
geometrie typen wel getoond); dat zal wel niet heel eenvoudig zijn,
anders was dat vast al geimplementeerd ;)

Zoals ik in eerdere mail schreef zou je ook de XSD (het schema) zelf
kunnen parsen en aan de hand daarvan een .gfs file maken, en daarna
ogr2ogr runnen. Waarschijnlijk niet echt eenvoudig, door alle toegestane
soorten geometrien voor gml:SurfacePropertyType.

Of een .gfs file handmatig bijhouden en er naast kopieren (a la stetl)
en zorgen dat die nieuwer is dan de GML file. Zolang het schema van een
dataset niet wijzigt is dat denk ik toch het simpelste...

Overigens heeft Top10NL ook meerdere geometrie typen per laag (bv.
wegdelen met vlak, hartlijn of hartpunt), dus de kadastrale kaart is
niet echt een uitzondering.


Martijn

On 19-04-16 21:47, Rein van 't Veer wrote:

> Dank al voor de zinnige tips en bijdragen,
> http://www.qgis.nl/2016/03/10/kadastrale-percelen-en-het-gfs-bestand/ beschrijft
> inderdaad hetzelfde principe, maar handmatig. De kneep zit 'm in de
> automatische conversie of automatische generatie van de GFS. Als
> geautomatiseerd platform willen we zo min mogelijk handmatige conversie
> en aanpassing doen, dus hoe komen we erachter hoeveel geometrieen er per
> object zijn?
>
> Een verse build van GDAL toont mij namelijk dezelfde output als de
> (nogal oude 1.10) versie die ik hiervoor op mijn Debian systeem had:
>
> $ ogrinfo --version
> GDAL 2.1.0beta1, released 2016/04/01
>
> $ ogrinfo Perceel.gml
> Had to open data source read-only.
> INFO: Open of `Perceel.gml'
>        using driver `GML' successful.
> 1: Perceel (Point)
>
> Dus hoe 'detecteer' ik automatisch het aantal en de typen geometrieen in
> een GML? Ik wil in principe alle geometrieen exporteren naar GeoJSON.
> Handmatige aanpassing van de .gfs is daarin een weg die ik liever niet
> wil bewandelen. De voorbeeld gfs in NLextract kan wel goed van pas
> komen, indien de DKK echt een uitzondering is in de toepassing van
> meervoudige geometrieen.
>
> Dank,
> Rein
>
>
>
> _______________________________________________
> Dutch mailing list
> [hidden email]
> http://lists.osgeo.org/mailman/listinfo/dutch
>
_______________________________________________
Dutch mailing list
[hidden email]
http://lists.osgeo.org/mailman/listinfo/dutch
Reply | Threaded
Open this post in threaded view
|

Re: [Dutch] Digitale Kadastrale Kaart polygonen

deduikertjes
In reply to this post by Rein van 't Veer
Rein,

Misschien is het goed om iets 'breder' te kijken.

Het object georienteerde datamodel laat vele constructies toe die moeilijk zijn 'plat te slaan' in het 'kaartlaag met vaste set attributen' datamodel zoals vaak wordt gehanteerd in desktop GIS (met name zoals we gewend zijn in ESRI-GIS).

Meerdere type geometrie bij een object is maar 1 zo'n probleem.

Uiteindelijk zul je bij het bruikbaar maken van de data in zo'n kaartlaag georiënteerd datamodel gewoon heel goed moeten uitzoeken hoe het oorspronkelijke datamodel in elkaar zit, en hoe dat het beste omgezet kan worden zodat de benodigde info op een logische manier bij de gebruiker komt. Liefst zonder dataverlies en constructies met meerdere attributen in 1 kolom.

Hoe dat vervolgens technisch in te vullen is een volgende stap. (Het verdient natuurlijk wel aanbeveling om bij het opstellen van een datamodel van een basisregistratie gelijk al een weg te kiezen die het software makkelijk maakt, maar dat is hier al een gepasseerd station).

Let wel, bovenstaand betoog is geschreven zonder naar het specifieke datamodel te kijken en te beoordelen in hoeverre het inderdaad zonder problemen 'plat te slaan' is.

Met vriendelijke groet, MArco


On 19-04-16 19:39, Rein van 't Veer wrote:
Beste Osgeo.nl lijst,

Allereerst dank dat jullie naar mijn verzoek zouden willen kijken: mijn naam is Rein van 't Veer en ik werk bij Geodan, gedetacheerd bij het Kadaster. In teamverband werk ik aan het project GRID: een vernieuwingsproject om geodata beter beschikbaar te krijgen.

Eén van de doelen van het GRID-project is om de onlangs vrijgegeven Digitale Kadastrale Kaart (DKK, handig per provincie te downloaden vanaf https://www.pdok.nl/nl/producten/pdok-downloads/basis-registratie-kadaster/kadastrale-kaart) op andere manieren te ontsluiten - als REST API en als Linked Data. Maar we lopen er even tegenaan dat de dataset, gedownload als GML de nodige uitdagingen bevat. Dit probleem leg ik graag voor aan deze open groep, aangezien het antwoord erop, naar ik hoop, voor anderen waardevol kan zijn die de DKK willen gebruiken.

Zo bevat de 'laag' Percelen per perceelsobject twee typen geometrie: een punt-object en (naar ik in de ruwe GML kan zien), een polygoongeometrie. We zijn natuurlijk vooral geïnteresseerd in de laatste, maar deze wordt door QGIS (via GDAL) gevoeglijk genegeerd. GDAL lijkt maar moeizaam om te kunnen gaan met meer dan één geometrie per object.

Vraag is nu: hoe krijg ik de polygonen (de brk_krt:begrenzingPerceel) geconverteerd naar GeoJSON? En hoe kan ik niet de punten, maar de polygonen vanuit GML openen in QGIS? GDAL lijkt helaas een voorkeur te hebben voor de puntgeometrieën. De pagina http://www.gdal.org/drv_geojson.html geeft wel enige aanwijzing voor conversie met behulp van de omgevingsvariabele GEOMETRY_AS_COLLECTION=YES, maar dit lijkt niet het gewenste effect te hebben op bijvoorbeeld een opdracht als: 

$ ogrinfo Perceel.gml
Had to open data source read-only.
INFO: Open of `Perceel.gml'
      using driver `GML' successful.
1: Perceel (Point)

$ ogr2ogr -f GeoJSON Perceel.NO.geojson Perceel.gml

$ ogrinfo Perceel.NO.geojson
ERROR 4: GeoJSON Driver doesn't support update.
Had to open data source read-only.
INFO: Open of `Perceel.NO.geojson'
      using driver `GeoJSON' successful.
1: OGRGeoJSON (Point)

$ export GEOMETRY_AS_COLLECTION=YES

$ ogrinfo Perceel.YES.geojson
ERROR 4: GeoJSON Driver doesn't support update.
Had to open data source read-only.
INFO: Open of `Perceel.geojson'
      using driver `GeoJSON' successful.
1: OGRGeoJSON (Geometry Collection)

De Geometry Collection bevat vervolgens enkel punten. GDAL onderkent geen polygonen in de dataset. Hoe kom ik er op een elegante (automatische) manier achter welke typen geometrie er in de dataset zitten? Iemand enig idee hoe dit benaderd kan worden? Ik heb wel een vergelijkbare melding gevonden op http://gis.stackexchange.com/questions/37217/why-are-the-polygons-in-my-gml-not-rendered maar het handmatig aanpassen van het GDAL .gfs is niet echt een elegante oplossing. Moet ik met Sax of een ander olifantenmiddel de puntgeometrieën eruit filteren? Of kan er een andere library benut worden zoals de Java(Script) Topology Suite? 

Alles suggesties zijn welkom, alvast veel dank,
Rein van 't Veer


_______________________________________________
Dutch mailing list
[hidden email]
http://lists.osgeo.org/mailman/listinfo/dutch


_______________________________________________
Dutch mailing list
[hidden email]
http://lists.osgeo.org/mailman/listinfo/dutch
Reply | Threaded
Open this post in threaded view
|

Re: [Dutch] Digitale Kadastrale Kaart polygonen

Just van den Broecke
Hoi Rein et al,

De wereld van de GML-leveringen, en zeker de basisregistraties, zit
helaas niet zo eenvoudig in elkaar. De issues zijn legio:

- iedere basisregistratie heeft eigen interpretatie van GML constructies
(ipv GML Applicatie Schema, m.i. alleen BGT via CityGML, BAG is XML,
IMKAD niet compliant)
- een GFS-bestand wordt bij eerste ogr2ogr "run" aangemaakt, daar hoeven
niet alle feature-typen/geometrieen in te zitten van de dataset. Eigen
GFS bijhouden, ook alleen al voor de veldnamen "waarde" ipv
"oppervlakte" , is zinvol.
- geometrie in GML kent specifieke "Point", of zeer ruime definities
"sequence of Geometry", m.a.w. uit XSD niet af te leiden

Iets generieks zal toch een parser-achtige constructie moeten zijn en
alle features moeten "doorakkeren". Per basisregistratie kun je ook nog
speciale zaken hebben als "historie" (meerdere voorkomens per object id)
bijv BAG. Het is niet voor niets dat NLExtract bestaat :-).

Meerdere geometrieën per feature, bijv:
- BRK-DKK perceel: de Point is label-plaats, m.i. overbodig
- BRT/Top10NL: wegdeel: Punt/Lijn/Vlak, nuttig
- BGT idem

Voor de laatste twee gebruikt NLExtract een "splitter-script" om de
features "plat te slaan" tot 3 feature-typen, bijv wegdeel_lijn, _vlak,
_punt. Zie bijv
https://github.com/opengeogroep/NLExtract/blob/master/top10nl/etl/xsl/top10-split_v1.2.xsl 


Frank en ik komen graag een keer langs bij Kadaster ;-).

Met vriendelijke groet,

--Just


On 20-04-16 09:20, deduikertjes wrote:

> Rein,
>
> Misschien is het goed om iets 'breder' te kijken.
>
> Het object georienteerde datamodel laat vele constructies toe die
> moeilijk zijn 'plat te slaan' in het 'kaartlaag met vaste set
> attributen' datamodel zoals vaak wordt gehanteerd in desktop GIS (met
> name zoals we gewend zijn in ESRI-GIS).
>
> Meerdere type geometrie bij een object is maar 1 zo'n probleem.
>
> Uiteindelijk zul je bij het bruikbaar maken van de data in zo'n
> kaartlaag georiënteerd datamodel gewoon heel goed moeten uitzoeken hoe
> het oorspronkelijke datamodel in elkaar zit, en hoe dat het beste
> omgezet kan worden zodat de benodigde info op een logische manier bij de
> gebruiker komt. Liefst zonder dataverlies en constructies met meerdere
> attributen in 1 kolom.
>
> Hoe dat vervolgens technisch in te vullen is een volgende stap. (Het
> verdient natuurlijk wel aanbeveling om bij het opstellen van een
> datamodel van een basisregistratie gelijk al een weg te kiezen die het
> software makkelijk maakt, maar dat is hier al een gepasseerd station).
>
> Let wel, bovenstaand betoog is geschreven zonder naar het specifieke
> datamodel te kijken en te beoordelen in hoeverre het inderdaad zonder
> problemen 'plat te slaan' is.
>
> Met vriendelijke groet, MArco
>
>
> On 19-04-16 19:39, Rein van 't Veer wrote:
>> Beste Osgeo.nl lijst,
>>
>> Allereerst dank dat jullie naar mijn verzoek zouden willen kijken:
>> mijn naam is Rein van 't Veer en ik werk bij Geodan, gedetacheerd bij
>> het Kadaster. In teamverband werk ik aan het project GRID: een
>> vernieuwingsproject om geodata beter beschikbaar te krijgen.
>>
>> Eén van de doelen van het GRID-project is om de onlangs vrijgegeven
>> Digitale Kadastrale Kaart (DKK, handig per provincie te downloaden
>> vanaf
>> https://www.pdok.nl/nl/producten/pdok-downloads/basis-registratie-kadaster/kadastrale-kaart) op
>> andere manieren te ontsluiten - als REST API en als Linked Data. Maar
>> we lopen er even tegenaan dat de dataset, gedownload als GML de nodige
>> uitdagingen bevat. Dit probleem leg ik graag voor aan deze open groep,
>> aangezien het antwoord erop, naar ik hoop, voor anderen waardevol kan
>> zijn die de DKK willen gebruiken.
>>
>> Zo bevat de 'laag' Percelen per perceelsobject twee typen geometrie:
>> een punt-object en (naar ik in de ruwe GML kan zien), een
>> polygoongeometrie. We zijn natuurlijk vooral geïnteresseerd in de
>> laatste, maar deze wordt door QGIS (via GDAL) gevoeglijk genegeerd.
>> GDAL lijkt maar moeizaam om te kunnen gaan met meer dan één geometrie
>> per object.
>>
>> Vraag is nu: hoe krijg ik de polygonen (de brk_krt:begrenzingPerceel)
>> geconverteerd naar GeoJSON? En hoe kan ik niet de punten, maar de
>> polygonen vanuit GML openen in QGIS? GDAL lijkt helaas een voorkeur te
>> hebben voor de puntgeometrieën. De pagina
>> http://www.gdal.org/drv_geojson.html geeft wel enige aanwijzing voor
>> conversie met behulp van de omgevingsvariabele
>> GEOMETRY_AS_COLLECTION=YES, maar dit lijkt niet het gewenste effect te
>> hebben op bijvoorbeeld een opdracht als:
>>
>> $ ogrinfo Perceel.gml
>> Had to open data source read-only.
>> INFO: Open of `Perceel.gml'
>>       using driver `GML' successful.
>> 1: Perceel (Point)
>>
>> $ ogr2ogr -f GeoJSON Perceel.NO.geojson Perceel.gml
>>
>> $ ogrinfo Perceel.NO.geojson
>> ERROR 4: GeoJSON Driver doesn't support update.
>> Had to open data source read-only.
>> INFO: Open of `Perceel.NO.geojson'
>>       using driver `GeoJSON' successful.
>> 1: OGRGeoJSON (Point)
>>
>> $ export GEOMETRY_AS_COLLECTION=YES
>>
>> $ ogrinfo Perceel.YES.geojson
>> ERROR 4: GeoJSON Driver doesn't support update.
>> Had to open data source read-only.
>> INFO: Open of `Perceel.geojson'
>>       using driver `GeoJSON' successful.
>> 1: OGRGeoJSON (Geometry Collection)
>>
>> De Geometry Collection bevat vervolgens enkel punten. GDAL onderkent
>> geen polygonen in de dataset. Hoe kom ik er op een elegante
>> (automatische) manier achter welke typen geometrie er in de dataset
>> zitten? Iemand enig idee hoe dit benaderd kan worden? Ik heb wel een
>> vergelijkbare melding gevonden op
>> <http://gis.stackexchange.com/questions/37217/why-are-the-polygons-in-my-gml-not-rendered>http://gis.stackexchange.com/questions/37217/why-are-the-polygons-in-my-gml-not-rendered maar
>> het handmatig aanpassen van het GDAL .gfs is niet echt een elegante
>> oplossing. Moet ik met Sax of een ander olifantenmiddel de
>> puntgeometrieën eruit filteren? Of kan er een andere library benut
>> worden zoals de Java(Script) Topology Suite?
>>
>> Alles suggesties zijn welkom, alvast veel dank,
>> Rein van 't Veer
>>
>>
>> _______________________________________________
>> Dutch mailing list
>> [hidden email]
>> http://lists.osgeo.org/mailman/listinfo/dutch
>
>
>
> _______________________________________________
> Dutch mailing list
> [hidden email]
> http://lists.osgeo.org/mailman/listinfo/dutch
>





_______________________________________________
Dutch mailing list
[hidden email]
http://lists.osgeo.org/mailman/listinfo/dutch