8 votos

¿Formato de almacenamiento de información espacial más rápido?

Me pregunto qué método de almacenamiento dará lugar a la lectura más rápida de los vectores del mapa para la representación. ¿SHP? ¿PostGres? ¿SQLite? No cambian a menudo y no necesito funciones espaciales de estos vectores.

12voto

Swinders Puntos 1042

En Pruebas De Velocidad

Hay algunas pruebas de velocidad de shapefiles frente a la base de datos (PostGIS) para MapServer en esta presentación (desde 2007).

En resumen:

  • Para un conjunto de datos de 3 millones de las características de las solicitudes de ejecución de 30 características de una después de la otra PostGIS era más rápido que el shapefile (aunque esto puede haber cambiado desde entonces por una revisión de la lectura de los shapefile índice)
  • Para un conjunto de datos de 10.000 características shapefile fue ligeramente más rápido.
  • Para solicitudes simultáneas shapfile fue más rápido

Y los tiempos en detalle, que también puede ayudar a decidir si el formato de almacenamiento es un factor importante.

                       PostGIS   Shapefile 
Start mapserv process  15ms      15ms
Load mapfile           3ms       3ms
Connect to DB          14ms      n/a
Query                  20ms      n/a
Fetch                  7ms       n/a
Draw                   11ms      28ms
Write Image            8ms       8ms
Network Delay          3ms       3ms

Siempre usar FastCGI en MapServer si el uso de una base de datos, como las conexiones de base de datos pueden ser reutilizados, de lo contrario una nueva conexión deben ser creados en cada solicitud.

Implementaciones de Shapefile de los Lectores

La velocidad de lectura de un archivo shapefile (y los datos de una base de datos) depende de la codificación específica de aplicación.

El código fuente de MapServer la apertura de un archivo shapefile puede ser visto aquí. A raíz de los comentarios que usted puede ver lo importante que es tener un índice. Normalmente sólo se puede leer un archivo en una dirección para conseguir un récord, pero con un índice que se puede leer en dos direcciones.

345   /*    Read the .shx file to get the offsets to each record in             */
346   /*    the .shp file.   

Otro ejemplo de la apertura de un archivo shapefile se puede ver en la fuente de Python para PyShp. De nuevo se puede ver cómo se usa un índice para encontrar formas específicas directamente.

Otros Factores a Condsider

Las limitaciones del formato DBF (límites sobre el tamaño del campo, no nulo apoyo, los límites de almacenamiento de texto), también deben ser tomados en consideración a la hora de decidir si utilizar o no una base de datos.

Una base de datos también ofrece medios de protección de datos, más fácil de unirse y creación de vistas, la tala de árboles y muchas otras características que no se consigue con un archivo independiente.

10voto

dlinsin Puntos 5863

Contrariamente a lo que dariapra dice, mi experiencia en el desarrollo de Maperitive me dice que el mayor cuello de botella está en carga real de los datos antes de representación. Todo mucho depende de cómo es grande es el conjunto de datos almacenado total y cómo es grande es el conjunto de datos que intenta hacer de una sola vez. Si usted puede cargar todo en memoria, archivos son probablemente mejores que un motor de base de datos.

4voto

Mohit Jain Puntos 145

¿Programa que va a utilizar para la representación? Esto puede influir en los resultados. De todas formas, tener un shapefile con un índice espacial (por ejemplo, http://mapserver.org/utilities/shptree.html ) que se utiliza a menudo es la técnica más rápida. Aparte de eso: depende de la aplicación y almacenamiento en caché los resultados prestados a menudo es mucho más útil para mejorar el rendimiento.

2voto

Eric Scrivner Puntos 1392

Shapefile es el más rápido y probablemente su mejor apuesta. Hay encima de la cabeza para cualquier base de datos SQL, entonces allí es gestionar la devolución de conjuntos de resultados grandes (conversión de tipos de datos base de datos a tipos de datos nativos también desacelerará las cosas).

Pruebe a utilizar un paquete de código abierto de maptools.org hacer sus lecturas. Las herramientas del ArcGIS, aunque construido, tiene un poco de arriba para empezar y son caros.

Espero que esto ayude

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