🍺 Knowing, interrogating, thinking carefully, discerning, and practicing. ——"The Doctrine of the Mean"
Hello everyone! I’m Mr. Tony who only talks about techniques and not haircuts.
Spatial DBMS is a database management system for efficient storage, operation and query of spatial data. Spatial data represents objects in geometric space, such as points, lines, and polygons.
Spatial database management systems usually provide dedicated data types for spatial data, and at the same time provide spatial indexes for optimizing access to spatial data sets. For example, spatial indexing can efficiently retrieve data points within a certain distance from an object. In addition, the spatial database management system also provides functions to manipulate spatial objects or perform operations based on spatial objects. For example, calculating the distance between objects, merging or intersecting objects, and calculating the properties of the objects (such as the area of a polygon).
Geospatial data (Geospatial data) is an important subset of spatial data, used to process data describing the location of the earth's surface. Geographic information systems (GIS) can process geospatial data.
Spatio-temporal data is another common related data type. They combine spatial data with timestamps to provide another additional dimension for data storage and manipulation.
Let me introduce you to several mainstream spatial database management systems. If you find the article useful, welcome to comment 📝, like 👍, recommend 🎁
PostGIS is a spatial database extension based on the PostgreSQL object-relational database. It adds support for geographic objects and allows location queries to be performed using SQL.
PostGIS adds some additional data types (geometry, geography, grid type, etc.) and related functions, operators, and index (GiST-based R-tree spatial index) support, which enhances the core functions of PostgreSQL and makes it a High-performance, feature-rich and robust spatial database management system.
The functions provided by PostGIS include:
- SQL-based processing and analysis of vector and raster data functions, including splicing, cutting, deformation, reclassification, and collection/merge.
- Raster map algebra for fine-grained raster processing.
- The spatial reprojection function of vector and raster data that can be directly used in SQL statements.
- It supports the import/export of ESRI shapefile vector data through command line and GUI tools, and the import/export of more formats through other third-party open source tools.
- A command line tool for importing data in a variety of standard formats (GeoTiff, NetCDF, PNG, JPG, etc.).
- Use SQL to display and import vector data in standard text formats (KML, GML, GeoJSON, GeoHash, WKT, etc.).
- Use SQL to display grid data in various standard formats (GeoTIFF, PNG, JPG, NetCDF, etc.).
- Seamless grid/vector data processing functions that can be directly used in SQL statements, such as stretching pixel values by geometric area, running statistics by area, trimming rasters by geometry, and vectorization of rasters, etc.
- 3D object support, including spatial indexing and functions.
- Network topology support.
- Tiger Loader / Geocoder/ Reverse Geocoder / Use US Census Tiger data.
PostGIS is an OSGeo project of the Open Geospatial Information Foundation , following the Simple Features for SQL Specification provided by the Open Geospatial Information Consortium OGC . PostGIS is released under the GNU General Public License (GPLv2 or higher), and the latest version is PostGIS 3.1.2.
In addition, pgRouting provides geospatial routing functions for PostGIS.
SpatiaLite is an open source code library based on SQLite , which provides mature spatial SQL function support for the latter. SpatiaLite is perfectly integrated into SQLite, thus providing a complete and powerful spatial database management system (compatible with OGC-SFS specification ).
SQLite + SpatiaLite can be used as an alternative to PostgreSQL + PostGIS.
SpatiaLite is based on MPL 1.1, GPL v2.0 and higher or LGPL v2.1 and higher. The latest version is SpatiaLite 5.0.1.
Further, spatialite_gui is SpatiaLite graphical user interface, SpatiaLite-Tools are SpatiaLite command-line tool, librasterlite2 was SpatiaLite provides the ability to store and retrieve large grid data.
H2GIS is based on the LGPL 3 agreement, and the latest version is H2GIS 1.5.0.
In addition, H2Network provides geospatial routing functions for H2GIS.
Rasdaman (raster data manager) is a flexible and extensible array processing engine that allows the management and analysis of large-scale multi-dimensional arrays, such as sensors, images, simulations, and statistics in the earth, space, and life sciences. From simple geographic image services to complex analysis, rasdaman provides full-featured support for spatio-temporal grid data. rasdaman supports a variety of commonly used clients, including Leaflet, NASA WorldWind, QGIS, R, and python.
The main features of rasdaman include:
- Fast: Concurrently access tens of billions of archives and terabytes of objects within a few seconds.
- Scalable: From laptops to highly concurrent, highly available cloud and server clusters.
- Flexibility: Use "array SQL" for navigation, extraction, processing, and ad hoc queries. Array data can be stored in traditional databases, rasdaman optimized files or existing archives.
- Open standards: follow OGC standards WMS, WCS, WCS-T and WCPS.
- Free: consists of a dynamic, mature open source project managed by Jacobs University, the Open Source Spatial Information Foundation OSGeo incubation.
- Cost saving: smart, economical resource utilization and free source code.
GeoMesa is an open source tool suite that supports large-scale geospatial data query and analysis based on distributed computing systems, allowing users to manage and analyze massive spatiotemporal data sets of the Internet of Things, social media, tracking, and mobile phone applications. GeoMesa is a member of the LocationTech project team of the Eclipse Foundation .
GeoMesa provides spatiotemporal indexes based on databases such as Accumulo, HBase, Google Bigtable, Redis, and Cassandra, which can store a large amount of point, line and polygon data. GeoMesa also provides near real-time stream processing of spatio-temporal data by building hierarchical spatial semantics on top of Apache Kafka. GeoMesa integrates various client APIs and protocols that follow the Open Geospatial Information Consortium OGC through GeoServer , such as WFS and WMS. GeoMesa supports custom distributed geospatial analysis based on Apache Spark.
GeoMesa is based on the Apache Version 2.0 protocol, and the latest version is GeoMesa 3.2.0.
In addition to the database systems introduced above, many traditional database management systems also provide spatial data support, including Oracle, MySQL, Microsoft SQL Server, Db2, MongoDB, Redis, Elasticsearch, etc. You can view the relevant database documents for details.