<\/HEAD>
Vamos a emprender un viaje al fondo del mar, pero el mensaje real aquí es la capacidad de ArcGIS Data Interoperability para conectarse con la web (o cualquier lugar) y obtener datos de entidades y medios en una clase de entidad de geodatabase con adjuntos sin necesidad de programar. Bueno, solo un poquito, pero no tienes que preocuparte por los detalles como un programador.<\/P>
<\/P>
Un colega me preguntó si ArcGIS Data Interoperability podía reunir datos CSV de posición y tiempo de las misiones de un sumergible y contenido multimedia relacionado y llevar todo a la geodatabase. En producción, todas las fuentes de datos estarán en la web. No hay problema. Data Interoperability no solo trata sobre formatos y transformaciones, también se trata de integraciones, y construirlas sin codificación.<\/P>
<\/P>
<\/P>
<\/P>
Python entra en escena como un paso final que evita mucho trabajo complicado de ETL. La combinación de una herramienta ETL y un poco de ArcPy es un gran multiplicador de productividad para todos ustedes interoperators allá afuera. Explora la publicación descargada para ver cómo se unen las fuentes CSV y multimedia - muy sencillamente - a continuación está todo el 'programa':<\/P>
<\/P>
<\/P>
<\/P>
ArcGIS Data Interoperability tiene un gran 'punto de venta', a saber que puedes evitar flujos de trabajo codificados y usar el paradigma de programación visual de Workbench para llevar datos de A a B y en la forma que deseas. A menudo muestro a colegas cómo resolver problemas de integración eficientemente con Data Interoperability y siempre es gratificante ver que 'lo entienden' que los desafíos no tienen que abordarse con código.<\/P>
<\/P>
Lo que evitamos es la codificación a bajo nivel.<\/STRONG> Las herramientas de geoprocesamiento de ArcGIS son accesibles como funciones Python; usar herramientas de geoprocesamiento así es simplemente una invocación por línea de comandos de lo que tienes acceso en el panel Geoprocessing y la galería de herramientas del ribbon Analysis, etc. Si esto es nuevo para ti, echa un vistazo y ejecuta primero la herramienta Get Count<\/STRONG> desde la caja de herramientas del sistema y luego usa el resultado en la ventana Python.<\/P><\/P>Aquí está la experiencia con la herramienta:<\/P><\/P>
<\/P>
<\/P><\/P>Ahora en la vista History del panel Catalog, haz clic derecho en el resultado y envíalo a la ventana Python:<\/P><\/P>
<\/P>
<\/P><\/P>Verás la expresión Python equivalente a la herramienta:<\/P><\/P>
<\/P><\/P>Nota que no he escrito ningún código...<\/STRONG><\/P><\/P>¿A dónde quiero llegar con esto? Los conceptos de ArcGIS Data Interoperability difieren un poco del geoprocesamiento básico en que los parámetros <\EM>de entrada y salida tienden a ser espacios de trabajo padre y no tipos o tablas dentro de ellos. Frecuentemente escribes a geodatabases por ejemplo, en cuyo caso el parámetro de salida de la herramienta ETL es la geodatabase<\EM>, no las clases de entidad ni las tablas mismas, aunque estas se configuran en la herramienta ETL.<\/P><\/P>¿Qué pasa si necesitas hacer algo antes, durante o después del proceso ETL para lo cual hay una poderosa herramienta geoprocesamiento ArcGIS disponible pero sería realmente difícil hacerlo en Workbench?<\/P><\/P>Usas funciones Python ArcGIS a alto nivel para hacer este trabajo en Workbench.<\/STRONG><\/P><\/P>En breve daré un ejemplo simple y poderoso, pero primero algunos consejos sobre Python en Workbench.<\/P><\/P>Workbench te permite configurar tu entorno Python; para evitar cualquier conflicto con la gestión de paquetes de Pro simplemente usa el valor predeterminado y estas configuraciones:<\/P><\/P>En Tools>FME Options>Translation<\STRONG> verifica que prefieras el entorno Python de Pro:<\/P><\/P>
En tu Workbench, verifica que tu Compatibilidad Python usará esta preferencia.

Ahora sabes que se puede usar el entorno Python ArcGIS.
Para mi caso proporcionaré un ejemplo real (adjunto abajo) donde necesito crear y cargar adjuntos en geodatabase. No podemos hacer esto completamente en Workbench (excepto como te mostraré) porque no puede crear la clase relación adjuntos. Podrías hacer eso manualmente antes de cargar datos, pero entonces aún tienes que convertir imágenes en datos blob, gestionar identificadores vinculantes y otras cosas que te hacen doler la cabeza, así que usemos ArcPy. Los pasos manuales también impiden crear nuevas geodatabases con la herramienta ETL, lo cual quiero soportar.
El ejemplo Workbench escribe una clase entidad destinada a tener adjuntos, y una tabla que puede usarse para cargarlos. Puedes investigar el procesamiento, pero el elemento clave para inspeccionar es el script shutdown ejecutado después de completar, ve Tool Parameters>Scripting>Shutdown Python Script<\STRONG>.
Aquí está el script embebido:

Esto no es mucho código, unos pocos imports, accediendo al diccionario disponible en cada sesión Workbench para obtener valores ruta salida usados en tiempo ejecución, luego sólo dos líneas llamando herramientas geoprocesamiento como funciones para cargar los adjuntos.
Esta es una excelente manera de integrar el poderoso entorno Python ArcGIS en herramientas ETL.
Las personas observadoras notarán un parámetro scriptado también en el espacio trabajo, no usa ArcPy así que no puedo decir que evita codificación a bajo nivel, fue sólo una forma flexible para crear una carpeta para descargar imágenes en tiempo ejecución. Hay varias formas de usar Python en Workbench<\A>, pero estaría desviando mi mensaje aquí: puedes comenzar con la forma simple y poderosa - usa geoprocesamiento ArcGIS donde ahorra trabajo. ¡Disfruta!<\STRONG>
<\BODY>