Procesamiento en mosaico de datasets grandes

Para mejorar el rendimiento y la escalabilidad de las herramientas como Combinación e Intersecar, se usa lógica operativa llamada procesamiento adaptable de subdivisiones. El uso de esta lógica se desencadena cuando los datos no se pueden procesar con la cantidad disponible de memoria virtual. Para adecuarse a la memoria virtual disponible, lo que mejora el rendimiento, el procesamiento se hace incrementalmente sobre subdivisiones de la extensión original. Las entidades que están a caballo sobre los bordes de estas subdivisiones (también llamadas teselas) se dividen en el borde de la tesela y se vuelven a ensamblar en una entidad única durante la última etapa del procesamiento. Los vértices introducidos en estos bordes de teselas permanecen en las entidades de salida. Los límites de las teselas también pueden quedar en la clase de entidad de salida cuando una entidad que se está procesando es tan grande que el proceso de subdivisión no puede devolver la entidad a su estado original por falta de memoria virtual disponible.

La lógica de procesamiento de subdivisión adaptable es dinámica según la memoria virtual disponible y la complejidad de los datos. Ejecutar la misma operación de superposición en el mismo equipo puede dar lugar a que los datos se dividan en teselas de manera diferente si la cantidad de memoria disponible cambia de alguna manera.

Una optimización del procesamiento de subdivisión adaptable es la adición del procesamiento en paralelo de las teselas. Cuando el procesamiento en paralelo está habilitado, cada tesela procesada por un núcleo diferente comparte la cantidad total de memoria virtual disponible en el sistema. Esto significa que, para procesar varias teselas a la vez, cada tesela debe ser más pequeña que cuando se procesa secuencialmente. El procesamiento de subdivisión adaptable realiza un seguimiento del tamaño de cada tesela para garantizar que las teselas que se procesan simultáneamente durante el procesamiento en paralelo no exceden la cantidad total de memoria virtual disponible. El procesamiento en paralelo puede no ser más rápido en todos los casos. El tamaño y la complejidad de los datos deben superar la sobrecarga de administrar los procesos paralelos para que exista una mejora del rendimiento. Consulte la documentación de una herramienta individual para obtener información sobre cómo habilitar el procesamiento en paralelo para aquellas herramientas que lo admiten.

Ventajas para subdividir datos

Las herramientas ofrecen mejor rendimiento cuando el procesamiento se puede hacer en la memoria virtual disponible del equipo (memoria libre que no está siendo usada por el sistema u otras aplicaciones). Puede que esto no siempre sea posible cuando se trabaja con datasets que contienen un gran número de entidades o entidades complejas con interacción de entidades complejas, o entidades que contienen centenares de miles o millones de vértices (o una combinación de los tres). Sin el uso de teselas, la memoria disponible se agota rápidamente y el sistema operativo empieza a paginar (usar el almacenamiento secundario como si fuera la memoria principal). La paginación conlleva una degradación del rendimiento, el sistema simplemente se queda sin recursos en algún momento y la operación falla. El ordenamiento en teselas ayuda a evitar la paginación. En casos extremos, la administración de la memoria de procesamiento se transfiere al sistema con la intención de completar el procesamiento, ya que se permite al sistema operativo usar todos los recursos a su disposición para completar el proceso.

Cuando las aplicaciones de 64 bits se generalizaron, la impresión común era que todo sería más rápido. No obstante, no siempre es así. El uso del procesamiento de 64 bits permite hacer más a la vez y esto puede proporcionar la impresión de un mayor rendimiento. Algunas operaciones son más lentas en lo que respecta a un incremento del trabajo. Otra creencia extendida es que poder llevar todos los datos a la memoria para su procesamiento debería permitir que el procesamiento sea más rápido. Aunque este puede ser el caso de datos simples, para operaciones espaciales grandes y complejas, no es el caso. Para el procesamiento de herramientas de superposición, tener todos los datos en la memoria y analizarlos todos a la vez equivale a procesar la única tesela de nivel superior indicada anteriormente. Esto es más lento que el ordenamiento en teselas de los datos de forma más amplia. El ordenamiento en teselas se puede reducir, pero no eliminar, para experimentar los beneficios en el rendimiento. El uso del procesamiento de 64 bits también permite el procesamiento en paralelo de teselas. Esto puede proporcionar una mejora del rendimiento en muchos casos.

Procesamiento de teselas

Cada proceso empieza con una única tesela que abarca la extensión completa de los datos. Si los datos de la tesela única son demasiado grandes para ser procesados en la memoria virtual disponible, se subdividen en cuatro teselas iguales. Entonces se inicia el procesamiento en una subtesela, que a su vez se subdivide si los datos de este segundo nivel de tesela son demasiado grandes. Esto continúa hasta que los datos de cada tesela se pueden procesar en la memoria virtual disponible. Vea el ejemplo a continuación:

Extensión de los datasets de entrada

Empiece con la superficie de todas las entidades de entrada.

Tesela de geoprocesamiento de nivel 1

El proceso comienza con una tesela que abarca la extensión completa de todos los datasets. Para la referencia, esto se denomina nivel de tesela 1.

Tesela de geoprocesamiento de nivel 2

Si los datos son demasiado grandes para procesarlos en la memoria, el nivel de tesela 1 se subdivide en cuatro teselas iguales. Estas cuatro subteselas se denominan teselas de nivel 2.

Teselas de geoprocesamiento adaptables

Según el tamaño de los datos de cada tesela, algunas teselas se continúan subdividiendo, mientras que otras no lo hacen.

Herramientas que utilizan subdivisiones

Las siguientes herramientas de la caja de herramientas de análisis tienen lógica de subdivisión cuando tratan con datos grandes:

  • Zona de influencia: al utilizar la opción de disolución.
  • Recorte: no en todos los escenarios. Ahora se utiliza un proceso por lotes interno para muchas situaciones.
  • Borrar
  • Identidad
  • Intersecar
  • Dividir
  • Diferencia simétrica
  • Combinación
  • Actualizar

Las siguientes herramientas de la caja de herramientas Administración de datos también utilizan lógica de subdivisión al tratar con datasets grandes:

  • Disolver
  • De entidad a línea
  • De entidad a polígono
  • De polígono a línea

Indicación de progreso durante la subdivisión adaptable

La subdivisión adaptable es dinámica, ya que se basa en la cantidad de recursos disponibles en el equipo en el que se ejecuta el proceso. No hay un número definido de pasos para completar el análisis. Durante el procesamiento de una tesela, es posible que la tesela no se pueda procesar en la memoria disponible. A continuación, esta tesela se divide y se procesan las nuevas teselas (divididas). Es posible que una o todas estas nuevas teselas tampoco se puedan procesar dentro de los límites de la memoria disponible. Dado que no hay forma de determinar de manera eficiente el número de teselas necesarias antes del tiempo de ejecución, no hay forma de proporcionar un mensaje de progreso de recuento estándar. Por lo tanto, los mensajes y la barra de progreso que ve para las herramientas que utilizan lógica de subdivisión solo indican el progreso de las teselas individuales que se están procesando.

El proceso falla con un error de memoria insuficiente o se produce una degradación del rendimiento

Es posible que la subdivisión no ayude a procesar entidades extremadamente grandes (entidades con muchos millones de vértices). La división y ensamblaje de entidades extremadamente grandes varias veces a lo largo de los límites de las teselas son costosos por lo que se refiere a la memoria y pueden producir errores de memoria o rendimiento insuficiente si la entidad es demasiado grande. ¿Qué tamaño es demasiado grande? Esto depende de cuánta memoria virtual disponible (memoria libre no utilizada por el sistema u otras aplicaciones) está disponible en el equipo que ejecuta el proceso. Cuanto menor sea la memoria disponible, menor será la entidad que se puede considerar demasiado grande y causar problemas. Algunas entidades grandes pueden provocar un rendimiento lento o un error de memoria insuficiente en la configuración de un equipo y no en otro. El rendimiento lento o un error de memoria insuficiente pueden ocurrir en el mismo equipo una vez y no otra dependiendo de los recursos utilizados por otras aplicaciones. Ejemplos de entidades muy grandes con muchos vértices son el trazado de las vías de una ciudad entera o un polígono que represente un estuario fluvial complejo.

Hay algunos métodos disponibles para tratar entidades que son demasiado grandes. Una técnica recomendada consiste en utilizar la herramienta Subdividir para dividir entidades grandes en las entidades menores antes de procesarlas.

Otra técnica es utilizar la herramienta De multiparte a parte simple en las entidades grandes. Antes de ejecutar la herramienta, asegúrese de que la clase de entidad tenga un campo de identificador único para que, después de ejecutar la herramienta De multiparte a parte simple, cada una de las partes tenga el identificador de la entidad original a la que pertenece. Si la entidad grande tiene muchas partes (como entidades individuales con cientos de miles de partes), convertirla a una sola parte permite procesar las partes individualmente. Si es necesario, después de ejecutar la herramienta de superposición que elija en la versión de una sola parte de los datos, puede volver a crear la entidad multiparte disolviendo en el campo de identificador único.

También pueden producirse errores de memoria insuficiente o degradación de rendimiento al procesar áreas de superposición exagerada. Un ejemplo de superposición exagerada es ejecutar la herramienta Combinación o Intersecar en los resultados de una operación de zona de influencia que se ejecutó en un conjunto de puntos muy denso. La salida de la zona de influencia contendrá muchas entidades de zona de influencia superpuestas. Seleccionar cualquier punto en un área de entidades de zona de influencia densamente empaquetadas puede devolver miles, decenas de miles o incluso cientos de miles de zonas de influencia superpuestas. Al ejecutar la herramienta Intersecar o Combinación en esta salida de zona de influencia, se crearán muchas entidades nuevas que representen cada relación de superposición única.

Por ejemplo, a continuación se ilustran dos capas de entidades. Una contiene 10 entidades (zonas de influencia alrededor de puntos) y la otra contiene una entidad (un cuadrado).

Entrada 1

La entrada 1 contiene 10 entidades poligonales que se superponen, etiquetada por OID.

Entrada 2

Entrada 2 - 1 de polígono, etiquetada por OID.

En la ilustración de abajo se muestra el resultado del proceso de la herramienta Intersecar con las dos capas de entidades de arriba. Observe que se calculan todas las superposiciones (intersecciones) entre todas las entidades, independientemente de la capa de entidades de entrada a la que pertenezcan. Esto puede dar como resultado muchas más entidades de las que se incluían en las entradas originales. Hay más polígonos en la salida (167 entidades) de los que había en las entradas combinadas (el total de entradas era de 11 entidades). Este incremento en la cifra de entidades nuevas con la herramienta Intersecar puede aumentar muy rápidamente, dependiendo de la complejidad de la superposición de las entradas.

Salida de intersección
La salida de la herramienta Intersecar muestra 167 entidades de salida etiquetadas por OID.

Para evitar errores de memoria insuficiente o degradación de rendimiento con datasets grandes complejos, es posible que tenga que procesar los datos quitando parte de la complejidad de superposición y ejecutando sistemáticamente el proceso de superposición. También puede revisar las herramientas Superposición por pares para ver si una proporciona una funcionalidad similar a la que intenta lograr.

Nota:
El uso de las herramientas por pares puede requerir cambios en su flujo de trabajo debido a diferencias en la funcionalidad que ofrece y en sus salidas. Consulte la documentación de la herramienta concreta para obtener detalles.

También puede producirse un error de memoria insuficiente si se ejecuta una segunda aplicación o proceso durante el procesamiento de una herramienta. Este segundo proceso podría utilizar parte de la memoria disponible que el proceso de subdivisión disponible necesita usar, provocando que el proceso de subdivisión emplease más memoria de la que hay realmente disponible. Se recomienda no realizar otras operaciones en un equipo mientras se procesan grandes datasets.

Formatos de datos para datos grandes

Las geodatabases corporativas y de archivos admiten datasets muy grandes. Se recomienda que los utilice como espacio de trabajo de salida al procesar datasets muy grandes o complejos. Para las geodatabases corporativas, solicite detalles sobre las directivas de carga de datos al administrador de bases de datos. La realización de operaciones de carga de datos no planeadas o no aprobadas puede estar restringida.