Edit - Change Projection

The Edit - Change Projection dialog permanently changes the projection used for a drawing or image. With drawings, it changes the coordinate numbers within the drawing to their equivalents in the new projection, and then updates Manifold's coordinate properties for that drawing. With images or surfaces, it will re-compute the image by interpolating to add or delete pixels as necessary to match the image shape to the required projection.


To use the Change Projection dialog we must have first verified the projection currently assigned to the component to be re-projected. We do that by launching the Edit - Assign Projection dialog, making sure the existing projection is correct and then pressing OK. If we attempt to Change Projection without first verifying the projection, Manifold will not allow us to change the projection.




The dialog opens with a display of the current projection in use. Changing values in this dialog and then pressing apply will cause Manifold to re-compute the coordinate numbers within the drawing into their equivalents in the new projection. It is a permanent way of casting the data that define the drawing or image into a new projection.


The dialog includes these controls:



Load from File - Load projection information from a file using ERDAS AUX, Golden Software GSR, ESRI PRJ, or XML files.


Save to File - Save projection information to a file using XML, Golden Software GSR or ESRI PRJ files.


Recent settings - Choose a projection setting to reuse from a list of recently-used projections employed in this Manifold session.


Load from Component - Load projection settings from another component in this project.


A tree diagram providing numerous projections within various types of projections.


A list of standard datums that incorporate various Earth ellipsoids and standard offsets.


One or more optional parameter settings, if used by this particular projection. Double-click into the values boxes to change them. Press Enter after changing a value.

(units box)

Choose the unit of measure. All "unprojected" maps are in Degrees, Arc Minutes or Arc Seconds. Most projected maps are in meters.

Local offset

Shifted version of the external coordinate system peculiar to this component. Specifies shift in X (longitude) and Y (latitude) direction in the given units. With images or surfaces, the Local offset stores the offset to the left-bottom corner of the left-bottom pixel of the image or surface.

Local scale

Scaled version of the external coordinate system peculiar to this component. Specifies scale factor to be applied to external coordinate system.

Scale correction

Controls scale of the external coordinate system. For example, 0.9996 for UTM.

False easting / northing

Shift of the external coordinate system. For example, 500,000 meters for UTM. Some projections (such as UTM) add values to the "true" X and Y coordinates so that all coordinates stored are positive numbers. This avoids the use of the minus sign in primitive formats. The value added to X is the Easting and that to the Y is the Northing.

Adjust for units

Automatically adjust easting/northing values when units of measure are changed. Not checked by default.

Clip coordinates

Enabled for projections like Orthographic: clip those parts of objects that extend past the projection extent. Manifold will clip coordinates to an accuracy of 0.01 degrees.

Autosuggest local values

Enabled for images and surfaces: Automatically adjusts the values of local scale and local offset parameters after we change the coordinate system or alter one of the parameters in the parameter list. Checking Preserve local values overrides this box and keeps local values as they are.

Preserve local values

Normally, choosing a projection from the projections pane will reset the values of Local offset, Local scale and units to the preset values for that projection. Checking this box will preserve any existing values in these local fields even when a new projection is selected. It is not checked by default in the Edit - Change Projection dialog because usually when re-projecting a component we want to use the preset local values associated with a new projection.


Suggest values for projection parameters based on the view in the component window. Used with projections with user-specifiable parameters.


Maps can work faster if the drawings and images they contain as layers use the same projection that is requested of the map. If we always use a particular projection within a map, it will be worth it to re-project the constituent drawings and images of that map into that particular projection as well. To permanently re-project a drawing or image, use the Edit - Change Projection dialog. In order for maps to run faster when the constituent drawings or images are in the same projection, they must use that same projection in all parameters. It does not help if both the map and its constituent drawings use Lambert Conformal Conic projection but with different center latitudes and longitudes.


Projection Toolbar Buttons


We may want to re-use the same projection information with different components. For example, suppose we have many shapefiles covering the same region of interest that contain projected information requiring the use of the Edit - Assign Projection dialog after import. Since all of the files will require the same projection information, after importing one file and manually specifying the projection settings in the Edit - Assign Projection dialog we can save the projection information using the Save to File toolbar button. With subsequent files we can then use the Load from File button to load the settings and thus avoid manual re-entry of repetitive information.


The Load from File button also provides a convenience when importing components created by other software packages. Using Load from File - Load projection information from a file using XML, Golden Software GSR or ESRI PRJ files.


Another time saver is to load projection information from an existing component using the Load from Component button. For example, we may want to re-project all files into a certain standard projection used by a given component and would like to be sure that all settings are identical. In that case, we open each component to be re-projected, launch the Edit - Change Projection dialog and use Load from Component to load the desired settings from the component we wish to use as the standard.


Sizing Images and Surfaces


When choosing Edit - Change Projection to re-project an image or surface the image size will often change slightly in size. The actual size of the resulting image or surface in pixels will be determined by the Local Scale parameters, which set by implication the size of each pixel. Choosing inappropriate scale parameters can result in absurdly large images or surfaces. Attempting to create a very large image or surface in this way will cause Manifold to raise a confirmation dialog.


Local Scale controls the image or surface resolution. A value of 5 meters means that each pixel of the resulting image will occupy an area of 5 meters by 5 meters. The greater the Local Scale, the fewer pixels the image will have. Local Offset specifies the offset to the left-bottom corner of the left-bottom pixel of the image or surface. When re-projecting images we can set the Local Scale. The system will compute Local Offset automatically.


Adjust for units Option


When manually changing units of measure the false easting and northing values will not be changed correspondingly. Checking the Adjust for units box will force a recomputation of the easting and northing values into the corresponding values for the new units of measure. For example, to change from Feet to Meters as units of measure and to change easting / northing accordingly:





Although this dialog is virtually identical to the Edit - Assign Projection dialog, the two are different in function. The Edit - Assign Projection dialog tells the system how to interpret existing data without modifying the data. The Edit - Change Projection dialog changes the data to fit a required interpretation.


The Edit - Assign Projection dialog is used to make changes on a "one time" basis only when an import from a legacy format requires manual entry of the correct projection parameters. Changing parameters in the Edit - Assign Projection dialog changes only the interpretation of the existing data and not the coordinate data.


The Edit - Change Projection dialog, in contrast, changes both the actual coordinate numbers as well as their interpretation. It is used every time one desires to recast a drawing or image into a new projection.


Local and External Coordinate Systems


The offset, scale, scale correction and easting/northing factors are intended for expert use. These parameters are scale and offset values for use with either the local coordinate system or the external, projection coordinate system.


In a nutshell, the external coordinate system is a coordinate system specified by the projection and projection parameters as described in the usual treatises on projection systems. The internal or local coordinate system is the coordinate system peculiar to the component, which may be a scaled and shifted version of the external coordinate system. Local systems occur when working with images imported from certain formats and possibly with drawings as well.


The Local scale and Local offset values expose the internal values used by a component to control the scale and shift of the internal coordinate system. These are given in the projection's units of measure displayed in the units box.


The Scale correction and False easting/northing parameters control the scale and shift of the external coordinate system. "False easting/northing" is used instead of "offset" for historical reasons. These factors are commonly met in projection systems like UTM. Scale correction values are given in dimensionless units (such as 0.9996 for UTM) and False easting/northing values are given in degrees or meters depending on type of the coordinate system (such as 500,000 meters for UTM).


Example: When importing a Manifold System Release 4.50 map that uses a Unit2Degree factor of 10,000 (the default), the Local scale will be 0.0001 for both X and Y. This means that one native unit within the imported drawing equals 0.0001 degree. Modern Manifold editions still use full 1:250-millionth of a meter precision, but they will import the unit numbers from a 4.50 map knowing that the units used in that drawing had a scale factor of 0.0001.


Example: Increasing the Local scale in X of an image or drawing used as a layer in a map will make it look wider. Increasing the Scale correction in X will make it look narrower.


Example: Increasing the Local offset in both X and Y of an image or drawing used as a layer in a map will move the component towards the upper-right. Increasing the False easting/northing in both X and Y of an image or drawing used as a layer in a map will move the component towards the bottom-left (hence, the word "false").


Local scale and Local offset are applied to internal coordinates in a mirror image, inverse way as compared to how Scale correction and False easting/northing are applied to external coordinates within a projection system. In general, one can achieve exactly the same scale or offset effect by applying inverse values to either the local or the external scale/offset pairs.


The choice of which to use depends on the context of the activity. Local scale and Local offset values are better suited for manual georegistration while Scale correction and False easting / northing values are better for the professional use of projections.


Differences between Major Projection Dialogs


There are two main projection dialogs that we use most frequently in Manifold.


The Change Projection dialog is used to change the projection of a component from one projection into another. It can only work correctly if the component already has been accurately assigned a projection. The Assign Projection dialog is used to verify and assign projections. It is used mainly to assign projections to components imported from formats that do not correctly store projection information. It is also used to assign the projection to be used by a map component.



The Assign Projection dialog finds use in Manifold for three purposes:



The Change Projection dialog is easy to use if the component involved already has had a projection accurately assigned.


A reminder: component window such as drawing or image windows always show their contents using the native projection of that component. Map windows can show their contents using whatever projection has been assigned to that map regardless of the native projections used by components that are layers in the map. If the components within a map window have a different projection than the projection assigned to the map, then the map window will re-project the contents on the fly so they are displayed within the projection assigned to the map window.


Why are there Two Projection Dialogs?


The need to have two projection dialogs that are confusingly similar to beginners, the Assign Projection dialog and the Change Projection dialog, arises from the GIS industry's inability to invent a clean and simple solution to the general use of projections. That the industry has been unable to invent a clean and simple solution is at the same time a negative sign and it is also a very positive sign about the health of the industry.


It is a positive sign because the GIS industry has become very large and a modern GIS like Manifold can read data from a vast number of formats used to store images, drawings and other data. Many sources for such data don't have anything to do with the GIS industry and so don't have the technical awareness that, say, a particular image might be used some day in a GIS package. Such sources don't bother implanting projection information into that image and might not even know what a projection is or how to correctly store such information.


For example, one day we may be flying in an airplane over an interesting view, and we might take a snapshot of that view with an ordinary consumer digital camera. The makers of the camera don't know anything about GIS and they have no way of knowing that a camera normally used to take snapshots of pets and birthday parties might also be used one day to take an aerial photograph that someone would like to use in a GIS package like Manifold. It is a testament to the power of GIS and to the power of Manifold that even though this image was acquired using non-GIS technology Manifold nonetheless has facilities (such as georegistration or the use of the Assign Projection dialog) that let us use that image in Manifold. Very cool.


The negative scenario driving the need for two dialogs is the very wide distribution within the GIS community of lots of data stored in absolutely terrible, poorly-designed formats that do not store projection information accurately. In years past many GIS packages were simply awful from a software design perspective and lacked the foresight to design a well-functioning format. In some cases, the old formats are limited because the equipment used to acquire the data was designed decades ago: for example, space technology changes so slowly that many of the sensors operating on today's satellites for space imagery were designed many years ago. They might have even been designed by people who never heard of DVDs, cell phones, Windows or the Internet.


There is an incredible amount of legacy junk out there in GIS, and some of it is still earnestly advocated by people who don't realize it is dreadfully obsolete. If you use a modern GIS like Manifold, to make an analogy with the music world, it is as if you are used to the modern world of MP3's and CDs but when you go down to your local government GIS department you encounter a data librarian who thinks the world still uses eight-track audio tape cartridges and offers you one of those. While you stare at the antique thing thinking "you've got to be kidding..." the librarian is beaming with pride over what he or she thinks is modern technology.


To be absolutely fair, the widespread distribution of GIS data in junk, archaic formats is in some ways a positive sign: it shows that GIS has been around long enough for governments and organizations to acquire a really titanic amount of data about our world already stored in some sort of GIS format. That's very useful because getting that into Manifold is usually easy if you pay attention to some small details. It's also positive in that we wouldn't think of such archaic formats as being utter junk if the GIS industry were not evolving so rapidly that new things like Manifold appear to make the old stuff seem so old-fashioned. But it still complicates matters for beginners.


How Projections Work


To understand why we need two confusingly similar projection dialogs we need to understand how projections are made to work. Bear with us and do not skip over this section as it is critically important to understanding how to operate Manifold or any other GIS.


When we pop open a drawing the system draws pretty lines and areas and points based upon data sitting in a file somewhere. That data consists of a series of paired numbers that give the locations of coordinates needed to draw what we see in a "connect the dots" fashion. If you zoom far enough into any drawing you'll see that even though the drawing may appear to have smooth curves, when viewed close up it always consists of straight line segments that are drawn between coordinate locations.


To make this system work, where a file with a bunch of numbers in it is displayed as a pretty drawing, there are two things that the GIS system has to know how to do:



Obviously, whoever designs the GIS package better make sure that whatever scheme is chosen for coordinate numbers is something that is understood by the module used for display.


Software designers can come up with all sorts of ways of storing coordinates as numbers in files and indeed there are many ways of doing so. A simple package could store numbers that specify latitudes and longitudes of coordinates. A CAD package like AutoCAD could store numbers that represent some arbitrary X,Y grid position in a blueprint. A technical cartographic package might store numbers like 43080934098.3048939 that represented some grid location within a projected coordinate system.


It almost doesn't matter what numbering system is used to encode the coordinates so long as the rest of the GIS package knows how to use those numbers to display objects in the drawing and to work with them. The key thing is that the part of the software that works with those stored coordinate numbers must understand what they are supposed to mean. It is as if the drawing were stored in one language, English, and the display software had to understand that English was used as well.


To continue this analogy, it doesn't matter if the drawing were stored in Japanese if the display software also understood it was Japanese. That would OK as well. But, a situation where the drawing was stored in Japanese and the display software thought it were English would be a problem, or if it were stored in English and the display software thought it was in Japanese would also be a problem. The key thing is that both parts of the system must agree on what is supposed to be going on.


A more technical reader at this point may jump ahead to think, "Hey, all that is great, but if here I sit using Manifold, why do I care what other systems might do? Why is it simply not the case that Manifold picks some way of storing numbers, understands within itself what it is doing, and we can then forget about any of these complications?" Good question.


Manifold can and does indeed have an internal format for storing coordinates that all the other parts of Manifold understand perfectly. In a perfect world we'd never have to worry about any of this stuff. There are two catches to why we still need two projection dialogs and why Manifold's internal system does not simplify life as we would like:



The first point above will get beaten to death in endless essays and topics throughout this documentation. Reading those topics will help the Manifold user get street-smart about exploiting data acquired in dumb formats. We won't go further into it here.


The second point is more interesting and often comes as a surprise to non-technical users. In modern times we all are used to computers storing things internally in various magic ways without needing to know how all that technical wizardry is accomplished, so it may come as a surprise to have to think about how that is done. But that happens in GIS because GIS data sets are often so huge that even with modern desktop computers we have to make some manual compromises to be able to work with such data.


It's a bit like having an automatic transmission in a car as opposed to a manual transmission: if you have a really weak engine in a car but still have to carry heavy loads you might need to learn how to use a clutch and how to manually shift gears to eke out every last bit of capability. In the GIS world, sometimes to deal with the limits of processing on desktop computers we have to know how to manually "shift gears" by re-projecting a drawing or other component.


If all computers were super-fast supercomputers, we could always store all coordinate numbers using the same scheme, for example, as simple latitude and longitude numbers, and then whenever we needed to show them in some projection we could tell Manifold what projection to use and Manifold would make the calculations on the fly to show the data in the desired projection. No matter how big the drawing might be, no matter how many numbers may be involved, if a fast enough supercomputer were doing the work Manifold could instantly show the drawing to us in whatever projection we wanted. That would be like an automatic transmission in a car.


In fact, computers have gotten fast enough that Manifold can often do just this when we show drawings or other components in a map window if the drawings or images are not too large. If the drawings use a different projection (that is, their data is stored using a different number scheme) than the projection used by the map, the map will actually re-compute the display on the fly so that the drawing layers appear in that map as if they used the map's projection as their own native projection.


The problem is that only goes so far. When the drawing gets big enough, the time required to re-compute the drawing's numbers into a different projection takes so long that users get annoyed while their maps take forever to display. Most GIS images are already so big that users don't want them re-projected on the fly. If we are cursed with the bad luck of not having a supercomputer on our desktop we will want the display process to go faster and to do that we will have to change projections manually sometimes, like using a stick shift in a car.


The way to make the display process go faster is to change the numbers inside the drawing into a numbering scheme that directly implements the desired projection. On a one-time basis we can re-compute the coordinate numbers inside the drawing so that it later can be displayed in the desired projection without any need to re-compute it on the fly. It's true we have to wait while the drawing is re-projected, but that only happens once and then every time we display it in that projection it displays fast. This is what the Change Projection dialog does. It changes the innards of a drawing or other component so that the native projection is the one we desire, the one in which we expect to work with the drawing.


All the above notions set up a two stage methodology involving projections. We have to know what the numbers are used inside any given drawing, image or other component. The numbering scheme used internally is the native projection used inside the drawing. And then also Manifold has to be told what projection is supposed to be used with those numbers, which is the assigned projection. Obviously, the assigned projection should match the native projection.


All Manifold features and functions will automatically make sure that happens, assuming that the data set was correctly set up (that is, the assigned projection matched the native projection) in the first place. If we use the Change Projection dialog to change the native projection of a drawing, Manifold will not only change the native projection but it will also change the assigned projection to match as well. We can therefore use Change Projection to re-compute the numbers (that is, to re-project the numbers) inside a drawing into whatever projection we want for fastest possible work. Inside Manifold, it all works automatically and perfectly with nothing to worry about.


But when we bring something into Manifold from outside, we may need to tell Manifold what those numbers are supposed to mean. In that case, we will use the Assign Projection dialog to tell Manifold what projection to assign to that drawing so that the assigned projection matches the numbering scheme used inside the drawing.


You might think that when Manifold imports a drawing or image it should know what the numbers are supposed to mean. If we are importing from a modern GIS format that correctly stores projection information that will happen and we won't have to worry about using Assign Projection. But if we are stuck importing from some stupid format like DXF or ESRI shapefiles, then we will have to use Assign Projection. That's life in the big city.


You might think that anyone with common sense, no matter how much a beginner at programming, would make sure that any format they designed for storing GIS data would also embed some information as to what the numbers are supposed to mean, but unfortunately the programmers who designed many of the world's GIS legacy formats lacked the foresight to do so. So, we are stuck with hacks like shapefiles filling up the world's hard disks and stuck with the need to manually use Assign Projection to import such things. At least we can be grateful that Manifold has tools to let us import such data almost no matter what format it is in.


Two More Uses for Assign Projection


OK, so we use Change Projection to re-compute the numbers inside a component and we can trust Manifold to also assign the right projection to match that re-computation when it is done. If we bring something into Manifold from some wacko format and need to tell Manifold what those numbers mean, we use the Assign Projection dialog. So far, so good.


In addition to the above, we also use the Assign Projection dialog in two related uses that are so similar in purpose that we can use this same dialog for them:





When opened with a read-only component (such as a drawing or other component stored on an Enterprise server when using Enterprise Edition ), projection dialogs will report projection information but will not allow changes.


The Assign Projection and Change Projection dialogs also appear in the project pane context menu (right click on a component and the pop-up context menu appears). These dialogs will not be enabled in project pane context menus for components that take their projections automatically from parent components, for example, labels components bound to drawings or profiles.


Additional Reading


Experts may jump directly to the Projections Quick Reference topic.


If you are new to coordinate systems in GIS or would like a refresher on coordinate systems and projections, consult the Coordinates Tutorial , the Projections Tutorial , and the Coordinates in Projected Maps topics followed by a quick review of the Projections Quick Reference topic for a summary.


See also the Projections and Images topic.


See Also


Edit - Assign Projection


Edit - Change Projection