21 votos

¿Cómo mejorar el rendimiento de renderizado de un shapefile muy grande?

Tengo un shapefile de polígonos que tiene un componente de archivo .dbf de 100 MB y otro .shp de 500 MB. La razón de que sea tan grande es que está clasificado como base territorial de todo un distrito.

Cada vez que visualizo el archivo en ArcCatalog o ArcMap y muevo ligeramente la ventana de visualización, es necesario volver a dibujar todo el archivo desde cero. He probado la indexación espacial y la importación en una base de datos geográficos, pero ninguno de los dos métodos proporciona una mejora notable del rendimiento con respecto a la representación.

La página de ayuda de Esri sugiere que para mejorar el rendimiento del shapefile, el usuario puede generalizar el archivo . Aunque es obvio que esto funcionaría, no quiero perder ninguna información. Dividir el archivo no es lo ideal, ya que estoy haciendo un montón de geoprocesamiento / consultas con toda su área. Supongo que podría evitar ver toda el área a la vez, pero a veces, por ejemplo, es bueno ver qué partes del archivo ha seleccionado una consulta.

¿Hay alguna otra forma de mejorar el rendimiento de la renderización?

(En teoría, lo ideal sería construir "pirámides" de archivos shape; no sé por qué ArcGIS nunca ha soportado este enfoque, al menos que yo sepa).

22voto

UnkwnTech Puntos 21942

Mis pensamientos son:

  1. Exporte su shapefile a una clase de característica de geodatabase de archivo - I piense en su rendimiento de dibujo será mejor, pero no estoy seguro de cuánto.
  2. Si utiliza ArcGIS Desktop 10.0 o una versión posterior, muévalo a la carpeta Capa de mapa base - esto mejorará drásticamente el rendimiento del dibujo
  3. Si te gusta cómo suenan las pirámides para los datos vectoriales, no dejes de votar por esto Idea ArcGIS .

6voto

Affine Puntos 1394

Hay muchos consejos para mejorar el rendimiento de ArcMap que pueden ayudar, pero aquí hay tres sugerencias que he utilizado.

  1. Yo me aseguraría de que el sistema de coordenadas del marco de datos coincide con el de mi shapefile y cualquier otra capa que tenga en la TOC; pero cuantas menos capas se muestren, mejor.
  2. Sólo utilizaría mi simbología basada en líneas y rellenos sencillos, sin transparencias ni otras complejidades.
  3. Si necesita tanto una visión general como la posibilidad de desplazarse de cerca, considere la posibilidad de utilizar la lupa o el visor.

4voto

Aaron Puntos 25882

Puede mejorar el renderizado configurando los parámetros de visualización de la capa de modo que ésta no se muestre a grandes escalas (por ejemplo, >1:10.000). Puede encontrar esta opción en las propiedades de la capa: Propiedades de capa > Pestaña General > "No mostrar la capa cuando se aleja más allá de..."

Además, la ubicación del almacenamiento es importante; por ejemplo, si se almacena en un servidor antiguo con poco ancho de banda, el rendimiento será deficiente. Yo manejo habitualmente datos vectoriales de más de 1 GB en un servidor, lo que me hace preguntarme si es necesario actualizar las especificaciones de tu sistema (como referencia, tengo 12 GB de RAM, un i7 de segunda generación y una tarjeta gráfica media).

enter image description here

3voto

kooshmoose Puntos 392

¿Necesitas renderizar el mapa para hacer tus consultas? ¿Y si ejecutas scripts python y accedes a los datos sin dibujar el mapa? No estoy seguro de su proceso exacto, necesidades, etc, pero una idea.

3voto

rAndy Puntos 327

Como continuación de Respuesta de Aaron También podría utilizar una consulta de definición para limitar el número de resultados devueltos para la visualización (e incluye el análisis - creo que funciona muy parecido a una selección). Si no se necesitan todas las funciones para la visualización en un momento dado y no se cambia mucho de región, una consulta de definición podría ser una solución viable, aunque no una respuesta exacta a su pregunta o necesidades.

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