ArcPy中用于空间连接的字段映射:为所有连接字段设置合并规则

时间:2019-06-18 15:33:48

标签: python arcpy arcmap

我正在尝试使用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)

可悲的是它没有返回任何错误。似乎可以正确地加入第一个功能,然后将其余所有功能都留空。

0 个答案:

没有答案