Language > Variables > System Variables > Constant System Variables

# Constant System Variables

The following system variables contain predefined constants or values for use by IDL routines. System variables can be used just like other variables. For example, the command:

PRINT, ACOS(A) * !RADEG

converts a result expressed in radians to one expressed in degrees.

### !COLOR

A read-only structure variable that allows you to retrieve color values [red, green, blue] by providing one of the color name strings listed in the table below.

PRINT, !COLOR.burlywood

The following table lists !COLOR names and values (these are essentially the same as those in W3C’s list of web colors):

Color Name | Hex Value | Decimal Value
alice_blue | #F0F8FF | 240,248,255
antique_white | #FAEBD7 | 250,235,215
aqua | #00FFFF | 0,255,255
aquamarine | #7FFFD4 | 127,255,212
azure | #F0FFFF | 240,255,255
beige | #F5F5DC | 245,245,220
bisque | #FFE4C4 | 255,228,196
black | #000000 | 0,0,0
blanched_almond | #FFEBCD | 255,235,205
blue | #0000FF | 0,0,255
blue_violet | #8A2BE2 | 138,43,226
brown | #A52A2A | 165,42,42
burlywood | #DEB887 | 222,184,135
cadet_blue | #5F9EA0 | 95,158,160
chartreuse | #7FFF00 | 127,255,0
chocolate | #D2691E | 210,105,30
coral | #FF7F50 | 255,127,80
cornflower | #6495ED | 100,149,237
cornsilk | #FFF8DC | 255,248,220
crimson | #DC143C | 220,20,60
cyan | #00FFFF | 0,255,255
dark_blue | #00008B | 0,0,139
dark_cyan | #008B8B | 0,139,139
dark_goldenrod | #B8860B | 184,134,11
dark_gray | #A9A9A9 | 169,169,169
dark_grey | #A9A9A9 | 169,169,169
dark_green | #006400 | 0,100,0
dark_khaki | #BDB76B | 189,183,107
dark_magenta | #8B008B | 139,0,139
dark_olive_green | #556B2F | 85,107,47
dark_orange | #FF8C00 | 255,140,0
dark_orchid | #9932CC | 153,50,204
dark_red | #8B0000 | 139,0,0
dark_salmon | #E9967A | 233,150,122
dark_sea_green | #8FBC8F | 143,188,143
dark_slate_blue | #483D8B | 72,61,139
dark_slate_gray | #2F4F4F | 47,79,79
dark_slate_grey | #2F4F4F | 47,79,79
dark_turquoise | #00CED1 | 0,206,209
dark_violet | #9400D3 | 148,0,211
deep_pink | #FF1493 | 255,20,147
deep_sky_blue | #00BFFF | 0,191,255
dim_gray | #696969 | 105,105,105
dim_grey | #696969 | 105,105,105
dodger_blue | #1E90FF | 30,144,255
firebrick | #B22222 | 178,34,34
floral_white | #FFFAF0 | 255,250,240
forest_green | #228B22 | 34,139,34
fuchsia | #FF00FF | 255,0,255
gainsboro | #DCDCDC | 220,220,220
ghost_white | #F8F8FF | 248,248,255
gold | #FFD700 | 255,215,0
goldenrod | #DAA520 | 218,165,32
gray | #7F7F7F | 127,127,127
grey | #7F7F7F | 127,127,127
green | #007F00 | 0,127,0
green_yellow | #ADFF2F | 173,255,47
gray | #808080 | 128,128,128
honeydew | #F0FFF0 | 240,255,240
hot_pink | #FF69B4 | 255,105,180
indian_red | #CD5C5C | 205,92,92
indigo | #4B0082 | 75,0,130
ivory | #FFFFF0 | 255,255,240
khaki | #F0E68C | 240,230,140
lavender | #E6E6FA | 230,230,250
lavender_blush | #FFF0F5 | 255,240,245
lawn_green | #7CFC00 | 124,252,0
lemon_chiffon | #FFFACD | 255,250,205
light_blue | #ADD8E6 | 173,216,230
light_coral | #F08080 | 240,128,128
light_cyan | #E0FFFF | 224,255,255
light_goldenrod | #FAFAD2 | 250,250,210
light_gray | #D3D3D3 | 211,211,211
light_green | #90EE90 | 144,238,144
light_gray | #D3D3D3 | 211,211,211
light_grey | #D3D3D3 | 211,211,211
light_pink | #FFB6C1 | 255,182,193
light_salmon | #FFA07A | 255,160,122
light_sea_green | #20B2AA | 32,178,170
light_sky_blue | #87CEFA | 135,206,250
light_slate_gray | #778899 | 119,136,153
light_slate_grey | #778899 | 119,136,153
light_steel_blue | #B0C4DE | 176,196,222
light_yellow | #FFFFE0 | 255,255,224
lime | #00FF00 | 0,255,0
lime_green | #32CD32 | 50,205,50
linen | #FAF0E6 | 250,240,230
magenta | #FF00FF | 255,0,255
maroon | #7F0000 | 127,0,0
medium_aquamarine | #66CDAA | 102,205,170
medium_blue | #0000CD | 0,0,205
medium_orchid | #BA55D3 | 186,85,211
medium_purple | #9370DB | 147,112,219
medium_sea_green | #3CB371 | 60,179,113
medium_slate_blue | #7B68EE | 123,104,238
medium_spring_green | #00FA9A | 0,250,154
medium_turquoise | #48D1CC | 72,209,204
medium_violet_red | #C71585 | 199,21,133
midnight_blue | #191970 | 25,25,112
mint_cream | #F5FFFA | 245,255,250
misty_rose | #FFE4E1 | 255,228,225
moccasin | #FFE4B5 | 255,228,181
navajo_white | #FFDEAD | 255,222,173
navy | #000080 | 0,0,128
old_lace | #FDF5E6 | 253,245,230
olive | #808000 | 128,128,0
olive_drab | #6B8E23 | 107,142,35
orange | #FFA500 | 255,165,0
orange_red | #FF4500 | 255,69,0
orchid | #DA70D6 | 218,112,214
pale_goldenrod | #EEE8AA | 238,232,170
pale_green | #98FB98 | 152,251,152
pale_turquoise | #AFEEEE | 175,238,238
pale_violet_red | #DB7093 | 219,112,147
papaya_whip | #FFEFD5 | 255,239,213
peach_puff | #FFDAB9 | 255,218,185
peru | #CD853F | 205,133,63
pink | #FFC0CB | 255,192,203
plum | #DDA0DD | 221,160,221
powder_blue | #B0E0E6 | 176,224,230
purple | #7F007F | 127,0,127
red | #FF0000 | 255,0,0
rosy_brown | #BC8F8F | 188,143,143
royal_blue | #4169E1 | 65,105,225
saddle_brown | #8B4513 | 139,69,19
salmon | #FA8072 | 250,128,114
sandy_brown | #F4A460 | 244,164,96
sea_green | #2E8B57 | 46,139,87
seashell | #FFF5EE | 255,245,238
sienna | #A0522D | 160,82,45
silver | #C0C0C0 | 192,192,192
sky_blue | #87CEEB | 135,206,235
slate_blue | #6A5ACD | 106,90,205
slate_gray | #708090 | 112,128,144
slate_grey | #708090 | 112,128,144
snow | #FFFAFA | 255,250,250
spring_green | #00FF7F | 0,255,127
steel_blue | #4682B4 | 70,130,180
tan | #D2B48C | 210,180,140
teal | #008080 | 0,128,128
thistle | #D8BFD8 | 216,191,216
tomato | #FF6347 | 255,99,71
turquoise | #40E0D0 | 64,224,208
violet | #EE82EE | 238,130,238
wheat | #F5DEB3 | 245,222,179
white | #FFFFFF | 255,255,255
white_smoke | #F5F5F5 | 245,245,245
yellow | #FFFF00 | 255,255,0
yellow_green | #9ACD32 | 154,205,50

The following image displays the colors described in the table above.

### !CONST

A read-only structure variable that contains physical constants. For example:

HELP, !CONST.C, /FULL

IDL prints:

<Expression> DOUBLE = 299792458.00000000

The following table lists !CONST names and values. All values are in double precision and are given in Meter-Kilogram-Second (MKS) units. The values for fundamental physical constants are taken from the Committee on Data for Science and Technology, "2010 CODATA Recommended Values," available from the Physical Measurement Laboratory at the National Institute of Standards and Technology (NIST). The values for `au`, `G`, `M_earth`, `M_sun`, `parsec`, and `R_earth` are derived from the IAU 2009 System of Astronomical Constants, based upon the Barycentric Coordinate Time (TCB) values. The light-year distance was computed using the speed of light during 1 Julian year of 365.25 days*86400 seconds. The value for ∏ (pi) was computed using Buffon's needle method with approximately 253 tosses of 4 cm toothpicks onto parallel lines.

Name | Description | Value
alpha | Fine structure constant | 7.2973525698 x 10-3
au | astronomical unit | 1.49597870700 x 1011m
c | Speed of light in a vacuum | 299792458 m/s
DtoR | Degrees to radians | 0.0174532925199433
e | elementary charge | 1.602176565 x 10-19 C
eps0 | electric vacuum permittivity | 8.854187817 x 10-12 F/m
euler | Euler's number | 2.7182818284590452
F | Faraday constant NAe | 96485.3365 C/mol
G | Gravitation constant | 6.67384 x 10-11 m3/kg/s2
gn | Earth standard gravity | 9.80665 m/s2
h | Planck constant | 6.62606957 x 10-34 J s
hbar | h/(2∏) | 1.054571726 x 10-34 J s
i | Imaginary number | dcomplex(0,1)
k | Boltzmann constant R/NA | 1.3806488 x 10-23 J/K
ly | Light-year distance | 9.460730472580800 x 1015 m
M_earth | Earth mass | 5.972186390 x 1024 kg
M_sun | Sun mass | 1.98841586057 x 1030 kg
me | electron mass | 9.10938291 x 10-31 kg
mn | neutron mass | 1.674927351 x 10-27 kg
mp | proton mass | 1.672621777 x 10-27 kg
mu0 | magnetic vacuum permeability | 12.566370614 x 10-7 N/A2
n0 | Loschmidt's number NAp0/(RT0) | 2.6867805 x 1025 m-3
Na | Avogadro constant NA | 6.02214129e23 mol-1
p0 | Standard atmosphere | 101325 Pa
parsec | Parsec distance | 3.0856775814671912 x 1016 m
phi | golden ratio | 1.6180339887498948
pi | ∏ | 3.1415926535897932
R | molar gas constant | 8.3144621 J/mol/K
R_earth | Earth radius (spherical) | 6378136.6 m
re | classical electron radius | 2.8179403267 x 10-15 m
RtoD | Radians to degrees | 57.295779513082323
rydberg | Rydberg constant R∞ | 10973731.568539 m-1
sigma | Stefan-Boltzmann constant | 5.670373 x 10-8 W/m2/K4
T0 | Standard temperature | 273.15 K
u | unified atomic mass unit | 1.660538921 x 10-27 kg
Vm | Molar volume, ideal gas at STP | 22.413968 x 10-3 m3/mol

### !DPI

A read-only variable containing the double-precision value of ∏ (pi).

### !DTOR

A read-only variable containing the floating-point value used to convert degrees to radians (∏/180 @ 0.01745).

### !FALSE

A read-only variable containing the boolean value of false (0).

### !MAP

A variable containing the information needed to effect coordinate conversions between points of latitude and longitude and map coordinates. The values in this structure are established by the MAP_SET procedure; the user should not change them directly.

The !MAP structure contains the following fields:

#### A

A double-precision floating point integer specifying the equatorial radius or semimajor axis in meters. (The default is 6370997 m.)

#### COSO

A double-precision floating point integer specifying the cosine of the center latitude in degrees.

#### COSR

A double-precision floating point integer specifying the cosine of the rotation angle.

#### E2

A double-precision floating point integer specifying the eccentricity squared of the ellipsoid.

#### FILL_METHOD

A long-integer variable that indicates the fill order. True (1) fills counterclockwise, False (0) fills starting with the closest polygons.

#### LL_BOX

A four-element, double-precision floating point array that specifies the map range in degrees (latmin, lonmin, latmax, lonmax).

#### P

A 16-element, double-precision floating point array indicating additional projection parameters.

#### P0LAT

A double-precision floating point integer specifying the center latitude in degrees.

#### P0LON

A double-precision floating point integer specifying the center longitude in degrees.

#### PIPELINE

A four by four, double-precision floating point array specifying the graphics clipping and splitting pipeline.

#### POLE

A seven-element, double-precision floating point array that indicates Pole location parameters. Longitude and latitude are given in radians, sine and cosine of polar latitude, and X,Y,Z coordinates.

#### PROJECTION

A long-integer variable indicating the projection number (for GCTP only).

#### ROTATION

A double-precision floating point integer specifying the rotation angle in degrees, clockwise of pole.

#### SEGMENT_LENGTH

A double-precision floating point integer specifying the maximum segment length.

#### SIMPLE

A long-integer variable indicating the projection number. For IDL projections, True (1) indicates the projection is centered on the Equator or no rotation. For GCTP, this number is the GCTP projection number.

#### SINO

A double-precision floating point integer specifying the sine of the center latitude.

#### SINR

A double-precision floating point integer specifying the sine of the rotation angle.

#### U0

A double-precision floating point integer specifying the center longitude in radians.

#### UP_FLAGS

A double-precision floating point integer that sets the user projection flags (currently unused).

#### UP_NAME

A string that specifies the projection name (used only for GCTP).

#### UV

A two-element, double-precision floating point array specifying the U,V coordinates of the last point.

#### UV_BOX

A four-element, double-precision floating point array that contains the map range in meters (xmin, ymin, xmax, ymax).

Note: The UV_BOX values are not simply the LL_BOX values converted into the map projection. For most projections, converting the UV_BOX values back into lat/lon coordinates will not return the same values as LL_BOX. Instead, the UV_BOX gives the approximate maximum extent of the map projection.

#### V0

A double-precision floating point integer specifying the center latitude in radians.

### !NULL

A variable of type Undefined. The value of !NULL can be:

- Assigned to another variable: `var = !NULL`
- Used to test whether a variable exists: `IF var NE !NULL THEN...`

In addition, variables with the value !NULL are ignored when added to an array. That is:

array = [1, !NULL, 2, !NULL, 3]

is the same as

array = [1, 2, 3]

See The Null Variable for additional information.

### !PI

A read-only variable containing the single-precision value of ∏ (pi).

### !RADEG

A read-only variable containing the floating-point value used to convert radians to degrees (180/∏ @ 57.2958).

### !TRUE

A read-only variable containing the boolean value of true (1).

### !VALUES

A read-only variable containing the IEEE single- and double-precision floating-point values Infinity and NaN (Not A Number). !VALUES is a structure variable with the following fields:

** Structure !VALUES, 4 tags, length=24:

F_INFINITY FLOAT Infinity

F_NAN FLOAT NaN

D_INFINITY DOUBLE Infinity

D_NAN DOUBLE NaN

where the meaning of the fields as follows:

#### F_INFINITY

The single-precision floating point value Infinity.

#### F_NAN

The single-precision floating point value NaN (Not a Number).

#### D_INFINITY

The double-precision floating point value Infinity.

#### D_NAN

The double-precision floating point value NaN (Not a Number).