Я использую функцию GDAL для изменения значений растра.По какой-то причине все работало, и внезапно я получаю сообщение об ошибке:
UnicodeDecodeError: кодек «ascii» не может декодировать байт 0xe2 в позиции 46: порядковый номер не в диапазоне (128)
Я проверил и обнаружил, что соответствующая строка, которая генерирует ошибку в коде, такова:
dst_ds=driver.Create(nameToSave, tableshape[1], tableshape[0], 1, gdal.GDT_Float32)
Эта функция содержит строку:
def NDVI(red, nir, nameToSave):
red=gdal.Open(red)
if red is None:
sys.exit(1)
r=np.array(red.GetRasterBand(1).ReadAsArray(), dtype=float)
nir=gdal.Open(nir)
if nir is None:
sys.exit(1)
n=np.array(nir.GetRasterBand(1).ReadAsArray(), dtype=float)
geotr=red.GetGeoTransform()
proj=red.GetProjection()
tableshape=r.shape
np.seterr(divide='ignore', invalid='ignore')
calc=(n-r)/(n+r)
driver=gdal.GetDriverByName('GTiff')
dst_ds=driver.Create(nameToSave, tableshape[1], tableshape[0], 1, gdal.GDT_Float32)
dst_ds.SetGeoTransform(geotr)
dst_ds.SetProjection(proj)
dst_ds.GetRasterBand(1).WriteArray(calc)
return 1
Iиспользуйте Anaconda и Python 2.7.Я буду счастлив, чтобы решить.Спасибо