![]() [Home]
[Status] [Data] [Docs] [Links] [About] GBT Folders
|
1. PURPOSE(What do you know, a program similar to this one exists already with the exact same name! https://sourceforge.jp/projects/tle2azel/) This program reads in a NASA two line elements (TLE) and uses an SGP4/SDP4 propagator to propagate the elements. tle2azel is built on pyephem, which is based on xephem's computation engine. This code can thus read files in ephem database (edb) format also. The code runs in two modes:
It is my hope that in the near future, one can use visibility results to do table generation, but as of the writing of this document, they must be run separately. 2. DOWNLOADGet the a copy here: http://www.opengps.net/gbt/tle2azel/download (modified) Get the a copy here: tle2azel-1.13b.tar.gz The newest version is 1.13b, released 19 September 2005. 3. REQUIRED SOFTWARE
4. USAGEThe program can be used in two modes: interactive and batch. With batch mode, all inputs are read from various files, while interactive mode gives the user an opportunity to enter information into a prompt. Any of the parameters specified below will override the text files. The program outputs to standard output. tle2azel [options] [-V][-T] -i <tle-file> TLE/EDB propagator/visibility tool built on pyephem Version 1.12 MODES --------------- -V Visibility mode : Run in Visibility mode (ON by default) -T Table mode : Run in Table mode (OFF by default) When both -V and -T mode is given, objects will first be checked for visibility, then a table will be generated for all visible objects COMMON ------- -i <filename> : input file containing TLEs or EDB (must be specified) -t [start],durat : time: start time (UTC), duration (minutes) start time can be left out, -tduration also valid if start time left out, current time default -n name : name of object (must be in input file) If not specified, will use ALL objects in TLE -r pres,temp : Refraction: pressure (mB), temperature (C). Refraction corrections off by default (-r0,0) -l location : Location: lat,long,altitude(m) VISIBILITY MODE ------- -p ra,dec : Point of interest ra - hh:mm:ss or hh.ff dec - dd:mm:ss or dd.ff -d az,el : Same as -p, except az,el (degrees) az - dd:mm:ss or dd.ff el - dd:mm:ss or dd.ff -a angle : Visible if within <angle> degrees of point Angle can have format: -a 10 : 10 degrees -a 10arcmin : 10 arc minutes -a 10arcsec : 10 arc seconds Keep in mind that TLE's have accuracies approx. < 10 arcmin TABLE MODE ------------- -o <filename> : output file name (stdout default) -f <filename> : output format file (config/format.txt default) -s value : step time in seconds. Overrides config/time.txt 5. INPUT FILES5.1. location.txtlat,long,altitude (in meters) example file: 38:25:59.265,-79:50:23.419,855.0 or 38.433129166666667,-79.839838611111105,855.0 5.2. time.txtstart time (UTC), Duration (minutes), time step (in seconds) example file: 2004/07/16 09:30:00.00,30,60 5.3. atmosphere.txttemperature (in C), pressure (in mB) example file: 15.0,1010.0 5.4. format.txt'%s %s %f %f' % (str1,str2,float1,float2) Format string used by python to print the output table when in Table Generation mode. This is a python format string (called by python method eval(string)). Several values are possible here:
6. EXAMPLES6.1. Visibility Modetle2azel determines 'visibility' of an object in three stages:
tle2az makes sure that Depending on amount of TLE entries, duration, etc. one might want to
tweak the parameters 6.1.1. RA/DECNow, say we are staring at the big dipper, the star at the tip of the 'handle' is Alkaid. With a Right Ascension and Declination of 13h 47min 32,4sec and +49d 18' 48" respectively (according to this site). Our criteria:
To get TLE's of the 100 (or so) brightest objects, head over to celestrak. tle2azel.py -V -p"13:47:32.4,49:18:48" -a 10 -l"38:25:59.266,-79:50:23.423,855.46" -t"2005/07/25 04:00:00,60" -r0,0 -i catalog/visual.txt If you have a location.txt,time.txt and atmosphere file then these can be left out and the command line simplifies to: tle2azel.py -V -p"13:47:32.4,49:18:48" -a 10 -i catalog/visual.txt Before showing the output, for those with really good telescopes, we
can constrain the 'angle' around or point of interest to a few tle2azel.py -V -p"13:47:32.4,49:18:48" -a 10arcmin -i catalog/visual.txt NOTE: It doesn't make much sense to go less than 10 arcmin, TLEs just aren't that accurate, see http://www.opengps.net/gbt/tle_accuracy The output will look something like this (for the first command): Total Objects : 126 Visible Objects : 32 Interesting Objects : 4 InArea Objects : 3 Observer -------- Lat,Long,Alt : 38:25:59.266, -79:50:23.423, 855.460 meters Pressure,Temp: 0mB,0C Start Time : 2005/7/25 03:59:59 UTC Stop Time : 2005/7/25 04:59:59 UTC Time step : 1 second(s) Files ----- Input File : catalog/visual.txt Output File : stdout Output Format: "%s %.4f %.4f" % (date,az,el) Visibility Area Right Ascension (hh:mm:ss) : 13:47:32.40 Declination (dd:mm:ss) : 49:18:48.00 Angle (dd:mm:ss) : 10:00:00.00 NAME DURAT ENTER EXIT AZ EL RA DEC dAZ dEL (min) (UTC) (UTC) (deg) (deg) (hr) (deg) (deg/min) ------ ----- ----- ------ ----- ----- ---- ----- --- --- ISIS 1 2.5 04:23:48 04:26:17 308.81 34.40 13.99 49.16 9.1 -3.2 COSMOS 2180 R/B 1.4 04:25:11 04:26:35 306.88 35.21 14.15 47.97 -13.0 7.0 SL-16 R/B 1.0 04:03:11 04:04:12 312.74 26.77 12.80 49.01 16.1 -8.2
The program then proceeds to print some configuration settings and the 4 objects, indicating their az/el and ra/dec values for (enterTime-exitTime)/2 (Thus the position of the object when it has spent 50% of its time in the area of interest. The very last two columns dAZ and dEL shows the rate of change of angle (az and el) when the object is around the area of interest (in degrees per minute). 6.1.2. AZ/ELInstead of using a RA/DEC, the same can be done by replacing the
tle2azel.py -V -d"0,90" -a 10 -i catalog/visual.txt To find all visible GPS satellites within a 80 degree cone (thus 'horizon' is 10 deg up) starting at elevation 90 degrees (straight up), type tle2azel.py -V -d"0,90" -a 80 -i catalog/gps-ops.txt To find if PRN 03 is visible in this period, just add a -n PRN 03 option: tle2azel.py -V -d"0,90" -a 80 -i catalog/gps-ops.txt -n "PRN 03" 6.2. Table Generation ModeWhen running in table generation mode 6.2.1. AZ/EL tableLet's see what IRIDIUM satellites are close to Alkaid and then generate an az/el table for it: ./tle2azel.py -V -p"13:47:32.4,49:18:48" -a 10 -l"38:25:59.266,-79:50:23.423,855.46" -t"2005/07/25 04:00:00,60" -i catalog/iridium.txt Total Objects : 92 Visible Objects : 24 Interesting Objects : 6 InArea Objects : 2 Observer -------- Lat,Long,Alt : 38:25:59.266, -79:50:23.423, 855.460 meters Pressure,Temp: 0mB,0C Start Time : 2005/7/25 03:59:59 UTC Stop Time : 2005/7/25 04:59:59 UTC Time step : 1 second(s) Files ----- Input File : catalog/iridium.txt Output File : stdout Output Format: "%s %.4f %.4f" % (date,az,el) Visibility Area Right Ascension (hh:mm:ss) : 13:47:32.40 Declination (dd:mm:ss) : 49:18:48.00 Angle (dd:mm:ss) : 10:00:00.00 NAME DURAT ENTER EXIT AZ EL RA DEC dAZ dEL (min) (UTC) (UTC) (deg) (deg) (hr) (deg) (deg/min) ------ ----- ----- ------ ----- ----- ---- ----- --- --- IRIDIUM 25 0.8 04:12:26 04:13:13 316.68 24.02 12.52 50.70 17.1 -5.0 IRIDIUM 76 1.0 04:02:57 04:03:57 317.02 29.85 12.90 53.77 20.9 -6.4 OK, it appears IRIDIUM 25 and IRIDIUM 76 are visible around that area, now let's instruct the program to generate a az/el table for IRIDIUM 25: ./tle2azel.py -T -l"38:25:59.266,-79:50:23.423,855.46" -t"2005/07/25 04:12:26,1" -s 10 -i catalog/iridium.txt -n "iridium 25" Note that the only changes to the command line was to remove the
Object ------ Object name : IRIDIUM 25 Object epoch : 2005/7/19 07:21:20 Observer -------- Lat,Long,Alt : 38:25:59.266, -79:50:23.423, 855.460 meters Pressure,Temp: 0mB,0C Start Time : 2005/7/25 04:12:26 UTC Stop Time : 2005/7/25 04:13:26 UTC Time step : 10.0 second(s) Files ----- Input File : catalog/iridium.txt Output File : stdout Output Format: "%s %.4f %.4f" % (date,az,el) # OBJECT : IRIDIUM 25 # LAT,LONG,ALT : 38:25:59.266, -79:50:23.423, 855.460 meters # PRESSURE,TEMP : 0mB,0C 2005 07 25 04:12:26 299.5196 29.0334 2005 07 25 04:12:35 302.7371 28.3414 2005 07 25 04:12:45 305.8108 27.5780 2005 07 25 04:12:55 308.7351 26.7560 2005 07 25 04:13:05 311.5074 25.8876 2005 07 25 04:13:15 314.1284 24.9841 2005 07 25 04:13:25 316.6012 24.0557 6.2.2. RA/DEC tableNow to change the format of the output to RA/DEC, we do the following: Edit format.txt file and place the following string in it: "%s %s %s" % (date,ra,dec) Let's rerun this: --- snip --- 2005 07 25 04:12:26 13:38:20.43 +39:45:21.0 2005 07 25 04:12:35 13:28:20.75 +41:56:09.5 2005 07 25 04:12:45 13:17:53.30 +43:58:46.5 2005 07 25 04:12:55 13:06:59.18 +45:52:43.6 2005 07 25 04:13:05 12:55:40.06 +47:37:40.5 2005 07 25 04:13:15 12:43:58.26 +49:13:25.1 2005 07 25 04:13:25 12:31:56.69 +50:39:52.5 Note how the RA/DEC is indeed within our area of interest. 6.2.3. Range/Velocity tableSay we want to print the object's range (km) and line of sight velocity (km/s), how would we do it? Well, according to the pyephem manual, we can use object.range and object.range_velocity to do this. These are in meters and meters/second respectively. Let's change to format string in format.txt to include this: "%s %.4f %.4f %0.2f %0.2f" % (date,az,el, object.range/1000.0,object.range_velocity/1000.0) Let's rerun and see the output: --- snip --- 2005 07 25 04:12:26 299.5196 29.0334 1395.04 1.89 2005 07 25 04:12:35 302.7371 28.3414 1416.48 2.18 2005 07 25 04:12:45 305.8108 27.5780 1440.93 2.45 2005 07 25 04:12:55 308.7351 26.7560 1468.23 2.71 2005 07 25 04:13:05 311.5074 25.8876 1498.22 2.96 2005 07 25 04:13:15 314.1284 24.9841 1530.74 3.19 2005 07 25 04:13:25 316.6012 24.0557 1565.63 3.40 These Iridiums are fast movers! Last modified: Thursday, 18-Aug-2005 21:53:52 MDT |