Python band.ReadAsArray返回“;1e和x2B;37“;在格达尔

Python band.ReadAsArray返回“;1e和x2B;37“;在格达尔,python,gis,gdal,qgis,Python,Gis,Gdal,Qgis,我有一份grd档案。qgis工具信息显示如下: 我正在创建一个脚本来读取光栅带: from osgeo import gdal import osr filename=r'C:\temp\Myfile.grd' ds = gdal.Open(filename) x = 0 # origin coordinate y = 0 # origin coordinate for b in range(ds.RasterCount): band = ds.GetRasterBand(b+1)

我有一份grd档案。qgis工具信息显示如下:

我正在创建一个脚本来读取光栅带:

from osgeo import gdal
import osr

filename=r'C:\temp\Myfile.grd'
ds = gdal.Open(filename)
x = 0 # origin coordinate
y = 0 # origin coordinate
for b in range(ds.RasterCount):
    band = ds.GetRasterBand(b+1)
    print("band" + str(b+1))
    array = band.ReadAsArray(x,y,1,1)
    print(array)
脚本输出如下:

我想知道为什么band4返回“1e+37”,而不是空值或无值。
有人能告诉我如何在这里获取null或空字符串吗?

我发现,它是一个没有数据值的屏蔽数组。 下面的代码可以删除它

    array = band.ReadAsArray(0, 0, 1, 1) # origin lat lon
    value = array[0, 0]
    if value == ds.GetRasterBand(4).GetNoDataValue():
        value = "No Data"

还可以尝试打印band.nodata。