OpenStreetMap

contrapunctus's Diary

Recent diary entries

I had earlier written some PT schema thoughts on my wiki page. I’ve since had some more ideas, which I figured I’d try sharing via diary and see how they are received.

Non-breaking extensions to PTv2

Classed by use cases. (I’ve probably missed some. Please do point them out.)

1. Simple routes

The Stereo system - stops + optional via-points to disambiguate route. No route segments - consumers should generate that themselves.

This makes it significantly easier to create and maintain bus routes, to say nothing of train routes. It also removes some cases of relation-breakage. OsmAnd already supports such relations, although it doesn’t display the route itself in route visualization, only the stops.

(I don’t know of anything else that supports this. Indeed, PT Assistant in JOSM complains about “stop not served” for such relations. If you know of anything that does, please share it.)

2. Stations + varying platforms (trains, buses)

Same as #1 but use stations instead of platforms.

3. Stations + fixed platforms

Same as #1 but maybe platforms should be part of a stop area relation (depicting the station? But isn’t a stop area distinct from a station?), so routers know which station a platform belongs to.

Alternatively, platforms should have the same name=* as the station. (Tag duplication alert)

4. hail_and_ride, ferry routes

Use PTv2. Stop positions to mark start and end of route, ways to show route.

Breaking-change ideas for PTv2

  1. Multiple values for public_transport=* - introduces duck tagging goodness to PT, doesn’t abuse tag semantics (like e.g. highway=bus_stop or railway=station do), and supports multi-modal stops.
    • platform values - bus_stop, minibus_stop, share_taxi_stop, train_platform, metro_platform [1], etc
    • station values - bus_station, metro_station, railway_station, etc

[1] In India, “subway” is an underground pedestrian crossing or a sandwich place, never an intra-city mass transit railway. Duck tagging, to me, implies that tags are directly used by editors, rather than the editing software acting as a go-between, and that these tags should be as close to the editors’ vernacular as possible. To me, this entails that tags get regional variants, e.g. highway=* should be road=* in all applicable countries.

NB - I still don’t know what to make of stop positions. In the past I was of the opinion that they are useless outside of maybe marking the start and end of a route, but they may serve some niche use cases (can anyone please enumerate them?)

Address progress

Posted by contrapunctus on 23 January 2019 in English. Last updated on 4 February 2019.

This post was mostly motivated by the urge to note down some address mapping stats.

Vasant Vihar

  • Target [^1] - 1,296
  • Progress [^2] - 72
  • Remaining [^3] - 1,224

Image of Vasant Vihar building data in the JOSM editor, with buildings having address tags highlighted. Only a few patches of buildings are tagged.

[^1] (building=* or landuse=*) in "Vasant Vihar" and type:way

[^2] (building=* or landuse=*) and "addr:housenumber"=* and type:way

[^3] (building=* or landuse=*) and -"addr:housenumber"=* and type:way

Freedom Fighter Enclave

  • Target - 618
  • Progress - 145
  • Remaining - 473

Image of Freedom Fighter Enclave building data in the JOSM editor, with buildings having address tags highlighted. A significant number of buildings are tagged.

Saket

  • Target - 1,169
  • Progress - 14
  • Remaining - 1,155

Image of Saket building data in the JOSM editor, with buildings having address tags highlighted. Only a fraction of buildings are tagged.

I’ve started using Vespucci of late. Quite a breath of fresh air coming from OsmAnd, where I had to make an offline note for any operation it didn’t support. Not as fast as OsmAnd in adding data rapidly, though (e.g. bus stops when you’re mapping a bus route) - I eagerly look forward to the day when support for completely offline editing is added. I don’t imagine getting RSI from typing key values for each bus stop in OsmAnd to be too much fun 😏

I’m now the 42nd biggest contributor in India. Still the only regular in Delhi, as far as I can make out. Can’t map the whole of this gigantic city all by myself, let alone keep it updated. Not a good situation.

Sometimes I think that people around me might be more interested in contributing if they used a map which used OSM data…but I hesitate to recommend OsmAnd or MAPS.ME to them. One has bleeding-edge data but ugly rendering, and the other is polished in every aspect but the data is multiple months out of date. Also not a good situation. 😣

New bus route - 448

Posted by contrapunctus on 23 August 2018 in English.

Stood about fifteen minutes on the roadside yesterday, trying to decide what to map. On one hand, it was my weekly bus survey day, and on the other, I wanted to see for myself whether the reportedly-newly-opened Pink Line of the Delhi Metro really was extended till Lajpat Nagar or not. Well - Bus Day won over, so I took a 448 to Punjabi Bagh. On the way, on a bridge, I saw a train arrive at a platform on the Pink Line. Fancy-ass new coaches, and the sign declaring “Lajpat Nagar”. Killed two birds with one stone 🙂 [1]

Upon reaching Punjabi Bagh, I saw that a road there was called ‘Shiv Das Puri Road’ on a sign, and ‘Patel Road’ on the map. Figured I had best confirm the name with the locals, in case an alt_name or old_name was required. There was a tobacconist and a food stall there, but going up to them and asking, ‘Say, what’s this road called?’ would sound a little silly, given that there was a perfectly serviceable sign with the name there.

Solution - “Say, can you tell me where’s Patel Road?” Nobody had a clue 😄

I’d not even mapped all the stops at the place when it started raining. Why does it always have to start raining when I’m out surveying a bus route? 🤔 And this time, rain of the sort where it’s largely immaterial whether or not you have an umbrella - I merely walked, umbrella in hand, from a bus stop I was mapping to the one where I’d get the other 448, a distance no greater than 500m, and by that time the only part of me that wasn’t drenched was my bag with the precious phone in it.

On the way back, the conductor and a few passengers were engaged in a discussion. The conductor mentioned that this was the last bus for the day, and that the operator (DIMTS? It was an orange bus, part of the cluster bus scheme) had taken off some 12 buses from the route, bringing the number of buses plying on it from 20 to 8, because (I suppose this was his guess, even if he said it with matter-of-factly confidence) the people of Sangam Vihar are too poor to travel in them, so the company loses money. [2] The talk turned to the Metro and the state of Delhi’s buses.

The ever-expanding and limelight-stealing Metro, the ignored and underestimated buses - it really made me wonder about my mapping. I always think that I’ll map the majority of buses in a few years’ time [3], but what if half the routes are gone by then? What if nobody uses them by then? What if all my work amounts to nothing? [4]

Bus route 448 1 Bus route 448 2

[1] Now that I check, someone did remove the construction tag, way back on the 10th. Huh.

[2] …sounds a little dubious, I suppose - buses are the cheapest mode of public transport in Delhi, and the mainstay of the economically weaker sections.

[3] I think there are 400 routes, at a liberal estimate. At the rate of 1 route a week, it’d take 7 years to map them all.

[4] In hindsight, it seems a little unfounded. Buses will remain cheaper to implement, and cheaper for people. The Metro recently hiked its fares, meeting much backlash and (I think) putting it beyond the reach of quite a few lower-income groups.

I haven’t written a diary entry in a while, so this one’s like a mash-up of multiple entries 😉 Bear with me.


A week or two ago, I set out to survey a bus route that has long intrigued me - the “Outer Mudrika Service” aka “बाहरी मुद्रिका सेवा”, or “OMS” for short. Like all “Mudrika” buses, it takes a circular route - but in this case, a big circle of Delhi. As of the 6th of August, I had mapped it as serving 84 stops - the average bus route serves at most 40, and this was not even it’s final form…I mean, I’d only mapped around half of it 😛

The survey turned out to be more grueling than I had anticipated. OMS starts and ends at Uttam Nagar, so I headed there (also by OMS, adding stops along the way I had missed in the night the last time). At Uttam Nagar Terminal, though, hardly anyone seemed to know exactly where to board it. I stood around an hour, not daring to sit lest I miss it when it comes (the fact that it’s a somewhat low-frequency route didn’t help). Figured I’d eat my packed lunch, but the place had an abundance of flies. Twice I walked between the terminal and the first bus stop where I suspected I’d actually find it, almost a kilometer away.

On the second time, at around 16:00 hours, I actually succeeded in boarding one. Wasn’t ideal - it would terminate halfway through, at Anand Vihar. Better than nothing, I figured.

Turns out, it was a blessing in disguise. Not only was even half of its route fairly long (particularly when you’re hungry and tired from standing so long! [1]), some manner of procession near Burari brought it to a halt at the apex of a flyover for some fifteen minutes. Atleast I got to eat 😛 By the end of it, my phone was running low on juice and I myself was thirsty and out of water. Called it a day at Anand Vihar and took a Metro back home.

Fortunately, the rest of the route was already mapped, albeit based on sightings and deduction. The result was 63 new bus stops, and Delhi’s longest mapped bus route, serving over 160 stops - https://www.openstreetmap.org/relation/8062453


Some time ago I went on a trip to Himachal Pradesh. Seeing the state of the map there - particularly the roads - has given me a lot more work to do. I recorded GPS traces for unmapped roads, but I resolved to improve the accuracy of (the very roughly mapped) existing roads first - not realizing how much work that is. Enough to carry on for months 🙂

(ThorstenE in #osm mentioned spline support for OSM. That would be amazing, and would elegantly reduce all this work by multiple orders of magnitude 😔)


I’ve counted how many bus stops I’ve added, and now I happened to wonder how many POIs I’ve added in general, so…

type:node and (shop=* or amenity=* or leisure=* or public_transport=*) and user:contrapunctus in India (hope I haven’t missed anything major) tells me I’ve added a total of 2301 POIs in India

Of these 5 are in Ahmedabad, 8 are between Delhi and Chandigarh, 271 are between Chandigarh and Himachal Pradesh, and 2,017 are in Delhi.

These include -

  • 920 bus stops
  • 168 fuel stations
  • 134 public toilets
  • 111 ATMs
  • 102 banks
  • 65 restaurants
  • 60 places of worship
  • 51 fast food joints
  • 34 cafes
  • 32 convenience stores (or departmental stores, as we call them here)
  • 28 schools
  • 26 clothing shops
  • 24 chemists
  • 21 dustbins
  • 20 dairy stores
  • 16 salons
  • 14 car dealerships
  • 11 dentist’s clinics
  • 10 car repair shops
  • 9 each of benches, gyms, and taxi stands
  • 7 each of alcohol shops and ice cream parlors
  • 5 each of bakeries, clinics, kindergartens, and police stations
  • 4 each of bookshops, drinking water, and embassies
  • 2 bus stations

Hard to believe - have I really added so much already? Of course, I admit that these are really just the tip of the iceberg…


I’ve often been asked by people who are close to me and know of my OSM work - who uses OSM? Does your mapping help anyone? It’s hard to ingrain the infinite value of open data in their minds, but a more interesting answer has slowly been emerging - me! It helps me.

On our road trip to Himachal, I had tried to map as many fuel stations on the way to Janjehali. On the way back, when our car was running low on fuel [2], I was able to know exactly how far away we were from the nearest fuel station. The patchy data coverage there didn’t deter the sole user of OsmAnd offline maps in the group, either.

When I need to know what Metro exit I need to take, taking a look in OsmAnd is easier than consulting the signs. (Google Maps doesn’t have this, AFAIK.)

When I went to a bank which I thought was on street A but happened to check OsmAnd and realized in time that it was on street B.

Google Maps itself has failed me many times - telling me there’s a swimming pool for what turned out to actually be a pond in a park, telling me there’s a chemist 3 kilometers away from where it actually was, and other such comical moments.

And while OSM doesn’t yet have the POI-completeness to match, it’s already exceeding my own memory’s record of local knowledge - storing and reminding me of things I’ve long mapped and forgotten. All it needs - as far as I’m concerned - is

  • multi-modal PT routing, real time traffic information, snappier performance, and better search in OsmAnd,
  • (not so importantly) the ability to modify tags of ways and areas in OsmAnd, and
  • support for Bezier curves/splines in the database. [3]

Lastly, I now seem to have hit the 700 changesets mark. Yay me. 🙂

[1] I tend to not sit when surveying a bus route - the seats in the main, low-floor cabin are all reserved for women or the elderly or persons with disabilities, and if I sit in the high-floor rear section, I often miss the names at bus stop signs.

[2] the only way to get fuel in Janjehali is through the ‘black market’, which is neither cheap nor assured of purity

[3] Of course, bigger adoption in India would be nice, too…

What's new

Posted by contrapunctus on 6 May 2018 in English. Last updated on 7 May 2018.

I began documenting Delhi’s mapping of bus routes on the wiki, so that others can join the effort.

Bus 427 became the first route to be completely surveyed by traveling. 764 became the second.

A new workflow evolved -

  1. First, I learned about creating local notes in OsmAnd
  2. Then came the knowledge of OsmAnd’s ability to export them to a GPX file. This lets me open my OsmAnd notes in JOSM.
  3. Then came JOSM’s “Convert to data layer” (right-click on a GPX layer -> Convert to data layer). [1] This makes a data layer with one node for each note. The text is in a note= tag.
  4. And today I got the idea to convert the note= tags to name= tags (select all the ‘note’ nodes with Ctrl-A, double-click on the note= tag, and change the key from ‘note’ to ‘name’) to be able to see all the note text while editing. Sweet!

Editing this way in JOSM also allows me to see the notes sorted alphabetically. Double-click the note/name field, click the arrow for the drop-down menu, and tada! I haven’t yet put it to this use, but I’m excited at the prospect of it letting me concentrate my edits to a single route when working with bus sightings.

[1] Ooooh. As I wrote this, I discovered that you can also “Download from OSM along this track” and “Precache imagery tiles along this track”. Faaaaaancy!

A few new firsts

Posted by contrapunctus on 18 March 2018 in English.

In the last few days -

I discovered that with this month’s [1] update of OsmAnd’s PT data, all my work on bus route relations was finally visible in the app. Suddenly, so many bus stops on the map of Delhi (in OsmAnd) now show bus routes - it is a wonderful feeling! :D It also means that I can now begin using OsmAnd to aid my own commuting.

I took my first two bus trips exclusively for the purpose of mapping them. (I recorded a GPS trace, and tried to add as many bus stops on the way using OsmAnd as I could. If I could spot benches or tactile paving, I’d tag that, too; if I saw another bus, I’d add a local OsmAnd note for it.) [2]

This also led to what is perhaps the first bus route relation in Delhi approaching completion - Bus 680 is (as far as I know) the first route relation in Delhi to have both the first and the last stop_position added. It still has some stops to be added, and some sections need to be surveyed, to be on the safe side.

Lastly, my faithful Moto G 5s Plus, which I had hoped to keep for at least ten years, was stolen - ironically as I was boarding a bus, guitar in hand. Most of my data was synced to my laptops via Syncthing and NextCloud…but not the ~500 local OsmAnd notes in it - of which ~300 were bus sightings. Oh well. The last few days I’ve been working off a borrowed Moto G with a cracked screen, waiting for the Moto G6 series to be launched.

[1] See issue #5078

[2] I added 28 stops this way on this trip; the total number of bus stops I’ve added in Delhi is now 388, accounting for 65% of the stops mapped in Delhi 😲

The Mysterious Bus

Posted by contrapunctus on 11 February 2018 in English.

Huh. Didn’t realize I took a 7 day break from mapping. The notes in my OsmAnd [1] are piling up :)

Today I learned that I can map route relations for minibuses (like those Metro feeder buses!) and “share taxis” (or as they’re locally called, “Gramin Seva”). These don’t show up on Google Maps - I hope they give OSM something of an advantage.

It’s funny how, even though public transport is one of my mapping interests, I’ve never yet done the “travel the whole of a bus route with GPS and maybe camera” dance - though of course I recognize that it’s not only (probably) more efficient, but also inevitable. Currently I just map bus stops, note their listed routes in a note=, and add them to bus routes in JOSM. The few bus routes I’ve actually traveled on I mapped ages ago, and even those I cannot claim to know the entirety of. More recently, I’ve started noting down (in OsmAnd) what buses I’ve seen, what their boards say their destination is, and (if I’m near a turn) if or where they turn - this has enriched my work quite a bit.

There remain, of course, buses I’ve rarely if ever seen. The most notorious of these, I would say, is the “LTD”. I have no memory of ever seeing one, and yet it is listed on bus stops all over the city! [2] Fortunately, each stop is little by little adding to its route. Here we are, with the result of adding 23 stops to one variant - screenshot of JOSM showing bus routes mapped so far in Delhi, with the incomplete route for the LTD highlighted. The route is taking shape.

[1] Local, deliberately not uploaded, with the intent of being added using JOSM later

[2] Maybe I shouldn’t be adding it, then, if it’s not visible on the ground?

200th bus stop

Posted by contrapunctus on 24 January 2018 in English.

Today I mapped my 200th bus stop in Delhi, which makes up 42% of the bus stops there. [1]

As my edit history must make apparent, I’m mapping like mad these days, which sort of worries me. Nearly all the edits I see in my region’s history are mine, excluding the gigantic transcontinental commits.

Haven’t met any local mappers yet. It’s not the easiest thing to do, given that all the nearby accounts I’ve seen are either non-contributors or simply profile spammers. I’m aware of Nearby users and the tools it mentions, and I’ve given them a spin…I guess I need to put in more effort.

[1] I obtain these figures by using the Overpass Turbo query “(highway=bus_stop or public_transport=platform) in Delhi” to download in a fresh instance of JOSM [2], selecting all the objects, and looking in the Authors pane; I need to discount two bus stops which I mapped as areas rather than the usual nodes.

[2] Back to using JOSM, but now in conjunction with OsmAnd and with less Osmtracker. The time finally came for me to start making bus route relations instead of just writing down bus routes in note= fields.

Editing in OSMAnd

Posted by contrapunctus on 26 November 2017 in English.

For some reason, I’ve moved to using OSMand instead of OSMtracker+JOSM for adding POIs. It’s just so quick and immediate, and doesn’t require me to remember or guess about anything. (well, for most part; I tried Vespucci a few times, but it’s not nearly as simple and quick).

I did wish OSMand could put multiple POIs in the same changeset, though. It added each POI into its own changeset. There is this checkbox to close the changeset, and it seems to be there for adding modifications to a POI to its previous changeset.

…or so I thought until today, when I saw my changeset history for the first time since I started editing in OSMand. Oh. My. God.

Once again in my time with OSM, I wish I could modify my changeset comments x-P