In [1]:
import osmapi, time, overpy

In [2]:
username = 'schleuss' # you should make this yours

In [3]:
# open condos file
f = open("condos.csv","r").read()
ains = f.split(',')

# crack open APIs
api = overpy.Overpass()
api2 = osmapi.OsmApi(passwordfile = "/Users/jschleuss/Documents/osm.password") # reset this path to yours

In [4]:
# find id by ain
def findBuildings(ain):    
    result = api.query("""[out:json][timeout:25];(way["lacounty:ain"="""+ain+"""];relation["lacounty:ain"="""+ain+"""];);out body;>;out skel qt;""")
    
    # safe spot to store ids
    ways = []
    relations = []

    # loop through both ways and relations
    for way in result.ways:
        if "building" in way.tags:
            ways.append(way.id)
            print way.tags
    
    for relation in result.relations:
        if "building" in relation.tags:
            relations.append(relation.id)
            print relation.tags

    print ways
    print relations
    
    # must be nice
    time.sleep(1)

In [15]:
# testing to find buildings
# selain = f[2]
findBuildings('7563006104')

for ain in ains[:10]:
    findBuildings(ain)


{u'building': u'apartments', u'lacounty:bld_id': u'462490723139', u'lacounty:ain': u'7563006104', u'height': u'2.2', u'ele': u'124.1', u'start_date': u'1969'}
{u'building': u'apartments', u'lacounty:bld_id': u'462732723080', u'lacounty:ain': u'7563006104', u'height': u'8.3', u'ele': u'129.0', u'type': u'multipolygon', u'start_date': u'1969'}
[407339465]
[6100288]
[]
[]
{u'building': u'residential', u'lacounty:bld_id': u'468053736360', u'lacounty:ain': u'7442032032', u'height': u'8.5', u'ele': u'50.1', u'start_date': u'1980'}
[407729012]
[]
{u'building': u'apartments', u'lacounty:bld_id': u'463670722850', u'lacounty:ain': u'7563006036', u'height': u'5.2', u'ele': u'121.2', u'start_date': u'1984'}
{u'building': u'apartments', u'lacounty:bld_id': u'463616722707', u'lacounty:ain': u'7563006036', u'height': u'9.7', u'ele': u'123.1', u'start_date': u'1984'}
{u'building': u'apartments', u'lacounty:bld_id': u'463508722914', u'lacounty:ain': u'7563006036', u'height': u'7.9', u'ele': u'125.2', u'start_date': u'1984'}
{u'building': u'apartments', u'lacounty:bld_id': u'463919722744', u'lacounty:ain': u'7563006036', u'height': u'4.9', u'ele': u'121.8', u'start_date': u'1984'}
{u'building': u'apartments', u'lacounty:bld_id': u'463818722783', u'lacounty:ain': u'7563006036', u'height': u'5.2', u'ele': u'123.0', u'start_date': u'1984'}
{u'building': u'apartments', u'lacounty:bld_id': u'463460722712', u'lacounty:ain': u'7563006036', u'height': u'9.2', u'ele': u'122.0', u'start_date': u'1984'}
{u'building': u'apartments', u'lacounty:bld_id': u'463596722881', u'lacounty:ain': u'7563006036', u'height': u'4.6', u'ele': u'120.6', u'start_date': u'1984'}
{u'building': u'apartments', u'lacounty:bld_id': u'463746722828', u'lacounty:ain': u'7563006036', u'height': u'5.3', u'ele': u'121.2', u'start_date': u'1984'}
[407337799, 407338314, 407339429, 407339688, 407339706, 407339754, 407339928, 407339931]
[]
{u'building': u'apartments', u'lacounty:bld_id': u'463670722850', u'lacounty:ain': u'7563006036', u'height': u'5.2', u'ele': u'121.2', u'start_date': u'1984'}
{u'building': u'apartments', u'lacounty:bld_id': u'463616722707', u'lacounty:ain': u'7563006036', u'height': u'9.7', u'ele': u'123.1', u'start_date': u'1984'}
{u'building': u'apartments', u'lacounty:bld_id': u'463508722914', u'lacounty:ain': u'7563006036', u'height': u'7.9', u'ele': u'125.2', u'start_date': u'1984'}
{u'building': u'apartments', u'lacounty:bld_id': u'463919722744', u'lacounty:ain': u'7563006036', u'height': u'4.9', u'ele': u'121.8', u'start_date': u'1984'}
{u'building': u'apartments', u'lacounty:bld_id': u'463818722783', u'lacounty:ain': u'7563006036', u'height': u'5.2', u'ele': u'123.0', u'start_date': u'1984'}
{u'building': u'apartments', u'lacounty:bld_id': u'463460722712', u'lacounty:ain': u'7563006036', u'height': u'9.2', u'ele': u'122.0', u'start_date': u'1984'}
{u'building': u'apartments', u'lacounty:bld_id': u'463596722881', u'lacounty:ain': u'7563006036', u'height': u'4.6', u'ele': u'120.6', u'start_date': u'1984'}
{u'building': u'apartments', u'lacounty:bld_id': u'463746722828', u'lacounty:ain': u'7563006036', u'height': u'5.3', u'ele': u'121.2', u'start_date': u'1984'}
[407337799, 407338314, 407339429, 407339688, 407339706, 407339754, 407339928, 407339931]
[]
{u'building': u'house', u'lacounty:bld_id': u'468974721300', u'building:units': u'1', u'height': u'8.6', u'start_date': u'1990', u'ele': u'97.0', u'lacounty:ain': u'7460017037'}
[407418008]
[]
{u'building': u'house', u'lacounty:bld_id': u'467893734057', u'building:units': u'1', u'height': u'7.9', u'start_date': u'1987', u'ele': u'78.7', u'lacounty:ain': u'7445005024'}
{u'building': u'house', u'lacounty:bld_id': u'468335734045', u'building:units': u'1', u'height': u'7.6', u'start_date': u'1987', u'ele': u'69.9', u'lacounty:ain': u'7445005024'}
{u'building': u'house', u'lacounty:bld_id': u'467942734167', u'building:units': u'1', u'height': u'7.8', u'start_date': u'1987', u'ele': u'77.9', u'lacounty:ain': u'7445005024'}
{u'building': u'house', u'lacounty:bld_id': u'467841734185', u'building:units': u'1', u'height': u'7.8', u'start_date': u'1987', u'ele': u'78.3', u'lacounty:ain': u'7445005024'}
{u'building': u'house', u'lacounty:bld_id': u'468241734167', u'building:units': u'1', u'height': u'8.4', u'start_date': u'1987', u'ele': u'69.4', u'lacounty:ain': u'7445005024'}
{u'building': u'house', u'lacounty:bld_id': u'468140734171', u'building:units': u'1', u'height': u'8.5', u'start_date': u'1987', u'ele': u'72.3', u'lacounty:ain': u'7445005024'}
{u'building': u'house', u'lacounty:bld_id': u'468127734044', u'building:units': u'1', u'height': u'7.4', u'start_date': u'1987', u'ele': u'73.7', u'lacounty:ain': u'7445005024'}
{u'building': u'house', u'lacounty:bld_id': u'468240734039', u'building:units': u'1', u'height': u'7.5', u'start_date': u'1987', u'ele': u'71.0', u'lacounty:ain': u'7445005024'}
{u'building': u'house', u'lacounty:bld_id': u'468008734044', u'building:units': u'1', u'height': u'7.4', u'start_date': u'1987', u'ele': u'75.5', u'lacounty:ain': u'7445005024'}
{u'building': u'house', u'lacounty:bld_id': u'468048734184', u'building:units': u'1', u'height': u'8.2', u'start_date': u'1987', u'ele': u'74.9', u'lacounty:ain': u'7445005024'}
{u'building': u'house', u'lacounty:bld_id': u'467838734294', u'building:units': u'1', u'height': u'6.0', u'start_date': u'1987', u'ele': u'75.9', u'lacounty:ain': u'7445005024'}
{u'building': u'house', u'lacounty:bld_id': u'468209734279', u'building:units': u'1', u'height': u'4.7', u'start_date': u'1987', u'ele': u'65.6', u'lacounty:ain': u'7445005024'}
{u'building': u'house', u'lacounty:bld_id': u'468388734278', u'building:units': u'1', u'height': u'5.5', u'start_date': u'1987', u'ele': u'62.4', u'lacounty:ain': u'7445005024'}
{u'building': u'house', u'lacounty:bld_id': u'468052734287', u'building:units': u'1', u'height': u'5.9', u'start_date': u'1987', u'ele': u'70.6', u'lacounty:ain': u'7445005024'}
{u'building': u'house', u'lacounty:bld_id': u'468101734287', u'building:units': u'1', u'height': u'4.8', u'start_date': u'1987', u'ele': u'68.2', u'lacounty:ain': u'7445005024'}
{u'building': u'house', u'lacounty:bld_id': u'467776734266', u'building:units': u'1', u'height': u'5.4', u'start_date': u'1987', u'ele': u'76.4', u'lacounty:ain': u'7445005024'}
{u'building': u'house', u'lacounty:bld_id': u'467747734128', u'building:units': u'1', u'height': u'4.7', u'start_date': u'1987', u'ele': u'76.7', u'lacounty:ain': u'7445005024'}
{u'building': u'house', u'lacounty:bld_id': u'467785734080', u'building:units': u'1', u'height': u'4.9', u'start_date': u'1987', u'ele': u'76.7', u'lacounty:ain': u'7445005024'}
{u'building': u'house', u'lacounty:bld_id': u'468272734292', u'building:units': u'1', u'height': u'5.7', u'start_date': u'1987', u'ele': u'64.9', u'lacounty:ain': u'7445005024'}
{u'building': u'house', u'lacounty:bld_id': u'467881734265', u'building:units': u'1', u'height': u'3.7', u'start_date': u'1987', u'ele': u'72.6', u'lacounty:ain': u'7445005024'}
{u'building': u'house', u'lacounty:bld_id': u'467991734294', u'building:units': u'1', u'height': u'4.8', u'start_date': u'1987', u'ele': u'71.1', u'lacounty:ain': u'7445005024'}
{u'building': u'house', u'lacounty:bld_id': u'468164734288', u'building:units': u'1', u'height': u'5.8', u'start_date': u'1987', u'ele': u'67.8', u'lacounty:ain': u'7445005024'}
{u'building': u'house', u'lacounty:bld_id': u'467945734282', u'building:units': u'1', u'height': u'4.7', u'start_date': u'1987', u'ele': u'72.6', u'lacounty:ain': u'7445005024'}
[407724160, 407724193, 407724207, 407724218, 407724241, 407724243, 407724246, 407724270, 407724302, 407724311, 407724338, 407724349, 407724352, 407724363, 407724383, 407724387, 407724400, 407724407, 407724414, 407724416, 407724424, 407724427, 407724435]
[]
{u'building': u'house', u'lacounty:bld_id': u'470329724600', u'building:units': u'1', u'height': u'10.0', u'start_date': u'1992', u'ele': u'65.2', u'lacounty:ain': u'7458023043'}
[407426399]
[]
{u'building': u'house', u'lacounty:bld_id': u'467893734057', u'building:units': u'1', u'height': u'7.9', u'start_date': u'1987', u'ele': u'78.7', u'lacounty:ain': u'7445005024'}
{u'building': u'house', u'lacounty:bld_id': u'468335734045', u'building:units': u'1', u'height': u'7.6', u'start_date': u'1987', u'ele': u'69.9', u'lacounty:ain': u'7445005024'}
{u'building': u'house', u'lacounty:bld_id': u'467942734167', u'building:units': u'1', u'height': u'7.8', u'start_date': u'1987', u'ele': u'77.9', u'lacounty:ain': u'7445005024'}
{u'building': u'house', u'lacounty:bld_id': u'467841734185', u'building:units': u'1', u'height': u'7.8', u'start_date': u'1987', u'ele': u'78.3', u'lacounty:ain': u'7445005024'}
{u'building': u'house', u'lacounty:bld_id': u'468241734167', u'building:units': u'1', u'height': u'8.4', u'start_date': u'1987', u'ele': u'69.4', u'lacounty:ain': u'7445005024'}
{u'building': u'house', u'lacounty:bld_id': u'468140734171', u'building:units': u'1', u'height': u'8.5', u'start_date': u'1987', u'ele': u'72.3', u'lacounty:ain': u'7445005024'}
{u'building': u'house', u'lacounty:bld_id': u'468127734044', u'building:units': u'1', u'height': u'7.4', u'start_date': u'1987', u'ele': u'73.7', u'lacounty:ain': u'7445005024'}
{u'building': u'house', u'lacounty:bld_id': u'468240734039', u'building:units': u'1', u'height': u'7.5', u'start_date': u'1987', u'ele': u'71.0', u'lacounty:ain': u'7445005024'}
{u'building': u'house', u'lacounty:bld_id': u'468008734044', u'building:units': u'1', u'height': u'7.4', u'start_date': u'1987', u'ele': u'75.5', u'lacounty:ain': u'7445005024'}
{u'building': u'house', u'lacounty:bld_id': u'468048734184', u'building:units': u'1', u'height': u'8.2', u'start_date': u'1987', u'ele': u'74.9', u'lacounty:ain': u'7445005024'}
{u'building': u'house', u'lacounty:bld_id': u'467838734294', u'building:units': u'1', u'height': u'6.0', u'start_date': u'1987', u'ele': u'75.9', u'lacounty:ain': u'7445005024'}
{u'building': u'house', u'lacounty:bld_id': u'468209734279', u'building:units': u'1', u'height': u'4.7', u'start_date': u'1987', u'ele': u'65.6', u'lacounty:ain': u'7445005024'}
{u'building': u'house', u'lacounty:bld_id': u'468388734278', u'building:units': u'1', u'height': u'5.5', u'start_date': u'1987', u'ele': u'62.4', u'lacounty:ain': u'7445005024'}
{u'building': u'house', u'lacounty:bld_id': u'468052734287', u'building:units': u'1', u'height': u'5.9', u'start_date': u'1987', u'ele': u'70.6', u'lacounty:ain': u'7445005024'}
{u'building': u'house', u'lacounty:bld_id': u'468101734287', u'building:units': u'1', u'height': u'4.8', u'start_date': u'1987', u'ele': u'68.2', u'lacounty:ain': u'7445005024'}
{u'building': u'house', u'lacounty:bld_id': u'467776734266', u'building:units': u'1', u'height': u'5.4', u'start_date': u'1987', u'ele': u'76.4', u'lacounty:ain': u'7445005024'}
{u'building': u'house', u'lacounty:bld_id': u'467747734128', u'building:units': u'1', u'height': u'4.7', u'start_date': u'1987', u'ele': u'76.7', u'lacounty:ain': u'7445005024'}
{u'building': u'house', u'lacounty:bld_id': u'467785734080', u'building:units': u'1', u'height': u'4.9', u'start_date': u'1987', u'ele': u'76.7', u'lacounty:ain': u'7445005024'}
{u'building': u'house', u'lacounty:bld_id': u'468272734292', u'building:units': u'1', u'height': u'5.7', u'start_date': u'1987', u'ele': u'64.9', u'lacounty:ain': u'7445005024'}
{u'building': u'house', u'lacounty:bld_id': u'467881734265', u'building:units': u'1', u'height': u'3.7', u'start_date': u'1987', u'ele': u'72.6', u'lacounty:ain': u'7445005024'}
{u'building': u'house', u'lacounty:bld_id': u'467991734294', u'building:units': u'1', u'height': u'4.8', u'start_date': u'1987', u'ele': u'71.1', u'lacounty:ain': u'7445005024'}
{u'building': u'house', u'lacounty:bld_id': u'468164734288', u'building:units': u'1', u'height': u'5.8', u'start_date': u'1987', u'ele': u'67.8', u'lacounty:ain': u'7445005024'}
{u'building': u'house', u'lacounty:bld_id': u'467945734282', u'building:units': u'1', u'height': u'4.7', u'start_date': u'1987', u'ele': u'72.6', u'lacounty:ain': u'7445005024'}
[407724160, 407724193, 407724207, 407724218, 407724241, 407724243, 407724246, 407724270, 407724302, 407724311, 407724338, 407724349, 407724352, 407724363, 407724383, 407724387, 407724400, 407724407, 407724414, 407724416, 407724424, 407724427, 407724435]
[]
{u'building': u'house', u'lacounty:bld_id': u'469738747539', u'building:units': u'1', u'height': u'9.9', u'start_date': u'2006', u'ele': u'31.9', u'lacounty:ain': u'7410005076'}
[407812764]
[]
{u'building': u'house', u'lacounty:bld_id': u'467893734057', u'building:units': u'1', u'height': u'7.9', u'start_date': u'1987', u'ele': u'78.7', u'lacounty:ain': u'7445005024'}
{u'building': u'house', u'lacounty:bld_id': u'468335734045', u'building:units': u'1', u'height': u'7.6', u'start_date': u'1987', u'ele': u'69.9', u'lacounty:ain': u'7445005024'}
{u'building': u'house', u'lacounty:bld_id': u'467942734167', u'building:units': u'1', u'height': u'7.8', u'start_date': u'1987', u'ele': u'77.9', u'lacounty:ain': u'7445005024'}
{u'building': u'house', u'lacounty:bld_id': u'467841734185', u'building:units': u'1', u'height': u'7.8', u'start_date': u'1987', u'ele': u'78.3', u'lacounty:ain': u'7445005024'}
{u'building': u'house', u'lacounty:bld_id': u'468241734167', u'building:units': u'1', u'height': u'8.4', u'start_date': u'1987', u'ele': u'69.4', u'lacounty:ain': u'7445005024'}
{u'building': u'house', u'lacounty:bld_id': u'468140734171', u'building:units': u'1', u'height': u'8.5', u'start_date': u'1987', u'ele': u'72.3', u'lacounty:ain': u'7445005024'}
{u'building': u'house', u'lacounty:bld_id': u'468127734044', u'building:units': u'1', u'height': u'7.4', u'start_date': u'1987', u'ele': u'73.7', u'lacounty:ain': u'7445005024'}
{u'building': u'house', u'lacounty:bld_id': u'468240734039', u'building:units': u'1', u'height': u'7.5', u'start_date': u'1987', u'ele': u'71.0', u'lacounty:ain': u'7445005024'}
{u'building': u'house', u'lacounty:bld_id': u'468008734044', u'building:units': u'1', u'height': u'7.4', u'start_date': u'1987', u'ele': u'75.5', u'lacounty:ain': u'7445005024'}
{u'building': u'house', u'lacounty:bld_id': u'468048734184', u'building:units': u'1', u'height': u'8.2', u'start_date': u'1987', u'ele': u'74.9', u'lacounty:ain': u'7445005024'}
{u'building': u'house', u'lacounty:bld_id': u'467838734294', u'building:units': u'1', u'height': u'6.0', u'start_date': u'1987', u'ele': u'75.9', u'lacounty:ain': u'7445005024'}
{u'building': u'house', u'lacounty:bld_id': u'468209734279', u'building:units': u'1', u'height': u'4.7', u'start_date': u'1987', u'ele': u'65.6', u'lacounty:ain': u'7445005024'}
{u'building': u'house', u'lacounty:bld_id': u'468388734278', u'building:units': u'1', u'height': u'5.5', u'start_date': u'1987', u'ele': u'62.4', u'lacounty:ain': u'7445005024'}
{u'building': u'house', u'lacounty:bld_id': u'468052734287', u'building:units': u'1', u'height': u'5.9', u'start_date': u'1987', u'ele': u'70.6', u'lacounty:ain': u'7445005024'}
{u'building': u'house', u'lacounty:bld_id': u'468101734287', u'building:units': u'1', u'height': u'4.8', u'start_date': u'1987', u'ele': u'68.2', u'lacounty:ain': u'7445005024'}
{u'building': u'house', u'lacounty:bld_id': u'467776734266', u'building:units': u'1', u'height': u'5.4', u'start_date': u'1987', u'ele': u'76.4', u'lacounty:ain': u'7445005024'}
{u'building': u'house', u'lacounty:bld_id': u'467747734128', u'building:units': u'1', u'height': u'4.7', u'start_date': u'1987', u'ele': u'76.7', u'lacounty:ain': u'7445005024'}
{u'building': u'house', u'lacounty:bld_id': u'467785734080', u'building:units': u'1', u'height': u'4.9', u'start_date': u'1987', u'ele': u'76.7', u'lacounty:ain': u'7445005024'}
{u'building': u'house', u'lacounty:bld_id': u'468272734292', u'building:units': u'1', u'height': u'5.7', u'start_date': u'1987', u'ele': u'64.9', u'lacounty:ain': u'7445005024'}
{u'building': u'house', u'lacounty:bld_id': u'467881734265', u'building:units': u'1', u'height': u'3.7', u'start_date': u'1987', u'ele': u'72.6', u'lacounty:ain': u'7445005024'}
{u'building': u'house', u'lacounty:bld_id': u'467991734294', u'building:units': u'1', u'height': u'4.8', u'start_date': u'1987', u'ele': u'71.1', u'lacounty:ain': u'7445005024'}
{u'building': u'house', u'lacounty:bld_id': u'468164734288', u'building:units': u'1', u'height': u'5.8', u'start_date': u'1987', u'ele': u'67.8', u'lacounty:ain': u'7445005024'}
{u'building': u'house', u'lacounty:bld_id': u'467945734282', u'building:units': u'1', u'height': u'4.7', u'start_date': u'1987', u'ele': u'72.6', u'lacounty:ain': u'7445005024'}
[407724160, 407724193, 407724207, 407724218, 407724241, 407724243, 407724246, 407724270, 407724302, 407724311, 407724338, 407724349, 407724352, 407724363, 407724383, 407724387, 407724400, 407724407, 407724414, 407724416, 407724424, 407724427, 407724435]
[]

In [11]:
def updateBuildings(ain):
    
    # start found and not found condo files
    k = open('condos-found.csv','a')
    j = open('condos-left.csv','a')
    
    h = open('condos-found.csv','r')
    foundAins = h.read().split(',')

    # check if already done
    if ain in foundAins:
        h.close()
        print ain + ' already done'
        return
    else:
        h.close()
    
    result = api.query("""[out:json][timeout:25];(way["lacounty:ain"="""+ain+"""];relation["lacounty:ain"="""+ain+"""];);out body;>;out skel qt;""")
            
    # safe spot to store ids
    ways = []
    relations = []
    
    # loop through both ways and relations
    for way in result.ways:
        if "building" in way.tags:
            ways.append(way.id)
            
    for relation in result.relations:
        if "building" in relation.tags:
            relations.append(relation.id)

    if len(ways) > 0 or len(relations) > 0:
        print ain + " has " + str(len(ways)+len(relations)) + " features"
        
        # open a changeset
        api2.ChangesetCreate({u"comment": u"Removing building:units from condo and adding apartments type https://github.com/osmlab/labuildings/blob/master/find-and-fix-condos.ipynb", u'source':'L.A. County Assessor https://data.lacounty.gov/Parcel-/Assessor-Parcels-Data-2015/hvzm-fn38', u'created_by':username})    

        # loop through the ways
        for way in ways:
            obj = api2.WayGet(way) # get object

            # delete unit count and change building to residential 
            if 'building:units' in obj['tag']:
                print obj['tag']['lacounty:ain'] + " WAY removing " + obj['tag']['building:units'] + " units from way:" + str(way)
                del obj['tag']['building:units']

            if obj['tag']['building'] != 'apartments':
                print obj['tag']['lacounty:ain'] + " updating " + obj['tag']['building'] + " to apartments way:" + str(way)
                obj['tag']['building'] = 'apartments'

            obj = api2.WayUpdate(obj) # update the object

            # wait a beat
            time.sleep(1)

        # loop through the relations
        for relation in relations:
            obj = api2.RelationGet(relation) # get object

            # delete unit count and change building to residential 
            if 'building:units' in obj['tag']:
                print obj['tag']['lacounty:ain'] + " RELATION removing " + obj['tag']['building:units'] + " units from relation:" + str(relation)
                del obj['tag']['building:units']

            if obj['tag']['building'] != 'apartments':
                print obj['tag']['lacounty:ain'] + " updating " + obj['tag']['building'] + " to apartments relation" + str(relation)
                obj['tag']['building'] = 'apartments'

            obj = api2.RelationUpdate(obj) # update the object

            # wait a beat
            time.sleep(1)            
            
        api2.ChangesetClose() # bye changeset!
        k.write(ain + ',') # add found ain to the file
        
    else:
        j.write(ain + ',') # add failing ain to condos-left.csv
        print "nothing found for " + ain
        
    j.close() # close the not found file
    # wait a beat
    time.sleep(1)

In [13]:
# api2.ChangesetClose()
# testing to update buildings
# api2.ChangesetClose()
# updateBuildings('7465001034')

for ain in ains[30:40]:
    updateBuildings(ain)
    time.sleep(1)


2027006020 already done
2027006034 has 1 features
''
2027006034 WAY removing 1 units from way:431197378
2027006034 updating house to apartments way:431197378
2027006041 has 1 features
2027006041 WAY removing 1 units from way:431196928
2027006041 updating house to apartments way:431196928
2027006045 has 1 features
2027006045 WAY removing 1 units from way:431197571
2027006045 updating house to apartments way:431197571
2027006047 has 1 features
2027006047 WAY removing 1 units from way:431197195
2027006047 updating house to apartments way:431197195
2027006060 has 2 features
2027006060 WAY removing 1 units from way:431197143
2027006060 updating house to apartments way:431197143
2027006060 WAY removing 1 units from way:431197356
2027006060 updating house to apartments way:431197356
2027006062 has 1 features
2027006062 WAY removing 1 units from way:431197592
2027006062 updating house to apartments way:431197592
2027006068 has 1 features
2027006068 WAY removing 1 units from way:431197402
2027006068 updating house to apartments way:431197402
2027006071 has 1 features
2027006071 WAY removing 1 units from way:431197658
2027006071 updating house to apartments way:431197658
2031002030 has 33 features
2031002030 WAY removing 1 units from way:430766435
2031002030 updating house to apartments way:430766435
2031002030 WAY removing 1 units from way:430766635
2031002030 updating house to apartments way:430766635
2031002030 WAY removing 1 units from way:430766643
2031002030 updating house to apartments way:430766643
2031002030 WAY removing 1 units from way:430766646
2031002030 updating house to apartments way:430766646
2031002030 WAY removing 1 units from way:430766648
2031002030 updating house to apartments way:430766648
2031002030 WAY removing 1 units from way:430766650
2031002030 updating house to apartments way:430766650
2031002030 WAY removing 1 units from way:430766652
2031002030 updating house to apartments way:430766652
2031002030 WAY removing 1 units from way:430766655
2031002030 updating house to apartments way:430766655
2031002030 WAY removing 1 units from way:430766657
2031002030 updating house to apartments way:430766657
2031002030 WAY removing 1 units from way:430766659
2031002030 updating house to apartments way:430766659
2031002030 WAY removing 1 units from way:430766661
2031002030 updating house to apartments way:430766661
2031002030 WAY removing 1 units from way:430766663
2031002030 updating house to apartments way:430766663
2031002030 WAY removing 1 units from way:430766665
2031002030 updating house to apartments way:430766665
2031002030 WAY removing 1 units from way:430766668
2031002030 updating house to apartments way:430766668
2031002030 WAY removing 1 units from way:430766670
2031002030 updating house to apartments way:430766670
2031002030 WAY removing 1 units from way:430766672
2031002030 updating house to apartments way:430766672
2031002030 WAY removing 1 units from way:430766676
2031002030 updating house to apartments way:430766676
2031002030 WAY removing 1 units from way:430766679
2031002030 updating house to apartments way:430766679
2031002030 WAY removing 1 units from way:430766681
2031002030 updating house to apartments way:430766681
2031002030 WAY removing 1 units from way:430766685
2031002030 updating house to apartments way:430766685
2031002030 WAY removing 1 units from way:430766687
2031002030 updating house to apartments way:430766687
2031002030 WAY removing 1 units from way:430766688
2031002030 updating house to apartments way:430766688
2031002030 WAY removing 1 units from way:430766690
2031002030 updating house to apartments way:430766690
2031002030 WAY removing 1 units from way:430766692
2031002030 updating house to apartments way:430766692
2031002030 WAY removing 1 units from way:430766694
2031002030 updating house to apartments way:430766694
2031002030 WAY removing 1 units from way:430766696
2031002030 updating house to apartments way:430766696
2031002030 WAY removing 1 units from way:430766698
2031002030 updating house to apartments way:430766698
2031002030 WAY removing 1 units from way:430766699
2031002030 updating house to apartments way:430766699
2031002030 WAY removing 1 units from way:430766778
2031002030 updating house to apartments way:430766778
2031002030 WAY removing 1 units from way:430766837
2031002030 updating house to apartments way:430766837
2031002030 WAY removing 1 units from way:430766839
2031002030 updating house to apartments way:430766839
2031002030 WAY removing 1 units from way:430766840
2031002030 updating house to apartments way:430766840
2031002030 WAY removing 1 units from way:430766842
2031002030 updating house to apartments way:430766842

In [ ]: