FieldMappings
Zusammenfassung
Das FieldMappings-Objekt ist eine Sammlung von FieldMap-Objekten und wird als Parameterwert für Werkzeuge für die Feldzuordnung verwendet, beispielsweise "Zusammenführen" (Merge).
Beschreibung
Das FieldMappings-Objekt ist eine Sammlung von FieldMap-Objekten und wird als Parameterwert für Werkzeuge für die Feldzuordnung verwendet, beispielsweise Zusammenführen (Merge). Sie können am einfachsten mit diesen Objekten arbeiten, indem Sie zuerst ein FieldMappings-Objekt erstellen und dann die zugehörigen FieldMap-Objekte initialisieren, indem Sie die zu kombinierenden Eingabe-Feature-Classes oder Tabellen hinzufügen. Wenn alle Eingaben bereitgestellt wurden, enthält das FieldMappings-Objekt ein FieldMap-Objekt (bzw. ein Ausgabefeld) für jeden eindeutigen Feldnamen aus allen Eingaben. Sie können diese Liste ändern, indem Sie neue Felder hinzufügen, die Eigenschaften und/oder den Inhalt von Ausgabefeldern ändern oder unerwünschte Ausgabefelder entfernen.
Die Eigenschaften des FieldMap-Objekts enthalten die Anfangs- und die Endposition eines Eingabetextwertes, sodass ein neuer Ausgabewert mit einem Teil eines Eingabewertes erstellt werden kann. Wenn ein FieldMap-Objekt mehrere Eingabefelder aus derselben Tabelle oder Feature-Class enthält, werden die Werte aller Datensätze unter Verwendung der Eigenschaft MergeRule zusammengeführt. Dies ist eine benutzerfreundliche Möglichkeit zum Verbinden von Werten, beispielsweise eines Straßennamens in einem Feld und einer Straßenart, die in einem anderen Feld enthalten ist (z. B. "Eureka" und "Street"). Der joinDelimiter-Eigenschaft eines FieldMap-Objekts wird verwendet, wenn der mergeRule-Wert Join angegeben wird. Als Trennzeichen können beliebige Zeichen verwendet werden, beispielsweise Leerzeichen. Im obigen Beispiel würde damit der Wert "Eureka Street" erstellt.
Syntax
Eigenschaften
Eigenschaft | Erläuterung | Datentyp |
fieldCount (Nur lesen) |
The number of output fields. | Integer |
fieldValidationWorkspace (Lesen und schreiben) |
The workspace type that defines the rules for attribute field naming. These rules are used when determining the output field names, which are based on the names of the input fields. For example, setting the fieldValidationWorkspace property to the path of a folder on disk containing the input shapefiles will result in the output field names being truncated to 10 characters. Setting the fieldValidationWorkspace property to the path of a file geodatabase will allow for much longer field names. The fieldValidationWorkspace property should be set with a consideration for the output format. | String |
fields (Nur lesen) |
A Python List that contains a list of field objects. Each field object represents the properties of each output field. | Field |
Methodenübersicht
Methode | Erläuterung |
addFieldMap (field_map) |
Add a field map to the field mappings. |
addTable (table_dataset) |
Adds a table to the field mappings object. |
exportToString () |
Exports the object to its string representation. |
findFieldMapIndex (field_map_name) |
Find a field map within the field mappings by name. |
getFieldMap (index) |
Gets a field map from the field mappings. |
loadFromString (string) |
Restore the object using its string representation. The exportToString method can be used to create a string representation. |
removeAll () |
Removes all values and creates an empty object. |
removeFieldMap (index) |
Removes a field map from the field mappings. |
replaceFieldMap (index, value) |
Replace a field map within the field mappings. |
Methoden
Parameter | Erläuterung | Datentyp |
field_map |
The field map to add to the field mappings | FieldMap |
Parameter | Erläuterung | Datentyp |
table_dataset |
The table to add to the field mappings object. | String |
Datentyp | Erläuterung |
String |
The string representation of the object. |
Parameter | Erläuterung | Datentyp |
field_map_name |
Find the field map by name. | String |
Datentyp | Erläuterung |
Integer |
The index position of the field map. |
Parameter | Erläuterung | Datentyp |
index |
The index position of the field map. | Integer |
Datentyp | Erläuterung |
FieldMap |
The field map from the field mappings. |
Parameter | Erläuterung | Datentyp |
string |
The string representation of the object. | String |
Parameter | Erläuterung | Datentyp |
index |
The index position of the field map. | Integer |
Parameter | Erläuterung | Datentyp |
index |
The index position of the field map to be replaced. | Integer |
value |
The replacement field map. | FieldMap |
Codebeispiel
import arcpy from arcpy import env # Input feature classes contain a PID field that is a composite of # the Township, Range, Section, QuarterSection, Block, Lot, and SubLot values. # We need to define how to break the PID field into two fields: TWNSHIP and BLOCK, # then run the Merge tool. # PID field and field map. # 1 1 1 1 1 1 1 # 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 # +-------------------------------+ # |2|0|3|0|8|2|1|0|0|1|0|0|5|0|0|0| # +-------------------------------+ # +---TWNSHIP---+-------BLOCK-----+ infc1 = "C:/Data/NewParcels.shp" infc2 = "Parcels" outfc = "Parcels_Merge" # Create a fieldmappings object and two fieldmap objects # fieldmappings = arcpy.FieldMappings() fldmap_TWNSHIP = arcpy.FieldMap() fldmap_BLOCK = arcpy.FieldMap() # Create a value table to hold names of input feature classes for Merge tool. # vt = arcpy.ValueTable() # Add all fields from first input feature class to fieldmappings object # AddTable is the most efficient way. # fieldmappings.addTable(infc1) # Add the TWNSHIP and BLOCK field from the first input feature class # to fieldmap object. # fldmap_TWNSHIP.addInputField(infc1) fldmap_BLOCK.addInputField(infc1) vt.addRow(infc1) # Add all fields from second input feature class to fieldmappings object # env.workspace = "C:/Data/Boulder.gdb" fieldmappings.addTable(infc2) # Add the TWNSHIP and BLOCK field from the second input feature class # to fieldmap object. # fldmap_TWNSHIP.addInputField(infc2) fldmap_BLOCK.addInputField(infc2) vt.addRow(infc2) # Set the starting and ending positions of the input field in the fieldmap. # This is for TWNSHIP for x in range(0, fldmap_TWNSHIP.inputFieldCount): fldmap_TWNSHIP.setStartTextPosition(x, 0) fldmap_TWNSHIP.setEndFieldPosition(x, 6) # Set the starting and ending positions of the input field in the fieldmap. # This is for BLOCK for x in range(0, fldmap_BLOCK.inputFieldCount): fldmap_BLOCK.setStartTextPosition(x, 7) fldmap_BLOCK.setEndFieldPosition(x, 15) # Get the new field object from fieldmap, set field name, place back in fieldmap. # fld_TWNSHIP = fldmap_TWNSHIP.outputField fld_TWNSHIP.name = "TWNSHIP" fldmap_TWNSHIP.outputField = fld_TWNSHIP fld_BLOCK = fldmap_BLOCK.outputField fld_BLOCK.name = "BLOCK" fldmap_BLOCK.outputField = fld_BLOCK # Add the new fieldmap object to fieldmappings object. fieldmappings.addFieldMap(fldmap_TWNSHIP) fieldmappings.addFieldMap(fldmap_BLOCK) #Run the Merge tool arcpy.Merge_management(vt, outfc, fieldmappings)