SetCorSys TCL UTILITIES USER MANUAL SetCorSys
SYNOPSIS
Set current plotting coordinate system
PACKAGE
TCLGPH
NAME
SetCorSys
USAGE
SetCorSys  CoSys Ops
INPUT DEFINITIONS
CoSys - The current plotting coordinate system. The recognized coordinate systems are: CARTESIAN, BALTHASART, BEHRMANN_CYLINDRICAL, CYLINDRICAL, CYLINDRICAL_EQUAL_AREA, CYLINDRICAL_EQUIDISTANT, ECKERT_SINUSOIDAL, ECKERT_ELLIPSOIDAL, EQUIRECTANGULAR, GALL_ORTHOGRAPHIC, LAMBERT_CYLINDRICAL, MERCATOR, MILLER37, MILLER43, MILLER50, MOLLWEIDE, ORTHOGRAPHIC, PETERS, SINUSOIDAL, STEREOGRAPHIC, and TRISTAN_EDWARDS.
Ops - A list of three options which may be applied to the selected coordinate system. Not all coordinate systems use all of the options and unused options can be left as 0.0. The option list is: [LONGITUDE_OFFSET LATITUDE_OFFSET RADIUS]. LONGITUDE_OFFSET as a tranlation in longitude and can be applied to any coordiante system but CARTESIAN LATITUDE_OFFSET is a translation in latitude and is used only in the CYLINDRICAL_EQUAL_AREA, CYLINDRICAL_EQUIDISTANT, ORTHOGRAPIC and STEREOGRAPHIC coordinate systems. RADIUS is used only in the STEREOGRAPHIC coordinate system and is the radius of the stereosgraphic mapping sphere.
RETURN DEFINITION
NONE
DESCRIPTION
SetCorSys sets the current coordinate system. This is defaulted to CARTESIAN when graphics is initialized. In all coordinate systems other than CARTESIAN the (X,Y) postion coordinates become (longitude, latitude) in all graphics procedures. Latitude runs from -90 to 90 degrees and longitude from -180.0 to 180.0 degrees. Certain coordinates systems allow an initial translation in longitude and/or latitude. These are entered in the Ops variable. A safe Ops entry list is [list 0.0 0.0 0.2].
The most largest problem in working with non-Cartesian coordinate systems is to determine a suitable window aspect ratio and scaling and a viable range of longitude and latitudes. The latter is important since in some coordinate systems the latitudes tend to infinity as you approach the poles. The following table gives suggested values.
COORDINATE SYSTEM Y:X ASPECT RATIO X SCALING Y SCALING LONGITUDES LATITUDES
BALTHASART 1:1.2856 -115.70 to 115.70 -1.56 to 1.56 -180.0 to 180.0 -90.0 to 90.0
BEHRMANN_CYLINDRICAL 1:1.73 -155.88 to 155.88 -1.15 to 1.15 -180.0 to 180.0 -90.0 to 90.0
CYLINDRICAL 1:2.57 -180.0 to 180.0 -2.57 to 2.57 -180.0 to 180.0 -70.0 to 70.0
CYLINDRICAL_EQUAL_AREA 1:2 -180.0 to 180.0 -1.00 to 1.00 -180.0 to 180.0 -90.0 to 90.0
CYLINDRICAL_EQUIDISTANT 1:2 -180.0 to 180.0 -90.00 to 90.00 -180.0 to 180.0 -90.0 to 90.0
ECKERT_SINUSOIDAL 1:2 -180.0 to 180.0 -90.00 to 90.00 -180.0 to 180.0 -90.0 to 90.0
ECKERT_ELLIPSOIDAL 1:1 -90.0 to 90.0 -90.00 to 90.00 -180.0 to 180.0 -90.0 to 90.0
EQUIRECTANGULAR 1:2 -180.0 to 180.0 -90.00 to 90.00 -180.0 to 180.0 -90.0 to 90.0
GALL_ORTHOGRAPHIC 1:1.414 -127.28 to 127.28 -1.415 to 1.415 -180.0 to 180.0 -90.0 to 90.0
LAMBERT_CYLINDRICAL 1:2 -180.0 to 180.0 -1.00 to 1.00 -180.0 to 180.0 -90.0 to 90.0
MERCATOR 1:2.25 -180.0 to 180.0 -2.44 to 2.44 -180.0 to 180.0 -80.0 to 80.0
MILLER37 1:1.587 -142.80 to 142.80 -90.00 to 90.00 -180.0 to 180.0 -90.0 to 90.0
MILLER43 1:1.463 -131.64 to 131.64 -90.00 to 90.00 -180.0 to 180.0 -90.0 to 90.0
MILLER50 1:1.273 -114.57 to 114.57 -90.00 to 90.00 -180.0 to 180.0 -90.0 to 90.0
MOLLWEIDE 1:2 -180.0 to 180.0 -90.00 to 90.00 -180.0 to 180.0 -90.0 to 90.0
ORTHOGRAPHIC 1:1 -1.0 to 1.0 -1.0 to 1.0 -180.0 to 180.0 -90.0 to 90.0
PETERS 1:1.435 -129.18 to 129.18 -1.39 to 1.39 -180.0 to 180.0 -90.0 to 90.0
SINUSOIDAL 1:2 -180.0 to 180.0 -90.00 to 90.00 -180.0 to 180.0 -90.0 to 90.0
STEREOGRAPHIC 1:2 -4.6 to 4.6 -2.3 to 2.3 -180.0 to 180.0 -90.0 to 90.0
TRISTAN_EDWARDS 1:1.589 -143.03 to 143.03 -1.26 to 1.26 -180.0 to 180.0 -90.0 to 90.0
ERRORS
None Generated
C BACKING
No
EXAMPLE(S)
EXAMPLE 1:Show examples of the orthogonal, stereographic and eckert_ellipsoidal coordinate systems.
# INITIALIZE the default gui settings

GUIprefsRead

# SET a window size

set GphInfo(xsScrL) 600
set GphInfo(ysScrL) 600
set GphInfo(xScrL) 600
set GphInfo(yScrL) 600

# START graphics

GraphicsOn TK RainBow SWAP

# SET white as the line color

PlotColor HOLD $GphInfo(White) OFF

# SET a small text size 

TextProp 8

# OPEN a pixel based window 

GenWindow  9 0.0 0.0 0.0 1.0 1.0 0.0 0.0 0.0 0.0 1.0 1.0 0.0

# OPEN a square relative window in the lower left-hand quadrant

RelSqWindow 0 9 0. 0. 0. .5 -1. -1. 0. 1. 1. 0.

# PUT UP a label for this coordinate system

TexT 0 0.0 0.0 0.0 center ORTHOGRAPHIC $GphInfo(Red) 

# SET coordinate system to orthographic and tilt the N pole down 40 degrees 

SetCorSys ORTHOGRAPHIC [list 0.0 40.0 0.2]

# INDICATE that plotting outline is in MAP coordinates

PLTinfoChg 0 ALL AXIS FORMAT MAP

# INDICATE that window 0 can be used as a plotting window

DefinePlot 0 0 -1 -1

# DRAW the orthographics plotting axes

PlotOutlines 0 [list "" 1.0 "" 1.0] [list NONE NONE BOTH BOTH]  

# RESET the coordinate system back to cartesian

SetCorSys CARTESIAN [list 0.0 0.0 0.2]

# NOW do the same for a stereographic coordinate system.  Put it across
#   the top of the canvas

RelWindow 1 9 0. .5 0. 1.0 1.0 0.0 -4.6 -2.3 0. 4.6 2.3 0.0
TexT 1 0.0 0.0 0.0 center STEREOGRAPHIC $GphInfo(Red) 
SetCorSys STEREOGRAPHIC [list 0.0 0.0 0.2]
PLTinfoChg 1 ALL AXIS FORMAT MAP
DefinePlot 1 1 -1 -1
PlotOutlines 1 [list "" 1.0 "" 1.0] [list NONE NONE BOTH BOTH]  
SetCorSys CARTESIAN [list 0.0 0.0 0.2]


# NOW do the again for an eckert_ellipsoidal coordinate system.  Put 
#  it in the lower right quadrant

RelSqWindow 2 9 0.5 0.0 0. .5 -180. -90 0. 180. 90 0.0
TexT 2 0.0 0.0  0.0 center ECKERT_ELLIPSOIDAL $GphInfo(Red) 
SetCorSys ECKERT_ELLIPSOIDAL [list 0.0 0.0 0.2]
PLTinfoChg 2 ALL AXIS FORMAT MAP
DefinePlot 2 2 -1 -1
PlotOutlines 2 [list "" 1.0 "" 1.0] [list NONE NONE BOTH BOTH]  
      
EXAMPLE 1:Show examples of the mollweide, cylindrical_equal_area, sinusoidal, gall_orthographic, eckert_sinusoidal, and mercator coordinate systems.
# INITIALIZE the default gui settings

GUIprefsRead

# SET a window size

set GphInfo(xsScrL) 600
set GphInfo(ysScrL) 600
set GphInfo(xScrL) 600
set GphInfo(yScrL) 600

# START graphics

GraphicsOn TK RainBow SWAP

# SET white as the line color

PlotColor HOLD $GphInfo(White) OFF

# SET a small text size 

TextProp 8

# OPEN a pixel based window 

GenWindow  9 0.0 0.0 0.0 1.0 1.0 0.0 0.0 0.0 0.0 1.0 1.0 0.0

# OPEN a window in the upper left-hand corner of the canvas

RelWindow 0 9 0. 0. 0. 0.5 .333 0.0 -180. -90. 0. 180. 90. 0.

# PUT UP a label for this coordinate system

TexT 0 0.0 0.0 0.0 center MOLLWEIDE $GphInfo(Red) 
WinClip 0 OFF

# SET coordinate system to molweide

SetCorSys MOLLWEIDE [list 0.0 0.0 0.2]

# INDICATE that plotting outline is in MAP coordinates

PLTinfoChg 0 ALL AXIS FORMAT MAP

# INDICATE that window 0 can be used as a plotting window

DefinePlot 0 0 -1 -1

# DRAW the orthographics plotting axes

PlotOutlines 0 [list "" 1.0 "" 1.0] [list NONE NONE BOTH BOTH]  

# RESET the coordinate system back to cartesian

SetCorSys CARTESIAN [list 0.0 0.0 0.2]

# NOW do the same for a cylindrical_equal_area coordinate system.  Put it 
#   in the middle left of the canvas

RelWindow 2 9 0. .333 0. 0.5 0.666 0.0 -180.01 -1.0 0. 180.01 1.0 0.0
TexT 2 0.0 0.0 0.0 center CYLINDRICAL_EQUAL_AREA $GphInfo(Red) 
SetCorSys CYLINDRICAL_EQUAL_AREA [list 0.0 0.0 0.2]
PLTinfoChg 2 ALL AXIS FORMAT MAP
DefinePlot 2 2 -1 -1
PlotOutlines 2 [list "" 1.0 "" 1.0] [list NONE NONE BOTH BOTH]  
SetCorSys CARTESIAN [list 0.0 0.0 0.2]

# NOW do the same for a sinusoidal coordinate system.  Put it in the
#   lower left-hand corner of the canvas

RelWindow 2 9 0. .666 0. 0.5 1.0 0.0 -180.0 -90.0 0. 180.0 90.0 0.0
TexT 2 0.0 0.0 0.0 center SINUSOIDAL $GphInfo(Red) 
SetCorSys SINUSOIDAL [list 0.0 0.0 0.2]
PLTinfoChg 2 ALL AXIS FORMAT MAP
DefinePlot 2 2 -1 -1
PlotOutlines 2 [list "" 1.0 "" 1.0] [list NONE NONE BOTH BOTH]  
SetCorSys CARTESIAN [list 0.0 0.0 0.2]

# NOW do the same for a gall_orthographic coordinate system.  Put it 
#   in the top right of the canvas

RelWindow 4 9 .57325 .666 0. .92675 1.0 0. -127.28 -1.415 0. 127.28 1.415 0.0
TexT 4 0.0 0.0 0.0 center GALL_ORTHOGRAPHIC $GphInfo(Red) 
SetCorSys GALL_ORTHOGRAPHIC [list 0.0 0.0 0.2]
PLTinfoChg 4 ALL AXIS FORMAT MAP
DefinePlot 4 4 -1 -1
PlotOutlines 4 [list "" 1.0 "" 1.0] [list NONE NONE BOTH BOTH]  
SetCorSys CARTESIAN [list 0.0 0.0 0.2]

# NOW do the same for a eckert_sinusoidal coordinate system.  Put it 
#   in the middle right of the canvas

RelWindow 5 9 .5 .333 0. 1.0 .666 0. -180.0 -90.01 0. 180.0 90.01 0.0
TexT 5 0.0 0.0 0.0 center ECKERT_SINUSOIDAL $GphInfo(Red) 
SetCorSys ECKERT_SINUSOIDAL [list 0.0 0.0 0.2]
PLTinfoChg 5 ALL AXIS FORMAT MAP
DefinePlot 5 5 -1 -1
PlotOutlines 5 [list "" 1.0 "" 1.0] [list NONE NONE BOTH BOTH]  
SetCorSys CARTESIAN [list 0.0 0.0 0.2]

# NOW do the same for a mercator coordinate system.  Put it 
#   in the top right of the canvas

RelWindow 6 9 .5 0.0185 0. 1.0 .3145 0. -180.0 -2.44 0. 180.0 2.44 0.0
TexT 6 0.0 0.0 0.0 center MERCATOR $GphInfo(Red) 
SetCorSys MERCATOR [list 0.0 0.0 0.2]
PLTinfoChg 6 ALL AXIS FORMAT MAP
DefinePlot 6 6 -1 -1
PlotOutlines 6 [list "" 1.0 "" 1.0] [list NONE NONE BOTH BOTH]  
SetCorSys CARTESIAN [list 0.0 0.0 0.2]
      
March 1, 2007