PostGIS abre el futuro de las bases de datos espaciales de código abierto

PostGIS abre el futuro de la base de datos espacial de código abierto (1)

En 1986, el profesor Michael Stonebraker de la Universidad de California en Berkeley dirigió el proyecto Postgres, que fue el predecesor de PostgreSQL. Posteriormente apareció PostGIS. PostGIS es una extensión del sistema de base de datos relacional de objetos PostgreSQL. Su aparición hace que la gente comience a prestar atención al método de expansión espacial basado en sistemas de administración de bases de datos, y se espera que PostGIS se convierta en la tecnología principal para administrar datos espaciales en el futuro.

Debido a que los datos espaciales tienen características tales como ubicación espacial, relación espacial no estructurada, clasificación y codificación, y datos masivos, los sistemas de administración de bases de datos comerciales generales no pueden cumplir con los requisitos.

Con el fin de mejorar la capacidad del sistema de administración de bases de datos (DBMS) para administrar datos espaciales, ha habido apariciones sucesivas en el hogar y en el extranjero: sistema de administración híbrido de bases de datos relacionales y archivos, sistema de administración de bases de datos espaciales relacionales completo, base de datos relacional + motor de datos espaciales, Sistema extendido de administración de bases de datos relacionales de objetos y sistema de administración de bases de datos espaciales orientadas a objetos y otras soluciones. En la actualidad, los más populares en el país y en el extranjero se centran principalmente en "base de datos relacional + motor de datos espaciales" y "base de datos relacional de objetos extendida" .

"Base de datos relacional + motor de datos espaciales" suele ser una solución de software intermedio desarrollada por los proveedores de SIG en los últimos años. Los usuarios entregan sus propios datos espaciales a un motor de datos espaciales independiente de la base de datos. Hay un motor de datos espaciales para organizar el almacenamiento de datos espaciales en una base de datos relacional; cuando el usuario necesita acceder a los datos, se notifica al motor de datos espaciales que hay un motor Extrae datos de bases de datos relacionales y transfórmalos en una forma que los clientes puedan usar.

Por lo tanto, una base de datos relacional es solo un contenedor para almacenar datos espaciales, y un motor de datos espaciales es un canal de conversión para que los datos espaciales entren y salgan del contenedor. Representantes típicos de este tipo de sistema son ArcSDE de ESRI y SpatialWare de MapInfo. Sus ventajas son una velocidad de acceso rápida, soporte para el sistema de administración de base de datos relacional general, acceso a datos espaciales según BLOB , plataforma de base de datos cruzada, integración cercana con plataforma GIS específica y aplicación flexible. Sus deficiencias se manifiestan principalmente en que las operaciones espaciales y el procesamiento no se pueden implementar en el kernel de la base de datos, el modelo de datos es más complejo, es difícil extender SQL y no es fácil lograr el intercambio de datos y la interoperabilidad.

El sistema de administración de bases de datos relacionales de objetos extendidos es una solución para administrar datos espaciales desarrollados por proveedores de bases de datos. Dado que es difícil para las bases de datos relacionales administrar datos no estructurados (incluidos los datos espaciales), los proveedores de bases de datos han desarrollado sistemas de administración de bases de datos relacionales de objetos basados ​​en tecnología orientada a objetos.

Este sistema admite la definición de tipos de datos abstractos (ADT) y operaciones relacionadas; los usuarios pueden utilizar esta capacidad para aumentar los tipos de datos espaciales y las funciones relacionadas, transfiriendo así tipos y funciones de datos espaciales del middleware (motor de datos espaciales) a la base de datos En la gestión del sistema, los clientes no necesitan utilizar la interfaz especial del motor de datos espaciales para la programación, sino utilizar el lenguaje SQL extendido estándar con los tipos de datos espaciales y funciones añadidos para manipular datos espaciales.

Dichos productos que admiten la expansión espacial incluyen Oracle Spatial de Oracle, DB2 Spatial Extender de IBM y Spatial DataBlade de Informix. La ventaja es que la gestión de datos espaciales está integrada con el sistema de base de datos general. Se accede a los datos espaciales por objeto, y la operación y el procesamiento espaciales se pueden realizar en el kernel de la base de datos. Es más conveniente extender SQL y es más fácil para realizar el intercambio de datos y la interoperabilidad. Sus deficiencias se manifiestan principalmente en la dificultad de implementación y la dificultad de comprimir los datos. Aún existe una brecha entre las funciones y desempeño actuales y el primer tipo de sistema.

En la actualidad, el software de base de datos más destacado en el campo del software de información espacial de código abierto es la base de datos PostgreSQL, y el módulo de extensión de objetos espaciales que incorpora PostGIS lo convierte en una base de datos espacial verdaderamente grande.

Originado de PostgrSQL

En 1986, el profesor Michael Stonebraker de la Universidad de California en Berkeley dirigió el proyecto Postgres, que fue el predecesor de PostgreSQL. Los resultados de este proyecto son muy significativos y se han realizado muchas contribuciones en muchos aspectos de las bases de datos modernas, como bases de datos orientadas a objetos, técnicas de indexación parcial, reglas, procedimientos y extensiones de bases de datos. Al mismo tiempo, Stonebraker incorporó PostgreSQL al sistema de derechos de autor de BSD, lo que hizo que PostgreSQL se usara ampliamente en varias instituciones de investigación científica y algunas organizaciones de servicio público.

Se han definido algunos tipos básicos de entidades de colección en PostgreSQL. Estos tipos incluyen: POINT, LINE, LSEG, BOX, POLYGON, CIRCLE, etc .; PostgreSQL define una serie de funciones y operadores para implementar operaciones geométricas y operaciones; al mismo tiempo, PostgreSQL presenta el árbol R del índice de datos espaciales.

Aunque PostgreSQL proporciona las características mencionadas anteriormente que admiten datos espaciales, las características espaciales que proporciona son difíciles de cumplir con los requisitos de SIG, principalmente en: falta de tipos espaciales complejos; sin análisis espacial; sin función de transformación de proyección. Para hacer que PostgreSQL proporcione mejores servicios de información espacial, surgió PostGIS.

Introducción a PostGIS

PostGIS es una extensión del sistema de base de datos relacional de objetos PostgreSQL. PostGIS proporciona las siguientes funciones de servicio de información espacial: objetos espaciales, índices espaciales, funciones de operación espacial y operadores espaciales. Al mismo tiempo, PostGIS sigue las especificaciones de OpenGIS.

Los derechos de autor de PostGIS están incluidos en GNU GPL, lo que significa que cualquiera puede obtener libremente el código fuente de PostGIS e investigar y mejorarlo. Es precisamente por esto que PostGIS se ha desarrollado rápidamente, y cada vez más entusiastas e instituciones de investigación han participado en el desarrollo y mejora de las aplicaciones PostGIS.

Historial de desarrollo de PostGIS

PostGIS fue desarrollado por Refractions Research Inc. Refractions es una empresa de consultoría de bases de datos y SIG. Refraction inicialmente estudió la implementación de bases de datos espaciales sobre la base de PostgreSQL. Los tipos de datos espaciales y las funciones que proporciona PostgreSQL están lejos de satisfacer las necesidades de SIG. Investigación El trabajo a menudo cae en un dilema El resultado final suele ser una gran cantidad de mano de obra y recursos materiales, pero el producto es extremadamente complejo y de bajo rendimiento. Estas razones contribuyeron directa o indirectamente a la implementación del proyecto PostGIS.

La implementación de PostGIS no ha sido fácil. No fue hasta el lanzamiento de PostgreSQL 7.1 que la implementación de PostGIS se hizo posible. La razón principal fue que el tamaño de registro máximo admitido por PostgreSQL antes de la versión 7.1 era de 8Kb. Desde 7.1, PostgreSQL ha abandonó esta limitación. Incluso con el almacenamiento binario, los objetos de datos espaciales a menudo superan los 8 Kb. Si existe esta restricción, el almacenamiento de datos espaciales es imposible.

Con la eliminación de esta restricción, la investigación y el desarrollo de PostGIS comenzaron en abril de 2001, y la primera versión de PostGIS (PostGIS V0.1) se lanzó en mayo de 2001. En la primera versión de PostGIS, incluye principalmente bases de datos espaciales, objetos de datos espaciales que utilizan representaciones estándar, índices espaciales que admiten consultas rápidas y algunas funciones de análisis simples (como área y longitud). Los tipos de objetos de datos espaciales admitidos en PostGIS V0.1 incluyen: puntos, líneas, polígonos, tipos de objetos geométricos y tipos de objetos geométricos multipunto, multilínea y multipolígono.

PostGIS V0.2, lanzado en mayo de 2001, agregó soporte para representación binaria en la plataforma Windows y proporcionó documentación de ayuda para nuevos usuarios. Sin embargo, los usuarios informaron que el nombre de la función de PostGIS no seguía el estándar OpenGIS.

PostGIS V0.5 fue lanzado en julio de 2001. PostGIS agregó todas las funciones funcionales existentes de OpenGIS y mantuvo el mismo nombre de las funciones. Se han agregado 24 funciones de acceso a OpenGIS y se han eliminado las funciones originales no estándar equivalentes a estas funciones.

Con el apoyo financiero del gobierno de Columbia Británica, también se ha añadido a la versión 0.5 el soporte para calcular la longitud de la superficie de la esfera. En el mismo período, Refractions trasplantó el atlas digital de carreteras de Columbia Británica a PostGIS y utilizó el modelo y la función de conversión de datos de la base de datos para brindar apoyo a los clientes del atlas (envío de ambulancias, respuesta de emergencia y otros asuntos municipales, etc.).

Otra razón por la que PostGIS V0.5 es importante es el lanzamiento de Mapserver de la Universidad de Minnesota. El Mapserver de la Universidad de Minnesota es un motor de publicación de mapas de Internet de código abierto, al igual que el sistema ArcIMS de ESRI, Mapserver también agrega soporte para PostGIS.

  • PostGIS abre el futuro de la base de datos espacial de código abierto (2)

En Mapserver, se proporciona una interfaz basada en web, que se utiliza para verificar las características espaciales de los datos en la base de datos. En PostGIS, para permitir que Mapserver brinde mejores servicios, PostGIS proporciona una fuente de datos que es fácil de leer y escribir, esta fuente de datos desempeñará su función cuando la red esté ocupada. Por ejemplo, si se utiliza un archivo GIS estándar como fuente de datos, si dos usuarios escriben en el mismo archivo al mismo tiempo, esto conducirá inevitablemente a conflictos operativos, y PostGIS puede resolver bien este defecto Garantice la integridad de los datos.

En septiembre de 2001, se lanzó PostGIS V0.6 PostGIS V0.6 proporcionó soporte completo para OpenGIS, agregó una tabla de metadatos estándar y proporcionó soporte para la identificación de sistemas de referencia espacial. Además, se han agregado 12 funciones funcionales compatibles con OpenGIS y se ha mejorado aún más el soporte para Mapserver.

En febrero de 2002 se lanzó PostgreSQL V7.2 En la versión 7.2, se mejoró un poco la función API del índice GIST. Debido a que estas funciones API también se utilizan en PostGIS, esto ha traído problemas a la aplicación de PostGIS V0.6, lo que ha llevado a PostGIS a realizar mejoras para adaptarse a los cambios en PostgreSQL. PostGIS V0.7 se lanzó en 2002. En la versión 0.7, se proporcionó una nueva función de API compatible con GIST y, en esta versión, se proporcionó soporte para la transformación de coordenadas.

Desde 2002 hasta ahora, PostGIS ha lanzado sucesivamente una serie de nuevas versiones.Al mismo tiempo que hereda las ventajas originales de los productos PostGIS, estos productos PostGIS han mejorado aún más los problemas y deficiencias del propio PostGIS. Hasta ahora, la última versión de PostGIS es PostGIS V1.1.4. Las principales mejoras de PostGIS V1.1.4 incluyen: (1) Brinda soporte para el próximo PostgreSQL V8.2; (2) Corrige los errores en la función recopilar; (3) Aumenta la verificación de coincidencia de SRID en MakeBox2d y MakeBox3d; (4 ) Mejora Se mejoró la concurrencia de ejecución de pgsql2shp; ⑸ Se mejoró aún más el soporte para Java.

Funciones de PostGIS

PostGIS admite todos los tipos de datos espaciales, incluidos: POINT, LINESTRING, POLYGON, MULTIPOINT, MULTILINESTRING, MULTIPOLYGON y GEOMETRYCOLLECTION) Espere. PostGIS admite todos los métodos de expresión de objetos, como WKT y WKB.

PostGIS admite todos los métodos de construcción y acceso a datos, como GeomFromText (), AsBinary () y GeometryN ().

PostGIS proporciona funciones de análisis espacial simples (como Área y Longitud), así como otras funciones con funciones de análisis complejas, como Distancia.

PostGIS proporciona soporte para metadatos, como GEOMETRY_COLUMNS y SPATIAL_REF_SYS. Al mismo tiempo, PostGIS también proporciona funciones de soporte correspondientes, como AddGeometryColumn y DropGeometryColumn.

PostGIS proporciona una serie de predicados binarios (como Contiene, Dentro, Superposiciones y Toques) para detectar la relación espacial entre objetos espaciales y devuelve un valor booleano para caracterizar la relación entre objetos.

PostGIS proporciona operadores espaciales (como Unión y Diferencia) para la manipulación de datos espaciales. Por ejemplo, el operador Union fusiona los límites entre polígonos. Dos polígonos superpuestos formarán un nuevo polígono mediante la operación Unión. El límite de este nuevo polígono es el límite más grande de los dos polígonos.

PostGIS también proporciona las siguientes funciones:

Transformación de coordenadas de base de datos

El tipo de geometría en la base de datos se puede transformar de un sistema de proyección a otro sistema de proyección a través de la función Transformar. Todos los tipos de geometría en OpenGIS usan SRID como parte de su estructura, pero por razones desconocidas, Transform no se introduce en la especificación SFSQL de OpenGIS.

Cálculo de la longitud de la esfera

El tipo de colección almacenado en el sistema de coordenadas geográficas general no se puede calcular sin la transformación de coordenadas La transformación de coordenadas proporcionada por OpenGIS permite calcular el grado de tipo de acumulación.

Tipo de geometría tridimensional

La especificación SFSQL es solo para tipos de colección bidimensionales. OpenGIS proporciona soporte para tipos de colección 3D, específicamente utilizando la dimensión del tipo de colección de entrada para determinar la representación de salida. Por ejemplo, incluso si todos los objetos geométricos se almacenan internamente en forma tridimensional, las intersecciones bidimensionales puras generalmente se devuelven en forma bidimensional. Además, también proporciona la función de convertir objetos geométricos entre diferentes dimensiones.

Función de agregado espacial

En la base de datos, una función agregada es una función que realiza todas las operaciones de datos en una determinada columna de atributos. Por ejemplo, Suma y Promedio, Suma es la suma de los datos de una determinada columna de atributos relacionales y Promedio es el promedio de los datos de una determinada columna de atributos relacionales. En correspondencia con esto, la función de agregado espacial también realiza la misma operación, pero el objeto de la operación son los datos espaciales. Por ejemplo, la función agregada Extent devuelve el rectángulo envuelto más grande en una serie de elementos. Por ejemplo, el resultado de la ejecución de la instrucción SQL "SELECT EXTENT (GEOM) FROM ROADS" es devolver todos los rectángulos envueltos en la tabla de datos ROADS.

Tipo de datos ráster

PostGIS proporciona almacenamiento para grandes objetos de datos ráster a través de un nuevo segmento de tipo de datos. El segmento se compone de las siguientes partes: rectángulo envuelto, SRID, tipo y una secuencia de bytes. Al controlar el tamaño del segmento por debajo del valor de la página de la base de datos (32 × 32), es posible un acceso aleatorio rápido. En general, las imágenes grandes también se almacenan en la base de datos cortándolas en porciones de 32 × 32 píxeles.

Perspectiva de desarrollo de PostGIS

En la actualidad, debido a las ventajas de las soluciones técnicas de "base de datos relacional + motor de datos espaciales" a las que se accede rápidamente y están estrechamente conectadas con SIG, tiene ciertas ventajas en las aplicaciones. Sin embargo, el motor de datos espaciales es independiente del núcleo de la base de datos y Es difícil hacer un uso completo de cada uno de los aspectos relacionales. Esta tecnología madura de acceso y gestión de datos se ha convertido en el talón de Aquiles de un mayor desarrollo. Además, es difícil admitir SQL extendido y el intercambio de datos y la interoperabilidad se exponen gradualmente.

Aunque el sistema de gestión de bases de datos espaciales orientado a objetos es más adecuado para la expresión y gestión de datos espaciales, no solo admite registros de longitud variable, sino que también admite el anidamiento de objetos, la herencia y la agregación de información. El sistema de gestión de bases de datos orientado a objetos se ha investigado durante más de diez años. Debido a la falta de una buena base de datos, no ha habido un gran avance en la velocidad de acceso y es difícil desarrollarlo de manera madura. Se estima que el El sistema de administración de bases de datos orientado a objetos no podrá reemplazar el sistema de administración de bases de datos relacionales de objetos.

Sin duda, el sistema de gestión de bases de datos relacionales de objetos extendidos se convertirá en la dirección del desarrollo futuro. Aunque el rendimiento de PostGIS / PostgreSQL y Spatial Oracle todavía tiene una cierta brecha con ArcSDE, ya que los proveedores de bases de datos continúan prestando atención al mercado de administración de datos espaciales, mayor integración de métodos de administración de datos estructurados y métodos de administración de datos espaciales, y tecnología de transmisión de compresión de datos. Con la mejora continua del sistema de gestión de bases de datos, el método de expansión espacial basado en el sistema de gestión de bases de datos se mejorará continuamente y se convertirá en la tecnología principal para la gestión de datos espaciales en el futuro. La mayoría de los proveedores de SIG deberían centrarse en el análisis espacial, modelos espaciales, etc., para formar una mejor división social de la estructura del trabajo.

Actualmente, el software de código abierto se ha convertido en una tendencia de desarrollo en la industria de TI, y cada vez se agrega más software al sistema de código abierto. PostGIS no se queda atrás de la base de datos espacial de las plataformas GIS comerciales en términos de función o escalabilidad, y debido a la apertura de su código fuente, es más fácil atraer fanáticos para que participen en el desarrollo de PostGIS, mejorando continuamente las funciones existentes y expandiéndose aún más. Con nuevas funciones, creo que PostGIS tendrá un futuro muy brillante.

Supongo que te gusta

Origin blog.csdn.net/qq_37061368/article/details/110954565
Recomendado
Clasificación