Dataset met centrum van plaats lat/lon

Is er een (open) dataset waar ik het lat/lon van een “centrum” kan vinden. Nu krijg ik alleen de centroide van een polygon terug. Zie voorbeelden hier van Deurningen (die 2 keer terugkomt).

Volgens mij heeft dit topic hetzelfde probleem (centroide van Harlingen ligt in de waddenzee).

Ik wil eigenlijk gewoon het centrum (bebouwde kom polygon?) van Deurningen.

Het nationaal georegister geeft alleen de centroide: https://geodata.nationaalgeoregister.nl/locatieserver/v3/free?fq=type:woonplaats&fl=*&q=deurningen&rows=10

Bijvoorbeeld: Deurningen (stuk gemeente dinkelland)

Kasper,

Je vraag is niet heel duidelijk.

  • wat bedoel je met “centrum”?
  • in de eerste regel lijk je te vragen om een punt (lat/lon), even later staat er “Ik wil eigenlijk gewoon het centrum (bebouwde kom polygon?) van Deurningen” Daarbij lijk je te vragen om een polygoon.
  • in die laatste regel lijk je ook te vragen om de bebouwde kom, in de eerste om het “centrum”.
  • in de eerste regel vraag je naar een dataset, in die laatste vraag je alleen om Deurningen. Is een antwoord voor alleen Deurningen genoeg?

Als je je vraag scherper stelt kunnen we je makkelijker helpen.

MArco

1 like

@marco_duiker Sorry, als ik m’n vraag niet goed geformuleerd heb.

wat bedoel je met “centrum”?
Met centrum bedoel ik een plek die over het algemeen door mensen als het centrum van een plaats beschouwd wordt. Van oudsher misschien het marktplein of een kerk.

in de eerste regel lijk je te vragen om een punt (lat/lon), even later staat er “Ik wil eigenlijk gewoon het centrum (bebouwde kom polygon?) van Deurningen” Daarbij lijk je te vragen om een polygoon.
Ik ben op zoek naar een punt. Ik benoemde de polygoon omdat het nationaalgeoregister de centroide als lat/lon terug geeft van de polygoon.

in die laatste regel lijk je ook te vragen om de bebouwde kom, in de eerste om het “centrum”.
Ik zou me voor kunnen stellen dat de de centroide van een bebouwde kom polygoon nauwkeuriger is dan de centroide van de hele plaats (dus ook buiten bebouwde kom).

In de eerste regel vraag je naar een dataset, in die laatste vraag je alleen om Deurningen. Is een antwoord voor alleen Deurningen genoeg?
Ik ben op zoek naar een dataset voor alle woonplaatsen.
Deurningen was een specifiek voorbeeld omdat dit als plaats ook 2 keer terugkomt (nl. een deel hoort bij de gemeente dinkeland en een deel huurt bij gemeente oldenzaal). De centroide van beide delen valt buiten het “bebouwde centrum”.

OK, dank je wel. Dat maakt een hoop duidelijk.

Ik ken geen open dataset van “plekken die over het algemeen door mensen als het centrum van een plaats beschouwd wordt”.

Je zult zelf iets moeten construeren. Daarbij is van belang te weten dat een centroide het middelpunt (eigenlijk zwaartepunt) van het vlak is, mits dat punt op het vlak ligt. Zo niet, dan is het een willekeurig punt op het vlak. Bebouwde kommen zijn dan inderdaad al gauw beter dan bijvoorbeeld gemeenten.

Je zou ook het wijk- en buurtregister kunnen gebruiken, en de centroide nemen van de wijk of buurt die het meest overeen komst met jouw idee van een centrum. Je kunt daarvoor bijvoorbeeld alle buurten nemen met “centrum” of “kern” in de naam, en dan kijken of dat ze inderdaad allemaal zijn. Voor Deurningen komt deze techniek mooi uit:

Als laatste kun je ook gewoon je woonplaatsnamen aan Google voeren en kijken waarmee die terugkomt.
In het geval van Deurningen gaat dat heel goed: Google Maps

Verder ingezoomd: Google Maps

Zoiets is te automatiseren, hoewel je wel goed op de licentievoorwaarden van Google moet letten.

Overigens vind ik bij Deurningen de PDOK locatieserver ook niet heel slecht (een paar honderd meter fout, maar dit is toevallig omdat ik gewoon de eerste (alfabetisch) straatnaam heb genomen (Beekdal)):

Imho een doenbaar knutselklusje.

Groet, MArco

1 like

@marco_duiker Bedankt voor je reactie en de voorbeelden, dat helpt me zeker verder.

Google is officieel lastig qua licentie voorwaarden, maar uiteindelijk is lat/lon natuurlijk wel vrije data (desnoods wat cijfers achter de komma iets aanpassen).

Je noemt het wijk- en buurregister. Waar kan ik deze data vinden?
Ik ben redelijk nieuw op het vlak van geo (gelukkig heeft dit forum veel info en goede hulp), met welke tool en hoe heb je dat plaatje van Deurningen gemaakt? Dan kan ik zelf even testen. Ik denk dat centroide van een “centrum of kern” inderdaad is wat ik zoek.

Ik was nu aan het kijken naar de BRT Restful API, hier staan ook selectors in als woonkern, buurtschap, buurt, wijk. RESTful API - PDOK

Kan ik deze gebruiken of is er een makkelijkere manier?

1 like
1 like

het plaatje Deurningen komt uit QGIS. OpenSource en gratis en zeer goed!

1 like

@Anton @marco_duiker Dank voor jullie reactie, ik ga hier even mee puzzelen.

Beste Kasper,

Zou je, in de beste open source traditie, de uitkomst van je puzzel ook hier willen delen? Dan hebben anderen die in de toekomst een vergelijkbaar probleem hebben en op dit draadje stuiten er ook wat aan.

Succes!

2 likes

Hoi Kasper,

Er zijn veel manieren om centroides te berekenen voer een polygoon, zoals:

  • gemiddelde xy-coordinaat
  • midden van de “bounding box”
  • wilekeurig punt dat gegarandeerd in de polygoon ligt
  • punt dat het verst ligt van de grens
  • etc.

Voor een vergelijkbare vraag heb ik ooit de gemiddelde x- en de gemiddelde y-coordinaat bepaald van alle verblijfsobjecten (adressen) in een BAG-woonplaats. Dat gaf een heel aardig resultaat.

Succes!
Raymond

1 like

Ik heb ook even gekeken bij OpenStreetMap. Wellicht is dat een simpelere route.

https://nominatim.openstreetmap.org/ui/search.html?q=deurningen

Hier lijkt inderdaad het “centrum” van de bebouwde kom goed aangegeven (iig als je het gemeente Dinkelland deel pakt van Deurningen).

Ik zal m’n proces even vastleggen en hier delen.

Ik vrees dat dat je overal wel tegen uitzonderingen gaat aanlopen. Als je Hoorn opzoekt in OSM bijvoorbeeld, komt de locatie helemaal niet in de binnenstad uit, wat “men” als centrum aanduid. Lintdorpen zijn ook een leuke uitdaging, en kleinere dorpen waar bij het CBS de Buurt gelijk is aan de woonplaats zo’n beetje.
En de BRT: Ik heb niet echt naar de dataset gekeken, maar daarbij loop je het risico dat je daar het cartografische plaatsingspunt van de plaatsnaam te pakken hebt (en da’s vrijwel nooit in het centrum maar in een kaal stukje er vlak in de buurt).
Dus het is ook heel erg afhankelijk van waarvoor je dit nodig hebt. Je hebt best kans dat het nog het snelst is en het beste resultaat geeft om handmatig alle woonplaatsen af te lopen :flushed:
Je zou eens kunnen navragen bij de ANWB, die plaatst over het algemeen de borden met dingen als “Centrum” er op. Die moeten een idee hebben van welk bord welke richting op moet wijzen lijkt me, dus misschien hebben die iets. Maar ik weet niet of zij hun data willen delen.

1 like

Hoi Kasper,
De plaatsvlakken uit de BRT kunnen gebruik worden voor het selecteren van de plaatsen. Plaatsvlakken van het type “woonkern”, “recreatiekern” of “industriekern” bevat de plaatsen aangeduid met de blauwe kom-borden, waarbij de geometrie de bebouwing omsluit. Het buitengebied is dus niet meegenomen. Informatie over hoe deze plaatsvlakken ingewonnen worden kun je hier vinden: imbrt | Informatiemodel van de Basisregistratie Topografie
Naast de BRT API kun je wellicht ook van de Geopackage gebruik maken: https://service.pdok.nl/kadaster/top10nl/atom/v1_0/top10nl.xml
Het berekenen van het centrum zal je zelf moeten uitvoeren, dat gegeven zit niet in de BRT.
Succes!

2 likes

De geometrieën van wijken en buurten kan je eventueel ook ophalen via de PDOK locatieservice, door de vrije geocodeerservice te gebruiken, zie https://github.com/PDOK/locatieserver/wiki/Zoekvoorbeelden-Locatieserver.

OSM data is via overpass-turbo.eu eenvoudig te bevragen vanuit je browser. Met de volgende query kan je de locaties van de plaatsen op vragen:

[out:json][timeout:25];
(
  node["place"="city"]({{bbox}});
  node["place"="town"]({{bbox}});
  node["place"="village"]({{bbox}});
  node["place"="suburb"]({{bbox}});
  node["place"="hamlet"]({{bbox}});
);
out body;
>;
out skel qt;

Bovenstaande query is uiteraard afhankelijk van wat je als plaats beschouwt. Zie de OSM wiki over key:place. Zoals @sbjager aangeeft geeft een plaats in OSM niet altijd het centrum aan, maar zo over het algemeen lijkt het wel te kloppen. Het mooie van OSM is ook dat je de data zelf kan aanpassen :smile:

Dank. Inderdaad, zo krijg ik wijken terug:
https://geodata.nationaalgeoregister.nl/locatieserver/v3/free?q=enschede&fq=type:wijk

Al is dat iets te gedetailleerd, soms zijn er ook delen als Noord, Oost etc. die krijg ik hier niet terug lijkt het.

Bedankt, qua punten lijkt dit nauwkeurig genoeg. Weet je of OSM ook bebouwde kom grenzen heeft?

@daniel.tewinkel Ook bedankt, dit helpt. Ik heb het bestand al ingelezen in QGIS (nu nog een beetje wegwijs worden in dit programma).

1 like

De bebouwde kom grenzen zit als zodanig niet in OSM, maar OSM bevat wel Key:landuse. Hiermee kan je gebieden die bebouwd zijn als polygonen opvragen. Zie hier een voorbeeld query.

Ik denk dat je het verst komt door alle suggesties hier te combineren. Ik zie in de CBS data bijvoorbeeld dat er twee buurten “Binnenstad” zijn voor Hoorn, die zou je kunnen combineren met de bebouwde komgrenzen, en eventueel met de OSM gegevens als je het geautomatiseerd wil opzetten. Maar dan nog loop je tegen een heleboel uitzonderingen aan, en tegen zaken als kleine lintdorpen die niet echt een centrum hebben. Of bijvoorbeeld Lelystad: waar ligt het centrum van Lelystad?

Betekent wel dat je aan het eind van deze klus waarschijnlijk een QGis expert bent geworden :wink:

Overigens wel een erg interessante uitdaging om het te automatiseren (dat zegt de geo-nerd in mij :laughing:)