Ejemplo n.º 1
0
    def __init__(self, name=None, workspace=None, source=None, schema=None):
        if not workspace:
            from geoscript.workspace import Memory
            workspace = Memory()

        name = name if name else schema.name if schema else Layer._newname()

        if not source:
            layer = None
            try:
                layer = workspace.get(name)
            except KeyError:
                pass

            if not layer:
                if schema:
                    layer = workspace.create(schema.name, schema.fields)
                else:
                    layer = workspace.create(name)

            source = layer._source
        elif isinstance(source, FeatureCollection):
            source = CollectionDelegatingFeatureSource(source)

        self.workspace = workspace
        self.schema = schema or feature.Schema(ft=source.schema)
        self._source = source

        # keep a crs local to allow the native crs to be overriden, or to
        # provide a crs for layers that don't have one specified
        self._proj = None
Ejemplo n.º 2
0
    def __init__(self, name=None, workspace=None, fs=None, schema=None):
        if not workspace:
            from geoscript.workspace import Memory
            workspace = Memory()

        name = name or Layer._newname()

        if not fs:
            layer = None
            try:
                layer = workspace.get(name)
            except KeyError:
                pass

            if not layer:
                if schema:
                    layer = workspace.create(schema.name, schema.fields)
                else:
                    layer = workspace.create(name)

            fs = layer._source

        self.workspace = workspace
        self.schema = schema or feature.Schema(ft=fs.schema)
        self._source = fs

        # keep a crs local to allow the native crs to be overriden, or to
        # provide a crs for layers that don't have one specified
        self._proj = None
Ejemplo n.º 3
0
 def setUp(self):
     self.ws = Memory()
Ejemplo n.º 4
0
if __name__ == '__main__':

    # Get the arguments, naively
    script, shp_dir, config_file_name, out_file = sys.argv

    # Read the json config file
    f = open(config_file_name, 'r')
    config = json.load(f)

    # Create the workspaces
    in_ws = Directory(shp_dir)
    output_dir = out_file
    if not os.path.isdir(output_dir):
        os.mkdir(output_dir)
    out_ws = Directory(output_dir)
    mem_ws = Memory()

    # Show the layers are about to merge
    print in_ws.layers()

    # Init the output layer
    epsg4326 = Projection('epsg:4326')
    schema = Schema(out_file, [
        ('geom', getattr(geoscript.geom, config['geomtype']), epsg4326),
        ('type', str), ('name', str), ('agency', str)
    ])
    out_layer = Layer(schema=schema)
    try:
        out_layer = merge_shapefiles(config, out_layer)
        # Write it to the shape file
        out_ws.add(out_layer)
Ejemplo n.º 5
0
 def setUp(self):
     mem = Memory()
     self.l = mem.add(Shapefile('work/states.shp'))