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
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