Example #1
0
def vectorize_raster(source, gdal_band_number, target_vector_layer_filename, layer_name, field_name_of_layer):
    import os
    if os.path.isfile(source):
        ds = get_dataset(source)
    else:
        #TODO: test if is dataset
        LOGGER.info('dataset')
    projection_reference = ds.GetProjection()
    data_layer, ds_layer=create_empty_layer(target_vector_layer_filename, layer_name, projection_reference)
    band = ds.GetRasterBand(gdal_band_number)
    field = ogr.FieldDefn(field_name_of_layer, ogr.OFTInteger)
    data_layer.CreateField(field)
    return gdal.Polygonize(band, None, data_layer, 0, [])
Example #2
0
def vectorize_raster(source, gdal_band_number, target_vector_layer_filename, layer_name, field_name_of_layer):
    import os
    if os.path.isfile(source):
        ds = get_dataset(source)
    else:
        #TODO: test if is dataset
        LOGGER.info('dataset')
    projection_reference = ds.GetProjection()
    data_layer, ds_layer=create_empty_layer(target_vector_layer_filename, layer_name, projection_reference)
    band = ds.GetRasterBand(gdal_band_number)
    field = ogr.FieldDefn(field_name_of_layer, ogr.OFTInteger)
    data_layer.CreateField(field)
    return gdal.Polygonize(band, None, data_layer, 0, [])
Example #3
0
def write_C5_dataframe_to_shape(dataframe, shape_class, out_file):
    data_layer, ds_layer = create_empty_layer(out_file, 'export',
                                              shape_class.srid)
    fid = ogr.FieldDefn('gid', ogr.OFTInteger)
    data_layer.CreateField(fid)
    table_types = dataframe.dtypes
    table_columns = dataframe.columns
    geomcolumn = 'geom'
    for c in range(table_columns.shape[0]):
        dt = table_types[c]
        n = table_columns[c]
        if "float" in str(dt):
            FieldType = ogr.OFTReal
        elif "int" in str(dt):
            FieldType = ogr.OFTInteger
        elif "object" in str(dt):
            FieldType = ogr.OFTString
        else:
            FieldType = ogr.OFTString
        fd = ogr.FieldDefn(n, FieldType)
        if not n == geomcolumn:
            data_layer.CreateField(fd)
    for i in range(dataframe.shape[0]):
        data = dataframe.iloc[i].values
        feature = ogr.Feature(data_layer.GetLayerDefn())
        gfi = feature.GetFieldIndex('gid')
        feature.SetField(gfi, i + 1)
        for c in range(table_columns.shape[0]):
            d = data[c]
            n = table_columns[c]
            if n == geomcolumn:
                feature.SetGeometry(ogr.CreateGeometryFromWkt(d))
            else:
                gfi = feature.GetFieldIndex(n)
                feature.SetField(gfi, str(d))
            data_layer.CreateFeature(feature)
        feature.Destroy()
        data_source = None
Example #4
0
def write_C5_dataframe_to_shape(dataframe, shape_class, out_file):
    data_layer, ds_layer = create_empty_layer(out_file, 'export', shape_class.srid)
    fid = ogr.FieldDefn('gid', ogr.OFTInteger)
    data_layer.CreateField(fid) 
    table_types = dataframe.dtypes
    table_columns = dataframe.columns   
    geomcolumn = 'geom'     
    for c in range(table_columns.shape[0]):
        dt = table_types[c]
        n = table_columns[c]
        if "float" in str(dt) :
            FieldType = ogr.OFTReal
        elif "int" in str(dt)  :
            FieldType = ogr.OFTInteger 
        elif "object" in str(dt)  :
            FieldType = ogr.OFTString 
        else:
            FieldType = ogr.OFTString 
        fd = ogr.FieldDefn(n, FieldType) 
        if not n ==  geomcolumn: 
            data_layer.CreateField(fd) 
    for i in range(dataframe.shape[0]):
        data = dataframe.iloc[i].values
        feature = ogr.Feature(data_layer.GetLayerDefn())
        gfi = feature.GetFieldIndex('gid')
        feature.SetField(gfi, i+1)
        for c in range(table_columns.shape[0]):
            d = data[c]
            n = table_columns[c]
            if n ==  geomcolumn:
                feature.SetGeometry(ogr.CreateGeometryFromWkt(d))
            else:
                gfi = feature.GetFieldIndex(n)
                feature.SetField(gfi, str(d))
            data_layer.CreateFeature(feature)  
        feature.Destroy()      
        data_source = None