Spatial SQL

Accomplish Miracles - Automatically!

Spatial and Non-Spatial Data

Data that powers decisions, wealth creation and success in today's world is not your grandfather's data: today
you need seamless capability to manage and understand data in the context of location - spatial data.
Classic database engines are great for traditional data but they lack features and architecture required by today's spatial data.
Classic DBMS cannot match the power, convenience and performance of Manifold machinery purpose-built to master spatial data demands.

It's a Database World

Far more than just a client, the Manifold engine provides a massively powerful database and SQL query engine
built for large, complex transactions characteristic of spatial data and spatial data engineering. The
Manifold SQL query engine and database were created from the ground up for automatic, massive parallelism in everything.
Manifold's raw speed and massively parallel performance to keep up with big data servers as a client and to accomplish spatial
engineering magic on the desktop in seconds or minutes and not hours or days with today's spatial data. You cannot glue such
power onto legacy software: it must be designed in and built as an integrated system from the very first line of code.

"That EXECUTE [[....]] statement still has me smiling. I now find myself mixing and matching SQL Server, PostGIS, SpatiaLite, and Manifold on a daily basis. I think knowing how to integrate SQL Server with Radian is a killer skill in the Microsoft ecosystem.
" - Forum post

Our Kind of Data

The Radian database engine was designed from the ground up to handle spatial data in all the forms you will
need: vector data, raster data, curvilinear objects, Z data, multichannel data and any pixel type. Specialized infrastructure, like
an exceptionally rich selection of dedicated indexes, guarantees the fastest possible pipeline between parallel data access and massively parallel
algorithms. Manifold's SQL query engine optimizes automatically for the special needs of spatial data types and parallel algorithms. It's all under the hood
so when you step on the gas the system roars. Point it where you want to go and Manifold does the rest.

Be Friends with Everybody

The world's spatial data - your spatial data - hangs out in a host of database servers, file databases, web server sources
and file formats. Manifold connects to them all. Better still Manifold connects to and works with multiple sources. Transfer and blend data from multiple
sources at once. Write SQL in Manifold to move data directly from PostgreSQL into SQLite:

SELECT * INTO [sqlite_connection]::[roadtable]
FROM [postgres_connection]::[public.roads]

"Because I can use a command window to write native queries Radian is effectively a client for Postgresql, or indeed any other DBMS - I no longer need to rely on PGAdmin." - Forum post

Everything is Exposed

Manifold exposes all aspects of data manipulation to the database. All metadata and properties, all tiles and geometry, every pixel
and every coordinate system, every attribute, every property, every bit of metadata, all of it is at your fingertips to manipulate with SQL or with dialogs. Extensive functions for coordinate systems
and other infrastructure make it easy to hammer vast quantities of data into exactly the form you desire, with surgical precision. Complex formatting applied to one
image that you want in another? Easy - copy and paste the style value from one to the other in the metadata table. Use a dialog, cobble up some SQL or call a
script to do that for thousands of images at once. Everything is possible.

Everything is Parallel

Superior spatial database engineering requires parallel power, and parallelism cannot be glued on to non-parallel code. It has to be built-in from the ground up.
Manifold was created from the ground up as an always-on, fundamentally parallel system. The Manifold database engine is a parallel engine and Manifold SQL
automatically runs parallel by default. That's what the THREADS statement specifies, how many THREADS to launch. By default it is what the SystemCpuCount()
function reports, the total number of CPUs and CPU cores available. 32 cores? Manifold uses them all.

Supercomputer Speed with GPU

GPU acceleration works everywhere in Manifold SQL where worthwhile work arises: in the SELECT list, in WHERE, in EXECUTE, ...everywhere.
For example, if you add to a table a computed field that combines multiple tiles together, that computed field will use GPGPU.
If you do some tile math in a FUNCTION, that FUNCTION will use GPGPU as well.

You don't have to write something special or learn programming environments like CUDA. Use the same SQL you already know and
Manifold automatically parallelizes it to use GPGPU.

When you write something like SELECT tilea + tileb ∗ 5 + tilec ∗ 8 FROM ..., the Manifold engine takes the expression with
three additions and two multiplications, generates GPGPU code for that function in a Just In Time, JIT manner and
uploads the resulting code to GPGPU to execute the computations. Manifold will often do in seconds what takes non-Manifold software minutes or even hours.

Pluggable Scripts

Mix and match scripts with SQL to achieve any task: Manifold includes built-in V8 Javascript, C#, JScript, JScript.NET,
VB.NET and VBScript plus automatic support for IronPython, IronRuby, F#, PerlScript and PythonScript when installed. Write a function in C#
and call it from SQL. Launch a query within a Python script. Scripts can use SQL query functions as if they were implemented in the object model.
Use whatever is easiest and works for you.

virtuoso Spatial Functions

Whatever your tool does not provide you get to write yourself. Radin provides every tool you need to blend, transform, analyze and
manipulate the world's most complex spatial data in a flash. Manifold's sophisticated parallelized spatial operators, like topology and spatial overlays,
work with mixed objects, pathological geometry and do not require special data cleaning or simplification before use. Hundreds of specialized Manifold functions
are waiting for you patiently on the shelf, tucked unobtrusively out of the way but bristling with power, ready to work for you when your SQL calls them into play.

Our Place or Yours?

Execute queries that mix and match Manifold functions and SQL with what an external query engine can do: Use Manifold within Oracle or vice versa. Manifold slices queries for dispatch where you want.

"Yes, I shall take credit as being the first living human to ever do this
(I feel just like Neil Armstrong, or Rosa Parks). OK, that's a bit of stretch :-)
But, think about what we are doing: 1. I've written a SQLite/spatiaLite query (it could have easily been PostGIS, Oracle, SQLServer) [...]
2. I am selecting the result of the SQLite query and combining it with a Manifold spatial function.
3. The result is being selected back into a SQLite table.
This is an excellent example of how Manifold really can be a Rosetta Stone to all the different packages
out there, in a truly unique way. What other product can pull this off ?"
See the video at this blog link: One of the coolest GIS features I’ve ever seen

Location, Location, Location

Automatic support for over 6500 different coordinate systems and over 1500 coordinate system transformations, including all
of EPSG and numerous other spatial reference systems. SQL and Template functions provide full convertability between GeoJSON, WKB, WKT, GML and other systems as well as
extensive support for parallelized coordinate system transformations for rasters and vectors.

Perfect Precision

Exceptionally high precision coordinate system and base coordinate system transformations including all standard high precision routines used worldwide.

Manifold Writes SQL For You

You know those "Hello, World" moments when you really would like to see how it's done in a new system, to learn how to cut through
infrastructure and do what you want? Manifold makes that easy for you by automatically writing SQL to show you how it's done.

Want to see how a point-and-click template works? Click the Edit Query button and Manifold launches a command window loaded with the SQL the template executes so you can see what functions are being used.
It's a live query, so you can customize the SQL as you like or copy and paste into new queries.

See Manifold technology in action Watch the Select and Transform in a Neolithic Relics Database YouTube video
of Manifold Viewer enabling interactive selection and transformation using point and click dialogs, to help find Neolithic relics in France. The video also shows how Manifold can automatically write SQL for you.

SQL Everywhere

You can use snippets of SQL everywhere in Manifold. When a point-and-click combo box allows you to pick a field
you can write an SQL expression into that combo box to customize what the dialog does.

Maybe we want to copy a value into a field from a Date field
but instead of copying the Date we want to copy the day of the month, but as a text value. No problem - we write CAST(DateTimeDay([Date]) AS NVARCHAR) into the combo box
instead of simply choosing the Date field. We not only get the day of the month, we also CAST it into text form.

Nothing is Too Complicated

If you are doing computations Manifold massively parallel GPU power is fast. Really fast. Gains are usually from 20 times faster to 100 times faster running typical computations on low end, dirt cheap GPU cards. Running complex computations on faster cards, performance is often 100 to 200 times faster than using CPU alone. It's fairly common to do in a second or two what takes more than five minutes without Manifold.

If your time is worth more than minimum wage and you're doing anything that requires your machine to think at a higher level than your coffee pot timer, you'll often pay back the cost of a Manifold license the first time you use it for anything serious. It's that fast. Nothing else comes close.

Why does this page have a photo of Sainte Chapelle? Because Sainte Chapelle is perfect,
the highest and best implementation of Gothic aspirations in architecture. Manifold SQL is like that too - not perfect
like Sainte Chapelle, but for spatial work head and shoulders above all else and devoted to honoring the mighty idea that is SQL. Try it and see if you agree.

Experience Manifold Power in a Free Tool

Manifold Viewer is a read-only subset 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. Manifold Viewer delivers a truly useful, Radian technology tool you can use for free to experience Manifold power firsthand.
See Viewer in action Watch the Manifold Viewer Introduction YouTube video.

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!

&nbsp

The Big List

Tired of "spatial" SQL products that provide a handful of functions? That's not Manifold. Manifold has you covered for every possible need
with a vast selection of SQL statements, operators and functions. Manifold's spatial experts with decades of experience in
spatial engineering have provided everything that everyone from a novice to maximum expert will want, all neatly organized within the query builder with
easy filtration to find just the right function for a task. Following is the big list of most, but not all, of what you get in SQL with Manifold.

ALTER

ADD PROPERTY

DROP PROPERTY

ALTER TABLE

ADD

ADD CONSTRAINT

ADD INDEX

DROP

DROP CONSTRAINT

DROP INDEX

RENAME

RENAME CONSTRAINT

RENAME INDEX

CREATE

PROPERTY

CREATE DATASOURCE

CREATE ROOT

CREATE TABLE

CONSTRAINT

INDEX

ASC/DESC

COLLATE

CASE/NOCASE

ACCENT/NOACCENT

SYMBOLS/NOSYMBOLS

TILEREDUCE

DELETE FROM

DROP ROOT

DROP TABLE

EXECUTE WITH

FUNCTION

ENTRY

ENTRYSCHEMA

INSERT INTO

PRAGMA

PRAGMA PUSH

PRAGMA POP

RENAME TABLE

SELECT

DISTINCT

COLLECT

WHERE

ORDER BY

OFFSET

FETCH

INTO

GROUP BY

BATCH

THREADS

UNION EX /INTER

UPDATE

USE CHILD

USE PARENT

VALUES

MOD

DIV

BITNOT

BITAND

BITOR

BITXOR

LIKE

BETWEEN

IN

IS NULL

NOT

AND

OR

XOR

CAST

CASTV

CASE WHEN

CASE

EXISTS

Avg

Corr

Count

Covar

CovarPop

First

GeomMergeAreas

GeomMergeLines

GeomMergePoints

GeomUnionAreas

GeomUnionBoxes

JoinAnd

JoinBitAnd

JoinBitOr

JoinBitXor

JoinOr

JoinXor

Last

Max

Median

Min

StDev

StDevPop

StringJoinTokens

Sum

Var

VarPop

Abs

Acos

Acosh

Asin

Asinh

Atan

Atan2

Atanh

BinaryWkbGeom

Cbrt

Ceil

CeilDecs

Chr

Coalesce

Collate

Compare

ComponentCoordSystem

ComponentName

ComponentPath

ComponentProperty

ComponentType

CoordConvert

CoordConvertPoint

CoordConvertPoint3

CoordConvertTile

CoordConvertTrace

CoordConverterIsIdentity

CoordConverterIsScaleShift

CoordConverterIsXYZ

CoordConverterMake

CoordConverterSteps

CoordDatum

CoordDatumDefault

CoordDatumEpsg

CoordDatumParameters

CoordDatums

CoordSystem

CoordSystemDefault

CoordSystemDefaultLatLon

CoordSystemEpsg

CoordSystemOverride

CoordSystemParse

CoordSystemParseEpsg

CoordSystemParseOverrides

CoordSystemParseSrid

CoordSystemParseSridSubtype

CoordSystems

CoordSystemTypeParameters

CoordSystemTypes

CoordTransform

CoordTransformEpsg

CoordTransforms

CoordTransformTypeParameters

CoordTransformTypes

CoordUnit

CoordUnitByName

CoordUnitDefault

CoordUnitDefaultLatLon

CoordUnitEpsg

CoordUnits

Cos

Cosh

DataLength

DateTimeDay

DateTimeHour

DateTimeMillisecond

DateTimeMinute

DateTimeMonth

DateTimeSecond

DateTimeYear

Erf

Erfc

Exp

Exp10

Exp2

Expm1

Floor

FloorDecs

Fract

FractDecs

GeocodeAddress

GeocodeAddressMatches

GeocodeAddressSupported

GeocodeLocationMatches

GeocodeLocationSupported

GeomAdjacent

GeomArea

GeomBounds

GeomBox

GeomBranch

GeomBranchCount

GeomBranchFirst

GeomBranchLast

GeomBuffer

GeomCenter

GeomCenterInner

GeomCenterWeight

GeomClip

GeomContains

GeomConvertToArea

GeomConvertToLine

GeomConvertToPoint

GeomConvexHull

GeomCoordCount

GeomCoordXY

GeomCoordXYZ

GeomDistance

GeomDistancePoint

GeomDistancePoint3

GeomGml

GeomHasCurves

GeomHasZ

GeomIntersects

GeomIsArea

GeomIsLine

GeomIsNormalized

GeomIsPoint

GeomJsonGeo

GeomLength

GeomLinearize

GeomMakeCircle

GeomMakePoint

GeomMakePoint3

GeomMakeRect

GeomMakeRectDiagonal

GeomMakeSegment

GeomMakeSegment3

GeomMakeTriangle

GeomMakeTriangle3

GeomMergeAreasPair

GeomMergeLinesPair

GeomMergePointsPair

GeomNormalize

GeomNormalizeTopology

GeomOrtho

GeomOverlayAdjacent

GeomOverlayContained

GeomOverlayContaining

GeomOverlayIntersecting

GeomOverlayTopologyIdentity

GeomOverlayTopologyIntersect

GeomOverlayTopologyUnion

GeomOverlayTopologyUpdate

GeomOverlayTouching

GeomRemoveCurves

GeomRemoveZ

GeomRotate

GeomScaleShift

GeomScaleShiftZ

GeomScaleToSystem

GeomScaleToSystemCff

GeomScaleToUnits

GeomScaleToUnitsCff

GeomSegmentize

GeomSetZ

GeomSmooth

GeomToBranches

GeomToCoords

GeomToSegments

GeomToShapes

GeomToShapesEsri

GeomTouches

GeomTriangulate

GeomTriangulateLines

GeomType

GeomUnionAreasPair

GeomUnionBoxesPair

GeomVoronoi

GeomVoronoiLines

GeomVoronoiPoints

GeomWithin

GeomWkb

GeomWkt

Hypot

J0

J1

Jn

Lgamma

Log

Log10

Log1p

Log2

NullIf

PragmaValue

Rcbrt

Round

RoundDecs

Rsqrt

Selection

SelectionForWindow

SelectionIsEmpty

SelectionIsInverted

SelectionKeys

Sign

Sin

Sinh

Sqrt

StringCompareCollate

StringCompareKeyCollate

StringContains

StringContainsCollate

StringEndsWith

StringEndsWithCollate

StringEscape

StringEscapeEncode

StringEscapeJson

StringFind

StringFindCollate

StringFindNth

StringFindNthCollate

StringGmlCoordSystem

StringGmlGeom

StringJsonArray

StringJsonBoolean

StringJsonGeoCoordSystem

StringJsonGeoGeom

StringJsonNumber

StringJsonObject

StringJsonValue

StringLength

StringPadEnd

StringPadStart

StringRegexpCount

StringRegexpFind

StringRegexpFindNth

StringRegexpMatches

StringRegexpReplace

StringRegexpReplaceNth

StringRegexpSubstring

StringRegexpSubstringNth

StringReplace

StringReplaceCollate

StringReplaceNth

StringReplaceNthCollate

StringReverse

StringSoundex

StringStartsWith

StringStartsWithCollate

StringSubstring

StringSubstringLen

StringToCharacters

StringToJsonArrayValues

StringToJsonObjectValues

StringToLowerCase

StringToLowerCaseCollate

StringToRegexpMatches

StringToTitleCase

StringToTitleCaseCollate

StringToTokens

StringToUpperCase

StringToUpperCaseCollate

StringTranslate

StringTrim

StringTrimEnd

StringTrimStart

StringUnescape

StringUnescapeDecode

StringUnescapeJson

StringWktGeom

SystemCpuCount

SystemGpgpuCount

SystemGpgpus

Tan

Tanh

Tgamma

TileAbs

TileAcos

TileAcosh

TileAsin

TileAspect

TileAtan

TileAtan2

TileAtanh

TileBgrHcy

TileBgrHsi

TileBgrHsl

TileBgrHsv

TileBlur

TileBlurDirection

TileBlurGaussian

TileCbrt

TileCeil

TileChannel

TileChannelCount

TileChannels

TileChannelsConcat

TileCombine

TileCompare

TileContrast

TileCos

TileCosh

TileCut

TileCutBorder

TileCutRect

TileEdges

TileEdgesDirection

TileErf

TileErfc

TileExp

TileExp10

TileExp2

TileExpm1

TileFill

TileFloor

TileFloorDecs

TileFract

TileFractDecs

TileHcyBgr

TileHsiBgr

TileHslBgr

TileHsvBgr

TileHypot

TileJ0

TileJ1

TileJn

TileLgamma

TileLog

TileLog10

TileLog1p

TileLog2

TileMakeNew

TileMaskExtract

TileMaskReplace

TileMax

TileMin

TileNoise

TileRcbrt

TileRound

TileRoundDecs

TileRsqrt

TileSharpen

TileSign

TileSin

TileSinh

TileSlope

TileSqrt

TileTan

TileTanh

TileTgamma

TileToValues

TileToValuesX2

TileToValuesX3

TileToValuesX4

TileTrunc

TileTruncDecs

TileUpdatePyramids

TileY0

TileY1

TileYn

Trunc

TruncDecs

UuidMakeNew

ValueCount

ValueMax

ValueMin

ValueSequence

VectorBgrHcy

VectorBgrHsi

VectorBgrHsl

VectorBgrHsv

VectorHcyBgr

VectorHsiBgr

VectorHslBgr

VectorHsvBgr

VectorMakeX2

VectorMakeX3

VectorMakeX4

VectorValue

VectorValues

Y0

Y1

Yn

Manifold imports everything: Manifold works with hundreds of different data sources, including almost any file format,
database, or web protocol imaginable. The image shows parcel data in Australia imported from a MapInfo TAB format file.

About Manifold

Manifold products deliver quality, performance and value in the world's most sophisticated, most modern and most powerful spatial engineering products. Total integration ensures unbeatably low cost of ownership. Tell your friends!