def export_checks_from_db_to_gpkg(settings):
    """
    Export check files with sewerage background layers into a geopackage
    """

    # Create output geopackage datasource
    if os.path.isfile(settings.gpkg_output_layer):
        os.remove(settings.gpkg_output_layer)
    gpkg_out_source = None  # create variable for datasource creation later
    gpkg_out_source = DRIVER_OGR_GPKG.CreateDataSource(
        settings.gpkg_output_layer)

    # Create link with database
    in_source = set_ogr_connection_pg_database(settings)

    all_layers_in_source = []
    for i in in_source:
        layer_name = i.GetName()
        if not layer_name in all_layers_in_source:
            all_layers_in_source.append(layer_name)

    available_chk_layers_in_source = [
        l for l in all_layers_in_source if ("chk." in l or "model." in l)
    ]

    for in_layer_name in available_chk_layers_in_source:
        print(in_layer_name)
        copy2ogr(in_source, in_layer_name, gpkg_out_source, in_layer_name)
 def test_01_copy2ogr_shp2pg(self):
     file_with_extention = basename(SHP_ABSPATH)
     filename, file_extension = os.path.splitext(file_with_extention)
     in_source = set_ogr_connection(SHP_ABSPATH)
     out_source = set_ogr_connection_pg_database(self.settings)
     copy2ogr(in_source, filename, out_source, "test")
     assert self.db.get_count("test") == 79
 def test_copy2pg_database_no_features(self):
     sql = "CREATE TABLE test_no_count AS SELECT 1::integer as id LIMIT 0;"
     self.db.execute_sql_statement(sql, fetch=False)
     in_source = set_ogr_connection_pg_database(self.settings)
     out_source = in_source
     copy2ogr(in_source, "test_no_count", out_source, "test_no_count_2")
     assert self.db.get_count("test_no_count_2") == 0
 def test_01_copy2ogr_shp2gpkg(self):
     file_with_extention = basename(SHP_ABSPATH)
     filename, file_extension = os.path.splitext(file_with_extention)
     in_source = set_ogr_connection(SHP_ABSPATH)
     copy2ogr(in_source, filename, self.gpkg_source, "test_shp_gpkg")
     feature_count = self.gpkg_source.GetLayerByName(
         "test_shp_gpkg").GetFeatureCount()
     assert feature_count == 79
 def test_02_copy2ogr_pg2shp(self):
     in_source = set_ogr_connection_pg_database(self.settings)
     if os.path.isfile(SHP_OUT_ABSPATH):
         DRIVER_OGR_SHP.DeleteDataSource(SHP_OUT_ABSPATH)
     out_source = None
     out_source = DRIVER_OGR_SHP.CreateDataSource(SHP_OUT_ABSPATH)
     copy2ogr(in_source, "test", out_source, "test")
     assert os.path.getsize(SHP_OUT_ABSPATH) == 2312
 def test_copy2pg_database_no_ds_raise(self):
     in_source = set_ogr_connection_pg_database(self.settings)
     out_source = in_source
     with pytest.raises(ValueError):
         copy2ogr(in_source,
                  "not_existing",
                  out_source,
                  "test_2",
                  schema="src")
def create_point_sample_layer(
    settings,
    conn,
    input_point_layer,
    output_point_layer,
    output_schema,
    output_raster_column,
):
    copy2ogr(conn,
             input_point_layer,
             conn,
             output_point_layer,
             schema=output_schema)
    target_layer = conn.GetLayerByName(output_schema + "." +
                                       output_point_layer)

    target_field = ogr.FieldDefn(str(output_raster_column), ogr.OFTReal)
    target_layer.CreateField(target_field)
    return target_layer
Exemple #8
0
def import_file_based_on_filetype(settings, file_path, out_name):
    """
        Check file type and send request to copy to database function
    """

    if not os.path.isfile(file_path):
        logger.error("File %s does not exists " % file_path)
        raise FileNotFoundError()

    # prepare file import
    file_with_extention = basename(file_path)
    filename, file_extension = os.path.splitext(file_with_extention)
    out_source = set_ogr_connection_pg_database(settings)

    if file_extension.lower() == ".shp":
        in_source = set_ogr_connection(file_path)
        copy2ogr(in_source, filename, out_source, out_name, schema="src")
        in_source.Destroy()
    else:
        logger.error(
            "File extension of %s is not supported by this tool, please use .shp"
            % file_path)
        raise AttributeError()
 def test_02_copy2ogr_pg2pg(self):
     in_source = set_ogr_connection_pg_database(self.settings)
     out_source = in_source
     copy2ogr(in_source, "test", out_source, "test_2", schema="src")
     assert self.db.get_count("test_2", schema="src") == 79
 def test_02_copy2ogr_pg2gpkg(self):
     in_source = set_ogr_connection_pg_database(self.settings)
     copy2ogr(in_source, "test", self.gpkg_source, "test_pg_gpkg")
     feature_count = self.gpkg_source.GetLayerByName(
         "test_pg_gpkg").GetFeatureCount()
     assert feature_count == 79