示例#1
0
 def fp_reader(fp):
     memfile = MemoryFile(fp.read())
     dataset = memfile.open()
     try:
         yield dataset
     finally:
         dataset.close()
         memfile.close()
示例#2
0
 def fp_reader(fp):
     memfile = MemoryFile(fp.read())
     dataset = memfile.open()
     try:
         yield dataset
     finally:
         dataset.close()
         memfile.close()
示例#3
0
文件: __init__.py 项目: levnoah/bvr
 def fp_writer(fp):
     memfile = MemoryFile()
     dataset = memfile.open(
         driver=driver, crs=crs, schema=this_schema, layer=layer,
         encoding=encoding, enabled_drivers=enabled_drivers,
         crs_wkt=crs_wkt, **kwargs)
     try:
         yield dataset
     finally:
         dataset.close()
         memfile.seek(0)
         fp.write(memfile.read())
         memfile.close()
示例#4
0
 def fp_writer(fp):
     memfile = MemoryFile()
     dataset = memfile.open(
         driver=driver, crs=crs, schema=schema, layer=layer,
         encoding=encoding, enabled_drivers=enabled_drivers,
         **kwargs)
     try:
         yield dataset
     finally:
         dataset.close()
         memfile.seek(0)
         fp.write(memfile.read())
         memfile.close()
示例#5
0
文件: __init__.py 项目: pmav99/Fiona
 def fp_reader(fp):
     memfile = MemoryFile(fp.read())
     dataset = memfile.open(driver=driver,
                            crs=crs,
                            schema=schema,
                            layer=layer,
                            encoding=encoding,
                            enabled_drivers=enabled_drivers,
                            **kwargs)
     try:
         yield dataset
     finally:
         dataset.close()
         memfile.close()
示例#6
0
class VectorWindowMemoryFile():
    """Context manager around fiona.io.MemoryFile."""
    def __init__(self, tile=None, features=None, schema=None, driver=None):
        """Prepare data & profile."""
        self.tile = tile
        self.schema = schema
        self.driver = driver
        self.features = features

    def __enter__(self):
        """Open MemoryFile, write data and return."""
        self.fio_memfile = MemoryFile()
        with self.fio_memfile.open(schema=self.schema,
                                   driver=self.driver,
                                   crs=self.tile.crs) as dst:
            dst.writerecords(self.features)
        return self.fio_memfile

    def __exit__(self, *args):
        """Make sure MemoryFile is closed."""
        self.fio_memfile.close()
示例#7
0
class VectorWindowMemoryFile():
    """Context manager around fiona.io.MemoryFile."""

    def __init__(
        self, tile=None, features=None, schema=None, driver=None
    ):
        """Prepare data & profile."""
        self.tile = tile
        self.schema = schema
        self.driver = driver
        self.features = features

    def __enter__(self):
        """Open MemoryFile, write data and return."""
        if self.driver.lower() == "geobuf":
            import geobuf
            return geobuf.encode(
                dict(
                    type="FeatureCollection",
                    features=[dict(f, type="Feature") for f in self.features]
                )
            )
        else:
            self.fio_memfile = MemoryFile()
            with self.fio_memfile.open(
                schema=self.schema,
                driver=self.driver,
                crs=self.tile.crs
            ) as dst:
                dst.writerecords(self.features)
            return self.fio_memfile.getbuffer()

    def __exit__(self, *args):
        """Make sure MemoryFile is closed."""
        try:
            self.fio_memfile.close()
        except AttributeError:
            pass