feat: Add post improve-osm-by-using-it
	
		
			
	
		
	
	
		
	
		
			All checks were successful
		
		
	
	
		
			
				
	
				ci/woodpecker/manual/woodpecker Pipeline was successful
				
			
		
		
	
	
				
					
				
			
		
			All checks were successful
		
		
	
	ci/woodpecker/manual/woodpecker Pipeline was successful
				
			This commit is contained in:
		
							
								
								
									
										
											BIN
										
									
								
								content/post/improve-osm-by-using-it/improve-osm-by-using-it.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								content/post/improve-osm-by-using-it/improve-osm-by-using-it.png
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							| 
		 After Width: | Height: | Size: 372 KiB  | 
							
								
								
									
										100
									
								
								content/post/improve-osm-by-using-it/index.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										100
									
								
								content/post/improve-osm-by-using-it/index.md
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,100 @@
 | 
			
		||||
---
 | 
			
		||||
title: "Improve OpenStreetMap data by using it"
 | 
			
		||||
date: 2025-04-16T12:10:10+02:00
 | 
			
		||||
draft: false
 | 
			
		||||
image: "post/improve-osm-by-using-it/improve-osm-by-using-it.png"
 | 
			
		||||
categrories: ['English']
 | 
			
		||||
tags: ['django', 'OpenStreetMap', 'notfellchen', 'osm', 'open data', 'geojson']
 | 
			
		||||
---
 | 
			
		||||
 | 
			
		||||
## Introduction
 | 
			
		||||
 | 
			
		||||
In the last month I improved the mapping of about 100 german animal shelters - not only out of the goodness of my heart, but because it helped me.
 | 
			
		||||
 | 
			
		||||
Let me explain why: I develop [notfellchen.org](https://notfellchen.org/), where users can search animals in animal shelters, specifically rats, they might want to adopt.
 | 
			
		||||
The idea is to have a central website that allows you to search for rats in your area.
 | 
			
		||||
 | 
			
		||||
This is necessary because only a small percentage of animal shelters has rats. As a user, just checking your next
 | 
			
		||||
shelter doesn't work. Some users will stop after checking the second or third one and just buy from a pet shop (which is a very, very bad idea).
 | 
			
		||||
 | 
			
		||||
Now a central platform for is nice for users but has one problem: How do I, as operator of notfellchen, know where rats are?
 | 
			
		||||
 | 
			
		||||
I need to **manually check every animal shelter in the country** and if they have rats, ask them for permission to use
 | 
			
		||||
images of the rats on my site.
 | 
			
		||||
So wait I need to have is a list of animal shelters in germany and have their website, e-mail and phone number.
 | 
			
		||||
 | 
			
		||||
The source for all of this: You guessed it - OpenStreetMap 🥳
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
# Getting the data
 | 
			
		||||
 | 
			
		||||
Downloading all german animal shelters is surprisingly easy: You use [Overpass Turbo](https://overpass-turbo.eu/) and get a `.geojson` to download. 
 | 
			
		||||
 | 
			
		||||
here is the query I used:
 | 
			
		||||
 | 
			
		||||
```
 | 
			
		||||
[out:json][timeout:25];
 | 
			
		||||
// fetch area “Germany” to search in
 | 
			
		||||
{{geocodeArea:Germany}}->.searchArea;
 | 
			
		||||
// Check search area for all objects with animal shelter tag
 | 
			
		||||
nwr["amenity"="animal_shelter"](area.searchArea);
 | 
			
		||||
// print results
 | 
			
		||||
out geom;
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
Now upload it to notfellchen.org and I'll be fine right?
 | 
			
		||||
 | 
			
		||||
# Data Issues
 | 
			
		||||
 | 
			
		||||
Yeah well, this only *mostly* works. There were two main problems:
 | 
			
		||||
 | 
			
		||||
**Missing contact data** is annoying because I quickly want to check the website of animal shelters.
 | 
			
		||||
 | 
			
		||||
rMore annoying were what I'd call **mapping errors**.
 | 
			
		||||
Most commonly an animal shelter had multiple nodes/ways tagged as `amenity:animal_shelter`.
 | 
			
		||||
The highlight was the "Tierheim München" where about 10 buildings were tagged as `amenity:animal_shelter` and the contact
 | 
			
		||||
data was sitting on the building with name "Katzenhaus" ("cat house").
 | 
			
		||||
 | 
			
		||||
Now the "Tierheim München" appeared in my list 10 times but 9 of them had no contact data at all. 
 | 
			
		||||
 | 
			
		||||
# Correcting it
 | 
			
		||||
 | 
			
		||||
I could have corrected this only in the notfellchen database. It would have been faster and I could even automate parts of it.
 | 
			
		||||
But I didn't.
 | 
			
		||||
 | 
			
		||||
For each issue I found, I opened OpenStreetMap and added websites, phone numbers or even re-mapped the area.
 | 
			
		||||
For "Tierheim München" I even [opened a thread in the forum](https://community.openstreetmap.org/t/mapping-of-multiple-related-buildings-animal-shelters/131801)
 | 
			
		||||
to discuss a proper tagging.
 | 
			
		||||
 | 
			
		||||
That makes sense for me because I get one important thing:
 | 
			
		||||
 | 
			
		||||
# What I get out of it: Updates
 | 
			
		||||
 | 
			
		||||
What if a new shelter was added later or a shelter changed? I already profit a lot from the time people spend adding information, so why stop?
 | 
			
		||||
 | 
			
		||||
My database stores the OSM ID, so I can regularly query the data again to get updates.
 | 
			
		||||
But that only works if I take an "upstream" approach: Fix the data in OSM, then load it into notfellchen.
 | 
			
		||||
Otherwise, any change in my database will be overwritten by "old" OSM data.
 | 
			
		||||
 | 
			
		||||
# Result
 | 
			
		||||
 | 
			
		||||
In the last month, I made 86 changes to OSM adding the following information
 | 
			
		||||
 | 
			
		||||
| Type of information | Number of times added | 
 | 
			
		||||
|---------------------|-----------------------|
 | 
			
		||||
| Website             | 66                    |
 | 
			
		||||
| Phone Numbers       | 65                    |
 | 
			
		||||
| Operator            | 63                    |
 | 
			
		||||
| E-Mail              | 49                    |
 | 
			
		||||
| Fax                 | 9                     |
 | 
			
		||||
 | 
			
		||||
Yes I sometimes even added fax numbers. It was easy enough to add and maybe there is someone might use it.
 | 
			
		||||
 | 
			
		||||
# Looking forward
 | 
			
		||||
 | 
			
		||||
I'm of course not done. Only half of the rescues known to OSM in germany are currently checked, so I'll continue that work.
 | 
			
		||||
 | 
			
		||||
After that I'll start adding the shelters that are just in my database.
 | 
			
		||||
Currently, 33 animal shelters are known to notfellchen that are not known to OSM. This number will likely grow, maybe double.
 | 
			
		||||
 | 
			
		||||
A lot to do. And luckily, this work both benefits me and everyone using OSM. Happy mapping!
 | 
			
		||||
		Reference in New Issue
	
	Block a user