Я бы хотел посчитать удобства (бары и пабы) на уровне admin_level 6 (департамент) с завышенной ценой.
Мне удалось создать CSV-файл с турбонаддувом overpass:
[out:csv(id, total )];
//All French départements (level 6) from FR-01 to FR-95 plus FR-2A and FR-2B
area[admin_level=6]["ISO3166-2"~"^FR-[0-9]|[1-8][0-9]|9[0-5]|2[A-B]"];
// Counts bars and pubs in each dpt (level 6)
foreach->.dpt(
// search for bars and pubs
(
way(area.dpt)[amenity=pub];
way(area.dpt)[amenity=bar];
node(area.dpt)[amenity=pub];
node(area.dpt)[amenity=bar];
);
make count id = dpt.set(t["ref"]),
total = count(ways) + count(nodes);
out;
);
, но поскольку я понял, что overpy не работает с CSV-файлами, я хотел бы получить список пар (ссылка на площадь, количество баров и пабов).
Это:
import overpy
api = overpy.Overpass()
dpts = api.query("""
// All french departements (level 6)
area[admin_level=6]["ISO3166-2"~"^FR-[0-9]|[1-8][0-9]|9[0-5]|2[A-B]"];
// Find bars and pubs in each dpt
foreach->.dpt(
// looks for bars and pubs
(
way(area.dpt)[amenity=pub];
way(area.dpt)[amenity=bar];
node(area.dpt)[amenity=pub];
node(area.dpt)[amenity=bar];
);
out;
);
""")
дает мне все узлы и пути, но не отсортировано по area.dept.
Я получилвсе бары и пабы:
In [102]: len(dpts.ways + dpts.nodes)
Out[102]: 3895
Как я могу получить список типа [(area ref, number of pubs and bars)]
?