14 votos

¿Exportación de características con archivos adjuntos para su uso fuera de ArcGIS?

ArcGIS 10 incorpora la nueva capacidad de añadir archivos adjuntos a las características individuales a las clases de características almacenadas en una geodatabase. Un uso de esto sería añadir múltiples imágenes a una ubicación específica, bocas de incendio parece ser un ejemplo popular (importante saberlo si eres un perro en Internet que necesita una parada en boxes, supongo).

En la base de datos, la estructura de una clase de características habilitadas para los archivos adjuntos es triple:

  • la propia clase de característica,
  • una tabla que contiene los archivos adjuntos y los metadatos asociados (nombre del archivo, tamaño, etc.), y
  • una clase de relación que define la relación 1 a varios entre ambos.

the 3 items that comprise an attachment-enabled feature class

Mi pregunta es: cómo exportar estos datos - clase de característica, archivos adjuntos, metadatos adjuntos - para su consumo en el exterior de Arcgis?*

Exportar la FC es fácil, FeatureClassToFeatureClass funciona igual que en una FC no habilitada. ¿Exportar la tabla de adjuntos? No tanto. TableToTable a output.dbf extrae sólo los metadatos del archivo adjunto, a output.csv da error con un tipo de campo no soportado, y a output información falla con un error de campo general.

Esto no es tan sorprendente, ya que estos tipos de archivos no admiten un tipo de datos binario blob. Esperaba encontrar una herramienta que convirtiera los binarios adjuntos en su formato nativo, por ejemplo

table to file system diagram

¿Qué te parece? ¿Qué tengo que hacer para sacar los datos?

* irónicamente mi proyecto del momento que dio lugar a esta Q es para exportar para su uso dentro de Arcgis, sólo que no Arcgis Desktop ...

4voto

john Puntos 11

http://support.esri.com/em/knowledgebase/techarticles/detail/41763

Para ArcGIS 10.1+

from arcpy import da
import os

inTable = arcpy.GetParameterAsText(0)
fileLocation = arcpy.GetParameterAsText(1)

with da.SearchCursor(inTable,['DATA','ATT_NAME']) as cursor:
   for row in cursor:
      binaryRep = row[0]
      fileName = row[1]
      # save to disk
      open(fileLocation + os.sep + fileName, 'wb').write(binaryRep.tobytes())
      del row
      del binaryRep
      del fileName

3voto

toluju Puntos 2555

Exportando GDB a XML (haciendo clic con el botón derecho del ratón en GDB> Exportar a XML) se pueden exportar perfectamente las características+adjuntos. Además, si busca un enfoque más automatizado, ArcGIS 10.1 cuenta con una nueva caja de herramientas para la exportación de XML. Puede importar XML en nuevos GDB o acceder directamente a todos sus datos analizándolos para otras aplicaciones.

2voto

Simon Nickerson Puntos 17147

No he probado los siguientes métodos, así que sólo son mis pensamientos al respecto:

Si es conveniente con la API de ArcGIS .NET puede usar C# para exportar blobs a archivos. Echa un vistazo a este fragmento .

También puede intentar exportar la tabla de adjuntos a Personal GDB y luego intentar exportar los blobs allí. De la misma manera puede exportar a la tabla SDE y utilizar su DBMS (sql?) para realizarlo.

1voto

user63921 Puntos 1

El siguiente script descarga en el disco los archivos adjuntos del Feature Layer alojado: Descarga de archivos adjuntos de capas de características a través de la API de ArcGIS para Python . Utiliza la última API de ArcGIS para Python, que interactúa directamente con cualquier SIG web.

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