Delen van NL fietsenstallingen vanuit VeiligStallen

Hallo NL OSM community, ik ben nieuw hier. OSM ken ik uiteraard al decennia.

VeiligStallen is een online platform waarop data-eigenaren zoals gemeenten en stallingsbeheerders fietsenstallingendata beheren. De data wordt als open data gedeeld middels API’s. Het doel van VeiligStallen is de meest betrouwbare en meest actuele bron voor fietsenstallingendata te hebben. Op https://beta.veiligstallen.nl zie je de data die erin staat.

Ik ben onderdeel van het projectteam van VeiligStallen, als software-ontwikkelaar. Het projectteam VeiligStallen wil graag de informatie in OSM verrijken met de informatie die de fietenstallingseigenaren en -beheerders publiceren via VeiligStallen. Zou iemand met ervaring met OSM eens willen meekijken naar dit voorstel, voor het delen van de VeiligStallen-data met OSM? →

OSM importvoorstel template (VeiligStallen)

Ik werk aan VeiligStallen, een open data bestand met fietsenstallingendata zoals naam, beheerder, openingstijden en diensten. Het projectteam van VeiligStallen wil graag de open data delen met Open Street Map, zodat de Nederlandse fietsenstallingendata op OSM zo gedetailleerd en actueel mogelijk is.

Dit document dienst als basis voor een importvoorstel op de OSM Wiki, voor afstemming met de Nederlandse community en imports@openstreetmap.org.

1) Samenvatting

  • Projectnaam: VeiligStallen fietsenstallingen NL
  • Doel: Bestaande OSM-fietsenstallingen verrijken en ontbrekende stallingen toevoegen.
  • Gebied: Nederland
  • Type bewerking: Conflatie + handmatige review (geen ongecontroleerde bulkimport)

2) Databron

  • Bronhouder: CROW / VeiligStallen
  • Bron-URL: https://beta.veiligstallen.nl/api/osm/fietsenstallingen
  • Query parameters:
    • cbsCode (optioneel, integer) voor filtering op gemeente via CBS gemeentecode
    • Voorbeeld Utrecht: https://beta.veiligstallen.nl/api/osm/fietsenstallingen?cbsCode=344
    • Bij ongeldige waarde geeft de API een 400 foutmelding
  • Formaat: GeoJSON (FeatureCollection met Point geometrie)
  • Updatefrequentie: als overheden de fietsenstallingendata updaten, ongeveer eens per halfjaar
  • Dekking: heel Nederland, voor alle deelnemende gemeenten (verschilt door tijd)

3) Licentie en toestemming

Bron: https://fietsberaad.nl/Kennisbank/Fietsparkeer-Management-Systeem-(VeiligStallen)

Gepubliceerde datadelingstekst:

CROW-Fietsberaad biedt alle statische informatie over de stallingen plus informatie over de actuele bezetting aan als open data. De informatie kan worden opgevraagd op gemeente- of locatieniveau. De data zijn vrij te gebruiken, maar we stellen het zeer op prijs hiervan op de hoogte te worden gesteld. Dit kan via fietsberaad@crow.nl onder vermelding van “Gebruik Open Data VeiligStallen.nl”. CROW Fietsberaad noch de gemeenten zijn aansprakelijk voor de juistheid van de gegevens.

  • OSM-compatibiliteit bevestigd: [ja/nee]
  • Schriftelijke toestemming beschikbaar: [ja/nee, link/bijlage]
  • Voorwaarden/herkomst data gedocumenteerd: [ja/nee]

Aanbeveling voor OSM-import:

  • Vraag expliciet per e-mail bevestiging dat bijdragen aan OSM onder ODbL toegestaan zijn (inclusief afgeleide data en herdistributie), en archiveer deze bevestiging bij het importvoorstel. Zonder expliciete ODbL-compatibele toestemming geen import starten.

4) Data model en tagmapping

Gebruik mapping uit:

Kern:

  • amenity=bicycle_parking
  • ref:veiligstallen=*
  • capacity=*
  • operator=*
  • opening_hours=*
  • website=*
  • supervised=*
  • bicycle_parking=*

Belangrijke noot:

  • De OSM endpoint levert al OSM-gerichte properties (zoals amenity, ref:veiligstallen, capacity, operator, opening_hours, supervised, bicycle_parking) en aanvullende veiligstallen:* velden voor review/conflatie.

5) Conflatie methode

  • Stap 1: Bestaande OSM-objecten ophalen in pilotgebied.
  • Stap 2: Match op ref:veiligstallen, anders op afstand + naam + adres.
  • Stap 3: Kandidaten classificeren:
    • match zeker → update voorstel
    • mogelijk match → handmatige review
    • geen match → nieuw object voorstel
  • Stap 4: Handmatige validatie in JOSM (of vergelijkbaar).

6) Kwaliteitscontroles

  • Controle op dubbele objecten.
  • Controle op ongeldige geometrie.
  • Controle op onrealistische capaciteit/openingstijden.
  • Controle op tagconsistentie (amenity=bicycle_parking aanwezig).

7) Uitrolplan

  • Pilot 1: 1 gemeente, max 100-200 objecten.
  • Reviewmoment: community feedback verwerken.
  • Pilot 2: 3-5 gemeenten.
  • Landelijke uitrol: in batches per regio/gemeente.

8) Changesets en transparantie

  • Changeset bron-tag: source=VeiligStallen
  • Changeset hashtag: #veiligstallen #osmnl
  • Changeset comment: Conflation/update bicycle parking from VeiligStallen (reviewed)
  • Publiceer query of dashboard met uitgevoerde wijzigingen.

9) Rollback plan

  • Bewaar alle gewijzigde object-ID’s per batch.
  • Houd import-script + invoer snapshots per batch bij.
  • Bij fouten: rollback per batch met reproducerbare procedure.

10) Contact

  • Organisatie: CROW / VeiligStallen
  • Technisch contact: bart@tuxion.nl
  • Community contact: bartwrt, bart@tuxion.nl

Dank voor het meedenken :folded_hands:

3 Likes

Goed plan wat mij betreft, wat vragen/opmerkingen:

  • Ik ben verbaasd dat maar een (klein) deel van de stationsstallingen op de kaart te vinden zijn, wat is het verhaal daarachter? Wat is de link met de NS-API?
  • Wat maakt een stalling een VeiligStallen stalling? Kan elke stalling een VeiligStallen worden?
  • Wat maakt voor een gebruiker een VeiligStallen stalling “speciaal”
  • De VeiligStallen data heeft een punt coördinaat van maar stallingen in OSM lijken 50% punt en 50% omtrek te zijn en enkele relaties. Gaat dat goed?
  • De VeiligStallen naar OSM tag mapping ziet er goed uit.

Mooi initiatief. Kan zijn dat ik het mis hoor, ik heb maar 2 minuten gezocht, maar waar staat op https://beta.veiligstallen.nl/ de verwijzing dat er OSM-data gebruikt wordt?

Zie ook: Copyright and License | OpenStreetMap

Het plan ziet er goed uit. Een paar haken en ogen zijn al genoemd.

Er lijkt op dit moment vrij weinig data te zijn. Wat is de ambitie?

Ik heb specifiek voor gemeente Haarlem de data bekeken, wat mij opviel: outdated url verwijzingen van toen gemeente Haarlem de openbare fietsenstallingen zelf beheerde.
Al jaren wordt het beheer van openbare fietsenstallingen en parkeergarages in Haarlem uitbesteed aan Spaarnelanden in de fietsenstalling urls staan daardoor in OSM de actuele wel werkende url doorverwijzingen…
Hoe wordt gegarandeerd dat de info van Haarlem niet overschreven gaat worden door outdated data ?

Een voorbeeld:
ondergrondse fietsenstalling op stationsplein Haarlem



Juiste url: Fietsenstalling Stationsplein | Spaarnelanden

1 Like

Als ik even kijk naar het centrum van Nijmegen:
Volgens veiligstallen:

Volgens Fiets stallen - Gemeente Nijmegen

Die op de site van gemeente Nijmegen lijkt completer en nauwkeuriger.
Fietsenstalling Mariënburg (marker rechtsonder midden) ligt zo’n 50 meter zuidelijker dan veiligstallen aangeeft.
Kelfkensbos ontbreekt, maar die is ook vrij nieuw.

In OSM ontbreekt op het moment alleen die in de Molenstraat. Ik zou niet precies weten waar de ingang zit. Is blijkbaar ook enkel voor bewoners/werknemers in de binnenstad met abonnement.

1 Like

Het lijkt inderdaad dat er bij veiligstallen zeer verouderde data gebruikt wordt.
Is mijn ervaring in Haarlem (zie eerdere post in dit draadje) ook.
Daarom ook mijn zorg geuit m.b.t. data die over dit onderwerp nu in OSM opgeslagen is dat data in OSM niet overschreven kan worden.

Dankjulliewel voor de reacties en feedback! Hieronder reageer ik op de diverse vragen/opmerkingen.

@emvee: Ik ben verbaasd dat maar een (klein) deel van de stationsstallingen op de kaart te vinden zijn, wat is het verhaal daarachter? Wat is de link met de NS-API?

Via de NS-API worden alle NS-stallingen in VeiligStallen geladen. Deze NS-stallingen zullen ook terugkomen via de API gedeeld met OpenStreetMap. Momenteel zijn dit de NS-stallingen in VeiligStallen, die elke dag geupdate worden met actuele data vanuit de NS-API:

  • 49 bewaakte stallingen
  • 57 geautomatiseerde stallingen

@emvee: Wat maakt een stalling een VeiligStallen stalling? Kan elke stalling een VeiligStallen worden?

Gemeenten en andere data-eigenaren die lid zijn van VeiligStallen kunnen stallingsdata beheren via VeiligStallen.nl. Gemeenten die geen lid zijn van VeiligStallen beheren niet hun stallingsdata via VeiligStallen. Aan OpenStreetMap zullen dus alleen gedetailleerde fietsenstallingdata aangeleverd worden van deelnemende gemeenten. Die data is dan wel zo goed mogelijk.

@emvee: Wat maakt voor een gebruiker een VeiligStallen stalling “speciaal”

Ik weet niet zeker of ik deze vraag goed begrijp. Een VeiligStallen-stalling is een stalling waarvan de stallingsinformatie door de data-eigenaar beheerd wordt via VeiligStallen.nl. Het platform VeiligStallen.nl probeert zo betrouwbaar en actueel mogelijke data te hebben van fietsenstallingen in heel Nederland. Vele gemeenten in Nederland beheren de stallingsinformatie via VeiligStallen en krijgen (bijvoorbeeld) halfjaarlijks een verzoek tot controle van de gegevens.

@emvee: De VeiligStallen data heeft een punt coördinaat van maar stallingen in OSM lijken 50% punt en 50% omtrek te zijn en enkele relaties. Gaat dat goed?

Dit is inderdaad iets om uit te zoeken.

@Geim: Mooi initiatief. Kan zijn dat ik het mis hoor, ik heb maar 2 minuten gezocht, maar waar staat op https://beta.veiligstallen.nl/ de verwijzing dat er OSM-data gebruikt wordt?

Ik denk dat je bedoelt dat er op de website, bij de kaart, een attributielabel moet zijn die aangeeft dat de kaartdata deels van Mapbox en deels van OpenStreetMap komt. We hebben dit nu duidelijker gemaakt, door het attribution-label linksonder op de kaart te tonen.

1 Like

@Peter_Elderson: Er lijkt op dit moment vrij weinig data te zijn. Wat is de ambitie?

Er is momenteel data van in totaal 1783 fietsparkeerplekken. De ambitie is om te zorgen dat de huidige deelnemende data-eigenaren van VeiligStallen de fietsenstallingeninformatie zo acuraat en up to date mogelijk houden. We doen dit door contactpersonen controles te laten uitvoeren op de data.

@Dillen_GJ: Ik heb specifiek voor gemeente Haarlem de data bekeken, wat mij opviel: outdated url verwijzingen van toen gemeente Haarlem de openbare fietsenstallingen zelf beheerde. Hoe wordt gegarandeerd dat de info van Haarlem niet overschreven gaat worden door outdated data ?

Dank voor die feedback! In het voorstel is er nog een ‘handmatige validatie’-stap, die mogelijk fouten voorkomt.

In het projectteam van VeiligStallen heb ik dit verder ook besproken. We hebben besloten om in het API end point voor OSM toe te voegen: de datum/tijd waarop een data-eigenaar (zoals Gemeente Haarlem) voor het laatst heeft aangegeven dat de stallingsinformatie klopt. Met deze informatie erbij is duidelijk of er goed opgelet moet worden of dat de data waarschijnlijk wel klopt, want recent gecontroleerd en goedgekeurd door de data-eigenaar zelf. Een optie is nog dat we niet alle fietsenstallingen doorgeven, maar alleen de fietsenstallingen waarvan de data-eigenaar afgelopen jaar nog de details geverifieerd heeft.

Het veld dat we gebruiken voor het delen van datum/tijd van de laatste datakwaliteit-controle door de data-eigenaar is: `veiligstallen:last_verified_by_data_owner`.

1 Like

@spaanse: ‘De stallingen op de site van gemeente Nijmegen lijken completer en nauwkeuriger dan in VeiligStallen’.

Dank voor die feedback! Zie bovenstaand antwoord aan @Dillen_GJ voor onze voorgestelde oplossing:

  1. Deze maand vragen we alle contactpersonen bij de gemeentes om de data te controleren
  2. In de fietsenstallingen-datafeed naar OSM voegen we een veld toe per stalling met de datum/tijd van laatste data-controle door data-eigenaar

Uitleg geupdate API end point:

Het API end point met alle fietsenstallingen staat op https://beta.veiligstallen.nl/api/osm/fietsenstallingen Hier is het last_verified_by_data_owner veld toegevoegd.

1 Like

@bartwrt
De nieuwere grote fietsenstallingen hebben tegenwoordig een digitaal bord bij de ingang staan waarop staat hoeveel vrije plekken er nog in de fietsenstalling aanwezig zijn.
Is er een mogelijkheid om deze data ook op te nemen in de dataset ?
Het is fijn om bij de ingang van een stalling te zien of je je fiets nog kwijt kan maar het zou natuurlijk fantastisch zijn vóóraf te zien/onderweg (dus op afstand) of primair gekozen fietsenstalling een fietsritje wel waard is als ie al 100% of near 100% vol is… want dan kan de fietser vóóraf een alternatief zoeken (secundaire fietsenstalling en/of ander [deel]vervoer bijvoorbeeld).

En dan graag een plattegrondje erbij waar de vrije plaatsen zijn.
Bij auto’s is het één auto per slag, dus dan kan je redelijk tellen hoeveel plaatsen er bezet/vrij zijn. Bij fietsen lijkt me dat een stuk lastiger, tenzij elke fiets apart in- en uitgecheckt wordt, en dat lijkt me dan voor de fietsers weer erg lastig. Maar daar hebben ze vast wel iets slims op gevonden.

In de grootste fietsenstalling ter wereld in Utrecht heeft elke rij met dubbele fietsrekken een display dat aan geeft dat hoeveel plaats er is onder en in de bovenrekken. Best handig moet ik zeggen.

Uit deze Youtube video.

Daar houden denk ik de rekken de bezetting plaats voor plaats bij. Zoals bij kluisjesautomaten.

Ik zie dat hier in Nieuwerkerk toch niet gauw gebeuren. Een bordje wanneer de volgende wrakkenruiming gebeurt, dat zou wel nuttig zijn. Dan kan je op tijd je ouwe fietsen daarheen brengen, in plaats van in de plomp pleuren.

2 Likes

Prorail Fietsenstalling Nieuwerkerk even bekeken met S&P Oblique en bijgewerkt.

https://osmcha.org/changesets/181176350

Moet het Oranjepad aan de Zuid kant niet highway=path zijn of zijn er nog fietsers die va het Kerklaan fietspad komen die naar de fietsenstalling loopt?

Nieuwerkerk laat nog een ander conflatie probleem zien, de fietsenstalling bestaat uit een Noord en Zuid deel.

Het Noord deel bestaat weer uit drie objecten “fietsrekken onder overkapping” en één object “lockers”, het Zuid deel uit vier objecten “fietsrekken onder overkapping” en één object “lockers”.

Als ik .pdf van de API bekijk dan zie ik location, section zelfs place:

Opvragen informatie van een bepaalde locatie
GET /citycodes/:citycode/locations/:locationid

Opvragen informatie van een specifieke sectie
GET /citycodes/:citycode/locations/:locationid/sections/:sectionid

Opvragen informatie van alle plekken van een sectie
GET /citycodes/:citycode/locations/:locationid/sections/:sectionid/places/

Krijgt elk object “fietsrekken onder overkapping” een sectionid?

Ja, onduidelijke vraag. Goed te weten dat Veiligstallen een Fietsparkeer Management Systeem is. Een betere vraag zou zijn wat ik er als fietsers die zijn fiets wil parkeren van zou merken.

Ik weet dat in bijvoorbeeld fietsenstalling Houtplein, Haarlem de bezetting via microswitches bijgehouden word: zodra je je fiets in een rekhouder plaatst gaat door het gewicht een schakelaartje om zodat aan de ingang het aantal vrije plaatsen verminderd met 1.