It’s time to reconnect with familiar faces and meet new friends from the OpenStreetMap family around the world! We are excited to share that State of the Map (SotM), the international gathering of the OpenStreetMap community, will take place in Bogotá, Colombia in 2-4 July 2027! This edition will gather mappers, open data advocates, developers, […]
It’s time to reconnect with familiar faces and meet new friends from the OpenStreetMap family around the world!
We are excited to share that State of the Map (SotM), the international gathering of the OpenStreetMap community, will take place in Bogotá, Colombia in 2-4 July 2027! This edition will gather mappers, open data advocates, developers, and community leaders from across the world to celebrate OSM, open collaboration and community-driven mapping. Learning from past conferences, our goal for 2027 is to open the doors even wider, making it easier for more people to join, contribute, and be heard in this global celebration of open mapping.
Together with our amazing local team in Bogotá, we are working to build a creative, welcoming, and truly inclusive SotM experience, where every session and activity is designed with our global community in mind.
A message from the Bogota Local Team: ¡Hola desde Bogotá! For the Colombian and Latin American OpenStreetMap communities, hosting State of the Map is a dream come true. Our local team, led by AC3, the OpenStreetMap chapter in Colombia, brings together mappers from Bogotá, Medellín, Cúcuta, Yopal, Puerto López and beyond, and we are preparing a conference that feels like home for everyone. You will meet us at the Universidad Nacional de Colombia, a green and historic campus in the heart of the city, 2,600 meters closer to the stars. Bring your questions, your maps and your curiosity: we will bring the coffee, the music and a very warm welcome. ¡Nos vemos en Bogotá!
Save the date and start getting ready for SotM 2027! More details on speakers, program, tickets, and ways to get involved will be coming soon. So bring your maps, bring your ideas, and let’s make this an edition to remember!
SotM Organising Committee
The State of the Map conference is the annual, international conference of OpenStreetMap, organised by the OpenStreetMap Foundation. The OpenStreetMap Foundation is a not-for-profit organisation, formed to support the OpenStreetMap Project. It is dedicated to encouraging the growth, development and distribution of free geospatial data for anyone to use and share.
TheOpenStreetMap Foundation owns and maintains the infrastructure of the OpenStreetMap project, is financially supported by membership fees and donations, and organises the annual, international State of the Map conference. Our volunteer Working Groups and small core staff work to support the OpenStreetMap project. Donate or Join the OpenStreetMap Foundation for just £15 a year or for free if you are an active OpenStreetMap contributor.
OpenStreetMap was founded in 2004 and is an international project to create a free map of the world. To do so, we, thousands of volunteers, collect data about roads, railways, rivers, forests, buildings and a lot more worldwide. Our map data can be downloaded for free by everyone and used for any purpose – including commercial usage. It is possible to produce your own maps which highlight certain features, to calculate routes etc. OpenStreetMap is increasingly used when one needs maps which can be very quickly, or easily, updated.
Hier soir, j’ai présenté dans l’amphithéâtre C002 au sein du campus de enseeiht à Toulouse, « Contribuez à OSM ».
La bonne surprise fut le taux de remplissage de la salle. J’ai compté plus d’une vingtaine de personnes. La présentation était articulée en deux parties : la première, un tout petit peu de théorie et pas de présentation d’outils ; la deuxième, des démonstrations, des petits trucs fac
Hier soir, j’ai présenté dans l’amphithéâtre C002 au sein du campus de enseeiht à Toulouse, « Contribuez à OSM ».
La bonne surprise fut le taux de remplissage de la salle. J’ai compté plus d’une vingtaine de personnes. La présentation était articulée en deux parties : la première, un tout petit peu de théorie et pas de présentation d’outils ; la deuxième, des démonstrations, des petits trucs faciles pour commencer, puis des trucs plus « grands » (de l’infrastructure).
En trente minutes, j’avais plié ma présentation. Il restait vingt-cinq minutes, qui se sont très, très facilement remplies par de très nombreuses questions. Merci au plublic pour ces questions. Merci à l’organisation du Capitole du Libre.
La présentation est disponible à https://files.hirlimann.net/talks/cdl2026/.
It’s been two months since I started to edit the Ilagan River again. While I had done so in the past, way before these two months, this period turned out to be a great adventure that I’m still hiking.
It was a time after Project CaCau. When I put it to an end, I felt not only disappointed, but ambitious. Why exactly? Well, I don’t know, but the roaring engine I had used to keep me going
It’s been two months since I started to edit the Ilagan River again. While I had done so in the past, way before these two months, this period turned out to be a great adventure that I’m still hiking.
It was a time after Project CaCau. When I put it to an end, I felt not only disappointed, but ambitious. Why exactly? Well, I don’t know, but the roaring engine I had used to keep me going through that project was still on, and I couldn’t just stop it. So, I had to redirect it somewhere.
For a bit, I had just redirected it to OSM. I experimented with multiple things and tried to pick up my old stuff. But one in particular caught my attention. A while ago, I was editing the river area of the Ilagan River. I never picked it up again until then. Despite that, it just stuck. Starting in the 15th of September, I got into the flow of the edits, and I never stopped.
I didn’t just do the main river either. I had also started doing its tributaries because my satisfaction didn’t get put with just that. Then, suddenly, the Bintacan River got finished, then the Nanaguan, and then I was suddenly speeding through the headwaters of the Abuan. I was now pushing 2K-3K edits a day, with the little free time I had.
My satisfaction didn’t stop; I had also started mapping the landslide areas. Now, at that point, I was satisfied. I had forgotten Project CaCau and its shadow that burdened me. Then, I realized: why not make this run official? Make it a project? So, I did.
Enter, Project KarayanIlagan. It meant “Ilagan River” in Ilocano: Karayan as River, and Ilagan as itself. Nothing changed in my workflow; just that I finally had a name to keep it going and back it up, putting hashtag comments for it as #KarayanIlagan (and later on with #ChasingWaterways for my fellow mappers’ initiative), and to give it a history and recognition.
Now, we place it here, right now. By the time I made this diary, I had gotten to 2nd in most map changes in the whole Philippines. I am still going, editing the waters of the River Abuan to contribute to my own project, ChasingWaterways, OpenStreetMap, and the Philippines itself. Eventually, I will finish, but for now, I will keep going.
To the people who see this, please hope for me to succeed. God bless, and Mabuhay!
I have custom branch of EveryDoor since July. Namely because for recycling containers i need tagging preset with custom field types not supported by iD schema and for ED plugin engine which has a annoying bug regarding NeedsInfo selectors.
Opening and searching presets was occasionally super slow and past few nights ive tried to fix annoyances. Turned out the performance fix was trivial as i
I have custom branch of EveryDoor since July. Namely because for recycling containers i need tagging preset with custom field types not supported by iD schema and for ED plugin engine which has a annoying bug regarding NeedsInfo selectors.
Opening and searching presets was occasionally super slow and past few nights ive tried to fix annoyances. Turned out the performance fix was trivial as i had compiled app with wrong parameter which caused app to not be able to compile something related to presets lookup.
Anyways, 2 nights later, achievements include:
saving downloaded map data at least 20x faster (by using already existing db index which existing query disregarded)
zoom no longer jams at zoom level 15. Technical reason is that ED has internally 2 map views for different zoom ranges and ones min and other’s max zoom was lvl 15.
amenities list scrolling is now vertical instead horizontal (which i thought was unintuitive and waste of space)
tiles are loaded while zooming, in current version, after zooming tiles are downloaded only on map drag event. Fixed by updating map library.
i discovered ED already has special overview map of downloaded osm data (dark-green rectangles at Menu -> Data Management -> Download tiles), but they are rather useless as they denote simply areas that was downloaded at some point. Merged rectangles into rasterized layer to show up to date and outdated areas as one.
haven’t been able to test, but cached map tiles should cleared after 1 month to prevent out of date background layer. I have previously created multiple false positive notes about missing road or building only to find my map layer was outdated
dragging to add new element while moving and tracking gps, won’t cause unexpected jumps and zoom changes as user’s location changes.
few more changes related to map interactions i forgot
Telegram Sam proposed tagging seaplane bases with aeroway=seaplane_base instead of aeroway=aerodrome, as they have no runways or aprons and more closely resemble harbours. The water landing area should use seamark:type=seaplane_landing_area instead of aeroway=runway, while landuse=industrial with industrial=port prevents retagged bases from disappearing from maps. The discussion is ongoing in the forum.
MaggieMaps and Jake Low are proposing to describe wetlands using the new keys wetland:connectivity, wetland:vegetation, and wetland:landform to specify their water source, vegetation, and terrain position, and extending the use of salt=* and anthropogenic=yes to wetlands. OpenStreetMap US is working with the Environmental Policy Innovation Center on OpenWetlandsMap, an OSM-based dataset. The discussion is ongoing on the Wiki and in the OpenStreetMap US Slack.
Mapping campaigns
Rphyrin used osm_pantau to highlight where mappers participated in the HOT Global Solidarity Mapathon 1 on Friday 6 November 2026.
Community
Rtnf has noticed a growing trend of new tools bringing the Wikidata and OpenStreetMap ecosystems closer together.
OSM user infraboiii has analysed the current state of vending machine tagging in France.
In the interview at OpenCage, Frank März shared the story behind OpenFireMap, a free web map of fire stations, hydrants, water supply points, and defibrillators from OpenStreetMap data across dozens of European countries. He rebuilt the map with AI assistance and it now serves pre-computed data for most countries with Overpass as a backup.
Mateusz Konieczny worked on improving iD and its tagging schema, with funding from the OpenStreetMap Foundation and the European Union through the NLnet Foundation, and has shared an update on the work completed so far.
Following a thread on the OSM Community forum, the OpenStreetMap France community started drafting rules to be applied on the forum given the recent influx of generative artificial intelligence issues such as servers and tools overload, wrong map contributions, and self promotion of vibe-coded applications. Some reminders are given, e.g. that LLM-copied code is stolen code, the forum isn’t a self-promoting place, non-free software won’t receive support from the community, and LLM usage should not become common practice.
Andres Gomez Casanova is proposing to translate the OSM tag building as ‘Edificación’, a Spanish term encompassing any built structure, regardless of size. Translating it as ’edifício’ would exclude structures such as sheds, kiosks, garages, greenhouses and petrol station canopies.
Andy Mabbett, in a blog post made on Remembrance Sunday, described how war memorials and the people named on them can be recorded as open, linked data. This includes photos with transcribed names on Wikimedia Commons, a page on WikiTree, a Wikidata item and a point on OpenStreetMap. The IDs of the services are then cross-referenced so that, for example, Wikidata contains the OSM ID and the OSM point contains the Wikidata ID. The Brierley Hill war memorial served as an example.
OpenStreetMap Foundation
Craig Allan, Chair of the OpenStreetMap Foundation Board, will speak at State of the Map Nigeria 2026 on ‘Community Mapping for Climate Change’.
Local chapter news
Eugene Alvin Villar, on behalf of the OSMF’s Local Chapters and Communities Working Group, opened a community discussion on the application from Asociación OpenStreetMap España to become an official OSMF Local Chapter. Although its geographic scope overlaps with that of the newer OSM Català chapter, both groups have stated that they do not object to the other’s status. The discussion runs until 24 November 2026.
Events
OpenStreetMap US has announced three events: Mapping USA is back as a free two-day virtual conference on 29 and 30 January 2027, with talk proposals open. The November Mappy Hour celebrates the 100th anniversary of Route 66 on 11 November 2026, and State of the Map US will take place in Baltimore, Maryland, from 11 to 13 June 2027.
To prepare for the upcoming State of the Map Nigeria 2026, the organising team, led by Victor N Sunday, Chair of SotM Nigeria 2026, paid a courtesy visit to the University of Uyo on Friday 6 November 2026.
Diego Gonzalez Ferreiro, Chief of the Solutions and Support Unit at the United Nations Global Service Centre, will speak at State of the Map Nigeria 2026 on ‘Open Geospatial Information for Peace, Development and Resilience: The UN Mappers Approach to Capacity Building, Collaborative Mapping and Humanitarian Action’.
The Open Transport Community Conference 2026, an (un)conference about Free Software and Open Data for mobility and public transport, was held at SBB Headquarters in Bern, Switzerland, from 6 to 9 October 2026. Recordings of the event are available on media.ccc.de.
Education
Jean-Christophe Becquet announced the return of his OpenData and OpenStreetMap course for undergraduate and master’s students at the Institut d’Urbanisme et de Géographie Alpine, Université Grenoble Alpes. The course aims to explain copyright and free licences, demonstrate the potential of open and collaborative data, and encourage students to contribute.
OSM research
AE35 has compared 38 recreational features, such as benches, fire pits, shelters, toilets, and outdoor artworks, in OpenStreetMap Denmark and the municipal dataset GeoFA since May 2024. The increased feature count is taken as an estimation: in OSM, the total number of features increased from 57,700 to 175,500; in GeoFA, it rose from 5,300 to 15,800. This means that OSM contained 159,750 more objects, thus it was approximately 10.9 times more efficient. The full analysis of all 38 objects can be found in a Google sheet. OpenStreetMap wins on every parameter.
Maps
Dim Kandin has made Adrenalin Spots, a map showing seasonal locations for kitesurfing, surfing, skiing, climbing, diving, sailing, and other sports throughout the year. The map covers around 580 spots and calculates a nightlife score based on nearby bars, clubs, restaurants, and cafés from OpenStreetMap data queried via Overpass, with locations within 5 km weighted more heavily than those within 15 km. The base map uses OpenFreeMap.
OSM in action
[1]
Mapped Chronicles shows the real-world locations behind books, films, games, myths, and historical events on maps. Its currently 973 routes guide users through stories, stop by stop, with data, sources, and information about how accurately each location has been identified and whether it can be visited. Through the ‘Studio’, users can design their own routes and submit them for moderation review. The map is based on OpenStreetMap data.
MikeHur has been developing Wandering Around, a free browser game that lets players explore any town or city in the world using OpenStreetMap data.
Software
The Mangrove Reviews platform now allows people to import their Google Maps reviews by releasing them under an open licence, permitting their reuse in OSM-based tools like MapComplete and CoMaps.
devenzi has released ‘Devenzi Map Studio’, a WordPress plugin that embeds OpenStreetMap maps into websites without the need for an API key or account. The vector maps are sourced from OpenFreeMap and are rendered using MapLibre. They are designed in a full-screen editor featuring locations, areas, routes, and 3D buildings. If desired, the map can be set to load only after a click, ensuring that the integration is possible without a cookie banner and is GDPR-compliant.
Tina explained how to organise track data using OsmAnd’s Smart Folders feature.
A CoMaps contributor wrote a blog post about how the integration of Mangrove reviews with OSM data works.
tydo has launched ‘Tourello’, an offline app for hiking, mountain biking, and skiing (Android, iOS, macOS), which generates vector maps using OSM data via Geofabrik, elevation models from Mapterhorn, and BRouter for offline route planning. The OSM wiki lists which tags, such as sac_scale, mtb:scale, trail_visibility, and piste:difficulty the app evaluates. The beta version is free until the end of March 2027; a subscription service is planned thereafter, a move which drew criticism on the OSM Community forum because the app is not open source and free feedback is being sought there. Sarah Hoffmann, who operates Waymarked Trails, pointed out that the site’s terms and conditions only permit open-source, non-commercial use, whereupon tydo removed the API query and now builds the routes directly from OSM relations. According to wiki, the app is proprietary.
Programming
Geofabrik has published terms of use for its free Postpass service, which allows users to query OSM data through PostGIS. The service is intended for learners and the OSM community. To use it, a meaningful User-Agent or Referer header is required. Scraping and repeated requests is prohibited. Geofabrik offers a paid tier for commercial users and heavily used applications, or can help them set up their own server.
Releases
StreetComplete has just passed Apple’s review and is now officially available on the App Store.
Other “geo” things
A research team from National Cheng Kung University in Taiwan and the NASA Goddard Space Flight Centre have found that the manoeuvres carried out by the Artemis 2 rocket in April 2026 altered the ionosphere and disrupted GNSS signals. According to the study published in Geophysical Research Letters, ground-based GNSS systems recorded changes in electron density during three manoeuvres, which can lead to inaccurate position measurements.
The German Federal Cartel Office is investigating potential restrictions of completion by Google related to their map services for use in vehicle infotainment systems and is asking car manufacturers and other map service providers for input.
David Ding runs ‘Localingual’, an interactive world map where you can listen to recordings of languages and dialects. Clicking on a colour-coded country plays its voices; clicking again shows the regions; and volunteers can contribute their own recordings via their browser. Jornal Notareported ► that by 2019 the site had around 18,000 recordings.
In an editorial, The Guardianargued that Ordnance Survey maps remain a superior way to navigate the landscape.
Upcoming Events
Country
Where
Venue
What
When
🇮🇳
Kottayam
Kottayam, Kerala
State of the Map Kerala (SoTM Kerala)
2026-11-14 - 2026-11-15
🇮🇪
Dublin
4 Inns Court, Winetavern Street, Dublin, D08 XY00
OpenStreetMap Ireland AGM - 2026
2026-11-14
🇹🇷
Hackerspace İstanbul
OpenStreetMap İstanbul Mapathon
2026-11-15
🇮🇳
Delhi
Avaya Cafe and Bakery, Green Park
OSM Delhi Mapping Party No.34 (South Zone)
2026-11-15
🇫🇷
Point Com
Rencontre Mapadour
2026-11-16
Politecnico di Milano, Building 4A, Aula Fassò
Introduction to OpenStreetMap
2026-11-16
CartONG : Mapathons en ligne 2026-2027
2026-11-16
🇫🇷
Grenoble
La Turbine
Réunion du groupe local de Grenoble
2026-11-16
State of the Map Nigeria(SotM Nigeria)
2026-11-17 - 2026-11-20
Missing Maps London Mid-Month for Advanced Mappers (no training provided) (Online) [eng]
2026-11-17
🇫🇷
Lyon
Tubà
Réunion du groupe local de Lyon
2026-11-17
🇩🇪
Chemnitz
Kaffeesatz, Chemnitz
OSM-Stammtisch Chemnitz
2026-11-17
🇩🇪
Berlin
Online
FOSSGIS AG OSM und Outdoor
2026-11-17
🇩🇪
Bonn
Dotty’s
206. OSM-Stammtisch Bonn
2026-11-17
🇩🇪
Online
Lüneburger Mappertreffen (online)
2026-11-17
🇬🇧
Mott MacDonald Offices
Mott MacDonald GIS Day Mapathon [18/10/2026]
2026-11-18
🇬🇧
Manchester
Pegasus Group Mapathon Charity Day
2026-11-18
UO GIS Day- Knight Library
Eugene Bike Infrastructure Mapathon
2026-11-18
🇺🇸
Cal Poly Humboldt Library 121
Cal Poly Humboldt GIS Day Mapathon
2026-11-18
Dublin Office / Online
Tetra Tech Ireland GIS Day Mapathon
2026-11-18
🇫🇷
MJC de Vienne
Réunion du groupe local de Vienne
2026-11-18
🇩🇪
Karlsruhe
Schwarzer Kater
Stammtisch Karlsruhe
2026-11-18
Internationale GeoWeek - Online Mapathon ÄRZTE OHNE GRENZEN (AT/CH/DE)
Mi experiencia en el Mapatón Nacional de México 2025: cartografiar edificios para fortalecer la información territorial
¿Cómo podemos analizar los riesgos de una comunidad si ni siquiera contamos con información suficiente sobre las edificaciones que existen en su territorio?
Esta pregunta resume una de las razones por las que considero tan importante la cartografía abierta para
Mi experiencia en el Mapatón Nacional de México 2025: cartografiar edificios para fortalecer la información territorial
¿Cómo podemos analizar los riesgos de una comunidad si ni siquiera contamos con información suficiente sobre las edificaciones que existen en su territorio?
Esta pregunta resume una de las razones por las que considero tan importante la cartografía abierta para la Gestión Integral del Riesgo de Desastres.
Durante agosto y septiembre de 2025 tuve la oportunidad de participar como voluntaria en el Mapatón Nacional de México 2025, una iniciativa de cartografía colaborativa vinculada con el Centro Nacional de Prevención de Desastres (CENAPRED), la Secretaría de Desarrollo Agrario, Territorial y Urbano (SEDATU), la Universidad Autónoma del Estado de México (UAEMéx) y Humanitarian OpenStreetMap Team (HOT).
El objetivo fue contribuir a la actualización y precisión de la cartografía base utilizada para la gestión del riesgo y la planeación territorial.
¿En qué consistió mi participación?
Mi actividad se concentró en la digitalización de edificaciones en localidades del estado de Chiapas, donde existían vacíos de información cartográfica.
A través de OpenStreetMap participamos en la identificación y representación de edificios, contribuyendo a mejorar la disponibilidad de información geoespacial abierta.
Aunque pudiera parecer una tarea sencilla, representar correctamente las edificaciones tiene implicaciones importantes para el conocimiento del territorio.
¿Qué relación tiene esto con la Gestión Integral del Riesgo?
Para analizar un riesgo necesitamos conocer, entre otros aspectos, las amenazas presentes, los elementos expuestos y sus condiciones de vulnerabilidad.
La cartografía de edificaciones constituye uno de los insumos que pueden utilizarse para identificar espacialmente elementos potencialmente expuestos a fenómenos como inundaciones, sismos o movimientos de ladera.
Por supuesto, la presencia de un edificio en el mapa no permite determinar por sí sola su vulnerabilidad, ocupación o nivel de riesgo. Para ello se requieren otras fuentes de información, trabajo de campo y metodologías de análisis.
Sin embargo, disponer de una cartografía base más completa representa un avance importante para desarrollar evaluaciones territoriales mejor fundamentadas.
Lo que me dejó esta experiencia
Como consultora especializada en Protección Civil y Gestión Integral del Riesgo de Desastres, esta participación reforzó mi interés por integrar la cartografía abierta, los sistemas de información geográfica y el análisis de datos en los procesos de prevención.
También me permitió valorar el trabajo de las comunidades de mapeadores que, mediante contribuciones voluntarias, ayudan a mejorar información territorial que puede ser utilizada por investigadores, autoridades, organizaciones y ciudadanía.
El 6 de octubre de 2025 recibí el Certificado de Participación Activa en Proyecto de Impacto Social, por mi colaboración en el Mapatón Nacional de México 2025.
Una línea de trabajo que quiero continuar
Soy colaboradora de OpenStreetMap desde diciembre de 2011 y actualmente busco dar mayor continuidad a mis aportaciones, especialmente en temas relacionados con edificaciones, infraestructura esencial, accesibilidad y cartografía útil para la prevención.
Desde mi actividad profesional en Prevención Total, me interesa seguir explorando cómo los datos geoespaciales abiertos pueden complementar los estudios de riesgos, la planeación preventiva y la resiliencia territorial.
Porque antes de analizar los riesgos de un territorio, necesitamos conocerlo.
Y aquello que no está representado en nuestros datos puede quedar fuera de nuestros análisis.
Lizette Adriana Llamas Escamilla
Consultora en Gestión Integral del Riesgo de Desastres y Protección Civil.
Если вы картируете сельскую местность, вам знакома проблема: снимки Bing или Esri старые, в облаках или просто не показывают, асфальтирована дорога или грунтовая. Sentinel-2 во многом решает эту проблему. Это бесплатные спутниковые снимки, которые обновляются каждые несколько дней, с разрешением 10 м и инфракрасными каналами, невидимыми глазу.
В композиции ложных цветов (каналы B8, B4 и
Если вы картируете сельскую местность, вам знакома проблема: снимки Bing или Esri старые, в облаках или просто не показывают, асфальтирована дорога или грунтовая. Sentinel-2 во многом решает эту проблему. Это бесплатные спутниковые снимки, которые обновляются каждые несколько дней, с разрешением 10 м и инфракрасными каналами, невидимыми глазу.
В композиции ложных цветов (каналы B8, B4 и B3) растительность становится красной, а асфальт выглядит тёмным и контрастным. Асфальтированные дороги, пересекающие кустарник или поля, видны очень отчётливо.
Sentinel-2 в ложных цветах в JOSM, сельская местность штата Сеара, Бразилия. Содержит изменённые данные Copernicus Sentinel (2026). Изображение: Wikimedia Commons, CC BY-SA 4.0.
В этом руководстве я покажу, как добавить этот слой в JOSM с помощью бесплатного сервиса Copernicus Data Space Ecosystem Европейского союза.
Важное ограничение: 10 м на пиксель подходит для шоссе, широких грунтовых дорог, воды, растительности, землепользования и гарей. Для зданий и узких городских улиц это не подходит.
Задайте имя (например, JOSM) и в поле Create configuration based on выберите Simple Sentinel-2 L2A template.
Нажмите Create configuration.
Не используйте другие шаблоны Sentinel-2. CC Europe покрывает только Европу, а 120 m Mosaic слишком грубый. «L2A» означает снимки с атмосферной коррекцией.
Конфигурация уже содержит несколько готовых слоёв. На левой панели, в разделе Service endpoints, указан ID конфигурации — код вида xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx. Скопируйте этот ID: он понадобится в URL для JOSM.
Внимание к названиям: слой «False color» из Copernicus Browser в шаблоне называется Color Infrared (vegetation), его ID — COLOR_INFRARED. Слой False color (urban) — это другая композиция (B12, B11, B4). Всегда проверяйте точный ID в столбце Id вашей конфигурации.
Если JOSM предложит загрузить список слоёв, включите опцию ручного задания сгенерированного WMS URL (Set generated WMS URL manually) и вставьте тот же URL в поле WMS URL.
Задайте имя, например Sentinel-2 Ложные цвета, и подтвердите.
Включите слой через меню Подложка (Imagery).
Быстрый способ: все слои сразу
Если не хочется собирать URL по одному, я написал скрипт, который добавляет все слои вашей конфигурации в меню Imagery JOSM: josm-sentinel2 на GitHub. Перед запуском закройте JOSM.
Windows: скачайте josm-sentinel2.bat (Download ZIP или Raw), запустите двойным щелчком и вставьте свой ID. Windows может показать предупреждение SmartScreen, так как файл скачан из интернета.
macOS и Linux: скачайте josm-sentinel2.sh и запустите в терминале: bash josm-sentinel2.sh ВАШ_ID
Скрипт спрашивает у Copernicus, какие слои есть в вашей конфигурации, и добавляет только их, с теми же названиями. Бонусные слои (NDWI, NDBI, NIR) появятся, только если вы их создали. Он использует снимки за последние 3 месяца (облачность до 30 %, сначала наименее облачная сцена) и делает резервную копию preferences.xml перед изменением. Повторный запуск обновляет даты без дублирования слоёв. Это обычные текстовые файлы: при желании откройте их в редакторе и проверьте перед запуском.
Что означает каждый параметр
Параметр
Назначение
LAYERS=COLOR_INFRARED
Какую композицию показывать. Замените на ID другого слоя, чтобы получить другую визуализацию
TIME=2026-08-01/2026-11-14
Диапазон дат используемых снимков. Настройте под нужный период
Если JOSM игнорирует TIME, MAXCC или PRIORITY: так бывает, когда слой выбран из списка (загрузка слоёв): JOSM строит собственный URL и отбрасывает дополнительные параметры. Надёжнее задать их в самом слое в Configuration Utility: Time range (выберите Relative, например последние 3 месяца, чтобы снимки оставались актуальными), Cloud coverage и Mosaic order (Least cloud coverage).
Совет: создайте две записи с разными датами — одну для сухого сезона и одну для сезона дождей. В засушливых регионах это полностью меняет картину, особенно для водохранилищ и пересыхающих рек.
Частые проблемы
Симптом
Вероятная причина
Решение
Ошибки тайлов только при сильном отдалении
Сервис отклоняет слишком большие области
Приблизьте карту. Это нормально
Layer XXX not found
ID слоя не совпадает с конфигурацией
Проверьте столбец Id в Configuration Utility. Регистр, _ и - имеют значение
B8 is not defined или Failed to evaluate script
Скрипт слоя в старом формате
Замените скрипт (см. примеры в бонусном разделе)
Смещённое изображение или ошибка координат
JOSM в проекции WGS84 (EPSG:4326)
Используйте проекцию по умолчанию Mercator (EPSG:3857)
Пустое изображение
Нет сцен с облачностью ниже MAXCC % за период
Расширьте TIME или увеличьте MAXCC
Чтобы увидеть точную ошибку, щёлкните правой кнопкой по проблемному тайлу → Показать информацию о тайле (Show tile info).
Лицензия
Данные Sentinel открыты (лицензия Copernicus) и могут использоваться для картирования в OSM. Укажите в пакете правок что-то вроде source=Copernicus Sentinel-2.
Бонус: дополнительные слои
Помимо слоёв из шаблона, я создал несколько, которые очень помогают. Чтобы добавить слой, откройте Configuration Utility → New Layer, введите имя (оно станет ID), выберите Source: Sentinel-2 L2A, нажмите на карандаш у Data processing, вставьте скрипт и сохраните.
NDWI: вода
Выделяет водоёмы синим. Отлично подходит для водохранилищ, прудов и рек.
Выделяет застройку и открытый грунт жёлтым/красным. В засушливых регионах сухая почва тоже даёт высокие значения, поэтому используйте его вместе с ложными цветами.
Только канал B08 (ближний инфракрасный, 10 м). Растительность светлая, а вода и асфальт тёмные. Просто и чётко для отрисовки дорог и берегов рек и водохранилищ. Предложение сообщества, спасибо!
landuse=residential/industrial, рост городов, новые посёлки
NIR в оттенках серого (бонус)
NIR
B8
Отрисовка дорог, берегов и границ растительности с максимальным контрастом
Moisture Index
MOISTURE_INDEX
(B8A−B11)/(B8A+B11)
Водно-болотные угодья (natural=wetland), поймы, орошаемая и сухая растительность
SWIR
SWIR
B12, B8A, B4
Гари, открытый грунт, карьеры, вода (очень тёмная)
Agriculture
AGRICULTURE
B11, B8, B2
Границы полей, различие посевов и пастбищ
Geology
GEOLOGY
B12, B4, B2
Скальные выходы, карьеры, natural=bare_rock
Atmospheric penetration
ATMOSPHERIC_PENETRATION
B12, B11, B8A
Дни с дымкой или дымом, когда естественные цвета плохие
Bathymetric
BATHYMETRIC
B4, B3, B1
Побережье, рифы, отмели на мелководье. Использует B1 (60 м), поэтому изображение более размытое: не используйте для точной отрисовки
Моя любимая комбинация:ложные цвета для дорог и растительности, NDWI для воды и естественные цвета для проверки. Для водохранилищ в засушливых регионах сравните снимок сезона дождей со снимком сухого сезона и картируйте обычный уровень воды (intermittent=yes, если водоём пересыхает каждый год).
Si mapeas zonas rurales, conoces el problema: las imágenes de Bing o Esri son antiguas, tienen nubes o simplemente no muestran si un camino está asfaltado o es de tierra. Sentinel-2 resuelve buena parte de esto. Son imágenes satelitales gratuitas, actualizadas cada pocos días, con 10 m de resolución y bandas infrarrojas que el ojo no ve.
En la composición de falso color (bandas B8, B4 y
Si mapeas zonas rurales, conoces el problema: las imágenes de Bing o Esri son antiguas, tienen nubes o simplemente no muestran si un camino está asfaltado o es de tierra. Sentinel-2 resuelve buena parte de esto. Son imágenes satelitales gratuitas, actualizadas cada pocos días, con 10 m de resolución y bandas infrarrojas que el ojo no ve.
En la composición de falso color (bandas B8, B4 y B3), la vegetación se ve roja y el asfalto aparece oscuro y muy contrastado. Las carreteras pavimentadas que atraviesan el monte o los cultivos se destacan muchísimo.
Sentinel-2 en falso color en JOSM, zona rural de Ceará, Brasil. Contiene datos Copernicus Sentinel modificados (2026). Imagen: Wikimedia Commons, CC BY-SA 4.0.
En este tutorial muestro cómo añadir esta capa a JOSM usando el servicio gratuito Copernicus Data Space Ecosystem de la Unión Europea.
Limitación importante: 10 m por píxel sirve para carreteras, caminos rurales anchos, agua, vegetación, uso del suelo y áreas quemadas. No sirve para edificios ni para calles estrechas dentro de la ciudad.
Ponle un nombre (p. ej. JOSM) y, en Create configuration based on, elige Simple Sentinel-2 L2A template.
Haz clic en Create configuration.
No uses las otras plantillas de Sentinel-2. CC Europe solo cubre Europa y el 120 m Mosaic tiene una resolución demasiado baja. “L2A” significa imagen con corrección atmosférica.
La configuración ya trae varias capas listas. En el panel izquierdo, en Service endpoints, aparece el ID de la configuración, un código con el formato xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx. Copia ese ID, porque va en la URL de JOSM.
Ojo con los nombres: la capa “False color” del Copernicus Browser se llama Color Infrared (vegetation) en la plantilla, con ID COLOR_INFRARED. La capa False color (urban) es otra composición (B12, B11, B4). Revisa siempre el ID exacto en la columna Id de tu configuración.
3. Añade la capa a JOSM
En JOSM, abre Editar → Preferencias (F12) → pestaña Imágenes.
Abajo, haz clic en + WMS.
Pega la URL de abajo, cambiando TU_ID por el ID que copiaste en el paso anterior:
Si JOSM pide obtener las capas, marca la opción para establecer manualmente la URL WMS generada (Set generated WMS URL manually) y pega la misma URL en el campo de la URL WMS.
Ponle un nombre, por ejemplo Sentinel-2 Falso Color, y confirma.
Activa la capa desde el menú Imágenes.
Atajo: todas las capas de una vez
Si prefieres no armar las URL una por una, hice un script que añade todas las capas de tu configuración al menú Imágenes de JOSM: josm-sentinel2 en GitHub. Cierra JOSM antes de ejecutarlo.
Windows: descarga josm-sentinel2.bat (Download ZIP o Raw), haz doble clic y pega tu ID. Windows puede mostrar un aviso de SmartScreen por ser un archivo descargado.
macOS y Linux: descarga josm-sentinel2.sh y ejecútalo en una terminal: bash josm-sentinel2.sh TU_ID
El script le pregunta a Copernicus qué capas existen en tu configuración y añade solo esas, con los nombres que tienen allí. Las capas extra (NDWI, NDBI, NIR) solo aparecen si las creaste. Usa imágenes de los últimos 3 meses (hasta 30 % de nubes, primero la escena menos nublada) y hace una copia de preferences.xml antes de modificarlo. Si lo vuelves a ejecutar, actualiza las fechas sin duplicar las capas. Son archivos de texto: puedes abrirlos en un editor para revisarlos antes.
Qué hace cada parámetro
Parámetro
Qué hace
LAYERS=COLOR_INFRARED
Qué composición mostrar. Cámbialo por el ID de otra capa para tener otra visualización
TIME=2026-08-01/2026-11-14
Rango de fechas de las imágenes usadas. Ajústalo al período que quieras
MAXCC=30
Descarta escenas con más del 30 % de nubes
PRIORITY=leastCC
Arma el mosaico priorizando las escenas con menos nubes
Si JOSM ignora TIME, MAXCC o PRIORITY: pasa cuando eliges la capa de la lista (Obtener capas), porque JOSM genera su propia URL y elimina los parámetros extra. La opción más robusta es configurarlos en la propia capa, en el Configuration Utility: Time range (usa Relative, p. ej. últimos 3 meses, para que la imagen se mantenga actualizada), Cloud coverage y Mosaic order (Least cloud coverage).
Consejo: crea dos entradas con fechas distintas, una en la estación seca y otra en la de lluvias. En zonas semiáridas esto cambia por completo lo que se ve, sobre todo embalses y ríos intermitentes.
Problemas comunes
Síntoma
Causa probable
Solución
Teselas con error solo con zoom alejado
El servicio rechaza áreas muy grandes
Acércate. Es normal
Layer XXX not found
El ID de la capa no coincide con la configuración
Revisa la columna Id del Configuration Utility. Mayúsculas, _ y - importan
B8 is not defined o Failed to evaluate script
El script de la capa está en el formato antiguo
Sustituye el script (ver los ejemplos en la sección extra)
Imagen desplazada o error de coordenadas
JOSM en proyección WGS84 (EPSG:4326)
Usa la proyección por defecto Mercator (EPSG:3857)
Imagen vacía
No hay escenas con menos de MAXCC % de nubes en el período
Amplía el rango de TIME o sube MAXCC
Para ver el error exacto, haz clic derecho sobre una tesela con error → Mostrar información de la tesela (Show tile info).
Licencia
Los datos Sentinel son abiertos (licencia Copernicus) y se pueden usar para mapear en OSM. Añade al conjunto de cambios algo como source=Copernicus Sentinel-2.
Extra: capas adicionales
Además de las capas de la plantilla, creé algunas que ayudan mucho. Para añadirlas, ve al Configuration Utility → New Layer, escribe un nombre (se convierte en el ID), elige Source: Sentinel-2 L2A, haz clic en el lápiz de Data processing, pega el script y guarda.
NDWI: agua
Resalta los cuerpos de agua en azul. Ideal para embalses, lagunas y ríos.
Resalta superficies construidas y suelo desnudo en amarillo/rojo. En zonas semiáridas el suelo seco también sale alto, así que úsalo junto con el falso color.
Solo la banda B08 (infrarrojo cercano, 10 m). La vegetación se ve clara y el agua y el asfalto oscuros. Simple y nítido para trazar carreteras y orillas de ríos y embalses. Sugerencia de la comunidad, ¡gracias!
Días con bruma o humo, cuando el color natural se ve mal
Bathymetric
BATHYMETRIC
B4, B3, B1
Costa, arrecifes, bancos de arena en aguas poco profundas. Usa B1 (60 m), así que es más borrosa: evítala para trazados precisos
Mi combinación favorita:falso color para carreteras y vegetación, NDWI para el agua y color natural para confirmar. Para embalses en zonas semiáridas, compara una imagen de la estación de lluvias con una de la seca y mapea el nivel normal del agua (intermittent=yes si se seca todos los años).
Si vous cartographiez des zones rurales, vous connaissez le problème : l’imagerie Bing ou Esri est ancienne, nuageuse, ou ne permet tout simplement pas de savoir si une route est goudronnée ou en terre. Sentinel-2 règle une bonne partie de ce problème. C’est une imagerie satellite gratuite, mise à jour tous les quelques jours, avec une résolution de 10 m et des bandes infrarouges invisibles à l’
Si vous cartographiez des zones rurales, vous connaissez le problème : l’imagerie Bing ou Esri est ancienne, nuageuse, ou ne permet tout simplement pas de savoir si une route est goudronnée ou en terre. Sentinel-2 règle une bonne partie de ce problème. C’est une imagerie satellite gratuite, mise à jour tous les quelques jours, avec une résolution de 10 m et des bandes infrarouges invisibles à l’œil nu.
Dans la composition fausses couleurs (bandes B8, B4 et B3), la végétation devient rouge et l’asphalte apparaît sombre et bien contrasté. Les routes goudronnées qui traversent la brousse ou les cultures ressortent très nettement.
Sentinel-2 en fausses couleurs dans JOSM, zone rurale du Ceará, Brésil. Contient des données Copernicus Sentinel modifiées (2026). Image : Wikimedia Commons, CC BY-SA 4.0.
Ce tutoriel montre comment ajouter cette couche à JOSM avec le service gratuit Copernicus Data Space Ecosystem de l’Union européenne.
Limite importante : 10 m par pixel suffit pour les routes principales, les grandes pistes, l’eau, la végétation, l’occupation du sol et les zones brûlées. Cela ne suffit pas pour les bâtiments ni pour les rues étroites en ville.
Dans le menu latéral, ouvrez Configuration Utility.
Cliquez sur New configuration.
Donnez-lui un nom (ex. : JOSM) et, dans Create configuration based on, choisissez Simple Sentinel-2 L2A template.
Cliquez sur Create configuration.
N’utilisez pas les autres modèles Sentinel-2. CC Europe ne couvre que l’Europe et la 120 m Mosaic est trop grossière. « L2A » signifie une image avec correction atmosphérique.
La configuration contient déjà plusieurs couches prêtes à l’emploi. Dans le panneau de gauche, sous Service endpoints, se trouve l’ID de la configuration, un code du type xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx. Copiez cet ID, il va dans l’URL de JOSM.
Attention aux noms : la couche « False color » du Copernicus Browser s’appelle Color Infrared (vegetation) dans le modèle, avec l’ID COLOR_INFRARED. La couche False color (urban) est une autre composition (B12, B11, B4). Vérifiez toujours l’ID exact dans la colonne Id de votre configuration.
3. Ajoutez la couche à JOSM
Dans JOSM, ouvrez Édition → Préférences (F12) → onglet Imagerie.
En bas, cliquez sur + WMS.
Collez l’URL ci-dessous en remplaçant VOTRE_ID par l’ID copié à l’étape précédente :
Si JOSM propose de récupérer les couches, cochez l’option pour définir manuellement l’URL WMS générée (Set generated WMS URL manually) et collez la même URL dans le champ de l’URL WMS.
Donnez-lui un nom, par exemple Sentinel-2 Fausses couleurs, et validez.
Activez la couche depuis le menu Imagerie.
Raccourci : toutes les couches d’un coup
Si vous ne voulez pas construire les URL une par une, j’ai écrit un script qui ajoute toutes les couches de votre configuration au menu Imagerie de JOSM : josm-sentinel2 sur GitHub. Fermez JOSM avant de le lancer.
Windows : téléchargez josm-sentinel2.bat (Download ZIP ou Raw), double-cliquez dessus et collez votre ID. Windows peut afficher un avertissement SmartScreen, car il a été téléchargé.
macOS et Linux : téléchargez josm-sentinel2.sh et lancez-le dans un terminal : bash josm-sentinel2.sh VOTRE_ID
Le script demande à Copernicus quelles couches existent dans votre configuration et n’ajoute que celles-ci, avec leurs noms. Les couches bonus (NDWI, NDBI, NIR) n’apparaissent que si vous les avez créées. Il utilise les images des 3 derniers mois (30 % de nuages maximum, scène la moins nuageuse d’abord) et sauvegarde preferences.xml avant de le modifier. Relancez-le plus tard pour mettre à jour les dates sans dupliquer les couches. Ce sont de simples fichiers texte : vous pouvez les ouvrir dans un éditeur pour les vérifier avant.
Ce que fait chaque paramètre
Paramètre
Rôle
LAYERS=COLOR_INFRARED
La composition à afficher. Remplacez-la par l’ID d’une autre couche pour changer de visualisation
TIME=2026-08-01/2026-11-14
Période des images utilisées. Ajustez selon vos besoins
MAXCC=30
Écarte les scènes avec plus de 30 % de nuages
PRIORITY=leastCC
Construit la mosaïque en privilégiant les scènes les moins nuageuses
Si JOSM ignore TIME, MAXCC ou PRIORITY : cela arrive quand la couche est choisie dans la liste (récupération des couches), car JOSM construit sa propre URL et supprime les paramètres supplémentaires. L’option la plus robuste est de les régler sur la couche elle-même dans le Configuration Utility : Time range (choisissez Relative, par ex. les 3 derniers mois, pour garder une image à jour), Cloud coverage et Mosaic order (Least cloud coverage).
Astuce : créez deux entrées avec des dates différentes, une en saison sèche et une en saison des pluies. En zone semi-aride, cela change complètement ce que l’on voit, surtout pour les retenues d’eau et les cours d’eau intermittents.
Problèmes courants
Symptôme
Cause probable
Solution
Tuiles en erreur seulement en zoom éloigné
Le service refuse les zones trop grandes
Zoomez. C’est normal
Layer XXX not found
L’ID de la couche ne correspond pas à la configuration
Vérifiez la colonne Id du Configuration Utility. Majuscules, _ et - comptent
B8 is not defined ou Failed to evaluate script
Le script de la couche est dans l’ancien format
Remplacez le script (voir les exemples dans la section bonus)
Image décalée ou erreur de coordonnées
JOSM en projection WGS84 (EPSG:4326)
Utilisez la projection par défaut Mercator (EPSG:3857)
Image vide
Aucune scène sous MAXCC % de nuages sur la période
Élargissez TIME ou augmentez MAXCC
Pour voir l’erreur exacte, faites un clic droit sur une tuile en erreur → Afficher les informations de la tuile (Show tile info).
Licence
Les données Sentinel sont ouvertes (licence Copernicus) et peuvent être utilisées pour cartographier dans OSM. Ajoutez par exemple source=Copernicus Sentinel-2 à votre groupe de modifications.
Bonus : couches supplémentaires
En plus des couches du modèle, j’en ai créé quelques-unes qui aident beaucoup. Pour en ajouter une, allez dans le Configuration Utility → New Layer, saisissez un nom (il devient l’ID), choisissez Source : Sentinel-2 L2A, cliquez sur le crayon de Data processing, collez le script et enregistrez.
NDWI : l’eau
Met en évidence les plans d’eau en bleu. Idéal pour les retenues, étangs et rivières.
Met en évidence les surfaces bâties et le sol nu en jaune/rouge. En zone semi-aride, le sol sec ressort aussi, donc utilisez-le avec les fausses couleurs.
Proche infrarouge en niveaux de gris : routes et berges
Uniquement la bande B08 (proche infrarouge, 10 m). La végétation est claire, l’eau et l’asphalte sont sombres. Simple et net pour tracer les routes et les berges des rivières et retenues. Suggestion de la communauté, merci !
Jours de brume ou de fumée, quand les couleurs naturelles sont mauvaises
Bathymetric
BATHYMETRIC
B4, B3, B1
Littoral, récifs, bancs de sable en eau peu profonde. Utilise B1 (60 m), donc plus flou : à éviter pour un tracé précis
Ma combinaison préférée :fausses couleurs pour les routes et la végétation, NDWI pour l’eau et couleurs naturelles pour vérifier. Pour les retenues en zone semi-aride, comparez une image de saison des pluies avec une de saison sèche et cartographiez le niveau d’eau normal (intermittent=yes si elle s’assèche chaque année).
If you map rural areas, you know the problem: Bing or Esri imagery is old, cloudy, or simply doesn’t show whether a road is paved or dirt. Sentinel-2 solves a good part of that. It is free satellite imagery, refreshed every few days, with 10 m resolution and infrared bands the human eye can’t see.
In the false color composite (bands B8, B4 and B3), vegetation turns red and asphalt turns
If you map rural areas, you know the problem: Bing or Esri imagery is old, cloudy, or simply doesn’t show whether a road is paved or dirt. Sentinel-2 solves a good part of that. It is free satellite imagery, refreshed every few days, with 10 m resolution and infrared bands the human eye can’t see.
In the false color composite (bands B8, B4 and B3), vegetation turns red and asphalt turns dark and high-contrast. Paved roads crossing scrubland or farmland really stand out.
Sentinel-2 false color in JOSM, rural Ceará, Brazil. Contains modified Copernicus Sentinel data (2026). Image: Wikimedia Commons, CC BY-SA 4.0.
This tutorial shows how to add this layer to JOSM using the free Copernicus Data Space Ecosystem service from the European Union.
Important limitation: 10 m per pixel works for highways, wide rural roads, water, vegetation, land use and burned areas. It does not work for buildings or narrow urban streets.
Give it a name (e.g. JOSM) and, under Create configuration based on, choose Simple Sentinel-2 L2A template.
Click Create configuration.
Don’t use the other Sentinel-2 templates. CC Europe only covers Europe and the 120 m Mosaic is too coarse. “L2A” means atmospherically corrected imagery.
The configuration comes with several ready-made layers. In the left panel, under Service endpoints, you’ll find the configuration ID, a code like xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx. Copy this ID, because it goes into the JOSM URL.
Watch the names: the “False color” layer in the Copernicus Browser is called Color Infrared (vegetation) in the template, with ID COLOR_INFRARED. The False color (urban) layer is a different composite (B12, B11, B4). Always check the exact ID in the Id column of your configuration.
3. Add the layer to JOSM
In JOSM, open Edit → Preferences (F12) → Imagery tab.
At the bottom, click + WMS.
Paste the URL below, replacing YOUR_ID with the ID you copied in the previous step:
If JOSM asks to fetch the layers, tick “Set generated WMS URL manually” and paste the same URL into the WMS URL field.
Give it a name, for example Sentinel-2 False Color, and confirm.
Turn the layer on from the Imagery menu.
Shortcut: all layers at once
If you’d rather not build the URLs one by one, I wrote a script that adds every layer of your configuration to the JOSM Imagery menu: josm-sentinel2 on GitHub. Close JOSM before running it.
Windows: download josm-sentinel2.bat (Download ZIP or Raw), double-click it and paste your ID. Windows may show a SmartScreen warning because it was downloaded.
macOS and Linux: download josm-sentinel2.sh and run it in a terminal: bash josm-sentinel2.sh YOUR_ID
The script asks Copernicus which layers exist in your configuration and adds only those, with the names they have there. The bonus layers (NDWI, NDBI, NIR) only show up if you created them. It uses imagery from the last 3 months (up to 30% clouds, least cloudy scene first) and backs up preferences.xml before changing it. Run it again later to refresh the dates without duplicating layers. They’re plain text files, so feel free to open them in an editor and check them first.
What each parameter does
Parameter
What it does
LAYERS=COLOR_INFRARED
Which composite to show. Replace it with another layer ID for a different view
TIME=2026-08-01/2026-11-14
Date range of the images used. Adjust to the period you want
MAXCC=30
Discards scenes with more than 30% cloud cover
PRIORITY=leastCC
Builds the mosaic favouring the least cloudy scenes
If JOSM ignores TIME, MAXCC or PRIORITY: this happens when you pick the layer from the list (Get layers), because JOSM builds its own URL and drops extra parameters. A more robust option is to set them on the layer itself in the Configuration Utility: Time range (use Relative, e.g. last 3 months, so the imagery stays current), Cloud coverage and Mosaic order (Least cloud coverage).
Tip: create two entries with different dates, one in the dry season and one in the wet season. In semi-arid regions this completely changes what you see, especially reservoirs and intermittent rivers.
Common problems
Symptom
Likely cause
Fix
Tile errors only when zoomed out
The service refuses very large areas
Zoom in. This is normal
Layer XXX not found
The layer ID doesn’t match the configuration
Check the Id column in the Configuration Utility. Case, _ and - matter
B8 is not defined or Failed to evaluate script
The layer script uses the old format
Replace the script (see the examples in the bonus section)
Shifted image or coordinate errors
JOSM is in WGS84 projection (EPSG:4326)
Use the default Mercator (EPSG:3857) projection
Empty image
No scene below MAXCC% cloud cover in the period
Widen the TIME range or raise MAXCC
To see the exact error, right-click a failed tile → Show tile info.
License
Sentinel data is open (Copernicus license) and can be used for mapping in OSM. Add something like source=Copernicus Sentinel-2 to your changeset.
Bonus: extra layers
Besides the template layers, I created a few that help a lot with mapping. To add one, go to the Configuration Utility → New Layer, enter a name (it becomes the ID), choose Source: Sentinel-2 L2A, click the pencil next to Data processing, paste the script and save.
NDWI: water
Highlights water bodies in blue. Great for reservoirs, ponds and rivers.
Just band B08 (near infrared, 10 m). Vegetation is bright, while water and asphalt are dark. Simple and sharp for tracing roads and the edges of rivers and reservoirs. Suggested by the community, thanks!
landuse=residential/industrial, urban sprawl, new subdivisions
NIR grayscale (bonus)
NIR
B8
Tracing roads, shorelines and vegetation edges with maximum contrast
Moisture Index
MOISTURE_INDEX
(B8A−B11)/(B8A+B11)
Wetlands (natural=wetland), floodplains, irrigated vs. dry vegetation
SWIR
SWIR
B12, B8A, B4
Burned areas, bare soil, mining, water (very dark)
Agriculture
AGRICULTURE
B11, B8, B2
Field boundaries, telling crops from pasture
Geology
GEOLOGY
B12, B4, B2
Rock outcrops, quarries, natural=bare_rock
Atmospheric penetration
ATMOSPHERIC_PENETRATION
B12, B11, B8A
Hazy or smoky days, when natural color looks bad
Bathymetric
BATHYMETRIC
B4, B3, B1
Coastline, reefs, sandbanks in shallow water. Uses B1 (60 m), so it is blurrier: avoid it for precise tracing
My favourite combo:false color for roads and vegetation, NDWI for water and natural color to double-check. For reservoirs in semi-arid regions, compare a wet-season image with a dry-season one and map the normal water level (intermittent=yes when it dries up every year).
Quem mapeia no interior do Brasil conhece o problema: a imagem do Bing ou da Esri é antiga, cheia de nuvem ou simplesmente não mostra se aquela estrada é asfaltada ou de terra. O Sentinel-2 resolve boa parte disso. É uma imagem de satélite gratuita, atualizada a cada poucos dias, com 10 m de resolução e com bandas de infravermelho que o olho não vê.
Na composição falsa cor (bandas B8, B4
Quem mapeia no interior do Brasil conhece o problema: a imagem do Bing ou da Esri é antiga, cheia de nuvem ou simplesmente não mostra se aquela estrada é asfaltada ou de terra. O Sentinel-2 resolve boa parte disso. É uma imagem de satélite gratuita, atualizada a cada poucos dias, com 10 m de resolução e com bandas de infravermelho que o olho não vê.
Na composição falsa cor (bandas B8, B4 e B3), a vegetação fica vermelha e o asfalto fica escuro e bem contrastado. Rodovias pavimentadas cortando a caatinga ou a lavoura ficam muito evidentes.
Sentinel-2 em falsa cor no JOSM, no interior do Ceará. Contém dados Copernicus Sentinel modificados (2026). Imagem: Wikimedia Commons, CC BY-SA 4.0.
Neste tutorial mostro como colocar essa camada no JOSM usando o serviço gratuito do Copernicus Data Space Ecosystem, da União Europeia.
Limitação importante: 10 m por pixel serve para rodovias, estradas vicinais largas, água, vegetação, uso do solo e áreas queimadas. Não serve para prédios nem para ruas estreitas dentro da cidade.
Dê um nome (ex.: JOSM) e, em Create configuration based on, escolha Simple Sentinel-2 L2A template.
Clique em Create configuration.
Não use os outros templates de Sentinel-2. O CC Europe cobre só a Europa e o 120 m Mosaic tem resolução baixa demais. “L2A” significa imagem com correção atmosférica.
A configuração já vem com várias camadas prontas. No painel da esquerda, em Service endpoints, aparece o ID da configuração, um código no formato xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx. Copie esse ID, porque ele vai na URL do JOSM.
Atenção ao nome: a “False color” do Copernicus Browser aparece no template como Color Infrared (vegetation), com ID COLOR_INFRARED. A camada False color (urban) é outra composição (B12, B11, B4). Confira sempre o ID exato na coluna Id da sua configuração.
3. Adicione a camada ao JOSM
No JOSM, abra Editar → Preferências (F12) → aba Imagens.
Na parte de baixo, clique em + WMS.
Cole a URL abaixo, trocando SEU_ID pelo ID copiado no passo anterior:
Se o JOSM pedir para buscar as camadas, marque “Definir URL WMS gerada manualmente” e cole a mesma URL no campo da URL WMS.
Dê um nome, por exemplo Sentinel-2 Falsa Cor, e confirme.
Ative a camada pelo menu Imagens.
Atalho: todas as camadas de uma vez
Se preferir não montar URL por URL, fiz um script que adiciona todas as camadas da sua configuração ao menu Imagens do JOSM: josm-sentinel2 no GitHub. Feche o JOSM antes de rodar.
Windows: baixe o josm-sentinel2.bat (botão Download ZIP ou Raw), dê dois cliques e cole o seu ID. O Windows pode mostrar um aviso do SmartScreen por ser um arquivo baixado.
macOS e Linux: baixe o josm-sentinel2.sh e rode no terminal: bash josm-sentinel2.sh SEU_ID
O script pergunta ao Copernicus quais camadas existem na sua configuração e adiciona só essas, com os nomes que estão lá. As camadas do bônus (NDWI, NDBI, NIR) só aparecem se você as tiver criado. Ele usa as imagens dos últimos 3 meses (até 30% de nuvens, cena menos nublada primeiro) e faz backup do preferences.xml antes de mexer. Rodando de novo, atualiza as datas sem duplicar as camadas. São arquivos de texto: abra num editor para conferir antes de rodar, se quiser.
O que significa cada parâmetro
Parâmetro
O que faz
LAYERS=COLOR_INFRARED
Qual composição mostrar. Troque pelo ID de outra camada para ter outra visualização
TIME=2026-08-01/2026-11-14
Intervalo de datas das imagens usadas. Ajuste para o período que quiser
MAXCC=30
Descarta cenas com mais de 30% de nuvens
PRIORITY=leastCC
Monta o mosaico priorizando as cenas com menos nuvens
Se o JOSM ignorar TIME, MAXCC ou PRIORITY: isso acontece quando a camada é escolhida na lista (Obter camadas), porque o JOSM monta a própria URL e descarta os parâmetros extras. A alternativa mais robusta é configurar isso na própria camada, no Configuration Utility: Time range (use Relative, por exemplo últimos 3 meses, para a imagem não ficar desatualizada), Cloud coverage e Mosaic order (Least cloud coverage).
Dica: crie duas entradas com datas diferentes, uma na estação seca e outra na chuvosa. No semiárido isso muda completamente o que aparece, principalmente açudes e rios intermitentes.
Problemas comuns
Sintoma
Causa provável
Solução
Tiles com erro só com zoom afastado
O serviço recusa áreas muito grandes
Aproxime o mapa. É normal
Layer XXX not found
O ID da camada não bate com a configuração
Confira na coluna Id do Configuration Utility. Maiúsculas, _ e - fazem diferença
B8 is not defined ou Failed to evaluate script
O script da camada está no formato antigo
Substitua o script (veja os exemplos no bônus)
Imagem deslocada ou com erro de coordenadas
JOSM em projeção WGS84 (EPSG:4326)
Use a projeção padrão Mercator (EPSG:3857)
Imagem vazia
Não há cena com menos de MAXCC% de nuvens no período
Aumente o intervalo de TIME ou o valor de MAXCC
Para ver o erro exato, clique com o botão direito sobre um tile com erro → Mostrar informações do tile.
Licença
Os dados Sentinel são abertos (licença Copernicus) e podem ser usados para mapear no OSM. Coloque no changeset algo como source=Copernicus Sentinel-2.
Bônus: camadas extras
Além das camadas do template, criei algumas que ajudam bastante no mapeamento. Para adicionar, vá ao Configuration Utility → New Layer, dê o nome (que vira o ID), escolha Source: Sentinel-2 L2A, clique no lápis de Data processing, cole o script e salve.
NDWI: água
Realça corpos d’água em azul. É ótimo para açudes, lagoas e rios.
Só a banda B08 (infravermelho próximo, 10 m). A vegetação fica clara, e a água e o asfalto ficam escuros. Simples e nítido para traçar estradas e margens de rios e açudes. Sugestão da comunidade, obrigado!
Dias com névoa ou fumaça, quando a cor natural fica ruim
Bathymetric
BATHYMETRIC
B4, B3, B1
Litoral, recifes, bancos de areia em água rasa. Usa a B1 (60 m), então fica mais borrada: evite para traçado preciso
Minha combinação preferida:falsa cor para estradas e vegetação, NDWI para água e cor natural para conferir. Para açudes no semiárido, compare uma imagem da estação chuvosa com uma da seca e mapeie o nível normal da água (intermittent=yes quando secar todo ano).
For a long time building imports in Northrhine-Westfalia or
NRW was a hassle. The only source would be a WMS server and
some people wrote software to convert the WMS tiles back to
some useful vector informations and merge into the josm dataset.
This solution was pretty fragile and my impression is that its
basically unmaintained, although it still works for me.
For a long time i was look
For a long time building imports in Northrhine-Westfalia or
NRW was a hassle. The only source would be a WMS server and
some people wrote software to convert the WMS tiles back to
some useful vector informations and merge into the josm dataset.
This solution was pretty fragile and my impression is that its
basically unmaintained, although it still works for me.
For a long time i was looking for a solution to use something
like generic WFS in JOSM with a rule based merging of tags
and or geometries (Which geometries to use nodes from,
snap distance etc). Nothing like this popped up in the last
10 years.
So i had a look yesterday and found the plbuildings plugin
which just needs the right server component to serve OSM XML files.
So i quickly hacked a server component to server the NRW Open Data
Shape dataset.
When you install the plbuildings plugin into josm, and change the URL to:
You will be able to import building outlines from the Hausumringe NRW
dataset. I am not that happy with the amount of nodes this dataset contains,
or the usability with the plbuildings plugin, but its a start.
Also this will most like break horribly if you have real multipolygon buildings
e.g. with a hole in the middle. This is not yet implemented at least on the server
side as it would require to serve back a relation. I have no idea whether the plbuildings
plugin supports this.
En se fiant aux courbes de niveaux entourant le sommet virtuel du Rocher de la Tête Noire (1688, Valais, Suisse) sur la carte OpenStreetMap on peut constater que le point (noeud ?) du sommet est mal placé, et qu’il devrait se trouver à environ 170 m plus loin au nord-est, à l’intérieur du cercle formé par la courbe 1680, seule zone 1680-1690 s’apparentant à un mont ou un sommet ; c’est d’ailleur
En se fiant aux courbes de niveaux entourant le sommet virtuel du Rocher de la Tête Noire (1688, Valais, Suisse) sur la carte OpenStreetMap on peut constater que le point (noeud ?) du sommet est mal placé, et qu’il devrait se trouver à environ 170 m plus loin au nord-est, à l’intérieur du cercle formé par la courbe 1680, seule zone 1680-1690 s’apparentant à un mont ou un sommet ; c’est d’ailleurs ce que confirme Swisstopo, la carte la plus fiable en Suisse.
道路、设施、建筑等的计分方式从特定距离(1 km 或 3 km)内有即计分,调整为按服务半径 r 和与乡镇节点中心的距离 d 加权计分,权重 w 的计算方式为服务面积所占乡镇节点附近的 1 km 生活圈的面积比例;举例来说,当某商店的 r = 1 km 且 d = 1.5 km 时,其服务面积所占 1 km 生活圈的面积比例为 37%,其在旧标准下不得分,在新标准下得到 0.37 分
行政节点的搜寻不再绑定 place 标签,而是优先用匹配到的行政关系的成员来判断,避免了一些因 label 成员无 capital 或 place 标签而失分的问题;同名的行政关系靠上级县域关系进一步区分,避免了相邻的同名乡镇匹配到同一节点的问题;以及,受数据快照的边界限制,国界线附近的乡镇得分不再计算国界线外的 OSM 要素
部分
项目
旧标准
新标准
行政
行政节点
7 分
5 分
行政边界
8 分
7 分
地名
5 分(3 km 内每个 1 分)
3 分(3 km 内每个 1 分,排除匹配到的行政节点)
道路交通
主要和次要道路
5 分(3 km 内至少 1 条)
5 分(按 r = 3 km 加权,2 km 满分)
三级和未分类道路
5 分(3 km 内每条 1 分)
5 分(按 r = 3 km 加权,4 km 满分)
居民和服务道路
10 分(1 km 内每条 0.5 分,1–3 km 每条 0.2 分)
10 分(按 r = 1 km 加权,4 km 满分,含服务道路和辙路)
公交站
2 分(3 km 内至少 1 个)
2 分(按 r = 3 km 加权,1 个满分)
停车场
2 分(3 km 内至少 1 个)
2 分(按 r = 3 km 加权,1 个满分)
能源站
2 分(3 km 内至少 1 个,仅加油站)
2 分(按 r = 3 km 加权,1 个满分,含充电站)
道路种类
4 分(3 km 内每类 0.5 分)
4 分(3 km 内特定集合中每类 0.5 分)
公共和商业设施
政府机关
5 分(3 km 内至少 1 个)
3 分(3 km 内至少 1 个)
医院
5 分(1 km 内至少 1 个)
3 分(按 r = 1 km 加权,1 个满分)
学校
5 分(1 km 内至少 1 个)
3 分(按 r = 1 km 加权,1 个满分)
派出所
5 分(1 km 内至少 1 个)
3 分(按 r = 1 km 加权,1 个满分)
邮局
2 分(1 km 内至少 1 个)
1 分(按 r = 1 km 加权,1 个满分)
银行
2 分(1 km 内至少 1 个)
1 分(按 r = 1 km 加权,1 个满分)
商店
6 分(1 km 内至少 6 个)
6 分(按 r = 1 km 加权,6 个满分)
建筑和土地利用
建筑或人造物
16 分(1 km 内每个 0.2 分,1–3 km 每个 0.1 分)
16 分(按 r = 1 km 加权,80 个满分)
土地利用
4 分(3 km 内特定集合中每类 0.5 分)
4 分(3 km 内特定集合中每类 0.5 分)
标签
道路标识
无
3 分(3 km 内干线至三级道路、未分类道路和居民道路中带名称或编号*的比例,80% 或 40 km 满分)
道路功能
无
2 分(3 km 内干线至三级道路、未分类道路和居民道路中带限速、车道等功能标签的比例,40% 或 20 km 满分)
尽管就本文的评分标准而言,各乡镇完备度的增长速度有先升后降的趋势,但这并不意味着中国大陆的 OSM 社区在近年更加冷清 —— 相反,如果单纯统计各数据快照中全地域的 OSM 要素增量,可见 2024–2026 年仍是大多类要素增量最快的一段时间。近年的完备度评分增长放缓,主要是因为单项评分占比较高的行政类要素趋于完善,以及城市中心的增量超出满分标准而未反映在得分上。从数据分析的角度而言,这体现了对一个不设上限的统计标准的需要。从社区建设的角度而言,这意味着绘图者“求精”的脚步从未放缓。只是,一个更加完善的地理信息数据库,既要有优秀的地区作为示范,也要有足够全面的基础数据作为支撑,希望本文能就此尽些绵薄之力吧。
最后,感谢 OSM 中国社区的诸多朋友对本项工作的讨论,尤其是 @Kisarazu Funya 提出的多项改进意见!这都是本文持续改进的动力。
“The idea is pretty cool. It downloads regional data from Geofabrik directly in the browser and formats the data into Parquet format, then lets you ask the AI to query it using DuckDB.”
“This project looks cool, even though I’m still struggling to understand what use case it is trying to solve. (What does “routable road network” even mean?) (But well.. Perhaps this is partly due to my
“The idea is pretty cool. It downloads regional data from Geofabrik directly in the browser and formats the data into Parquet format, then lets you ask the AI to query it using DuckDB.”
“This project looks cool, even though I’m still struggling to understand what use case it is trying to solve. (What does “routable road network” even mean?) (But well.. Perhaps this is partly due to my own bias, as I’ve never worked on any OSM-based routing or simulation projects)”
“I see data export to SUMO and MATSim, and LinkedIn mentions the possibility of using NetworkX. Judging by the profile, the author is a researcher with a focus on graph algorithms.”
“Export to PMTiles, MBTiles, GeoPackage, GeoJSON, kepler.gl, MATSim or SUMO”
PMTiles (Protomaps Tiles) is a file format for storing map tiles in a single file. Normally, a web map requests hundreds or thousands of individual tiles from a tile server. PMTiles packages those tiles into one archive that can be accessed through HTTP Range Requests.
MBTiles is another format for storing map tiles in a single file. But MBTiles uses an SQLite database. Instead of storing individual image or vector tiles as separate files, it stores them as records in database tables. It supports raster tiles (PNG, JPEG) and vector tiles (typically PBF).
GeoPackage is an open geospatial data format based on SQLite. Unlike PMTiles and MBTiles, which primarily store map tiles, GeoPackage can store actual geographic features and their attributes. GeoPackage can also store raster tiles and other raster data. You can open GeoPackage files directly in QGIS.
GeoJSON is a text-based format for representing geographic features using JSON.
kepler.gl is an open-source geospatial data visualisation tool originally developed by Uber.
MATSim stands for Multi-Agent Transport Simulation. It is an open-source framework for simulating transportation systems using agents. An agent represents an individual traveller with a daily activity plan. MATSim simulates thousands or millions of these individual travel plans interacting with a transportation network. The simulation can model : Private vehicles, Public transportation, Walking, Cycling, Traffic congestion, Travel demand, Route choices.
SUMO stands for Simulation of Urban Mobility. It is an open-source microscopic traffic simulation package. Unlike MATSim, which focuses heavily on individual travellers and their transportation choices, SUMO focuses on simulating individual vehicles and their behaviour within a road network. SUMO can model individual vehicles accelerating, braking, changing lanes, queuing and responding to traffic signals. For example, you could compare an intersection before and after changing its traffic signal timings.
“… MATSim is particularly useful for transportation planning, policy evaluation and travel-demand forecasting, while SUMO is particularly useful for road engineering, traffic management and testing vehicle behaviour. MATSim: Planning an entire city’s transportation system. SUMO: Engineering and optimising traffic systems.”
So that’s why I’ve never heard of MATSim or SUMO before. All because i’ve never worked on any transportation planning or road engineering projects.
At the time, I even asked, “What does ‘routable road network’ even mean?” because I simply assumed that freshly downloaded OSM way data, without any further processing, was already routable by default.
And for some reason, I’ve also never touched PMTiles or MBTiles. Because so far, I also haven’t been involved in any projects that required me to self-host map tiles.
However, serving tiles through HTTP range requests is a really interesting concept. Maybe I’ll give PMTiles a try in the future when I actually need to serve map tiles myself.
GeoPackage? I think I’ve heard of this file format somewhere while using QGIS, but I’ve never actually used it. I still prefer the good old SHP format.
Meanwhile, I use GeoJSON extensively in my projects. Storing collections of points, lines and polygons in GeoJSON is nice and straightforward. I also use it as my preferred file format for exporting data from the web apps I develop.
Kepler.gl? I’ve never heard of it either, probably because my projects rarely involve visualising large-scale geospatial datasets.
Organisation: X-Gate Inc. (X-Gate株式会社), Shinjuku, Tokyo, Japan
Account: まちのお店しるべ (operated by X-Gate Inc.) — contact by OSM message
Hashtag: #machishirube
Period: from 2026-12 (ongoing) — no edits before two weeks after the announcement
Area: Japan
Purpose
X-Gate Inc. helps local businesses in Japan keep their public information ac
Organisation: X-Gate Inc. (X-Gate株式会社), Shinjuku, Tokyo, Japan
Account:まちのお店しるべ (operated by X-Gate Inc.) — contact by OSM message
Hashtag: #machishirube
Period: from 2026-12 (ongoing) — no edits before two weeks after the announcement
Area: Japan
Purpose
X-Gate Inc. helps local businesses in Japan keep their public information accurate. At the request and with the consent of each client business, we add the business to OpenStreetMap if it is missing, and correct its basic information if it is outdated.
What we edit
Only businesses that are our clients and have consented.
Only factual tags: name (as on the signboard), shop/amenity/craft/office tag, address (addr:*), phone, opening_hours, website. No promotional text.
Closed or moved businesses are updated or removed promptly.
Sources
The business’s official website and statements by the owner/manager. Positions come from the GSI (国土地理院) address search.
We do not copy from Google Maps, Tabelog or any other proprietary source.
The changeset tag source states the actual source (e.g. business_owner;website;GSI address search).
Method
One business per changeset, through the OSM API v0.6 (OAuth 2).
A staff member reviews every edit before upload; there is no unattended bulk upload, so this is neither an import nor an automated edit.
Before adding, we check for existing objects nearby to avoid duplicates.
Changeset comment: Add business info at owner's request #machishirube with a link to this page; hashtags=#machishirube.
Communication
Announced on the talk-ja mailing list (Japanese) at least two weeks before the first edit.
We answer questions and comments within 2 business days (Japanese or English).
日本語
X-Gate株式会社が「まちのお店しるべ」の名前で行う組織的編集です。お客様である店舗の依頼と同意を受け、店舗の公式サイトと店主の申告だけを情報源として、店舗の基本情報(名称・住所・電話番号・営業時間・公式サイト)を1件ずつ担当者が確認しながら追加・更新します。位置は国土地理院の住所検索で求め、Google マップ・食べログなど他社の地図や媒体からは転記しません。ご意見・ご質問は OSM のメッセージでお寄せください。2営業日以内にお返事します。
The Dakota/Lakota language has been a written language for only the most recent chapters of its history. Writing systems for the language were first devised by 19th-century missionaries who sought to promote literacy as a part of encouraging Dakota people to convert to Christianity. These missionaries, especially Stephen Riggs, developed an alphabet based on the Latin Alphabet to represent the s
The Dakota/Lakota language has been a written language for only the most recent chapters of its history. Writing systems for the language were first devised by 19th-century missionaries who sought to promote literacy as a part of encouraging Dakota people to convert to Christianity. These missionaries, especially Stephen Riggs, developed an alphabet based on the Latin Alphabet to represent the sounds present in the language. All widely used methods for writing the language today are based on Riggs’ system with some degree of variation.
There is no single writing system accepted by the vast majority of speaker communities. A variety of systems - or orthographies - exist with varying degrees of popularity, and invididual speakers and teachers often have strong preferences one way or another. Areas of debate include:
May an orthography make use of special characters (ŋ, ǧ, ḳ, ú) or should writing be done only with characters that can be written with a standard English keyboard?
The language contains vowels (a, i, u) that may be nasalized or not, depending on context; should the orthography note the difference?
The language contains consonants (z, c, p, t, k, s) that may be aspirated for a harder sound or unaspirated; should the orthography note the difference?
The language contains consonants (g, h) that may be guttural or not; should the orthography note when this happens?
Some words are distinguished from other words only by which syllable is emphasized when the word is spoken e.g. “máġa” is a field while “maġá” is a goose. Should the orthography note which syllable is emphasized or not?
Whatever orthography is best for the learning journey of any given speaker, I believe that for a reference resource like OpenStreetMap it is best to use a writing system that fully explains how to correctly pronounce the words that make up place names. Speakers and learners who learn names from this resource can always choose to copy or remember information without pronunciation marks that they think are unnecessary. However, it is much harder to infer more information when given less; the starting position ought to be the maximum amount of information that we can give.
For this reason, I write Dakota (:dak) place names in the UMN Orthography developed by Carrie Schommer et al. at the University of Minnesota. This orthography is used by Dakota communities in Minnesota and language programs in Sisseton Wahpeton and Wípazoka Wakpa. This orthography fully communicates all possible pronunciation details that exist in the Dakota dialect. As is typical for this orthography, I note syllable emphasis only in the minority of situations when it is not on the second syllable. The way OSM displays means sometimes I have to use ṗ for aspirated-p consonants instead of the more commonly used p̣.
I write Lakota (:lkt) place names in the Standard Lakota Orthography used by the New Lakota Dictionary, Lakota Grammar Handbook, and related resources. This orthography fully communicates all possible pronunciation details that exist in the Lakota dialect. As is typical for this orthography, I note syllable emphasis on every multi-syllable word.
I am aware that there are speakers, teachers and communities that have preferences for orthographies other than these and come down on other sides of the questions above. The method that helps you learn is never the wrong choice, and once you’ve really internalized any one writing system you’re 95% of the way to understanding any of the others. It is my hope that the information I’ve recorded here will be helpful to you, even if you choose to represent it some other way in your own writing.
Dakota (instead called Lakota by speakers of that dialect) is the indigenous language of the Oc̣eṭi Ṡakowiƞ (Seven Council Fires) people of North America, consisting of the Bdewaḳaƞṭuƞwaƞ, Waḣpeḳute, Waḣpeṭuƞwaƞ, Sisiṭuƞwaƞ, Ihaƞkṭuƞwaƞ, Ihaƞkṭuƞwaƞna and Ṭiṭuƞwaƞ communities. Most members of these communities will describe themselves as Dakota (or Lakota for the Ṭiṭuƞwaƞ) people.
Dakota (instead called Lakota by speakers of that dialect) is the indigenous language of the Oc̣eṭi Ṡakowiƞ (Seven Council Fires) people of North America, consisting of the Bdewaḳaƞṭuƞwaƞ, Waḣpeḳute, Waḣpeṭuƞwaƞ, Sisiṭuƞwaƞ, Ihaƞkṭuƞwaƞ, Ihaƞkṭuƞwaƞna and Ṭiṭuƞwaƞ communities. Most members of these communities will describe themselves as Dakota (or Lakota for the Ṭiṭuƞwaƞ) people.
Dakota and Lakota communities can be found in Minnesota, North Dakota, South Dakota, Nebraska, Montana, Manitoba and Saskatchewan. All of these places have a rich geography of names devised by Oc̣eṭi Ṡakowiƞ people in the Dakota/Lakota language, including rivers, lakes, towns, islands, hills and more. People have traveled since the dawn of human history and some areas once had Dakota/Lakota communities that presently do not, and so other areas (such as Wisconsin, Iowa, Wyoming and Ontario) also have locations with names in the language.
Historically, there have been far, far more Dakota and Lakota place names than those that survive for us to learn about them in the present. Colonization has inflicted enormous trauma and language loss on these and other Native communities through allegedly-voluntary but actually forced exile from their lands, wars of conquest, traumatic boarding school assimilation, and more. However, many people who are members of (or in close contact with) these communities have put in heroic efforts in defense of the language. These language protectors have striven to continue learning, speaking and teaching the language, and to record many aspects of the language for future generations - including place names.
The language is cherished by the communities to which it belongs, though in the present only a minority of community members speak it with any degree of fluency. It is a richly detailed language in which large amounts of information are elegantly conveyed by verbs, especially verbs of motion and place. The language is related to (though not fully mutually intelligible with) a range of other languages of North America.
Oc̣eṭi Ṡakowiƞ culture is marked by great devotion and reverence toward the land and all that lives on it, and there have been manysmall- or large-scale efforts by people in or adjacent to these communities to record and publish place names in the language. However, many of these efforts have been expressed as books that are now out of print, articles behind academic paywalls, papers in archives, or websites with fragile hosting. Many such projects also only describe a small geographic area.
Modern data platforms like OpenStreetMap represent a great opportunity to store, share and present this knowledge. My goal on OSM is to pull together as many genuine Dakota/Lakota place names as I can find from the sources that exist and represent them on the map. I aim to do so in a way that accurately communicates how they are pronounced for the benefit of other learners and speakers, and that can be an aid to understanding their meaning.
My mapping on OpenStreetMap includes names in both Dakota and Lakota, with ISO codes dak and lkt respectively. This is an unusual approach compared to a lot of other multilingual mapping, so it’s worth explaining in more detail.
Dakota and Lakota are two different dialects of the same language (and are two possible names for that language). They are mutually intelligible, and a fluent sp
My mapping on OpenStreetMap includes names in both Dakota and Lakota, with ISO codes dak and lkt respectively. This is an unusual approach compared to a lot of other multilingual mapping, so it’s worth explaining in more detail.
Dakota and Lakota are two different dialects of the same language (and are two possible names for that language). They are mutually intelligible, and a fluent speaker of one can understand a fluent speaker of the other without difficulty. An analogy might be made to the Spanish spoken in Mexico vs the Spanish spoken in Spain - a speaker of the other dialect will seem to have a strong accent, unusual pronunciation, and some different word choices, but they are still clearly speaking your language. Both dialects are endangered, but there are substantially more Lakota speakers than Dakota speakers and this has been true for a long time.
Dakota and Lakota share the vast majority of their vocabulary. Most words that differ between these dialects differ in predictable, formulaic ways that do not represent any difference in meaning (e.g. Oṭuƞwe vs Otȟúŋwahe or Bde vs Ble). The most meaningful differences in Lakota vs Dakota speech emerge in conversational flow, which rarely matters for place names. Additionally, names of places in Dakota/Lakota are rarely Proper Nouns as English speakers understand them (words that are only used as names e.g. London, Florida, Catherine, Jesse). Rather, place names in the language - like the namesofpeople in the language - are constructed from normal words.
Thus, while my sources all speak one or the other of Dakota or Lakota, when I add a place name in one dialect from a source I try to also add it in the other dialect - as long as the place name consists entirely of words that are “identical” between the dialects. These words may differ subtly in pronunciation, but are identical in meaning. This matches the approach to dialect differences that I’ve generally heard from speakers in practice - people stay in their dialect when describing the names of places, even if the place is populated by speakers of the other dialect.
There are situations where I will refrain from doing this mirroring between dialects:
When I have sources in both dialects and they say different things, I will enter truly different values for the two dialects. For example, see South Dakota’s Paha Waḳaƞ/Pȟežúta Pahá (Medicine Butte).
When I have a credible source for a name but it really is presented as a Proper Noun (rare) or at least I don’t feel that I understand what it means well enough to find counterpart words in the other dialect. For example, see the city of Ablíla (Aberdeen) in South Dakota - I have only a Lakota source, can’t break down the structure of the word further, and can’t find a Dakota source for the name of the city.
When I understand the name well enough, but the name is composed of words that truly don’t have parallels in the other dialect e.g. Isaƞ vs Míla. For example, see southern Minnesota’s Ṡuƞkṭokca Wakpadaƞ (Wolf Creek); this creek has only a Dakota name because only Dakota speakers say “Ṡuƞkṭokca” (wolf) and the Lakota word for wolf is too different to credibly present it as a counterpart.
People familiar with discourse on the Dakota/Lakota language may ask here “isn’t there a third dialect that we should be discussing?” and indeed you’ll often hear the language described as the “Dakota, Lakota and Nakota dialects”. For completeness’ sake, it’s worth mentioning that the Dakota dialect is further subdivided into Eastern (Isaƞyaṭi or Santee-Sisseton) and Western (Wic̣iyena) variants. Wic̣iyena Dakota is sometimes called “Nakota”. Some (myself included) believe that the term Nakota originated in an error, but in the present many authentic speakers of the language use the term sincerely to describe this dialect. Speakers of Wic̣iyena Dakota do not, however, call themselves Nakota - they still refer to themselves as Dakota people. The people who actually refer to themselves as Nakota are the Assiniboine of Montana and Canada, who speak a language that is related to Dakota/Lakota but not mutually intelligible; their language is outside the scope of my mapping efforts.
Wic̣iyena Dakota has more in common with Santee-Sisseton Dakota than Lakota, but occupies a sort of “middle ground” in pronunciation between the other dialects in ways that would be difficult to explain without a deep dive into linguistics terminology. Like Dakota vs Lakota, the ways Santee-Sisseton and Wic̣iyena Dakota differ are mostly subtle, predictable and formulaic pronunciation differences.
All OSM name:dak values I have added are in Santee-Sisseton Dakota, though locations west of Minnesota will skew toward Sisiṭuƞwaƞ-Waḣpeṭuƞwaƞ use of the diminutive -na instead of Isanyaṭi use of the diminutive -daƞ. There are some reasons for this choice:
Unlike Dakota vs Lakota, Santee-Sisseton vs Wic̣iyena Dakota do not have different ISO language codes; the OSM format forces me to choose one when assigning a primary name:dak value.
19th-century Minnesota policies of forced expulsion and (frankly) genocide pushed Santee-Sisseton Dakota-speaking populations westward into traditionally Wic̣iyena-speaking areas. Very little migration has gone the other direction, so there are far fewer places where Wic̣iyena Dakota is the only dialect around.
There are much, much more abundant language resources for Santee-Sisseton Dakota than Wic̣iyena Dakota, ranging from historic missionary language texts to 21st-century Dakota-led language revitalization programs. This means I can check the meaning and origin of names in one in a way that I cannot for the other.
Santee-Sisseton Dakota is the dialect that I was taught in and thus the dialect that is most intuitive to me.
Whatever the dialect variations, the language I am mapping in is all one language. If the language is part of your heritage (or if it isn’t but you live in this part of the world), I’d encourage you to explore learning it in whatever dialect is spoken in or near your community.
There are about 450,000 open notes on OpenStreetMap. Each one is a message from someone
who saw a problem on the map. But to know what a note needs, you have to open it and read
it, one by one. That takes a lot of time.
So I trained a machine learning model to do this first read for us. I also made a simple
website to show the results:
→ osm-notes.rub21.com
What does the mod
There are about 450,000 open notes on OpenStreetMap. Each one is a message from someone
who saw a problem on the map. But to know what a note needs, you have to open it and read
it, one by one. That takes a lot of time.
So I trained a machine learning model to do this first read for us. I also made a simple
website to show the results:
The model reads the first comment of each note and gives it two labels:
Category: what the mapper should do. For example: missing place, place closed or
changed, wrong name, missing or wrong road, other wrong data, spam, empty, or not
mappable (opinions, questions).
Theme: what the note is about. For example: food, shops, health, roads, transport.
How I built it
The notes. Andrés (AngocA) built OSM-Notes-Ingestion.
It loads all OSM notes into a database and keeps them up to date every minute.
On top of it, I built a small pipeline that:
loads the full notes dump from the planet file,
takes the first comment of each note (the one that explains the problem),
detects the language of each note.
Training data. This was the hardest part, and it took several rounds. The AI helped
me a lot, but I reviewed many of its labels:
I sent about 10,000 notes to three popular AI models: Claude, GPT and Gemini. When
all three agreed, I kept the label, and I also reviewed many of them.
When they did not agree, I read the note and chose the label myself. I labeled
about 1,300 notes this way.
After the first training, I looked at the notes where the model failed. In many of
them the label was wrong, not the model. So I fixed many labels and trained again,
until the results were good enough.
In the end, I had about 11,700 labeled notes in Spanish and English. I did not train
with other languages. The model is multilingual, so I hope it can also work in other
languages, but I have not measured it yet.
The model. I fine-tuned XLM-RoBERTa large,
a multilingual model, with these notes. Category macro-F1 is 0.78 and theme
macro-F1 is 0.83.
The model is not perfect. It still makes mistakes, mostly with “other wrong data” and
“not mappable”.
For ML people: model and results
Input: the model reads the full text of the first comment. I only remove things that
do not help, like URLs, dates, hashtags and app versions. About 31% of the notes come
from apps (StreetComplete, Organic Maps, MAPS.ME…). The rest come from the OSM website.
Models: I trained one model for category and one for theme. I compared three
options: a simple TF-IDF + logistic regression baseline, mDeBERTa-v3 base, and
XLM-RoBERTa large (XLM-R).
Split: 72% for training, 8% for validation (to pick the best checkpoint and stop
early), and 20% for testing, stratified by class. I only used the test notes at the
end. The main score is macro-F1, so rare classes like spam count as much as common ones.
Labeled notes per class (click a class to see it on the map):
The classes are not balanced. missing_place has 3,706 notes, but personal_data has
only 148. I also labeled 590 notes as unsure, and I did not use them for category.
XLM-R large gave the best results: category macro-F1 0.78 and theme macro-F1 0.83.
For category, it works a bit better in English (0.80) than in Spanish (0.74).
The confidence score helps. If we keep only predictions with 90% confidence or
more, category accuracy goes up from 82% to 90%, and we still keep 81% of the notes.
One thing to keep in mind: most test labels come from AI models. So these scores show
how well the model agrees with the AI labels, not with people.
A website to see the results and close notes
Running the model without a GPU
I did not want to pay for a GPU server. So after training, I exported both models to
ONNX with 8-bit weights. Now they are 4 times smaller and run on a normal CPU. They give
the same answer as the GPU model for 96% of the test notes.
The website
The website is simple and looks a bit like OSMCha. You can list notes by category, theme
and confidence, and filter by language and app. I hope this makes it easier to find notes
you can fix and close. You can also export the notes as GeoJSON for MapRoulette.
You can log in with your OSM account. Then you can tell the model if a prediction is right
or wrong (👍 or 👎), and help label notes.
Some notes have personal data, like “this is my house” or a phone number. I did not want
to show them on a public map. So the public map only shows how many there are, and only
OSM moderators can see them after they log in.
Next step
Use closed notes. The closing comment often says what the mapper did, like
“added the shop” or “spam”. This gives a label confirmed by a real person. The model will
still read only the first comment, but these labels can help me train and test it in
more languages.
Use the work of Mateusz Konieczny - bot.
He used an LLM to find notes that can be closed (spam, junk, personal data, duplicates)
and closed many of them. These notes were checked by a person, so they are good training
data, especially for rare classes like spam and personal_data.
Feedback welcome
I hope this helps people solve notes faster. I would love to hear from you:
Are these categories useful? Would you change any?
A few weeks ago I wrote here about Wandering Around, a free browser game in which you can walk through any town or city on Earth, built on the fly from OpenStreetMap. Thanks to your comments and feedback, the game has now left beta: version 1.0 is live.
Play it here: wanderingaround.games (phone and desktop, no download, no account needed)
This post is about what changed on the O
A few weeks ago I wrote here about Wandering Around, a free browser game in which you can walk through any town or city on Earth, built on the fly from OpenStreetMap. Thanks to your comments and feedback, the game has now left beta: version 1.0 is live.
This post is about what changed on the OSM side since then.
Buildings that look like the real thing
Churches are built from their real outline. The game reads the shape of the building and finds the nave, the transepts and the choir, and each part gets its own roof that follows the shape. A square part that sticks out becomes the tower. A church mapped carefully as a cross shape now also looks like one at eye level.
Mosques get a dome on a drum, pointed windows and a minaret. They are recognised by religion=muslim, building=mosque or the name.
Cemeteries (landuse=cemetery) are laid out with gravel paths, rows of graves in neutral shapes, low hedges and trees.
Sidewalks now run along the whole street as one continuous strip. Short gaps are filled and corners join neatly.
Shop fronts, front doors and porches get their own place in the facade, so windows don’t end up behind a door.
Walking along OSM streets
When you tap somewhere on the map, your avatar now finds the way over the OSM road and path network: tiles stitched together, loose ends of footpaths connected, no private roads and no tunnels. Before, it walked in a straight line and got stuck against the first wall. If the straight line is free it still walks straight, so it doesn’t make strange detours across an open square.
Trains and ferries, everywhere
Asking Overpass for train routes from the browser became slow and unreliable in busy areas. So railway routes (route=train relations with their stops) are now extracted from the Geofabrik continent files with osmium and stored in tiles of 2 × 2 degrees. Opening a station takes one short request, anywhere in the world. Ferry routes come from Overture Maps in the same tiled way.
Wikipedia in the local language
Thanks to Frederik’s comment on my previous post: a monument now shows the Wikipedia article in the language of the place first (in Aarhus that is Danish), and falls back to the language of your device. The wikidata tag on the object is what makes this possible.
Museums and their shops
Every museum with a Wikidata link gets a little museum shop at the street, where you can buy prints of paintings from that museum’s own collection (from Wikidata, public domain works only) and souvenirs. A museum is recognised by tourism=museum, or, when that tag is missing, by Wikidata “instance of” (museum, art museum, gallery …). So adding wikidata to a museum building is directly visible in the game.
And more
Your own house in the game (a real building from the map) to show your trophies and souvenirs.
Does your area look right? A church with an odd roof, a cemetery that isn’t recognised, or a station without trains usually means a tagging pattern I don’t handle yet. Please tell me in the comments, or use the feedback button in the game.
Thanks again to everyone who maps. Every building you trace ends up in someone’s walk.
According to sources (such as this a general rule of thumb for roads within urban areas is 40 for busy traffic roads and 60 for main roads. I believe that the highway=’primary’ tag should generally align for these roads (usually long stretching across a district, 2-3 lanes) such as Ramsis St. For the less important roads they should be secondary of tertiary depending on importance, where tertiar
According to sources (such as this a general rule of thumb for roads within urban areas is 40 for busy traffic roads and 60 for main roads. I believe that the highway=’primary’ tag should generally align for these roads (usually long stretching across a district, 2-3 lanes) such as Ramsis St. For the less important roads they should be secondary of tertiary depending on importance, where tertiary is more likely to intersect more with busier residential areas and roads. This can help routing algorithms better impute speeds depending on the highway, helping in this region as road speeds are rarely defined for non-trunk roads.
Frank talks about the history and evolution of OpenFireMap.
Today in our OpenStreetMap (OSM) interview series, we are speaking with Frank März about the story behind OpenFireMap. What started as an effort to replace an outdated, hand-drawn village map has grown into a free map showing fire stations, hydrants, water supply points and defibrillators across dozens of European countries. We spoke with Frank about the project, how AI helped him rebuild it, and his hopes for the future of community mapping.
1. Tell us a bit about who you are and how you first got involved with OpenStreetMap?
I’m Frank März (52) from a small village in Franconia, Germany. I work in network operations for a German mobile operator. I found OpenStreetMap around 2010 as a passionate marathon runner: I started by mapping all the routes and paths around where I live, later the buildings and everything else that was missing. Then I realized that our volunteer fire brigade, in a village of about 1,000 people, still had an ancient hand-drawn map hanging in the fire station. I wondered whether OpenStreetMap could be the basis for a new village and hydrant plan. That question took me from running routes to fire-service mapping.
2. What is OpenFireMap, how did the idea for the project come about, and what motivated you to create a dedicated map for fire services and emergency infrastructure?
OpenFireMap is a free web map that shows fire stations, hydrants, water supply points and defibrillators from OpenStreetMap. It started with that village plan question. I brought it up at the OSM meetup in Nuremberg and got a few people on board. I can barely program, so I didn’t build it, but I gave the impulse, proposed the design and later organized the domain. The first OpenFireMap then ran largely unchanged for about 12 years, operated by the admin of our meetup.
What changed was AI. I had moved to a different department at work and had to get to grips with GitHub, Docker and CI/CD, and OpenFireMap became my learning project for exactly that. In January 2026 I tried to set up a hydrant map purely with vibe coding, and it worked very well. After a few weeks I released a new version, on my own together with AI, and moved my domain over to it. I haven’t looked at a single line of code since. I use the 20-euro plans of Claude and OpenAI, and I’m amazed at what has become possible within a year.
3. What kind of information does OpenFireMap display, and where does the data come from? How does it build on the wider OpenStreetMap database?
OpenFireMap has no database of its own. It’s purely a visualization of OpenStreetMap data, and I’ve always liked that: if someone wants to add or correct something, they do it in OSM and it shows up on the map. For the fire service, the relevant objects are hydrants, suction points, fire ponds and water tanks, plus fire stations as a small extra. Recently I’ve added AEDs. I’m registered with the first-responder app “Region der Lebensretter”, so that topic matters to me, and I’m tinkering with a small side project: photograph an AED, and it’s either added to OSM or, if it’s already there, confirmed as still present.
To keep the map fast, I first set up pre-built vector tiles for Germany, Austria, Switzerland, Luxembourg and Liechtenstein. In a second step I extended that to 40 more European countries. Everywhere else, and for recent changes, the map asks Overpass live.
4. Who uses OpenFireMap, and how can it help in practical situations? Have you come across any particularly interesting examples of how people use the map?
People use it in three ways. At a desk, you choose a place and export a PDF or PNG, for example a village plan; GPX and CSV came later. Our own fire station now has a village plan made this way on the wall. I’m currently working on a special export for printing that draws streets wider than they really are, so a printed map is easier to read. On the phone, you locate yourself and see the nearest hydrants. And some fire-service software, such as the Alarminator app, uses the data.
Feedback has led to real changes. The plant fire brigade of a car manufacturer in Baden-Württemberg had Württemberg shaft hydrants, and there was no symbol for them. I added one, and now the map has it.
There’s also a statistics page. Some regions are very thin; in my valley, with my two neighboring municipalities, I’d say we’ve mapped 99% of all hydrants, even along new roads that aren’t open yet. It’s not an official dispatch map, and the data should be checked locally before operational use.
5. What are the biggest challenges in maintaining OpenFireMap and keeping its data useful and up to date? How can the OpenStreetMap community contribute to the project?
Reliability. The map used to depend entirely on the Overpass API, and as that became less dependable, the map was useless whenever it was down. After a summer break, when I’d rather be outside, I picked it up again at the end of September and set out to fix that: pre-computed data served from Cloudflare, so the map appears within one or two seconds. Overpass is now only a backup. The data for Germany, Austria, Switzerland, Liechtenstein and Luxembourg is updated daily, the other countries weekly. Building it scared me at first, but it could all be vibe-coded.
Where I’d like help: Android. AI can only judge to a limited extent how things look on phones, and Android doesn’t look like the iPhone. If you use Android and are a bit of a design genius, feedback would be great.
For mapping, I’d like local fire brigades and their youth groups to turn it into an exercise: split the village into quadrants, walk them with phones, and a complete map exists two days later. hydrantenjaeger.de makes that fast: photograph a hydrant, add a few details, upload, and it’s in OSM about 20 seconds later. I’d love to see people use it. A short tutorial video that explains it quickly is on my to-do list, but I haven’t found the time yet. I’m not a big fan of long texts myself, so it will be a video rather than a manual.
6. OpenStreetMap has come a long way since it began. Looking ahead, what do you hope the project will achieve over the next 10 years, and what role do you see OpenFireMap playing in that future?
OSM is a huge project. I love it when people look closely at their surroundings so that the map is really good where they live, and then all sorts of apps use it, even my own employer. It’s a great feeling to see a map and know that about 80% of what’s around me I mapped myself 10 or 12 years ago, and it’s still there.
My wish for the next ten years: that very many fire brigades map their own village and surroundings, so that all hydrants end up in the OpenStreetMap database. That would be really cool.
Where OpenFireMap will be in ten years isn’t that relevant. All of Europe is in already, and the whole world would be possible; the question is just where the server space is. It’s a purely private project, and I don’t want to make money from it. I want to give something back. If someone wants their country, I can set it up within a day. What would help me most is feedback from fire brigades and other users: what’s missing? With AI agents, building it takes one or two evenings, not weeks.
Everything is on GitHub, under the MIT license, so anyone can contribute, or copy it and build something of their own. And I’m a friend of simplicity. Many maps I see based on OSM are completely overloaded, and keeping it simple is my small contribution.
OpenFireMap is a great example of how OpenStreetMap data can be put to practical use, supporting local communities and emergency services. Frank hopes more fire brigades will get involved in mapping their surroundings, helping make essential emergency infrastructure visible and accessible to everyone. Thank you, Frank, for sharing your story and for your contributions to the OpenStreetMap community.