In [1]:
import requests
import json

In [2]:
osmose_url= "http://osmose.openstreetmap.fr/en/api/0.3beta/issues?osm_type=relation&osm_id={}&full=true"

In [3]:
bbox_for_overpass = "5.173011321882331,-4.258575439453126,5.544913134097361,-3.572616577148438"

In [4]:
overpass_base_url = "http://overpass-api.de/api/interpreter?data="
overpass_query_part_for_bus_lines = '[out:json];relation["route"~"bus|ferry"]({});relation["type"="route_master"](br);out meta;'.format(bbox_for_overpass)
overpass_query_part_for_bus_routes = '[out:json];relation["route"~"bus|ferry"]({});out meta;'.format(bbox_for_overpass)

bus_lines_call = requests.get(overpass_base_url + overpass_query_part_for_bus_lines)
if bus_lines_call.status_code != 200:
    print("erreur overpass :{}".format(bus_lines_call.status_code))

bus_routes_call = requests.get(overpass_base_url + overpass_query_part_for_bus_routes)
if bus_routes_call.status_code != 200:
    print("erreur overpass :{}".format(bus_routes_call.status_code))

bus_routes = bus_routes_call.json()["elements"]
bus_lines = bus_lines_call.json()["elements"]
bus_relations = [line['id'] for line in bus_lines] + [route['id'] for route in bus_routes]

In [5]:
len(bus_relations)


Out[5]:
642

In [6]:
seems_ok = []
to_check = []

for a_relation in bus_relations:
    osmose_ = osmose_url.format(a_relation)
    osmose_call = requests.get(osmose_)
    osmose_results = osmose_call.json()['issues']
    if not osmose_results:
        seems_ok.append(a_relation)
    elif len(osmose_results) == 1:
        if osmose_results[0]['class'] == 21404 or "Duplicated similar values interval:conditional" in osmose_results[0]['subtitle']: #ignore "missing ref tag"
            seems_ok.append(a_relation)
        else :
            to_check.append(a_relation)
    else :
        to_check.append(a_relation)

In [7]:
seems_ok_objects = ["r{}".format(relation) for relation in seems_ok]
josm_ok = "http://localhost:8111/load_object?new_layer=true&relation_members=true&objects="+",".join(seems_ok_objects)
josm_ok


Out[7]:
'http://localhost:8111/load_object?new_layer=true&relation_members=true&objects=r5985016,r10087961,r10173635,r10179006,r10179435,r10184139,r10184730,r10184964,r10185142,r10185169,r10185403,r10185406,r10187611,r10187867,r10189319,r10190159,r10190354,r10191924,r10192143,r10200077,r10201145,r10206110,r10206969,r10206986,r10211372,r10211655,r10211824,r10212284,r10213167,r10215245,r10215413,r10215677,r10216195,r10216288,r10220180,r10220245,r10220807,r10225666,r10228020,r10228047,r10228286,r10228332,r10228640,r10228832,r10228894,r10228996,r10229775,r10230294,r10231465,r10232988,r10233569,r10234049,r10235280,r10235433,r10237485,r10238035,r10240686,r10240809,r10241119,r10241191,r10241381,r10241430,r10241609,r10241995,r10246195,r10246667,r10246746,r10246874,r10247373,r10247522,r10247975,r10248235,r10256167,r10256311,r10257679,r10260743,r10261222,r10261637,r10265827,r10265924,r10266646,r10266864,r10267036,r10270241,r10270789,r10270989,r10271088,r10271257,r10279858,r10280602,r10281561,r10282981,r10283602,r10283796,r10285983,r10286236,r10286387,r10286458,r10286586,r10286821,r10289376,r10289749,r10289989,r10290233,r10290876,r10291303,r10300549,r10301060,r10301478,r10301548,r10361922,r10391644,r10394941,r10395065,r10395136,r10395178,r10397090,r10397199,r10402404,r10402518,r10402749,r10403055,r10403061,r10404238,r10406129,r10406387,r10406547,r10406621,r10406865,r10407729,r10407850,r10408669,r10408694,r10408727,r10408771,r10408836,r10408939,r10409494,r10409714,r10410754,r10411047,r10412424,r10412781,r10413050,r10413253,r10413686,r10416510,r10416736,r10430127,r10430197,r10430593,r10430627,r10431102,r10442364,r10459360,r10459458,r10460517,r10460657,r10460968,r10461146,r10461307,r10461959,r10464893,r10465035,r10474495,r10474747,r10476005,r10476178,r10476298,r10480217,r10480360,r10480446,r10480461,r10480573,r10521453,r10628612,r10628718,r10628857,r10647547,r10647596,r10647737,r10651885,r10651976,r10653426,r10653562,r10653808,r10653984,r10669276,r10670070,r10670151,r10672696,r10676982,r10677072,r10677135,r10677516,r10677691,r5985015,r5986717,r8774949,r8778704,r9589445,r9589446,r10087879,r10173633,r10173634,r10178996,r10179433,r10183939,r10184124,r10184409,r10184729,r10184954,r10184962,r10184963,r10185122,r10185123,r10185168,r10185402,r10185404,r10185405,r10186002,r10186314,r10187868,r10188094,r10188362,r10188868,r10189025,r10189317,r10189318,r10190158,r10190187,r10190353,r10191847,r10191923,r10191926,r10192050,r10192152,r10192285,r10192310,r10199196,r10199867,r10199984,r10200076,r10201097,r10201144,r10206109,r10206280,r10206587,r10206679,r10206968,r10206984,r10206985,r10211370,r10211371,r10211654,r10211802,r10211822,r10211823,r10212059,r10212283,r10212291,r10212292,r10212447,r10213165,r10213166,r10213300,r10213429,r10213430,r10213485,r10215243,r10215244,r10215412,r10215599,r10215675,r10215676,r10216194,r10216287,r10216365,r10216414,r10217853,r10217854,r10220178,r10220179,r10220244,r10220282,r10225401,r10225665,r10228019,r10228045,r10228046,r10228185,r10228284,r10228285,r10228331,r10228619,r10228638,r10228639,r10228830,r10228831,r10228893,r10228982,r10228994,r10228995,r10229085,r10229117,r10229774,r10230044,r10230293,r10230474,r10231464,r10231839,r10232987,r10233567,r10233568,r10233895,r10234048,r10234830,r10235070,r10235071,r10235278,r10235279,r10235432,r10235486,r10235487,r10235565,r10237484,r10238033,r10238034,r10240674,r10240675,r10240685,r10240807,r10240808,r10240913,r10240914,r10241038,r10241117,r10241118,r10241190,r10241220,r10241379,r10241380,r10241429,r10241587,r10241607,r10241608,r10241994,r10242016,r10246091,r10246194,r10246442,r10246443,r10246666,r10246745,r10246873,r10247372,r10247521,r10247974,r10248233,r10248234,r10256124,r10256166,r10256269,r10256310,r10257084,r10257356,r10257678,r10257967,r10260742,r10260867,r10261220,r10261221,r10261631,r10261632,r10261636,r10261866,r10261980,r10262496,r10265825,r10265826,r10265922,r10265923,r10266010,r10266156,r10266644,r10266645,r10266862,r10266863,r10267034,r10267035,r10267754,r10270239,r10270240,r10270787,r10270788,r10270988,r10271086,r10271087,r10271255,r10271256,r10279856,r10279857,r10280600,r10280601,r10281559,r10281560,r10282979,r10282980,r10283601,r10283794,r10283795,r10285981,r10285982,r10286234,r10286235,r10286386,r10286456,r10286457,r10286494,r10286585,r10286811,r10286819,r10286820,r10289374,r10289375,r10289747,r10289748,r10289987,r10290231,r10290232,r10290875,r10290940,r10291226,r10291227,r10291301,r10291302,r10300150,r10300547,r10300548,r10300807,r10301058,r10301059,r10301477,r10301546,r10301547,r10361921,r10362134,r10362403,r10366136,r10391642,r10391643,r10394939,r10394940,r10395063,r10395064,r10395134,r10395135,r10395176,r10395177,r10397088,r10397089,r10397197,r10397198,r10398565,r10402402,r10402403,r10402516,r10402517,r10402747,r10402748,r10403053,r10403054,r10403059,r10403060,r10404236,r10404237,r10406127,r10406128,r10406385,r10406386,r10406545,r10406546,r10406619,r10406620,r10406863,r10406864,r10407727,r10407728,r10407848,r10407849,r10408667,r10408668,r10408693,r10408725,r10408726,r10408769,r10408770,r10408834,r10408835,r10408844,r10409492,r10409493,r10409712,r10409713,r10410752,r10410753,r10411046,r10412113,r10412422,r10412423,r10412779,r10412780,r10413048,r10413049,r10413251,r10413252,r10413684,r10413685,r10416163,r10416468,r10416469,r10416508,r10416509,r10416734,r10416735,r10430125,r10430126,r10430195,r10430196,r10430591,r10430592,r10430625,r10430626,r10431100,r10431101,r10434092,r10442362,r10442363,r10459359,r10459456,r10459457,r10460515,r10460516,r10460655,r10460656,r10460966,r10460967,r10461305,r10461306,r10461957,r10461958,r10465033,r10465034,r10465083,r10474493,r10474494,r10474745,r10474746,r10476003,r10476004,r10476176,r10476177,r10476296,r10476297,r10480215,r10480216,r10480358,r10480359,r10480444,r10480445,r10480459,r10480460,r10480571,r10480572,r10521451,r10521452,r10628610,r10628611,r10628716,r10628717,r10628855,r10628856,r10647545,r10647546,r10647594,r10647595,r10647735,r10647736,r10651883,r10651884,r10651974,r10651975,r10653424,r10653425,r10653560,r10653561,r10653806,r10653807,r10653982,r10653983,r10669274,r10669275,r10670068,r10670069,r10670149,r10670150,r10672694,r10672695,r10676980,r10676981,r10677070,r10677071,r10677133,r10677134,r10677514,r10677515,r10677689,r10677690'

In [8]:
to_check_objects = ["r{}".format(relation) for relation in to_check]
to_check_ok = "http://localhost:8111/load_object?new_layer=true&relation_members=true&objects="+",".join(to_check_objects)
to_check_ok


Out[8]:
'http://localhost:8111/load_object?new_layer=true&relation_members=true&objects=r9589447,r10192153,r10199868,r10212293,r10212448,r10213431,r10413162,r10434093,r10178669,r10179434,r10220806,r10246092,r10247520,r10256955,r10283600,r10289988,r10291017,r10408692,r10413160,r10413161,r10434091,r10459358,r10474250,r10474251'

In [9]:
len(to_check_objects)


Out[9]:
24