[GIS] Arcmap 10 feature with undefined coordinate system projects incorrectly when projecton is defined

arcgis-10.0coordinate systemscale

I'm fairly new to GIS, and am slowly feeling my way through ArcMap 10. I have run across a problem defining the Geographic Coordinate System and projection for a feature (the feature currently has an Undefined GCS) that I created from a raster file using the Contour tool in Spatial Analyst. (Although the Undefined data lines up with other (defined) features that I have available, as I understand it, it is important to have all features within a map using the same GCS and projection? Is this correct, or can I work across multiple GCS?)

I attempted to set the GCS to GDA_1994, and the projection to Lambert Conformal Conic (these are the GCS and projection of the other data sets that I have available). The data frames GCS is set as above (GDA_1994, Lambert). I also know the approximate location in Decimal Degrees (~ 150.9, -25.0 to 153.9, -28.5 => South East Queensland). When I attempt to use the 'Define Projection' tool (I believe this is the one I should be using, as 'Project' is only used when a GCS is already specified?) the scale and position of the data is completely thrown, with the entire feature fitting within 131.00, 0.00 DD (the measure tool gives the entire data set a size of ~ 3m x 3.5m – pretty much the same values as the true size of the data's range in DD – Coincidence?). Clearly I'm doing something wrong, or I'm missing a step that I have to do before using Define Projection, but I have no idea what..? Do I have to somehow set the datas units, or convert them from the angular units(DD) to linear units(m)?

Any help would be appreciated.

Best Answer

As @StephenLead said, ArcMap will Reproject your datasets on-the-fly. What is most critical is that each of your Datasets have the appropriate Coordinate System set beforehand. The other critical item is that you set the Coordinate System of your Data Frame. There are differing opinions as to what this should be set to, but a good rule is to set it to match that of the majority of the layers in your project. This will reduce the amount of on-the-fly reprojection that has to occur.

The Define Projection tool is appropriate to Assign the projection to a dataset that has an undefined Spatial Reference, but where you know what it should be.

In your case, I think the issue is in determining what the correct Coordinate System of your Contour layer should actually be.

When you use the Contour tool in Spatial Analyst, the output data should retain the coordinate system of the input raster. If the Raster dataset did not have a Spatial Reference defined, then neither will the Output dataset, however, the coordinates will still be those of whatever the input Raster was. This is the first item that you can test:

  1. Open a New session of ArcMap. Do not set the Coordinate System of the Data Frame.
  2. Add the Contour Dataset. Once it loads in, the coordinates shown in the info bar at the bottom should show the coordinates in the layer. This is a characteristic of ArcMap in that it zooms to and sets the spatial reference of the Data Frame, to that of the First dataset that is loaded in.
  3. Compare the coordinates that you see in the window, to the known coordinates that you know should be found in this data.
  4. Perform steps 1-3 with your Raster dataset.

Once you have both sets of coordinates from ArcMap, you should end up with 3 possible conclusions.

  1. If your Contour coordinates match those of your Raster, and those of your Known coordinate range, then you know that they have carried through correctly, with no unknown reprojecting occurring. In this case, you need to check the name of the Coordinate System to make sure you have the correct one to match your Coordinates. Once you have the correct one, then use the Define Projection tool, to assign to your Contour dataset.
  2. If your Contour coordinates match those of your Raster, but these both do not match your known Coordinate range, then either your Raster was reprojected at some point, or it was delivered to you in a different coordinate space than you thought.
    You then have 2 options.
    a. Obtain a new copy of the Raster projected in your known Coordinate System. Then, recreate the Contour dataset.
    b. Determine the coordinate system of your Raster. You may be able to figure it out by examining the coordinate range. For example, Latitude/Longitude coordinates will be in the range of: Y/Lat = 0 to 90 and X/Lon = -180 - +180. If you see coordinates in this range, then it is a Geographic Coordinate System. Look for coordinates that match those of commonly used Projections in your area.
  3. If your Contour coordinates do not match those of your Raster, then a reprojection occurred at the time you created your Contours. This could be a result of having the Environment variable for Output Coordinate System set. Here is the help file that discusses the Contour (Spatial Analyst) Tool, and lists the relevant Environments.

One thing I noticed in your question that may be a source of confusion is your use of Geographic Coordinate System (GCS), and Projection. The terminology in ArcGIS uses Coordinate System interchangeably with Spatial Reference. Within these, you might have a Geographic Coordinate System, which is based off a Spheroid with units of Latitude/Longitude, or you might have a Projected Coordinate System, that is based off of a Projection, like the Lambert Conformal Conic, that you mentioned above.

Here is the window in ArcMap for setting the Coordinate system of the Data Frame. Notice that you have the option to choose a Geographic or Projected Coordinate system. I have chosen the Geographic Coordinate System: GCS_GDA_1994 enter image description here

When you mention Lambert Conformal Conic, you are moving into the realm of the Projected Coordinate System, of which there is quite a list, as in this screenshot below: enter image description here

I have selected one, which seems to have the parameters you are looking for, namely a Projected Coordinate system based off of the GDA_1994 Geographic Coordinate System, but using the Lambert Conformal Conic Projection. This has units in Meters.

Hopefully this discussion has given you some clue of where to find the problem. Your best bet in any case is to go to the source of your data and obtain the correct projection information from them, as well as datasets that are already in that projection, for you to work from.

For the future, here is another question asked on GIS.se regarding how to determine the spatial reference of a layer. It also contains links to ESRI documentation discussing the same. ArcGIS 10 projection question