您好,欢迎访问三七文档
当前位置:首页 > 行业资料 > 其它行业文档 > ARCGIS10栅格计算PYTHON代码
使用python语言进行栅格计算1重采样通过更改像元大小和重采样方法来更改栅格数据集用法:1)可更改像元大小,但栅格数据集的范围将保持不变。2)本工具仅能输出方形像元大小。3)可将输出保存为BIL、BIP、BMP、BSQ、DAT、GIF、GRID、IMG、JPEG、JPEG2000、PNG、TIFF格式或任意地理数据库栅格数据集。4)有四个用于重采样技术参数的选项:“最邻近”选项,用于执行最邻近分配法,是速度最快的插值方法。此选项主要用于离散数据(如土地使用分类),因为它不会更改像元的值。最大空间误差将是像元大小的一半。“众数”选项,用于执行众数算法,可根据过滤器窗口内的最常用值确定像元的新值。与最邻近法一样,此选项主要用于离散数据;但与“最邻近”选项相比,“众数”选项通常可生成更平滑的结果。“双线性”选项,用于执行双线性插值法,可根据四个最邻近输入像元中心的加权平均距离确定像元的新值。此选项用于连续数据,并会生成平滑的数据。“三次”选项,用于执行三次卷积插值法,可通过拟合穿过16个最邻近输入像元中心的平滑曲线确定像元的新值。此选项适用于连续数据,尽管所生成的输出栅格可能会包含输入栅格范围以外的值。与通过运行最邻近重采样算法获得的栅格相比,输出栅格的几何变形程度较小。“三次”选项的缺点是需要更多的处理时间。在某些情况下,此选项会使输出像元值位于输入像元值范围之外。如果无法接受此结果,请转而使用“双线性”选项。“双线性”或“三次”选项不得用于分类数据,因为像元值可能被更改。5)输出栅格数据集的左下角与输入栅格数据集的左下角具有相同的地图空间坐标位置。语法:Resample_management(in_raster,out_raster,{cell_size},{resampling_type})实例:#Resampletry:importarcpyarcpy.env.workspace=rD:/work##ResampleTIFFimagetoahigherresolutionarcpy.Resample_management(aa.tif,resample3.tif,4.0e-006,CUBIC)#{NEAREST最邻近|BILINEAR双线性|CUBIC三次|MAJORITY众数}except:printResampleexamplefailed.printarcpy.GetMessages()2加逐个像元地将两个栅格的值相加(求和)或与一定的数值相加。语法:Plus_3d(in_raster_or_constant1,in_raster_or_constant2,out_raster)实例:#Name:jia.py#Description:Addsthevaluesoftworastersonacell-by-cellbasis.#Requirements:3DAnalystExtension#Author:ESRI#Importsystemmodulesimportarcpyfromarcpyimportenv#Setenvironmentsettingsenv.workspace=D:/work#SetlocalvariablesinRaster=bb.tifinConstant=100#CheckouttheArcGI3DAnalystextensionlicensearcpy.CheckOutExtension(3D)#ExecutePlusarcpy.Plus_3d(inRaster,inConstant,D:/work/output3.tif)结果:将栅格数据bb中每个像元的值加上100得到新的栅格数据3减逐个像元地从第一个输入栅格的值中减去第二个输入栅格的值或减去一个确定的数值。语法:Minus_3d(in_raster_or_constant1,in_raster_or_constant2,out_raster)实例:#Name:jian.py#Description:Addsthevaluesoftworastersonacell-by-cellbasis.#Requirements:3DAnalystExtension#Author:ESRI#Importsystemmodulesimportarcpyfromarcpyimportenv#Setenvironmentsettingsenv.workspace=D:/work#SetlocalvariablesinRaster1=output.tifinRaster2=output4.tif#CheckouttheArcGI3DAnalystextensionlicensearcpy.CheckOutExtension(3D)#ExecutePlusarcpy.Minus_3d(inRaster1,inRaster2,D:/work/output6.tif)结果:对栅格数据output.tif进行与output4.tif逐个像元值的减法运算得出新的栅格数据。4乘将两个栅格的值逐个像元地相乘或乘以一个定值。语法:Times_3d(in_raster_or_constant1,in_raster_or_constant2,out_raster)实例:#Name:cheng.py#Description:Multipliesthevaluesoftworastersonacell-by-cellbasis.#Requirements:3DAnalystExtension#Author:ESRI#Importsystemmodulesimportarcpyfromarcpyimportenv#Setenvironmentsettingsenv.workspace=D:/work#SetlocalvariablesinRaster=output.tifinConstant=2#CheckouttheArcGIS3DAnalystextensionlicensearcpy.CheckOutExtension(Spatial)#ExecuteTimesarcpy.Times_3d(inRaster,inConstant,D:/work/timesout2.tif)结果:逐个将每个像元值乘以2输出新的栅格。5除将两个栅格的值逐个像元地相除或除以一个定值。当一个数除以零时,输出结果为NoData。输入的数据类型将决定输出的数据类型:如果两个输入均为整数,则将执行整数除法,并且输出结果为整数。例如,如果3除以2,则输出为1。如果两个输入中的任何一个为浮点型,则将执行浮点型除法,并且输出结果也为浮点型值。例如,如果3除以2.0,则输出为1.5。语法:Divide_3d(in_raster_or_constant1,in_raster_or_constant2,out_raster)实例:#Name:chu.py#Description:Dividesthevaluesoftworastersonacell-by-cellbasis#Requirements:3DAnalystExtension#Author:ESRI#Importsystemmodulesimportarcpyfromarcpyimportenv#Setenvironmentsettingsenv.workspace=D:/work#SetlocalvariablesinRaster1=timesout2.tifinRaster2=output.tif#CheckouttheArcGIS3DAnalystextensionlicensearcpy.CheckOutExtension(3D)#ExecuteDividearcpy.Divide_3d(inRaster1,inRaster2,D:/work/outdivide.tif)结果:将timesout2.tif逐个像元的与output.tif的像元值相除输出新栅格。6转为整型通过截断将栅格的每个单元值转换为整型。1输入值可为正数,也可为负数。2如果相比于截断更希望采用舍入方式,则请在执行操作之前添加0.5个输入栅格。3整型栅格值的最大支持范围是从-2,147,483,648(由2的31次确定的最小值)到2,147,483,647(由2的31次减去1确定的最大值)。如果将转为整型用在浮点型栅格上,且该浮点型栅格具有所含值超出该范围的像元,则这些像元在输出栅格中的值将为NoData。4将分类(离散)数据作为整型栅格存储所占用的磁盘空间要明显少于将同样的信息作为浮点型栅格存储所占用的磁盘空间。如有可能,建议使用该工具将浮点型栅格转换为整型。语法:Int_3d(in_raster_or_constant,out_raster)实例:#Name:int.py#Description:Convertseachcellvalueofarastertoanintegerbytruncation#Requirements:3DAnalystExtension#Author:ESRI#Importsystemmodulesimportarcpyfromarcpyimportenv#Setenvironmentsettingsenv.workspace=D:/work#SetlocalvariablesinRaster=timesout1.tif#CheckouttheArcGIS3DAnalystextensionlicensearcpy.CheckOutExtension(3D)#ExecuteIntarcpy.Int_3d(inRaster,D:/work/outint.tif)7转为浮点型将每个栅格像元的值转换为浮点型表达形式。1输入值可为正数,也可为负数。2如果对已经是浮点型的输入执行转为浮点型操作,则输出值将与输入值相同。语法:Float_3d(in_raster_or_constant,out_raster)实例:#Name:float.py#Description:Convertseachcellvalueofarasterintoafloating-pointrepresentation#Requirements:SpatialAnalystExtension#Author:ESRI#Importsystemmodulesimportarcpyfromarcpyimportenvfromarcpy.saimport*#Setenvironmentsettingsenv.workspace=D:/work#SetlocalvariablesinRaster=outint.tif#CheckouttheArcGISSpatialAnalystextensionlicensearcpy.CheckOutExtension(Spatial)#ExecuteFloatoutFloat=Float(inRaster)#SavetheoutputoutFloat.save(D:/work/outfloat.tif)
本文标题:ARCGIS10栅格计算PYTHON代码
链接地址:https://www.777doc.com/doc-5160447 .html