How to Buy
GIS is Better with Real SQL
SQL is the world's standard for manipulating data. If you rely on the phenomenal power and convenience of SQL in databases, you need that same power and convenience in your desktop GIS.
Surprisingly, GIS packages like FME, Global Mapper, QGIS, and ArcGIS Pro have either no built in SQL at all or a subset too limited to be real SQL. Manifold includes real, full-featured SQL built in while other desktop GIS packages do not:
- FME - No SQL.
- Global Mapper - No SQL.
- MapInfo Pro - SQL subset with limited Select and Join in dialogs. No SQL for rasters.
- QGIS - No native SQL. Depends on SQLite, PostGIS, etc.
- ESRI ArcGIS Pro - Very limited SQL subset, for simple expressions with a few functions. No SQL for rasters. See the SQL: Manifold vs. Arc comparison page.
- Manifold - Real SQL, with the world's best spatial SQL built in: no need for an external DBMS. Works for all data, including rasters, vector, and tables. The only SQL that is automatically CPU parallel and GPU parallel. Includes hundreds of spatial SQL functions. See the Manifold Spatial SQL page for more.
Real SQL or Just a Client to Something Else?
Most desktop GIS packages don't have real SQL, although some can connect as dumb clients to DBMS packages that do have SQL. Those GIS packages depend totally on whatever the external data source can do. If the data source doesn't have real SQL, the GIS doesn't have it either. Connect to a different DBMS and you need to learn a different SQL, whatever SQL that different DBMS uses.
- Clients - If an external DBMS package with SQL is used, FME, QGIS, and ArcGIS Pro can launch queries in that DBMS's SQL, but only for data in that DBMS. QGIS can also provide partial SQL functionality for views by opening a temp file in SQLite.
- Manifold - Manifold can be a client too, even while it is acting as its own server. Manifold can query external DBMS sources using Manifold SQL, or the native SQL for the package, or mix of both in the same query. Manifold can mix data from different DBMS sources in the same query.
It's easy to tell if a GIS is just a client instead of having real, built in SQL capability: connect to a shapefile or to a GeoTIFF and run an SQL query like the simple example below. If the package can't do that, it doesn't have real SQL.
For example, suppose your shapefile has lines for highways in the US, with Name and Length attributes for each highway, but each highway, like Interstate 80 across the US, is represented by many small lines laid end to end instead of one big line. Does the package allow writing a simple query to merge all like-named lines into a single polyline, adding up their lengths, and placing the result in a new table? If not, the package doesn't have real SQL.
Here's the simple query to do that in Manifold, using one of Manifold's many SQL functions to merge the lines:
INSERT INTO [merged roads] ([Name], [Length], [Geom]) SELECT [Name], Sum([Length]), GeomMergeLines([Geom]) FROM [roads] GROUP BY [Name];
A few, simple lines of SQL can easily replace hundreds of lines in scripting code that re-invent the wheel for GIS packages that don't have SQL. Manifold can run the above query, but FME, Global Mapper, MapInfo, QGIS, and ArcGIS Pro cannot. For other examples, consider simple UPDATE queries, adding data with JOINs and other routine SQL queries.
Check the Documentation
Another way to tell if a GIS package has real SQL is to search for "SQL" in the user manual. If it doesn't have a chapter with many topics providing an SQL reference and full discussion of how to use SQL, it doesn't have real SQL.
Search for "SQL" in the Manifold User Manual search box and you get almost 500 topics, including numerous, step-by-step SQL example topics. The main set of reference SQL topics appears in the SQL chapter in the user manual.
Search for "SQL" in the documentation for FME, Global Mapper, QGIS, or ArcGIS Pro and you find absolutely nothing about SQL, or a discussion of how to use SQL in an external DBMS like SQL Server or PostgreSQL, or, in the case of ArcGIS Pro, a one page discussion of Arc's limited capability for SQL expressions.
Although the MapInfo User Manual table of contents does not mention SQL, MapInfo provides limited SQL select and join functionality in the form of dialogs.
No Database? ...No SQL
Other desktop GIS packages don't have real SQL because they have no internal DBMS at their cores. Almost all originally were designed as viewers of data stored in external data sources, so they don't have their own data storage engines inside the GIS. Because they don't have their own data storage engines, they don't have real SQL either. Instead, they connect as dumb clients to external DBMS packages that do have SQL, like Oracle or PostgreSQL DBMS servers, or to file databases like Microsoft Access or SQLite. That means you only get SQL when connecting to those data sources, and you get zero SQL with hundreds of other formats or data sources.
QGIS is a good example of a viewer/client GIS that is not a database itself and has no native SQL: there's no such thing as importing data from a file format, like GeoTIFF, into QGIS and then doing SQL on the raster data. Q has to leave the data in the file format or data store to which it has connected. If that data store is a DBMS package with the SQL capabilities you want, you're in luck and you can use Q as a client to launch queries in that DBMS. You're out of luck for real SQL if the data source, like GeoTIFF or a shapefile, is not a DBMS package that provides SQL.
QGIS can create temporary SQLlite files that provide views of vector layers that are not databases, but only with data compatible with Spatialite (no rasters) and with the crushingly slower performance of routing data out to and back from the external SQLite file. The limited SQL subset available allows no UPDATE or other manipulation of the original data the way a real SQL person expects, so it's not like having real SQL built into the GIS.
ESRI's ArcGIS Pro is a bit higher up the evolutionary ladder in that it provides some native "SQL-like" capabilities even when not connected to a real DBMS package like Oracle, MySQL, or SQL Server. But those capabilities are such an extremely limited subset of SQL, basically only using SQL syntax in simple expressions, that you don't get the power of real SQL. Surprisingly, that's true even when connected to ESRI's own file geodatabases. If you want real SQL when connected to an ESRI file geodatabase, you have to use Manifold.
Astonishing Speed and Parallel Power
Unlike other desktop GIS packages, Manifold is built from the ground up as one of the world's most modern and fastest SQL machines. Manifold internally is a very fast, fully parallel spatial DBMS designed for GIS use, that includes a fully parallel SQL query engine. Write ordinary SQL and the Manifold query engine automatically parallelizes it to run CPU parallel in many CPU threads, as well as running massively parallel in hundreds or thousands of GPU cores as well. No other desktop GIS can do that.
Manifold's SQL is so incredibly fast and so highly optimized that complex SQL queries in Manifold usually will execute faster than equivalent programs written in C++. In most applications, Manifold SQL is usually faster than PostgreSQL/PostGIS for vector GIS work and dramatically faster than PostgreSQL/PostGIS with raster data, at times doing in minutes what takes hours in Postgres. PostgreSQL is a fast DBMS, so that's saying a lot.
Parallel SQL in Manifold also is dramatically faster than non-parallel scripting using ArcPy or Python, even when using well-known libraries like pandas. In extreme cases, when Manifold's on the fly SQL optimizer can dispatch heavy math work to a massively parallel computation on thousands of GPU cores, Manifold SQL can do in a few minutes what can take days in Arc. That's not just a fully-implemented SQL, that's an SQL with parallel GPU power you can't get in Oracle, SQL Server, MySQL or PostgreSQL/PostGIS. Amazing!
"Manifold's function works flawlessly, seamlessly piping the data from SQL Server, through the M9 function and the result back out to the table on SQL Server. It has replaced a slow ArcPy script of a few hundred lines with a few lines of SQL which achieve the same near instantaneously. The ability to use Manifold to supplement functions missing from other DBMS is amazingly powerful." - Corporate SQL Server setup, Forum post .
Easy to Learn, Always Available
With other GIS packages, besides not having any SQL at all for hundreds of different data sources, in the handful of data sources where you do get SQL it comes with lots of extra complexity. If you get SQL at all, the SQL you get depends on the data source you connect to. Connect to a shapefile and you get zero SQL with QGIS, and near-zero SQL with ArcGIS Pro. Connect to Oracle, SQL Server, MySQL, or Postgres, and you'll have to learn four different SQL variations since a different SQL is used with each.
Want to write just one SQL query that works with all your data sources, and all those different DBMS packages? Can't do that, because they all have different SQLs with different capabilities for handling rasters and vectors. Import a 100GB GeoTIFF and use SQL to do spatial joins on raster data? Can't do that at all with Arc or Q but it's fast and easy and built in with Manifold.
With Manifold you always have at your fingertips the same, full-power, fully-articulated SQL, both for native Manifold projects and for hundreds of different data sources, raster and vector, no matter what data source you connect to, from shapefiles to GeoTIFFs to LiDAR to SQL Server. Write a single query in Manifold SQL and you can use that same query with data stored in Oracle, PostgreSQL, SQL Server, shapefiles, ESRI geodatabases, or SQLite. You also can use the data source's native SQL if you prefer, even mixing both native SQL and Manifold SQL in the same query.
For example, the same query could launch native SQL on an Oracle server for server-side extraction of records of interest, and then use Manifold SQL in the same query to analyze those records using the astonishing speed of massively parallel GPU computation using thousands of cores on your desktop. No other desktop GIS can do that, and none of the big DBMS servers provide the very wide roster of CPU parallel and GPU parallel SQL functions Manifold provides.
If you like using SQL in data science and DBMS, the so-called "SQL" features in other GIS packages will drive you nuts with their limitations. In contrast, when you launch Manifold the higher your standards for SQL, the more you'll be pleased by the breadth and depth of SQL in Manifold, with total mastery of details in an outstanding, professional query engine and SQL implementation. Manifold not only delivers a superior SQL within its own native spatial database engine, it also delivers superior SQL use when connected as a client to world class DBMS packages like Oracle, SQL Server, MySQL, PostgreSQL/PostGIS, and DB2.
Links and Sources
For comparisons to other systems, this page uses information from the following links:
- Manifold - Release 9 User Manual
- FME - FME Platform Documentation page
- Global Mapper - Global Mapper User Guide
- MapInfo Pro - MapInfo Pro v2019 User Guide
- QGIS - QGIS 3.16 User Guide
- ESRI ArcGS Pro - ArcGIS Pro SQL Reference
Manifold Viewer is the free, read-only version of Manifold Release 9. Although Viewer cannot write projects or save edited data back out to the original data sources, Viewer provides phenomenal capability to view and to analyze almost all possible different types of data in tables, vector geometry, raster data, drawings, maps and images from thousands of different sources. Viewer includes full SQL as well, with hundreds of spatial and other analytic functions.
Viewer can also create and write spatial indices for entire folders full of LiDAR files, save connections to favorite files and data sources, and even edit and save localization files to translate Manifold into new languages.
Manifold Viewer delivers a truly useful, fully CPU-parallel and GPU-parallel Manifold tool that gives you parallel power and endless Manifold capabilities at zero cost. No need to register, no adware, no requests for donations and no selling: use Viewer however you like, including commercial purposes. You can even redistribute Viewer, all for free.
Viewer is a great way to share the amazing projects you create in Manifold for free. Publish multi-hundred GB projects created in Manifold that anybody can pop open in 1/10th second for free using Viewer. Publish projects that include automatic connections to your organization's databases and worldwide webserved data, and include pre-built, sophisticated analytics and dynamic reporting that users can launch with a point and click. Track pandemics, help first responders fight wildfires, or just help your organization do a better job.
Viewer's small download (only 50 MB), instant launch, and clean display - free of convoluted ribbons and endless, confusing buttons - make it perfect for unskilled users. With Viewer a million people can share the dazzling analytics and insights you create with a single $95 Manifold license, all at fully parallel speed with no need to pay for costly, cloud-based, web processing. Like Manifold, Viewer never crashes, no matter how big or complicated the job.See Viewer in action Watch the Manifold Viewer Introduction YouTube video.
"Mfd 9 is becoming a really good tool for sharing data with non-GIS folks. Clean interface makes it easy to teach others simple tasks. Easy to transfer a project. Easy to install software. Free viewer." - Forum post
Buy Now via the Online Store
Buy Manifold products on the Online Store. The store is open 24 hours / seven days a week / every day of the year. Orders are processed immediately with serial number email sent out in seconds. Use Manifold products today!
Manifold® products deliver quality, performance and value in the world's most sophisticated, most modern and most powerful spatial products for GIS, ETL, DBMS, and Data Science. Total integration ensures ease of use, amazing speed, and unbeatably low cost of ownership. Tell your friends!