Style | StandardCards

OpenStreetMap Blogs

Monday, 29. May 2023

OpenStreetMap User's Diaries

ChatGPT: GTK, OSM, and Python

Prompt: “I have OpenStreetMaps data. I am coding a GUI Program in Python with GTK. I want to create markers and areas on top of openstreetmaps data. What libraries will let me do that?”

Response: “To create markers and areas on top of OpenStreetMap data in a Python GUI program using GTK, you can use the following libraries:

  1. PyGObject: This library allows you to us

Prompt: “I have OpenStreetMaps data. I am coding a GUI Program in Python with GTK. I want to create markers and areas on top of openstreetmaps data. What libraries will let me do that?”

Response: “To create markers and areas on top of OpenStreetMap data in a Python GUI program using GTK, you can use the following libraries:

  1. PyGObject: This library allows you to use GTK and its associated libraries in Python. It provides bindings for various GTK components, including maps.

  2. Gtk.Map: This is a GTK widget that can display maps using different map providers, including OpenStreetMap. You can create an instance of this widget and add it to your GTK application’s window.

  3. Gio.Resource: This library allows you to load resources, such as images or data files, into your GTK application. You can use it to load map markers or icons to display on the map.

  4. cairo: This is a 2D graphics library that can be used to draw on GTK widgets. You can use cairo to draw areas or polygons on top of the map widget to represent specific regions.

Here’s a basic example to get you started:

import gi
gi.require_version('Gtk', '3.0')
from gi.repository import Gtk, Gio

def create_marker(lat, lon, icon_path):
    marker = Gtk.Image.new_from_file(icon_path)
    # Set marker position on the map using lat/lon coordinates
    marker.set_property('latitude', lat)
    marker.set_property('longitude', lon)
    # Add the marker to the map widget
    map_widget.add_overlay(marker)

def draw_area(coordinates):
    map_widget.queue_draw()

    def draw_callback(widget, cr):
        cr.set_source_rgba(1, 0, 0, 0.5)  # Set fill color and opacity
        cr.set_line_width(2.0)  # Set line width
        cr.move_to(*coordinates[0])  # Move to the first coordinate

        # Draw lines between the coordinates to form a closed area
        for x, y in coordinates[1:]:
            cr.line_to(x, y)

        cr.close_path()  # Close the path
        cr.fill_preserve()  # Fill the area with the chosen color
        cr.set_source_rgb(0, 0, 0)  # Set stroke color
        cr.stroke()  # Draw the outline

    map_widget.connect('draw', draw_callback)

# Create the GTK window
window = Gtk.Window()
window.connect('destroy', Gtk.main_quit)

# Create the map widget and add it to the window
map_widget = Gtk.Map()
window.add(map_widget)

# Load the icon file for the marker
icon_path = 'path/to/marker.png'
Gio.Resource.load(icon_path)

# Example marker and area coordinates
marker_coordinates = (latitude, longitude)
area_coordinates = [(x1, y1), (x2, y2), (x3, y3)]

# Create a marker and draw an area on the map
create_marker(*marker_coordinates, icon_path)
draw_area(area_coordinates)

# Show the window and start the GTK main loop
window.show_all()
Gtk.main()

Remember to replace ‘path/to/marker.png’ with the actual path to your marker icon file. You can adjust the coordinates to place the marker and draw the desired area on the map.”

Note: hashtag sign literal replaced with # to avoid formatting problems.


Өзгеріс енгізу

Бұл жерде бір көше атын өзгертейін деп едім. Қалай өңдейді? Левского, Пушкина дегендерді қазақша аттармен алмастырайын деп едім

Бұл жерде бір көше атын өзгертейін деп едім. Қалай өңдейді? Левского, Пушкина дегендерді қазақша аттармен алмастырайын деп едім


Өзгеріс енгізу

Бұл жерде бір көше атын өзгертейін деп едім. Қалай өңдейді? Левского, Пушкина дегендерді қазақша аттармен алмастырайын деп едім

Бұл жерде бір көше атын өзгертейін деп едім. Қалай өңдейді? Левского, Пушкина дегендерді қазақша аттармен алмастырайын деп едім

Sunday, 28. May 2023

OpenStreetMap User's Diaries

Hedges as area features as well as linear ones

Most hedges have been added to OpenStreetMap as lines. Most renderers show something like this:

and everyone’s happy.

However, from the beginning of OSM, people have mapped some hedges as areas, so for example something like this:

is clearly meant to be an area. The map style at map.atownsend.org.uk inherited what “OSM Carto” did in 2014, which was t

Most hedges have been added to OpenStreetMap as lines. Most renderers show something like this:

hedge rendering 1 from wiki page

and everyone’s happy.

However, from the beginning of OSM, people have mapped some hedges as areas, so for example something like this:

hedge obviously mapped as area in OSM

is clearly meant to be an area. The map style at map.atownsend.org.uk inherited what “OSM Carto” did in 2014, which was to show linear hedges as lines (using one bit of code) and area hedges as areas (using another). This works fine here:

hedge obviously mapped as area on map

However, in some cases there are problems. In an osm2pgsql database, an object can only be either an area or a line, but not a bit of both. If a tag that is thought to apply only to lines is found on an area, it will be ignored. Another effect is that if a hedge is drawn around an obviously area object (a field, for example), then the hedge will also be considered an area, if hedge areas are “a thing” in that map style:

See for example here:

hedge drawn around a field

which results in this “very large area hedge”:

linear hedge shown as area by mistake

More details and links to previous discussion can be found on the github issue here. The solution was this - if another tag might be making the item into an area feature, assume that the hedge is linear, but if no other tag is doing that, assume that the hedge is an area.

This results in the correct rendering here:

linear hedge shown as area by mistake

As an aside, in 2019 OSM Carto removed support for area hedges, and numerous people complained about that change. The result is that OSM Carto gets the “field” one above right but fails basic tests such as the example at the top of this diary entry:

hedge shown incorrectly by OSM Carto

To be fair - it’s not entirely the OSM Carto developers’ fault - part of the problem is mappers combining “features they expect to be linear” and “features they expect to be areas”, and partly that is because OSM does not have an area data type.

Although it’s not perfect, the solution here is clearly a better one than what they went with.

As another aside, the mismapping of hedges with barrier=hedge; area=yes when (according to the imagery) they are clearly not hedge areas is a real problem. As an example, if you look at the imagery here you can see that’s clearly a field, not a very big hedge. However (before some enthusiast decides a mechanical edit is in order) not all of these are mistagged - this one is just a very big hedge.

For completeness, from a database count there are 5999 “area hedges” in UK/IE, and 3026 “linear hedges around other area features”. Some of those “area hedges” should probably be something else (for example, way 1086001254 is a bit of a stretch as a hedge), and some of those “linear hedges” might actually be areas if an area hedge is, say, it’s very own nature reserve.


Typhoon Mawar Philippines Activation!

The Philippines will be greatly affected by Typhoon Mawar in the coming days. It is expected that the typhoon will bring strong winds and heavy rain intensifying the effects of the South West monsoons.

In line with this OpenStreetMap Philippines, has alerted its disaster mapping activation for West Isabela to map out buildings in the area.

Please help us map these areas

The Philippines will be greatly affected by Typhoon Mawar in the coming days. It is expected that the typhoon will bring strong winds and heavy rain intensifying the effects of the South West monsoons.

Imgur

In line with this OpenStreetMap Philippines, has alerted its disaster mapping activation for West Isabela to map out buildings in the area.

Please help us map these areas to identify the location of families for relief and support post-disaster.

Thank you!

TY MAWAR RESPONSE ACTIVATION - PHILIPPINES - WEST ISABELA 2 - BUILDINGS

TY MAWAR RESPONSE ACTIVATION - PHILIPPINES - WEST ISABELA 2 - BUILDINGS


weeklyOSM

weeklyOSM 670

16/05/2023-22/05/2023 WikiShootMe: Location of Wikidata items [1] | | © wikimedia.org Toolforge | map data © OpenStreetMap contributors Mapping Wilmer Osario wrote ► in his diary about re-drawing and improving 90 km of the Caracas-La Guaira Highway, by hand, from scratch, in JOSM. He explained in detail how he did it, adding an impressive number…

Continue reading →

16/05/2023-22/05/2023

lead picture

WikiShootMe: Location of Wikidata items [1] | | © wikimedia.org Toolforge | map data © OpenStreetMap contributors

Mapping

  • Wilmer Osario wrote in his diary about re-drawing and improving 90 km of the Caracas-La Guaira Highway, by hand, from scratch, in JOSM. He explained in detail how he did it, adding an impressive number of screenshots to visualise every step. It is like an user manual for mappers who may be planning to do similar things.

Community

  • adreamy has made a Telegram sticker set. offering a more fun and comfortable way for OSM contributors to communicate.
    He noted that sticker images can be exchanged, so if you have a good image or idea, let him know and he’ll take it into consideration.

OpenStreetMap Foundation

  • Grant Slater, the OpenStreetMap Foundation’s Senior Site Reliability Engineer, reflected on the advancements made during his first year of work. Collaboration by Grant with the Operations Working Group has boosted OSM’s infrastructure documentation, reliability, and security. Also, a new Dev server was installed and the old forums migrated to Discourse.

Events

  • Pete Masters (Head of Community at HOT) blogged that the former HOT unSummit has been renamed HOT OpenSummit.

Education

  • Anne Schauß, from HeiGIT, held a training session in Kuala Lumpur, Malaysia, for the International Federation of Red Cross and Red Crescent Societies (IFRC). She showcased the Sketch Map Tool (with functionality similar to Field Papers), that helps collect geolocated field data by tracing with pen and paper. Either OpenStreetMap (OSM) or an image is printed as the background.

Maps

  • #geoObserver reviewed Shadowmap, an application that simulates the movement of shadows. The app can predict the direction of shadows at any given time and place using astronomical calculations of the sun’s movements combined with building data from OpenStreetMap.

Open Data

  • Arno Dagnelies highlighted the lack of a high-quality source of address data for the whole world and presented his OpenStreetData project. To achieve global coverage with high-quality, open-licensed data, the author extracts addresses from raw OpenStreetMap data, along with postcodes, street names, and administrative districts. Arno describes in detail the process of address processing and the difficulties he encountered.

Software

  • The GeoVisio team, which includes contributors from OSM-fr, has developed an open-source streetview platform.
  • yuiseki improved the performance of the Trident GeoAI, which is based on a large language model. You can enter your requirements, and then see the results in this futuristic interface map.

Programming

  • gislars, from the Traffic Flow and OpenStreetMap group, tooted a new analysis and map of parking spaces in Braunschweig as part of the project ‘Parking Analysis with OpenStreetMap’.

Did you know …

  • … that the WikiShootMe application can display the location of Wikidata items around you in the form of a map?
  • … how to use exiftool in order to get the GPS coordinates from an image’s Exif header, in a format which is recognised by OpenStreetMap’s search?
  • … how to set up OsmAnd quick actions to have your favourite features on the map for fast access?

Other “geo” things

  • Rémy Crassard and his colleagues have found several plans of desert kites (hunting or herding traps) carved into rocks in Jordan and Saudi Arabia. Thought to have been made in the Neolithic era, these engravings are among the oldest scale plans found so far.
  • Ursula Petula Barzey explained the various indigenous names of some Caribbean Islands that were used prior to European colonisation.

Upcoming Events

Where What Online When Country
Royal Borough of Greenwich Hasiru Aqua 24-Hour Mapathon 2023-05-26 – 2023-05-27
左營區 2023年5月 OpenStreetMap 街景踏查團 2023-05-27 flag
Tiranë Maproulette Challenge at Open Labs Albania 2023-05-27 flag
Singapore OG Training by HOTOSM AP-Hub OSM ON THE GO: OSM MOBILE APPLICATIONS 2023-05-27
MapRoulette Nights 2023-05-28
OSMF Engineering Working Group meeting 2023-05-31
Düsseldorf Düsseldorfer OpenStreetMap-Treffen 2023-05-31 flag
Bologna Alluvione dell’Emilia-Romagna: editathon e mapping party al Salaborsa Lab 2023-06-03 flag
Mosquera Mapea por Mosquera 2023-06-04 flag
Mosquera Resolución de notas en tiempo real – Real-time note resolution 2023-06-04 flag
MapRoulette Nights 2023-06-04
MapRoulette Monthly Community Meeting 2023-06-06
Missing Maps London Mapathon 2023-06-06
San Jose South Bay Map Night 2023-06-07 flag
OSM-Verkehrswende #48 2023-06-06
Stuttgart Stuttgarter Stammtisch 2023-06-07 flag
Richmond State of the Map United States 2023 2023-06-08 – 2023-06-11 flag
Rīga State of the Map Baltics 2023 2023-06-08 – 2023-06-09 flag
Windsor MapRoulette-A-Thon 2023-06-09 flag
München Münchner OSM-Treffen 2023-06-08 flag
Marseille State of the Map France 2023 2023-06-09 – 2023-06-11 flag
Berlin 180. Berlin-Brandenburg OpenStreetMap Stammtisch – 15 Jahre – mit der Wikipedia-Community 2023-06-09 flag
Zürich OSM-Stammtisch 2023-06-10 flag
Hannover OSM-Stammtisch Hannover 2023-06-10 flag

Note:
If you like to see your event here, please put it into the OSM calendar. Only data which is there, will appear in weeklyOSM.

This weeklyOSM was produced by MatthiasMatthias, Nordpfeil, PierZen, Strubbl, TheSwavu, YoViajo, barefootstache, derFred, muramototomoya, rtnf.
We welcome link suggestions for the next issue via this form and look forward to your contributions.

Saturday, 27. May 2023

OpenStreetMap User's Diaries

OMM (Operation micro-mapping)

OMM

So i am starting a project called Operation micro-mapping and the goal is to have a lot of details in a location like the image below witch is a before and after of Matthew henson park (Credits to u/sporesofdoubt)

Why?

I once went to a park that had no information and i thought there were benches in the park but for some reason there weren’t, i was far from my town. That wa

OMM

So i am starting a project called Operation micro-mapping and the goal is to have a lot of details in a location like the image below witch is a before and after of Matthew henson park (Credits to u/sporesofdoubt)

Before and after

Why?

I once went to a park that had no information and i thought there were benches in the park but for some reason there weren’t, i was far from my town. That was annoying

First changeset

The changeset was made 31 Minutes before the publishment of this diary at parcul scolii


Mapping railway stations accessibility - part 1

For some months now, Champs-Libres is working for NMBS/SNCB, the national railway company of Belgium, for reusing OSM data from Belgian stations. NMBS/SNCB has an interest in OSM data for improving some services to travellers, especially regarding accessibility data, and especially for bicycles. Have a look at the wiki page for more insights!

This first diary entry is about the basic dat

For some months now, Champs-Libres is working for NMBS/SNCB, the national railway company of Belgium, for reusing OSM data from Belgian stations. NMBS/SNCB has an interest in OSM data for improving some services to travellers, especially regarding accessibility data, and especially for bicycles. Have a look at the wiki page for more insights!

This first diary entry is about the basic data about the Belgian stations, the “stations” themselves and the railway platforms. For reusing OSM data, we need to have a complete and right information about these objects! Next posts will be on mapping the accessibility (steps, footways, elevators, …).

How a railway station is represented in OSM?

There is a long page on the OSM wiki describing how a railway station should be mapped. The French version of the page is even more complete, partly thanks to a long collaboration between OSM and the SNCF.

To summarize, we can say:

If we want a list of the stations, we can just consider the simplest way of representing stations that is the first one: the node tagged with railway=station.

Are all the stations in Belgium (well) mapped?

Considering the nodes railway=station, the answer is “yes”! All Belgian station are in OSM. You can have a look by running this overpass query: https://overpass-turbo.eu/s/1oY3 (open this link and click on “Run” - the first top left button, and you’ll see the stations on a map)

There are 580 nodes (and 6 ways) tagged with railway=station in Belgium. But we know from NMBS that there are actually 554 railway station in Belgium, so its seems there are even more stations in OSM! How is it possible?

Actually, there are “real” railway stations in Belgium not operated by NMBS: these are mainly old stations still operated for tourism, as the Chemin de fer du Bocq and the Chemin de fer des 3 vallées.

To really identify the NMBS stations, we should add the “operator=NBMS/SNCB” tag where it is missing.

How about mapping the platforms?

The railway platforms are the places where you actually take the train or step down from it. They are mapped with a way and tagged simply with railway=platform. A very important tag to add is the ref=*, which is the numbers of the platforms. The ref is always one or two numbers, that need to be separated by a semicolon “;”, e.g., ref=2;3.

A platform gives access to one or two tracks, typically the platform for the first track (ref=1) only gives access to this first track, while the others platforms (2;3, 4;5, …) give access to 2 tracks.

And how are mapped the train platforms in Belgium?

Mhm not so bad, but some railway platforms are missing, including for big stations! Here’s an overpass query for identifying the existing platforms: https://overpass-turbo.eu/s/1plL.

We managed to identify the missing platforms or where the ref is missing. Here’s a list of stations where there is at least one missing platforms and/or ref compared to NMBS data:

Alken, Antwerpen-Centraal, Archennes, Beauraing, Bellem, Bierges-Walibi, Bierset-Awans, Boitsfort, Leopoldsburg, Bruxelles-Chapelle, Bruxelles-Luxembourg, Bruxelles-Schuman, Callenelle, Carlsbourg, Ciney, Courriere, Couvin, Dolhain-Gileppe, Eupen, Flawinne, Florival, Gastuche, Genval, Glons, Gouvy, Halanzy, Hansbeke, Haren-Sud, Hergenrath, Herstal, Houyet, Jambes, Jette, La Louviere-Sud, Lobbes, Lodelinsart, Londerzeel, Louvain, Maria-Aalter, Merelbeke, Namur, Nivelles, Oostkamp, Ottignies, Philippeville, Pieton, Pont-A-Celles, Poperinge, Profondsart, Quevy, Rhisnes, Rivage, Rixensart, Rochefort-Jemelle, Ronet, Roeselare, Sclessin, Sint-Joris-Weert, Sint-Katelijne-Waver, Tilly, Verviers-Central, Watermael, Yvoir.

This list is quite long, but note that in many cases, only one platform is missing and is not used at the moment.

How can you help?

From this first post, we can see there are some corrections and improvements you can do on the stations and platforms.

  • add the “operator=NBMS/SNCB” tag on NMBS stations where this tag is missing. See https://overpass-turbo.eu/s/1vpO, but of course make sure the stations is a real NMBS stations still in use!
  • map the platforms where it is missing. You can also check if the platforms of your favourites stations are well-mapped!

First entry

Changeset info

Changeset 136599035 Is my first peak identification and placement changeset witch has 43 Nodes and 38 Changesets (witch are all peaks)

Natura2000 Codes

These codes are similar to area codes, but they’re romanian and for nature reserves

● ROSPA0073

● ROSPA0091

● ROSCI0201

● ROSPA0031

● ROSPA0002

Changeset info

Changeset 136599035 Is my first peak identification and placement changeset witch has 43 Nodes and 38 Changesets (witch are all peaks)

Natura2000 Codes

These codes are similar to area codes, but they’re romanian and for nature reserves

● ROSPA0073

● ROSPA0091

● ROSCI0201

● ROSPA0031

● ROSPA0002


Nominatim

Python Progress Reports: Refreshing the Search Algorithms

Forward search is the last and biggest part of Nominatim to get ported to Python. Rewriting the search algorithm in Python was also an opportunity to review its design and correct some of the long-standing short-comings. This post looks into some of the changes made.

Forward search is the last and biggest part of Nominatim to get ported to Python. Rewriting the search algorithm in Python was also an opportunity to review its design and correct some of the long-standing short-comings. This post looks into some of the changes made.

The secret to a good geocoding engine lies in its query parsing algorithm, the part of the code that takes a free-form text and converts it into a structured form that can be translated into SQL queries into the database. Nominatim has always taken an unopinionated approach to make as few assumptions as possible. Instead it creates a list of all possible interpretations of the incoming free-form text and tries all of them until it gets a result. This design makes searches a bit slower because there are potentially dozens of database queries. Still, it works very well with the heterogeneous OSM data with its many regional differences and its evolution over time. So there is no need to change the principle.

One of the short-comings of the PHP implementation is that it works strictly sequentially: first create a list of structured queries from and put them in an order of best fit to the original free-form query. Then execute the list until the database returns a result. Then recheck the results against the original query to put them in an order. In practise, it is not always possible to out the different interpretations of the free-form query into the right order without seeing what results the database will yield. The Python code therefore switches to a global measure of accuracy that combines the likelihood how well the structured query matches the free-form text with the likelihood how well the result from the database matches the original query.

This unlocks some improvements to the search experience. Let’s have a look at two examples.

Full-name matches vs. partial matches

One of the most annoying features of Nominatim was that it would give a hard preference to matches of the full name. To give you an example: assume that OSM has the well-known city only tagged with name=New York City. In addition there is a small restaurant in Chicago with name=New York. In such a constellation a search for ‘New York, US’ would return the restaurant because it is a perfect match (and well within the United States) instead of the much better known city.

With the global accuracy measure, Nominatim is now able to search for full-name matches and partial matches at the same time, giving all results with partial matches a lower score. So there is still a preference for perfect name matches but they won’t prevent partial matches from appearing up anymore. In the case of New York, the city would still show up as the first result because the fact that it is very well known gives the global accuracy an enormous boost.

Better matching of scripts

When Nominatim searches for a place, it doesn’t use the name as it was typed in the search box. It uses a form that is translated into Latin script. This allows for some fuzziness when handling multi-lingual data sets. It doesn’t matter if you type ‘manhattan’, ‘манхаттан’ or ‘マンハッタン’. All of these searches will find Manhattan. The downside is that sometimes two obviously different names still match up because the transliteration happens to be the same. There is a long-standing bug report that a search for ‘Rømø’, an island in Denmark, would consistently return Rome as a result, just because Rome is very well known and happens to be called ‘Romo’ in Esperanto.

With the new global accuracy measure it is possible to give results with matching scripts a proper boost and avoid such confusion in the future.

Readjusting the algorithm

Deciding how well a structured query or a database result matches to the free-form text query is not a hard science. There are a lot of knobs and screws that need to be adjusted through trial and error. The new global accuracy measure comes with a whole different set of knobs and screws and it will take a while to find the optimal adjustments.

To come to a useable initial setting, the geocoder-tester dataset comes in handy This is a test set of almost 50.000 search queries. They are mostly addresses and simple city name searches but also contain searches for POIs like airports and museums. For the PHP implementation 72.8% of the tests pass. In the initial Python implementation the success rate dropped to 68.3%. After some tweaking, the success rate is now 74.6%, already a 2% improvement over the old PHP code.


OpenStreetMap User's Diaries

Love him!

My husband is making me laugh

My husband is making me laugh

Friday, 26. May 2023

OpenStreetMap User's Diaries

Dibujando la cobertura forestal (natural=wood) de una cordillera, usando JOSM y Maxar

Mapear la gran masa forestal de una gran zona es algo que ya había probado antes en una de las ciudades costeras de mi país, a petición indirecta de un nuevo usuario de allí que ha hecho buenos esfuerzos por mapear su ciudad con buen detalle, y se esmeraba por mapear los bosques de su ciudad:

♦ ♦

En ese entonces solo me limité a cubrir las cordilleras que rodean la ciudad y las d

Mapear la gran masa forestal de una gran zona es algo que ya había probado antes en una de las ciudades costeras de mi país, a petición indirecta de un nuevo usuario de allí que ha hecho buenos esfuerzos por mapear su ciudad con buen detalle, y se esmeraba por mapear los bosques de su ciudad:

Imagen Imagen

En ese entonces solo me limité a cubrir las cordilleras que rodean la ciudad y las diversas montañas que hay dentro de ella, pero el procedimiento fue simple: dividir las zonas boscosas en cuadriculas, creando una relación para cada cuadrado, muy parecido a lo que hacen los mapeadores de Canadá con los bosques de aquel país:

Imagen

Muchas veces me he visto tentado a intentarlo en las regiones amazónicas de mi país, viendo como otros usuarios han intentado durante años mapear todas las selvas de esa región, aunque con una calidad que en condiciones normales deja mucho que desear, pero que por las características aisladas de la zona, zafa bastante 😁.

Imagen



En el caso de hoy haré la cobertura forestal de una gran isla/provincia de mi país, conformada por muchas montañas con notable cobertura boscosa, como se puede observar en las siguientes imágenes tomadas por mí:

Imagen


Fotografía tomada por mí

Imagen


Fotografía tomada por mí

Imagen


Fotografía tomada por mí

Imagen


Fotografía tomada por mí




Paso 1: La cuadrícula

Lo primero que hago es trazar una especie de cuadrícula, de modo que cada cuadrado será una relación de (natural=wood) única, procurando además que cada cuadrado cubra una montaña entera lo más que se pueda. De no hacerlo así haría que la relación de la cordillera sea demasiado grande y pesada, haciendo difícil el mapeado de la zona usando los distintos editores como iD y JOSM 😅.

Como JOSM no me permite trazar líneas completamente rectas a la primera, tengo que usar los nodos de cada extremo para ubicarlos en una posición GPS específica:

Imagen

Para las líneas de norte a sur, ubicaré los nodos de sus extremos en una misma coordenada longitud:

Imagen Imagen

De esa forma quedarán completamente rectas. Y luego hago lo mismo con las de oeste-este:

Imagen

Crearé nodos en las intersecciones de cada línea :

Imagen Imagen

Y luego cortaré cada línea para que los cuadrados queden completamente hechos:

Imagen Imagen



Paso 2: “El esqueleto” del bosque

Entonces elijo un cuadrado para comenzar a trazar los bordes de las zonas boscosas. Empezando por uno de los bordes del cuadrado:

Imagen Imagen

Colocaré nodos en las partes donde el aparente borde del bosque intercepta al borde del cuadrante, desde donde comenzaré a trazar:

Imagen Imagen

Para facilitarme el trabajo, me encanta usar un plugin de JOSM llamado “FastDraw”, ideal para tareas así. Dibujo un trazado que me muestra en color amarillo, y luego de terminar presiono la tecla (Enter/Intro) y automáticamente calcula la forma para darle los nodos necesarios:

Imagen Imagen Imagen

Aunque en los lugares donde necesito más precisión, como por ejemplo en carreteras o edificios, me gusta usar la herramienta estándar de JOSM:

Imagen Imagen


Una de las consideraciones que tomo es que las carreteras, al ser una “división” natural (por así decirlo 😅) también serán bordes del bosque, a menos que los árboles cubran la vía como se muestra en la siguiente imagen:

Imagen Imagen

Además, como no me agrada la idea de usar la misma (way) de la carretera como lindero del bosque, prefiero trazar los bordes del (natural=wood) paralelas a ella:

Imagen


Entonces primeramente sigo trazando el borde del bosque hasta toparme con el próximo borde del cuadrante. Esa línea vendría siendo el (outer) de la relación del (natural=wood) 😁.

Imagen Imagen Imagen Imagen


Aprendiendo un poco sobre catastro en mi país, si en la imagen aérea se visualiza que la masa arbórea cubre edificios, también los incluiré dentro de los límites del bosque:

Imagen Imagen Imagen Imagen Imagen


Luego de terminar con los bordes del bosque, trazaré “lo de adentro”, los claros que vendrían siendo los (inner) del (natural=wood)

Imagen Imagen


Otra consideración importante es que haré distinción entre el bosque natural (natural=wood) y el “bosque creado por el hombre” (landuse=forest) en el cuál se incluyen plantaciones y cultivos. Como solo estoy trazando lo primero, intentaré ignorar todos aquellos bosques que parezcan sembrados para actividades económicas:

Imagen


Y al final, luego de trazar todos los (inner) y (outer), terminaré con el cuadrante así:

Imagen Imagen

Entonces, parto las diferentes secciones de los bordes:

Imagen Imagen

Y reviso los trazados largos, ya que JOSM no permite subir trazados que contengan más de 2.000 nodos. Si ese fuese el caso, tendría que partir ese trazado por la mitad o en varios trozos:

Imagen



Paso 3: La relación del cuadrante

Primero le colocaré la etiqueta de (source=*) a todos los trazados:

Imagen

Y así entonces podré crear y preparar la relación del bosque:

Imagen Imagen

Añadiré todo el contorno del cuadrante con el rol de (outer) y los demás contornos sueltos que pertenezcan a (outer):

Imagen

A la vez ignorando las líneas rectas sobrantes del borde del cuadrante que no formen parte del borde de un bosque:

Imagen

Luego procederé con los (inner):

Imagen

Y al final me quedará el polígono completo del cuadrante forestal:

Imagen Imagen


Como cosa especial, le agregaré la etiqueta que especifica el tipo de árboles presentes en el bosque, como lo describe la wiki de OSM. En el caso de mi país, al ser una zona tropical, no existen los árboles de pino en ésta área, por lo que la etiqueta será (leaf_type=broadleaved):

Imagen Imagen


Antes de subirla, eliminaré los bordes de éste cuadrante que no pertenezcan a un (outer). En el caso de volver a necesitarlos, será fácil trazarlos haciendo una simple línea de nodo a nodo:

Imagen Imagen Imagen

Y como no es debido subir líneas vacías a OSM, pero necesito las demás líneas de la cuadrícula para hacer los demás cuadrantes, les pondré una etiqueta de (note=*) para notificar a los mapeadores de la zona que se topen con ella, escrita en el idioma local:

Imagen

Y finalmente subo el conjunto de cambios con comentario y fuente:

Imagen

Y luego solo me queda seguir trabajando los demás cuadrantes 😁:

Imagen Imagen


opensnowmap

Relief upgrade

More and more countries offers high-precision relief open data based on LIDAR measurements. I took the opportunity to integrate some in Opensnowmap.org map, including : • France – RGE ALTI® 5m © IGN • Switzerland – Alti3D © swisstopo • US & Canada – NED 1arcsec U.S. Geological Survey • Austria – DHM 10m – CC-BY-4.0: … Continue reading "Relief upgrade"

More and more countries offers high-precision relief open data based on LIDAR measurements. I took the opportunity to integrate some in Opensnowmap.org map, including :

• France – RGE ALTI® 5m © IGN
• Switzerland – Alti3D © swisstopo
• US & Canada – NED 1arcsec U.S. Geological Survey
• Austria – DHM 10m – CC-BY-4.0: Land Kärnten – data.gv.at
• Italy – Tinitaly 10m – CC BY 4.0 Tarquini S., I. Isola, M. Favalli, A. Battistini, G. Dotta (2023). Istituto Nazionale di Geofisica e Vulcanologia (INGV).
• Norway – DTM 10 Terrengmodell (UTM33) – CC BY 4.0 Kartverket

Even if the final resolution is the same than previously (1 arcsec or approx. zoom level 12), the extra-precision add nice details to the map.
These dataset have been merged on top of the previous SRTM / ASTER / EU-DEM data with gdal, using a blend radius of 2 pixels (2 arcsec) on their edges.

The hillshading has been re-computed using the excellent ‘Igor’ algorithm (from Igor Brejc, Maperitive author), this also add some interesting information on the north-west facing slopes.

Nowadays it’s way easier than back in 2015 to play with those big datasets, mainly thanks to the availability of fast NVMe disks. This also mean that I could more comfortably refine some other elements of the map and their interaction with the relief. This concerns mainly the contour lines (also computed and optimized from the same upgraded relief data) and the small roads and their label.

Still, you’re not looking at a big contrast topo map, just the background map to display ski pistes at opensnowmap.org.


OpenStreetMap User's Diaries

Mulberry Grove, IL

Oh, Mulberry Grove, Bond County, Illinois A village of only 520 people. I forget how, but me and my colleague Lovelyfurball88, found out about this place. We have been micro-mapping it for a while, and progress has been slow, as micro-mapping goes. Why? why not man, this place had only roads so it deserves something. mulberrygroveil.org/ I don’t even live near it, I’m just using the satellite ph

Oh, Mulberry Grove, Bond County, Illinois A village of only 520 people. I forget how, but me and my colleague Lovelyfurball88, found out about this place. We have been micro-mapping it for a while, and progress has been slow, as micro-mapping goes. Why? why not man, this place had only roads so it deserves something. https://mulberrygroveil.org/ I don’t even live near it, I’m just using the satellite photos.

The simple joys of micro mapping I guess.

Mulberry Grove on map


Motel

Is this a motel 6

Is this a motel 6

Thursday, 25. May 2023

OpenStreetMap User's Diaries

Wied-Radweg

Beim autofreien Sonntag Mai 2023 dort langgeradelt. Eine Karte gibt es hier: www.radwanderland.de/radrouten/Wied-Radweg Vergleiche mit: osmrm.openstreetmap.de/relation.jsp?id=544300 und: cycling.waymarkedtrails.org/#route?id=544300&type=relation

Dabei habe ich Fehler festgestellt und denen gemeldet:

Die offizielle Route von der Internetseite entspricht nicht immer den Gegeben

Beim autofreien Sonntag Mai 2023 dort langgeradelt. Eine Karte gibt es hier: https://www.radwanderland.de/radrouten/Wied-Radweg Vergleiche mit: https://osmrm.openstreetmap.de/relation.jsp?id=544300 und: https://cycling.waymarkedtrails.org/#route?id=544300&type=relation

Dabei habe ich Fehler festgestellt und denen gemeldet:

Die offizielle Route von der Internetseite entspricht nicht immer den Gegebenheiten vor Ort. Beim Mappen kann man sich also auf die offizielle Route nicht verlassen.

beim autofreien Sonntag habe ich mir den Wied-Radweg etwas genauer angesehen und mit der Karte verglichen in: https://www.radwanderland.de/radrouten/Wied-Radweg

Dabei habe ich die „Details der Routenführung“ aktiviert.

Aber es sind mir einige Differenzen aufgefallen:

Burglahr bis Peterslahr (Heckerfeld, Kur-Kölner Straße, Auf dem Heidstock, Kirchstraße): Eingezeichnet grün für “Streckenverlauf abseits von Straßen (z.B. auf Wirtschaftswegen)”, aber das sind Straßen, wenn auch ruhige, richtig wäre also nach Ihrer Legende hellblau für “Streckenverlauf auf Straßen ohne Radweg mit geringer Verkehrsbelastung”. (Bild 01)

Der Tunnel hinter Peterslahr ist gesperrt wegen einer Baustelle. Auch wenn das eine temporäre Maßnahme ist, eine Internetseite anzupassen geht schneller als diese Baustelle fertigzustellen. (Bild 02)

Hinter Mettelshahn führt der Radweg laut Karte auf der L269 bis zum Kreuzbruderweg beim Kloster Ehrenstein, dann links über die Wiedbrücke zum Rad- und Fußweg auf dem alten Bahndamm. Laut Beschilderung führt er aber gleich hinter der Mettelshahner Schweiz bei einem Parkplatz schräg hoch auf eine Wiedbrücke und den Bahndamm. Siehe Bild 03 und 04: Wegweiser bei Abzweig zum Kloster - Wied-Radweg führt geradeaus weiter.

Der Sinn der Streckenführung in Neustadt südlich der Bahnhofstraße erschließt sich mir nicht. Dort führt der Radweg rechts (nördlich) der Wied über einen Holperweg “In der Kirchwiese” neben einem Gewebegebiet. Viel angenehmer ist es, schon vorher bei der Berschau den Bahndamm zu verlassen und auf einem geteerten Weg links der Wied am Naturschutzgebiet Berschaue vorbei bis zur L255 zu fahren. (Bild 05)

In Neustadt (Kirchplatz, Wiedtalstraße, Raiffeisenstraße) ist der Weg grün eingezeichnet, aber das sind Straßen, richtig wäre also hellblau oder gar dunkelblau, weil die Straßen zeitweise viel befahren werden.

Krummenau bis zum Wendehammer ist ebenfalls eine Straße, auch hier ist grün falsch, richtig wäre hellblau.

Bei Steeg ist ein Radweg neben der L255, hier kann also rot eingezeichnet werden statt blau. (Bild 06)

Das Gleiche gilt für Kodden ab der Bushaltestelle: eingezeichnet grün, richtig wäre hellblau. (Bild 07 und 08)

Hinter Kodden führt ein schöner neuer Radweg über eine Wiedbrücke und dann an der L255 entlang. Dieses Wegstück, unten an der L255 entlang, ist fälschlicherweise hellblau eingezeichnet, richtig wäre hier grün, denn an dieser Stelle ist das ein von der L255 getrennter Radweg. (Bild 09 und 10)

Die kleine Brücke bei Oberhoppen ist jetzt gesperrt, deswegen müssen Radfahrer jetzt ab der L255-Wiedbrücke vor Oberhoppen auf der L255 weiterfahren. Das wäre hellblau oder dunkelblau einzuzeichnen. Ebenso hinter Oberhoppen, rot für “Streckenverlauf auf Radwegen an Straßen” ist hier falsch, es gibt hier keine “Radwegen an Straßen”. (Bild 11)

Abseits dieses Gebietes habe ich mir die Wege nicht angesehen, aber ich fürchte, da werden noch mehr Fehler drin sein.


Resolución de notas en tiempo real

Junto con Rafael Isturiz - risturiz, hemos estudiado las notas de OSM en sus diferentes aspectos. Como parte de esto, nos dimos cuenta de que las notas sirven para permitir la comunicación entre personas en terreno con personas en el computador (arm-chair mappers). Por lo que le solicitamos a Qeef algunas modificaciones en DAMN-project / Divide and Map, Now., para que detecte las nuevas notas de

Junto con Rafael Isturiz - risturiz, hemos estudiado las notas de OSM en sus diferentes aspectos. Como parte de esto, nos dimos cuenta de que las notas sirven para permitir la comunicación entre personas en terreno con personas en el computador (arm-chair mappers). Por lo que le solicitamos a Qeef algunas modificaciones en DAMN-project / Divide and Map, Now., para que detecte las nuevas notas de un área, y así poder resolver las notas recientemente creadas. En otras palabras, poder resolver notas en tiempo real. Aquí explico cómo preparar un evento de estos, con un caso concreto.

El capítulo de YouthMappers de la Universidad Nacional de Colombia (UN GeoParche) está organizando varias actividades de mapeo del área de Mosquera (un municipio cerca de Bogotá). Una de esas actividades es un mapping party donde van a participar personas de la comunidad OSM Colombia, entre esos yo, AngocA. Como todo mapping party, se captura información en terreno con diversas aplicaciones, y entre las actividades, vamos a estar creando notas sobre elementos que no estén en el mapa gracias a la aplicación Fediphoto. En paralelo, se realizará un evento en línea por OSMvideo – BigBlueButton, por el canal de Notathones LatAm, el cual dirigirá Rafael. Parte del evento en línea consiste en explicar el funcionamiento básico de DAMN-project client en JOSM, para tomar un parte del área de Mosquera y monitorear la creación de nuevas notas; de esta manera se detectan y se resuelven al instante.

Lo primero que toca hacer es definir el área donde se va a trabajar. En este caso, el mapping party se va a realizar en la zona central de Mosquera, por lo que el área donde se pueden llegar a crear las notas será la misma área.

1 Imagen de la zona de Mosquera 1

Como ya sabemos en qué área se van a crear las notas, la dividimos en espacios de trabajo para monitorear la creación de notas. Para este caso decidimos crear un área cada 3 cuadras de largo y de ancho 2 medias cuadras. Esto lo podemos dibujar con la herramienta https://vector.rocks/, asegurándonos de que no queden espacios entre las áreas, o sea que los nodos de esquinas continuas estén superpuestos (hay muchas otras herramientas, y lo importante es que se genere un GeoJSON con áreas colindantes compartiendo nodos). Una vez dibujada el área se descarga el correspondiente GeoJSON.

2 Imagen de los espacios de trabajo 3 Imagen de los espacios de trabajo

Con el GeoJSON descargado, ahora lo editamos para agregar la etiqueta “name” al mismo nivel de “type”: “FeatureCollection”. Esto es necesario para que DAMN-project tome los espacios de trabajo definidos en el paso anterior y no los genere automáticamente como rectángulos. Para esto también se puede usar el visor https://geojson.io/, donde mostrará el área, y el documento en texto. Si se modifica por este lado, entonces al oprimir sobre Save, y escoger GeoJSON, se bajará un archivo llamado map.geojson.

4 GeoJSON editado

Ya en este momento tenemos el archivo para crear el proyecto en DAMN-project, en la parte de “manager”: https://manager.damn-project.org/#area=new. Para esto, llenamos el formulario con las siguientes opciones:

  • Le incluimos un buen comentario de conjunto de cambios (que también sirve de nombre de proyecto):
    • Notathon Mosquera 2023 #MaptimeBogota #ONL
  • Una prioridad de 2 basta.
  • En la descripción indicar que lo que se busca es solucionar las notas a medida que se crean en terreno:
    • Tomar una, y abrirla en JOSM para identificar las notas creadas en dichas áreas, para resolverlas en tiempo real. Puedes comunicarte con quien creo la nota escribiendo un comentario a la nota, por si necesitas más detalles.
  • En las instrucciones, indicamos que se van a resolver Notas y agregamos un link hacia https://wiki.openstreetmap.org/wiki/ES:Notas
    • También escogemos “Download notes automatically.”
  • En la parte el GeoJSON boundary file, buscamos el archivo que dibujamos en vector.rocks y que después le agregamos la etiqueta name. No debemos seleccionar las opciones sobre los custom squares porque perderemos las áreas de trabajo.

5 creación proyecto DAMN 6 creación proyecto DAMN

Finalmente, guardamos (save new area) y la habremos creado un proyecto en DAMN-project, el cual lo podemos ver en la parte de administración https://manager.damn-project.org/ o en la parte de mapeo https://mapper.damn-project.org/.

7 Listado de proyectos

Ahora, podemos buscarlo en el cliente de JOSM, por medio del botón GetAreas:

8 Botón GetAreas

Nos aparecerán todos los proyectos actualmente activos en DAMN-project.

9 Lista de proyectos en JOSM

Para este caso escogemos: “Notathon Mosquera 2023 #MaptimeBogota #ONL” haciendo doble click. Ahí nos mostrará la descripción del proyecto.

10 Proyecto seleccionado imagen 10

Si hacemos click sobre “Get area geometry”, se decargan todas las siluetas de espacios de trabajo. En otras palabras, las mismas áreas que definimos antes.

11 Obtener la geometría de toda el área

Cuando hacemos click sobre Map, automáticamente nos asignará un área de trabajo, descargando las capas correspondientes.

12 Escoger un área de trabajo

En este momento ya estamos monitoreando nuestra área, y dependiendo de la configuración, nos descargará las notas recientemente creadas. Para esto se abre el panel de notas.

Para monitorear frecuentemente el área en búsqueda de nuevas notas, se puede reducir el tiempo de consulta, modificando la configuración de damn, bajo preferencias, avanzado: damn.download_notes_period_minutes.

13 Configuraciones de DAMN

Cuando se termine de monitorear, ya que el mapeador no puede seguir con la notathon, entonces debe hacer click en “Map again”, y aceptar el mensaje de texto. Esto indica que el área queda disponible para otro mapeador.

Si alguien hace click en “To review” o “Done”, será necesario volver a habilitar esas áreas desde la zona de manager: https://mappy.damn-project.org/ seleccionando el área en modo revisión o terminada, hacer click derecho y escoger “Needs mapping.

Esta es la forma como que prepara un Notes Real-time Resolution, por medio de varias herramientas, y ante todo un equipo de trabajo tanto en terreno como en el computador.

Wednesday, 24. May 2023

OpenStreetMap User's Diaries

How should I tag paths suitable for off-road wheelchairs and mobility scooters?

A section of the Cotswold Way National Trail on Leckhampton Hill was recently improved to make it suitable for off-road Tramper wheelchairs and mobility scooters.

The path has been widened and resurfaced:

Steps where the path meets Hartley Lane have been replaced with a ramp:

I’m not sure how best to tag this. Using wheelchair=yes doesn’t

A section of the Cotswold Way National Trail on Leckhampton Hill was recently improved to make it suitable for off-road Tramper wheelchairs and mobility scooters.

The path has been widened and resurfaced:

Resurfaced path on Leckhampton Hill

Steps where the path meets Hartley Lane have been replaced with a ramp:

Ramp providing access to and from Hartley Lane

I’m not sure how best to tag this. Using wheelchair=yes doesn’t seem correct as a more rugged chair or mobility scooter is required. Looking at Taginfo for wheelchair I don’t see “off-road” or similar. The Key:wheelchair wiki page doesn’t help either.

Even the experts on the #osm-gb IRC channel seemed unsure how to tag this, but pointed out that such paths are becoming more common (see Rambles on wheels), so I thought I’d ask the wider community.

Better accessibility tagging is also useful for people who don’t use wheelchairs, but have restricted mobility. Someone at the volunteer group which helps look after the hill told me that the ramp has opened up the hill to people who have been unable to walk there for years.


Road Curve Mapping Tips

Don’t Overdo It

Use as few nodes as possible, but as many as necessary. This makes it much easier for later mappers to improve or update things.

Keep Consistent Distance Between Nodes

Makes rendered maps look much nicer :)

Follow Road’s Centerline

Do you disagree? Any other tips? Leave a comment.

Don’t Overdo It

Use as few nodes as possible, but as many as necessary. This makes it much easier for later mappers to improve or update things.

Fidelity

Keep Consistent Distance Between Nodes

Makes rendered maps look much nicer :)

Consistent

Follow Road’s Centerline

Center it

Do you disagree? Any other tips? Leave a comment.

Tuesday, 23. May 2023

MapTiler

OpenMapTiles 3.14: New OpenStreetMap Style shows all the features

OpenMapTiles has been updated bringing a raft of improvements to enable you to make better maps:

  • New OpenStreetMap inspired map style
  • Natural Earth 5 data in basemaps
  • Improved land use and land cover polygons information on zoomed-out maps
  • PostgreSQL 14 compatibility

If you want to get started with OpenMapTiles then MapT

Thumb

OpenMapTiles has been updated bringing a raft of improvements to enable you to make better maps:

  • New OpenStreetMap inspired map style
  • Natural Earth 5 data in basemaps
  • Improved land use and land cover polygons information on zoomed-out maps
  • PostgreSQL 14 compatibility

If you want to get started with OpenMapTiles then MapTiler provides cloud and self-hosting solutions:

Cloud hosting         Self Hosting

OpenStreetMap inspired vector tiles as an OpenMapTiles style

OpenMapTiles is now available with a new style that shows all the features. Inspired by OpenStreetMap Carto, this style is a cartographic design you are familiar with for a vector dataset you can use at all zoom levels.

OpenMapTiles OSM Style Edinburgh Castle

This new cartographic style is bound to the schema, meaning you can now see any additions or improvements as and when they are made. This does mean that any pull requests to update the schema also require a modification to the style.

We have proposed that this style is featured on osm.org as the best way to represent OpenStreetMap data on vector maps. The benefits of this would be:

  • Multi-language maps, with language switching easily implemented.
  • Compatibility with 3D Mapping, with labels and features that don’t warp badly when added to the terrain.
  • The ability to see the changes you make on your local machine while you edit the schema (Using TileServer and the tools included)

We hope to see the style adopted by the OpenStreetMap Foundation soon!

Natural Earth 5 data

We’ve improved the OpenMapTiles base data of the more zoomed-out maps with Natural Earth 5 to give the latest information, including:

  • New and improved county and state borders inside individual countries.
  • Updated placenames in multiple languages so you can create maps for specific audiences.
  • New and updated attributes, such as Wikidata IDs to link to other datasets

Better Landuse & Landcover data

Polygon areas, such as natural and urban areas, are now much better represented on medium-scale maps. You now get to see more forests, natural areas, and even residential areas at these scales as smaller polygons are shown at more zoomed-out levels. The result is a much more accurate picture of the extent of forestation or urbanization when getting an overview of an area.

Before and After images of landcover and landuse improvements

Postgres 14 compatible data for your maps

The latest version of OpenMapTiles is the first to be generated with the OpenMapTiles Tools 7.0. This means the data is now compatible with PostgreSQL 14, so you can take advantage of more up-to-date software.

Extra features

Finally, we’ve added some extra features to OpenMapTiles. You can now find the following additional features from version 3.14 on the maps:

  • Parcel locker
  • Shrubbery
  • Bus guideway
  • Quarry

Parcel Locker in the new OpenMapTiles OSM Style

Because all new features added to OpenMapTiles need to have a style, these extras can already be seen in OSM OpenMapTiles maps. This also means that any future additional features will also be visible in this style from the moment they are added!

We hope that this will drive more contributions to this amazing dataset.

You can find a complete list of changes in the GitHub release notes here: Release v3.14.

Remember, you can use map hosting from the authors of this open-source project to serve both raster and vector tiles. Through MapTiler cloud you can design a custom map style fitting your app with a few clicks, and MapTiler has the lowest hosting costs, cheaper than maintaining your own map servers.

Cloud hosting         Self Hosting

Monday, 22. May 2023

OpenStreetMap User's Diaries

Lion Mappers Team Nsukka: A Mapping/Training Session

Today was an eventful one, Members of our group (LMT, Nsukka) came together to get it right as we opened the 14788 project on HOTosm titled ENUGU STATE -MAP NIGERIA MAPATHON CAMPAIGN -LET’S MAP NSUKKA LGA FOR SDGS AND SOCIAL GOOD and we commenced to map with iD Editor meanwhile with my little knowledge I also help to direct and answer some of my teammates questions like “how do I put #tags?, why

Today was an eventful one, Members of our group (LMT, Nsukka) came together to get it right as we opened the 14788 project on HOTosm titled ENUGU STATE -MAP NIGERIA MAPATHON CAMPAIGN -LET’S MAP NSUKKA LGA FOR SDGS AND SOCIAL GOOD and we commenced to map with iD Editor meanwhile with my little knowledge I also help to direct and answer some of my teammates questions like “how do I put #tags?, why is my task showing error instead of submitting?, How many edits will get me to become an advance mapper?” etc.

I benefited mostly when our trainer Miss Juliet from Lion Mappers Team Enugu Campus expanded my knowledge on mapping with JOSM and even much more when she introduced RapiD which I believe is easier and faster compared to ID Editor.

I am confident that my mapping skills have improved today more than what it was yesterday. I and my Team members have gained greatly today and we are really excited about it.

A big thanks to Unique Mappers Network and their contribution to open-source data sets.


Map Roulette Nights Test Run!

Greetings everyone! Would love to invite you to a series of mapping nights in the following weeks!

I will be hosting the MapRoulette Nights every Sunday 9PM Philippine Time (UTC +8) via Google Meet.

No prizes, no shizz, just plain mapping with people with the same interest. Let’s spin the Mapping Wheel and see where it lands.

To join us, please sign up here. We

Greetings everyone! Would love to invite you to a series of mapping nights in the following weeks!

I will be hosting the MapRoulette Nights every Sunday 9PM Philippine Time (UTC +8) via Google Meet.

No prizes, no shizz, just plain mapping with people with the same interest. Let’s spin the Mapping Wheel and see where it lands.

MapRouletteNights

To join us, please sign up here. We will send the calendar invite with the GMeet Room link.


OpenStreetMap Blog

Powering OpenStreetMap’s Future: A year of improvements from OpenStreetMap Foundation’s Site Reliability Engineer

Just over one year ago, I joined the OpenStreetMap Foundation (OSMF) with the goal of enhancing the reliability and security of the technology and infrastructure that underpins OpenStreetMap. Throughout the past year, I have worked closely with the Operations Working Group, a dedicated team of volunteers. Together, we have made significant progress in improving our processes and […]

Just over one year ago, I joined the OpenStreetMap Foundation (OSMF) with the goal of enhancing the reliability and security of the technology and infrastructure that underpins OpenStreetMap. Throughout the past year, I have worked closely with the Operations Working Group, a dedicated team of volunteers. Together, we have made significant progress in improving our processes and documentation, ultimately strengthening our collective effectiveness. I am immensely grateful for the support and collaboration within this group, and I am delighted to witness the remarkable strides we have taken in building a solid foundation for the future of OpenStreetMap.

I’ll go into a little detail below about what’s transpired. At a high level, I made it easier to manage deployment of the software running on our servers; hardened our network infrastructure through better redundancy, monitoring, access, and documentation; grew our use of cloud services for tile rendering, leveraging a generous AWS sponsorship; improved our security practices; refreshed our developer environments; and last but definitely not least, finalised migration of 16 years of content from our old forums to our new forums.

If you want to hear more from me over the course of the work last year, check out my talk at State of the Map 2022 and my interview on the GeoMob podcast. And I’d love to hear from you, email me at osmfuture@firefishy.com.

2022-2023 Site Reliability Details

Managing software on our servers

Containerised small infrastructure components (GitHub Actions for building)

I have containerised many of our small sites which were previously built using bespoke methods in our chef codebase as part of the “Configuration as code” setup. Moved the build steps to Github Actions. Setup a base for any future container (“docker”) based projects going forward. These are our first container / docker based projects hosted on OSMF infrastructure.

Our chef based code is now simpler, more secure and deploys faster.

Improved chef testing (ops onboarding documentation)

We use chef.io for infrastructure (configuration) management of all our servers and the software used on them. Over the last year the chef test kitchen tests have been extended and now also work on modern Apple Silicon machines. The tests now reliably run as part of our CI / PR processes. The tests add quality control and assurance to the changes we make. Adding ARM support was easier to add because we could use test kitchen before moving onto ARM server hardware.

Having reliable tests should help onboard new chef contributors.

Hardened our network infrastructure

Network Upgrades @ AMS (New Switches, Dual Redundant Links, Dublin soon)

Our network setup in Amsterdam was not as redundant as it should have been. The Cisco Small Business equipment we used we had out-grown. We had unexpected power outages due to hardware issues. The equipment was also limiting future upgrades. The ops group decided to replace the hardware with Juniper equipment which we had standardised on at the Dublin data centre. I replaced the equipment with minimal downtime in a live environment (<15mins).

Both Dublin and Amsterdam data centres now use a standardised and more security configuration. Each server now has fully bonded links for improved redundancy and performance. The switches have improved power and network redundancy. We are awaiting the install of the fully resilient uplinks (order submitted) in the next month.

Out of Band access to both data centres (4G based)

I built and installed an out-of-band access devices at each site. The devices are hard wired to networking and power management equipment using serial consoles. The out-of-band devices have resilient 4G link to a private 4G network (1NCE). The out-of-band access devices are custom built Raspberry PIs with redundant power supplies and 4x serial connectors.

Documentation of Infrastructure to easy maintenance (Racks / Power)

I documented each rack unit, power port (Power Distribution Unit), network connection and cable at the data centres. This makes it easier to manage the servers, reduces errors and allows us to properly instruct remote hands (external support provider) to makes any chances on our behalf.

Oxidized (Visibility of Network Equipment)

Our network and power distribution configuration is now stored in git and changes are reported. This improves visibility of any changes, which in turn improves security.

Config is continiously monitored and any config drift between our sites is now much easier to resolve.

Terraform Infrastructure as Code (improve management / repeatability)

Terraform is an infrastructure-as-code tool, we now use it for managing our remote monitoring service (statuscake) and I am in the process of implementing it to manage our AWS and Fastly infrastructure.

Previous these components were all managed manually using the respective web UIs. Infrastructure-as-code allows the Ops team to collaboratively work on changes, enhances visibility and the repeatability / rollback of any changes.

We manage all domains DNS using dnscontrol code. Incremental improvements have been made over the last year, including add CI tests to improve outside collaboration.

Grew our use of cloud services

AWS in use for rendering infrastructure. Optimised AWS costs. Improved security. Improved Backup. More in pipeline

Ops team have slowly been increasing our usage of AWS over a few years. I have built out multiple usage specific AWS accounts using an AWS organisation model to improve billing and security as per AWS best practise guidelines. We generously received AWS sponsorship for expanding our rendering infrastructure. We built the experimental new rendering infrastructure using ARM architecture using AWS Graviton2 EC2.
We haven’t previously used ARM based servers. As part of improvements to our chef (configuration as code) we had added local testing support for Apple Silicon (ARM), only small additions were required to add the required compatibility for ARM servers to chef.

We were impressed by the performance of AWS Graviton2 EC2 instances for running the OSM tile rendering stack. We also tested on-demand scaling and instance snapshotting for potential further rending stack improvements on AWS.
We have increased our usage of AWS for data backup.

Improved our security

Over the last year a number of general security improvements have been made. For example: Server access is now via ssh key (password access now disabled). We’ve also moved from a bespoke gpg based password manager for the ops team to using gopass (feature rich version of https://www.passwordstore.org/ ), gopass improves key management and sharing the password store.

Additionally we have also enhanced the lockdown of our wordpress instances by reducing installed components, disabling inline updates and disabling XMLRPC access. We are also working to reduce the users with access and removing unused access permissions.

Documented key areas of vulnerability requiring improvement (Redundancy, Security, etc)

Documentation on technical vulnerability: I am producing a report on key areas of vulnerability requiring improvement (Redundancy, Security, etc). The document can be used to focus investment in future to further reduce our expose to risks.

Refreshed our developer environments

New Dev Server

We migrated all dev users to a new dev server in the last year. The old server was end of life (~10 years old) and was reaching capacity limits (CPU and storage). The new server was delivered directly to the Amsterdam data centre, physically installed by remote hands and I communicated the migration, and then migrated all users and projects across.

Retired Subversion

I retired our old svn.openstreetmap.org code repository in the last year. The code repository was used since the inception of the project, containing a rich history of code development in the project. I converted svn code repository to git using a custom reposurgeon config, attention was made to maintain the full contribution history and correctly link previous contributors (350+) to respective github and related accounts. The old svn links were maintained and now link to the archive on github https://github.com/openstreetmap/svn-archive

Forum Migration

The old forum migration, we migrated 1 million posts and 16 years of posts to discourse. All posts were converted from fluxbb markdown to discourse’s flavour of markdown. All accounts were merged and auth converted to OpenStreetMap.org “single sign-on” based auth.

All the old forum links redirect (link to the imported) to correct content. Users, Categories (Countries etc), Thread Topics, and individual posts.


OpenStreetMap User's Diaries

Tilelog country data

I added functionality to tilelog to generate per-country usage information for the OSMF Standard Map Layer. The output of this is a CSV file, generated every day, which contains country code, number of unique IPs that day, tiles per second, and tiles per second that were a cache miss, all for each country code.

With a bit of work, I manipulated the files to give me the usage from the 10

I added functionality to tilelog to generate per-country usage information for the OSMF Standard Map Layer. The output of this is a CSV file, generated every day, which contains country code, number of unique IPs that day, tiles per second, and tiles per second that were a cache miss, all for each country code.

With a bit of work, I manipulated the files to give me the usage from the 10 countries with the most usage, for the first four months of 2023.

Tile usage per country by date

Perhaps more interesting is looking at the usage for each country by the day of week.

Tile usage per country by date