You are not logged in.

#1 2021-05-10 21:15:48

tagtheworld
Member
Registered: 2012-04-25
Posts: 230

get info on all catholic churches in Europe

i 'm looking to get info on all catholic churches in Europe. Specifically, I'd love to get:

their address
Denomination
Active/Not
Contact Info (website, email, phone)
and any other info I can get. ... best would be in CSV-formate


well we ve got several aproaches:

- use overpass-tubro.eu; - this would be just great!
- we can get a list of all "places of worship" by downloading bulk osm files from geofabrik.de and then using use osmfilter or osmosis to select only certain tags, for example: wiki.openstreetmap.org/wiki/Tag:amenity=place_of_worship

to use the Open StreetMap data with Nominatom for a base file.
This should get the #1 and then we can get #2 just by text mining their titles.
For #3 I believe the closest you'll get is just to use the most recent available data.
For #4 I think we'd need to do original data scraping from the Internet - at least to get their websites (I'm not sure on this one, actually).

btw: see a List of Catholic dioceses (structured view)
https://en.wikipedia.org/wiki/List_of_C … _of_France

As of May 31, 2018, the Catholic Church in its entirety comprises 3,160 ecclesiastical jurisdictions, including over 645 archdioceses and 2,236 dioceses, as well as apostolic vicariates, apostolic exarchates, apostolic administrations, apostolic prefectures, military ordinariates, personal ordinariates, personal prelatures, territorial prelatures, territorial abbacies and missions sui juris around the world.

which option would you use to find out more..


update: well i did some research - and found interesting approaches:

eg here: https://gis.stackexchange.com/questions … g-overpass


question: ... how to extract a list of churches from OSM with their name, their coordinates and the name of the lower administrative division they belong to. I managed to get the first ones with:

area["name"="Mayenne"]->.boundaryarea;
way(area.boundaryarea)["building"="church"];
out tags center;


Answer: I suggest to search for amenity=place_of_worship as well. There are 864226 of them (nodes and ways), while building=church only has 200886. For the admin division, you have to look into admin_level. It depends on your study area how deep they are detailed. –

btw: Similar to an example in the Overpass by Example library, I'd suggest to use the following query:

Church building ways in an area : When applying this technique to ways, one has to keep in mind that the is_in statement only works on nodes. For this reason, we first have to determine all nodes for a way.

try it in overpass-turbo

[timeout:60];
area["name"="Mayenne"]->.boundaryarea;
way(area.boundaryarea)["building"="church"];
  foreach(
    node(w)->.n;
    .n is_in->.a;
    area.a[name][boundary=administrative][admin_level~"^[2-8]$"] -> .a;
    out center;
    convert way ::=::,
              ::id = id(),
              is_in=a.set("{" + t[admin_level] + ":" + t[name] + "}");

    out;
  );

see also here: https://wiki.openstreetmap.org/wiki/Ove … _0.7.54.29

Step-by-step explanation how this query works:


It iterates over each building=church in your area
determines all nodes for each building
find out in which areas those nodes are (this is the actual georeferencing step)
filter out all areas with boundary=administrative and admin_level between 2 and 8 (you can adjust those if needed).
print out the center point of the church building way generates an artificial element with the same way id and an additional element is_in, which lists all administrative boundaries the church is in.
prints out artificial element
Note that the query returns two ways for each church, one with a center node, and one with an is_in entry but without geometry. At this time, you have to manually merge those two ways. In a later version of Overpass API this will change, though, returning only one single result including geometry.

The line containing georeferencing information looks as follows:

<tag k="is_in" v="{2:France};{4:Pays-de-la-Loire};{6:Mayenne};{7:Château-Gontier};{8:Senonnes}"/>


results: in csv gist.github.com/mmd-osm/10e867cfcfbe15fcef65867e64b6630e


Note: all looks pretty interesting and helpful - but these three lines are quite a bit too complicated

convert way ::=::,
              ::id = id(),
              is_in=a.set("{" + t[admin_level] + ":" + t[name] + "}");


i have some dificulties to add concrete values here - anybody can help out here  with a full working example!?

see also here: https://wiki.openstreetmap.org/wiki/Ove … _0.7.54.29

Last edited by tagtheworld (2021-05-11 17:28:40)


https://wiki.openstreetmap.org/wiki/User:Tagtheworld - interested in all things concerning osm especially those related to the languages Perl, PHP, Python and the databases MySQL and Postgresql.

Offline

Board footer

Powered by FluxBB