program names, file names
variable names
prompts, commands, program code
Airmass is a geometric factor indicating the angular distance of an object from the zenith (this is called the zenith angle). The further from zenith, the higher the airmass -- in fact, the airmass is the cosecant of the zenith angle. An object at the zenith has an airmass of 1, and the airmass of the horizon is infinite. A higher airmass means that you are looking through more atmosphere. Generally speaking, we try to time our observations such that we are observing at a low airmass (this minimizes atmospheric effects). So it is necessary to know in advance when an object will have a low airmass. Knowing the airmass is also necessary for flux calibration (eg., jyperadu).
Airmass calculation: amprofiles
The calculation of airmasses requires that one have the coordinates of the object(s) in question. Ideally, these coordinates should be precessed to the epoch of the observation. This can be done with the pmprecess program. Let's say that we know the B1950 coordinates of HD 162208 to be 17h 46m 20.7s, +39° 59' 40'', with proper motions of -0.0018 (RA) and +0.122 (dec) arcsec/year. If we want to precess these coordinates to an observation epoch of June 1993, we'd do something like the following:
IDLprompt> pmprecess, ten(17, 46, 20.7) * 15., ten(39, 59, 40), $ IDLprompt> 1950, 1993.5, -0.0018, +0.122, /b1950, /print |
Equinox (1993.50): 17 47 45.73 +39 58 56.1 |
The amprofiles program is used for computing the airmass of one or more objects as a function of time. The first order of business is to edit the ~/idlpro/amprofiles.txt. This file needs to contain the latitude and longitude of the observatory, the date of the observation, whether or not daylight savings time is in effect, the times of sunrise and sunset (The Old Farmer's Almanac is a good place to look these up), and the precessed coordinates of the objects to be observed (I wouldn't bother with standard stars). The file for an observing run to WIRO at the end of April looks something like this. (Here's a quick reference table for the coordinates of WIRO and MLOF:
observatory | WIRO | MLOF |
latitude (degrees N of equator) | 41.09833 | 32.44166 |
longitude (degrees W of prime meridian) | 105.9766 | 110.79166 |
amprofiles computes the airmass as a function of time for all the objects listed in ~/idlpro/amprofiles.txt for a time interval beginning eight hours prior to local midnight, and lasting until eight hours after local midnight. This is done with the following command:
IDLprompt> amprofiles, times, airmasses, names, pd, coords |
amprofiles doesn't generate plots, but it does print some useful information to the command window:
34.0000 days after the vernal equinox. Airmass plots begin at 6.26667 hours LST = 17.0651 local clock time. LST at local midnight (NOT clock midnight) = 14.2667. Sunset at 7.20156 hours LST, sunrise at 20.7016 hours LST. |
The particular use of the variables created by amprofiles will become apparent in a moment, but let's go ahead and take a quick look at how the data in these variables are formatted. The numbers in airmasses may be considered to be a collection of profiles, each profile giving the airmass of an object as a fuction of time (the time interval specified by times). The following command may be used to display the airmass profile of the first object on the list:
IDLprompt> plot, times , airmasses(0,*), xrange=[0,16], xstyle=1 |
The output of amprofiles is used as input to amplots. Let's just go ahead and look at an example:
IDLprompt> amplots, times, airmasses, pd, 1.5, names=names, $ IDLprompt> timestr = '5pm MDT 26 April WIRO' |
Running amplots again with the airmass limit set higher than 1.5 would make the lines longer, as the objects will have higher airmasses for longer lengths of time. The character string given as timestr was composed using from the printed output of amprofiles (ie., the clock time at which the airmass plots begin). Finally, the output of amplots can be sent to a Postscript file using the ps and bigps keywords (see the documentation to amplots).