Processing math: 100%

2 votos

¿Crear una clase de característica con los campos deseados utilizando ArcPy?

Cuando se crea una clase de característica a través de ArcCatalog se obtiene un práctico menú que permite asignar campos.

enter image description here

Me pregunto si no hay un equivalente en Arcpy. No hay argumentos para ello en el Crear clase de característica herramienta.

Pensé que tal vez un objeto de información de campo lo haría, colocado en la variable de la plantilla, pero esto falló. Entonces me di cuenta de que los campos de información de campo no indican el tipo de campo ni la mayoría de las propiedades de los campos, así que esto no debería haber sido una sorpresa.

>>> fi = arcpy.FieldInfo ()
>>> fi.addField ("TestField", "TestField", "VISIBLE", "NONE")
>>> arcpy.CreateFeatureclass_management (outLoc, outName, "POLYGON", fi)
Runtime error 
Traceback (most recent call last):
  File "<string>", line 1, in <module>
  File "c:\program files (x86)\arcgis\desktop10.4\arcpy\arcpy\management.py", line 1806, in CreateFeatureclass
    raise e
RuntimeError: Object: Error in executing tool
>>> 

Actualmente añado cada campo uno a la vez después de crear la clase de característica, pero estoy pensando que añadir los campos en el momento de la creación de la clase de característica sería más eficiente.

1voto

UnkwnTech Puntos 21942

Creo que la penalización de rendimiento de usar AddField para añadir cada campo es lo suficientemente pequeña como para que la funcionalidad que buscas sea innecesaria.

A veces en el pasado sé que he jugado a crear una tabla vacía con los campos, cuando sé que quiero añadir los mismos campos con frecuencia, y he utilizado JoinField para añadirlos en un solo paso.

También he jugado con numpy.array y arcpy.da.ExtendTable en Creación de numpy.array con número variable de campos para probar el rendimiento de arcpy.da.ExtendTable?

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X