Serbia/Projekti/Adresni registar
Da vidite ovu stranicu na srpskom, pogledajte Sr:Serbia/Projekti/Adresni_registar
Source
Serbia government released address registry (streets and housenumbers with geometries) on 9. december 2022. as open data from national cadastre (RGZ from now on). This got us georeferences addresses (street + housenumbers) as points. Idea is that we organize and add these addresses in OpenStreetMap.
Currently, this data can be downloaded from web site https://data.gov.rs/sr/datasets/adresni-registar/, as well as temporary location at https://download-tmp.geosrbija.rs/download/ (it requires either log in using eGov ID, or registering with new login using e-mail).
Licence
Serbian parliament ratified opening this data on 12.12.2022. in https://www.pravno-informacioni-sistem.rs/SlGlasnikPortal/eli/rep/sgrs/skupstina/zakon/2003/43/2/reg. (138/2022-274). Web application that hosts this data is located here.
Since this is government data, license defined is here: https://data.gov.rs/sr/terms/. However, we are still actively looking to get license of this data that comes from cadaster web site itself.
Tagging rules
As part of this import, we rehashed and better defined address tagging rules and they are here: Serbia/Adresses
Web report
https://dina.openstreetmap.rs/ar/
All RGZ addresses, as well as conflation status, as well as all found and matched OSM address can be found in link above. This report also includes QA reports.
Milestones
Here are some of the milestones that we need to do for this import:
Aktivnost | Napomena | |
---|---|---|
✅ | Start this wiki | :) |
✅ | Start topic in discourse | Plan, Tagging rules |
✅ | Make agreement where we put addresses | Explained at [1] |
✅ | Make agreement on cyrillic vs latin | Will it be "39B" or "39Б", discussion at forum, current agreement is to be latin |
✅ | Agree on data quality coming from RGZ | What if OSM has newer data? What if on-the-ground truth has different address? What if we have address and there is no building? This is for discussion at forum. Agreed, details in instructions |
✅ | Agree how we do import | Automated, semi-automated through iD, JOSM, tasking manager municipality-by-municipality or all together. We will do municipality-by-municipality, settlement-by-settlement |
✅ | Create technical soluition | More details in chapter below, mostly done |
❌ | Import addresses to OpenAddresses | Unrelated to import in OSM, but since this is open data, we should do this too |
✅ | Announce import to imports mailing list | Done here |
✅ | Add ourselves to copyright page | Added through this PR |
❌ | Add links to ref:RS:kucni_broj in osm.org | Wiki pages done, now we nee to create PR for them |
✅ | Start import | Started and reached 70% by the end of March 2024, see Web report |
Import guidelines
Read here for general guidelines how to map address in Serbia. Here is instruction video to explain how to do first-time setup, how to add new addresses and common errors.
This guideline is work in progress, It might change more as import process evolve.
Preparing the environment
- Download JOSM editor. Go to Edit->Preferences. Turn on Expert Mode (bottom left corner) and turn on Remote Control->Enable remote control. You should also donwload plugin "Review.Changes"
- Turn Review window in Windows->Review List
- Download layer with street and housenumber, optional, but can give better insight to RGZ data. In JOSM, go to Imagery->Imagery Preferences. There are 2 layers to choose from. Pick yours.
- In bottom right corner click button "+ TMS". In first text box, write "https://tiles.openstreetmap.rs/rgz/{zoom}/{x}/{y}.png", and in the last textbox add layer name ("RGZ addresses" for example).
- In bottom right corner click button "+ TMS". In first text box, write "https://vector-rgz.openstreetmap.rs/styles/rgz-big/{z}/{x}/{y}.png", and in the last textbox add layer name ("RGZ addresses" for example). You can also try "https://vector-rgz.openstreetmap.rs/styles/rgz/{z}/{x}/{y}.png" which is same layer with just smaller numbers.
Restart JOSM. You can access this layer from Imagery menu.
- Visit https://dina.openstreetmap.rs/ar/ and choose municipality and settlement for which you want to do import
- Visit https://lite.framacalc.org/adrese-sinhro-a047 and add which municipality you are working on, just so we can coordinate efforts
To add new addresses
- Click button "Lista fajlova za import (samo nove adrese)". New pane will open. Here are all addresses that are not found in OSM in 200m radius
- Open JOSM (it has to be started before this)
- Turn some layer to look at map (Imagery menu, and choose Maxar for example)
- Click on some of the files. New layer in JOSM will show up with up to 100 addresses.
- Click on shortcut "1" (View->Zoom to data). This will zoom to all loaded addresses
- If you click Selection->Select All (Ctrl+A), you will see list of all addresses on the right side. Here you can do quick overview if street names are OK before you proceed further
- Click File->Download in current view. This will load OSM data in same layer with addresses. To check if address is not there already, is it outside of building etc.
- If area is too large, zoom to smaller pieces and download OSM data until you cover all addresses
- In Review window click "Start review". All addresses will show up. This serves to check if we reviewed them all. When you click on some address, it will be zoomed. With double-click or Space key, address will be marker as reviewed
- Once we review all addresses, upload all changes with File->Upload data. Comment it as you wish, but keep "data source" as "RGZ_AR_Import".
All addresses should be mostly OK, here are some potential problems:
- Address have street name with wrong caps. You should change all loaded addresss, look at tips below to see how to change them all at once
- Someone already added same address in similar location. Just merge them (or delete newly added, or move one to another holding Ctrl key)
- Building already drawn. Minimal thing to do is to move address to be inside building. You can put address to building, look at tips below
- Address in on grass, there is no building. This is perfectly fine, we agreed we will add these addresses too
Tips:
- If you download plugin "mapwithai", it has ability to merge address with building way. Download it, set shortcut (Edit->Preferences->Keyboard Shortcuts, and look for "Data: Merge address points")
- In Find dialog (Ctrl+F), you can search for new objects only, type "new". This will allow you to see newly added addresses in different color
- To rename lot of addresses, in Find dialog (Ctrl+F) you can type something like
new "addr:street"="Јувелирска"
and get to select all addresses with this streetname, and in object window you can change street name for all addresses at once with double-click
To reference existing, 100% matched addresses
This method will add ref:RS:kucni_broj=* tag to existing addresses.
- Click button "100% poklopljene adrese". New pane will open. Here are all addresses that are perfectly matching between OSM and RGZ
- Open JOSM (it has to be started before this)
- Turn some layer to look at map (Imagery menu, and choose Maxar for example)
- Click on some of the files. New layer in JOSM will show up with up to 100 addresses.
- Click on shortcut "1" (View->Zoom to data). This will zoom to all loaded addresses
- If you click Selection->Select All (Ctrl+A), you will see list of all addresses on the right side. Here you can do quick overview if street names are OK before you proceed further
- Click File->Download in current view. This will load OSM data in same layer with addresses. To check if address is not there already, is it outside of building etc.
- If area is too large, zoom to smaller pieces and download OSM data until you cover all addresses
- In Review window click "Start review". All addresses will show up. This serves to check if we reviewed them all. When you click on some address, it will be zoomed. With double-click or Space key, address will be marker as reviewed
- Once we review all addresses, upload all changes with File->Upload data. Comment it as you wish, but keep "data source" as "RGZ_AR_Import".
To solve other cases (addresses are not matching perfectly)
This is hardest case
- If address do not exist in OSM, simply add it as it is in RGZ. Watch for typos and grammar for street names. It is enough to add addr:street=* (cyrillic) and addr:housenumber=* (latin) and once you add these, on refreshed report tomorrow it will be there as 100%, so you can match it with RGZ later.
- If address is on building that already have number, we should probably move address from building to separate node and keep both address as nodes. For example, building have number "11", and we are adding "11a". We shoud move "11" from building and add two nodes - "11" and "11a" that are attached to building way.
- If address exists in OSM, we should think through how to proceed depending what is not matching between OSM and RGZ:
- If street name is not matching, check surrounding street and see if it is typo/grammar in OSM or RGZ. If error is in RGZ, add "addr:street" tag as correct street name (as it is in OSM). If error is in OSM (trust OSM, but sometimes error is obvious), fix street name in OSM (or add note at least), and for addr:street=* tag add value from RGZ.
- If housenumber is not matching, check if it is error in OSM (numbers should be ordered). If it is not obvious error, try to trust OSM because it probably reflect on-the-ground truth
Techical details
Technical part of this project should ease, simplify and increase import quality. Source code is at https://gitlab.com/osm-serbia/adresniregistar.
Idea is that project is split to smaller pipelines where each pipeline is doing some data processing. These pipelines are self-sufficient and could be executed at any machine and to used for continuous data quality checks. Each pipeline is defined in Makefile and runs with "make some-pipeline".
Following piplines are planned (some already done, better check at README.md):
Pipeline | Command | Note | |
---|---|---|---|
✅ | Address acquisition | download_from_rgz | At RGZ website, all addresses are by municipality. Before we do anything, we should collect them, all other processing is after that |
✅ | Name normalization | Mapping from ALL CAPS addresses to proper cases, main thread is here https://community.openstreetmap.org/t/pravilno-imenovanje-ulica/96891 | |
✅ | Analysis | analyze | From daily PBF file, we try to locate all addresses from RGZ. For each RGZ address, we check if it is conflated, can it be matched or cannot be found at all |
✅ | Reporting | report | Based on CSV, we generate static HTML and upload it. Upload is at https://dina.openstreetmap.rs/ar/ |
❌ | Automated import | If we do everything manual, no action here. If we do something automated, this will be place to do it. |
Quality assurance
During import process, we should do quality checks. Some of the errors we would like to catch and fix are:
Address is node inside building and it should be put on building way- Address is in OSM and it doesn't exists in RGZ (maybe error, maybe not) - this should be added once we finish import
- Address is conflated, but RGZ reference does not exist or is wrong (housenumber wrong, street name different), or distance is too far away
For same ref:RS:kucni_broj=* tag, there is more than 1 entity in OSM
See also
- Import guidelines
- Addresses
- https://gitlab.com/osm-serbia/adresniregistar
- Similar imports:
- Slovenia: Slovenia Address and Building Import
- Norway: Import/Catalogue/Address import for Norway
- New Zealand: LINZ/Address Import
- Czech Republic / Czechia: Address import from RUIAN
- ...
- OSM Inspector