了解“镶嵌到新栅格”的最小值和最大值吗?


14

我必须从以下来源将多个DEM栅格合并为一个:http : //srtm.csi.cgiar.org/SELECTION/inputCoord.asp,因此我使用了“镶嵌到新栅格”工具。

我设置了工具:

  1. 我输入了栅格(全部来自相同的源,相同的大小且没有投影);
  2. 设置像素类型(与原始栅格中一样为32位浮点);
  3. 将像元大小设置为原始栅格;
  4. 带数= 1作为原始栅格;马赛克运算符,我已经用BLEND和MEAN完成了(我得到了相同的结果)。

我遇到的问题是,生成的镶嵌图显示的最大值和最小值范围与单个栅格的最大值和最小值不同,例如,栅格1(-5123.8,23.25),栅格2(-5974.6,40.09),栅格3 (-57770.2,38),栅格4(-2534.3、23.55)和最终镶嵌栅格(-5975.8,81.1)。

我猜这种解决方案是不正确的,至少我没想到会得到这种解决方案。任何人都知道是否可以,如果不可以,如何解决并获得具有正确的最大和最小值的合适的镶嵌栅格?

我正在使用ArcGIS 10.2.2 for Desktop。


您能否告诉我们如何找到输入和输出栅格的统计信息?有时,出于效率考虑,ArcGIS会作弊并仅使用数据的一部分来估计统计信息。特别是,这意味着在报告最小值和最大值时可能会相去甚远。
ub

感谢您的关注。我右键单击该图层(初始栅格和镶嵌),然后查看“属性”。值得一提的是,我已经检查过将Symbology中每个栅格的值从Streched切换为Unique值,结果发现,如果我为所有图层切换为Streched值,那么它将与一层和最大从另一个的最大拉伸值,到创建镶嵌时看到的最小和最大值。任何人都可以解释一下该过程是否仍然正确,以及Streched和Uniques值之间的这些差异吗?谢谢!
汤姆(Tom)2015年

2
我怀疑“属性”标签正在作弊。有关更多信息,请参见gis.stackexchange.com/questions/8780
ub

1
谢谢。从来没有想过“属性”选项卡作弊的可能性。如果我们知道为单个栅格图层在ArcGIS中为Symbology中的Streched和Unique值提供不同值的原因,则可以澄清这一点。有人会知道为什么吗?
汤姆(Tom)2015年

Answers:


10

正如胡布指出的那样,通常在栅格属性中找到的统计信息有时是近似的或过时的。它们是预定的属性,可能会误导实际的栅格值。

使用NumPy数组,从100%的实际数据中计算出自己的最小值/最大值。请参阅在ArcGIS中使用NumPyRasterToNumPyArray(arcpy)。例如:

import arcpy

inrast = r'C:\data\inRaster.tif'
my_array = arcpy.RasterToNumPyArray(inrast)
print((my_array.min(), my_array.max()))

如果缺少值(NODATA),则需要一个掩码数组以获取正确的统计信息:

import numpy as np
my_array = arcpy.RasterToNumPyArray(inrast)
my_masked_array = np.ma.masked_equal(my_array, arcpy.Raster(inrast).noDataValue)
print((my_masked_array.min(), my_masked_array.max()))

而且,您不需要ArcGIS即可将栅格作为NumPy数组读取。例如GDAL或rasterio可以做类似的事情


6

正如其他答复所说,统计数据可能已过时。如果您更喜欢使用ArcGIS,请尝试使用“数据管理”工具箱中的“计算统计信息”工具。这应该为您更新统计信息。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.