Ошибка кодирования - кодек 'ascii' не может быть декодирован.Python 2 - PullRequest
0 голосов
/ 24 февраля 2019

Я использую функцию 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.Я буду счастлив, чтобы решить.Спасибо

...