Multi-parties vers une partie (Gestion des données)
Récapitulatif
Crée une classe d'entités qui contient des entités en une partie générée en séparant des entités multi-parties en entrée.
Illustration
![]() |
Utilisation
-
Les attributs des entités en entrée seront conservés dans la classe d'entités points en sortie. Un nouveau champ, ORIG_FID, sera ajouté à la classe d'entités en sortie et défini sur les identifiants d'entité en entrée.
-
Chaque partie d'une entité en entrée multi-parties deviendra une entité mono-partie individuelle dans la classe d'entités en sortie. Les entités qui sont déjà en une seule partie ne seront pas affectées.
-
La plupart des types d'entité en sortie seront les mêmes qu'en entrée (les polygones en entrée restent des polygones, les lignes en entrée restent des lignes). La seule exception concerne les entités en entrée de type multi-points, pour lesquelles la classe d'entités en sortie sera de type point.
-
Pour reconstruire des entités multi-parties à partir d'entités en une partie en fonction d'une valeur de champ commun, comme ORIG_FID, utilisez l'outil Fusionner.
Syntaxe
| Paramètre | Explication | Type de données |
in_features |
Entités en entrée qui peuvent être de tout type. | Feature Layer |
out_feature_class |
Classe d'entités en sortie contenant des entités qui varient avec le type d'entité en entrée. | Feature Class |
Exemple de code
Le script de fenêtre Python suivant montre comment utiliser la fonction MultipartToSinglepart en mode immédiat.
import arcpy
from arcpy import env
env.workspace = "C:/data"
arcpy.MultipartToSinglepart_management("landuse.shp",
"c:/output/output.gdb/landuse_singlepart")
Le script autonome suivant dessous est un exemple d'application simple de la fonction MultipartToSinglepart dans un environnement de scripts.
# Name: MultipartToSinglepart_Example2.py
# Description: Break all multipart features into singlepart features,
# and report which features were separated.
# Author: ESRI
# import system modules
import arcpy
from arcpy import env
# Set environment settings
env.workspace = "C:/data/landcovers.gdb"
# Create variables for the input and output feature classes
inFeatureClass = "vegetation"
outFeatureClass = "vegetation_singlepart"
# Use error trapping in case a problem occurs when running the tool
try:
# Run the tool to create a new fc with only singlepart features
arcpy.MultipartToSinglepart_management(inFeatureClass,outFeatureClass)
# Check if there is a different number of features in the output
# than there was in the input
# Get the results of GetCount for input and output
resultIn = arcpy.GetCount_management(inFeatureClass)
resultOut = arcpy.GetCount_management(outFeatureClass)
if (resultIn.getOutput(0) == resultOut.getOutput(0)):
print "The number of features in the input is the same as in the output," +\
"so no multipart features were found"
else:
# If there is a difference, print out the FID of the input features
# which were multipart
arcpy.Frequency_analysis(outFeatureClass, outFeatureClass + "_freq",
"ORIG_FID")
# Use a search cursor to go through the table, and print the ORIG_FID
print "Here are the FIDs of all the multipart features from " + inFeatureClass
rows = arcpy.SearchCursor(outFeatureClass + "_freq", "\"FREQUENCY\" > 1")
row = rows.next()
while row:
print int(row.ORIG_FID)
row = rows.next()
except Exception, e:
# If an error occurred, print line number and error message
import traceback, sys
tb = sys.exc_info()[2]
print "Line %i" % tb.tb_lineno
print e.message
