我正在尝试使用ArcPy自动执行点数据的某些空间连接,包括设置场图和编辑mergeRule。我想做什么:
这是我尝试过的:
import os.path
fc = arcpy.GetParameterAsText(0)
fc_points = arcpy.GetParameterAsText(1)
workspace = arcpy.GetParameterAsText(2)
joining_fields = arcpy.GetParameterAsText(3)
fields_sequence = joining_fields.split(";")
outfc_location = arcpy.GetParameterAsText(4)
outfc_name = arcpy.GetParameterAsText(5)
outfc= os.path.join(outfc_location,outfc_name)
#-------------------------------------------------------------------------------
fms = arcpy.FieldMappings()
fms.addTable(joinFeatures)
fields_to_delete = [f.name for f in fms.fields if f.name not in fields_sequence]
for field in fields_to_delete:
fms.removeFieldMap(fms.findFieldMapIndex(field))
fms_out = arcpy.FieldMappings()
fms_out.addTable(targetFeatures)
for field in fields_sequence:
mapping_index = fms.findFieldMapIndex(field)
field_map = fms.fieldMappings[mapping_index]
field_map.mergeRule = 'Mean'
fms_out.addFieldMap(field_map)
arcpy.SpatialJoin_analysis(targetFeatures, joinFeatures, outfc,join_operation='JOIN_ONE_TO_ONE',join_type='KEEP_ALL',
field_mapping=fms_out,match_option='WITHIN',
search_radius=2,distance_field_name=None)
join_specific_fields_all_mean(fc,fc_points,joining_fields,workspace, outfc)
可悲的是它没有返回任何错误。似乎可以正确地加入第一个功能,然后将其余所有功能都留空。