有一个代码:
from arcpy.sa import *
arcpy.CheckOutExtension("Spatial")
print "Creating and defining X and Y coordinates:" #set env properties
env.workspace = r"C:\Users\Desktop\data\new"
env.overwriteOutput = 1
theme = '/watersheds_3D.shp' #polygons in vector format
demName = '/demlab4' # raster of DEM
rasObject = Raster(demName)
my_extent = rasObject.extent #find a grid cell size:
my_cellsize = (rasObject.meanCellHeight + rasObject.meanCellWidth)/2
print my_cellsize
slope_deg = Slope(demName)
slope_deg.save('/demlab4_slope')
for row in arcpy.da.SearchCursor(theme, ["FID","SHAPE@"]): # inside shp file -
print ("Polygon # {}: ".format(row[0]))
for part in row[1]: # Inside the polygon
xCoords = []
yCoords = []
zCoords = []
for pnt in part:
print (" {}, {}, {} ".format(pnt.X, pnt.Y, pnt.Z))
xCoords.append(pnt.X)
yCoords.append(pnt.Y)
zCoords.append(pnt.Z)
area3D = lab4_arcpy_module.define3Darea(my_cellsize, slope_deg)
函数来计算:
^{pr2}$它给出:TypeError:需要一个float。 有什么问题?在
还需要计算每个多边形内的三维面积(4)。怎么做?在
我发现打印loss时出错,因此:
弄错了,还不明白这是为什么。在
不确定
Raster
和Slope
在做什么,但是当您试图对一个非float类型的变量进行一些浮点运算时,TypeError: a float is required
就会出现。我猜问题出在:slope_deg
变量上。请看这里:您正在使用
^{pr2}$slope_deg
变量声明并执行一些操作。现在在这个声明中:您使用的变量是
Slope
类的实例,而不是浮点变量。要么必须有这个(Slope
)的某个属性,即float
,要么必须使用正确的变量。在相关问题 更多 >
编程相关推荐