Merge pull request #1687 from davemfish/bugfix/1686-gdal-310
Workaround for GDAL 3.10 compatibility
This commit is contained in:
commit
8a93cf9771
|
@ -2093,11 +2093,10 @@ def _write_supply_demand_vector(source_aoi_vector_path, feature_attrs,
|
||||||
Returns:
|
Returns:
|
||||||
``None``
|
``None``
|
||||||
"""
|
"""
|
||||||
source_vector = ogr.Open(source_aoi_vector_path)
|
gdal.VectorTranslate(
|
||||||
driver = ogr.GetDriverByName('GPKG')
|
target_aoi_vector_path, source_aoi_vector_path,
|
||||||
driver.CopyDataSource(source_vector, target_aoi_vector_path)
|
format='GPKG',
|
||||||
source_vector = None
|
preserveFID=True)
|
||||||
driver = None
|
|
||||||
|
|
||||||
target_vector = gdal.OpenEx(target_aoi_vector_path, gdal.GA_Update)
|
target_vector = gdal.OpenEx(target_aoi_vector_path, gdal.GA_Update)
|
||||||
target_layer = target_vector.GetLayer()
|
target_layer = target_vector.GetLayer()
|
||||||
|
|
|
@ -1758,10 +1758,9 @@ def _calculate_land_to_grid_distance(
|
||||||
# Copy the point vector
|
# Copy the point vector
|
||||||
_, driver_name = _get_file_ext_and_driver_name(
|
_, driver_name = _get_file_ext_and_driver_name(
|
||||||
target_land_vector_path)
|
target_land_vector_path)
|
||||||
base_land_vector = ogr.Open(base_land_vector_path, gdal.OF_VECTOR)
|
gdal.VectorTranslate(
|
||||||
driver = ogr.GetDriverByName(driver_name)
|
target_land_vector_path, base_land_vector_path,
|
||||||
driver.CopyDataSource(base_land_vector, target_land_vector_path)
|
format=driver_name)
|
||||||
base_land_vector = None
|
|
||||||
|
|
||||||
target_land_vector = gdal.OpenEx(
|
target_land_vector = gdal.OpenEx(
|
||||||
target_land_vector_path, gdal.OF_VECTOR | gdal.GA_Update)
|
target_land_vector_path, gdal.OF_VECTOR | gdal.GA_Update)
|
||||||
|
|
|
@ -931,14 +931,8 @@ class CoastalVulnerabilityTests(unittest.TestCase):
|
||||||
REGRESSION_DATA, 'coastal_exposure.gpkg')
|
REGRESSION_DATA, 'coastal_exposure.gpkg')
|
||||||
|
|
||||||
# This input gets modified in place, so first copy to working dir
|
# This input gets modified in place, so first copy to working dir
|
||||||
# I'm using GPKG driver to copy because that driver may have problems
|
base_shore_point_vector = gdal.OpenEx(base_vector_path, gdal.OF_VECTOR)
|
||||||
# updating a file created by a different GPKG driver version, and the
|
gdal.VectorTranslate(target_point_vector_path, base_shore_point_vector)
|
||||||
# version used is dependent on GDAL version.
|
|
||||||
# https://gdal.org/drivers/vector/gpkg.html
|
|
||||||
base_shore_point_vector = ogr.Open(base_vector_path)
|
|
||||||
gpkg_driver = ogr.GetDriverByName('GPKG')
|
|
||||||
gpkg_driver.CopyDataSource(
|
|
||||||
base_shore_point_vector, target_point_vector_path)
|
|
||||||
|
|
||||||
coastal_vulnerability.calculate_final_risk(
|
coastal_vulnerability.calculate_final_risk(
|
||||||
target_point_vector_path, target_point_csv_path)
|
target_point_vector_path, target_point_csv_path)
|
||||||
|
@ -968,17 +962,9 @@ class CoastalVulnerabilityTests(unittest.TestCase):
|
||||||
# This gpkg has a feature with an empty field value for 'R_slr'
|
# This gpkg has a feature with an empty field value for 'R_slr'
|
||||||
# The function modifies the file in place, so copy to test workspace
|
# The function modifies the file in place, so copy to test workspace
|
||||||
# first.
|
# first.
|
||||||
|
|
||||||
# I'm using GPKG driver to copy because that driver may have problems
|
|
||||||
# updating a file created by a different GPKG driver version, and the
|
|
||||||
# version used is dependent on GDAL version.
|
|
||||||
# https://gdal.org/drivers/vector/gpkg.html
|
|
||||||
base_vector_path = os.path.join(
|
base_vector_path = os.path.join(
|
||||||
REGRESSION_DATA, 'test_missing_values.gpkg')
|
REGRESSION_DATA, 'test_missing_values.gpkg')
|
||||||
base_shore_point_vector = ogr.Open(base_vector_path)
|
gdal.VectorTranslate(target_vector_path, base_vector_path)
|
||||||
gpkg_driver = ogr.GetDriverByName('GPKG')
|
|
||||||
gpkg_driver.CopyDataSource(
|
|
||||||
base_shore_point_vector, target_vector_path)
|
|
||||||
|
|
||||||
coastal_vulnerability.calculate_final_risk(
|
coastal_vulnerability.calculate_final_risk(
|
||||||
target_vector_path, target_csv_path)
|
target_vector_path, target_csv_path)
|
||||||
|
|
|
@ -904,8 +904,14 @@ class UNATests(unittest.TestCase):
|
||||||
from natcap.invest import urban_nature_access
|
from natcap.invest import urban_nature_access
|
||||||
args = _build_model_args(self.workspace_dir)
|
args = _build_model_args(self.workspace_dir)
|
||||||
|
|
||||||
|
admin_vector = gdal.OpenEx(args['admin_boundaries_vector_path'])
|
||||||
|
admin_layer = admin_vector.GetLayer()
|
||||||
|
fid = admin_layer.GetNextFeature().GetFID()
|
||||||
|
admin_layer = None
|
||||||
|
admin_vector = None
|
||||||
|
|
||||||
feature_attrs = {
|
feature_attrs = {
|
||||||
0: {
|
fid: {
|
||||||
'my-field-1': float(1.2345),
|
'my-field-1': float(1.2345),
|
||||||
'my-field-2': numpy.float32(2.34567),
|
'my-field-2': numpy.float32(2.34567),
|
||||||
'my-field-3': numpy.float64(3.45678),
|
'my-field-3': numpy.float64(3.45678),
|
||||||
|
@ -924,10 +930,10 @@ class UNATests(unittest.TestCase):
|
||||||
vector = gdal.OpenEx(target_vector_path)
|
vector = gdal.OpenEx(target_vector_path)
|
||||||
self.assertEqual(vector.GetLayerCount(), 1)
|
self.assertEqual(vector.GetLayerCount(), 1)
|
||||||
layer = vector.GetLayer()
|
layer = vector.GetLayer()
|
||||||
self.assertEqual(len(layer.schema), len(feature_attrs[0]))
|
self.assertEqual(len(layer.schema), len(feature_attrs[fid]))
|
||||||
self.assertEqual(layer.GetFeatureCount(), 1)
|
self.assertEqual(layer.GetFeatureCount(), 1)
|
||||||
feature = layer.GetFeature(0)
|
feature = layer.GetFeature(fid)
|
||||||
for field_name, expected_field_value in feature_attrs[0].items():
|
for field_name, expected_field_value in feature_attrs[fid].items():
|
||||||
self.assertEqual(
|
self.assertEqual(
|
||||||
feature.GetField(field_name), expected_field_value)
|
feature.GetField(field_name), expected_field_value)
|
||||||
finally:
|
finally:
|
||||||
|
|
Loading…
Reference in New Issue