Drawings are also called vector data, or just vectors
for short. Drawings include point cloud data like LiDAR data.

Images are also called raster data, or just rasters
for short. Images in Manifold include all sorts of raster data,
not just photographic images. Terrain elevation data as rasters,
multi-channel data such as radar reflectivity or temperatures, and any
other form of raster data are called images
as well.

Data sources can be any one
of a seemingly infinite variety sources for data, such as almost all file
formats, almost all databases either as server DBMS or file databases,
and almost every web-based source that is known, such as tile servers,
OSM sources, WMS, GEOJSON servers, WFS, WMTS, TMS, Bing, Google, and many
others. Manifold can import or link a truly staggering range of
data sources.

Launch

Manifold System is built on Radian technology for the fastest GIS ever.
Nothing is faster than opening a Radian format Manifold .map file. It opens instantly.
Watch the YouTube
videos to see the eye-popping speed of the new .map format.

Launch
a new project: Launch Manifold and it opens with a new,
blank project.

Launch
an existing project: Launch Manifold and use File
- Open to open an existing .map
project file.

Or...double-click on a Manifold
.map file to open that
project.

Or...drag and drop a .map file
onto an open Manifold session.

Launch
a Release 8 project: Launch Manifold and use File
- Open to open the Release 8 .map
file. Wait for the slow import while it is converted to the
new .map format. This
is a one-time hassle. Important:
Manifold always saves to
Radian format .map files,
so Save as to a new name if
you want to save the original in Release
8 format. Once your project is saved to the new .map format it will open
instantly in Manifold.

For new projects, the fastest way to work is to import
data into Manifold and then save everything in a Manifold .map
project. Manifold .map files
open instantly, even when they are huge. Migrate the data you use
into Manifold .map storage from
other formats. Export to legacy formats for interoperability, but
enjoy the unbeatable speed of Manifold .map
projects for your own work.

Add

Import
tables, drawings, images and other data. That brings the data
into Manifold and stores
it in the project for maximum
speed and maximum capabilities. Manifold can read
virtually every format and data source in existence. See
the Big
List of Formats and Data Sources topic for the huge list.

Link
data from outside sources. That makes the data available within the project as
if it had been imported, but leaves the data stored outside
of the project. Links leave data "in place"
in its original format. Most formats are slower and more limited compared
to Manifold.

Add
a Data Source. A more sophisticated, flexible way
of linking data from many different formats and sources. This
is how we connect to database servers like Oracle or to web servers
like Google and Bing.

Link an
existing Manifold .map file
into the project. Use data stored in other .map
files with zero overhead
and no performance hit. Maintain
huge archives of data in .map
files and link whatever you want into your project.

Multiple
sessions: Launch Manifold more than once with different projects.
Copy and paste
between different sessions.

Create
new stuff. Use automatic tools like queries and scripts
to create new components, or create them manually with slick editing
tools. Now that you have Manifold, use it for everything.

Work

Tables:
All data in Manifold is kept in tables. Tables can be huge in Manifold.

Table windows show tables in a classic, row and column
presentation. When tables are big we work with them using
queries.
Tables can contain geometry
data for vector drawings and tile
data for raster images.

Drawings, labels, and images visualize data from tables.
They do not
contain any data: they just show data from a table based on what
their properties tell them to show.

Interactive
Edits:Edit
tables, edit
drawings and edit images in windows. Drawings
and images visualize data from tables. To edit a drawing or
an image, the table it visualizes must be editable and must have an
index. See the Editing
Tables topic.

Contents pane:
Shows key information about whatever window or layer is active, and
opens panels providing editing and formatting. Use the
Contents pane to assign an initial coordinate system or to re-project
a drawing or image into a different coordinate system, to view field
values for objects, to support editing and much more.

Command Window: Write and execute
SQL queries
or write scripts.
The Command Window is the first stop for SQL wizards. Automatically
parallelize a query by adding a THREADS
SystemCpuCount() command.

Transform Panel: Endless
capabilities for manipulating data using point and click templates
or SQL expressions. The power of SQL for everyone.

Linked
items and data sources are automatically updated either immediately
or when we save the project, depending on the data source.

Convert
an entire linked data source, like an entire PostgreSQL server, in
a single step into Manifold .map
project format by right-clicking on the data source and choosing Export, to export to a .map project. Manifold
will automatically harvest all the drawings, images and tables and
create a .map
project that stores them all.

Switch
to a different project by, choosing File
- Open or File - New.
Manifold will prompt to save any changes before closing the
current project and moving on to the next project.

Compose
and Print
a layout
to share work as a PDF or printed material.

Print
a map, drawing, image, or labels window to PDF or hard copy using
Print
Preview, which creates a virtual layout on the fly that
can be immediately printed.

Exit
Manifold using File - Exit
or by clicking on the red
X button in the upper
right corner. Manifold will prompt if any changes have not been
saved.

A great way to learn SQL with Manifold is to ask Manifold to automatically
write SQL for you and then to copy and adapt what Manifold creates. See
the SQL
Example: Learning to Union Areas in SQL from Edit Query topic
for an example. Use the web and read books on SQL. It's easy
to learn and incredibly powerful.

Learn scripting
to do even more. V8 JavaScript, a really fast scripting engine,
is built into Manifold so it
is always-on and easy to use. Manifold supports ten other scripting
languages if you prefer something else.

Projections / Coordinate Systems

Imports and Projections

When importing data, Manifold will use whatever coordinate system the
source says should be used for that data. Most modern formats
used in GIS will automatically specify the coordinate system to be used.

Some formats, usually older formats with older data or CAD formats not
designed for spatial data, do not
specify what coordinate system should be used for the data. When
Manifold imports data from a format that does not
specify the projection to use, Manifold will assign the default Pseudo-Mercator coordinate system
to the imported components as a provisional placeholder. To warn
us that initial assignment is just a placeholder Manifold will use red text in the
Contents
pane. That default assignment will almost certainly be wrong
so immediately after import we
must specify the
correct initial coordinate system to use.

To specify the correct projection, launch Assign Initial Coordinate
System from the Contents pane and specify what projection should
be used. That can be difficult to determine in the case of older
data. When downloading data from the web or other sources, always
look for any accompanying notes or metadata information that says what
projection is used for the data.

If we have no idea what projection is used and the file is older data,
a good guess would be Latitude / Longitude. For example, shapefiles
that do not have a .prj
file attached to specify what projection they use are often in Latitude
/ Longitude projection.

Default Projection

Manifold applies the default projection listed in the Tools - Options dialog
when creating new components. The factory default projection used
by Manifold is the WGS 84 / Pseudo-Mercator
(EPSG:3857) coordinate system that almost all web servers use.
Newer GIS packages, like ESRI's latest ArcGIS offerings, also use
Pseudo-Mercator as a default.

When we create a new, blank map,
it too begins life using the Pseudo-Mercator
projection. The map then automatically takes on whatever projection
is used by the component that is the first layer added to the map.

Changing the Default Projection

Older GIS packages often use Latitude
/ Longitude as a default. We can change the default
projection in the Tools
- Options dialog if we like, but there are pluses and
minuses to switching to Latitude / Longitude
instead of Pseudo-Mercator.

The modern way to do map backgrounds in almost all modern GIS packages
is to use web
servers to automatically generate the background map layer.
By a margin of about a million to one such web servers use Pseudo-Mercator as their projection
so it makes sense to use that same projection as a default for new
components and maps in Manifold too. Many newer GIS packages
also use the same WGS 84 / Pseudo-Mercator
(EPSG:3857) projection by default, for example, ESRI's latest ArcGIS
family products.

Another big reason to use Pseudo-Mercator
as a default is that the units of measurement are sane, linear units:
meters. That makes it much more difficult for beginners to
massively goof up measurements, as routinely happens when people use Latitude / Longitude without realizing
that the units of measurement are degrees, which change size depending
on latitude.

Projections Manifold Knows

Manifold understands and can work with over 6500 coordinate systems,
including all coordinate systems and transformations specified by the
vast EPSG system. When
importing from or linking to a data source that conveys coordinate system
information Manifold will automatically use the coordinate system specified
for the data, including any projections specific to the data source, such
as SRID designations of coordinate systems used by a particular data source.
See the Projections
topic to learn how to work with projections in Manifold.

Some file formats utilize accessory files such as "world"
files, or .PRJ files to convey coordinate information for formats, such
as shapefiles, which do not automatically convey coordinate system information.
When reading formats Manifold will automatically read coordinate
system information from accompany files, if they exist, in the following
order: "world" files, .PRJ files, .XML files (Manifold System
8.00 accessory file) and .MAPMETA files (Manifold accessory
files). In the event of conflicting coordinate definitions the
last read file wins since the read order is in order of more rigorous
definitions.

Manifold maintains coordinate system information in JSON format to enable
easy interoperability with third party code. When exporting data
to a file Manifold will write a .MAPMETA accessory file saving
the JSON coordinate system information in plain text. When exporting
to shapefiles, Manifold will automatically write a .prj
file with projection information as well.

Importing Files

Importing
or linking a file will create Manifold infrastructure for what
is coming in. For example, import an image from some file format
like JPEG or TIFF and Manifold will create two components: a table component for the data plus
an image component that displays
the data in the table. Import an ESRI shapefile
and Manifold will create a table
for the data plus a drawing component
that displays that data. The variety of data Manifold can import
includes virtually every format and data source in existence. See
the Big
List of Formats and Data Sources topic for the huge list.

Importing a .csv file with one
table in it will create a table.
Importing or linking a file database like an .mdb could
create hundreds of tables, queries and other components at once. Connecting
to an enterprise class DBMS might involve thousands of items, neatly organized
within the hierarchical structure of the DBMS as revealed by Manifold.

Importing a table from an .mdb, .db, .html, .xls, or .wkx file:

Launch 32-bit
Manifold

Choose File - Import.

Browse into the folder where the file is located.

Click on the
filename.

Press the Open
button.

Importing a table from other file formats:

Launch either 64-bit
or 32-bit Manifold

Choose File - Import.

Browse into the folder where the file is located.

Click on the
filename.

Press the Open
button.

Manifold uses Microsoft drivers to connect to Microsoft .mdb,
.db, .html,
.xls, and .wkx
file formats. Because of Microsoft limitations on using 32-bit Microsoft
software in 64-bit Windows systems, to connect reliably to those Microsoft
file formats in 64-bit Windows systems we should use 32-bit Manifold.
Every Manifold license provides both 32-bit and (if our Windows
system is 64-bit) 64-bit Manifold, so when desired we can always launch
Manifold in 32-bit mode to enable use of 32-bit Microsoft drivers.

Modern GIS data formats will specify the projection used by the data.
When a format provides projection information Manifold automatically
will utilize that information to correctly set the projection used by
the data.

When importing GIS data from a file format which does not
provide projection information, when we open that drawing or image Manifold
will warn us that was imported from a spatially-clueless format by showing
the coordinate system read-out in red
text in the Contents
pane.

Example: Importing a Shapefile

ESRI shapefile
format uses 1970's technology but it is still the most widely used GIS
format for interchange. A "shapefile" is an ensemble of
at least three files, ending in .shp,
.shx and .dbf,
and, if we are lucky, a fourth file ending in .prj.

If a shapefile has a .prj to
specify the projection, Manifold will read the .prj
and the shapefile will be imported using the correct projection automatically.
If a shapefile does not
include a .prj file, we must specify the
projection the shapefile should use. If we fail to do that the shapefile
might look OK but it will be junk data that will waste our time later
on.

Importing a shapefile:

Choose File - Import.

Browse into the folder where the shapefile is located.

Click on the
filename that ends in .shp

Press the Open
button.

If the shapefile does not
include a .prj file, we must launch Assign Initial Coordinate
System from the Contents pane to specify the
coordinate system the shapefile is supposed to use.

More Examples

This documentation includes very many examples. Begin with
the big list in the Examples
topic.

Notes

Three
Letter Extensions - Most file names in Windows end in what is called
a three letter extension, which
is usually three letters at the end of the file name following a dot . character. The
three letter extension is one way Windows at times (but not always) keeps
track of what a file is supposed to be. Unfortunately,
by default Windows hides
the three letter extensions of files and instead tries to associate files
with icons of whatever program is normally associated with that file.
This is confusing when working with the many file formats that Manifold
and similar products utilize.

Therefore, please turn
off the hiding of extensions by Windows. A typical way
to do so in most versions of Windows would be from Windows Explorer, choose
Tools - Folder options, press
the View tab and then in the Advanced Settings pane ensure that
the Hide extensions for known file types
is unchecked.
Press the Apply to Folders
and then press OK. You will
then be able to see extensions such as .map
and others. See also the Essay
on three letter extensions and why the default hiding of them by Windows
is such a bad thing.

Why import and then work?
Consider image formats: there are hundreds of different image
formats, all with their own limitations. Instead of forcing
us to learn a hundred different ways to work with images, taking into
account the limitations of each format, Manifold does a conversion when
bringing an image into Manifold
so we only need to learn about
images in Manifold. To export that image out to some
other format Manifold will do a conversion outbound. When an image
is imported
into Manifold, it is no longer
a JPEG or PNG or TIFF image. It is a Manifold image. If
we want to save it as a TIFF Manifold will convert it into a TIFF on the
way out.

Why create a table to import some small
JPEG? Because everything
is stored in a table in Manifold, even small images from a JPEG. That
means nothing is hidden in some
secret handshake form. All
data is there in a table where the SQL you
already know allows you to get your hands on the data and do what
you want with it. Don't know SQL
yet? Shame on you. You'll learn quickly enough
(it's easy) and until you learn you can use the Transform panel templates
without knowing any SQL.

About
.map files - Manifold stores data in .map
format project files. A Manifold .map
file can be interchanged by all Manifold products based on the Radian
engine. ".map" stands
for Manifold Project,
the file database format used for all Manifold database and GIS products.
In a time when disk space is endless and cheap and human time
is limited and expensive, .map
files are designed to be as fast
as possible and not as small
as possible. Saving a big table or image in a .map
file will usually result in a bigger file on disk than other formats but
almost always the result will be far faster operation.

Important: When opening
a .map file created by
earlier Manifold products, Manifold always
converts a pre-Radian .map file
into Radian .map file format.
Using File - Save or
File - Save As thereafter
will save the project as a Manifold .map
file which Manifold products which do not use the Radian engine
(such as Manifold System Release 8 or prior) will not be
able to read. Use File - Save As
to save to a new name in Radian .map
format without altering the original, pre-Radian .map
file name.

Important: Linking a
pre-Radian .map file
or creating a new data source based on a pre-Radian .map file
will also cause that .map file
to be converted into Radian .map file
format. Make a backup copy of any pre-Radian .map files you wish to retain
in the old format before you open them or use them in a Manifold project.

MAP files and MXB files - For
everyday work we want our projects to open instantly, save instantly and
operate at eye-popping speed. When exchanging data or saving archives
for long-term, rarely used storage we want our projects to be as compressed
and as small as possible. To serve both needs Manifold has
two formats for project files: super-fast MAP
and super-compressed MXB.

Manifold .map format provides
phenomenal speed and capacity for everyday work. Manifold .map projects pop open instantly,
save instantly and can be nested with links within projects to other projects
with zero loss of performance. Manifold .mxb files
are highly compressed files that archive a project in the most compact
possible form. They are perfect for creating the smallest
possible project file for exchange over Internet or for archival storage.

Dataports: A dataport
is a Manifold module that interacts with file formats, databases and other
sources of data. When we import data from a given file format,
say, from shapefiles, we are calling the dataport
for shapefiles.

Please note: While it may be convenient to leave
data within original formats, such as shapefiles
as often encountered in GIS, doing so means living within the limitations
imposed by those formats. Older formats may be fine for small
amounts of data but when larger amounts of data are involved they can
be slower than Manifold .map files
and they often have limitations such as no ability to mix vector types,
limits on data types, limits on size or other limits. Using .MAPCACHE
can deliver impressive speed even with older formats but even so using
Manifold .map format is almost
always faster, usually much faster, for larger files and .map format
does not suffer from the content limitations of older formats.

Copying and pasting between sessions
- When copying and pasting between different Manifold sessions remember
to copy all parts of a component. An image component, for
example, is just a display module to show the contents of the associated
table which stores the tiles for that image. To copy an image
from one Manifold session to another we must copy and paste both the image
as well as the table for that image.

Docked and Undocked - Manifold
allows us to undock panes and
windows and to move them around our Windows desktop as we like. We
don't have to keep undocked Manifold windows and panes within the boundaries
of the main Manifold desktop.

Reserved names - All names starting
with mfd_ (case not significant)
are reserved for use by the system. Names for fields, indexes, constraints,
tables, components other than tables, properties... everything. Do not
name anything beginning with mfd_
or MFD_ or in any upper
or lower case combination of those characters.

Mnemonic names - It helps to
name data sources to know their origin at a glance. In the
example recommended above we use Books
MDB as the name of a data source so at a glance we are reminded
the data source is an .mdb file
having to do with books.

But if we forget, hovering the mouse cursor over a data source displays
a tooltip that shows the origin. If the data source has information
in the Description property
the description will be shown in that tooltip instead.

Compacting Data Sources -
If a data source can be compacted, right-clicking
on that data source in the Project pane will show a Compact context
menu command. If the data source does not support compacting, the
command will not appear. In addition to the context menu Compact command
that can be used manually, the Manifold object model includes means to
compact a data source, to check whether a data source supports compacting,
to check whether a data source has data to compact or has unsaved changes.

Saving Data Sources - The Project
pane tracks any unsaved changes for data sources that support saving,
including the root .map
file itself. Data sources with unsaved changes will
be displayed using a different icon that shows an asterisk *
in the lower right corner of the icon. Making changes via
a script to a data source that supports saving may require a few seconds
before the icon is updated. If a data source does not support
saving the icon will not change and the Project pane context menu command
for that data source will not include a Save command.

Manual data entry - The idea
of manually creating components and manually inputting data is not so
far-fetched as it may seem. For example, we can create points in
a drawing by clicking on locations in a drawing in a map using a lower
layer (a satellite image or map from a web server) as a guide. Whether
we are marking trees, fire hydrants or archeological relics it is often
possible to rapidly click and create hundreds of points or areas or other
features per day. Over a surprisingly short period of time
many thousands of records can be accumulated as the result of manual data
inputs.

Table Nomenclature - When writing
about tables we will often use the words row
and record interchangeably and
also the words column and field interchangeably.

CPU Parallelization - Manifold
automatically runs parallel for internal Manifold tasks and for Transform panel
templates and similar operations, using all of the CPU cores available
in your system in parallel. When writing queries manually using the Command Window make sure to add
a THREADS SystemCpuCount() command
to the query to automatically parallelize the query to use all CPU cores
in your system.

GPGPU - Manifold automatically
uses NVIDIA GPUs for massively parallel computation. NVIDIA
GPUs of Fermi class or more recent
which NVIDIA supports with CUDA are required. See the GPGPU topic for details.

Limitations - Manifold can address
such large memory that we will run out of physical resources on a machine,
like disk space, before we hit Manifold size limits. However, one limitation
may be touched by users of very large data on the desktop. Although
there is no practical limit to the size of data Manifold can work with
on the desktop a hard limit on the amount of data that can be changed
in a single operation is 256 GB.
For example, if we have a single image that is 1
terabyte in size we can display that and manipulate it but if we
want to change all of the values in all of the pixels in the image we
will have to do that in four operations, each up to 256
GB in size. The 256 GB limit is the current, somewhat
arbitrary setting on temporary caches utilized internally by Manifold.
It could be increased in future updates should user demand require.

Example:
Import a Shapefile - ESRI shapefiles are a very popular
format for publishing GIS and other spatial data. Unfortunately,
shapefiles often will not specify what projection should be used. This
example shows how to deal with that quickly and easily.

Example:
Closing without Saving - An example that shows how File
- Close without saving the project can affect local tables and
components differently from those saved already into a data source, such
as an .mdb file database.

Example:
Spectacular Images and Data from Web Servers - A must see topic
providing a gallery of views illustrating how Manifold can use web servers
such as imageservers and other free resources to provide a seemingly endless
selection of spectacular background maps, satellite images and GIS data
with nearly zero effort.

Example:
An Imageserver Tutorial - An extensive tutorial showing step
by step how to add new data sources that are imageservers, how to show
them as layers in a map, how to create a new drawing that matches the
projection of the map and how to trace over what is seen in an imageserver
layer to create an area object in the drawing.