Esempio n. 1
0
def import_blocks_from_shapefiles(edges, featnames, faces, place, city=None,
                                  fix_cities=False, regenerate_intersections=True,
                                  reset=False,
                                  ):
    # File args are paths to zip files.
    outdir = mkdtemp(suffix='-block-shapefiles')
    try:
        try:
            for path in (edges, featnames, faces, place):
                ZipFile(path, 'r').extractall(outdir)
        except Exception:
            # TODO: display error in UI
            logger.exception('Extracting zipfile failed')
            raise

        edges = glob.glob(os.path.join(outdir, '*edges.shp'))[0]
        featnames = glob.glob(os.path.join(outdir, '*featnames.dbf'))[0]
        faces = glob.glob(os.path.join(outdir, '*faces.dbf'))[0]
        place = glob.glob(os.path.join(outdir, '*place*.shp'))[0]
        tiger = TigerImporter(
            edges,
            featnames,
            faces,
            place,
            filter_city=city,
            fix_cities=fix_cities,
            reset=reset,
            )
        num_created = tiger.save()
    finally:
        shutil.rmtree(outdir)

    if regenerate_intersections:
        populate_streets_task()
    return num_created
Esempio n. 2
0
def import_blocks_from_shapefiles(
    edges, featnames, faces, place, city=None, fix_cities=False, regenerate_intersections=True
):
    # File args are paths to zip files.

    outdir = mkdtemp(suffix="-block-shapefiles")
    try:
        for path in (edges, featnames, faces, place):
            ZipFile(path, "r").extractall(outdir)
    except:
        # TODO: display error in UI
        logger.exception("Extracting zipfile failed")
        shutil.rmtree(outdir)
        raise
    finally:
        os.unlink(edges)
        os.unlink(featnames)
        os.unlink(faces)
        os.unlink(place)
    try:
        edges = glob.glob(os.path.join(outdir, "*edges.shp"))[0]
        featnames = glob.glob(os.path.join(outdir, "*featnames.dbf"))[0]
        faces = glob.glob(os.path.join(outdir, "*faces.dbf"))[0]
        place = glob.glob(os.path.join(outdir, "*place.shp"))[0]
        tiger = TigerImporter(edges, featnames, faces, place, filter_city=city, fix_cities=fix_cities)
        num_created = tiger.save()
    finally:
        shutil.rmtree(outdir)
    if regenerate_intersections:
        populate_streets_task()
    return num_created
    def import_blocks(self):
        # Now we load the blocks table.
        print "Importing blocks, this may take several minutes ..."

        importer = TigerImporter(
            '%s/%s.shp' % (self.zip_dir, self.datafiles['edges']['file_name']),
            '%s/%s.dbf' % (self.zip_dir, self.datafiles['featnames']['file_name']),
            '%s/%s.dbf' % (self.zip_dir, self.datafiles['faces']['file_name']),
            '%s/%s.shp' % (self.zip_dir, self.datafiles['place']['file_name']),
            fix_cities=True,
            encoding='utf8',
            filter_bounds=self.county_location.location)
        num_created, num_updated = importer.save()
        print "Created %d blocks, updated %d" % (num_created, num_updated)
Esempio n. 4
0
def import_blocks_from_shapefiles(edges,
                                  featnames,
                                  faces,
                                  place,
                                  city=None,
                                  fix_cities=False,
                                  regenerate_intersections=True):
    # File args are paths to zip files.

    outdir = mkdtemp(suffix='-block-shapefiles')
    try:
        for path in (edges, featnames, faces, place):
            ZipFile(path, 'r').extractall(outdir)
    except:
        # TODO: display error in UI
        log_exception()
        shutil.rmtree(outdir)
        raise
    finally:
        os.unlink(edges)
        os.unlink(featnames)
        os.unlink(faces)
        os.unlink(place)
    try:
        edges = glob.glob(os.path.join(outdir, '*edges.shp'))[0]
        featnames = glob.glob(os.path.join(outdir, '*featnames.dbf'))[0]
        faces = glob.glob(os.path.join(outdir, '*faces.dbf'))[0]
        place = glob.glob(os.path.join(outdir, '*place.shp'))[0]
        tiger = TigerImporter(
            edges,
            featnames,
            faces,
            place,
            filter_city=city,
            fix_cities=fix_cities,
        )
        num_created = tiger.save()
    finally:
        shutil.rmtree(outdir)
    if regenerate_intersections:
        populate_streets_task()
    return num_created