Setting Latitude of True Scale

QUESTION: I am trying to set up a map coordinate space for an image that has been gridded into polar stereographic map projection with a latitude of true scale of 70 degrees. I'm using Map_Proj_Init to set up my polar map projection, but for some reason the TRUE_SCALE_LATITUDE keyword is causing problems for me.

   IDL> mapStruct = Map_Proj_Init("Polar Stereographic", $
       % Parameter TRUE_SCALE_LATITUDE not allowed for projection: Polar Stereographic. 

Can you show me how to set this map projection up properly?

ANSWER: The true scale latitude is also sometimes called the standard parallel. You will find the terms used interchangably. But no matter what you call it, you are correct that the TRUE_SCALE_LATITUDE keyword is not allowed for the polar stereographic projection, even though almost all polar stereographic projections are defined with such a latitude of true scale.

Here is what is happening. Normally, the CENTER_LATITUDE and CENTER_LONGITUDE keywords define the origin of the map projection. (The CENTER_LONGITUDE can also be thought of as the longitude that is pointing down on the map projection from the map origin. This is its usual definition.) However, in IDL the CENTER_LATITUDE keyword does not define the latitude at the center of the map projection, since this latitude is, by definition, either 90 or -90 degrees. Rather, it is used to define the true scale latitude.

You can see this is so if you take the time to step though the Map_Proj_Init code in an IDL editor. For a polar stereographic projection, the value passed into the program via the CENTER_LATITUDE keyword is quietly and ever so discreetly moved from the latitude of the map projection origin field in the map projection parameter variable over to the true scale latitude position in the projection parameter variable before the projection parameters are passed to the underlying GCTP map projection code.

(One could argue that it makes a lot more sense to disallow the CENTER_LATITUDE keyword and allow the TRUE_SCALE_LATITUDE keyword for polar map projections, and I would say you make an excellent point. However, that is not how it is done in IDL.)

If you remember that CENTER_LATITUDE means TRUE_SCALE_LATITUDE for polar stereographic map projections, you will have no trouble setting up a map projection space for these images.

[Note that this problem has been corrected in IDL 8.0 and the TRUE_SCALE_LATITUDE keyword can now be used with the polar stereographic projection. The problem is also corrected in the cgMap object, which is a wrapper for MAP_PROJ_INIT. The cgMap object will work in any version of IDL.]

Version of IDL used to prepare this article: IDL 7.0.3.

Web Coyote's Guide to IDL Programming