The Real Time web pages supply the spacecraft quaternions whenever we are in Comm. There are times when we can just use those values. But other times, the values of the quaternions read from the spacecraft are not correct, nor will they be correct until we are well into the recovery procedures. At the outset of the event, we can be provided the last known expected Q's from mission planning, or PCAD, or the load backstop file itself. Those can be used in the history-files.pl run which records the NSM or BSH event.
Subsequent to that event, you may find that we will orient the
spacecraft into a "cooling attitude" such that various devices begin
to cool (e.g. ACA). You must then run the NLET GUI to capture the
maneuver and, again, you must specify the target Quaternions.
This is done by specifying new Target Quaternions. If you are
listening in to the recovery procedures you will hear PCAD announce
the existence of a "FOT Request file" on Lucky - usually in Eric Martin's lucky
directory (emartin). The file names look like:
A_Q1TGT_213.fot
...and the contents look like this:
!$Revision$
!$Date 2020:147:02:22$
SCS_CATEGORY, VEHICLE
RTSLOAD,A_QUP,SCS_NUM=213,
Q1=0.647841071555,
Q2=0.510237507002,
Q3=-0.513207790488
When you specify the Q's to the NLET GUI you need to have all 4
Q's. To calculate the 4th, you can use a program called:
acis.acisdude:script[123]> Read_FOT_Request_Qs
Please enter the full path to the FOT Request file: ORBIT/A_Q1TGT_213.fot
The date of this FOT Request is: 2020:147:02:22
Q1 = 0.647841071555
Q1 = 0.510237507002
Q1 = -0.51320779048
Q4 = 0.23786003499009623
The Orbit Events File figures heavily in our Load Review processing. For example they are used in LR programs such as:
So for example DO22192.orp, was created in 2022 and the first data line in the file is:
2022:192:16:16:00.000 3167 XQF005M PROTON FLUX EXIT FOR ENERGY 0 LEVEL 0 KP 5 MEAN
Inbound ECS measurements start very close to the time of OORMPDS, and outbound ECS measurements end very close to OORMPEN. However, OORMPDS (RADMON ENTRY) and OORMPEN (RADMON EXIT) do not appear in the ORP file. They must be calculated.
To use this program log on as acisdude, execute setloads and run the program. You can run it as yourself but you have to know that it lives in:
/data/acis/LoadReviews/script/Get_OORMP_Times.py
And your PYTHONPATH must include:
/data/acis/LoadReviews/script/UTILITIES
Get_OORMP_Times.py:
- Given a path to the directory containing an Orbital Events
File (DO*****.orp) and a full path to an output file,
calculate the OORMPDS and OORMPEN times given the data in
the .orp file, using the rules specified in:
Guideline:
https://occweb.cfa.harvard.edu/twiki/bin/view/Constraints/MPGuidelines/Development/GuidelineRadiationSafingWithoutHRC
......and write the resulting array out to the user-specified file.
Usage:
Get_OORMP_Times.py --orp_file_path /home/gregg/Desktop --outfile_path /home/gregg/Desktop/my_OORMP_file.dat
Get_OORMP_Times.py --orp_file_path /home/gregg/Desktop
Get_OORMP_Times.py --outfile_path /home/gregg/Desktop/my_OORMP.dat
Get_OORMP_Times.py
The defaults for the two command line arguments are:
Sample output file:
Date Time Orbit Event Description 2022:194:09:09:59.729 774090668.913 3167 EQF013M 'PROTON FLUX ENTRY FOR ENERGY 0 LEVEL 1 KP 3 MEAN' 2022:194:09:09:59.729 774090668.913 3167 OORMPDS 'RADMON ENTRY' 2022:194:09:58:14.760 774093563.944 3167 EEF1000 'ELECTRON 1 RADIATION ENTRY 0' 2022:194:11:46:48.285 774100077.469 3167 EPERIGEE 'ORBIT PERIGEE' 2022:194:16:37:59.729 774117548.913 3168 XQF013M 'PROTON FLUX EXIT FOR ENERGY 0 LEVEL 1 KP 3 MEAN' 2022:194:16:50:14.760 774118283.944 3168 OORMPEN 'RADMON EXIT' 2022:194:16:50:14.760 774118283.944 3168 XEF1000 'ELECTRON 1 RADIATION EXIT 0' ...................................
/data/acis/LoadReviews/script/UTILITIES/ORP_File_Class.py
Use of these tools is simplified if you log on as acisdude and execute a "setload". You can run it as yourself but your PYTHONPATH must include:
/data/acis/LoadReviews/script/UTILITIES
It is a class so if you wanted to you use it in your Python code you would import the class and ceate an instance in your program:
import ORP_File_Class as ofc
# Create an instance of the ORP File Class
ofci = ofc.ORP_File_Class()
These are the method available to you within this class: