Suite

Mappage de champ de jointure spatiale dans ArcPy ?

Mappage de champ de jointure spatiale dans ArcPy ?


Je sais qu'il y a déjà des articles sur ce sujet, j'ai essayé de trouver une solution à mon propre problème mais le code pour la cartographie des champs est très complexe pour moi.

J'ai un raster 100x100m et des couches de points que je souhaite joindre à l'aide d'un script python. J'ai besoin de la SOMME d'un champ appelé "poids" (couche de points) ajoutée à la grille, mais je ne sais pas comment définir le mappage du champ.

Jusqu'à présent, le script ressemble à ceci (mais ne résume pas mon champ de poids):

importer arcpy depuis arcpy importer env env.workspace = r"C:UsersDanielaDesktop	est" fc_list = arcpy.ListFeatureClasses() pour fc dans fc_list : arcpy.SpatialJoin_analysis("grid100.shp",fc,"C: /Users/Daniela/Desktop/test/test" + "_" + str(fc),"JOIN_ONE_TO_ONE","KEEP_ALL","sum","INTERSECT","","")

Les mappages de champs sont assez lourds dans ArcGIS. Vous créez d'abord un objet fieldmappings, puis créez un fieldmap, puis ajoutez des champs d'entrée et définissez des champs de sortie. En outre, vous pouvez ajouter la table entière au mappage comme :

myMapping = arcpy.FieldMappings() myMapping.addTable(path_to_the_table) arcpy.Append_management(fc, fc_out, "NO_TEST", myMapping)

J'ai trouvé l'exemple suivant que j'ai utilisé il y a quelque temps lors de la création de mappages personnalisés :

in_file1 = 'data.gdb/Trees' in_file2 = 'Plants.shp' output_file = 'data.gdb/Vegetation' # Créez les objets FieldMap et FieldMappings requis. fm_type = arcpy.FieldMap() fm_diam = arcpy.FieldMap() fms = arcpy.FieldMappings() # Récupère les noms de champ du type et du diamètre de la végétation pour les deux fichiers originaux. tree_type = "Tree_Type" plant_type = "Plant_Type" tree_diam = "Tree_Diameter" plant_diam = "Diameter" # Ajouter des champs à leurs objets FieldMap correspondants. fm_type.addInputField(in_file1, tree_type) fm_type.addInputField(in_file2, plant_type) fm_diam.addInputField(in_file1, tree_diam) fm_diam.addInputField(in_file2, plant_diam) # Définir les propriétés du champ de sortie pour les deux objets FieldMap. type_name = fm_type.outputField type_name.name = 'Veg_Type' fm_type.outputField = type_name diam_name = fm_diam.outputField diam_name.name = 'Veg_Diam' fm_diam.outputField = diam_name # Ajoutez les objets FieldMapping à l'objet FieldMapping. fms.addFieldMap(fm_type) fms.addFieldMap(fm_diam) # Fusionnez les deux classes d'entités. arcpy.Merge_management([in_file1, in_file2], output_file, fms)

Voir la vidéo: Arcgis: Merge the raster datasets fusionner raster arcgis Mosaic raster dataset ArcGIS