Tengo un featureclass (fc) que quiero copiar, pero sólo la retención de un número seleccionado de campos, digamos que el campo 9, 11, y 12 de un total de 15 campos. Quiero usar arcpy y la sospecha de que fieldmappings de alguna manera son necesarias para este. Tengo actualmente:
fm= arcpy.FieldMappings()
fm.addtable(fc)
sel= range(0,9)+[10]+range(13,16)
for i in sel:
fm.removeFieldMap(i)
Sin embargo, esto nos da:
RuntimeError: FieldMappings: Error in removing a field map from field mappings for RemoveFieldMap
Yo no puedo ver lo que estoy haciendo mal? Tal vez sería más bonito de alguna manera, seleccione los campos que desee y agregar a un nuevo fieldMapping objeto? Todas las sugerencias son bienvenidas, gracias de antemano!
La actualización. Como se sugiere a continuación, ahora tengo lo siguiente:
inFields= ["fA", "fB", "fC"]
inTab= 'testFc'
fm= arcpy.fieldMappings()
fieldMap= arcpy.FieldMap()
for field in inFields:
fieldMap.addInputField(inTab, field)
fm.addFieldMap(fieldMap)
arcpy.featureClassToFeatureClass_conversion(testFc, outDir, testOutFc, field_mapping= fm)
Esto funciona, un nuevo featureclass es creado. Sin embargo, sólo contiene un campo de fA. El python salida lee:
Executing: FeatureClassToFeatureClass L:/GEOProjects/2Working.gdb/testFc :/GEOProjecten outDir testOutFc
# "fA "fA" true true false 8 Double 0 0 ,First,#,
L:/GEOProjects/2Working.gdb/testFc,fA,-1,-1,
L:/GEOProjects/2Working.gdb/testFc,fB,-1,-1,
L:/GEOProjects/2Working.gdb/testFc,fC,-1,-1" #
Start Time: Thu Oct 24 10:21:42 2013
Succeeded at Thu Oct 24 10:21:58 2013 (Elapsed Time: 16.00 seconds)
Parece que ony fA se copian a la nueva featureclass. Alguna sugerencia de por qué esto puede ser?