作者:天山金泉 | 来源:互联网 | 2022-12-26 13:57
数据库操作类真的没有必要自己去写,因为成熟的类库真的非常完善了,拿来直接用就好,省时省力。本文就为大家介绍微软官方的程序PetShop4.0中的SqlHelper类,先来做一下简单的介绍,PetShop是一个范例,微软用它来展示.Net企业系统开发的能力。那Sq
简单来说,我没找到直接能用代码调用ArcGIS栅格计算器的方法。
要实现一个二项式的计算,需要一步一步用 ArcToolBox 里 math 里提供的函数进行。
例如:
要对栅格像元进行: R e s u l t = − 0.0005 ∗ D N 2 + 1.1469 ∗ D N + 2.0217 Result = -0.0005*DN^2+1.1469*DN+2.0217 Result=−0.0005∗DN2+1.1469∗DN+2.0217
这个可以分成4步计算
第一步: 计算DN*DN 用到 Times 这个函数,保存计算结果为A
第二步 :计算-0.0005 *DN^2 同样用到 Times这个函数,
Times(A,-0.0005) 保存计算结果为B
第三步:计算 一次项 1.1469*DN 同样 Times 结果为C
第四步:加和 A+B+C+2.0217
代码如下:
import arcpy,os,globfrom arcpy import envfrom arcpy.sa import *arcpy.CheckOutExtension("spatial")env.overwriteOutput=1arcpy.env.workspace = "E:/test/inputs/" # 设置工作空间inputs = arcpy.ListRasters("*","tif") #遍历栅格图像for i in inputs: print i name = i[0:7].encode('ascii') #取文件名前7个字符 ercifangname = 'E:/test/outputs/ercifang/'+name+'_ercifang'+'.tif' ercifang = Times(i,i) ercifang.save(ercifangname) canshu1 = Times(ercifangname,一分快三技巧准确率100om arcpy import envfrom arcpy.sa import *arcpy.CheckOutExtension("spatial")env.overwriteOutput=1arcpy.env.workspace = "E:/test/inputs/" # 设置工作空间inputs = arcpy.ListRasters("*","tif") #遍历栅格图像for i in inputs: print i name = i[0:7].encode('ascii') #取文件名前7个字符 ercifangname = 'E:/test/outputs/ercifang/'+name+'_ercifang'+'.tif' ercifang = Times(i,i) ercifang.save(ercifangname) canshu1 = Times(ercifangname,-0.0005) canshu1name = 'E:/test/outputs/canshu1/'+name+'_canshu1'+'.tif' canshu1.save(canshu1name) canshu2 = Times(i,1.1469) canshu2name = 'E:/test/outputs/canshu2/'+name+'_canshu1'+'.tif' canshu2.save(canshu2name) canshu3 = canshu1+canshu2+2.0217 canshu3name = 'E:/test/outputs/canshu3/'+name+'_canshu1'+'.tif' canshu3.save(canshu3name) outint = Int(canshu3name) # 将栅格浮点数转为整形,这样才有属性表以及可以转换成矢量面,方便后续计算。 用到 Int()这个函数 outintname = 'E:/test/outputs/outint/'+name+'_outint'+'.tif' outint.save(outintname)