Use the Reproject Component dialog to change the coordinate system used by a component. When a component window has the focus, the coordinate system picker button in the Info pane will show a Reproject Component command in the button's menu.
Use Reproject Component for three purposes:
The Reproject Component dialog is used to change the projection of an image or drawing that already has had the initial coordinate system set correctly. Initial coordinate systems are either set automatically upon import or are manually assigned, if necessary, using the Assign Initial Coordinate System command.
If the coordinate system readout in the Info pane uses red text then the initial coordinate system has not yet been assigned and the Reproject Component command will be disabled. To enable the Reproject Component command we must first use Assign Initial Coordinate System to specify the initial coordinate system.
Open the image or drawing.
In the Info pane press the coordinate system picker button and choose Reproject Component.
Press the coordinate system picker to choose the new coordinate system desired. This allows a quick pick from the listed favorites or choosing More... to launch the full Coordinate System dialog that allows a choice of thousands of systems.
If the Conversion picker button is enabled, click to choose a Conversion method other than default, if desired.
When reprojecting an image, specify Local scales and other options if Auto settings are not desired.
In the Reproject Component dialog choose how the new coordinate system will be applied:
Press the Add Component button to create a copy of this component using the new coordinate system.
Press the Update Component button (drawings only) to update the drawing in place using the new coordinate system.
See the Example: Change Projection of an Image topic for a step-by-step example.
To convert a coordinate system into a different coordinate system Manifold can use enhanced accuracy transformation methods that use grid files, including NADCON 5, NADCON (including HARN and HPGN), and NTv2 transformations. See the Enhanced Accuracy topic to learn how to use enhanced accuracy transformation methods.
The Reproject Component process changes the coordinate numbers within the component into numbers computed for a new coordinate system, and also updates the projection assigned to the component. The dialog appears with drawing and image windows but does not appear with map windows, since map windows are just viewports into the layers they display and do not themselves contain any data. To change the projection used by a map window, use the Map Projection dialog. See the discussion in the Projections topic.
For drawings, changing the projection changes the coordinate numbers embedded in the drawing's geometry, but does not change the number of objects or the number of vertices in each object. After reprojecting a drawing, the table for the drawing will still have the same number of rows.
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. After reprojecting an image, the table holding tiles for the image will in most cases have a different number of rows.
Because the number of pixels and thus tiles will change when reprojecting an image, the action button in the Reproject Component dialog for an image is always an Add Component operation, to create a new table and image in the new projection form. See the Reprojection Creates a New Image topic for why reprojecting an image changes the number of pixels.
The forward, average reprojection option enables the system to compute coordinate system transformations for images to conversion accuracy even more detailed than the size of a single pixel. That is important when a single original pixel during warping / georegistration can expand to more than one pixel in the new image, or vice versa.
Choosing Reproject Component in the Info pane launches the Reproject Component dialog. The dialog shows the current coordinate system in use and allows us to specify a new coordinate system to be used. When launched to reproject a drawing, the dialog allows choice of a new coordinate system and a conversion method:
Click the coordinate system picker button in the Reproject Component dialog to specify the new coordinate system to use.
The drop down menu in the lower left corner of the dialog allows us to switch the action of the dialog between Update Component and Add Component.
Current |
The current coordinate system used by this component. |
New |
The new coordinate system into which this component's data should be reprojected. |
Click to choose the new coordinate system desired. This allows a quick pick from the listed favorite coordinate systems or choosing More... to launch the full Coordinate System dialog that allows a choice of thousands of systems. |
|
Conversion |
The conversion method used. Depending on the Current coordinate system in use and the New coordinate system desired, choices other than default |
Click to choose a different conversion method. Only enabled when there are choices other than default going from the Current system to the New system specified. |
|
Allow parallel execution |
If checked (default) the reprojection computation will use CPU parallelism in multiple threads on as many CPU cores as are available for faster performance. Checking this box is equivalent to commanding THREADS SystemCpuCount() in SQL in templates that utilize parallelism. |
Add Component / Update Component |
Choose either the Update Component or Add Component setting by pulling down on the down arrow button, and then press to reproject.
|
Edit Query |
Click to open the Command Window pre-loaded with an SQL query which accomplishes the reprojection as specified and given the choice of Update Field or Add Component. |
Close |
Close the dialog |
Reprojecting an image necessarily changes the size of the image, so the dialog provides controls to manage that process:
For example, the Render option specifies how pixel values at a given starting place will be cast into what could be different numbers of pixels covering that place in the reprojected image.
We can choose forward, average as the Render option.
That option uses pixel subdivisions for finer accuracy of interpolation and rendering in the reprojected result. Choosing forward, average as the Render option adds a Pixel divisions box to the dialog, to allow us to specify how many pixel subdivisions we want to use.
After setting up desired options we can click the coordinate system picker button to specify the new coordinate system to use.
Current |
The current coordinate system used by this component. |
New |
The new coordinate system into which this component's data should be reprojected. |
Click to choose the new coordinate system desired. This allows a quick pick from the listed favorite coordinate systems or choosing More... to launch the full Coordinate System dialog that allows a choice of thousands of systems. |
|
Conversion |
The conversion method used. Depending on the Current coordinate system in use and the New coordinate system desired, choices other than default |
Click to choose a different conversion method. Only enabled when there are choices other than default going from the Current system to the New system specified. |
|
Local scales |
For images: The local scale transformation to apply to X and Y values, which has the effect of setting the size of pixels. The Auto checkbox sets local scales to values that produce an image with roughly the same number of pixels in X and Y extents. Uncheck the Auto checkbox to enable a custom choice.
In addition to controlling the size of resultant images when re-projecting an image, the Local scales control also allows resizing images within the same coordinate system, by altering the pixel size.
For example, an image might have 10 pixels per degree and thus a Local scale X of 0.1 would be used in degree-based coordinate systems, such as Latitude / Longitude.
See the Coordinate System Metrics topic. |
Local offsets |
For images: Absolute values to add or to subtract in the X and Y directions, in effect setting the position of the image origin (lower left corner). The Auto checkbox sets the image origin so that the coordinate of the pixel in the left bottom corner of the image is 0, 0. Uncheck the default Auto checkbox to enable a custom choice.
See the Coordinate System Metrics topic. |
Tiles |
For images: Specify the pixel data type within tiles and the size of tiles. The Auto checkbox sets the tile type and tile size to be the same as the original image. Uncheck the default Auto checkbox to enable a custom choice.
In addition to specifying the pixel data type and the tile size in resultant images when re-projecting an image, the Tiles control also allows changing the data type and tile size within the same coordinate system.
For example, we can create a new image in the same coordinate system where the pixel data type has been changed from float32 to float64. and the tile size is 256 x 256 instead of 128 x 128. |
<Image size readout> |
For images: Reports the X by Y dimensions in pixels for the image about to be created, as well as the total size of the image's data in bytes. The exact size of image data in the storage will vary due to a number of factors, such as compression, visible / invisible masks, intermediate levels, and storage overhead, but the reported size is useful as an approximate estimate. |
Render |
Choose the rendering process used for generating pixels in the projected result image:
Depending on image content, a particular interpolation method, such as bicubic, bilinear, or nearest neighbor, can provide smoother results, for example, fewer step effects in pixels representing linear features.
See the Notes section at the end of this topic for tips on choosing Render methods.
See also the Sub-pixel Reprojection topic. |
Pixel Divisions |
Appears when we choose forward, average as the Render option. The Pixel Divisions box allows us to specify the number of pixel subdivisions, 1 being the default and enough for most cases. Increasing the number of subdivisions improves image quality (with diminishing returns) at the cost of additional processing time. A maximum of 8 pixel divisions are used even if the number specified is greater.
See the Sub-pixel Reprojection topic. |
Allow parallel execution |
If checked (default) the reprojection computation will use CPU parallelism in multiple threads on as many CPU cores as are available for faster performance. Checking this box is equivalent to commanding THREADS SystemCpuCount() in SQL in templates that utilize parallelism. |
Add Component / Update Component |
Choose either the Update Component or Add Component setting by pulling down on the down arrow button, and then press to reproject.
|
Edit Query |
Click to open the Command Window pre-loaded with an SQL query which accomplishes the reprojection as specified and given the choice of Update Field or Add Component. |
Close |
Close the dialog |
Click the coordinate system picker button to choose a new coordinate system. The default favorites and any other favorites we have added will appear in a list, along with a More... option to launch the full Coordinate System dialog.
(Favorites List) |
A list of favorite coordinate systems. Factory defaults are Pseudo-Mercator and Latitude / Longitude. Add or delete favorites as desired. |
More... |
Launch the full Coordinate System dialog that allows a choice of thousands of systems. |
Favorites |
Add, delete, or modify favorite coordinate systems. |
Copy |
Copy the current coordinate system to the Windows Clipboard. |
Paste |
Paste a coordinate system from the Windows Clipboard. |
Paste without Metrics |
Paste a coordinate system from the Windows Clipboard, but do not paste any Coordinate System Metrics it may contain, pasting everything else. |
See the Coordinate System topic for information on choosing a new coordinate system using the full Coordinate System dialog.
Drawings and images are reprojected from a current coordinate system into a new coordinate system using mathematical formulae, called conversion methods, which vary depending upon the starting and ending coordinate systems. Conversion methods also are called paths. In most cases of the millions of different starting and ending combination possible within Manifold, only a single, standard conversion method is available and is used by default. In some cases, however, more than one conversion method can be used.
The Conversion button allows us to choose a non-default conversion method, if available, for recalculating the reprojection from the Current to the New coordinate system. Those may include enhanced accuracy methods that provide more precise, more accurate conversions
See the Enhanced Accuracy topic for information on using the Conversion button and using enhanced accuracy conversion methods.
We often want to reproject a component into exactly the same coordinate system used by some other component. That is easy to do with Copy and Paste. In what follows, the source component means the one with the coordinate system we want to copy, and the target component is the one we want to reproject.
In the Info pane for the source component, click the coordinate system picker button and choose Copy. That copies the coordinate system in text form into the Windows Clipboard.
Next, in the Info pane for the target component, click the coordinate system picker button and choose Reproject Component.
Click the coordinate system picker button for the New component and choose Paste or Paste without Metrics, as desired.
That will paste the previously-copied coordinate system to use as the New system. We can then click the Update Component button to reproject the component.
SRIDs from databases: When copying coordinate systems from components that reside within DBMS data sources, SRID:xxx definitions that only make sense in the context of a specific database are converted to JSON text representation prior to copying. The JSON text is more broadly understandable and reusable in other settings.
Using Copy is also great way to get a text version of the coordinate system used by a component. For example, we can paste it into a Comments component or into Notepad to have a text record of all details of the coordinate system in use:
If we want to compare two different coordinate systems that seem similar, we can Copy each of them and then Paste into a Comments component or into Notepad as ordinary text, to facilitate comparison of all details.
As discussed in the Reprojection Creates a New Image topic, reprojecting an image usually changes the size of an image by changing the size of its pixels. The same internal, interpolation machinery that automatically resizes images during reprojection can also be used to change the size of an image without changing the coordinate system.
To change the size of an image, in the Reproject Component dialog, do not choose a New coordinate system, but simply uncheck the Auto box for Local scales and set the number of pixels in X and Y direction for the unit of measure. The image size readout will show the result. Press Add Component to create a resized component.
Open the image.
In the Info pane press the coordinate system picker button and choose Reproject Component.
Do not change the New coordinate system.
Uncheck the Auto box for Local scales.
Specify Local scales values that produce the desired image size in the readout.
Press Add Component to create a new image and table of the desired size.
See the Example: Change the Pixel Size of a Terrain Elevation Image topic for a step-by-step example and discussion.
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.
Using Auto with Local scales when reprojecting images - The Auto checkbox sets local scales to values that produce an image with roughly the same number of pixels by X and Y. If we reproject an image without making any changes to the dialog, using Auto with the same coordinate system for New as the Current system, the resulting image might not have exactly the same number of pixels as the original image due to two rounding effects made by the Auto checkbox: First, the exact scales are rounded to two digits, with a scale of 1.31923 ft becoming 1.3 ft. Second, if the rounded X and Y local scales differ by less than 25%, they are made the same as the smaller value, to make pixels square.
Conversions between the "same" coordinate systems - In general, there is no point picking a conversion method between coordinate systems that have different names but which have identically the same parameters. An exception is when coordinate systems have identical parameters but different EPSG codes, where the EPSG database may provide for more than one conversion path between coordinate systems, in which case Manifold will allow selecting any of the different EPSG conversion methods. The EPSG database contains a fair number of such cases.
Failing safe - The Reproject Component dialog checks all parameters prior to performing the reprojection, or generating a query that will attempt to perform the reprojection. The reprojection fails (does not occur) if the reprojection cannot succeed due to an impossible combination of parameters in the coordinate systems or other errors.
Maximum reprojected image size - The maximum size of an image created by the Reproject Component dialog is 16 terapixels, that is, no more than 16,000,000,000,000 pixels. Attempting to produce an image with more than 16 terapixels will fail. Dang. Given the limitation on .map file sizes this is more a theoretical limit than a practical limit.
Render methods - Inverse methods are faster than forward methods, but forward methods are more accurate. Map windows use inverse methods for automatic reprojection, because the accuracy is more than good enough for dynamic screen display. For permanent reprojection it is better to use forward methods.
Pixel divisions - This parameter controls accuracy in the forward, average method. The current default of 2 is a great sweet spot which gets most of the quality without giving up a lot of processing time. Increasing pixel divisions to 3 or more will improve quality slightly, but there will be heavy diminishing returns in processing time. The jump from 2 to 3 has a much greater effect than the next jump from 3 to 4, and so on. Processing times increase a lot as well. If greater accuracy than 2 is desired, try 3 or 4 as an experiment. The forward, nearest method also uses pixel divisions, but no Pixel divisions parameter box appears for the forward, nearest method since the parameter is internally set by the system. The current value used internally is 2 divisions. Future builds may vary that dynamically for different parts of the image.
Interpolation variations - The inverse, bilinear, inverse, bicubic, and inverse, nearest methods utilize bilinear, bicubic and nearest neighbor interpolations within the method. The forward, average and forward, nearest methods utilize averaging and nearest neighbor interpolation, respectively.
Nearest neighbor interpolation should be used whenever pixel values cannot be averaged, for example, if pixel values in an image represent classification codes, such as 5 = forest, 10 = water, 15 = unknown, and similar. In such cases, averaging pixels for forest and unknown can produce water, which does not make sense, and averaging pixels for water and unknown can produce a value like 13.75 which does not match any classification code.
If values in pixels can be averaged, it is usually better to use an interpolation option other than nearest. For forward methods, there is only one alternative to nearest neighbor, and that is the forward, average method. The forward, average method produces very accurate weighted averages. For inverse methods, the alternative to inverse, nearest is a choice between inverse, bilinear and inverse, bicubic methods. The inverse, bilinear method is faster while the inverse, bicubic method is slightly more accurate. However, the inverse, bicubic method tends to be used less frequently because usually when we want greater accuracy we go with forward, average. If we use an inverse method that is usually because we want speed and care less about accuracy. In that case, we tend to choose the inverse, bilinear method. That is what map windows do when reprojecting on the fly, since they value speed and fine differences in accuracy are not visible given the resolution of dynamic screen displays.
Assign Initial Coordinate System
Repair Initial Coordinate System
Favorite Base Coordinate Systems
Reprojection Creates a New Image - Why changing the projection of an image creates a new image.
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.
SQL Example: List Transformation Grids - In this example we use a few snippets of easy SQL to list NTv2 and NADCON transformation grids that are available within the grids.dat compressed collection of transformation grid files. Grid transformation files can be used when creating custom base coordinate systems, for NADCON / HARN / HPGN and NTv2 high accuracy transformations that use grid files.
Latitude and Longitude are Not Enough
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 Info pane to manually assign an initial coordinate system when importing from a format that does not specify the coordinate system.
Example: Reproject 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 on the fly reprojects the drawing for display.
Example: Change Projection of an Image - Use the Reproject Component 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: Change the Pixel Size of a Terrain Elevation Image - Use the Reproject Component dialog to change the pixel size of a terrain elevation image, reducing the total number of pixels used. This process is also called resampling.