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

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


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?

ArcMap will re-project your datasets on-the-fly if you have correctly set the coordinate systems beforehand. (There can be a performance hit from this, especially with rasters, but it will work.)

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?)

That's correct.

You mention that you created the feature from a raster in Spatial Analyst - have you ensured that the original raster dataset has the correct coordinate system specified? The outputs from Spatial Analyst, which are based on this file, should thereafter maintain the correct coordinate system.