为什么需要浮动?

2024-06-28 20:47:43 发布

您现在位置:Python中文网/ 问答频道 /正文

有一个代码:

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)。怎么做?在


Tags: inenvformatformysloperowprint
2条回答

我发现打印loss时出错,因此:

print ("Model paramters:" )      
print ("Weight:%f" %sess.run(W))
print ("bias:%f" %sess.run(b))
#print ("loss:%f" %(loss)) <   

弄错了,还不明白这是为什么。在

不确定RasterSlope在做什么,但是当您试图对一个非float类型的变量进行一些浮点运算时,TypeError: a float is required就会出现。我猜问题出在:slope_deg变量上。请看这里:

slope_deg = Slope(demName)
slope_deg.save('/demlab4_slope')

您正在使用slope_deg变量声明并执行一些操作。现在在这个声明中:

^{pr2}$

您使用的变量是Slope类的实例,而不是浮点变量。要么必须有这个(Slope)的某个属性,即float,要么必须使用正确的变量。在

相关问题 更多 >