tifi文件的最小像素和最大值。在
我使用的是GetMaximum()和GetMinimum()方法,但是它们没有返回任何结果,因此我得到的错误是:
TypeError: unsupported operand type(s) for -: 'NoneType' and 'NoneType'
in文件是用于测试的小型tif光栅。我确实得到了同样的错误,其他光栅实际上只是在几天前工作。在
这就是我一直在尝试的:
from osgeo import gdal
driver = gdal.GetDriverByName('GTiff')
in_file = gdal.Open("L8_field.tif")
band1 = in_file.GetRasterBand(1)
barray = band1.ReadAsArray()
# Getting the interval value and setting the classes
max_value = band1.GetMaximum()
min_value = band1.GetMinimum()
tot_classes = 5
class_1 = class_x + min_value
class_x = (max_value - min_value) / tot_classes
class_2 = (class_x * 2) + min_value
class_3 = (class_x * 3) + min_value
class_4 = (class_x * 4) + min_value
class_5 = max_value
...
我用这个来分类光栅。所以有更多的代码对它进行了分类。这个片段是为了获取相等的间隔。在
我错过了什么?在
我不知道为什么}返回{}。也许在GTiff可以动态访问该值之前,需要计算光栅属性表?在
RasterBand.GetMaximum()
和{您可以对
numpy.ndarray
变量barray
执行类似的操作。在这里明显的问题是如果nodata值是min或max,在这种情况下,它将返回给您不满意的结果。陆地卫星的nodata=0。在
您可以通过创建一个掩码数组并使用掩码数组的
^{pr2}$min
和max
方法来解决这个问题。在为了让gdal的.GetMinimum()&;.GetMaximum()返回值,首先必须计算频带上的统计信息。否则,它将显示为“无”。至少,这是我对Sentine1雷达图像和干涉图的经验。
一些示例代码。
相关问题 更多 >
编程相关推荐