In this blog post we want to count addr:housenumber nodes across all EU member states, broken down by country. That’s a bit above 34 million nodes in total.
Queries are tested on different Overpass instances: two rather busy public ones, one idle private instance and a dev instance. With the exception of the latter, queries run on offical Overpass releases. Database contains a full planet (including metadata and history).
Query: https://overpass-turbo.eu/s/1adO
[out:csv(name, count)];
rel(2668952);rel(r);
map_to_area -> .areas;
foreach.areas->.area (
node["addr:housenumber"](area.area);
make data count = count(nodes),
name = area.set(t["name"]);
out;
);
Result: https://gist.github.com/mmd-osm/5219028c9fa93db17ac7c271a99183a1
Runtimes
kumi.systems: gateway timeout after 1h
overpass-api.de: gateway timeout after 2h
private server: timeout after >2h
dev branch: 30s
NB: dev branch is exploring alternative implementation options and is currently not released.
Discussion
Comment from spiregrain on 15 August 2021 at 07:15
Did you mean to exclude closed ways with addr:housenumber tags? In my area of a former EU country, they are much more common than nodes with addr:housenumber tags.
Comment from mmd on 15 August 2021 at 07:54
Indeed the focus on nodes was intentional. Counting ways typically requires more resources and would probably take even more time. This is because for each way you have to find out its geometry and check if it’s within a given country border.
A few pointers for ways:
Comment from spiregrain on 15 August 2021 at 10:13
Thanks!