Diary Entries in English

Recent diary entries

Hello World.

Posted by DoSchu on 13 March 2019 in English (English)

So much has changed in OpenStreetMap. Wow!

In my process of learning more, I start a map that locates artworks or cultural monuments you may enjoy while driving through the roundabouts of this beautiful island Mallorca.

Why thinking of artwork in roundabouts?

As we pass by, we miss quite often the chance to learn more about the piece decorating the roundabout (and preventing you from crossing this area the shortest way).

My interest was triggered when we passed the roundabout near Santa Margalida. A huge red devil, made from metal, chained in the middle, seemed to be somewhat disappointed… I needed find out more about this!

Dimonis Santa Margalida Roundabout ( my blog post about this piece of art in German )

Follow me to learn more.

Saludos de Santanyí, DoSchu

Location: Cal Reiet, Santanyí, Migjorn, Balearic Islands, 07650, Spain (territorial waters)

Keeping Track of Roads I Haven't Cycled This Year

Posted by gecho111 on 12 March 2019 in English (English)

Garmin Overlay Screenshots

One of my cycling goals this year is to mix up the roads I ride and fill in my 2019 Personal Heatmap on Strava. I wanted a way to see unvisited roads on my Garmin while I was out so I decided to make a custom map overlay using some of the great tools available to the OpenStreetMap community.

I started by using the Download from Overpass API feature in JOSM to download the complete road network for my city and saved the layer to a file. Then I opened all my cycling GPS traces for 2019 and started pruning any road from the network that I had already covered.

Editing network in JOSM

I was optimistic that I’d be able to somehow automate the matching of GPS traces to lines in QGIS but I wasn’t able to figure out how to do it. Since the gps trace is either to the left or right of the road center line, one would need to create a function that walks the trace matching roughly parallel roads within a certain radius, while ignoring roads that are crossed perpendicularly. The function I tried didn’t do either of those.

To generate the map overlay I cloned a style folder in mkgmap and created a stripped down lines file that applied the same style to all highway tags. I then edited a TYP file in TYPWiz to create a line of alternating transparent and white blocks that would be applied over any roads I haven’t visited.

With the mkgmap style setup I just need to run a batch file to generate a new overlay whenever I update the road network file.

Full instructions to create the overlay along with the mkgmap style can be found here (pdf):

Re-learning JOSM :: More Advanced

Posted by alexkemp on 12 March 2019 in English (English)

BuildingsTools plugin (Wiki)
Terracer plugin (Wiki)

In the previous post I showed the basic steps of using the building_tools and terracer plugins together to map buildings with JOSM on to the OSM map, so make sure to read that if you get lost at all during this post. This section will give a pot-pouri of how to perform more advanced tasks using the same two plugins. It will start with 2 Bradstone Drive.

Drawing an L-Shaped Detached House

For some reason these are very common in England (this particular house is a 2-story modern house — built in the last 5 years — but bungalows in this style have been built like that since the ’20s). As a detached house, adding the L-shape can be done either before or after using terracer, but for all other houses any changes to the basic rectangle of a terrace must only be done after terracing the building.

  1. Draw the main frontage of the building, using (in this case) Esri World Imagery as a template
  2. Press ‘s’ and select the building just drawn
  3. Press ‘b’ and place the X-hairs above the common corner-node for both frontages and click
  4. As you now draw the side frontage, the mouse is shaping a box anchored on the common corner node.
  5. Shape the new box to the side-frontage, and click when complete
    (There are now 2 building rectangles positioned over all external borders of the house)
  6. Press Shift+j
    (“Join overlapping areas”)
  7. Remove the redundant nodes from 2 sides of the house
    (there are likely to be 2 nodes on top of each other on each side to be removed)

That’s it - an L-shaped house. A similar procedure can be performed for buildings with rear-extensions, etc.

Drawing Twin Garages

There is a bug in terracer from my point of view, in that it decides which angle of the rectangle of a building should be used to split the building (N-S or E-W, depending only on which is longer). This is crucial for twin-garages because terracer always chooses the wrong side, but it can also affect semi-detached houses and occasionally even 3-house terraces will split on the wrong axis. Here is how to fix them, using the twin-garages between 2 and 4 Bradstone Drive as the example.

Method 1 - rotate after splitting

This rarely works for garages; it is useful when the 2 buildings together are virtually a square.

  1. Draw the garage in the normal way
  2. Terrace in the normal way
  3. Press ‘s’ and select the building just drawn, if necessary
  4. Press Ctrl+Shift (the cursor changes to 2 x opposite-facing arrows)
  5. Whilst holding Ctrl+Shift down, click-and-hold on the screen and pull your mouse clockwise / anti-clockwise to turn the 2 garages through 90°

A word of warning
You need to make very sure that, during the procedure above, that only the house/terrace is selected. If, as one example, a 200 mile road is also selected (but off-screen whilst you work) then the road will also be twisted. That may not be what you want. Get into the habit of de-selecting everything before you select the one item that you want to move / rotate / whatever. JOSM is much more powerful than you may recognise, and will do exactly what you ask of it, quickly & easily.

Method 2 - draw & split at half-size then expand to full-size

This is a fudge until a “Use the other axis” checkbox gets added to terracer

  1. Draw the garage at half the length of the outline
    (so that the width is longer than the length)
  2. Terrace in the normal way → Press Ctrl+t for the terracer dialog
    → Ignore everything except…
    → (Segments = 2)
    → Building = garage
    → Press OK
  3. Pull down the bottom, central node between the 2 garages until you reach the centre of the bottom of the outline
    (if the garages have a roof-line then follow that line down)
  4. Pull down the bottom left- and right-nodes to the left- and right-hand sides of the bottom of the outline
    (do your best to keep both halves as rectangular as possible, but don’t freak out about it)
  5. Press ‘q’ (“Orthogonalise Shape”) (ie “make rectangular”)

That is it - twin garages.

Preventing a driveway from snapping to the garage

There is a driveway that runs from the road to the twin-garages in the previous section. A driveway connecting to a garage is not such a sin, but there are a ton of other occasions in which you absolutely do NOT want the object that you are drawing to connect to some other object(s).

  1. Press ‘a’ and hold down the Ctrl key
    (it is the second part that will stop the line that you are about to draw from sticking like lint to anything that it gets close to)
  2. Click the mouse button close to the garage, then draw it towards the road
  3. Release the Ctrl key
  4. At the road click the mouse button
    (That both finishes the line and attaches the node of the line to the road)
  5. Add keys to the line that you have just drawn:–
    → highway = service
    → service = driveway
    → surface = asphalt

Ensuring that a garage connects to the house

This is kind of the opposite to the previous section. The example is of the semi-detached houses 34 + 36 Bradstone Drive, which each have garages which attach to the side of the house on one side and run down the property line on the other. In the case of 34 Bradstone it is important that the garage does NOT snap to 32 Bradstone, whilst it must connect with 34 Bradstone. The ridge-line of each house + garage are useful markers to note where a particular garage starts & stops.

36 Bradstone is worse, in that it is a double garage; connected with 36 Bradstone on one side but NOT connected with 38 Bradstone on the other. If you are as anally-retentive as I am, then these features are important. After all, if you do not draw it right, how are the folks at 40 and 42 Bradstone going to be able to put their bins outside on collection day?

  1. Draw + terrace the semi-detached house in the ordinary way.
  2. Leave at least one of the semi-detached houses selected whilst drawing the garages
    (that causes the garage to share the same N-S / E-W axis as the houses)
  3. Hold down the Ctrl key whilst drawing close to 32 Bradstone so that the garage does not snap to the house.
  4. In contrast, you want the line of the garage to snap to the side of 34 Bradstone.
  5. When complete, there are at least 2 shared nodes between the garage & the side of 34 Bradstone; one near the centre of the house and one at the corner. These need to be bonded together, else the validator will complain of overlapping lines (‘lines’ are called ‘ways’ in JOSM).
  6. Select a node, then press ‘j’ (“Join Node to Way”)
  7. Repeat for the second node
  8. The garage on the side of 36 Bradstone is very similar with the added joy that it is a twin-garage and that needs to be sorted first; afterwards the two nodes need to be bonded to the house, same as before
  9. If ever a node bonds/snaps to a line and you need to unjoin it, then press Alt-j (“Disconnect Node from Way”)

Mapping Clones

Developers tend to use an identical architectural plan for multiple houses within an estate. If the local planning department has allowed the developer to build swarms of clone houses, that means that you are allowed to clone those houses when you map them. Do it like this (in this example as I map 20 to 30 Bradstone Drive):–

  1. Press ‘b’ and draw number 20 Bradstone
    (be very careful to get the orientation and measurements correct)
  2. Press ‘s’ and select the building
  3. Paste in the common tags (addr:postcode, addr:street, building + source)
  4. Click on an empty space then re-select the outline
    (this is to switch focus from the tags to the building outline)
  5. Press Ctrl+c (copy)
  6. Hover over 22 Bradstone and press Ctrl+v (paste)
  7. Repeat for 24, 26, 28 + 30 Bradstone
  8. Check that each house is nicely positioned
  9. Terrace each one to get the numbering, etc. correct
Location: Arnold and Carlton, Gedling, Nottinghamshire, East Midlands, England, United Kingdom

Spotting solar panels in London

Posted by mcld on 11 March 2019 in English (English)

Jack had this great idea to find the locations of solar panels and add them to OpenStreetMap. (Why’s that useful? He can explain: Solar PV is the single biggest source of uncertainty in the National Grid’s forecasts.)

I think we can do this :) The OpenStreetMap community have done lots of similar things, such as the humanitarian mapping work we do, collaboratively adding buildings and roads for unmapped developing countries. Also, some people in France seem to have done a great job of mapping their power network (info here in French). But how easy or fast would it be for us to manually search the globe for solar panels?

(You might be thinking “automate it!” Yes, sure - I work with machine learning in my day job - but it’s a difficult task even for machine learning to get to the high accuracy needed. 99% accurate is not accurate enough, because that equates to a massive number of errors at global scale, and no-one’s even claiming 99% accuracy yet for tasks like this. For the time being we definitely need manual mapping or at least manual verification.)

(Oh, or you might be thinking “surely someone officially has this data already?” Well you’d be surprised - some of it is held privately in one database or other, but not with substantial coverage, and certainly almost none of it has good geolocation coordinates, which you need if you’re going to predict which hours the sun shines on each panel. Even official planning application data can be out by kilometres, sometimes.)

Jerry (also known as “SK53” on OSM) has had a look into it in Nottingham - he mapped a few hundred (!) solar panels already. He’s written a great blog article about it.

This weekend here in London a couple of us thought we’d have a little dabble at it ourselves. We assumed that the aerial imagery must be at least as good as in Nottingham (because that’s what London people think about everything ;) so we had a quick skim to look. Now, the main imagery used in OSM is provided by Bing, and unfortunately our area doesn’t look anywhere near as crisp as in Nottingham.

We also went out and about (not systematically) and noticed some solar panels here and there, so we’ve a bit of ground truth to put alongside the aerial imagery. Here I’m going to show a handful of examples, using the standard aerial imagery. The main purpose is to get an idea of the trickiness of the task, especially with the idea of mapping purely from aerial imagery.

It took quite a lot of searching in aerial imagery to find any hits. Within about 30 minutes we’d managed to find three. Often we were unsure, because the distinction between solar panels, rooftop windows or other rooftop infrastructure is hard to spot unless you’ve got crystal-clear imagery. We swapped back and forth with various imagery sources, but none of the ones we had available by default gave us much boost.

While walking around town we saw a couple more. In the following image (of this location), the building "A" had some stood-up solar panels we saw from the ground; it also looks like "B" had some roof-mounted panels too, but we didn't spot them from the ground, because they don't stick up much.

Solar example

Finally this picture quite neatly puts 3 different examples right next to each other in one location. At first we saw a few solar panels mounted flush on someone’s sloping roof (“A”), and you can see those on the aerial - though my certainty comes from having seen them in real life! Then next to it we saw some stood-up solar panels on a newbuild block at “B”, though you can’t actually see it in the imagery because the newbuild is too new for all the aerials we had access to. Then next to that at “C” there definitely looks to be some solar there in the aerials, though we couldn’t see that from the ground.

Solar example

Our tentative learnings so far:

  • We will need to use a combination of aerial mapping and on-the-ground “solar spotting” from people.
  • Whether on-the-ground or aerial, it’s often hard to get a clear idea of the size of the installation. In lieu of that, maybe it’s fine to map them as points rather than areas. People can come along later and tell us the actual power ratings, efficiencies etc.
  • We will need to make the most of heuristics about where to find solar panels. For example Jerry notes that social housing is relatively likely to install solar, and I’ve noticed it on plenty of schools too; there may also be vendor/official lists (e.g. planning applications) out there - we’ll need multiple sources to get a well-rounded coverage.

See Jerry’s blog for more learnings.

There are plenty of virtuous feedback loops in here: the more we do as a community, the better we’ll get (both humans and machines) at finding the solar panels and spotting the gaps in our data.

(This article is cross-posted from my own blog)

Re-learning JOSM :: Basics on using building_tools + terracer

Posted by alexkemp on 11 March 2019 in English (English)

BuildingsTools plugin (Wiki)
Terracer plugin (Wiki)

Nottingham City Council maintain an Adopted Highways Register which is fantastic for confirming both adopted & un-adopted streets local to me + house-numbers and, on occasion, housenames. The info comes from Ordnance Survey and therefore has a Crown Copyright. Because of that, it is important that I point out that I use the site to confirm my earlier survey results, rather than copying from it.

Adopted Highways register
A highway and a public right of way mean the same thing; they are both a “way” over which the public have a right to pass and repass at all times of the day and night. The term highway includes all carriageways (roads), streets, footways (pavements), footpaths, bridleways and byways. A highway may also include the adjacent verges.

This site shows which highways are adopted. If a highway is adopted it means it is maintained and repaired by Nottingham City Council. It also shows public rights of way (footpaths, bridleways and byways) both adopted and un-adopted which are recorded on the Definitive Map and Statement. This is the legal record of public rights of way in Nottingham at the time the Map and Statement were last updated (the “relevant date”).

You will therefore understand that the above is also the legal status that allows OSM surveyors in the UK to both survey and photograph from those highways anything that they can see.

Map Attitude

You are going to see me map all buildings with an area, rather than a node, and all the buildings are added to a street relation. The combination of the buildings_tools & terracer plugins makes both of these easy. I think that areas make the map look better, in that you can see how all the houses fit onto the street, but I do it like this mostly because JOSM makes it easy, and the map ends up looking much more professional.

terracer can be used for detached & semi-detached houses as well as terraces of 3 or more houses. The method used is identical for all 3 types. The main restriction is that only ‘normal’ (plain) rectangles can be terraced. Any rear-extensions, porticoes, turrets, what-have-you must be added after the building has been terraced.

As far as the associatedStreet relations are concerned, my (possibly biased) experience is that it makes searching very much more effective & quicker. It certainly ties some areas together in a satisfying manner. You can see what I mean by that by following these links for Denbury Court & Braunton Crescent.

Mapping Buildings Sequence

There are a large number of JOSM keyboard shortcuts and I would strongly urge you to learn them as to speed up your work (JOSM is a pain-in-the-arse otherwise). Here is step-by-step as I begin to draw a new set of buildings on Axmouth Drive, starting with 23 Axmouth Drive (half of a semi-detached house) which actually opens onto Braunton Crescent (the sort of thing that you find out only if you do the survey).

  1. Most of the time I need to remember just 4 keyboard shortcuts:–
    → s (to select something on the map)
    → a (to draw a node or a line or an irregular area)
    → b (to draw a rectangular building)
    → Shift+t (to terrace a building)
  2. Press ‘s’ then click on an empty part of the map to clear any selections
  3. Navigate to the part of the map to the point at which to draw the next house
    → + to zoom in
    → - to zoom out
    → Ctrl+<arrow-key> to move left / up / right / down
  4. Hold down Ctrl then select addr:postcode, addr:street + source (3 selections) within 30 Axmouth Drive then press Ctrl+c (or Ctrl+Insert) to copy
  5. Press ‘b’ then draw a box over the outline of the first semi-detached house on the corner of Axmouth Drive & Braunton Crescent
    → left-click on one corner of the house and pull the mouse down one side of that house
        (that action draws a red line as you move the mouse)
    → left-click on the opposite corner and you now have a line on screen
    → pull the mouse down to the opposite side and click again; now you have a rectangular box which has the tag for a building within it
  6. Press ‘s’ then hold down Ctrl (or Shift) and select the new building + one of the nodes at the north-end of the building + Axmouth Drive (3 items selected)
  7. Press ‘Shift+t’ to get the Terracer dialog
  8. Enter:
    Lowest Number = 21 (this is the end at which a node was selected)
    Highest Number = 23
    Interpolation = even/odd
    Segments (already = 2)
    Street Name (already = Axmouth Drive, due to the street being selected)
    Building = ‘semi’
    ☑ into ‘add to existing associatedStreet relation’ (even if it doesn’t yet exist)
    ☐ into ‘keep outline way’
  9. Press <Enter>
  10. (whilst both houses remain selected) press Ctrl+v (or Shift+Insert) to paste those earlier values into both houses

That’s it! On to the next building, then the next for several hundred more.

When a section is complete (I try to do one street at a time) press the uplift button (Ctrl+Shift+Up), add a suitable Changelog text and uplift to the server.

Easy. Just 30 million more buildings to do.

Location: Arnold and Carlton, Gedling, Nottinghamshire, East Midlands, England, United Kingdom

Re-learning JOSM :: Mapping Buildings :: Startup

Posted by alexkemp on 11 March 2019 in English (English)

One of the keys to using JOSM is to teach yourself to use the keyboard at the same time as you use the mouse. Once you have a small selection of keyboard shortcuts in your head things will go much quicker. kbd shortcuts

BuildingsTools plugin (Wiki)
Terracer plugin (Wiki)

2 mins tutorial: Drawing Buildings in JOSM
(from the HOT team; a little old, but still accurate)

Most of my time post-survey is spent mapping houses & roads - it is rare that a road is not already mapped, though naturally they always need checking and sometimes correcting. In contrast, it is rare in the areas that I survey that any houses are mapped at all.

Startup Sequence

Here is an account of my current startup sequence after launching JOSM from *menu | Education | JOSM (latest snapshot):–

  1. Items ready before JOSM launch:–
    → File directory with tracker contents
        (here ~/osmtracker/2017-05-28_10-53-09/)
    → GPX file (a GPS ‘breadcrumbs’ file of locations during the survey)
    → JPG files (GPS-located photos of street- & road-signs, housenames, etc.)
    → 3GPP files (GPS-located sound files)
    → .osm file (JOSM desktop saved from previous session)
  2. launch JOSM
  3. press alt-shift-D to switch continuousDownload OFF
  4. ctrl-O to load 2019-03-10.osm
    (desktop save from earlier session)
  5. press ctrl+U to update all data from the server
  6. File | Open Recent ⏵| 2017-05-28_10-53-09.gpx
    (the area covered on the screen is now huge, so press ‘+’ & ctrl+arrow-keys to navigate back to Axmouth Drive (last edit position))
  7. press alt-shift-D to switch continuousDownload back ON
  8. load menu: | Imagery | Esri World
    (it’s the best of a bad bunch)
  9. load menu: | Imagery | Postcode
    (needs to be last else it gets lost)
  10. load menu: | Windows | Mapillary image
    (it should already have a ☑, so press shift+comma)
Location: Arnold and Carlton, Gedling, Nottinghamshire, East Midlands, England, United Kingdom

500K Mapillary Images

Posted by apm-wa on 11 March 2019 in English (English)

This weekend my hardworking laptop uploaded my 500,000th ground-level image to Mapillary. This is the single most extensive database of ground-level imagery for Turkmenistan anywhere. Others in the embassy have contributed roughly another quarter of a million images. We still have a few highways to collect but the bulk of major highways in Turkmenistan are now available to mappers anywhere in the world.

Re-learning JOSM :: Installation

Posted by alexkemp on 10 March 2019 in English (English)

The Operating System (OS) is different on my computer now from when I last used JOSM, so it had to be installed from scratch. Here is a bunch of stuff that should be useful if you need to install JOSM:–

  1. JOSM == “Java OpenStreetMap Editor”
  2. JOSM Wiki
  3. Available for Windows, Linux, and macOS
    (you are strongly advised to use a desktop machine with a large display)
  4. Install instructions

The following will be install instructions for Devuan / Debian / Ubuntu:–

This is my OS:–

$ lsb_release -da    
Distributor ID:	Devuan
Description:	Devuan GNU/Linux 2.0 (ascii)
Release:	2.0
Codename:	ascii
  1. Linux install instructions
  2. JOSM requires a minimum of Java r8
    (ascii comes with r8 by default; I use openjdk java without any problems)

     $ update-alternatives --list java    
  3. Create a new repository
    (use the following one-liner)

     echo deb alldist universe universe | sudo tee /etc/apt/sources.list.d/josm.list > /dev/null
     $ cat /etc/apt/sources.list.d/josm.list
     # 'ascii' does not work in next line, hence 'alldist'
     deb alldist universe
  4. Install the JOSM key (another one-liner)

     $ wget -q -O- | sudo apt-key add -
  5. Now update
    (either this or use synaptic)
    (be warned: JOSM gets updated almost every day)

     $ sudo apt-get update ; sudo apt-get install josm
  6. Launch JOSM via menu | Education
    (at first launch install / update the Plugins; use Global Preferences (f12) | Plugins)
    (fwiw these are the ones I have installed):–

  7. Add UK postcodes via

    a. Go to Global Preferences (f12) | Imagery Preferences | Imagery Providers
    b. Add at the bottom:
    Menu Name: “Postcode (from”    
    Imagery URL: “tms:{zoom}/{x}/{y}.png”
    c. Press OK

International Women's Day Long Weekend = Exploration

Posted by apm-wa on 10 March 2019 in English (English)

Friday, March 8, was International Women’s Day and thus a local holiday. I therefore had a three-day weekend for some exploration. In reviewing the OSM map I found some blank spots close to home, so probed nearby villages that were unidentified, explored unmapped roads, found a couple of farms and a fast food place, identified several factories, updated a town hall, and found a rather large cemetery way out in the boondocks as well as the municipal garbage dump and a satellite uplink station (just how does one tag a satellite uplink station, anyway?) In the process Ann and I gave away several sets of books of American children’s literature the embassy has had translated into Turkmen. The map is in a bit better shape and several Turkmen children have something to read! The three days passed in a flash, but this was one of the best three-day weekends ever.

Re-Learning JOSM :: Intro

Posted by alexkemp on 10 March 2019 in English (English)

At this moment my profile shows 1,822 edits, all done with JOSM, so it would seem reasonable to assume that I know JOSM inside-out. Well, yes & no.

  1. The last time I went out surveying was 28 May 2017 (19 months ago)
  2. I never completed adding that survey into OSM
    (I got to Chedington Avenue on Spring Lane)
  3. After creating another batch of OSM Promotional Leaflets it remains only for me to finish the necessary editing on the last survey. Then I can get on the road again for some more surveying.
  4. I fell down dead 20 years ago so I try not to be too hard on myself if I forget things
    (23 February 1999 — heart went into fibrillation — on awakening I did not know where I lived nor worked, and had the memory of a goldfish (’bout 4 minutes))

My OS is different than the last time I used JOSM, so everything needed to be done from the beginning, again. My thought was to make use of this opportunity to give advice to those starting from scratch and trying to learn how on earth to use this programme. Uniquely, I’m both well-experienced and a complete novice in using it at the same time, and that may help give me an insight into what newbies may need to know.

This will be just an introductory post. The meat of the matter will start at the next post.

I do not intend to structure the help too strongly. It will be a bunch of disparate stuff as I come across it whilst editing. I strongly urge others to add in their own useful titbits in the comments, or to correct wrongful info.

Location: Thorneywood, Sneinton, City of Nottingham, East Midlands, England, NG3 2PB, United Kingdom

1st time mapping

Posted by Moomax19 on 10 March 2019 in English (English)

Looks like a really interesting thing they have going on here! I can’t wait to learn more!

Location: Sherrod, Howard County, Texas, 79721, USA

arrgh - mapper app failed

Posted by caribtrail on 10 March 2019 in English (English)

I started a new HOT task mapping buildings in DRC. The map was messed up; numerous buildings were marked where there were no buildings, and none of the actual buildings were marked. After a long session deleting and adding buildings, the ID mapper stopped working; I couldn’t even save the work in progress.

Is this a common problem?

Winter Weather Woes

Posted by 3Jane on 9 March 2019 in English (English)

I want to do more sidewalk / crosswalk surveying, but most of the sidewalks are still 2 feet deep in snow. OSM is giving me ample excuses to get out of the house and go for walks, but the weather is just not going to have it.

Lucky for me, it’s been sunny the past few days. Maybe it’ll clear up in time for Spring Break.

There’s so much mapping to do in this town…

Location: Port of Kennewick, Benton County, Washington, 99337, USA

Armchair editing in Norway, roundabout mistakes and first bus route.

Posted by mariusscheide on 9 March 2019 in English (English)

A lazy saturday with some hours behind the keyboard.

Roundabout ramblings

At one point I got interested in making “Nasjonal Sykkelrute 7” connected all the way, there where some breaks in the line. During this I also found out that a roundabout should not be segmented, why would it need to be that?

I found out a little later that this is probably because the different segments have different relations. Relations to bus routes, bicycle routes etc. So after commiting my well meant simplifications I went back and tried to clean them up. It made me more aware of how the route relations are built up.

Route me township

Inspired by this rudementary understanding of bus routes I scoped out the town where I grew up; Ulsteinvik. To my delight/horror there were practically no bus stops, nor routes mapped. So I chose a simple one and made the route=bus. Added the ways it covers, and the next step will be to add the stops.

How to get notifications from OSMCha

Posted by wille on 9 March 2019 in English (English)

Some people asked me about how to receive notifications when new changesets match a filter we have setup in OSMCha. So I decided to write a tutorial with some options of how to receive updates from your OSMCha filters.

We can set a filter in OSMCha and save it to later use. If you have never saved a filter, see the documentation.

Each saved filter has an unique ID and a RSS feed. The RSS makes it very easy to receive notifications. After you saved a filter, you can get your RSS feed link at the right side of your filter name, on the top of the page.

RSS feed link location

RSS Reader

The easiest thing you can do is to subscribe to the feed with some RSS Reader. There are plenty of options, both web based or to install on your computer. Nowadays the most popular web based option is Feedly.

IFTTT + Telegram

If you prefer, you can setup an applet with and receive the notifications on Telegram. Click on this link to open the applet, then click on Get Started, make your login and finally paste the RSS feed link on the feed URL field of the IFTTT applet. Each 5 minutes, the IFTTT will send you the new changesets that match your filter.

IFTTT applet

The telegram integration is useful to filters that don’t return a large number of results, but need a fast response. You can add more than one applet and get results from multiple filters.

Zapier + Email

With, we can receive an email containing a daily digest of new changesets on one or more OSMCha saved filters. Here is the link to the zap: It’s a bit more complicated to setup and it will return only the last 50 changesets gathered by each filter.

zapier email sample


Vitor George has setup an integration between OSMCha RSS feed and telegram using Hugin Feed Agent (code / service). Huginn is very powerful and customizable, although I found it very complex to make the setup.


We have many API endpoints on OSMCha. If you want to build some other integration, you’re invited to do it and make the process of validate OpenStreetMap edits easier. Check the API documentation to learn more.

If you have some question or have done some interesting use of our API and RSS feeds, please tell us!

First steps

Posted by XBell on 9 March 2019 in English (English)

I’m taking my very first steps in OSM.

Tiran mapping!

Posted by DenisJu on 8 March 2019 in English (English)

Plans for 2019

My work is mainly based on facts on the road. Photographing with my garmin montana 650, my samsung s6 mobile phone, various printed osm worksheets, walking on foot, cycling where it is allowed and asking people with more local knowledge. various information about newspapers, websites and information from city hall is a reference point for the dynamic rapid changes in the city.

highway infrastructure

  • checking the geometry
  • verifying on the ground
  • speed limits
  • lane numbers
  • lane directions
  • traffic signs

bike path infrastructure

  • checking the geometry
  • verifying on the ground
  • gps-tracks
  • photos

bus route infrastructure

  • checking the geometry
  • verifying on the ground
  • gps-tracks
  • bus stop
  • changes (often changed bus routes.) up to date

road intersection

  • checking the geometry
  • verifying on the ground
  • gps-tracks
  • traffic signs
  • photos

foot path

  • pedestrian crossing
  • photos
Location: Njësia Bashkiake Nr. 10, Tiranë, Tirana Municipally, Tirana County, Central Albania, 1001-1028, Albania

Using the new OpenStreetCam upload scripts (and a detour to geotagging with JOSM)

Posted by mvexel on 8 March 2019 in English (English)

The upload scripts are a part of the open source OpenStreetCam platform that are probably not as widely known. You can use them to upload images to OSC that you capture using something other than the Android / iPhone app or a OSC Waylens camera. My colleague Bogdan will publish a blog post going into more technical detail on the ImproveOSM blog soon, but I wanted to share my initial experiences using just the basic uploading functionality.

I don’t want to go into the script setup steps here, but if you are having trouble with that part, I am happy to help out.

Detour: Collecting and preparing my images

If you are just interested in the upload scripts, you can skip this part…

This is the setup I use to collect OSC images when I don’t use the app or the Waylens camera:

It consists of:

  • A GoPro Hero3+ with underwater case
  • A Ram mount with GoPro attachment
  • Spare GoPro batteries and charger (similar to this one)
  • A GPS unit (I use a Garmin Dakota 20 but any old GPS recording device will do)
  • My car

Note that I mention a separate GPS unit. The GoPro Hero3+ doesn’t have its own GPS, so you need a separate GPS recording so you can geotag each image later.

When I am ready to start driving, I set the GoPro to take 1 picture a second, make sure it has a full battery, fire up the GPS and go. The battery lasts around 2 hours, so that coincides nicely with rest stops. Every time I get out of the car to stretch my legs, I change out the charged battery, drop the empty one in the charger and continue.

When I get home, I still need to geotag the images before they can be uploaded to OSC. There are many open source and commercial tools to help you with this, and I have tried many, but I find that good old JOSM does it the best. All you need is the Photo Geotagging plugin. This is how it works. I load the GPX track into JOSM first. Next, I load a set of images without location metadata into JOSM. The plugin will detect this and pop up its window that lets you match the GPX with the images.

Unless the time on your GPS device and the time on your camera are exactly the same, you will need to define the offset in this dialog. This is best done using an image at a known location, so you can visually check in JOSM if your offset is correct. In my case, I stupidly forgot to check the GoPro time setting, and for whatever reason it was reset to the default factory time of January 2013, so I had to calculate a huge offset, as you can see above.

When you’re satisfied with the location matching, you can right click on the ‘Geotagged Images’ layer and select ‘Write coordinates to image header’.

Matching an image at a known location with GPX visually

Okay, now we’re ready to use the upload scripts!

Uploading images

Now that we have a sequence of geotagged images, the process of uploading them to OSC is actually quite simple. In the terminal, call the upload script like this:

cd /path/to/upload-scripts 
source venv/bin/activate # activate the python virtual environment, see setup steps
python upload -p /path/to/image_dir

The script will scan the directory for image files and respond with something like

Searching for sequences...
    Found sequence at path /path/to/image_dir. Sequence type Exif-Photo.
Search completed.

Starting to upload 1 sequences...

For login go to this URL in your browser:
Login and grant access then press ENTER

Next you will need to get an OSM access token, so the script can associate the images with your OSC account. This step assumes that you already created an OSC account using OSM OAuth, but if you’re reading this, you probably already have done that. Copy the OSM url into a browser and hit enter. OSM will respond asking if you want to grant OSC (minimal) access to your OSM account. Authorize this and you can go back to the terminal and hit enter there. the script will then initiate the upload. When it’s done, you will get a link to the OSC trip that has been generated. Congrats!

Fortunately you can manually delete images from OSC….

Here’s one of the trips I uploaded this way.

Disputed boundary tagging sprint (2019-03)

Posted by nvk on 8 March 2019 in English (English)

I plan to start tagging more disputed administrative boundary lines in OpenStreetMap with tags for disputed=yes (but will leave the existing dispute=yes alone), adding disputed_by=* on disputed ways, and adding claimed_by=* on their relations to support multiple points-of-view.

I will use a combination of the iD editor and JOSM for this sprint, and use the #disputed_by_claimed_by tag in comment messages. My OSM username is nvk should anyone else want to help out or discuss, please say hi :)

I don’t propose changing default tags for administrative boundaries which already use OpenStreetMap’s on the ground rule – I only propose adding additional tags on the country and disputed features to indicate they are disputed (many are already are tagged this way), and to indicate which countries dispute &/or claim the boundary.

I will follow the schema used in Kashmir for ways and relations tagged for India, Pakistan, and China country boundaries. I will clean up a few errors in Kashmir (missing tags or incorrect country codes), and will then focus on expanding the use of this tagging schema to other disputed areas around the world.

Further work could support which other countries recognize (or have opinions about) the disputed_by and claimed_by points of view. But there isn’t yet a consensus in OpenStreetMap about which approach to take, and the existing tagging scheme I plan to reuse for the basic claimants is also compatible with the main tagging discussions that are still under way for the complicated case. This will allow the OpenStreetMap community and Tilezen in particular to prototype support for making maps with this data (see the Why section below for more background).

Specifically, I won’t yet focus on any of the proposed tags for boundary=claim on ways, claim_level=* on ways, claim_level:claimant_country_code=* on ways, controlled_by=* on relations, country_code=* on Master Claim relations, boundary=master on the Master Claim relations, boundary=claim on Boundary Claim relations, or boundary=conflict_area as an optional Conflict Area relation. But these could all be added to the data after this round of tagging, and after research and quality assurance for version 5 of Natural Earth is complete.

What OpenStreetMap data allows today


  • If a way is in a relation claimed_by a view, it’s displayed in RED.
  • If way is tagged as disputed_by a view, it’s not shown.
  • If neither of the above and it’s flagged as “on the ground” then display in GREEN.

“on the ground” view from OpenStreetMap:

on the ground

And this is what the data indicates India’s view should be:

India view

And what the data says Pakistan’s view should be:

Pakistan view

And what the data says China’s view should be:

China view

Cleaning up Kashmir tags

Most of the line-of-control between India and Pakistan is tagged as disputed_by=IN;PK, but some segments aren’t. Since the line-of-control is the “on the ground” view of the border between the two countries, these untagged segments get displayed in green even though they are disconnected from other parts of the border. Looks like a simple case of bad tagging - should be easy to correct.

Some other problems appear to stem from typos, for example this alleged dispute between India and Switzerland, where the fix is to change the incorrect two-letter code for China from CH to CN.

Going global

The schema used for Kashmir seems to only be well implemented around the three-way India, Pakistan, China (IN;PK;CN) dispute. There’s some related tagging on the Israel, Syria (IL;SY) dispute, but the SY claims aren’t collected into a claim relation, nor are SY’s claims tagged as disputed_by IL.

Other disputes, such as Doklam, the Ilemi Triangle, Hala’ib Triangle are mapped with a simple disputed=yes tag and no disputed_by or claimed_by information.

I’ll use Natural Earth’s v5.0.0-pre2 data (of which I am the primary author) as a guide on which disputed areas to tag, using disputed_by and claimed_by data that has been vetted over the last 10 years by myself and the Natural Earth community. There are about 80 disputes – see list below – that are significant enough to be shown at zoom 8 on the map.

Many more smaller disputed boundaries exist in real life, but I’ll leave those for someone else to tackle. I plan to focus work on terrestrial (land) disputes from that list, and defer work on maritime boundary disputes because they are less useful for generic basemap construction.


I am the primary maintainer of Natural Earth and am a core contributor to the open source Tilezen vector tile project, originally sponsored by Mapzen and now a Linux Foundation project. The upcoming version 5 of Natural Earth will add support for different points-of-view (sometimes called worldview), and Tilezen is also adding support for the same in it’s boundaries layer.

Adding points-of-view to the data allows basemaps to be customized to meet the expectations of certain polities around the world, while keeping the default map styling de facto based on the “on the ground” situation. Practically speaking, this means sometimes displaying different country boundary lines to different users in different countries for disputed areas like Kashmir, Western Sahara, Palestine, and Crimea. In some countries, like India and China, there are even legal requirements around showing their own country boundaries, even when that country doesn’t control all that territory on the ground.

Tilezen composes it’s high-zoom boundaries layer data (view source) from OpenStreetMap features based on several tags on ways (boundary=administrative and admin_level=*) and relations (looking at the type=boundary, boundary=administrative, and admin_level=*), and based on how osm2pgsql ETLs the data. Tilezen also does some processing to determine the left or right names to include on the line features (which means Tilezen needs to build complete polygons).

Tilezen express point-of-view as a “localized” kind:* values, where * is replaced with a point-of-view code (starting with 2-character or 3-char “country” codes). For example: kind:cn is used when China has a different view of a border than the default “kind” value (generally the de facto point of view). This optional point-of-view approach allows allows the boundary line to be symbolized by default as “disputed”, but for a Chinese audience to see it as a “county” line, and for related boundary lines to be turned off with a special unrecognized value. NOTE: This approach might later be extended to region boundary lines (like in Arunachal Pradesh in India which China calls South Tibet), and even the places layer (since “capital” cities are also implicated).

Tilezen prototyped support for worldviews at low-zooms from Natural Earth (v5.0.0-pre2) in the v1.7 release (tilezen/vector-datasource/1552) in February, and are extending that to high-zooms from OpenStreetMap in the v1.8 release in active development (tilezen/vector-datasource/1810) in early 2019.

The following 30 worldviews are supported in Tilezen today at mid-zooms from Natural Earth, and I’d like to eventually support them at high-zooms from OpenStreetMap (but not all in this first sprint):

  • Argentina (ar), Bangladesh (bd), Brazil (br), China (cn), Egypt (eg), France (fr), Germany (de), Greece (gr), India (in), Indonesia (id), Israel (il), Italy (it), Japan (jp), Morocco (ma), Nepal (np), Netherlands (nl), Pakistan (pk), Palestine (ps), Poland (pl), Portugal (pt), Russia (ru), Saudi Arabia (sa), South Korea (ko), Spain (es), Sweden (se), Taiwan (tw), Turkey (tr), United Kingdom (gb), United States (us), Vietnam (vn), ISO (iso).

These 29 countries and 1 international organization are either claimants to major disputes or more often have opinions about those disputes – and are the primary country for Tilezen’s supported “common” languages for localized name:* tags.

There’s also subtlety around a particular country’s “official” view of disputes (&/or legal mandates) and the conventional or “unofficial” depiction of the same in maps produced in that same country. For example, Spain officially claims Gibraltar, which is administered by the United Kingdom, but most maps published in Spain show Gibraltar as administered by the United Kingdom with a border crossing.

But again, I’m only going to start with adding the basic disputed_by and claimed_by tags in this sprint to keep it simple.


I plan on notifying the following groups by email:

I plan on notifying the following individuals (those mentioned in the main tagging discussion):

Proposed disputed territory work list

Natural Earth keeps track of disputes around the world and I’ll use that as a starting point. Other OpenStreetMap editors can keep refining the data according to further research and discussion.

  1. Disputed name – (note) - ID concordance to Natural Earth
  2. Abkhazia – (Self admin.; Claimed by Georgia) - B35
  3. Abu Musa I. – (Admin. by Iran; Claimed by UAE) - B73
  4. Abyei – (Admin. by Sudan; Claimed by South Sudan) - B13
  5. Arunachal Pradesh (South Tibet) – (Admin. by India; Claimed by China) - B00
  6. Bajo Nuevo Bank (Petrel Is.) – (Claimed by Columbia, Jamaica, Nicaragua and the United States) - B41
  7. Bara Hotii Valleys – (Admin. by India; Claimed by China) - B02
  8. Bassas da India – (Admin. by France; Claimed by Madagascar) - B27
  9. Belize – (n/a) - B51
  10. Bhutan (Chumbi salient) – (Admin. by Bhutan; Claimed by China) - B76
  11. Bhutan (northwest valleys) – (Admin. by Bhutan; Claimed by China) - B75
  12. Bird Island – (Admin. by Venezuela; Claimed by multiple) - B48
  13. Br. Indian Ocean Ter. – (Admin. by U.K.; Claimed by Mauritius and Seychelles) - B69
  14. Ceuta – (n/a) - B60
  15. Courantyne Headwaters – (Admin. by Guyana; Claimed by Suriname) - B15
  16. Crimea – (Admin. by Russia; Claimed by Ukraine) - B89
  17. Cyprus U.N. Buffer Zone – (n/a) - B43
  18. Diego Garcia NSF – (Leased to U.S.A by U.K.; Claimed by Mauritius and Seychelles) - B44
  19. Dokdo (Takeshima, Liancort Rocks) – (Admin. by South Korea; Claimed by Japan) - B39
  20. Donbass – (Self admin.; Claimed by Ukraine) - B90
  21. Europa Island – (Admin. by France; Claimed by Madagascar) - B26
  22. Falkland Is. (Islas Malvinas) – (Admin. by U.K.; Claimed by Argentina) - B12
  23. Gaza – (n/a) - B53
  24. Gibraltar – (Admin. By U.K.; Claimed by Spain) - B55
  25. Glorioso Is. – (Admin. by France; Claimed by Madagascar) - B24
  26. Golan Heights: Golan Heights – (Admin. By Israel; Claimed by Syria) - B16
  27. Golan Heights: Shebaa Farms – (Admin. By Israel; Claimed by Lebanon) - B58
  28. Guantanamo Bay USNB – (Leased to U.S.A. by Cuba; Claimed by Cuba) - B50
  29. Hans Island – (Admin. by Denmark; Claimed by Canada) - B21
  30. Ilemi Triange – (n/a) - B74
  31. Ilemi Triangle – (Admin. by Kenya; Claimed by Sudan) - B17
  32. Isla del Perejil – (Admin. by Spain; Claimed by Morocco) - B62
  33. Islas Chafarinas – (Admin. by Spain; Claimed by Morocco) - B65
  34. Jammu and Kashmir: Aksai Chin – (Admin. by China; Claimed by India) - B07
  35. Jammu and Kashmir: Azad Kashmir (Azad Jammu and Kashmir) – (Admin. by Pakistan; Claimed by India) - B09
  36. Jammu and Kashmir: Demchok – (Admin. by India; Claimed by China) - B03
  37. Jammu and Kashmir: Jammu and Kashmir – (Admin. by India; Claimed by Pakistan) - B05
  38. Jammu and Kashmir: Northern Areas (Gilgit–Baltistan) – (Admin. by Pakistan; Claimed by India) - B08
  39. Jammu and Kashmir: Shaksam Valley – (Admin. by China; Ceded to China by Pakistan; Claimed by India) - B06
  40. Jammu and Kashmir: Siachen Glacier – (Claimed by Pakistan and India) - B45
  41. Juan De Nova I. – (Admin. by France; Claimed by Madagascar) - B23
  42. Korean Demilitarized Zone (north) – (Since 1953 a 2 km buffer north of the military demarcation line, patrolled by North Korea) - B11
  43. Korean Demilitarized Zone (south) – (Since 1953 a 2 km buffer south of the military demarcation line, patrolled by South Korea) - B10
  44. Kuril Is. – (Admin. by Russia; Claimed by Japan) - B29
  45. Lawa Headwaters – (Admin. by France; Claimed by Suriname) - B14
  46. Matthew and Hunter Is. – (Admin. by New Caledonia for France; Claimed by Vanuatu) - B66
  47. Mayotte – (Admin. by France; Claimed by Comoros) - B22
  48. Mbane Island – (Admin by Gabon; Claimed by Equatorial Guinea) - B52
  49. Melilla – (n/a) - B61
  50. N. Cyprus – (Self admin.; Claimed by Cyprus) - B20
  51. Nagorno-Karabakh – (Self admin.; Claimed by Azer.) - B38
  52. Navassa I. – (Admin. by U.S.A.; Claimed by Haiti) - B34
  53. Near Om Parvat – (Admin. by India; Claimed by Nepal) - B88
  54. Olivenza – (Admin. by Spain; Claimed by Portugal) - B67
  55. Paracel Is. – (Admin. by China; Claimed by Vietnam and Taiwan) - B47
  56. Penon de Alhucemas – (Admin. by Spain; Claimed by Morocco) - B64
  57. Peñón de Vélez de la Gomera – (Admin. by Spain; Claimed by Morocco) - B63
  58. Pinnacle Is. (Senkaku Is., Diaoyu Is., Diaoyutai Is.) – (Admin. by Japan; Claimed by China and Taiwan) - B18
  59. Rockall I. – (Admin by U.K.; Claimed by Ireland, Denmark, and Iceland) - B31
  60. S. Georgia – (Admin. by U.K.; Claimed by Argentina) - B32
  61. S. Sandwich Is. – (Admin. by U.K.; Claimed by Argentina) - B33
  62. Samdu Valleys – (Admin. by India; Claimed by China) - B04
  63. Sapodilla Cayes – (Admin. by Belize; Claimed by Honduras and Guatemala) - B80
  64. Scarborough Reef – (n/a) - B70
  65. Serranilla Bank – (Claimed by Columbia, Honduras, Nicaragua, and the United States) - B42
  66. Somaliland – (Self admin.; Claimed by Somalia) - B30
  67. South Ossetia – (Self admin.; Claimed by Georgia) - B37
  68. Spratly Is. – (Claimed by China, Taiwan, Malaysia, the Philippines, Vietnam, and Brunei) - B46
  69. Swains Island (Olohega) – (Admin. by American Samoa for U.S.A.; Claimed by Tokelau) - B71
  70. Tiran and Sanafir Is. – (Admin. by Egypt; Claimed by Saudi Arabia) - B68
  71. Tirpani Valleys – (Admin. by India; Claimed by China) - B01
  72. Transnistria – (Self admin.; Claimed by Moldova) - B36
  73. Tromelin I. – (Admin. by France; Claimed by Mauritius and the Seychelles) - B25
  74. UNDOF Zone – (UN Patrolled Zone in Syria) - B49
  75. W. Sahara – (Admin. by Morocco; Claimed by Western Sahara) - B19
  76. W. Sahara – (Self admin.; Claimed by Morocco) - B28
  77. Wake Atoll – (Admin. by U.S.A.; Claimed by Marshall Islands) - B59
  78. West Bank – (n/a) - B54
  79. West of Essequibo River – (Admin. by Guyana; Claimed by Venezuela) - B56
Location: Civic Center, San Francisco, San Francisco City and County, California, 94102, USA

Opensnowmap style re-write and bug fixes

Posted by yvecai on 7 March 2019 in English (English)

I’m genuinely pleased when people tell me about bugs or improvements related to OpenSnowMap map style by emailing me or by openning issues in github1,2. So, the least I can do is to try to fix them.

I’m happy to announce that a new style is being rolled out on OpenSnowMap that address some of them.

Here is an overview of the visible changes. For a better knowledge of the technical background, suffice to know that the piste database is now powered by Imposm instead of Osm2pgsql, and that the style is written in cartoCSS instead of bare mapnik XML.

Nordic and Crosscountry Skiing - Can I ski there ?

As the maintainer of OpenSnowMap, one thing I don’t want is to send your reckless grandma in an icy, treacherous slope. I’s also like to avoid to invite you to try an un-groomed backcountry piste you spot on the map with your skates.

So now, if piste:difficulty or piste:grooming is not mapped on piste:type=nordic ways, the piste shows a ? question mark on the map. Also, if not fully tagged, the more you zoom, the fainter the piste become. The goal of making the map less nice-looking is to ensure that lazy mappers will look twice at their contributions.

On the other hand, if you map properly the grooming type, icons and a dashed pattern will appears to distinguih between:

piste:grooming=classicclassic piste:grooming=skatingskating piste:grooming=scooterscooter piste:grooming=backcountrybackcountry Just have a look at the Oslo area to see what it means.

Also, if you tag the relevant section of any piste way with the proper piste:difficulty, you will see the small warning pictogram appear just where it’s useful, and not everywhere.

If difficulties are color-coded in your area, OpenSnowMap knows how to take care of the colour tag applied to a type=route, route=piste, piste:type=nordic relation. This is probably where you’d like to put this colour, while actually map the difficulty of every way composing the piste according to the wiki description for nordic pistes.

For those who wonder, the default XC pistes colors is the one in my area. If it’s not the same where you ski, map the relations colours.

Skitour and Backcountry Downhill

For ages, a skitour descent is explicitely described in the wiki as to be mapped as piste:type=downhill, piste:grooming=backcountry. Sorry, I missed that until now. Both piste:type=downhill, piste:grooming=backcountry and piste:type=skitour are now displayed with the same kind of dot pattern and the small backpacker-wearing skier icon. Also they are are painted with the same difficulty color-code than downhill runs.

Only the piste overlay is updated for now

The piste+relief overlay and the base map are too big to be re-rendered now. We have to wait for the northern hemisphere summer to see that happening without overloading the server. When this happens, the base map forest color will be dimmed down so that the XC pistes stand out more on the map.

Opensnowmap Legend

The map legend now looks like this: legend