【栅格】如何确保裁剪前后的栅格像素深度或者栅格颜色保持一致


如何确保裁剪前后的栅格像素深度保持一致

Data Management Tools——Raster——Raster Processing——Clip

Spatial Analyst Tools——Extraction ——Extract by Mask

使用Clip工具,在工具的界面中会有设置Nodata值的位置,而Extract byMask中则没有。再看得到的结果呢,对于一个8bit的栅格数据,clip的结果仍然是8bit,而extract的结果就会变成16bit原因就是执行clip时,不管mask是什么形状,工具中只会使用到envelope的坐标,这样得到的结果就是一个标准的矩形。而使用extract工具时,为了保留mask的准确的形状,在envelope内mask外的值需要标记为NoData,Unsigned8bit栅格的值的范围是0~255,nodata的值只能是255以外的某个值了,导致的结果就是会使用一个16bit的栅格来记录这个裁剪的结果。

方法一:只能牺牲掉裁切的部分中个数最少的那类象元值做nodata了。用arctoolbox里的set null工具,将选定(个数最少的那类象元值)的值设为nodata,然后再裁剪。

方法二:查找0-255之间是否有没有用过的值,如果有,以此值存储Nodata值,保证位数不改变。在Clip工具的可选参数中可以设置:NoData Value (optional)

All the pixels with the specified value will be set to NoData in the output raster dataset.

如何确保裁剪前后的栅格颜色保持一致

使用clip工具或使用Extract by Mask,裁剪后的栅格颜色与原始的不同?

有两个原因,

首先,是裁剪后像元值发生变化导致;

其次,是拉伸方式和统计值不同导致。只要保证像元值和拉伸方式完全相同,问题即可解决。

(1)在使用裁剪时,在环境变量里设置Snap Raster为原始DEM,保证裁剪后的像元值和原始DEM一致。——>像元值不变

(2)将裁剪后的DEM和裁剪前的DEM使用相同的拉伸方式和统计值——>拉伸方式、统计值

在DEM图层右键,打开symbology,使用standard deviation,统计值选择自定义,然后将当前statics使用save as XML导出为display.stat.xml。

在裁剪后的图层上右键,打开symbology,使用standard deviation,统计值选择自定义,然后使用LoadXML导入刚才生成的原始DEM的统计值display.stat.xml。之后,对比两幅DEM,颜色上完全相同。

之后,对比两幅DEM,颜色上完全相同。

栅格影像数据此方法也同样试用。