mirror of
https://github.com/django/django.git
synced 2025-10-24 22:26:08 +00:00
Fixed #26415 -- Allowed deleting nodata value on GDALBands.
This commit is contained in:
committed by
Tim Graham
parent
a7c813ba04
commit
f1db8c36e9
@@ -62,6 +62,10 @@ get_band_ds = voidptr_output(std_call('GDALGetBandDataset'), [c_void_p])
|
||||
get_band_datatype = int_output(std_call('GDALGetRasterDataType'), [c_void_p])
|
||||
get_band_nodata_value = double_output(std_call('GDALGetRasterNoDataValue'), [c_void_p, POINTER(c_int)])
|
||||
set_band_nodata_value = void_output(std_call('GDALSetRasterNoDataValue'), [c_void_p, c_double])
|
||||
if GDAL_VERSION >= (2, 1):
|
||||
delete_band_nodata_value = void_output(std_call('GDALDeleteRasterNoDataValue'), [c_void_p])
|
||||
else:
|
||||
delete_band_nodata_value = None
|
||||
get_band_statistics = void_output(
|
||||
std_call('GDALGetRasterStatistics'),
|
||||
[
|
||||
|
||||
@@ -151,9 +151,14 @@ class GDALBand(GDALBase):
|
||||
"""
|
||||
Sets the nodata value for this band.
|
||||
"""
|
||||
if not isinstance(value, (int, float)):
|
||||
raise ValueError('Nodata value must be numeric.')
|
||||
capi.set_band_nodata_value(self._ptr, value)
|
||||
if value is None:
|
||||
if not capi.delete_band_nodata_value:
|
||||
raise ValueError('GDAL >= 2.1 required to delete nodata values.')
|
||||
capi.delete_band_nodata_value(self._ptr)
|
||||
elif not isinstance(value, (int, float)):
|
||||
raise ValueError('Nodata value must be numeric or None.')
|
||||
else:
|
||||
capi.set_band_nodata_value(self._ptr, value)
|
||||
self._flush()
|
||||
|
||||
def datatype(self, as_string=False):
|
||||
|
||||
Reference in New Issue
Block a user