Leaflet

Scootervrije fietspaden in Amsterdam

Begin volgend jaar worden de meeste fietspaden in Amsterdam scootervrij en moeten snorfietsen op de rijbaan rijden. Hierdoor wordt het fietspad veiliger voor fietsers. Het zorgt ook voor schonere lucht op het fietspad.

De gemeente heeft een kaart gemaakt met het nieuwe snorfietsregime. Als m’n berekening klopt, dan moeten snorfietsen op 180 km naar de rijbaan (blauw op de kaart) en is er nog 71 km waar ze helemaal niet meer mogen komen omdat er geen rijbaan is in de rijrichting (rood). Maar ze mogen nog steeds gebruikmaken van 93 km aan fietspaden (groen), althans voorlopig.

Drukke fietspaden

Om te bepalen welke fietspaden scootervrij worden, heeft de gemeente gegevens gebruikt van de Fietstelweek, het project waarbij locatiegegevens van duizenden fietsers worden verzameld. Op zich is dat opmerkelijk, omdat overheden klagen dat het aantal deelnemers aan de Fietstelweek afneemt (daarom experimenteren ze met gegevens van Strava).

Misschien is dat ook de reden waarom de gemeente gegevens van de Fietstelweek 2016 heeft gebruikt (in plaats van 2017) om drukte op fietspaden in beeld te krijgen. De gemeente heeft de gegevens van de Fietstelweek met eigen tellingen gevalideerd. Volgens het Centrum voor Wiskunde van de Universiteit van Amsterdam is de methode ‘betrouwbaar en toepasbaar’.

Ik heb een kaart gemaakt waarop je ziet hoe het nieuwe snorfietsregime zich verhoudt tot de gegevens van de Fietstelweek. De breedte van de roze lijnen correspondeert met het aantal fietsers op een bepaalde route; de groene stippellijnen laten zien waar snorfietsen in de toekomst nog steeds op het fietspad mogen rijden.

De gemeente lijkt er behoorlijk in te zijn geslaagd om de drukste fietsroutes te vermijden (voor een deel gaat het overigens om routes waar sowieso geen afgescheiden fietspad is en waar snorfietsen dus niet op het fietspad kunnen rijden).

Toch zijn er nog problemen. Neem het fietspad langs de IJ-zijde van CS, waar het behoorlijk druk kan zijn en sommige snorfietsen gevaarlijk inhalen. Of de Amsterdamse en Schellingwouderbrug, waar de fietspaden te smal zijn voor scooters.

Alle fietspaden scootervrij

In de toekomst wil de gemeente alle verplichte fietspaden binnen de ring scootervrij maken. Uiteraard wil ze daarbij de veiligheid van snorfietsrijders niet in gevaar brengen. Dit zal eenvoudiger zijn op wegen waar auto’s niet al te hard rijden.

De kaart hieronder laat zien hoe hard er op dit moment wordt gereden op het Hoofdnet Auto. De groene lijnen laten zien waar snorfietsen vooralsnog op het fietspad mogen blijven rijden.

Ik weet natuurlijk niet wat hoe de situatie is op het moment dat je dit leest, maar de kans is groot dat er het hardst wordt gereden (op trajecten waar snorfietsen voorlopig op het fietspad mogen rijden) op routes als de Gooiseweg en de eerdergenoemde Amsterdamse en Schellingwouderbrug. Op die bruggen houden veel automobilisten zich niet aan de maximum snelheid. De gemeente wil de inrichting van deze wegen aanpassen zodat automobilisten langzamer gaan rijden. Pas daarna worden snorfietsen hier naar de rijbaan gestuurd.

Op andere routes zou het relatief eenvoudig moeten zijn om de overgebleven fietspaden scootervrij te maken. Overigens zou het nog praktischer zijn om de categorie snorfiets gewoon af te schaffen.

Met dit formulier kan je reageren op de plannen van de gemeente. De deadline is 24 september.

Methode

De eerste kaart heb ik gemaakt met Qgis en de tweede met Leaflet. De lengte van routes heb ik berekend met GeoPandas en Shapely. Op de eerste kaart kan de breedte van de roze lijnen enigzins vertekend zijn als gevolg van variërende afstanden tussen fietsroutes aan beide kanten van de straat.

Scooter-free cycle tracks in Amsterdam

Amsterdam plans to ban scooters from most cycle tracks. Currently, cycle tracks are still used by the so-called snorfiets category which has a speed limit of 25km/h - although most ride (much) faster. The measure will make cycle tracks safer for cyclists, and it will also result in cleaner air on cycle tracks.

The city has produced a map showing the new snorfiets regime. By my calculations, snorfietsen will have to use the road on a total of 180km (blue on the map) and they will be banned from another 71km of routes where there’s only a cycle track (marked in red). However, they’ll still be allowed to use about 93km of cycle tracks (green), at least for now.

Busy cycle tracks

To decide where to ban scooters from the cycle track, the city used data from the Fietstelweek, the large-scale initiative to collect smartphone location data from cyclists. This is interesting, since governments have complained that the number of participants in the Fietstelweek is declining (they started experimenting with Strava data instead).

Perhaps that’s why the city of Amsterdam used the 2016 edition of the Fietstelweek (rather than 2017) to assess how busy cycle tracks are. It used its own traffic counts to validate the Fietstelweek data. The Mathematics Centre of the University of Amsterdam deemed the method used ‘reliable and suitable’.

I’ve created a map to show how the new snorfiets regime compares to Fietstelweek data. The width of the pink lines corresponds to the number of cyclists who used a route; the green dotted line shows where snorfietsen will still be allowed to use the cycle track.

It appears that the city has done a decent job at avoiding the busiest cycling routes (in some cases, this is because these routes don’t have separate bicycle tracks to begin with).

That said, some problems remain. One example is the cycle track along the IJ north of Central Station, which can be very busy and where some snorfiets riders overtake other traffic in a dangerous way. And there’s the Amsterdamse Brug and Schellingwouder Brug (the bridges to the northeast of Amsterdam), where cycle tracks are too narrow for snorfietsen.

Making all cycle tracks scooter-free

In the future, the city intends to ban scooters from all mandatory cycle tracks within the A10 Ring Road. Obviously, they want to do this without compromising the safety of snorfiets riders. This will be easier on routes where car speed is already low.

The map below shows the current average car speed on major roads. The green lines indicate where snorfiets riders will initially be allowed to continue using the cycle track.

Of course I don’t know what the situation is when you’re reading this, but likely some of the highest car speeds (on sections where snorfietsen will initially be allowed to use the cycle track) will be on the Gooiseweg, entering the city centre from the southeast, and the aforementioned Amsterdamsebrug and Schellingwouderbrug. On those bridges, many motorists exceed the speed limit. The city wants to change the road design to invite lower speeds before banning snorfietsen from the cycle track.

Elsewhere, it should be relatively easy to make the remaining cycle tracks scooter-free. Of course, a more practical solution would be to abolish the snorfiets category altogether.

If you wish to respond to the city’s plans, you can use this form. The deadline is 24 September.

Method

I used Qgis to create the first map and Leaflet for the second. I used GeoPandas and Shapely to calculate lengths. On the first map, the width of the pink may be slightly distorted due to varying distances between cycle routes in opposite directions.

Embedding tweets in Leaflet popups

I just created a map showing where so-called Biro’s (small cars) are parked on the pavement and annoying people. Twitter has quite a few photos of the phenomenon. In some cases, finding their location took a bit of detective work.

First you’ll need the embed code for the tweet. You can get it manually from the Twitter website, but if you want to automate your workflow, use a url like the one below. It’ll download a bit of json containing the embed code:

https://publish.twitter.com/oembed?url=https://twitter.com/nieuwsamsterdam/status/958761072214896640

When trying to embed the tweets in Leaflet popups, I ran into a few problems:

  • When popups open, the markers didn’t properly move down. As a result, most of the popup would be outside the screen. The problem and how to solve it are described here.
  • Twitter embed code contains a script tag to load a widget. Apparently you can’t execute javascript by adding it directly to the html for the popup content, but you can add it using a selector (cf here).

Here’s the code that’ll solve both problems:

map.on('popupopen', function(e) {
    $.getScript("https://platform.twitter.com/widgets.js");
    var px = map.project(e.popup._latlng); 
    px.y -= e.popup._container.clientHeight;
    map.panTo(map.unproject(px),{animate: true});
});

You may also want to do something about the width of the popups, because otherwise they will obscure most of the map on mobile screens and it will be difficult to close a popup (which you can normally do by clicking outside of the popup). You can change the width of embedded tweets, but this will not change the width of the popup itself. A simple solution is to give popups a maxWidth of 215 (.bindPopup(html, {maxWidth: 215})).

Of course, you could also vary maxWidth depending on screen width, but I think 215px works well on all screens. Further, embedded tweets appear to have a minimum width of about 200px, so if you want popups narrower than 215px you’ll have to figure out a way to fix that.

If you embed tweets, Twitter can track people who visit your webpage. Add <meta name="twitter:dnt" content="on"> to your page and Twitter promises they won’t track your visitors. I wasn’t sure whether this should be put in the web page itself or in the html content of the popups (I opted for both).

If the popups have a somewhat spartan look and do not contain photos: Good for you! You’re probably using something like Firefox with tracking protection enabled. This blocks sites which have been identified as ‘engaging in cross-site tracking of users’ - including, apparently, platform.twitter.com.

Beautiful relief maps from Stamen

At Nathan Yau’s Flowing Data, I read that Stamen Terrain maps are now available globally, not just for the United States. Stamen uses Open Street Map and their tiles can be used with Leaflet.

One thing about relief maps is that they rub it in how embarrassingly flat the Netherlands are. For example, here’s the Oude Holleweg near Nijmegen (the nearby Van Randwijckweg was in this year’s Giro). It’s just a 70 meter height difference, but with gradients around 14% it’s one of the most challenging climbs in the Netherlands. Apparently, cyclists are not allowed to ride it downhill because that’s considered dangerous (update: I checked, it’s true, descending is not allowed). But if you look at the map, it doesn’t seem all that impressive.

Be that as it may, the Stamen Terrain maps «sure are pretty to look at», as Yau put it. Even when there’s hardly any elevation to show.

Users versus programmers: lon,lat or lat,lon

Somebody at Mapbox wrote a blog post in which he makes the case that longitude should go first: almost all data formats (including Google’s KML) and all open source software (except Leaflet) use this order. Also, it’s the logical order if you include altitude (XYZ), he argues.

Of course, it can’t be that simple, as this debate on Stack Overflow illustrates. It seems that programmers prefer lon,lat while people who use maps - seafarers, Google Maps users - expect lat,lon. As one commenter puts it:

Good rule of thumb: if you know what a tuple is and are programming, you should be using lon,lat. I would even say this applies if your end user (say a pilot or a ship captain) will prefer to view the output in lat,lon. You can switch the order in your UI if necessary, but the overwhelming majority of your data (shapefiles, geojson, etc.) will be in the normal Cartesian order.

Another good rule of thumb: always check.

Pages