示例#1
0
def main(points_file):
    places = load_points(points_file)
    #random_place = dict([places.popitem()])
    random_place = discard_outliers(places)
    bbox = get_bbox_for_points(places)
    for obj in get_osm_ways(bbox):
        print obj.to_dict()
示例#2
0
def main(points_file):
    places = load_points(points_file)
    #random_place = dict([places.popitem()])
    random_place = discard_outliers(places)
    bbox = get_bbox_for_points(places)
    for obj in get_osm_ways(bbox):
        print obj.to_dict()
示例#3
0
    cur.execute("""select distinct(label, name) FROM votes v JOIN geoplanet_places ON label::int = woe_id WHERE id LIKE '%s%%'""" % (areaid))
    for row in cur:
        parts = row[0].split(',')
        place_id = parts[0][1:]
        name = (','.join(parts[1:])).replace('"', '').replace(')', '')
        print '%s %s' % (place_id, name)
        all_names[int(place_id)] = name
        count += 1
        if count % 1000 == 0:
            print >>sys.stderr, "\rRead %d names" % count
    print >>sys.stderr, "\rRead %d names" % count

    places = load_points(all_names.keys())
    for place_id in places:
        names[place_id] = all_names.get(place_id, "")
    places = discard_outliers(places)
    
    lines = []
    
    cur.execute("""select geom as geojson_geom FROM tabblock10 tb WHERE statefp10 = %s AND countyfp10 = %s AND blockce10 NOT LIKE '0%%'""", (statefp10, countyfp10))
    for r in cur:
      lines.append(wkb.loads(r[0].decode('hex')))
    blocks = [poly.__geo_interface__ for poly in lines]

if not os.path.exists(areaid + '.cache'):
    if do_cache:
      print >>sys.stderr, "Caching points, blocks, and names ..."
      pickle.dump((names, blocks, places), file(areaid + ".cache", "w"), -1)
    blocks = map(asShape, blocks)

points = []
示例#4
0
else:
    all_names = {}
    count = 0
    for line in file(name_file):
        place_id, name = line.strip().split(None, 1)
        all_names[int(place_id)] = name
        count += 1
        if count % 1000 == 0:
            print >> sys.stderr, "\rRead %d names from %s." % (count,
                                                               name_file),
    print >> sys.stderr, "\rRead %d names from %s." % (count, name_file)

    places = load_points(point_file)
    for place_id in places:
        names[place_id] = all_names.get(place_id, "")
    places = discard_outliers(places)

    lines = []
    do_polygonize = False
    print >> sys.stderr, "Reading lines from %s..." % line_file,
    for feature in geojson.loads(file(line_file).read()):
        if feature.geometry.type in ('LineString', 'MultiLineString'):
            do_polygonize = True
        lines.append(asShape(feature.geometry.to_dict()))
    print >> sys.stderr, "%d lines read." % len(lines)
    if do_polygonize:
        print >> sys.stderr, "Polygonizing %d lines..." % (len(lines)),
        blocks = [poly.__geo_interface__ for poly in polygonize(lines)]
        print >> sys.stderr, "%d blocks formed." % len(blocks)
    else:
        blocks = [poly.__geo_interface__ for poly in lines]
示例#5
0
                if count % 1000 == 0:
                    print >>sys.stderr, "\rRead %d names from %s." % (count, name_file),
        print >>sys.stderr, "\rRead %d names from %s." % (count, name_file)
    
        votes = load_points(point_file, name_filter)

        if verbose: 
            print >>sys.stderr, "votes: %s" % len(votes)
            print >>sys.stderr, "place_id: %s, pts: %s" % (place_id, place_id)
            for place_id, pts in votes:
                names[place_id] = all_names.get(place_id, "")
                for pt in pts:
                    pt_count += 1
            print >>sys.stderr, "pt_count: %s" % (pt_count)

        votes = discard_outliers(votes)
        
        lines = []
        do_polygonize = False
        print >>sys.stderr, "Reading lines from %s..." % line_file,
        for feature in geojson.loads(file(line_file).read())["features"]:
            if verbose: print >>sys.stderr, "\nfeature: %s" % feature,
            if feature["geometry"]["type"] in ('LineString', 'MultiLineString'):
                do_polygonize = True
            lines.append(asShape(feature["geometry"]))
        if verbose: print >>sys.stderr, "%d lines read." % len(lines)
        if do_polygonize:
            if verbose: print >>sys.stderr, "Polygonizing %d lines..." % (len(lines)),
            blocks = [poly.__geo_interface__ for poly in  polygonize(lines)]
            if verbose: print >>sys.stderr, "%d blocks formed." % len(blocks)
        else: