Projections

The terms projection and coordinate system are used as synonyms by Manifold.  The term projection tends to be favored by cartographers, such as the great master J.P. Snyder, while programmers often prefer coordinate system.  They mean exactly the same thing in this documentation.   

 

Projections are used within Manifold for four main reasons:

 

 

Manifold handles essentially all known projections and automatically works with a variety of different standardized systems that define and specify projections.  See the discussion in the About Coordinate Systems  topic for information on the various systems known to and automatically used by Manifold.

 

The Component pane displays projection information for the active layer or window for maps, drawings, images and labels.

 

dlg_contents_pane01_01.png

Automatic Use of Coordinate Systems

Modern formats and data sources that are well-designed for spatial data will automatically specify the coordinate system to be used for the data they provide.  Manifold reads automatically reads such information.   When we import or link from such modern formats or sources, drawings and images will appear in Manifold with the correct coordinate system automatically assigned.  

 

We can then use the data in our workflow without worrying about the coordinate system in use.   Drawings and images will appear in the right places in maps with other layers, we can re-project them if we like and so on.  The coordinate system they use will appear in the Component pane using normal, black text to indicate the coordinate system has been automatically specified by the format or data source.

 

ico_nb_arrow_blue.png Caution: Even well-designed formats can be misused.  Sometimes files providing spatial data provide incorrect information or are accompanied by accessory files which provide incorrect information.  See the section below titled Projections from Accessory Files.

Manifold Projections

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.

 

Some file formats utilize accessory files such as "world" files, .PRJ files, or other accessory files, to convey coordinate information for formats, such as shapefiles, which do not automatically convey coordinate system information.   Manifold reads such accessory files to harvest all information provided.

 

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.  

Formats that Do Not Specify Coordinate Systems

Some older formats and formats poorly suited for spatial work, such as CAD formats, do not specify the coordinate system used by the data they contain.  

 

Manifold will detect that a source failed to provide coordinate system information, will assign a temporary placeholder coordinate system of Pseudo-Mercator, and will report that coordinate system in the Component pane using red text to alert us that it is just a provisional placeholder.

 

Before we use that data we must specify the projection manually by launching Assign Initial Coordinate System in the Component pane.

 

When Importing or Linking from non-spatial formats:

 

  1. Import or Link the file.

  2. Open the drawing or image.

  3. In the Component pane, launch Assign Initial Coordinate System.

  4. Specify the coordinate system used by the data.

 

Always do the above procedure when importing or linking drawings or images from formats which do not specify the projection used for the data.  This includes all shapefiles not accompanied by a .prj file.  

 

See the Example: Import a Shapefile topic.

Projections and Images, Drawings and Maps

Vector data used for drawings and raster data used for images will always display data using the projection for which the data they contain has been computed.    Any other layers within a drawing's window will be re-projected on the fly into the projection used by the drawing, and likewise for image windows.

 

Map windows can use any projection desired no matter what projections are used by the components within them. The view of the components within the map will be re-projected on the fly to suit the projection used by the map. This works well so long as the components within the map are not extremely large.    Since it takes time to re-project very large components on the fly it makes sense to manage the projections we use so that the same projection is used by the map and by the biggest components it shows.  

 

btn_coord_sys_picker.png When a new map is created it takes its projection from whatever is the first component added to the map.  To change the map's projection, in the Component pane we click on the coordinate picker button for the map's coordinate system.

 

We specify what projection we want a map window to use with the Edit - Map Projection command. dlg_contents_pane01_01.png

The Component Pane Shows Projections

The Component pane is our primary interface for seeing the coordinate systems assigned to components and to edit those coordinate systems.  In Manifold, the terms "projection" and "coordinate system" are synonyms and are used interchangeably.

 

Manifold handles all projection information for us automatically, for example, automatically re-projecting layers in a map on the fly to match the projection use by the map.  Manifold also will automatically assign a projection to components such as drawings and images that are imported or linked into Manifold.

 

Modern formats and data sources that are well-designed for spatial data will automatically specify the coordinate system to be used for the data they provide.  When we import or link from such modern formats or sources, drawings and images will appear in Manifold with the correct coordinate system automatically assigned.  

 

We can then use them in our workflow without worrying about the projection they use.  They will appear in the right places in maps with other layers, we can re-project them if we like and so on.  The coordinate system they use will appear in the Component pane using normal, black text to indicate the coordinate system has been automatically specified by the format or data source.

 

Older formats and data sources or those which are poorly-designed for spatial data, such as CAD formats, often will not specify the coordinate system to be used for the data they provide, or they will do so in an incomplete way.  When Manifold brings in such data it will assign the default coordinate system, WGS 84 / Pseudo-Mercator (EPSG:3857), as a placeholder, and will use red text in the Component pane to indicate the coordinate system must be manually specified before that data can be used.

 

To summarize:

 

 

 

We use the Component pane for three key activities involving coordinate systems:

 

 

 

 

For a step-by-step illustrated example using the Assign Initial Coordinate System command, see the Example: Assign Initial Coordinate System topic.

Change Coordinate System

btn_coord_sys_picker.png Launched from a layer's coordinate picker button in the Component pane the Change Coordinate System command is used to re-project an image or drawing that already has had an initial coordinate system assigned, either automatically as a result of import from a spatially-aware source, or as a result of manual application of the Assign Initial Coordinate System command in the event of import from a spatially brain dead source.  

 

If the initial coordinate system has not yet been assigned, Manifold will display the coordinate system for the layer in red text and the Change Coordinate System command will not be enabled.  The only choice in the coordinate picker button's menu will be Assign Initial Coordinate System.

 

To change the projection of an image or drawing:

 

  1. Open the image or drawing.

  2. In the Component pane click the coordinate picker button and choose Change Coordinate System.

  3. In the Change Coordinate System dialog click the coordinate picker button for the New system to use, and choose the new coordinate system desired, either from the favorites listed or by choosing Edit Coordinate System.

  4. Press the Add Component button to create a copy of this component using the new coordinate system, or..

  5. Press the Update Component button (drawings only) to update the drawing in place using the new coordinate system.

 

For drawings, changing the projection changes the coordinate numbers embedded in the drawing's geometry.  For images, changing the projection will change the number of pixels to interpolate coverage by pixels over the new shape of the image in the new coordinate system.  

 

Because the number of pixels and thus tiles will change changing the projection of an image is always an Add Component operation to create a copy of the image in the new projection form.  See the Re-Projection Creates a New Image topic for why re-projecting an image changes the number of pixels.

Assign Initial Coordinate System

If we work with data from modern formats and sources that are spatially aware, we will rarely need to use this command.  If we work with data from older formats, CAD formats, or other spatially-unaware formats we frequently will use this command.

 

btn_coord_sys_picker.png Launched from a layer's coordinate picker button in the Component pane,  the Assign Initial Coordinate System command is used to specify the correct initial coordinate system for an image or drawing that was brought into Manifold from a spatially brain-dead source.  If the originating format or data source failed to specify the coordinate system used, Manifold assigns a provisional placeholder, the default Pseudo_Mercator coordinate system, and then warns us the data has not had an initial coordinate system assigned by reporting the coordinate system in red text.

 

il_contents_pane01_02.png

 

Assigning an initial coordinate system does not change the coordinate numbers embedded in a drawing's geometry and it does not change pixels in images.   It only specifies the correct coordinate system property to be associated with that drawing or image so the data they contain makes sense as intended.

 

To assign an initial coordinate system:

 

  1. Open the image or drawing.

  2. In the Component pane click the coordinate picker button and choose Assign Initial Coordinate System.

  3. In the menu that appears, choose the new coordinate system desired, either from the favorites listed or by choosing Edit Coordinate System.

 

il_contents_pane01_03.png

 

Manifold comes pre-loaded with default favorite coordinate systems of Latitude / Longitude and Pseudo-Mercator, the most frequently used in most GIS work.  Latitude / Longitude is used by older data and Pseudo-Mercator by most projected web and modern data, since it is the universal standard for web server cartographic displays.

 

il_contents_pane01_01.png

tech_ravi_sm.png

 

Tech Tip:   We must make sure that anyone who we allow to work with our data understands that Assign Initial Coordinate System is to be used only to specify the correct starting coordinate system when importing from a spatially-unaware source.   It is not to be used to change the projection of a correctly imported image or drawing.    Everyone on our team must understand they should use Change Coordinate System to change the projection of a correctly imported image or drawing.

Coordinate System Problems

Problems with coordinate systems as a result of import almost always happen for one of five reasons, all of which are caused by bringing data in from spatially-unaware or defective sources.   When using modern, spatially-aware, competently programmed sources these problems do not happen:

 

 

 

 

In addition, problems with coordinate systems can arise when the data we import has already been damaged:

 

 

 

Verify the Coordinate System

The easiest way to avoid problems from data with incorrectly specified initial coordinate systems getting into our projects and then being replicated throughout all our workflow is to check the coordinate system when we first bring in the data.   Even if the source is a modern one that specifies initial coordinate system, the author of the data might have made a mistake when publishing it.  

 

Surprisingly, even data downloaded from national cartographic bureaus as prestigious as IGN in France or USGS in the US sometimes will have the wrong initial coordinate system specified. Ouch.

 

Opening a drawing or an image in its own window is not enough, because damaged data can look perfectly correct when viewed by itself  To detect obvious errors the data must be displayed with a known good layers, for example, a layer taken from an imageserver like Bing or Google.

 

It might not be obvious that we have brought data into Manifold with an incorrectly specified initial coordinate system. Sometimes there may be obvious distortion visible, but in more subtle cases if we open a drawing in its own window it may look perfectly OK so long as it is not compared with good data.    We might only be able to tell that the coordinate system was incorrectly initialized by seeing it in a map as a layer compared to a "known good" layer.

 

That is easy to do.  

 

How to quickly check coordinate systems:

 

  1. Create a data source for an imageserver like Google streets or Bing street.

  2. Create a map with that imageserver image as the first layer.

  3. Bring new data into Manifold.

  4. Drag and drop that new data into the map.

  5. See if the new data aligns as expected with the "known good" background layer of the image server.

 

In most cases when projected data has the wrong initial coordinate system specified it will be obviously not aligned with the background layer in the map.   It may be so wildly off that it won't even be visible in the map.

 

See the Example: Detecting and Correcting a Wrong Projection  topic for a step by step, illustrated example.

 

The above technique is so convenient, so fast and so important that, for all the sophistication of Manifold analytics, in a production environment involving a lot of spatial data the simple checking of newly-imported data for incorrectly specified coordinate systems may be the first, most important task.   

Coordinate System Formats and Accessory Files

Many different formats and notations have emerged for conveying coordinate systems.  These range from the supremely expert and unambiguous, such as EPSG, to hodgepodge notations like "world files."  When connecting to data sources, for example, when importing files, connecting to database servers or connecting to online sources such as web servers, Manifold recognizes many different formats for specifying coordinate systems:

 

 

Projections from Accessory Files

When reading file formats Manifold will automatically read coordinate system information from the source file and from any accompanying files, if they exist, to acquire information on what coordinate system should be used for the data.   

 

Why would auxiliary files accompany a data file, such as a GeoTIFF file, that already provides projection information within the data file?   Auxiliary files may be used to provide more detailed projection information that the data format itself can handle.  Auxiliary files may also be used to correct inaccuracies in the information provided by the data file, for example, in cases where the publisher of the data file does not have means to correct the information within the data file.

 

The general rule is that if a data file format is spatially aware, and thus provides coordinate system info, the use of auxiliary files is optional.  If optional auxiliary files accompany the data file, they are there for a reason, such as correcting errors in the main data file or providing more detailed information.   Therefore, when auxiliary files are provided in addition to a spatially-aware data file it is important that the information in the auxiliary file overrides, that is, takes precedence, over, whatever the data file says should be used for a coordinate system.

 

Sometimes accessory files which accompany the main file specify erroneous coordinate system information.  When inaccurate information in accessory files overrides correct information in the main file, the result is an incorrect coordinate system.  

 

Manifold reads files in the following order to acquire coordinate system information:

 

  1. Primary data file - Manifold reads whatever the primary data file says should be used and uses that as the coordinate system.  For example, if a TIFF file is a GeoTIFF, Manifold will read the coordinate system the file itself says should be used.

  2. PRJ files - PRJ files evolved to provide coordinate system information that shapefiles themselves could not provide.  They are now widely used for other formats besides shapefiles.  Manifold reads whatever is in an accompanying PRJ file and overrides existing coordinate system information.

  3. PAM XML files - Read PAM (Persistent Auxiliary Metadata) XML files created by GDAL and similar packages.

  4. "World" files - Read the world file and use it to adjust existing coordinate system info. World files only contain scales and offsets so they can only be used to adjust existing information.

  5. Manifold Release 8 XML - XML auxiliary files produced by Manifold 8 are precise and high accuracy and, if present, will override existing coordinate system specifications harvested up to that point.

  6. Manifold Release 9 MAPMETA files - Manifold MAPMETA  accessory files are produced by Manifold 9 and are the gold standard for Release 9 use. They override any other coordinate system specification.

 

In the event of conflicting coordinate definitions the last file wins, since the read order is in order of more rigorous definitions.   If an incorrect coordinate system definition results, the first step in correcting the situation is to remove all accessory files and read the data file only.  If the result is a correct coordinate system, then it is clear one or more of the accessory files are the cause of the error.

 

Notes

Synonyms -  Cartographers favor the term projection while programmers seem to prefer coordinate system.  This documentation uses the two terms interchangeably, with the term projection tending to be used more in GIS or display contexts and the term coordinate system tending to be used more when discussing programming, SQL or standards.

 

Coordinate System Property - The coordinate system in use for a drawing or image can be seen in the Properties dialog for the table that hosts the drawing geometry or the tile.  Right-click on the table in the Project pane and choose Properties.  The FieldCoordSystem.Tile property for images or the FieldCoordSystem.Geom property for drawings will contain the coordinate system.

 

Re-projections and Accuracy - Re-projecting a component from one coordinate system into another coordinate system may or may not be lossy depending upon the mathematical difference between the two coordinate systems.   Some coordinate systems use the same basic projection and are different only in terms of shifts, scaling or the order of axes.  When a re-projection only requires component data to be shifted, scaled or have axes swapped, the result is a high accuracy transformation.   When two different coordinate systems have two different underlying mathematical models the recomputation of coordinate data to re-project a data set from one coordinate system into the other can require curvilinear transformations that are lossy.  

 

See Also

Rotated Views

 

Coordinates

 

Component Pane

 

Assign Initial Coordinate System

 

Repair Initial Coordinate System

 

Change Coordinate System

 

Map Projection

 

Coordinate System

 

Base Coordinate System

 

Favorite Coordinate Systems

 

Favorite Base Coordinate Systems

 

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: Convert a 0 to 360 Degree Projection - We often encounter data, both images and drawings, using latitude and longitude degrees that appears to be in Latitude / Longitude projection but which has longitude values from 0 degrees to 360 degrees and latitude values from 0 degrees to 180 degrees, instead of the usual arrangement of -180 degrees to 180 degrees for longitude centered on the Prime Meridian, and -90 degrees to 90 degrees for latitude centered on the Equator.  This example shows how to utilize such data by assigning the correct projection.

 

Example: Assign Initial Coordinate System - Use the Component pane to manually assign an initial coordinate system when importing from a format that does not specify the coordinate system.

 

Example: Re-project a Drawing - An essential example on changing the projection of a drawing, either within the drawing itself, or by changing the projection of a map window that shows the drawing and re-projects on the fly for display.

 

Example: Change Projection of an Image - Use the Change Coordinate System command to change the projection of an image, raster data showing terrain elevations in a region of Florida, from Latitude / Longitude to Orthographic centered on Florida.

 

Example: Adding a Favorite Coordinate System - Step by step example showing how to add a frequently used coordinate system to the Favorites system.

 

Example: Detecting and Correcting a Wrong Projection - A lengthy example exploring projection dialogs and a classic projection problem.  We save a drawing into projected shapefiles and then show on import how a projection can be quickly and easily checked and corrected if it is wrong.

 

Re-Projection Creates a New Image - Why changing the projection of an image creates a new image.

 

About Coordinate Systems

 

Projections Tutorial

 

The Earth as an Ellipsoid

 

Latitude and Longitude are Not Enough

 

Shapefiles Strangely Out of Shape

 

That YX Thing