Python的渔网生成工具。属性表操作

输入渔网的面如图

然后加入工具进行提取,结果如下

并且属性表有生成矩形重心点坐标

其中的Python代码为

import arcpy
from arcpy import env
# Set environment settings
env.workspace = "C:/"

# Set local variables
in_table = arcpy.GetParameterAsText(0)#格子面featureLayer
ShpX = arcpy.GetParameterAsText(1)#矩形的宽度(米)Double
ShpY = arcpy.GetParameterAsText(2)#矩形的高度(米)Double
field_nameleftdownX = "ldownX"
field_nameleftdownY = "ldownY"
field_nameleftupX = "lupX"
field_nameleftupY = "lupY"
field_namerightdownX = "rdownX"
field_namerightdownY = "rdownY"
field_namerightupX = "rupX"
field_namerightupY = "rdownY"
field_nameCenterX = "CenterX"
field_nameCenterY = "CenterY"
field_nameArea = "ShpArea"

arcpy.AddField_management(in_table, field_nameCenterX, "DOUBLE")#增加字段,中X
arcpy.AddField_management(in_table, field_nameCenterY, "DOUBLE")#增加字段,中Y
arcpy.AddField_management(in_table, field_nameArea, "DOUBLE")#增加字段,每个矩形的面积


arcpy.CalculateField_management (in_table, field_nameCenterX, "!shape.trueCentroid.X!","PYTHON_9.3")#增加字段中
arcpy.CalculateField_management (in_table, field_nameCenterY, "!shape.trueCentroid.Y!","PYTHON_9.3")#增加字段中
arcpy.CalculateField_management (in_table, field_nameArea, "!shape.Area@kilometers!","PYTHON_9.3")#计算单个矩形面积

cursor = arcpy.UpdateCursor(in_table)
#cursor = arcpy.UpdateCursor("FishNetResult")
for row in cursor:
	if row.getValue ("ShpArea") < float(ShpX) * float(ShpY) * 0.97:
		cursor.deleteRow (row)
# Delete cursor and row objects
del  row,cursor

转载自:https://mtr-1.oss-cn-beijing.aliyuncs.com/qyblog/2019/04/50084361.jpg

You may also like...