cl.geologyidea.com
Más

FieldMap en Arcpy Merge solo para campos seleccionados

FieldMap en Arcpy Merge solo para campos seleccionados


We are searching data for your request:

Forums and discussions:
Manuals and reference books:
Data from registers:
Wait the end of the search in all databases.
Upon completion, a link will appear to access the found materials.


Estoy tratando de usar FieldMap en arcpy para fusionar solo algunos de los mismos campos de 8 clases de entidades. Hay muchos campos diferentes en todas las diferentes clases de entidad, pero he identificado los 9 campos que quiero en mi última clase de entidad fusionada. En lugar de fusionar todos los campos, lo identifico, solo elijo el primer campo de mi lista y termino con un archivo combinado con un campo "COUNTY_F". ¿Qué me estoy perdiendo?

fClasses = [] i = 0 # Recorra MyGDB.gdb y agregue cada nombre de clase de entidad a la matriz fcs = arcpy.ListFeatureClasses () para fc en fcs: fClasses.append (fc) i = i + 1 print fClasses #Shows as " Clallam_WorkingForest_2013, GraysHarbor_WorkingForest_2013, Jefferson_WorkingForest_2013, King_WorkingForest_2013, Kittitas_WorkingForest_2013, Mason_WorkingForest_2013, Pierce_WorkingForest_2013, Snohomish_WorkingForest_2013" #Map campos para infields Combinar = [ "COUNTY_F", "UNIQUE_ID", "CONTRIBUYENTE", "PARCEL_ID", "CURRENTUSE_CODE", "CURRENTUSE_DESC", "PRESENTUSE_CODE "," PRESENTUSE_DESC "," ACRES_ASSES "] fm = arcpy.FieldMappings () fm_type = arcpy.FieldMap () para el campo inFields: fm_type.addInputField (" Clallam_WorkingForest_2013 ", field.borno) fm13_type field. .name) fm_type.addInputField ("Jefferson_WorkingForest_2013", campo) fm_type.addInputField ("King_WorkingForest_2013", campo) fm_type.addInputField ("Kittitas_WorkingForest_2013", campo) fmput_type.add "Mason_WorkingForest_2013", campo) fm_type.addInputField ("Pierce_WorkingForest_2013", campo) fm_type.addInputField ("Snohomish_WorkingForest_2013", campo) fm.addFieldMap (fm_type) print! " arcpy.Merge_management (fClasses, "Merged", fm) imprime "Merge: SUCCESS".

Es probable que su comprensión acerca de FieldMap sea incorrecta. Debido a que un campo se relaciona con un objeto FieldMap, necesita crear nueve objetos FieldMap en su caso. Además, inFields es una lista, no puede usar field.name.

Modifique el código de la siguiente manera, creo que el resultado que desea obtener.

importar arcpy fClasses = [] i = 0 # Recorrer MyGDB.gdb y agregar cada nombre de clase de entidad a la matriz fcs = arcpy.ListFeatureClasses () para fc en fcs: fClasses.append (fc) i = i + 1 imprimir fClasses #Shows como "Clallam_WorkingForest_2013, GraysHarbor_WorkingForest_2013, Jefferson_WorkingForest_2013, King_WorkingForest_2013, Kittitas_WorkingForest_2013, Mason_WorkingForest_2013, Pierce_WorkingForest_2013, Snohomish_WorkingForest_2013" #Map campos para infields Combinar = [ "COUNTY_F", "UNIQUE_ID", "CONTRIBUYENTE", "PARCEL_ID", "CURRENTUSE_CODE", "CURRENTUSE_DESC", "PRESENTUSE_CODE", "PRESENTUSE_DESC", "ACRES_ASSES"] fm = arcpy.FieldMappings () fm_types = [] para i en el rango (9): fm_types.append (arcpy.FieldMap ()) para fm_type en fm_types fClass en fClass : para archivado en inFields: fm_type.addInputField (fClass, field) outField = fm_type.outputField outField.name = field fm_type.outputField = outField # Agregar secuencialmente nueve FieldObject fm.addFieldMap (fm_type) print "Fields mapped! arcpy.Merge_management (fClasses, "Merged", fm) imprime "Merge: SUCCESS".

Lo siento, me equivoqué al escribir loop.

importar arcpy fClasses = [] i = 0 # Recorrer MyGDB.gdb y agregar cada nombre de clase de entidad a la matriz fcs = arcpy.ListFeatureClasses () para fc en fcs: fClasses.append (fc) i = i + 1 imprimir fClasses #Shows como "Clallam_WorkingForest_2013, GraysHarbor_WorkingForest_2013, Jefferson_WorkingForest_2013, King_WorkingForest_2013, Kittitas_WorkingForest_2013, Mason_WorkingForest_2013, Pierce_WorkingForest_2013, Snohomish_WorkingForest_2013" #Map campos para infields Combinar = [ "COUNTY_F", "UNIQUE_ID", "CONTRIBUYENTE", "PARCEL_ID", "CURRENTUSE_CODE", "CURRENTUSE_DESC", "PRESENTUSE_CODE", "PRESENTUSE_DESC", "ACRES_ASSES"] fm = arcpy.FieldMappings () para i en el rango (9): fm_type = arcpy.FieldMap () para fClass en fClasses: fm_type.addInputField (fClass, inFields outField = fm_type.outputField outField.name = inFields [i] fm_type.outputField = outField # Agregar secuencialmente nueve FieldObject fm.addFieldMap (fm_type) print "¡Campos mapeados!" arcpy.Merge_management (fClasses, "Merged", fm) imprime "Merge: SUCCESS".

Python Pandas fusiona solo ciertas columnas

¿Es posible fusionar solo algunas columnas? Tengo un DataFrame df1 con columnas x, y, zy df2 con columnas x, a, b, c, d, e, f, etc.

Quiero fusionar los dos DataFrames en x, pero solo quiero fusionar las columnas df2.a, df2.b, no todo el DataFrame.

El resultado sería un DataFrame con x, y, z, a, b.

Podría fusionar y luego eliminar las columnas no deseadas, pero parece que hay un método mejor.


Ver el vídeo: ArcGIS - Union - combine shapefiles


Comentarios:

  1. Dut

    la muy buena frase

  2. Raymond

    buena información

  3. Kevion

    Genial, que más puedo decir.

  4. Isaias

    En él algo es. Gracias por la ayuda en esta pregunta, ¿puedo yo también que pueda para ayudarlo?

  5. Elvin

    Puedo hablar mucho sobre este tema.



Escribe un mensaje