NASA/TM–2019-219037
ICESat-2-ALG-PROC-0675
ATLAS Flight Science Receiver Algorithms
Version 4.0
Jan McGarry, Claudia Carabajal, John Degnan, Stephen Holland, Anthony Mallama,
Stephen Palm, Ann Rackley Reese, Randall Ricklefs, and Jack Saba
September 2019
NASA STI Program ... in Profile
Since its founding, NASA has been dedicated
to the advancement of aeronautics and space
science. The NASA scientific and technical
information (STI) program plays a key part in
helping NASA maintain this important role.
CONFERENCE PUBLICATION.
Collected papers from scientific and
technical conferences, symposia, seminars,
or other meetings sponsored or
co-sponsored by NASA.
The NASA STI program operates under the
auspices of the Agency Chief Information Officer.
It collects, organizes, provides for archiving, and
disseminates NASA’s STI. The NASA STI
program provides access to the NTRS Registered
and its public interface, the NASA Technical
Reports Server, thus providing one of the largest
collections of aeronautical and space science STI
in the world. Results are published in both nonNASA channels and by NASA in the NASA STI
Report Series, which includes the following report
types:
SPECIAL PUBLICATION. Scientific,
technical, or historical information from
NASA programs, projects, and missions,
often concerned with subjects having
substantial public interest.
TECHNICAL TRANSLATION.
English-language translations of foreign
scientific and technical material pertinent to
NASA’s mission.
TECHNICAL PUBLICATION. Reports of
completed research or a major significant
phase of research that present the results of
NASA Programs and include extensive data
or theoretical analysis. Includes compilations of significant scientific and technical
data and information deemed to be of
continuing reference value. NASA counterpart of peer-reviewed formal professional
papers but has less stringent limitations on
manuscript length and extent of graphic
presentations.
TECHNICAL MEMORANDUM.
Scientific and technical findings that are
preliminary or of specialized interest,
e.g., quick release reports, working
papers, and bibliographies that contain
minimal annotation. Does not contain
extensive analysis.
CONTRACTOR REPORT. Scientific and
technical findings by NASA-sponsored
contractors and grantees.
Specialized services also include organizing
and publishing research results, distributing
specialized research announcements and
feeds, providing information desk and personal
search support, and enabling data exchange
services.
For more information about the NASA STI
program, see the following:
Access the NASA STI program home page
at http://www.sti.nasa.gov
E-mail your question to
[email protected]
Phone the NASA STI Information Desk at
757-864-9658
Write to:
NASA STI Information Desk
Mail Stop 148
NASA Langley Research Center
Hampton, VA 23681-2199
NASA/TM–2019-219037
ICESat-2-ALG-PROC-0675
ATLAS Flight Science Receiver Algorithms
Version 4.0
Jan McGarry
Goddard Space Flight Center, Greenbelt, MD
Claudia Carabajal
Hexagon US Federal, Lanham, MD
John Degnan
Hexagon US Federal, retired, Lanham, MD
Stephen Holland
Hexagon US Federal, Lanham, MD
Anthony Mallama
Emergent Space Technologies, retired, Laurel, MD
Stephen Palm
SSAI, Lanham, MD
Ann Rackley Reese
KBR, Greenbelt, MD
Randall Ricklefs
Hexagon US Federal, Lanham, MD
Jack Saba
SSAI, Lanham, MD
National Aeronautics and
Space Administration
Goddard Space Flight Center
Greenbelt, MD 20771
September 2019
Notice for Copyrighted Information
This manuscript is a joint work of employees of the National Aeronautics and Space
Administration and employees of Hexagon US Federal, Emergent Space Technologies,
SSAI, KBR, and SSAI. The United States Government may prepare derivative works,
publish or reproduce this manuscript, and allow others to do so. Any publisher accepting
this manuscript for publication acknowledges that the United States government retains a
nonexclusive, irrevocable, worldwide license to prepare derivative works, publish or
reproduce the published form of this manuscript, or allow others to do so, for United
States Government purposes.
Trade names and trademarks are used in this report for identification only. Their
usage does not constitute an official endorsement, either expressed or implied, by the
National Aeronautics and Space Administration.
Level of Review: This material has been technically reviewed by technical
management.
Available from
NASA STI Program
Mail Stop 148
NASA’s Langley Research Center
Hampton, VA 23681-2199
National Technical Information Service
5285 Port Royal Road
Springfield, VA 22161
703-605-6000
Available in electronic form at https://www.sti.nasa.gov and https://ntrs.nasa.gov
ATLAS Flight Science Receiver Algorithms
Version 4.0
ICESat-2-ALG-PROC-0675
September 2019
Jan McGarry (NASA/GSFC:
[email protected])
Claudia Carabajal (Hexagon US Federal1)
John Degnan (Hexagon US Federal1, retired)
Stephen Holland (Hexagon US Federal1)
Anthony Mallama (Emergent Space Technologies, retired)
Stephen Palm (SSAI)
Ann Rackley Reese (KBR2)
Randall Ricklefs (Hexagon US Federal1)
Jack Saba (SSAI)
Earth Sciences Division
NASA / Goddard Space Flight Center
Development of the DEM/DRM/SRM by
Lori Magruder, Holly Wallis,
Tim Urban, and Bob Schutz,
University of Texas, Center for Space Research
Website: icesat-2.gsfc.nasa.gov
1
2
Formerly Sigma Space
Formerly SGT
ATLAS FSRA Document v4.0
Page 1
Acknowledgements
The authors would like to thank all of the members of the ATLAS Instrument Team, the ICESat-2
Mission Team, the Project Science Office, the Precision Orbit Determination Team, the ICESat-2 teams
at the University of Texas at Austin, and the team at Orbital ATK for all of their support during the
design, development and testing of the ATLAS Receiver Algorithms. In particular we would like to
acknowledge the major contributions of the following people:
At the Goddard Space Flight Center:
ATLAS Instrument: John Cavanaugh, Philip Luers, Anthony Martino, Carol Lilly, Peter Gonzales
Project Science Office: Thomas Neumann
Precision Orbit Determination Team: Scott Luthcke
Flight Software: Joseph-Paul Swinski, Steven Slegel, Krishnan Narayanan, Alexander “Sandy” Calder
Bench Checkout Equipment: Peter Liiva, Henock Legesse
Instrument Support Facility: Peggy Jester, James Golder, Jairo Santana
At the University of Texas at Austin:
Surface Reference Mask Development: Tim Urban, Joseph Shih, Yidnek Tibebu, Afsheen Vaid
Digital Elevation Model and Digital Relief Map Development: Lori Magruder, Holly Wallace Leigh,
Bob Schutz3
3
Deceased 2015
ATLAS FSRA Document v4.0
Page 2
Table of Contents
0.1 Introduction ......................................................................................... 4
0.2 Changes since previous documents ....................................................... 5
1.0 ATLAS Instrument and ICESat-2 Mission .............................................. 11
2.0 Purpose, Products, Requirements and Constraints .............................. 14
3.0 Overview of the Algorithms ................................................................ 15
4.0 Calculating Range Window Start and Width ........................................ 23
5.0 Signal Processing of Altimetry Data..................................................... 39
6.0 Atmospheric Processing ...................................................................... 51
7.0 Selecting What to Telemeter .............................................................. 53
8.0 On-orbit Operations and Algorithms Knobs ......................................... 66
9.0 Error Reponses ................................................................................... 70
Appendix A: DEM (Digital Elevation Model) ............................................. 73
Appendix B: DRMs (Digital Relief Maps) .................................................. 74
Appendix C: SRM (Surface Reference Mask)............................................. 75
Appendix D: Theoretical Signal Processing Probability Analysis ................ 76
Appendix E: Spacecraft Position & Pointing and Database Accuracy ......... 81
Appendix F: Flight Parameters ................................................................. 86
Appendix G: Parameter Type Definitions ............................................... 101
Appendix H: Spacecraft Position and Pointing Messages ........................ 106
Appendix J: Telemetry Logic Flowcharts ................................................. 110
Glossary of Acronyms and Terms ............................................................ 114
ATLAS FSRA Document v4.0
Page 3
0.1 Introduction
This is the basis document for the ATLAS Receiver Algorithms. ATLAS is the single instrument on the
ICESat-2 mission. The Receiver (Rx) Algorithms select the signal location in real-time and instruct the
hardware to telemeter a vertical band of received time-tags about this signal location. The algorithms
are implemented in the Flight Software (FSW) and in the hardware of the Photon Counting Electronics
(PCE) cards. The sole purpose of the algorithms is to reduce the telemetry data volume to fit within
the downlink constraint while maximizing the probability of downlinking surface signal. All versions of
the Receiver Algorithms from version 2.8 onward incorporate our best knowledge of the ATLAS
hardware at this time. It presents algorithms that, based on current Simulator testing, satisfy all of the
requirements for the Rx Algorithms. Testing during ATLAS Instrument Integration and Testing with the
hardware and software implementation of the Rx Algorithms revealed characteristics and responses
that required changes to the Rx Algorithms and this document, which are captured in the change
record below.
All relevant documentation for the Receiver Algorithms can be found on the ICESat-2 Technical Data
Management System (TDMS) under the ATLAS Algorithms subsystem.
The launch version of the FSW (version 3.1.0) is based upon version 3.7c of this document.
The latest version of this document can be found on TDMS under ICESat-2-ALG-PROC-0675.
Other related documents, which are currently on the ICESat-2 TDMS, are:
The ATLAS Coordinate Systems Descriptions Report, written by Marc Saltzman, is on
TDMS under ICESat-2-SYS-RPT-0591.
A description of the Simulator is given in the “Guide to the ATLAS Simulator for Users
and Programmers” which is on TDMS under ICESat-2-ALG-TN-0577.
The document describing the Receiver Algorithms testing is the “ATLAS Receiver
Algorithms Test Plan,” which explains the tests, including the purpose of each, and how
to set each up. This is on TDMS under ICESat-2-ALG-PLAN-0310. The results of the tests
described in this document are detailed in the “ATLAS Receiver Algorithms Simulator
Test Results” document. This is on TDMS under ICESat-2-ALG-RPT-0659.
The latest onboard databases (DEM, DRM, SRM) and their related documentation are on
TDMS under ICESat-2-ALG-TN-0362.
The latest Receiver Algorithm Parameters are on TDMS under ICESat-2-ALG-SPEC-0255.
The Rx Algorithm Parameter Definition Document is on TDMS under ICESat-2-ALG-TN0876.
ATLAS FSRA Document v4.0
Page 4
0.2 Changes since previous documents
Changes from 3.7d to 4.0
1.
2.
3.
4.
5.
6.
Document numbers updated to reflect what is on TDMS
Company names updated for authors
Best attempt of unifying tense used throughout doc
Multiple rewordings completed to make documented clearer
Exact PCE delay values and explanation of values used by Rx Algs given in section 4.15
Text in 5.3 regarding the calculation of the number of software bins in a histogram corrected
based on bin numbering starting at 0.
7. Padding table updated with accurate values.
8. Rx Alg Knobs Decision flowchart (Fig 7.1) updated to accurately reflect the knobs files AND what
is allowed by the Algs
9. The DRM-140 relief is no longer an option for Nosig_Relief2_Strong/Weak in the Algorithm
Parameter Knobs files. This resolves the mismatch between the Simulator and the FSW that
was caused by the lack of clarity in the Receiver Algorithms Document. The Simulator only
allows the DRM-700 or DEM to be selected for relief while in the timer 2 state, where as the
FSW allows either the DRM-140, DRM-700 or DEM. This document has been updated to clarify
only the DRM-700 and DEM can be selected for the Nosig_Relief2_Strong/Weak parameter.
Changes from 3.7c to 3.7d
1. Changed launch date to reflect actual launch.
2. Added a comment in Section 5.3 that the software binsize must be =< 64 hardware bins.
3. Added a note in Section 7.6 that the calculated background is very inaccurate when the entire
range window is used for the calculation.
4. Switched all of the parameters given in Appendix F from v5 to v6 (launch version).
5. Corrected knob parameter names in Appendix G from “S” to “s” to match Flight Software. The
parameters affected were Nosig_Relief, Nosig_Timer, and Nosig_Scale.
Changes from 3.6b to 3.7
1. Changes were made to sections 3.2, 4.2, 4.6 and 4.8 describing the ATLAS coordinate system
used. The term Instrument Coordinate System (ICS) has been replaced with terms that match
those used in Marc Saltzman’s “ATLAS Coordinate Systems Description Report”.
2. A few paragraphs have been added to Appendix E (Error Analysis) to explain the laser vector
errors and the errors introduced by the coordinate systems being used and the Beam Steering
Mechanism.
3. Figure 1.2 has been changed to show the current orientation of the laser spot pattern on the
Earth’s surface and the orientation with respect to the ATLAS_CSYS (ATLAS MRF) X-Y axes.
4. There has been another leap second since v3.6b of this document and so the leap second value
has been updated in section 4.3.
5. A note has been added to 4.17 to capture the fact that the Altimetric Range Window must be
within the Atmospheric window.
ATLAS FSRA Document v4.0
Page 5
6. The Parameters in Appendix F have been updated to the current version (v5.0) which will be
installed on ATLAS in August 2017.
Changes from 3.6a to 3.6b
Addition of section 7.10 describing the modifications needed in the ATLAS FSW to send all fires down
from all three of the PCEs.
Changes from 3.5g to 3.6a
1. Corrected the wording on what values Nsf could have (several places).
2. Corrected reference to the number of steps in process in section 5.4.
3. Clarified handling of the SuperFrame subwindow end in section 5.4.
Changes from 3.5c to 3.5g
1. In Appendix G (Parameter Type Definitions) the parameters TEPstart (strong, weak) were
changed from UINT32 to INT32 to allow TEPstart to be negative.
2. Wording changes to clarify meaning in section 7.3 and 7.4.
3. Added an additional check to see if the TEP_TLMB_start is negative in section 7.5. This is now
needed because the TEPstart can now be negative.
4. Updated parameters files in Appendix F to latest versions (v3.0 on MIS).
5. Spot numbers are listed with tracks (in Figure 1.2).
Changes from 3.4g to 3.5c
1. In section 3.5 and 3.13 the reference number of the parameter files is given for MIS.
2. In section 5.4 an additional item was added to the superframe procedure when Nsf=2.
3. Sections 7.1, 7.3 and 7.4 were revised to clarify the various options and their relationships. A
flowchart was added (as Appendix J) to help in this clarification.
4. Appendix E was updated to reflect the latest information.
5. The Parameter Files in Appendix F were updated to those released with FSW v2.1.
6. A Parameter Type Definition list was inserted as Appendix G (in front of the spacecraft data
formats).
7. Correction of a typo in section 7.3.
8. Replaced TBDs in section 9.0 and some wording updates.
Changes from 3.4e to 3.4g
1. Modified wording in section 7.3 to clarify coastline relief, padding and scaling.
2. Modified wording in section 7.4 to clarify relief, padding and scaling used for NoSig_Time1 and
NoSig_Timer2 when coastline bit is on.
3. Modified section 5.4 to add need to adjust the subwindow start by the PCE delay before
comparing to the start of the range window.
4. Modified section 7.4 to add need to adjust the signal location by the PCE delay before
comparing to the range window start and end.
ATLAS FSRA Document v4.0
Page 6
Changes from 3.3 to 3.4e
1- Clarified the exclusion about bins with max count that are too close to the front or end of the
histogram (section 6.3).
2- Removed the last sentence in the paragraph in section 5.4 that starts with “The subwindow
width is calculated from the DRM-700 relief”, which indicated to move the subwindow entirely
within the range window. Moving the subwindow is not required.
3- Added a step #7 to section 5.4 to ensure that the signal location falls within the range window.
4- Added a clarification to section 6.3 in case there were two bins with the maximum count.
5- Modified Appendix D to reflect the current state of the sigma multiplier table and which
histogram to use for the number of bins.
6- Corrected wording in section 6.2 on which 400 shot histogram bins only had data from a single
200 shot histogram.
7- Changed wording in Intro to clarify statement on our knowledge of ATLAS hardware.
8- Added verbage in section 7.3 to explicitly specify the need for doubling the padding in this
section.
9- Clarified in section 7.7 that if the telemetry bands are not combined due to the max restriction
that the chopping of bins does not occur until after all combining is done.
10- Clarified in section 5.4 that the subwindow start can be negative with respect to the RWS for
MF#3.
11- Change to section 7.4 reflecting the suggestion by the FSW team about switching immediately
to state 2 (NoSig_Timer2) when the previous signal was outside the current range window.
12- Now explicitly states that the subwindow must be forced to be non-negative with respect to
the lowest Range Window start in section 5.4.
Changes from v3.2 to v3.3
1- Additional clarification to the NoSig timer state (section 7.4).
2- Change to the calculation of SigLoc in section 5.3 to add 0.5 hwbins or 1 clock cycle.
Changes from v3.1 to v3.2
1- In section 5.3 the Algorithms say that if the maximum bin is beyond the last full hardware bin,
then the last full software bin should be chosen as the max bin. The Flight Software is not able
to do this. We have left the Algorithm as stated, but have written an exception for the FSW.
2- The threshold should be calculated using the threshold function. This has now been explicitly
stated in section 5.3.
3- The TEP parameters to be used to define the TEP_NOT region should be converted to start and
end and then rounded to the nearest hardware bin boundary. Now stated in section 5.3.
4- Section 5.3 now states that, in the Bnoise calculation, the max bin used should be the one
AFTER the TEP_NOT rejections.
5- The calculation of the threshold in section 5.3 has “ceiling” added.
6- In section 7.4 the timer state handling has been clarified, plus other clarifications.
7- The downlink band overlap was clarified in section 7.7.
Changes from v3.0 to v3.1
ATLAS FSRA Document v4.0
Page 7
1- In section 7.4 the Telemetry Band Offset usage was clarified for both the NoSig_Timer1 and
NoSig_Timer2 cases.
Changes from v2.8g to v3.0
1- Due to the leap second being introduced June 30, 2015, GPS-UT1 (aka LS) will become 17
seconds (section 4.3) so this value should now be used as the default.
2- In section 5.4 verbage was added to clarify that the range window being discussed refers to the
range window of MF #3 out of the 5 in the Super Frame.
3- In section 7.4 a sentence has been added to clarify which signal location to use if both the
primary and tertiary exist.
Changes from v2.8d to v2.8g
1- Modified the paragraph related to relief for coastline data (section 7.4).
Changes from v2.8d to v2.8f
1- Added some information on the TEP to section 3.10.
2- Corrected the way the PCE delays are being added to the range window (section 4.15). This
involves reordering some of the calculations from what was in v2.8d of the document.
3- Changed the conversion of Jrw and Mrw from RWS and RWC in sections 4.16 and 4.17 to use
the “ceiling” function instead of “integer” (which is the same as the FORTRAN “floor”).
4- Added note to clip the telemetry band if any part falls outside the range window (section 7.9).
5- Changed the handling of the signal location for the PCE delay in the NoSig_Timer2 case (section
7.4).
6- Changed the handling of the TEP telemetry region for the PCE delay (section 7.5).
7- Updated the Algorithm Parameter files in Appendix F.
Changes from v2.8c to v2.8d
1- Cosmetic change to insert a line break between iTEP_flag=0 and next line on page 51.
2- Changed NoSig_Relief1 to NoSig_Scaling in the equation at the top of page 50.
Changes since v2.7
1- An algorithm to handle the “PCE delay” hardware issue has been added (see sections 4.15 and
section 7.9).
2- A warning has been added to section 4.14 to limit the cosine of the off-nadir angle to +/- 1.0
before taking the arccosine.
3- The algorithm to find the secondary signal has been corrected (see section 5.3). This was an
error in the previous version of the Rx Algorithm that was found during Simulator testing.
4- All flowcharts have been updated to ensure they reflect the latest version of the Algorithms.
5- The Baseline Knob values have been modified slightly by the Project Scientists and this is now
reflected in section 7.1.
6- The wording for the No Signal case in section 7.4 has been clarified.
ATLAS FSRA Document v4.0
Page 8
7- The Algorithm was changed to switch from the NoSig_Timer1 parameters to the NoSig_Timer2
parameters when the surface type changed (in addition to when the NoSig_Timer1 expires).
This was an issue discovered during Simulator testing that required correction. See section 7.4.
8- In section 7.6 the derivation of the pTLMB now correctly references the Range Window and not
the DEM.
9- Section 7.7 now specifies that the telemetry bands should not be combined if the combined
length would be greater than the telemetry band maximum.
10- Section 8 was revised to clarify some of the information.
11- The Flight Parameters Appendix F was updated to contain the latest parameter files.
12- The actual Algorithm Parameter names are now listed in this document.
Changes since v2.6
1- Some clarifications were added to section 3.
2- The value for the speed of light had a typo in the lowest digit which was corrected.
3- In section 4 it is clarified that, while the atmospheric histogram has a maximum length of
approximately 14 km, that range window can be less.
4- In section 4.8 the range-rate calculation is now shown as using up to 10 range values.
5- It is clarified in section 4.10 that the FSW will normally be doing the extrapolation calculations
for the range window conversion out to 1.5 seconds.
6- In section 4.11 an explanation is given on what to do in the case of a DEM error where either
there is no lower tier tile when there should be, or when the lowest tier’s range window width
is greater than the maximum.
7- A calculation for the solar zenith angle has been added to the Rx Algorithms in section 4.13, and
this value is used to determine day or night, which in turn is used to index into the limits on the
window widths.
8- Section 4.16 adds calculations to the Rx Algorithm to limit the separation between strong and
weak spot altimetric range windows, addressing a need by the PCE hardware recently
determined.
9- Clarifications were added to section 5 to explain what is happening in the hardware.
10- Section 5.2 now talks about the 50 shot summation of events in the altimetric range window
which is performed in the PCE hardware.
11- In section 5.3 the Rx Algorithm was modified to allow restriction of the TEP region from the
signal processing and to explain the ramifications of this.
12- Specific names were given to the coarsened histograms. The one coming from the hardware is
called the overlapping histogram, while the subset of the coarsened histogram that gets used
for signal processing is called the selected histogram.
13- Section 5.3 now also provides an explicit method for calculating the number of software bins in
the selected histogram.
14- Section 5.4 now indicates to move the SF subwindow if it sticks out beyond either end of the
range window.
15- In section 7, an explanation is given for handling telemetry when no signal has been found from
the start of Science Mode.
ATLAS FSRA Document v4.0
Page 9
16- Section 7.4 now uses the range window start and stop, rather than the DEM min and max, for
the telemetry band.
17- There is an explicit statement now added to section 7.5 indicating when TEP should be sent.
The TEP calculation was also changed to replace RWS and RWW with Jrw and Nrw.
18- Section 7.7 has been rewritten to make it easier to understand.
19- The TEP table in section 7.8 has been updated.
20- The section on limiting the data to what the SpaceWire can handle has been removed since the
Rx Algorithm does not have enough information to make this limitation in an effective manner.
In addition, the algorithm for doing this is too time consuming for the FSW to implement.
ATLAS FSRA Document v4.0
Page 10
1.0 ATLAS Instrument and ICESat-2 Mission
1.1 Mission science objectives
-
Quantifying polar ice sheet contributions to current and recent sea-level change and the
linkages to climate conditions.
Quantifying regional signatures of ice sheet changes to assess mechanisms driving those
changes and improve predictive ice sheet models.
Estimating sea ice thickness to examine ice/ocean/atmosphere exchanges of energy, mass and
moisture.
Measuring vegetation canopy height as a basis for estimating large-scale biomass and biomass
change.
Enhancing the utility of other Earth observation systems through supporting measurements.
1.2 Key mission parameters
Orbit: 500km, 91-day repeat, with monthly sub-cycles
Orbital inclination: 92°
Maximum off nadir pointing during data collection: 5°
Laser Rep. Rate: 10 kHz
Number of beams: 6, with unequal energy
Along-track spot separation: 70 cm
Wavelength: 532 nm
Launch and lifetime: September 15, 2018 with 3-year mission lifetime
1.3 Overview of the instrument
The ATLAS instrument is a single-photon-sensitive lidar system with a laser repetition rate of 10 kHz
(see ATLAS block diagram in Figure 1.1). The laser is capable of transmitting 250 to 900 microJoules
per pulse (tunable on-orbit) at 532nm. The beam divergence is approximately 25 microradians
(FWHM) giving a spot diameter on the Earth surface of about 12 meters. The receiver field of view
diameter is about 3 times that of the laser spot.
The transmitted laser pulse is split into six beamlets by a diffractive optical element (DOE). The
beamlets are separated by 5-7 milliradians in angle which gives ~ 2.5 to 3.5 km separation of the spots
on the surface. The six spots are grouped into three mostly identical “tracks” consisting of 2 spots each
(Figure 1.2). The laser energy is divided unequally between the spots in a track. One contains
nominally four times the transmit laser energy of the other. The spot with the higher energy is called
“strong” and the lower energy one is called “weak”. Because the spacecraft flies about half the time
oriented in one direction and half the time in the opposite orientation, the strong spot sometimes
precedes the weak and at other times it trails.
ATLAS FSRA Document v4.0
Page 11
The altitude of the spacecraft, combined with the laser pulse repetition frequency (PRF), implies that
there are about 33 laser pulses in flight at any given time. At a PRF of 10 kHz, each laser pulse travels
approximately 30 km (15 km round-trip) before the next laser pulse is fired. For clouds with altitudes
at or greater than 15 km, ground returns may overlap with cloud returns from the subsequent pulse,
potentially confusing the onboard Receiver Algorithms (Figure 1.3). This will most likely not be much
of an issue, except for vegetated areas, since the cloud returns being diffuse are generally broader than
the surface returns.
The photons from each spot are collected by the ATLAS optical system and delivered to the detector
associated with that spot. Each detector face is divided into multiple channels. The strong beams have
sixteen detector channels, and the weak beams have four. The signal and noise for each spot are
spread randomly over all of the detector channels. This is done to reduce the effect of receiver dead
time and also reduce the effect of first photon bias.
The laser beam pulsewidth is expected to be about 1.5 ns. Since the dead-time of the receiver
subsystem is about 3 ns for each channel, a photon arriving at a given channel less than 3 ns behind
the previous is not recorded.
The Photon Counting Electronics (PCE), a part of the Main Electronics Box (MEB), measure the laser fire
and photon receive times (or photon time tags) and also perform much of the low level calculations for
the Receiver Algorithms. These include separating received events into histogram bins and some lowlevel processing. This work must be done in the PCE hardware because of the high laser PRF and the
speed at which processing is required.
Figure 1.1: High Level Functional View of ATLAS Instrument (figure courtesy of Anthony Martino, code 615,
NASA/GSFC)
ATLAS FSRA Document v4.0
Page 12
+X
ATLAS
MRF
+Y
Figure 1.2: Laser spot pattern on the Earth. Spot 1 (strong: RED) and 2 (weak: GREEN) are in Track 1, Spot 3
(strong) and 4 (weak) are in Track 2, and spot 5 (strong) and 6 (weak) are in Track 3.
GLAS
ATLAS
Figure 1.3: Cloud overlap example. Top picture shows nighttime clouds as GLAS measured them. Bottom shows
the same atmosphere as measured by ATLAS. Both are at night. Clouds above 15 km in GLAS plot show up at
bottom of ATLAS plot.
ATLAS FSRA Document v4.0
Page 13
2.0 Purpose, Products, Requirements and
Constraints
The ATLAS Flight Science Receiver Algorithms (FSRA) has one purpose: to reduce the science telemetry
bandwidth to fit within the downlink constraint (577.4 Gb/day) while maximizing the probability of
selecting and downlinking returns from the surface. Without the Algorithms, the expected daylight
high noise rates, coupled with the expected surface return rates, could give a data volume >> 15 times
the currently specified bandwidth limitation.
The Algorithms reduce the telemetry volume by performing signal processing on the received events to
determine the surface location in vertical space, and by using an onboard digital relief map (DRM) of
the Earth to determine the expected height range of the surface data. These two pieces of information
are then used to select the time tags to be downlinked to the ground. The remaining time tags are
discarded.
In addition to the signal timing information, an atmospheric histogram is generated over a 14 km
vertical window. The atmospheric histogram from each strong spot, built from the data for 400
consecutive shots, is telemetered to the ground.
The Receiver Algorithms are run simultaneously on three identical processors (one processor on each
of the three Photon Counting Electronic boards). Each board contains the electronics for the strong
and weak laser spots for one track. Although there are actually six ATLAS spots, this document will
refer to only two: one strong and one weak. The Receiver Algorithms described here are identical for
all three tracks.
ATLAS FSRA Document v4.0
Page 14
3.0 Overview of the Algorithms
The ATLAS Flight Science Receiver Algorithms have a heritage going back to the Mars Observer Laser
Altimeter (MOLA) in the 1980s where a receiver algorithm was implemented in the Flight Software to
optimize the data collected. Most recently the Mercury Laser Altimeter (MLA) and the Lunar Observer
Laser Altimeter (LOLA) Receiver Algorithms were developed by teams that included members of the
ATLAS Algorithms Team. The ATLAS Algorithms share many of the fundamental characteristics of the
former Algorithms including the goals of maximizing the probability of detection, minimizing the
probability of false alarm, and performing signal processing over a period of time called a frame.
The Geoscience Laser Altimeter System (GLAS) Flight Science Receiver Algorithms also provide a
heritage for ATLAS, although many of the Algorithms on GLAS were related to the detector digitized
waveform which has no analogy on ATLAS. ATLAS, however, continues the GLAS practice of flying an
onboard Digital Elevation Model (DEM) for use in determining where to set the Range Window.
On GLAS and MLA the spacecraft provided real-time orbital information to the onboard Algorithms.
For MLA this was an estimated range to the surface, used to set the Range Window. On GLAS, similarly
to ATLAS, this was a rectangular position of the spacecraft relative to the center of the Earth.
MOLA was an instrument on the Mars Global Surveyor (http://mars.jpl.nasa.gov/mgs/), MLA is an
instrument on MESSENGER (http://messenger.jhuapl.edu/), and GLAS was the instrument on the
original ICESat mission (http://icesat.gsfc.nasa.gov/).
3.1 Spacecraft position and pointing
The spacecraft position, velocity, pointing (in the form of a quaternion), and rotational rates (relative
to the spacecraft body) are given to the Flight Software once per second. All pieces of information are
less than 500 milliseconds stale when they are transmitted from the spacecraft to the Flight Software.
The spacecraft position and associated velocity arrive in a packet together. The quaternion and body
rates also arrive together and at a potentially different time than the position and velocity information.
Each packet has an associated timestamp representing the time of the data given in the spacecraft GPS
time.
3.2 Laser beamlets
A diffractive optical element (DOE) is used to break the laser beam into 6 beamlets. Each has a
different off-nadir angle. Associated with each laser beamlet is a fixed vector defining its direction in
the ATLAS coordinate system (ATLAS_CSYS). It is assumed for purposes of this document (and
Algorithms) that all six beamlets have the same coordinate system origin at the origin of the
ATLAS_CSYS. Each strong spot has an associated weak spot that travels along a close path. These spot
pairings are called tracks.
ATLAS FSRA Document v4.0
Page 15
3.3 Laser spot location on the Earth ellipsoid
The location of each laser spot on the Earth ellipsoid is calculated in real time from the spacecraft
position, velocity and pointing information, along with the fixed unit vector representing the laser
transmit direction in the instrument coordinate system.
The Flight Software requires time to process this information and send it to the hardware, so the spot
locations must be extrapolated up to 1.5 seconds into the future. Each laser vector is rotated from the
instrument body coordinate system to Earth Centered Earth Fixed (ECEF) and then translated to the
surface of the Earth ellipsoid.
The latitude and longitude of the laser spots on the Earth ellipsoid, and a distance (range) from the
origin of the spacecraft coordinate system, are then calculated.
3.4 Digital Elevation Model (DEM), Digital Relief Maps (DRM), and the Surface
Reference Mask (SRM)
The Digital Elevation Model is an onboard database of tiles containing minimum and maximum heights
relative to the WGS84 ellipsoid for each tile. The index into the DEM is a function of latitude and
longitude. See Appendix A for more information.
The Digital Relief Maps are onboard databases containing the maximum relief over a specific ground
track distance for each tile. As with the DEM the index into the DRM is based on latitude and
longitude. There are two DRMs, one corresponding to a ground track distance of 140m and one
corresponding to a ground track distance of 700m. See Appendix B for more information.
The Surface Reference Mask is a database of information on the surface type and associated
characteristics. It is referenced by latitude and longitude as the DEM and DRM are. The four surface
types are ocean, land, sea ice, and land ice (ice sheets, glaciers, ice fields, ice caps, floating glacier
tongues and ice shelves all fall into the last category). The SRM also specifies whether vegetation is
present in this tile, and if the tile contains a coastline. There are four additional bits in the SRM that
are left as spares for future use.
3.5 Receiver Algorithm Parameters
The Receiver Algorithms use several parameters that can be modified on-orbit. Their values are
specified in a set of parameter files. These files are used by the Receiver Algorithms Team during
testing and then given to the Flight Software Team for use on-orbit. There is a separate set of files for
each of the three PCE boards. These files consist of: (1) extrapolation and range parameters (PPR), (2)
signal and telemetry parameters (ST), (3) parameters related to adjusting what is in the telemetry
downlink for nominal operations (Knobs), (4) parameters setting the telemetry downlink for ocean
ATLAS FSRA Document v4.0
Page 16
scans and targets of opportunity (Alternate Knobs), and (5) the sigma multiplier tables which are used
by the signal processing algorithm. These files can be found on TDMS (ICESat-2-ALG-SPEC-0255).
3.6 Range Window
The distance to the laser spot on the Earth ellipsoid, combined with the DEM minimum and maximum
heights (converted to range space), provides a starting and ending estimated range to the surface.
Margin, based on surface type, is added to the start and end range to compensate for uncertainties in
the DEM and the range calculation. The final products of these calculations are the altimetry Range
Window Start (RWS, aka Jrw), the altimetry Range Window Width (RWW, aka Nrw) and the start of the
atmospheric (cloud) Range Window (RWC, aka Mrw). The altimetry Range Window Width cannot
exceed 6 km due to hardware limitations. The atmospheric Range Window Width (height) is normally
14 km.
Note that the Range Window Start represents the range closest to the spacecraft where surface echoes
are expected, and the end of the Range Window (RWS+RWW) is the location farthest from the
spacecraft where surface echoes are expected.
The RWS, RWW and RWC are provided to the hardware in units of clock cycles (where 1 clock cycle =
~10 ns) from the fire event. This information is used by the hardware to generate histograms of the
incoming events. Receive time tags are only generated for events that fall within the altimetric Range
Window. All events that occur outside of the Range Window are lost.
The delay of the fire from the closest clock cycle is NOT taken into account by the hardware so there is
some smearing of the data within the histogram bins at the 10 ns (1.5 m) level.
3.7 Range Window histograms
In each Photon Counting Electronics (PCE) board Field Programmable Gate Arrays (FPGAs) generate
histograms from the incoming photon events across the entire Range Window. For the altimetry
histogram the Range Window Width (RWW) can be as large as 6 km, with the lower limit set by the
margin added to the Range Window to compensate for uncertainties (nominally +/- 250 m). The
hardware histogram bin size is 2 clock cycles (~20 ns or ~3 m) and the integration time is 200 shots
(0.02 seconds at 10 kHz, during which the spacecraft moves ~140 m); this period (0.02s) is called a
Major Frame (MF). For the atmospheric histogram the Range Window width is nominally ~14 km (93.4
μs), the histogram bin size is 20 clock cycles (~200 ns or ~30 m) and for the hardware, the integration
time is also 200 shots. As part of the histogram processing the Flight Software directs the hardware to
combine two consecutive 200 shot atmospheric histograms to produce a 400 shot histogram (0.04
seconds) every 0.02 seconds.
The starts of the altimetric and atmospheric Range Windows are not necessarily the same and the
starts of each of the six spots’ Range Windows are generally not the same, given that the location of
the spots on the Earth surface are not identical.
ATLAS FSRA Document v4.0
Page 17
At the end of the integration time (0.02 seconds), the hardware informs the software that the
histograms are ready. For each spot the atmospheric histogram is formed by combining data from two
consecutive major frames. Every other combined histogram from the strong spots is telemetered to
the ground (i.e., one every 0.04 seconds). The weak spot histograms are not telemetered. Both the
strong and the weak spot atmospheric histograms are available for the signal processing software
along with the altimetric histogram. Altimetric histograms are only sent to the ground for diagnostic
purposes and are not telemetered during normal data collection.
The altimetric histogram is used as indicated below in the onboard signal processing.
3.8 Major frame signal processing
A 200 shot period of time is called a Major Frame (MF). When the altimetric histogram is ready for
processing, the hardware provides the Flight Software with some preliminary calculations, including
the number of events across the entire histogram, the indices of the three bins with the most counts,
and the number of counts in these bins. An uploadable parameter value based on surface type
indicates whether to pick a software bin size from a table or to use the DRM value. The software bin
size is given to the hardware, which combines the 3 m bins, converting the original histogram into a
histogram with wider (coarser) bins whose width is a function of surface type. This is done to increase
the probability of signal detection by matching the bin size with the expected response from the
surface. This should enhance the ability to find weak narrow surface responses from low relief, as well
as to find the broader responses from trees and high relief regions.
The event rate and the number of bins in the chosen histogram are used by the software to estimate
the mean noise count per bin and derive an "optimum" threshold which yields a high probability of
surface detection while limiting the number of false alarms. The number of bins in the histogram is
used to select a scale factor from a “Sigma Multiplier Table” that is used in the threshold calculation to
keep the false alarms at a rate of < 10%. See section 5 for details on these calculations. This threshold
and bin size are provided to the hardware for further calculations. The FPGA provides very fast low
level histogram routines and allows the software to queue up calculations, without having to wait for
them to finish.
At the end of the Major Frame processing, the Flight Software decides whether signal is found or not.
If signal is found, the bins where the signal is located is determined.
The calculations using the atmospheric histogram are strictly for the purpose of determining if clouds
are present and are too thick for surface signal to get through. The calculations are performed for both
the strong and weak spots individually even though only the strong spot atmospheric histogram is sent
to the ground. Details of how these calculations are used are explained in section 7.
ATLAS FSRA Document v4.0
Page 18
3.9 Multiple frame signal processing
Five consecutive Major Frames (MF) (labeled 1,2,3,4,5) are combined into a Super Frame (SF). The SF
is used to support the determination of signal location in MF #3. The SF calculation is considered to
have successfully found signal if the signal location was found in Nsf of the five MFs. In the current
Algorithms Nsf = 3. The SF signal location is calculated by linear interpolation using the two MFs with
signal that are closest to MF #3, but NOT using the center MF itself.
If signal is not found in either the Major Frame or the Super Frame, then signal locations are
extrapolated from previous locations where the signal was found. Depending upon the Algorithm
knobs this either continues for a limited period of time and then stops, or continues indefinitely until
signal is again found.
3.10 Selecting what to telemeter
When signal is found in the Major Frame, relief from the DRM-140 tile corresponding to the spot’s
latitude and longitude is used to determine the telemetry band (in the vertical or height dimension).
For frames with an interpolated or extrapolated signal location, the DRM-700 is used to determine the
relief. The relief is scaled upward based upon a table look-up scale factor and then padded to
compensate for the relief uncertainty. In the current Algorithms, the scale factor is 2 for land and land
ice, implying that land and ice relief is doubled relative to the DRM value. A surface-type dependent
maximum limit is imposed on the telemetry band. The band is nominally centered over the signal
location. Margins to the band and an offset to the centering are selected from a table lookup based
upon surface type.
The hardware allows for two bands to be selected for telemetry. The Algorithms use two telemetry
bands for a number of circumstances, including when a Major Frame signal bin is outside the vertical
location of the other signal bins in the Super Frame. A second telemetry band is also used when there
is a strong secondary histogram peak that lies outside the primary telemetry band. See section 7 for
details.
In addition to receiving return signals from the surface, the ATLAS instrument also sends a small
portion of the transmitted pulse back into the detector for calibration. Each of these events is called
the Transmitter Echo Pulse (TEP). The energy in the TEP is expected to be low enough that the
Algorithms will not detect it. The TEP sometimes falls within the Range Window and sometimes not;
when it does, the region containing the TEP is telemetered if indicated by the Algorithm Parameters.
Once a telemetry band or bands are selected, the starting hardware bin number and number of bins
are converted to clock cycles and given to the hardware. The hardware then sends down time tags for
all events that fall within these histogram bins.
ATLAS FSRA Document v4.0
Page 19
3.11 Comment on units and calculations
All units in time (nanoseconds) are two-way or roundtrip and are exact. All units given in distance
(meters) are one-way and in this document are an approximate conversion from the time.
All calculations given below are double precision floating point unless specified by either integer[X]
which implies truncate X, round[X] which implies round X to closest integer, or ceiling[X] which implies
select the least integer that is greater than or equal to X. Double precision floating point values are
assumed to have 52 or more significant bits (15.6 decimal digits). Integers are assumed to be 32 bit.
All tables and parameters that relate to the signal processing and telemetry have separate names and
allow for different parameter values for each of the six spots. The parameters are grouped into three
files, one for each track. See Appendix F.
3.12 Physical constants
The following physical constants are to be used in the implementation of the FSRA:
Speed of light: 299792458 m/s
Radius of the Earth (WGS-84): 6378137 m
Flattening of the Earth (WGS-84): 1/298.257224
3.13 Caveats
Algorithm Parameter values shown are for example only and may be different in the Algorithm
Parameter files. Please check the latest files for the latest values. Files can be found on TDMS (ICESat2-ALG-SPEC-0255), or obtained from Jan McGarry (
[email protected]) or Ann Rackley Reese
(
[email protected]). Values in Section 3.12 and Section 4’s equations, however, are the final
values and should be used as given in these sections.
3.14 FSRA flowchart
A simplified flow of Algorithms is shown with no Telemetry Knob selections and no use of the Palm
Algorithm to determine if clouds prevent surface echoes from getting to the instrument. The red
boxes are functions performed by the hardware. Green boxes are data inputs to software.
ATLAS FSRA Document v4.0
Page 20
ATLAS FSRA Document v4.0
Page 21
Figure 3.1. Simplified Receiver Algorithm Flowchart, showing an overview of the decisions for
signal processing and telemetry downlink.
Note (*): If no previous signal, use DEM for telemetry band location.
ATLAS FSRA Document v4.0
Page 22
4.0 Calculating Range Window Start and
Width
4.1 What is a Range Window and why do we need it?
A temporal window is needed for the altimetry signal processing to reduce the false alarm rate. The
Range Window provides this function. The software calculates the Range Window information based
on the spacecraft location and pointing information, the fixed laser vectors in the instrument
coordinate system, the Earth reference ellipsoid information, and an onboard Digital Elevation Model
(DEM) of the minimum and maximum heights for each latitude/longitude tile on the Earth.
The software produces 12 Range Windows for each Major Frame. There is one altimetry Range
Window and one atmospheric Range Window for each of the six spots. Each Range Window can
potentially have different start and stop times. The width of the altimetric Range Window (stop minus
start) is between 500 meters and 6 km. The maximum width of the Range Window allowed by the
hardware is 6 km. The minimum width is determined by the accuracies of the DEM and the onboard
range calculations (see appendix E). The Range Window width parameters
(PPR:Range_Window_Width_Max_Strong/Weak and Range_Window_Width_Min_Strong/Weak) must
be set to follow the Range Window width constraints and can also be used to further limit the width of
the Range Window.
The atmospheric Range Window width (PPR:Atm14km10ns_Strong/Weak) is approximately 14 km and
its start is calculated using the altimetry Range Window end and an offset
(PPR:Atmos_Range_Window_Offset_Strong/Weak). Section 4.17 details this calculation.
The PCE hardware only saves the time of arrival of those received events that occur within the
altimetric Range Windows for each spot.
4.2 Spacecraft supplied information
The spacecraft supplies position and velocity as well as pointing and rate information. The spacecraft
position is in rectangular coordinates (X,Y,Z) in units of meters referenced to the Earth Centered
Inertial (ECI) coordinate system (J2000.0). The pointing comes in the form of a quaternion, consisting
of four elements, which transforms the position vector from the ECI reference frame to the ATLAS
Coordinate System (ATLAS_CSYS) also known as the ATLAS Master Reference Frame (MRF). See
Saltzman’s ATLAS Coordinate Systems Descriptions Report (ICESat-2-SYS-RPT-0591). For the purposes
of this document (and Algorithms) the origin of the ATLAS MRF and the spacecraft center of mass are
the same. All positional and velocity information are provided at 1 Hz with less than 500 ms latency.
The ATLAS MRF system used is essentially the reference system associated with the Laser Reference
System (LRS). The ATLAS MRF Z-axis lies along the Observatory Coordinate System Z-axis (which is
ATLAS FSRA Document v4.0
Page 23
along the optical axis of the telescope). The X-Y axes of the ATLAS MRF are clocked -0.024 degrees
from the Observatory Coordinate System (OBS_CSYS). This angular difference between these two
coordinate systems is small enough to be ignored for the onboard Rx Algorithms as it results in an error
for the ground spot location of < 20 meters. The rates are the angular velocities about the 3 ATLAS
axes.
The Earth reference ellipsoid used by the onboard Algorithms and used in developing the DEM is WGS84. Only the radius of the Earth at the equator (ae) and the flattening (flat) are needed by the
Algorithms to define the WGS-84 ellipsoid. The values used by the onboard Rx Algorithms are given in
section 3.11 (Physical Constants).
The spacecraft supplied information is extrapolated ahead, up to 1.5 seconds in the future, to the time
that the Flight Software and electronics need it.
The following definitions hold throughout section 4:
XI, YI, ZI is the spacecraft supplied position vector in Earth Centered Inertial (ECI) to the center
of the ATLAS instrument coordinate system at time TP. XI(TP) implies the value of XI at time
“TP”. Similarly for YI(TP) and ZI(TP).
XIdot, YIdot, ZIdot is the spacecraft supplied velocity vector in ECI of the XI, YI, ZI
spacecraft position. Similar to the position notation, XIdot(TP) is the X axis velocity at time
“TP”.
q1, q2, q3, q4 are the four parts to the spacecraft supplied quaternion which represent the
rotation of the spacecraft position from ECI to the ATLAS Master Reference Frame (MRF). The
quaternion information is at time TQ (which will be less than +/- 500 ms different from TP).
dt is the FSW required extrapolation time.
The following define the reference frames used in the Rx Algorithms calculations, and the
names for each of the parameters:
ECI is the Earth Centered Inertial reference frame (J2000.0).
ECEF is the Earth Centered Earth Fixed (ie rotating with earth) reference frame.
ECEF_hat is the coordinate system with axes aligned with ECEF but with origin at the ATLAS
MRF origin.
Both ECEF and ECEF_hat are at time “TQ”, the time of the quaternion.
(xls,yls,zls) is the unit vector along the laser direction in ATLAS MRF. This is known and is
fixed and is given by the Algorithm Parameter (PPR:Beam_Pointing_Strong/Weak).
(xlr,ylr,zlr) is the laser (unit) vector in the ECEF_hat coordinate system.
(XI,YI,ZI) is the vector from Earth center to the origin of the ATLAS MRF in ECI.
(XR,YR,ZR) is the vector from center of Earth to the origin of the ATLAS MRF in ECEF.
ATLAS FSRA Document v4.0
Page 24
(xle,yle,zle) is the laser spot location on the Earth ellipsoid in ECEF.
PP is the rotation matrix from ECI to ECEF (about the ECI Z axis through mean sidereal time).
R is the range to the surface from the ATLAS MRF origin along the laser unit vector.
4.3 Calculating the time
Time is calculated from three separate places: (1) the position and velocity message from the
spacecraft contains an embedded time which represents the time the information is valid (TP); (2) the
quaternion message includes a similar embedded time (TQ); and (3) the “time at the tone” message
contains the time of the last 1 Hz message (T0) and is used by the software to keep track of the current
time. The formats of all of the three time messages are the same so the conversion is the same for all.
Conversion of the filtered time of the spacecraft position/velocity is straightforward. Call the integer
seconds iTP. Call the fractions of seconds mTP. Then TP = float(iTP) + float(mTP)/10 7.
Do a similar calculation for the attitude/rate time: TQ = float(iTQ) + float(mTQ)/107.
The spacecraft time should be very close to the elapsed GPS time from 6 Jan 1980 00:00:00, and so no
conversion between spacecraft time and GPS time is needed.
Note that the time on the spacecraft is GPS time which differs from UTC by the number of leap seconds
since GPS was established. All calculations related to the Rx Algorithms are done in GPS time with the
exception of the Sidereal Time calculation, which corrects the GPS time with the leap seconds.
The Mean Sidereal Time should be calculated at TQ. To do this requires the calculation of Julian Date
(JD) when the time is given in date/time form of year (Y) and day of year (D):
NLY = integer[ (Y-2001)/4 ] + 1
JD = (Y-2000)∙365 + NLY + D + 2451543.5
However, with time coming from the spacecraft in seconds past the start of 6 January 1980, the
onboard calculation is:
JD = 2444244.5 + TQ/86400.0
where 2444244.5 is the Julian Date corresponding to 6 January 1980 at 00:00:00 (GPS time).
Then the Mean Sidereal Time (GMST)calculation is:
XD = JD – 2451545.0 - LS/86400.0 = ((TQ – LS)/86400.0) – 7300.5
GMST = 18.697374558 + 24.06570982441908∙XD
(equation from the USNO Approximate Sidereal Time website: https://aa.usno.navy.mil/faq/docs/GAST.php, last
accessed on July 30, 2019)
ATLAS FSRA Document v4.0
Page 25
where LS is the difference between GPS and UT1 and has both an integer and fractional part. From
July 1st 2015 to December 31st 2016, LS = 17.0. As of January 1st 2017, LS = 18.0. There needs to be a
command to upload the value of LS approximately once per month.
The Mean Sidereal Time (GMST) must be limited to be a valid time of day (0 to < 24 hours). This can be
done taking GMST modulo 24:
GMST = mod(GMST,24.0)
The Mean Sidereal Time expressed as an angle in radians is then:
Θ = (GMST∙15)∙π/180
4.4 Conversion of spacecraft position, velocity, and quaternion from s/c messages
The spacecraft provides position, velocity, pointing and pointing rate information in two separate
packets at 1 Hz to the Flight Software. The format of these messages is shown in Appendix G along
with the conversions to units required by the FSRA and used in this document.
4.5 Extrapolation of position
Use the velocities to perform a linear extrapolation to get the spacecraft position to the same time as
the quaternion:
XI(TQ) = XI(TP+ΔT) = XI(TP) + ΔT∙XIdot(TP),
and similarly for YI,ZI.
where “ΔT” is extrapolation time (may be -0.5 to +0.5 seconds) and represents the difference between
the spacecraft positional time and the quaternion time:
ΔT = TQ – TP
The spacecraft position is also needed at time TQ+dt:
XI(TQ+dt) = XI(TP) + (ΔT+dt)∙XIdot(TP),
and similarly for YI,ZI.
where dt = 0 to 1.5 seconds.
4.6 Spacecraft pointing
The spacecraft supplies four pieces of angular information (the Quaternion): q1,q2,q3,q4 representing
the rotation at time TQ. Perform the following to calculate the rotation matrix from ECI to ATLAS MRF
at time TQ. These equations were courtesy of Charles Webb, code DK000, NASA/HQ.
q11 = q1 ∙ q1
q22 = q2 ∙ q2
q33 = q3 ∙ q3
ATLAS FSRA Document v4.0
Page 26
q44 = q4 ∙ q4
q12 = q1 ∙ q2
q13 = q1 ∙ q3
q14 = q1 ∙ q4
q23 = q2 ∙ q3
q24 = q2 ∙ q4
q34 = q3 ∙ q4
AA(1,1) = q11 - q22 - q33 + q44
AA(1,2) = 2.0∙(q12 + q34)
AA(1,3) = 2.0∙(q13 - q24)
AA(2,1) = 2.0∙(q12 - q34)
AA(2,2) = -q11 + q22 - q33 + q44
AA(2,3) = 2.0∙(q23 + q14)
AA(3,1) = 2.0∙(q13 + q24)
AA(3,2) = 2.0∙(q23 - q14)
AA(3,3) = -q11 - q22 + q33 + q44
AAT is the transpose (also the inverse) of AA.
AAT provides ATLAS MRF to ECI rotation.
AAT(i,j) = AA(j,i)
4.7 Calculate the precession from J2000 to True of Date
The following equations are from the Explanatory Supplement to the Astronomical Almanac, ed by P.
Kenneth Seidelmann, U.S. Naval Observatory, Washington, D.C., University Science Books, 1992,
Section 3.21 Precession, pp 99 – 104.
T = (JD – 2451545.0) / 36525.0
Following values are in units of radians
ζA = (2306.2181 ∙ T + 0.30188 ∙ T^2 + 0.017998 ∙ T^3)/s2r
zA = (2306.2181 ∙ T + 1.09468 ∙ T^2 + 0.018203 ∙ T^3)/s2r
θA = (2004.3109 ∙ T - 0.42665 ∙ T^2 - 0.041833 ∙ T^3)/s2r
where s2r = 206264.8062470964 (converts arcseconds to radians).
Generate the precession rotation matrix:
BB(1,1)
BB(1,2)
BB(1,3)
BB(2,1)
= cos(zA)∙cos(θA)∙cos(ζA) – sin(zA)∙sin(ζA)
= -cos(zA)∙cos(θA)∙sin(ζA) – sin(zA)∙cos(ζA)
= -cos(zA)∙sin(θA)
= sin(zA)∙cos(θA)∙cos(ζA) + cos(zA)∙sin(ζA)
ATLAS FSRA Document v4.0
Page 27
BB(2,2)
BB(2,3)
BB(3,1)
BB(3,2)
BB(3,3)
= -sin(zA)∙cos(θA)∙sin(ζA) + cos(zA)∙cos(ζA)
= -sin(zA)∙sin(θA)
= sin(θA)∙cos(ζA)
= -sin(θA)∙sin(ζA)
= cos(θA)
BB(i,j) =
BB(1,1)
BB(2,1)
BB(3,1)
BB(1,2)
BB(2,2)
BB(3,2)
BB(1,3)
BB(2,3)
BB(3,3)
4.8 Geolocate the laser spots on the Earth ellipsoid at time TQ
Rotate laser unit vector from ATLAS MRF to ECI to ECEF_hat:
(xlr,ylr,zlr) = PP∙BB∙AAT∙(xls,yls,zls)
Rotate spacecraft position to ECEF:
(XR,YR,ZR) = PP∙BB∙(XI,YI,ZI)
Defining the matrix PP as PP(i,j):
with PP(i,j) =
And:
PP(1,1)
PP(1,2)
PP(1,3)
PP(2,1)
PP(2,2)
PP(2,3)
PP(3,1)
PP(3,2)
PP(3,3)
PP(1,1)
PP(2,1)
PP(3,1)
PP(1,2)
PP(2,2)
PP(3,2)
PP(1,3)
PP(2,3)
PP(3,3)
= cos Θ
= sin Θ
= 0
=-sin Θ
= cos Θ
= 0
= 0
= 0
= 1
Θ = mean sidereal time (GMST)in radians at time TQ
Then:
XR = PP(1,1)∙XI’ + PP(1,2)∙YI’ + PP(1,3)∙ZI’
YR = PP(2,1)∙XI’ + PP(2,2)∙YI’ + PP(2,3)∙ZI’
ZR = PP(3,1)∙XI’ + PP(3,2)∙YI’ + PP(3,3)∙ZI’
Where:
XI’ = BB(1,1)∙XI + BB(1,2)∙YI + BB(1,3)∙ZI
YI’ = BB(2,1)∙XI + BB(2,2)∙YI + BB(2,3)∙ZI
ZI’ = BB(3,1)∙XI + BB(3,2)∙YI + BB(3,3)∙ZI
Setting DD = PP∙DD’, with DD’= BB∙AAT,
ATLAS FSRA Document v4.0
Page 28
DD’(i,j) = BB(i,1)∙AAT(1,j)+BB(i,2)∙AAT(2,j)+BB(i,3)∙AAT(3,j)
DD(i,j) = PP(i,1)∙DD’(1,j)+PP(i,2)∙DD’(2,j)+PP(i,3)∙DD’(3,j)
And then:
xlr =
ylr =
zlr =
DD(1,1)∙xls + DD(1,2)∙yls + DD(1,3)∙zls
DD(2,1)∙xls + DD(2,2)∙yls + DD(2,3)∙zls
DD(3,1)∙xls + DD(3,2)∙yls + DD(3,3)∙zls
Find the distance along the laser vector from the spacecraft to the Earth ellipsoid (this is the range, R):
ap = ae ∙ (1.0 alphax = ap ∙ ap
betax = 2.0 ∙ ap
gammax = ap ∙ ap
flat)
∙ (xlr ∙ xlr + ylr ∙ ylr) + ae ∙ ae ∙ zlr ∙ zlr
∙ ap ∙ (XR ∙ xlr + YR ∙ ylr) + 2.0 ∙ ae ∙ ae ∙ ZR ∙ zlr
∙ (XR ∙ XR + YR ∙ YR) + ae ∙ ae ∙ (ZR ∙ ZR - ap ∙ ap)
where “ae” is the Earth radius at the equator and “flat” is the Earth flattening. Both are Algorithm
Parameters.
Then:
dscr = betax ∙ betax - 4.0 ∙ alphax ∙ gammax
Error condition if dscr =< 0
Calculate:
tau1 = (-betax + sqrt(dscr)) / 2.0 / alphax
tau2 = (-betax - sqrt(dscr)) / 2.0 / alphax
Finally, select intersection distance:
if (tau1 < tau2) then
R = tau1
else
R = tau2
end if
The calculation above gives the range “R” at time TQ (courtesy of Charles Webb, code DK000,
NASA/HQ). An error condition exists if R < 0.
Put the laser spot on the Earth ellipsoid:
(xle,yle,zle) = (XR,YR,ZR) + R∙(xlr,ylr,zlr)
which becomes:
xle = XR + R∙xlr
yle = YR + R∙ylr
zle = ZR + R∙zlr
Save the range to the ellipsoid (R) for the next second’s calculation. Calculate the range velocity from
up to 10 second’s worth of ranges, where “Nr” is an Algorithm parameter
(PPR:Range_Rate_Average_Points_Strong/Weak) between 2 and 10:
ATLAS FSRA Document v4.0
Page 29
Rsum = Σ( (R(TQi)-R(TQi-1))/( TQi
- TQi-1) ) for i=2,…,Nr
Rdot = Rsum/(Nr-1)
While the time difference between TQ in one second and TQ in the previous is most likely equal to one
second, it is best not to make that assumption. Care must be taken with the velocity calculation should
the time roll over.
4.9 Calculate the velocity of the spot on the Earth ellipsoid
Using the last Nv vectors (xle, yle, zle), estimate the velocity of the laser spot’s movement on the Earth
ellipsoid. Here Nv is an Algorithm Parameter (PPR:Velocity_Average_Points_Strong/Weak):
Xsum = Σ((xle(i)-xle(i-1))/(TQ(i)-TQ(i-1)) for i=2,…,Nv
Ysum = Σ((yle(i)-yle(i-1))/(TQ(i)-TQ(i-1)) for i=2,…,Nv
Zsum = Σ((zle(i)-zle(i-1))/(TQ(i)-TQ(i-1)] for i=2,…,Nv
Xdot = Xsum/(Nv-1)
Ydot = Ysum/(Nv-1)
Zdot = Zsum/(Nv-1)
Nv (PPR:Velocity_Average_Points_Strong/Weak) must always satisfy 2=< Nv =< 10. Care must be
taken with the velocity calculation should the time roll over.
4.10 Extrapolate the laser spot’s location on the Earth ellipsoid
Extrapolate the laser spot’s location up to 1.5 seconds ahead (whatever is needed for the hardware):
xle(TQ+dt) = xle(TQ) + dt∙Xdot
yle(TQ+dt) = yle(TQ) + dt∙Ydot
zle(TQ+dt) = zle(TQ) + dt∙Zdot
where dt = 0 … 1.5 seconds.
4.11 Determine the geodetic latitude (lat) and east longitude (lon) and choose height
and surface type information
xleP = xle(TQ+dt)
yleP = yle(TQ+dt)
zleP = zle(TQ+dt)
From (xleP,yleP,zleP) calculate latitude and longitude:
rle = sqrt(xleP^2 + yleP^2 + zleP^2)
ATLAS FSRA Document v4.0
Page 30
lon = atan2(yleP,xleP)
tan(latc) = zle/sqrt(xleP^2 + yleP^2)
where “latc” is the geocentric latitude.
lat = atan( tan(latc)/(1-flat)^2 ).
Both the latitude (lat) and the longitude (lon) are needed in degrees. Generally, the atan and atan2
functions return angles in radians. To convert from radians to degrees, multiply the angle in radians by
(180/π). The longitude must satisfy: 0 =< lon < 360.
Use the calculated latitude and longitude to pick the correct tile in the 1° x 1° DEM. If the max-min
height is > 5.5 km, then go to the next tier down (0.25° x 0.25° tile). If the max-min height in that is >
5.5 km, go to the 0.05° x 0.05° DEM. This height difference may still be greater than 5.5 km, but these
Hmin and Hmax values are used in the following calculations regardless. Should a lower tier not exist
when expected, an error flag is set, and the Hmin and Hmax of the last available tier are used. See
Appendix A for more details. Note that the 5.5 km value is an Algorithm Parameter
(PPR:DEM_Delta_Limit_Strong/Weak). There are six versions of this parameter, one for each of the six
spots, however, all six values MUST BE SET TO THE SAME VALUE as they are determined by hardware
limitations. This is a requirement on any future parameter changes.
Use latitude and longitude to reference the correct SRM tile and pick up the surface type (Appendix C).
4.12 Calculate the corresponding range at each extrapolated laser spot
Use the calculated Rdot from section 4.8 to calculate the extrapolated range to the ellipsoid:
R(TQ+dt) = R(TQ) + dt∙Rdot.
4.13 Calculate the solar zenith angle
Use the value of GMST, Θ, and XD as given in section 4.3 above.
Calculate the following, in double precision (equations are from the USNO website:
http://aa.usno.navy.mil/faq/docs/SunApprox.php, last accessed on July 30, 2019).
Values are initially calculated in degrees but then converted to radians.
g =
g =
gr =
q =
q =
L =
L =
357.529 + 0.98560028·XD
mod(g,360)
g· 𝜋/180
280.459 + 0.98564736·XD
mod(q,360)
q + 1.915·sin(gr) + 0.020·sin(2·gr)
mod(L,360)
ATLAS FSRA Document v4.0
Page 31
Lr = L· 𝜋/180
e = 23.439 – 0.00000036·XD
e = mod(e,360)
er = e· 𝜋/180
sindec = sin(er) · sin(Lr)
cosdec = √ (1 - sindec·sindec)
ras = atan2( cos(er)·sin(Lr), cos(Lr) )
if (ras < 0) ras += 2·𝜋
Use the atan2 function as it will give you the right quadrant.
Perform a subset of the conversion from Right Ascension (ras) and Declination (dec) to local azimuth
and elevation (AZ, EL) where there is no translation to the surface of the earth. For our accuracy needs
this is acceptable. All calculations here are done in radians. Latitude (lat) and Longitude (lon) are from
section 4.11 BEFORE they are converted to degrees and BEFORE they are truncated to be used as
database indices. The following calculation is done for each spot, although if that is not possible, it can
be done for spot #3 only and used for all of the other spots.
lha = lon + Θ – ras
if( lha < 0 ) lha += 2·𝜋
lha = mod(lha, 2·𝜋)
cosZ = sin(lat)·sindec + cos(lat)·cos(lha) )·cosdec
cosZ is the cosine of the solar zenith angle. If cosZ < 0.14 (PPR:Cosine_Solar_Zenith_Angle_Cutoff) then
for purposes of calculating the Range Window, the Algorithms assume it is night. If cosZ >= 0.14 then it
is day.
Send both the value of cosZ and the flag indicating day or night to the PCE.
This calculation of Day/Night is independent of the calculation in section 7.6 where the background
rate is used to make this determination.
ATLAS FSRA Document v4.0
Page 32
4.14 Calculate the start and stop of the altimetric Range Window
The range (R(TQ+dt), calculated in section 4.10 above) must be modified by the min and max heights
taken from the DEM. The actual angle of incidence on the ellipsoid must be used to convert the DEM
min and max heights which are normal to the ellipsoid into min and max range modifiers.
Calculate the off-nadir angle of the laser vector, β, from the dot product of the two vectors at the
current time:
Cos(β) = -(XR,YR,ZR)∙(xlr,ylr,zlr) / ( ||(XR,YR,ZR)|| ∙ ||(xlr,ylr,zlr|| )
where ||(x,y,z)|| is the magnitude of the vector (x,y,z)
and is =
And where
√(x^2 + y^2 + z^2).
xlr = xle - XR
ylr = yle – YR
zlr = zle – ZR
and (XR,YR,ZR)∙(xlr,ylr,zlr) = XR∙xlr + YR∙ylr + ZR∙zlr
Here all values are assumed to be at time TQ.
To get the extrapolated off-nadir angle at time TQ+dt, save the old value of cos(β),
called cosβ(TQi-1), and use it and the currently calculated cos(β) to calculate the velocity of this
quantity:
cosβdot = [cosβ(TQi) – cosβ(TQi-1)]/( TQi
- TQi-1)
The extrapolated cosβ at time TQ+dT is then calculated from:
cosβ(TQ+dt) = cosβ(TQ) + dt∙cosβdot
The error in using β instead of the actual angle with respect to the nadir line is approximately equal to
the difference between geodetic and geocentric latitude and with a maximum difference of about 0.2
degrees which for the onboard Rx Algorithms requirements is small enough to neglect for this
calculation. Note, however, that because of the approximate nature of this calculation, the value of
cosβ must be limited to values between -1.0 and +1.0 before taking the arccosine.
The laser vector intersects the terrain at a slightly different latitude and longitude for nonzero heights.
The maximum height above the ellipsoid and its effect on latitude/longitude must be taken into
account for the tile overlap in the DEM generation.
As in section 4.11, the top tier (1° x 1°) of the DEM is read and the maximum (Hmax) and minimum
heights (Hmin) for the tile corresponding to (lat,lon) are obtained. If the difference of these heights is
greater than 5.5 km (PPR:DEM_Delta_Limit_Strong/Weak), then the next tier (0.25° x 0.25°) of the
ATLAS FSRA Document v4.0
Page 33
DEM is read. If the difference between these heights is greater than 5.5 km, then the lowest tier (0.05°
x 0.05°) is read. This height difference may still be greater than 5.5 km, but these Hmin and Hmax
values are used in the following calculations regardless. Should a lower tier not exist when expected,
an error flag is set, and the Hmin and Hmax of the last available tier is used.
The minimum and maximum range values are then calculated from:
Rmin = R – Hmax(lat,lon)/cos(β)
Rmax = R – Hmin(lat,lon)/cos(β)
where R is the range calculated in section 4.10 above, and is assumed to be at time TQ+dt.
Rmin and Rmax are then converted to integer units of clock cycles (cc). Rmin is rounded down and
Rmax is rounded up. Use the value given in section 3.11 for speed of light (c), and the parameter
representing the number of nanoseconds in a clock cycle (PPR:Clock_Cycles_in_ns, MUST BE EQUAL TO
ST: Clock_Cycles_in_ns) to convert Rmin, Rmax from meters to clock cycles:
Rmin(cc) = integer[(2∙Rmin(m)/c)∙1.E9/clock_cycles_in_ns]
Rmax(cc) = integer[(2∙Rmax(m)/c)∙1.E9/clock_cycles_in_ns]+1
For the altimetric Range Window, the surface type is used to select the offset, Roffset
(PPR:Range_Window_Offset_Strong/Weak). This value is given in clock cycles. A padding value,
Rpadding (PPR:Range_Window_DEM_Margin_Strong/Weak), that is used to compensate for
uncertainties in the entire Range Window calculation chain modifies both the RWS and the RWW. This
value is in clock cycles, nominally a value corresponding to 250 m, and is a function of both spot
number and surface type.
RWS = Rmin(cc) + Roffset - Rpadding
RWW = Rmax(cc) – Rmin(cc) + 2∙Rpadding
4.15 Compensate for the different hardware delays between spots
Due to delays in the PCE hardware between the Range Window start and the start of the histogram,
the events in the first part of the Range Window do not show up in the histogram. In addition, the end
of the histogram is beyond the end of the Range Window (making the effective histogram area the full
width of the original Range Window). The bins at the end of the Range Window contain nonzero
values that are most likely representative of the background rate, but the time-tags for these last few
histogram bins are not be available. This situation is shown graphically in Figure 4.1.
ATLAS FSRA Document v4.0
Page 34
Figure 4.1: PCE Delay
The delays are estimated to be 44 ns for the altimetric strong, 63 ns for the altimetric weak, 34 ns for
the atmospheric strong, and 33 ns for the atmospheric weak. Since the Range Window calculations are
done in clock cycles the delay values are rounded up to 5 cs for the altimetric strong, 7 cs for the
altimetric weak, and 4 cs for the atmospheric strong and weak. By being conservative and rounding up
the Range Window starts earlier and ends later ensuring the requested data is captured in the
histogram.
For the strong spot, the Range Window start is decreased by the Algorithm Parameter representing the
PCE delay amount (PPR:RW_AltimHist_PCE_Delay_Strong), and the Range Window width is increased
by the corresponding amount. This causes the Range Window to open early enough that the full
histogram is populated with data that corresponds to the unaltered Range Window. A similar
calculation is performed for the weak spot using the weak spot Algorithm Parameter
(PPR:RW_AltimHist_PCE_Delay_Weak).
RWS = RWS – RW_AltimHist_PCE_Delay_Strong
RWW = RWW + RW_AltimHist_PCE_Delay_Strong
The Algorithms calculations that use the altimetric histogram are performed the same as if there were
no PCE delays from this point onward until the determination of the hardware bins to send down in
telemetry. The PCE delays are applied differently to the telemetry bands than described here for the
Range Windows and are rounded to the nearest clock cycle to ensure the closest transformation to the
time-of-flight non-PCE delayed environment. These PCE delay values are defined in the ST Algorithm
Parameter files. Please see section 7.9 for details on modifying the telemetry bins to correct for the
PCE delay.
ATLAS FSRA Document v4.0
Page 35
4.16 Limit the Range Window start and width
The width of the Range Window is checked against minimum and maximum limits. The minimum and
maximum limits, used below as Wmax and Wmin (PPR:RangeWindow_Width_Max_Strong/Weak and
PPR:RangeWindow_Width_Min_Strong/Weak), are Algorithm Parameters that are dependent upon
day/night (see section 4.13) and surface type and are given in units of clock cycles. Both the RWS and
the RWW are modified if the limits are exceeded.
If (RWW > Wmax) then:
RWS = RWS + (RWW-Wmax)/2
RWW = Wmax
If (RWW < Wmin) then:
RWS = RWS + (RWW-Wmin)/2
RWW = Wmin
The width of the Range Window is forced to be an integer multiple of the hardware histogram bin size
(two clock cycles) by performing the following:
Nrw = integer[(RWW+1)/2]∙2
and Nrw is given to the hardware as the width of the altimetric Range Window.
To accommodate the hardware, the Range Window movement must be limited. The Range Window
start cannot decrease from one Major Frame to the next by more than 500 m. This is to keep the
current Range Window from potentially encroaching on a previous one. It is the software’s task to
prevent this from happening. The parameter representing the maximum decrease in the Range
Window, rw_decrease_limit, is an Algorithm parameter (PPR:Range_Decrease_Limit_Strong/Weak)
and is given in units of positive clock cycles.
If ( (RWS(frame N) - RWS(frame N+1) ) > rw_decrease_limit ) then
RWS(frame N+1) = RWS(frame N) – rw_decrease_limit.
Range window movements (for RWS) must be made in hardware bin increments. The following
calculation ensures that the start and end of the Range Window is always on a hardware bin boundary:
Jrw = ceiling[RWS/2]∙2
and Jrw is given to the hardware as the start of the altimetric Range Window.
ATLAS FSRA Document v4.0
Page 36
4.17 Calculate the start of the atmospheric Range Window
The atmospheric Range Window start (RWC) calculations use the above calculated altimetric Range
Window values. An offset based upon the surface type
(PPR:Atmos_Range_Window_Offset_Strong/Weak) is used to offset the start of RWC from RWS:
RWC = RWS + RWW – 9340 + Roffatm(cc), where
Roffatm(cc) is an Algorithm parameter given in units of clock cycles.
The width of the atmospheric window is 14 km which is 9340 clock cycles (93400 ns).
The atmospheric Range Window must start on a 200 ns boundary, so the following calculation
must be performed:
Mrw = ceiling[RWC/20]∙20,
which is the start of the atmospheric histogram.
As with the altimetric Range Window, the atmospheric Range Window start cannot decrease from one
Major Frame to the next by more than 500 m. This Range Window movement is limited similarly.
Additionally, the Altimetric Range Window must lie completely within the Atmospheric Window.
ATLAS FSRA Document v4.0
Page 37
4.18 Limiting the altimetric Range Windows between weak & strong
The difference between the start and end of the weak/strong altimetric Range Windows (for the same
track) must be no more than 13.2 km (PPR: Max_Sep_WeakStrong), given in clock cycles. If the
difference is greater, the end of the trailing Range Window must be chopped.
See pseudo-code below.
IF
( Jrw(strong) =< Jrw(weak) )
THEN
IF ( (Jrw(weak)+Nrw(weak) - Jrw(strong)) > Max_Sep_WeakStrong ) THEN
Nrw(weak) = Max_Sep_WeakStrong – ( Jrw(weak) - Jrw(strong) )
IF(Nrw(weak)=<Wmin) THEN
Nrw(weak)=Wmin
Jrw(weak) = Jrw(strong) + Max_Sep_WeakStrong – Nrw (weak)
ENDIF
ENDIF
ELSE
IF ( (Jrw(strong)+Nrw(strong) - Jrw(weak)) > Max_Sep_WeakStrong ) THEN
Nrw(strong) = Max_Sep_WeakStrong – ( Jrw(strong) - Jrw(weak) )
IF(Nrw(strong)=<Wmin) THEN
Nrw(strong)=Wmin
Jrw(strong) = Jrw(weak) + Max_Sep_WeakStrong – Nrw (strong)
ENDIF
ENDIF
ENDIF
*** NOTE that the Max_Sep_WeakStrong parameter needs to be a multiple of 2 clock
cycles (integer multiple of HW bins).
ATLAS FSRA Document v4.0
Page 38
5.0 Signal Processing of Altimetry Data
5.1 Theoretical probability of success and false alarm
The signal processing must find a segment of the surface echoes in each 700 m ground track (~0.1
seconds) whenever possible. See Appendix D for probability analysis. In particular for most of the
ATLAS Design Cases the signal processing must find a segment of the surface with a probability of
>=90% while keeping the probability of a false alarm to <=10%.
Signal processing is performed by generating histograms in height (vertical) space. Noise is randomly
distributed across the Range Window while signal events are highly correlated in time (range). Terrain
roughness and slope tend to spread the return pulse. Histograms that contain returns from sloped
surfaces will have a larger signal spread over longer time spans. To keep the spread within acceptable
limits, a frame time of 200 shots (=0.02 seconds 140 m along track) was chosen. For all of the strong
and many of the weak spot Design Cases, 200 shots provides a probability of ACQ >= 90% while
keeping the false alarm rate =< 10%. The 200 shot time period is called a Major Frame (MF).
The highest probability of acquisition is achieved when all of the signal falls in one histogram bin. To
increase the probability that most of the signal will fall in one bin, the Algorithms look at overlapping
bins with bin widths varying with the surface type (see section 5.3). This technique, however, doubles
the number of histogram bins, which requires raising the bin count threshold to ensure the false alarm
rate stays at or below 10%.
To further increase the probability of acquisition while also reducing the probability of false alarm, five
(5) consecutive Major Frames are combined into a Super Frame (SF). This effectively increases the
integration time without increasing the signal spread.
The initial (hardware) histogram for every Major Frame is generated with an integration time of 200
shots and a bin width of two clock cycles (~20 ns or ~3 meters). This bin width was chosen because it
represented the smallest reasonable width for the hardware. This small bin size provides a high
resolution and allows accurate calculation of the signal location.
The stable onboard oscillator defines the length of a clock cycle. This time is close to, but not exactly
equal to, 10 ns and may change slightly during the course of the mission. The representation of the
clock period in nanoseconds is an Algorithm Parameter (ST:Clock_Cycles_in_ns, MUST BE EQUAL TO
PPR:Clock_Cycles_in_ns).
5.2 Calculations done in the hardware
Initial histograms are formed in an FPGA on the Photon Counting Electronics (PCE) board. The
software provides the Range Window start time (RWS) and width (RWW) to the hardware. These are
ATLAS FSRA Document v4.0
Page 39
the values calculated in section 4.0 from the spacecraft position and pointing, the laser beam vectors,
and the Digital Elevation Model.
The start time and width of the Range Window are given to the hardware in units of clock cycles. The
maximum width allowed by the hardware is 4000 clock cycles (=2000 hardware bins or 6 km).
The hardware generates a histogram of all incoming events that fall within the Range Window with the
following restrictions:
(1) the hardware can only handle a sustained event rate of up to 12 MHz per spot,
(2) there is a hardware dead-time of 3 ns per channel,
(3) the histogrammer can only count a maximum of two events every clock cycle per fire per
channel,
(4) a small percentage (~5%) of the time-tags are double counted.
Restriction #3 implies that while there may be many time tags in a hardware bin period, at most 16
events for a weak spot or 64 events for a strong spot are counted in the hardware histogram bins.
Each strong spot histogram bin is represented by a 14 bit unsigned integer which allows for counts up
to 16384 per bin, and each weak spot histogram bin is 12 bits which allows for counts up to 4096 per
bin. A 12 MHz background rate gives an average per bin count of 48 over 200 shots. Adding an
expected signal of about 1 photoelectron per shot gives the signal bin a maximum value of about 248
counts over 200 shots. Adding an expected signal of about 9 photoelectrons (land ice in ideal
conditions) to the 12 MHz background gives a maximum value of about 1848 counts over 200 shots.
The hardware also produces a sum of all events in the altimetric Range Window over 50 shots. There
are four of these sums per major frame. These sums are telemetered to the ground but are not used
by the FSW.
Changes to the Range Window start and width are not permitted by the hardware during the 200 shot
integration time.
5.3 Major Frame calculations (performed in FSW)
The software performs the signal processing on a histogram with a bin size that is larger than the 3
meter hardware bin. Bin widths larger than 3 m are used in an attempt to capture all of the signal in a
single bin thus achieving the highest signal to noise ratio. Each surface type has an option
(ST:DRM_for_SW_Bin_Size_Strong/Weak) to select the bin size from a table
(ST:Bin_Size_Strong/Weak) or use the unpadded DRM-140 relief. An example of this table is given
below. If the option is to use the table then the bin size in the rightmost column is used. If the option
is DRM, then the unpadded relief from the DRM-140 is used to establish the bin size. Although the
DRM-140 can be used as the bin size for any surface it is expected that the DRM-140 will be used only
for the land surface type.
ATLAS FSRA Document v4.0
Page 40
The DRM-140 relief (R) is given in meters. This value must be converted to clock cycles:
R(cc) = integer[(2∙R(m)/c)∙1.E9/clock_period_in_ns]
where “c” is the speed of light (given in section 3.11). Because the software bin size must be an even
multiple of hardware bins, where each hardware bin is two clock cycles, the software bin size in clock
cycles from the DRM-140 unpadded relief must be integer divided by 4 and then multiplied by 4. A
maximum and minimum bin size (ST:sw_bin_size_lower_limit_strong/weak and
ST:sw_bin_size_upper_limit_strong/weak) are used to limit the size of the bins regardless of how they
are generated. These min/max limits are surface-type dependent. Note, however, that the maximum
software bin size can be no larger than 64 hardware bins (hardware constraint).
Surface Type
Ocean
Land
Sea Ice
Land Ice
Option
Table
DRM
Table
Table
Bin Size in clock cycles (in meters)
8 (12m)
----8 (12m)
16 (24m)
If the Land Option were “Table”, the software bin size for the land would nominally be 48 m.
The request to generate a “coarser” histogram (with wider bins) is presented to the hardware. Coarser
histograms (called software histograms) are produced by adding ~3 meter hardware bins to make the
larger bin sizes (software bin sizes). The resultant bins are overlapped by one half the software bin size
to increase the chance that all signal will fall in a single bin. For example, to make 12 meter bins,
hardware bins 0, 1, 2, and 3 are added, and then the summation is shifted by 2 bins and the next 12
meter bin consists of hardware bins 2, 3, 4 and 5 (Figure 5.2). Software bin sizes should always be an
even number of hardware bins (this is a requirement on the setting of the Algorithm Parameters).
Partial software bins (ones that do not have the full complement of hardware bins) should not be used
and should not be counted. FSW is not able to exclude partial bins, but the Simulator excludes them.
The software receives a list of the three software bins with the highest values (along with their values).
If there are multiple bins with one of the three highest values, the hardware preferentially returns the
indices of the bins that are latest in time first. If the hardware says the maximum bin is beyond the last
full software bin, then the Algorithms choose the last full software bin as the max bin. (NOTE: the FSW
is not able to do this, so they keep the maximum bin as indicated by the hardware regardless of
whether it is full or partial). The full histogram (as delivered by the hardware after combining hardware
bins into software bins) is referred to as the overlapping histogram.
The software searches for a secondary signal. Any secondary signal must meet two requirements: it
must be very large, and it must not be too close to the primary signal. The latter restriction is to make
sure it is indeed a separate signal. See Figure 5.1.
ATLAS FSRA Document v4.0
Page 41
Figure 5.1. Secondary signal detection. The figure shows the software histogram. Primary signal was found in
software bin k; the left edge of this bin is at x(k) clock cycles after RWS. Δ is an input parameter defining the
exclusion zone around the primary peak. See text for an explanation of j, x(j), k, x(k), m, and x(m). The
width of one software bin is a multiple of 2 clock cycles and is surface-type dependent.
The software bin with the highest count is compared to the software bin with the second (and possibly
third) highest count. The result of the calculation below is the location of the secondary signal in the
software histogram.
"k" represents the index to the bin with the highest count in the overlapping
histogram,
"j" represents the index to the bin with the second highest count in the
overlapping histogram,
"m" represents the index to the bin with the third highest count in the
overlapping histogram
x(k) is the delay (in clock cycles) from the start of the Range Window to the
start of software bin k,
x(j) is the delay (in clock cycles) from the start of the Range Window to the
start of software bin j,
x(m) is the delay (in clock cycles) from the start of the Range Window to the
start of software bin m
x(k) = int[k/2] * swbinsize + mod(k,2)*swbinsize/2
x(j) = int[j/2] * swbinsize + mod(j,2)*swbinsize/2
x(m) = int[m/2] * swbinsize + mod(m,2)*swbinsize/2
where swbinsize is the software bin size in clock cycles (surface-type
ATLAS FSRA Document v4.0
Page 42
dependent, the software bin index starts at 0, and "N" is an Algorithm
Parameter specifying the exclusion zone about the primary signal location
(ST:Min_Secondary_SWbin_Separation, in # of software bins).
IF ( abs(x(k) - x(j)) =< N*swbinsize ) THEN
Discard histogram bin "j" and pick up histogram bin "m"
IF ( abs(x(k) - x(m)) =< N*swbinsize ) THEN
Discard histogram bin "m"; there is no secondary signal
ELSE
Use histogram bin "m" as the secondary signal location,
and exit these calculations
ENDIF
ELSE
Use histogram bin "j" as the secondary signal location, and exit these
calculations
ENDIF
If the TEP_NOT flag (Knobs:TEP_not_strong/weak) is set to TRUE, the Transmitter Echo Pulse (TEP)
region is excluded from signal processing. This is done by using the TEP Algorithm Parameters that
define the start and width of the TEP region in clock cycles (ST:TEPstart_strong/weak and
ST:TEPwidth_strong/weak). The start and end of the TEP region are rounded to a hardware bin
boundary. If any part of the software bin with the highest value falls in the TEP region, it is discarded.
If any part of the software bin with the next highest count also falls in the TEP region it should also be
discarded. If both are discarded, the third highest bin is checked. If any part of this software bin falls
within the TEP region it is also discarded. If all three highest software bins are within the TEP region
this implies that the MF does not have signal.
If the highest software bin falls within the TEP region (and TEP_NOT is TRUE) and the software bin with
the second highest count does not fall in the TEP region, then the second highest count bin is used to
check for primary signal. If both the highest and second highest software bins fall within the TEP
region, but the third highest does not, then the third highest software bin is used to check for primary
signal. This is the only time that the third highest software bin is used by the Algorithms.
If the TEP_NOT flag is set to FALSE then the TEP region is treated no differently than any other region
in the Range Window.
HW
SW
0
1
2
3
4
0
SW
5
6
7
8
2
1
9
10
11
12
4
3
13
14
15
6
5
Figure 5.2: Alignment of 3m hardware bins with 12m software bins.
ATLAS FSRA Document v4.0
Page 43
Calculate the number of software bins (nswbin) for the histogram as follows, using integers for all
numbers and performing all calculations using integer arithmetic:
1. Count the number of full bins in the overlapping histogram
2. Determine the bin with the highest count, and determine its parity:
a. If the parity is odd, the result is one-half the number of bins in the overlapping
histogram
b. If the parity is even there are two additional cases:
i. When the number of bins in the overlapping histogram is even the result is onehalf the number of bins in that histogram
ii. When the number of bins in the overlapping histogram is odd, the result is one
more than half the number of bins in that histogram.
The software calculates a threshold for the selected histogram signal processing from the total event
count in the hardware histogram (minus the signal count):
The noise is first calculated (in floating point) from:
𝐵noise =
where:
𝐶hist − 𝐶maxbin
𝑁
( hwbins − 1)
𝑁hw2sw
Chist is the total event count in the 3m hardware histogram,
Cmaxbin is the event count in the software histogram bin with the maximum count
(after any TEP_NOT rejections),
Nhwbins is the number of hardware bins in the histogram,
Nhw2sw is the number of hardware bins per software (coarsened) bin,
Bnoise is then the average noise per software bin.
As an example, see Figure 5.2. Take the total event count in the hardware histogram to be 100. There
are 16 hardware bins in this example and 7 software bins with the number of hardware bins per
software bins equal to 4. Assuming software bin #3 has the maximum count which is 50. Then the
equation above gives:
Bnoise = (100 - 50)/((16/4) – 1) = 50/3 = 16.7.
If there had been 18 hardware histogram bins there would have been 8 software histogram bins,
assuming the same number of hardware bins per software bin. Using the same number of total events
in the hardware histogram as in the example above and the same number of events in bin #3,
Bnoise = (100 - 50)/((18/4) – 1) = 50/3.5 = 14.3.
ATLAS FSRA Document v4.0
Page 44
Note that this calculation is performed in floating point and not as integer arithmetic.
The multiplier of the standard deviation is then determined. We want the prob(FA) <= pfa_fixed
(nominally 0.1 or 10% probability of false alarm) for the entire selected histogram. A table lookup,
using the number of software bins in the selected histogram (nswbin) to index into the
sigma_multiplier table, is used to get a value called σscale. Search for the number of bins in the 2nd
column of the table that is equal to “nswbin.” If there is none equal to “nswbin” then use the next
entry greater than “nswbin.” Pick the σscale corresponding to this (see Appendix D for an explanation
of how σscale is calculated).
There is a separate table of σscale for each of the four surface types. The value of σscale is limited to a
minimum of 2.0 and a maximum of 6.0 with steps of approximately 0.01.
The threshold (τ) is then calculated from:
𝜏 = 𝑐𝑒𝑖𝑙𝑖𝑛𝑔[𝐵noise + 𝜎scale · √𝐵noise]
where √𝐵noise is the standard deviation of Bnoise for a Poisson distribution. A minimum
value of the threshold (ST:Min_Counts_For_Signal_Strong/Weak) is set from the Algorithm
Parameters (with the nominal min = 10).
If there is at least one software bin with a count at or above the threshold, the Major Frame is marked
as having signal. The bin with the highest count above the threshold is called the primary bin and is
marked as the signal location.
If more than one bin has a count above the threshold that has survived the
Min_Secondary_SWbin_Separation test above and the TEP test, then the bin with the second highest
count is examined. This bin may have the same count as the primary bin, but is presented by the
hardware as the second bin. For two or more bins with the same count, the last or latest bin in the
histogram with this maximum count is chosen by the hardware as the primary.
A test is made on the secondary bin to ensure that it has a very high probability of being signal:
𝑁𝜎 =
𝑏𝑖𝑛(𝑘) − 𝐵𝑛𝑜𝑖𝑠𝑒
√𝐵𝑛𝑜𝑖𝑠𝑒
where:
bin(k) is the count in software histogram bin k,
Bnoise is noise in this software histogram as defined above.
ATLAS FSRA Document v4.0
Page 45
If Nσ > Nhigh (an Algorithm Parameter, nominally 5.0, ST:Sigma_For_Significance_Strong/Weak) then
this bin is assumed to also have signal and this becomes the secondary signal location.
The primary signal location is the bin that has the maximum count. A more accurate location is
calculated by picking up the hardware bins that correspond to the software (ie coarsened) signal bin
and one software bin on either side. A centroid calculation is then performed on these hardware bins
to come up with a signal location, sigloc, that is accurate to within +/- 20 ns. The value sigloc is carried
to the telemetry processing in clock cycles from the start of the Range Window.
sigloc =
∑2𝑛−1
𝑘=−𝑛[(𝑖+𝑘 )∙(𝛥𝑏𝑖𝑛(𝑖+𝑘 )]
∑2𝑛−1
𝑘=−𝑛(𝛥𝑏𝑖𝑛(𝑖+𝑘 ))
+ 0.5
where:
n = number of 3m hardware histogram bins in a software (coarsened) bin,
i = j∙n/2,
j = coarsened or software signal bin # (from either the even or odd histogram),
bin(k) = count in hardware bin #k
Δbin(k) = max( 0, ( bin(k) – (Bnoise/ Nhw2sw ) ) )
Histogram bins start counting from 0
Using Figure 5.2 as an example, and assuming that we are using the odd histogram with software bin
#3 having the maximum count, then n=4, j=3, i=3·2=6, and the summations go from (i+k)=2 to (i+k)=13.
The exception to which hardware bins go into the centroid calculation, is when the software signal bin
is either the first or the last bin in the histogram. In this case the centroid calculation is performed
using only those hardware bins corresponding to the software signal bin itself.
For any secondary bin that passes the Nhigh test given above, a more accurate signal location is also
calculated using the centroid method given above. This information is then also carried to the
telemetry processing.
ATLAS FSRA Document v4.0
Page 46
5.4 Super Frame calculations (performed in FSW)
A Super Frame (SF) consists of 5 consecutive Major Frames (MFs). The Super Frame is used to
determine the signal location in those Major Frames that have not been initially identified as
containing signal, and is used to extend the downlink band in those Major Frames where the signal
location lies outside of the region with the rest of the Super Frame’s signals.
C O U N TS
signal bin
threshold
hist bin
(12 m to 48 m)
RANGE WINDOW
FRAME #1
FRAME #2
FRAME #3
FRAME #4
FRAME #5
0.5 to 6 km width
Figure 5.3: Major Frame Software Histogram
Figure 5.4: Super Frame Histograms with Subwindow.
(Green bins are signal. Red bin is false alarm).
Every time a Major Frame signal detection process is completed, the MF is added to the current Super
Frame and the earliest Major Frame is dropped from the Super Frame.
The Super Frame is considered to have signal if at least Nsf (ST:Nsf_Strong/Weak, nominally 3) of the 5
Major Frames have signal and these signal bins all lie within the subwindow. Nsf must be greater than
one and less than or equal to five.
The subwindow width is calculated from the DRM-700 relief. The DRM-700 relief corresponding to the
middle Major Frame (frame #3 of 5) is selected and converted to clock cycles. The relief is scaled based
upon values selected from a table dependent upon surface type (ST:DRM_Scaling_Strong/Weak), and
then padded (ST:Padding_700_Strong/Weak). The scaling and padding apply additional width to
compensate for uncertainties in the relief and in the physical location of the signal. The padding is
selected from a table and is a function of both the relief and surface type. The resulting subwindow is
checked against a min and max limit (ST:subwindow_min_strong/weak and
ST:subwindow_max_strong/weak) before being used. These min/max limits are surface-type
dependent parameters and are distinct from those parameters used to limit the telemetry bands.
Note that the start of the subwindow can be negative with respect to MF #3’s Range Window start.
ATLAS FSRA Document v4.0
Page 47
Examples of scaling and padding parameter tables with latest set of values as of v6 of the Algorithm
Parameter files (Appendix F):
Surface Type
Ocean
Land
Sea Ice
Land Ice
Scale
1x
2x
1x
2x
--------------------- Padding ------------------------Relief(R)
Ocean
Land
Sea Ice
Land Ice
R=< 189m
+/- 15 m
+/- 24 m +/- 15 m +/- 24 m
189m < R =< 567m +/- 15 m
+/- 140 m +/- 140 m +/- 140 m
567m < R =<1323m +/- 15 m
+/- 210 m +/- 210 m +/- 210 m
1323m < R
+/- 15 m +/- 510 m +/- 510 m +/- 510 m
The calculations required to determine if the Super Frame has signal are given below in steps 1 through
8. All of the calculations are assumed to be in clock cycles. Nsf is the number of MFs needed to
contain signal in order to declare that the SF has signal. If the number of MFs in the SF with signal is
less than Nsf, it is assumed that the SF has no signal and calculations 1-8 are skipped.
1- The offsets between the start of each of the 5 Range Windows in this SF must be determined. Find the minimum
value of the Range Window Start (Jrw) from the five major frames and call this Jrw0. For each MF, calculate the
offset between the start of the Range Window and Jrw0: Jrw_offset(i)=Jrw(i)-Jrw0.
Example (all numbers in clock cycles):
Jrw = 337666, 337666, 337666, 337666, 337664
Jrw0 = 337664
Jrw_offset = 2, 2, 2, 2, 0
2- Put the signal location for all of the MFs with signal into an array, along with the MF number (values of “i” from 1
to 5). Correct the signal locations calculated in step #1 above by adding the offsets:
SigLocCor(i)=SigLoc(i)+Jrw_offset(i).
Example:
SigLocCor = 195.8, 195.4, 191.8, 199.8, 199.4 (i=1,2,…5)
3- Sort the array from lowest SigLocCor(i) value to highest, where the lowest SigLocCor(i) value is assigned index
k=1. Keep the frame number (i=1 to 5) correctly associated with its SigLocCor(i) location during the sort.
Example:
SigLocCor_ordered = (3,191.8), (2,195.4), (1,195.8), (5,199.4), (4,199.8) (k=1,2,…5)
where the arrays are (i,sigloccor)
4- Compute the difference between the sorted corrected signal location values for k=Nsf and k=1. Call it Diff(1).
Example: Diff(1)=sigloccor(k=3) – sigloccor(k=1) = 195.8 – 191.8 = 4.0
ATLAS FSRA Document v4.0
Page 48
5- If there are more MFs in the sorted array, calculate the difference between the corrected signal location values at
k=Nsf+1 with k=2. Call it Diff(2).
Example: Diff(2) = sigloccor(k=4) – sigloccor(k=2) = 199.4 – 195.4 = 4.0
6- If there are more MFs in the sorted array, then calculate the difference between the signal location k=Nsf+2 with
k=3. Call it Diff(3).
Example: Diff(3) = sigloccor(k=5) – sigloccor(k=3) = 199.8 – 195.8 = 4.0
7- Continue until you have reached the end of the sorted array.
Example: we have reached the end.
8- Pick Q such that Diff(Q) = min(Diff(k)) over all “k”. If this difference is less than the subwindow width, then the
SF has signal. If Diff(k) = min(Diff(k)) for more than one value of k, select the lowest value of k to use.
Example: Diff(1)=Diff(2)=Diff(3) Q = 1. If Diff(1) < subwindow_width, then SF has signal.
If the SF is determined to have signal in step #8 above, the location of the subwindow is then
determined by centering the subwindow about the midpoint of the two signal locations corresponding
to the Major Frames that went into the calculation of Diff(Q). If the subwindow start is negative with
respect to the minimum Range Window start, then the subwindow start is chopped at the start of the
minimum Range Window. (Note that to do the comparison of the subwindow start with the Range
Window, the start of the subwindow must be temporarily adjusted by the corresponding PCE delay
before the comparison is made because the subwindow is in histogram space but the Range Window is
not). Similarly if the subwindow end is beyond the end of the maximum Range Window end it is
chopped to end at the end of the maximum Range Window end. (And similar to the adjustment to the
subwindow start, the subwindow end must be temporarily adjusted by the corresponding PCE delay
before comparing to the maximum Range Window end).
If signal is found in the current MF (MF #3), the location of this signal is the primary (and possibly
secondary) signal location. If primary signal is found in the SF and either (a) the MF does not have
signal or (b) the MF primary signal location is outside the SF subwindow, then SF signal location is
determined using data for the two Major Frames that are closest to MF #3 and have signal that is
located within the subwindow. If possible, MFs with signal on either side of MF #3 are used. The signal
location of the current frame is then a weighted linear interpolation from these two chosen MFs with
signal.
The specific method for determining the signal location for a MF with no signal in the subwindow is
given in steps 1-7 below. Note that in all of these calculations the SigLocCor values are used.
1- If there is signal within the subwindow in frames 2 and 4 average their signal locations:
SigLocCor(3)=[SigLocCor(2)+SigLocCor(4)]/2.
2- Otherwise, if there is signal within the subwindow in frames 1 and 4 take the weighted average:
SigLocCor(3)=SigLocCor(1)/3 + 2*SigLocCor(4)/3.
3- Otherwise, if there is signal within the subwindow in frames 2 and 5 take the weighted average:
ATLAS FSRA Document v4.0
Page 49
SigLocCor(3)=2*SigLocCor(2)/3 + SigLocCor(5)/3.
4- For Nsf=2, if there are only 2 MFs with signal within the subwindow, both on the same side of MF #3,
then calculate:
SigLocCor(3)=2*SigLocCor(4)/3 + SigLocCor(5)/3, or
SigLocCor(3)=SigLocCor(1)/3 + 2*SigLocCor(2)/3.
5- For Nsf=2, if there is signal in frames 1 and 5 ONLY, then average their signal locations:
SigLocCor(3)=[SigLocCor(1)+SigLocCor(5)]/2.
6- Remove the offset from the calculated signal location: SigLoc(3) = SigLoc(3) – Jrw_offset(3).
7- Verify that the calculated signal location, SigLoc(3), falls within the Range Window for MF#3. If it does
not then discard it. If it does then send it on to the telemetry processing.
For MFs which either do not have signal, or whose signal lies outside the SF subwindow, the calculated
SF signal location becomes the tertiary signal location for this MF and it is carried to the telemetry
processing along with the primary and possibly secondary signal location information. A Super Frame
signal can exist even if there is no tertiary signal location. This can occur if the signal location as
calculated above lies outside the Range Window for MF#3.
ATLAS FSRA Document v4.0
Page 50
6.0 Atmospheric Processing
6.1 Atmospheric histogram calculations in hardware
The hardware calculates two atmospheric histograms per track: one from the strong spot data and
one from the weak spot data. The histogram data is collected over a 200 shot interval (the same as for
the altimetric histogram) but using a bin size of ~30 meters. The vertical span of the histogram is 93.4
μs (~ 14 km). The nominal offset of the window from the minimum DEM height is zero.
At the end of the 200 shot interval, the atmospheric histograms are given to the Flight Software.
6.2 Atmospheric histogram calculations in software
The Flight Software directs the hardware to add the histograms from two consecutive Major Frames to
generate a 400 shot histogram. The calculation is done every 200 shots, for both the strong and the
weak spots. Both the strong and weak spot histograms are used by the Flight Software to determine
the cloud thickness. Although a 400 shot histogram is calculated at every major frame, only every
other atmospheric histogram from the strong spot is downlinked. The weak spot histograms are
discarded after use.
If the start of the atmospheric histogram (Mrw) changes from one major frame (200 shots) to the next,
one of the 200 shot histograms must be shifted before it can be added to the other. Changes to the
histogram start are always done in 200 ns (~30 m) increments so that the histogram bins can always be
aligned. The atmospheric histogram with bins closest to the surface is retained, while the bins highest
in the atmosphere, that do not overlap between histograms, are discarded.
For example, if the first 200 shot atmospheric histogram has a range delay (Mrw1) of 3.0 milliseconds
and the second 200 shot atmospheric histogram has a range delay (Mrw2) of 3.0004 milliseconds, the
first 2 bins of histogram #1 are dropped. Bins from histogram #1 are added to bins from histogram #2
in the following way:
hist_combined(k) = hist1(k+2) + hist2(k)
The resulting histogram is 93.4 μs in length. The bottom (last) two bins of the resulting histogram only
contain information from histogram #2. The offset between the start of the two atmospheric
histograms is sent down in the telemetry.
6.3 Calculations to determine if clouds are too thick to get surface returns.
If the clouds are too thick, surface returns are very unlikely. An algorithm (the Palm Algorithm) to
determine if the clouds are too thick was generated by Steve Palm. This algorithm uses the 400 shot
atmospheric histogram. The calculation is performed separately for the weak and strong spots. This
ATLAS FSRA Document v4.0
Page 51
algorithm performs best during Day, so it will only be used when the noise rate is greater than some
minimum value, which is an Algorithm Parameter (Knobs:Day_Night_Threshold_Strong/Weak).
a- Compute the mean (μ) and the standard deviation (σ) of the atmospheric histogram:
i-
Sum all of the histogram bins, excluding certain bins, depending upon CXbin (the
Algorithm Parameter ST:Cloud_Bins_Exclude_Strong/Weak). If CXbin = 0, exclude
the bin with the maximum count from this sum. If CXbin = M > 0, then exclude from
this sum the bin with the maximum count and M bins on either side of that
maximum bin. If CXbin < 0, then do not exclude any bins from this sum.
If the bin with the maximum count lies too close to the ends of the histogram (either
the start or the end) then some of the bins that would have normally gotten
excluded fall outside the histogram. In this case only use those histogram bins that
fall within the histogram. There is no other adjustment that needs to be made. So
for example, if CXbin=2 (where bin #1 is the first histogram bin), and the bin with the
maximum count is bin #2 of the histogram, then exclude bins 1 through 4 of the
atmospheric histogram.
iiiii-
Divide this sum by the number of histogram bins (N) used. This is the mean (μ).
Compute the standard deviation (σ) as the square root of the mean.
b- Compute a cloud threshold T:
T=μ+F*σ
where F is an Algorithm parameter (ST:Cloud_Scale_Factor_Strong/Weak).
c- Request from the hardware the bin numbers with counts above this threshold. Sum up the
counts from all of these bins, excluding bins above bin number “LBin” (ST: LBin_Strong/Weak).
Excluding bins above LBin will exclude bins below ground. Call this sum S.
If there are two peaks in the atmospheric histogram with the same maximum count, then select
the bin that is closest to the ground (ie has the largest range) similar to what is done for the
altimetric histogram maximum bin selection.
d- If S > SC (the opaque cloud threshold, ST:Cloud_Threshold_Strong/Weak), the clouds are too
thick to determine the surface.
Based on simulations that use ICESat-1 data, the values chosen for the parameters used in the Palm
(Cloud) Algorithm eliminate about half of the cloud returns (about 20% of the total shots), and
eliminate < 0.8% of shots where there might be a chance of detecting the ground.
How the information from this calculation is used is explained in the Section 7.
ATLAS FSRA Document v4.0
Page 52
7.0 Selecting What to Telemeter
7.1 Choosing what gets telemetered
To allow for changes in the telemetry while on orbit, there are Rx Algorithms Knobs that provide the
capability to change the conditions under which data is downlinked. The flowchart given in Figure 7.1
describes the flow of the software decisions using these knobs (which are Algorithm Parameters). The
baseline telemetry decisions for the Rx Algorithms were developed in coordination with the Project
Scientists and are described here:
OCEAN: Telemeter STRONG spot (Day or Night) where Major Frame shows signal. No data is
downlinked for the WEAK spot under any condition, and none for the STRONG if the Major
Frame does not show signal.
LAND: Telemeter any data where the Major Frame shows signal (STRONG, WEAK, NIGHT,
DAY). If Major Frame does not show signal, but the Super Frame shows signal then telemeter
data (STRONG, WEAK, NIGHT, DAY). If the Major Frame and Super Frame both do not show
signal, then:
- if STRONG DAY and the Palm Algorithm indicates thick clouds, then do NOT telemeter
data,
- if STRONG DAY and the Palm Algorithm does not indicate thick clouds, do telemeter
data,
- if STRONG NIGHT, do telemeter data,
- if WEAK DAY or NIGHT, do NOT telemeter.
SEA ICE and LAND ICE: Telemeter any data where the Major Frame or Super Frame shows signal
(STRONG, WEAK, NIGHT, DAY). If the Major Frame and Super Frame both do not show signal
(STRONG, WEAK), then:
- if Night, telemeter data.
- if Day and Palm algorithm indicates thick clouds, do NOT telemeter data.
- if Day and Palm algorithm does not indicate thick clouds, telemeter data.
In January 2014 the Project Scientists modified the above baseline slightly for the Land Ice surface
type. Now for the Land Ice Strong spot, the telemetry band is always sent down for both Day and
Night, and the Palm (Cloud) Algorithm is never called.
ATLAS FSRA Document v4.0
Page 53
Figure 7.1a: Rx Algorithms Knobs for telemetry flow. There are 8 separate flowcharts,
each corresponding to one of the four surface types and either a weak or strong spot.
ATLAS FSRA Document v4.0
Page 54
Figure 7.1b: Rx Algorithms Knobs for telemetry flow. This is the No Signal section of the flowchart. There are
8 separate flowcharts, each corresponding to one of the four surface types and either a weak or strong spot.
Note that this is a simplification of the actual No Signal part of the Rx Algorithm and doesn’t reflect what
happens when the surface type changes.
If the coastline relief flag (ST:Coastline_Relief_Flag_Strong/Weak) is TRUE, the coastline bit in the SRM is ON
and the latitude test passes [ie latitude >= +60 deg (ST:Coastline_Relief_North_Strong/Weak) or latitude =< 60 deg (ST:Coastline_Relief_South_Strong/Weak)], then the relief is calculated from the maximum of the
coastline relief parameter value (ST:coastline_relief_Strong/Weak) and the DRM-700 relief.
Note (*): if no previous signal, use DEM for telemetry band location. See Appendix J for a detailed flow of the
telemetry logic. If there are discrepancies between Appendix J and either this figure or the text in section 7.4,
the flowcharts in Appendix J take precedence.
ATLAS FSRA Document v4.0
Page 55
7.2 An alternate knobs table for calibration and special interest targets
There are two Knob parameter files resident on each PCE board computer at all times. Only one,
however, is in use at any given time. One of the files is in use for most of the orbit, while the other, the
alternate knobs, is strictly for calibration (ocean scans) and targets of opportunity (TOOs). The switch
between the two parameter files must be done by command during Science Mode.
7.3 Calculating the telemetry band for the primary signal location
The telemetry band width is normally calculated from the relief. Depending upon the Algorithm Knob
settings, the relief comes from the DRM-140, DRM-700, DEM or is set based on the coastline bit in the
selected SRM tile and the latitude. Under nominal Algorithm Knob settings, if the coastline relief flag
(ST:Coastline_Relief_Flag_Strong/Weak) is FALSE, and if the coastline bit is OFF (=0) or the coastline bit
is ON (=1) but the latitude test fails, then the DRM-140 is used for relief when signal is found in the
Major Frame, and the DRM-700 is used for relief when signal is found only in the Super Frame:
R(MF) = DRM-140-relief and R(SF) = DRM-700-relief
If the coastline relief flag (ST:Coastline_Relief_Flag_Strong/Weak) is TRUE, the coastline bit in the SRM
is ON and the latitude test passes [ie latitude >= +60 deg (ST:Coastline_Relief_North_Strong/Weak) or
latitude =< -60 deg (ST:Coastline_Relief_South_Strong/Weak)], then the relief is calculated from the
maximum of the coastline relief parameter value (ST:coastline_relief_Strong/Weak, nominally 200 m)
and the DRM-700 relief:
R = max(coastline-relief, DRM-700-relief).
This method of finding the max of the two reliefs is only used if the Algorithm Knob settings indicates
to use the DRM-140 or DRM-700 for relief. If the Algorithm Knob settings indicate to use the DEM,
then the Range Window width (Nrw) is used to set the relief, regardless of the coastline settings.
If the relief comes from the DRM or the coastline relief parameter, then the relief is first scaled. For
non-coastline areas the scaling (ST: DRM_Scaling_Strong/Weak) is based on the surface type. The
scaling comes from a table lookup (shown below). For coastline where the latitude test is true, the
scaling factor is a separate coastline parameter (ST:coastline_scaling_strong/weak), nominally 2x, and
it is not based on surface type. If the relief comes from the DEM, then no scaling is applied.
Margin (ST:Padding_140_Strong/Weak and ST:Padding_700_Strong/Weak) must be added to the relief
to compensate for the relief inaccuracy. For the DRM-140 and DRM-700, the padding is chosen from a
table based upon both the relief value and the surface type (same table as in Section 5.4). There are
separate tables for the DRM-140 and DRM-700. If the relief comes from the coastline relief parameter,
then the DRM-700 padding is used. Padding (margin) is doubled and then added to the scaled relief to
make the telemetry band width. This band width is converted to clock cycles and an upper limit is
imposed. If the band width is larger than the maximum band limit
(ST:Band_Hi_Limit_Strong_Strong/Weak), then an equal number of clock cycles is removed from both
ends of the band to ensure its width is at or under the maximum band limit.
ATLAS FSRA Document v4.0
Page 56
When using the DEM relief, the Range Window width is used (Nrw) and it is not be scaled or padded.
The tables and values listed here are Algorithm Parameters. Values given are representative only.
Relief Scaling:
Surface Type
Ocean
Land
Sea Ice
Land Ice
Scale
1x
2x
1x
2x
A Telemetry Band Offset Table (ST:Offset_140_Strong/Weak and ST:Offset_700_Strong/Weak)
contains offsets for draping the telemetry band over the signal. This table is based upon the surface
type and is given in clock cycles. An offset of zero implies that the center of the telemetry band is
placed over the signal location. A positive offset implies the center of the telemetry band is placed
further down in the histogram (longer ranges). Likewise, a negative offset implies the center of the
telemetry band is placed higher in the histogram (shorter ranges). There are separate Telemetry Band
Offset tables for the DRM-140 and the DRM-700.
If the relief comes from the coastline relief parameter, then the telemetry band offset is based on the
DRM-700 table. No offset is used if the relief comes from the DEM.
Telemetry Band Offset:
Surface Type
Ocean
Land
Sea Ice
Land Ice
Offset
0
0
0
0
The hardware histogram bins selected to be telemetered are calculated from:
TLM_bandwidth_hwbins = integer [TLM_bandwidth(clockcycles) / 2] + 1
TLM_start_hwbin = Signal_location_hwbin – integer[TLM_bandwith_hwbins/2]
+ TLM_band_offset
TLM_stop_hwbin = TLM_start_hwbin + TLM_bandwidth_hwbins – 1
7.4 What to do when neither the Major Frame nor the Super Frame have signal
If the Major Frame does not show signal and the Super Frame does not show signal then the last signal
location is used for a period of time (Knobs:Nosig_Timer1_Strong/Weak), assuming that the knobs are
set to still telemeter data, and assuming that the last signal location is within the current MF #3’s
Range Window. The value of the last signal location (relative to the fire and not relative to the start of
the Range Window) must be used, as the Range Window start may move. NoSig_Timer1 must be >=0
(this is state 1). Note that if both the primary and tertiary signals are present in the last MF, then the
ATLAS FSRA Document v4.0
Page 57
tertiary signal location is used as that is less likely to be a false alarm. If the last signal location is
outside of the current MF #3’s Range Window then the Algorithms switch immediately to state 2, and
use NoSig_Timer2. See the paragraph below on state 2. (Note that to do the comparison of the last
signal location with the Range Window, the signal location must be temporarily adjusted by the
corresponding PCE delay before the comparison is made because the signal is in histogram space, but
the Range Window is not).
While in no-signal state 1, the relief (R) is calculated as described in section 7.3, except that the base
for the relief (DRM-140, DRM-700 or DEM) is specified by the no-signal state 1 relief Algorithm
Parameter (Knobs:Nosig_Relief1_Strong/Weak).
Normally, a scaling factor is applied to the relief to calculate the telemetry band (see bullets below).
However, if the DEM is used for the telemetry band width, then the telemetry band width is the Range
Window Width or the maximum allowed telemetry band width (ST:Band_Hi_Limit_Strong/Weak),
whichever is smaller, and the telemetry band is not scaled.
If the DEM is NOT used for the telemetry band width, the scaled relief is calculated as follows:
If the coastline relief flag (ST:Coastline_Relief_Flag_Strong/Weak) is TRUE, the coastline bit in
the SRM is ON and the latitude is poleward of the critical latitude
(ST:Coastline_Relief_North/South_Strong/Weak), then the scaling factor is the coastline scaling
Algorithm Parameter (ST:coastline_scaling_strong/weak). The scaled relief (RS) is then given
by:
RS(strong) = coastline_scaling_strong · R or RS(weak) = coastline_scaling_weak · R,
where R is the relief calculated in section 7.3.
Otherwise, the scaling factor is the no signal scaling Algorithm Parameter
(Knobs:Nosig_Scale1_Strong/Weak). The scaled relief (RS) is then given by:
RS(strong) = Nosig_Scale1_Strong · R or RS(weak) = Nosig_Scale1_Weak · R,
where R is the relief calculated in section 7.3.
If the DEM (Nrw) is used for the relief, then no padding is performed. Otherwise, padding is based on
what is used to calculate the relief and the relief value itself. The padding
(ST:Padding_140_Strong/Weak and ST:Padding_700_Strong/Weak) is doubled and then added to the
scaled relief. If the relief comes from the coastline relief parameter, then the DRM-700 padding is
used.
In the case where the Range Window changes so all or part of the telemetry band lies outside the new
Range Window, the telemetry band is shifted the minimum amount required to put it entirely in the
Range Window.
If there has been no signal found since the start of Science Mode, and the knob settings allow
telemetry to be sent for the no signal case, then the Rx Algorithms act as if the NoSig_Timer1 period of
time has ended and transition immediately into the actions described in the paragraph below. Note
ATLAS FSRA Document v4.0
Page 58
that when the Algorithms first start there is insufficient data to do a SF analysis until five MFs have
accumulated, so the first possible SF signal is in MF 3. If neither MF nor SF signal is found in this MF,
the Algorithms shift immediately to the timer2 state, regardless of other considerations.
After the NoSig_Timer1 period has expired (counted down to zero from a positive value) or if the
surface type changes while the NoSig_Timer1 is still positive or if the old signal location falls outside of
the Range Window, and if signal has still not been found, the Algorithms transition to the
NoSig_Timer2 (Knobs:Nosig_Timer2_Strong/Weak) case (state 2), where the Range Window start and
width is used to determine the signal location. The signal location is calculated from:
sigloc = Jrw + scale • (Nrw).
Nominally “scale” (Knobs:NoSig_DEM_fraction_Strong/Weak) is 0.5 which results in using the midpoint
of the DEM as the signal location. The relief (R) is calculated as described in section 7.3, except that
the base for the relief (DRM-700 or DEM) is specified by the no-signal state 2 relief Algorithm
Parameter (Knobs:Nosig_Relief2_Strong/Weak). The DRM-140 relief is NOT an option for the nosignal state 2 relief.
Similar to the no-signal state1, a scaling factor is applied to the relief to calculate the telemetry band
unless the DEM is used for the telemetry band width. When the DEM is selected the telemetry band
width is the Range Window Width or the maximum allowed telemetry band width
(ST:Band_Hi_Limit_Strong/Weak), whichever is smaller, and the telemetry band is not scaled. Unlike
the no-signal state 1, the no-signal state 2 scaling Algorithm Parameter
(Knobs:Nosig_Scale2_Strong/Weak ) is the only scaling factor used to calculate the scaled relief, even
when the coastline relief is used.
RS(strong) = Nosig_Scale2_Strong · R or RS(weak) = Nosig_Scale2_Weak · R,
where R is the relief calculated in section 7.3.
If the DEM (Nrw) is used for the relief, then no padding is performed. If the DRM-700 or the coastline
relief is used, then the DRM-700 padding (ST:Padding_700_Strong/Weak) is doubled and added to the
scaled relief.
Again, if the NoSig_Relief2 parameter indicates that the DEM is used for relief (which is the nominal
case) then there is no scaling and no padding.
Because the signal location (sigloc) for the NoSig_Timer2 case is calculated from an absolute position
relative to the start of the Range Window, and not from the altimetric histogram, its location must be
artificially modified by the PCE delay to put it in the same reference system as the altimetric histogram.
This will allow it to be correctly positioned when all of the telemetry band histogram bin information is
adjusted for the PCE delay (ST:RW_AltimHist_PCE_Delay_Strong) prior to being sent to the hardware.
sigloc = sigloc – RW_AltimHist_PCE_Delay_Strong
A similar calculation is done for the weak spot using its PCE delay (ST:RW_AltimHist_PCE_Delay_Weak).
ATLAS FSRA Document v4.0
Page 59
After the NoSig_Timer2 (Knobs:Nosig_Timer2_Strong/Weak) has expired with no signal having been
found, then no more telemetry is sent until signal is again found. At this point the system transitions
from state 2 to state 3. The exception to this rule is if NoSig_Timer2 is negative. The telemetry
continues to be sent, using the NoSig_Relief2 and NoSig_Scale2 parameters to select the relief and
scaling, until signal is found again.
The Telemetry Band Offset explained in section 7.3 above shall be applied for the NoSig_Timer1 case
but NOT for the NoSig_Timer2 case.
If the Algorithms are in a no-signal state (state 1, state 2, or state 3), they remain in a no-signal state
until signal is detected. The following applies whenever the surface type changes while in a no-signal
state:
If the instrument is in state 1 and the surface type changes, the Algorithms switch to
state 2 if N <= NT2 or NT2 < 0, or to state 3 if N > NT2 and NT2 >= 0.
If the instrument is in state 2 and the surface type changes, the Algorithms remain in
state 2 if N <= NT2 or NT2 < 0, or switch to state 3 immediately if N > NT2 and
NT2 >= 0.
If the instrument is in state 3 and the surface type changes, the Algorithms remain in
state 3 if N > NT2 and NT2 >= 0, or switch to state 2 if N <= NT2 or NT2 < 0.
where N = the number of contiguous MFs that the algorithm has been in a no-signal state, and NT2 =
NoSig_Timer2 for the new surface type.
The period of time and scaling parameters are dependent upon surface type and day/night and are
given in number of Major Frames. The scaling parameters must be greater than or equal to 1.
NoSig_Timer1 must be >= 0. NoSig_Timer2 can be any number >= -1. See the flowchart in Figure 7.1
for a graphical overview of this logic. See Appendix J for a detailed flow of the telemetry logic. If there
are discrepancies between Appendix J and either this text or Figure 7.1, the flowcharts in Appendix J
take precedence.
7.5 Transmitter Echo Pulse (TEP)
The transmitter echo pulse (TEP) is a received pulse from the laser transmitted pulse that travels
through part of the ATLAS system, never leaving the instrument. It is used to calibrate the instrument
and arrives approximately 30 nanoseconds after the laser fires. Signal from the TEP is measured by the
PCE hardware if it falls within a Range Window just like any received event. The expected return rate is
low enough so that the Rx Algorithms signal processing cannot see it. If the return rate gets high
enough for the Rx Algorithms to see, it will adversely interfere with the surface echo finding.
During Science Mode, if the TEP falls within the Range Window, the events in the TEP region are
telemetered to the ground, provided that either (a) the TEP flag (an Algorithm Parameter,
Knobs:TEPflag_strong/weak) is on and indicates it should be telemetered, or (b) the downlink
telemetry band #2 is not otherwise being used, or (c) the TEP telemetry band was combined with
ATLAS FSRA Document v4.0
Page 60
another telemetry band that is being downlinked. If either (a) or (b) is true, then the TEP is
telemetered even if the other Knobs Parameters indicate that no data should be sent. See section 7.8
for more detail on the priorities and how to select the data for the telemetry bands. Unless it is
combined with another signal region, the TEP is normally sent in the downlink telemetry band two.
Determining if the TEP is within the Range Window is described by the pseudo-code below. This code
sets the iTEP_flag to 1 if at least half of the TEP is in the Range Window:
TEPsigloc = TEPstart + 0.5*TEPwidth
Q1 = mod(Jrw, FireInterval)
Q2 = mod(Jrw+Nrw, FireInterval)
iTEP_flag=0
if(Q1.le.Q2) then
if(TEPsigloc.ge.Q1.and.TEPsigloc.le.Q2) iTEP_flag=1
else
if(TEPsigloc.ge.Q1.or.TEPsigloc.le.Q2) iTEP_flag=1
endif
where TEPstart and TEPwidth are Rx Algorithm Parameters (ST:TEPstart_strong/weak and
ST:TEPwidth_strong/weak), Jrw is the Range Window start as defined previously, and Nrw is the Range
Window width. FireInterval is 10000 hardware clock cycles and represents the interval between laser
fires.
If at least half of the TEP falls within the Range Window, then the following pseudo-code picks up the
start and the end of the telemetry band to send down.
if(iTEPflag.eq.1) then
TEP_TLMB_start = TEPstart - Q1
if(Q1.le.Q2) then
if(TEP_TLMB_start.lt.0) TEP_TLMB_start = 0 ! Assumes you start at index zero
else
if(TEP_TLMB_start.lt.0) TEP_TLMB_start = TEP_TLMB_start + FireInterval
if(TEP_TLMB_start.lt.0) TEP_TLMB_start=0
endif
TEP_TLMB_end = (TEPstart+TEPwidth) - Q1
if(TEP_TLMB_end.lt.0) TEP_TLMB_end = TEP_TLMB_end + FireInterval
if(TEP_TLMB_end.gt.Nrw) TEP_TLMB_end = Nrw
endif
Because the TEP is calculated from an absolute position relative to the start of the Range Window, and
not from the altimetric histogram, its location must be artificially modified by the PCE delay to put it in
the same reference system as the altimetric histogram. This will allow it to be correctly positioned
when all of the telemetry band histogram bin information is adjusted for the PCE delay
(ST:RW_AltimHist_PCE_Delay_Strong) prior to being sent to the hardware.
TEP_TLMB_start = TEP_TLMB_start – RW_AltimHist_PCE_Delay_Strong
TEP_TLMB_end = TEP_TLMB_end – RW_AltimHist_PCE_Delay_Strong
A similar calculation is done for the weak spot using its PCE delay (ST:RW_AltimHist_PCE_Delay_Weak).
ATLAS FSRA Document v4.0
Page 61
7.6 Determining if it is day or night
The background noise rate is calculated from the noise in the Range Window. The events in the
telemetry band are assumed to be signal and are eliminated from the calculations if possible. The
DRM-700 is first scaled and padded based on surface type and relief category. Call this width pTLMB.
The value of pTLMB is limited by the Algorithm Parameter for the telemetry band maximum
(ST:Band_Hi_Limit_Strong/Weak) and is slid so that it resides completely within the Range Window. If
pTLMB is greater than some fraction of the Range Window
(ST:background_bins_fraction_strong/weak), nominally 50% of the Range Window, then the noise is
calculated from the entire Range Window. This is also how the noise is calculated for the no signal
case. When there is signal in the Range Window but the entire Range Window information is used to
calculate the background, the calculation tends to be very inaccurate. Fortunately, this situation
occurs operationally < 10% of the time.
If pTLMB is less than 50% of the Range Window width and if signal has been found in the MF, then
pTLMB is used to eliminate any signal from the histogram. This band is centered about the primary MF
signal location. The calculated noise rate in Hz for the MF, Nrate, is then calculated from:
Nrate = (Ntotal – Ntlm) / [ 200 · (Nrw – pTLMB)∙clock_cycles_in_ns∙0.000000001 ]
where:
Ntotal is the total number of events in the MF hardware altimetric histogram,
Ntlm is the number of events in the preliminary telemetry band,
Nrw is the width of the Range Window in clock cycles (from section 4.13),
pTLMB is the width of the preliminary telemetry band calculated from the DRM-700,
in clock cycles,
clock_cycles_in_ns is the value of the clock cycles in ns (nominally 10).
If signal has not been found in the MF or pTLMB is too large, then all of the events in the histogram are
used to calculate the background noise rate:
Nrate = Ntotal / [ 200 · Nrw∙clock_cycles_in_ns·0.000000001 ]
This value is then compared against a surface-type dependent Algorithm Parameter. If
Nrate > Day_Night_Threshold (Knobs:Day_Night_Threshold_Strong/Weak) then it is Day. Otherwise it is
Night.
This calculation is based on the background rate and is used by the PCE to determine Day or Night. It is
independent of the calculation of the solar zenith angle performed in section 4 which is used only by
the SBC to determine day or night for the selection of the Range Window minimum and maximum
values.
ATLAS FSRA Document v4.0
Page 62
7.7 Calculating the telemetry band for the secondary and tertiary signal locations
If there is a secondary or tertiary signal, or if the TEP lies in the Range Window, the appropriate
telemetry band from section 7.3 (7.5 for the TEP) is draped over the signal location(s), and the band is
converted to clock cycles and limited by the telemetry maximum limit (as was done for the primary
signal telemetry band). The exception to this is that there is no DRM-140 knob option for the tertiary
signal telemetry band width (Knobs: DRMDEM_SFSig_Strong/Weak).
Overlapping or abutting telemetry bands are combined: the software picks the start and end of the
combination, and the combined signal retains the name of the higher-level portion (e.g., secondary
signal + tertiary signal will be called secondary). Once two bands are combined, the original bands are
ignored. The order in which telemetry bands are combined is:
Primary and secondary signal are combined to generate a new primary signal band
Primary and tertiary signal are combined to generate a new primary signal band
Primary and TEP are combined to generate a new primary signal band
Secondary and tertiary signal are combined to generate a new secondary signal band (unless
tertiary has priority, in which case the combined band is the new tertiary band)
Secondary and TEP are combined to generate a new secondary signal band (unless TEP has
priority in which case the combined band is the new TEP band)
Tertiary and TEP are combined to generate a new tertiary signal band (unless TEP has priority in
which case the combined band is the new TEP band)
The combining process is iterated until none of the remaining bands overlap or abut. The start and end
bin numbers of each of the final signal telemetry bands are sent to section 7.8. All telemetry bands
must be checked against the upper telemetry band limit (ST:Band_Hi_Limit_Strong/Weak ) prior to
combining. If the combined telemetry band is greater than the telemetry band limit, the bands are
kept separated and NOT combined. If the two bands overlap but are not combined, the overlapping
segment is removed from the second telemetry band. This chopping of overlapping bins does not take
place until all combining of bands has been completed. Once combined the telemetry bands are not
checked against any limit.
7.8 Telemetry priority and selecting what data to telemeter
Only two downlink telemetry bands can be sent by the hardware, but there can be up to four potential
data sets vying for these two slots: (a) primary, (b) secondary, (c) tertiary, and (d) TEP. The normal
priority is the order listed, with (a) being the highest priority and (d) being the lowest. There are two
flags, however, that can change the order of data going into downlink telemetry band #2 (note that
downlink telemetry band #1 always contains the primary signal if it exists). When the tertiary signal
flag (which is an Algorithm Parameter given for each spot, Knobs:tertiary_signal_flag_strong/weak) is
set (=1), this implies the tertiary signal has priority over the secondary signal for telemetry in downlink
band #2. When this flag is off, the secondary signal band has priority over the tertiary. When the TEP
flag (Knobs:TEPflag_strong/weak) is set (=1), this implies the TEP signal is sent in downlink telemetry
ATLAS FSRA Document v4.0
Page 63
band #2 when the TEP is within the Range Window, regardless of whether there is a secondary or
tertiary signal. If the TEP flag is off, the TEP region is still telemetered when there is no secondary or
tertiary signal.
A decision table for filling the two telemetry bands is shown below.
Table 7.1 Deciding what is telemetered in the two possible telemetry bands.
Case
0
1
2
3
4
5
6
7
8
MF
Pri
Sec
SF
exists
X
X
X
X
X
X
X
Pri in
subW
Ter
Ter
exists flag
X
X
X
X
X
X
X
X
X
X
Y
N
Y
N
N
X
X
X
X
0
1
Signal
loc(s)
See note
Pri
Pri + Sec
Pri
Pri + Ter
Pri + Sec
Pri + Sec
Pri + Ter
Ter
Here Pri = Primary, Sec = Secondary, and Ter = Tertiary.
Tertiary signal flag values (Knobs:tertiary_signal_flag_strong/weak):
0 - use secondary if it exists otherwise use tertiary
1 - use tertiary if it exists otherwise use secondary
TEP flag values (Knobs:TEPflag_strong/weak):
0 – the cases to telemeter TEP as downlink telemetry band #2 are #0, 1,3 and 8
1 – telemeter TEP in every case as downlink telemetry band #2 regardless of other flags
or band
If there is no signal but the TEP is in the Range Window, the TEP is sent down,
regardless of how any other flags are set.
Notes:
(1) When no signal is found, the rules pertaining to the last known signal location apply.
See section 7.4.
(2) In the table above case 1 is equivalent to case 3, and case 2 is equivalent to case 5.
7.9 Telling the hardware what to telemeter
If any downlink telemetry band extends beyond the histogram on either side, that downlink telemetry
band is slid to ensure that the full extent of the band is used and that the band remains inside the
histogram. For example, if there are “M” histogram bins and “N” bins in the downlink telemetry band,
ATLAS FSRA Document v4.0
Page 64
and the calculated location for the telemetry band goes from K to M+7, then the bins selected to be
telemetered are bins K-7 to M. Similarly, if the calculated location for the telemetry indicates bins -7 to
20, then the bins selected to be telemetered are bins 1 to 28. If the calculated downlink telemetry
band is larger than the histogram, then the bins sent to the hardware for telemetry are the entire
histogram, from 1 to M.
The starting bin of each downlink telemetry band and the number of contiguous bins following are
converted to clock cycles past the start of the Range Window. At this point they must be modified by
the PCE delay. For the strong spot, the starting and ending clock cycles for the telemetry must be
increased by RW_AltimHist_PCE_Delay_Strong, and similarly for the weak spot
(RW_AltimHist_PCE_Delay_Weak). See Figure 4.15.
Once the PCE delay correction has been made, any part of the telemetry band that falls outside of the
Range Window is discarded and not given to the hardware to send.
There are no modifications to the atmospheric histogram for the PCE delay.
Once the PCE delay conversions are made the Algorithms move on to checking if the fire time tags are
being telemetered for this PCE.
7.10 Checking if all laser fire time tags are telemetered
After the telemetry bands for both spots in a PCE have been generated, and if the AlwaysSendFires flag
is set to ON, then if it is determined that no telemetry bands are to be sent for this MF, then the
software shall send to the hardware a telemetry band of size 2 hardware bins with starting location 0
(i.e. start of the Range Window), and with a software channel mask where all of the channels are
disabled (turned off). This should cause the hardware to send all of the fire time tags in the telemetry
but none of the receive time tags.
Both the telemetry band size (2 hardware bins) and the starting bin of the telemetry band (bin # 0)
shall be global variables that are easy to modify with a software patch should the need arise. It is not
currently anticipated, however, that any change will need to be made to these variables.
A command to turn this procedure ON (which sets AlwaysSendFires ON) and one to turn it OFF (which
sets AlwaysSend Fires OFF) must be available so that procedure can be turned OFF should the data
volume impact be too great. The launch default is to have this procedure set to ON.
After performing the above to ensure all laser fire time tags are sent if AlwaysSendFires is ON, the
hardware histogram bins are then given to the hardware, which is responsible for telemetering the
corresponding time tags. As mentioned above, there may be up to two separate downlink telemetry
bands per spot per Major Frame. Each can be up to 1.5 km in width (ST:Band_Hi_Limit_Strong/Weak,
based upon hardware limitations).
ATLAS FSRA Document v4.0
Page 65
8.0 On-orbit Operations and Algorithms Knobs
Because there exists the possibility that the amount of science data selected by the Rx Algorithms is
larger than the physical capability of the downlink, the Flight Software will have various “Knobs” that
can be used to dial down (or up) the telemetry volume.
8.1 Descriptions of knobs and relevant parameters
Except where noted, knobs come in sixteen flavors: one day and one night for each of the four surface
types and for the Strong and the Weak spots. Parameters may have less flexibility. Most Algorithm
parameters are set to maximize the chance that the downlinked data will include the returned signal
photons. These parameters should not be used for adjusting data volume and are not included in this
section. Figures 7.1 a and b show the decision flow through the knobs. The knobs are described in
Table 8.1.
Knob
Tm_*
Tm_NoMFSig_*
Tm_NoSFSig_*
Cloud_Alg_*
Tm_NoSig_*
DRMDEM_MFSig_*
DRMDEM_SFSig_*
SWChDisable_*
No-signal knobs
Table 8.1. Knob descriptions
Description
0: Do not telemetry data under any conditions.
1: Telemeter data if signal found in MF. Otherwise, check the
TM_NoMFSig_* knob.
0: Do not telemeter data if signal was not found in the MF.
1: Look for signal in the SF.
0: Do not telemeter data if signal was not found in either the MF or the SF.
1: Check the Cloud_Alg_* knob.
0: Do not run the cloud algorithm. Check the Tm_NoSig_* knob.
1: Run the cloud algorithm. Telemeter data unless the cloud algorithm
determines that clouds are too thick for a ground return to be seen.
This knob is checked if signal was not found in either the MF or the SF and
the Cloud_Alg_* knob says the cloud algorithm should not be run.
0: Do not telemeter data.
1: Telemeter data based on the NoSig_* parameters.
Specifies the source for determining the telemetry band relief when signal is
found in the MF.
0: Use DRM140.
1: Use DRM700.
2: Use the Range Window.
Specifies the source for determining the telemetry band relief when signal is
found in the SF.
1: Use DRM700.
2: Use the Range Window.
Bit mask specifying which channels are to be used for each spot.
There are three different knobs for each of the two states.
ATLAS FSRA Document v4.0
Page 66
Knob
Nosig_Timer1_*
Nosig_Relief1_*
Nosig_Scale1_*
Nosig_Timer2_*
Nosig_Relief2_*
Nosig_Scale2_*
NoSig_DEM_fraction_*
TEP_Not_*
TEPflag_*
Tertiary_Signal_Flag_*
Description
The instrument remains in timer1 state for this number of consecutive MFs
with no signal. It then switches to timer2 state.
Specifies the source for determining the telemetry band relief when in
timer1 state.
0: Use DRM140.
1: Use DRM700.
2: Use the Range Window.
Scaling factor to be applied to the relief when in timer1 state.
The instrument remains in timer2 state until signal is not found for this
number of consecutive MFs. It then stops telemetering data until signal is
found. If Nosig_Timer2_* < 0, the instrument remains in timer2 state until
signal is found.
Specifies the source for determining the telemetry band relief when in
timer2 state.
1: Use DRM700.
2: Use the Range Window.
Scaling factor to be applied to the relief when in timer2 state.
Factor used to compute the center of the telemetry band in the timer2 state.
This knob specifies whether the region around the TEP location is to be
excluded when determining if signal is present.
0: Include the TEP region when determining if signal is present.
1: Exclude the TEP region when determining if signal is present.
This knob specifies the TEP signal priority relative to the secondary or
tertiary signal.
0: TEP does not have priority.
1: TEP has priority.
This knob specifies the relative priority of the secondary and tertiary signal.
0: Secondary has priority over tertiary.
1: Tertiary has priority over secondary.
ATLAS FSRA Document v4.0
Page 67
8.2. Impact of Knobs and Algorithm Parameters on data
Knob
Table 8.2. Impact of algorithm “knobs” and parameters
Impact on science
Impact on data volume
TM flag
MF, SF, Cloud
alg, and No
signal flags
Obvious
If a flag is set so data are not
transmitted, there is no chance of
finding signal on the ground.
Obvious
Depending on why the onboard Algorithms failed to find
signal, the impact on data volume could be relatively small
or quite large (e.g., very noisy data).
Telemetry band
limits (TBL)
If the maximum TBL is decreased, the
probability that the downlinking data
contains the signal is decreased.
However, if the Algorithms are
working correctly, the returned signal
will be near the center of the
downlinked band, and such adjustment
would only impact the science in
extremely rough regions, or if the TBL
is decreased significantly.
This will increase the probability that
the downlinking data contains the
signal.
The volume of the downlinked data changes approximately
linearly with the downlink band.
If the discriminator is raised, a larger
fraction of the orbit is treated as night,
allowing more data to be sent down
and increasing the probability that the
downlinked data contain the signal.
The twilight period for the spacecraft (the period that can
be affected by the discriminator) typically lasts about 30
seconds, twice an orbit, with an upper limit of about six
minutes. Shifting the discriminator so the entire period is
defined as Day could increase the time it takes for the
onboard algorithm to process data because it turns on the
cloud filter algorithm.
Extra padding increases the probability
that the downlinked data contain the
signal. This is probably more important
when signal is not found in the MF.
If the algorithm is working properly,
this will probably have little impact on
science. Initial tests indicate < 0.8% of
high optical depth spots will have
detectable ground signal with the
default values of N and S.
Data volume increases approximately linearly with
padding.
Use DEM rather
than DRM-700
or DRM-140
or
Use DRM-700
rather than
DRM-140
Day/Night Bkg
Rate
Discriminator
DRM-140 and
DRM-700
padding
Use Cloud filter
algorithm, adjust
algorithm
parameters
Disable channels
Disabling channels will weaken the
signal and reduce the chance of
separating signal from noise, but it may
allow data from a larger elevation band
to be used for downlink, by reducing
the total number of photons. Because
ATLAS FSRA Document v4.0
In most parts of the world, the DEM range is substantially
larger than the DRM-700 range. This would have a
significant impact on the instantaneous data rate. If used
for a substantial period of time, it could increase the data
volume beyond the limit.
Turning the cloud filter algorithm OFF could increase data
volume by 20% with the current values of the filter
parameters. If these are changed, the change in data
volume will also change. Increasing the parameters F or Sc
will reduce the data volume, but these parameters should
be set to improve the algorithm results, not to adjust the
data volume.
The data volume varies linearly with the total number of
channels that are enabled in either hardware or software.
The number of photons detected by the weak and strong
channels should be approximately the same given the
balance between beam strength and number of channels
per spot.
Page 68
Knob
Impact on science
Impact on data volume
each strong beam is split into 16
channels, while the weak beams are
split into 4 channels each, disabling
channels from the strong beam will
have less of an impact on most science
as long as the signal is sufficiently
strong. If the signal is too weak to be
detected by the weak beam, then
disabling weak beam channels will
impact the science less.
DRM scaling
Increasing the DRM band increases the
probability of including the signal in
the downlinked data.
Increasing the DRM band increases the data volume
approximately linearly.
If the data volume is lower than expected, what changes will have the greatest potential positive impact on the
science?
Use the DEM rather than DRM-700 for no signal case over the ice sheets and sea ice, then over land areas.
Use DEM-700 rather than DRM-140 when signal is detected in the MF.
Increase the padding around the downlink band especially in high relief areas (use DRM700 rather than DRM140?)
Increase the DRM scaling.
Downlink weak spot for vegetated area even if no signal found.
Adjust the TLBs to increase the maximum downlink band. This could improve the chance of capturing ground
signal in rough areas or areas where the topography is poorly known.
If the data volume is higher than expected, what changes will cause the least loss of science data?
Reduce the number of channels sent down for the shot.
Do not send down the weak spots over land
Always use DRM-140 over land even if the signal was lost.
Decrease the DRM scaling
Do not send down land data unless signal was found
Use DRM-700, not DEM, for no signal case over ice sheets (this is currently the default)
Adjust the TLBs to decrease the maximum downlink band. This could reduce the chance of capturing ground signal
in rough areas or areas where the topography is poorly known.
Send down only calibration data over the oceans.
ATLAS FSRA Document v4.0
Page 69
9.0 Error Reponses
Spacecraft data drops out
The Algorithms are able to extrapolate accurately for about 3 seconds. The accuracy of this extrapolation will
degrade and after 3 seconds of no spacecraft data (no position and/or no pointing) the telemetry will stop.
This problem is not under control of the Receiver Algorithm. Ground system and/or Spacecraft personnel should
determine the cause of the error and get the spacecraft data flowing back to ATLAS. If this is not possible, then
timed commands to set the Range Window over those areas of the Earth that are most important should be
given to the spacecraft to command ATLAS for fixed Range Window starts and widths.
No spacecraft data
If no spacecraft data is ever received the Algorithms will not work. No science data can be collected.
This problem is not under control of the Receiver Algorithm. See the action suggested above.
Bad spacecraft data
Spacecraft data that causes the denominator in the conversion calculations to be zero is considered bad
spacecraft data for the Rx Algorithms even though it will happen as it represents the spacecraft pointing the
instrument away from the Earth. This situation should be monitored by the FSW and treated as if there were no
spacecraft data.
This problem is not under control of the Receiver Algorithm. Spacecraft personnel need to figure out why this is
happening and fix it if not expected. If this isn’t possible, see the response to “spacecraft data drops out”.
Loss of laser fire
With no laser fires no science data can be collected.
This problem is not under control of the Receiver Algorithm. ATLAS laser subsystem working with ground system
personnel need to determine how to get the laser working or switch to the alternate laser. There is no other fix
for this.
Laser fire rate different than 10 kHz
Small differences from 10 kHz will never be noticed by the onboard Algorithms. Larger laser fire rate errors will
cause errors in the Algorithms calculations, as the design is based on 200 shots occurring in 0.02 seconds. There
is no onboard response for this. This will require ground intervention to change parameters.
The Rx Algorithm team personnel should be contacted and made aware of any situation where the laser fire rate
differs from 10 kHz by more than 100 Hz. It may be possible to change some of the parameters to compensate,
ATLAS FSRA Document v4.0
Page 70
however, the best situation is if the laser can be forced somehow to fire closer to 10 kHz (and this may not be
possible once the instrument is on orbit).
Bad channel in the detector data
If it is determined from the ground that a channel in the detector is bad (either high noise or no noise), it will be
turned off from the ground. This will affect some of the Rx Algorithm calculations and some of the parameter
will need to be modified or knobs turned off.
Turning off the hardware channels will reduce the total signal and noise rates, but should not affect the signal to
noise ratio. It will impact the Palm cloud algorithm and the daylight decision parameter. It may be necessary to
change the cloud algorithm parameters by command from the ground; if too many channels go bad, it may not
be possible to use the algorithm at all to determine if thick clouds are present. If this situation occurs, then
ground intervention will be needed to prevent the Palm algorithm from being run. Details on changing the
knobs to handle this case will be explained in a document (Changing the Rx Algorithm Knobs while in Orbit) to be
produced by the Rx Algorithms team in the coming year.
One other parameter that may need to be changed is the minimum signal count. However, reducing this
parameter needs to be done with care as it can cause the TEP signal to start being picked up by the Rx
Algorithms as surface echoes.
Corrupt or bad onboard databases
Science data collection will be difficult with bad onboard databases. The appropriate response is to reload
database(s) from ground. If the problem is the DEM, it would be possible to fix the Range Window at a given
delay and at the maximum width. This would ensure that some science data would be collected. If the problem
is the SRM, it is possible to upload a fixed surface type parameter. If the problem is the DRM, then uploading a
fixed relief value for the DRM-140 and one for the DRM-700 would allow science data to continue being
collected, however, this could have an adverse effect on the daily data volume.
No histograms from the PCE hardware
No science data can be collected.
The cause of the error will have to be determined. If it cannot be fixed from the ground, then the ground will
have to send up timed commands with fixed telemetry band locations for the hardware to send down since no
signal processing can occur.
Extremely high noise rate
The Receiver Algorithms can handle noise rates greater than 12 MHz for short periods of time (under some
conditions) and still function properly. If the very high noise rate happens often then there will be loss of data
since this will cause the spacewire data rate limit to be exceeded and the Algorithms will automatically reduce
the telemetry bands to ensure the data that has the highest probability of being surface echoes gets
downlinked. If the high noise rate continues, the ground will need to intervene to turn off detector channels.
More directly, noise rates > 12 MHz will reduce the probability of finding signal, decrease Prob(ACQ) and
increase Prob(FA).
ATLAS FSRA Document v4.0
Page 71
Extremely low return signal levels
Low return signal levels can be handled by the Algorithms when the noise rate is low. As the noise rate
increases the return signal strength that can be found by the Algorithms is limited to higher and higher levels.
Continued low signal strength levels will probably require increasing the laser transmit energy from the ground.
If this isn’t possible, the Algorithms will still be able to find low signal level returns at night. Depending on the
severity of the problem, the Algorithms may or may not be able to detect signal through relatively thin clouds at
night. Depending on the severity of the problem, the ground may need to go to timed commands with fixed
telemetry band locations for the hardware to send down.
Off-pointing greater than 5 degrees
The Algorithms can successfully handle an off-nadir pointing angle up to 5 degrees. Testing beyond 5 degrees
has not yet occurred, however, there should be a graceful degradation in the ability of the Algorithms to
determine the laser spot location on the Earth surface and to calculate the range to the surface. Prior to offpointing greater than 5 degrees, some Algorithm parameters may need to be changed to optimize the science
data collection.
If off-nadir angles greater than 5 degrees are required, contact the Rx Algorithms team for a review and possible
update of the parameters. Please do this with sufficient time for the Rx Algorithms team to analyze the
situation.
Higher data volume than expected
If the data volume is higher than expected, especially if it is higher than the daily downlink can handle, there are
a number of “knobs” that can be “turned” to decrease the data volume (see section 8). Care must be taken in
determine which knobs to use and how the knobs are combined, as many knobs cause science data collection to
be reduced.
The Rx Algorithms team will produce a document (Receiver Algorithms User’s Guide) that will indicate what
knobs to change for this case and several other potential cases.
ATLAS FSRA Document v4.0
Page 72
Appendix A: DEM (Digital Elevation Model)
The development of the DEM was completed by Lori Magruder and Holly Wallis from the University of
Texas, Center for Space Research.
The DEM consists of a 3 tiered set of information. Each tier consists of a minimum height data set and a
maximum height data set. The upper tier consists of a 1 deg x 1 deg resolution grid of tiles referenced
by the latitude and longitude of the south-west corner.
For any tile in this grid whose maximum minus minimum height difference is greater than 5.5 km, a
middle tier of 4x4=16 tiles, each 0.25 x 0.25 deg, will be generated. For any tile in this middle tier that
has a max minus min height difference greater than 5.5 km, a lower tier of 5x5=25 tiles, each 0.05 x
0.05 deg, will be generated. If the height differences in any of the lower tier tiles are greater than 5.5
km, the information will be left unchanged and appropriate actions will be taken in the onboard software
to deal with this situation.
The reference system used in the generation of the DEM must match that used in the generation of the
onboard Range Window.
The accuracy of the minimum and maximum heights is currently expected to be less than 100 meters (3
sigma) and in most cases much less than that. We are carrying +/- 150 meters as the error budget for the
difference between DEM max minus min height.
To accommodate both the spacecraft ground track speed and the accuracy with which the onboard
algorithm can compute the latitude/longitude of the laser spots, a 2 km overlap is required for every edge
of each tile in every tier.
For a more detailed description of the DEM see the DEM/DRM/SRM Documentation which is included
with the databases (ICESat-2-ALG-TN-0362) on the ICESat-2 Technical Data Management System
(TDMS): https://ipdtdms.gsfc.nasa.gov
ATLAS FSRA Document v4.0
Page 73
Appendix B: DRMs (Digital Relief Maps)
The development of the DRM was completed by Lori Magruder and Holly Wallis from the University of
Texas, Center for Space Research.
The DRM consists of two single tiered files with 0.25 x 0.25 deg tiles. The two DRMs are DRM-140
and DRM-700. The value in each DRM-140 tile represents the maximum difference in terrain height
over a horizontal distance of 140 meters, over the entire tile. This is the distance traveled by each laser
spot during a Major Frame (0.02 seconds). Similarly the value in each tile of the DRM-700 represents
the maximum difference in terrain height over a horizontal distance of 700 meters, over the entire tile.
The 700m distance represents the ground travel of each laser spot over 5 Major Frames (0.1 seconds).
The height differences calculated for the DRM include vegetation heights where vegetation is present
and manmade structures.
The DRM contains the calculated maximum height difference over the tile for the given horizontal
distance. This value will be a number >=0. If the calculated maximum height difference is zero, then
zero should be the value in the DRM for that tile. This value should not be limited to a minimum value.
This value must, however, be limited by the maximum value possible within the byte; this upper limit is
4347 m, larger than any expected real relief on a scale of 140 m or 700 m. When using the DRM, the
Flight Software will limit the minimum and maximum values of relief used based on terrain type,
background noise and other factors. So just as with the DEM, the DRM tile values must not be limited.
The accuracy of the DRM greatly affects the Telemetry Data Volume, as it impacts the padding that
must be added to the DRM relief to make the telemetry band. Current assessment of accuracies possible
are given in the DEM/DRM/SRM Statement of Work for UT/CSR.
The padding added by the FSW to the relief will be a combination of the DRM accuracy and the vertical
accuracy of the signal location. The latter is expected to be 3 meters. The FSW will limit the DRM to
no less than the minimum value after the padding has been applied. The minimum value will be a
function of the terrain type. The maximum value limit will also be imposed after padding, and will also
be a function of terrain type, but will also depend upon the background noise rate.
As with the DEM, a 2 km overlap is required for every edge of each tile in the DRMs.
For a more detailed description of the DEM see the DEM/DRM/SRM Documentation which is included
with the databases (ICESat-2-ALG-TN-0362) on the ICESat-2 Technical Data Management System
(TDMS): https://ipdtdms.gsfc.nasa.gov
ATLAS FSRA Document v4.0
Page 74
Appendix C: SRM (Surface Reference Mask)
The development of the SRM was completed by Tim Urban et al. from the University of Texas, Center
for Space Research.
The surface reference mask contains information on the surface type in tiles that are 0.25 x 0.25 deg.
There are four surface types similar to GLAS: ocean(0), land(1), sea ice(2), and ice sheet(3). In addition
there are six other bits of information for each tile: whether the tile has land with vegetation, whether
there is coastline present in the tile, and four spare bits for future use. The vegetation bit is currently
not used by the Receiver Algorithms. The use of the coastline bit is described in section 7.
The following is the order of priority of the surface types:
1- if any ice sheet is present,
2- else if sea ice present,
3- else if land present,
4- else ocean.
As with the DEM and DRMs, a 2 km overlap is required for each tile in the SRM.
For a more detailed description of the DEM see the DEM/DRM/SRM Documentation which is included
with the databases (ICESat-2-ALG-TN-0362) on the ICESat-2 Technical Data Management System
(TDMS): https://ipdtdms.gsfc.nasa.gov
ATLAS FSRA Document v4.0
Page 75
Appendix D: Theoretical Signal Processing
Probability Analysis
D.1 Probability Calculations
The requirement is for the Algorithms to correctly find a surface segment in 700 meter ground tracks
for most of the ATLAS Design Cases with a probability of >= 90% and a false alarm rate of =<10%.
For more information on the Design Cases see the ATLAS Instrument Predicted Performance document
on TDMS (ICESat-2-ATSYS-TN-0028).
The probability of correctly finding surface echoes in a Major Frame is called the Probability of
Acquisition or Prob(ACQ) and is given by the following.
The noise standard deviation (σ) and the threshold (X) are given by the following where R is
the expected noise photoelectrons (pes) after F fires:
𝜎 = √𝑅
𝑋 = 𝑅 + 3𝜎
The probability that one noise bin will have X or less photoelectrons is:
𝑃𝑋𝐿 = 𝑒 −𝑅 ∑𝑚
where m = 0,…,X
𝑅𝑚
𝑚!
The probability that the signal bin will have X or more photoelectrons after F fires is:
𝑅𝑠 = 𝑅 + 𝐹𝑛𝑝𝑒
𝑃𝑋𝐺 = 1 − 𝑒 −𝑅𝑔 ∑𝑖
𝑅𝑔𝑖
𝑖!
where i = 0,…, X‐1,
and where npe is the expected number of signal photoelectrons returning per fire.
Then the probability of acquisition is given by the following, where nb = number of bins in the
Range Window histogram:
ATLAS FSRA Document v4.0
Page 76
𝑃𝐴𝐶𝑄 = (𝑃𝑋𝐿 )𝑛𝑏−1 𝑃𝑋𝑄
The probability of mistaking noise for surface echoes in a MF is called the Probability of False
Alarm or Prob(FA) and is given by the following.
The probability that one noise bin will have X or greater noise photoelectrons is:
𝑃𝑋𝑋 = 1 − 𝑒 −𝑅 ∑𝑖
where i = 0,…,X-1.
𝑅𝑖
𝑖!
Then the probability that at least one bin in the histogram will have X or greater noise pes is:
𝑃𝐼𝐴 = 𝑛𝑏 (𝑃𝑋𝐿 )𝑛𝑏−1 𝑃𝑋𝑋 .
Looking at 5 frames combined as a Super Frame allows further rejection of false alarms while
allowing a wider vertical movement in the returns. The Probability of Acquisition and False
Alarm for the SF is given in the following where pacq and pfa are the Prob(ACQ) and Prob(FA)
for the Major Frame.
PACQ = ∑i (
M!
i
) (pacq ) (1 − pacq )
(M−i)!i!
M−i
where i = N,…,M. Here M = 5 Major Frames and N is the number of MFs that must have signal
in order for the SF to have signal. In the current Algorithms N = 3.
PFA = ∑i (
M!
) (pfa )i (1 − pfa )M−i
(M−i)!i!
where i = N,…,M, M = 5 and N = 3.
If either the MF or SF Prob(ACQ)>=90% then the Algorithms are deemed to be successful. See
the spreadsheet of Design Cases in Tables D.1 (weak spots) and D.2 (strong spots).
ATLAS FSRA Document v4.0
Page 77
D.2 Theory behind the sigma multiplier table entries
To maintain a 10% probability of false alarm over the large differences in Range Window widths, the
Algorithms must take into account the width of the Range Window to calculate a scale factor needed
for the standard deviation when computing the threshold. The results of this calculation are stored in
the “sigma_multiplier” file. The Flight Software reads the table of data from this file and uses it to
look-up the correct scale factor. The calculations used to produce the data in this file are as follows.
R = average noise in the software bin (in a MF)
nb = total number of “software” bins in the overlapping histogram
The threshold, X, for the Algorithm is calculated as:
σ = √R
X=R+s∙σ
Where “s” is chosen to satisfy the equation:
0.05
= nb ∙ erfc ( s / √2 )
Where “s” represents the standard deviation scale factor, and “erfc” is the complementary
error function. Here “0.1” is the desired Prob(FA) across the entire Range Window, but we are
using “nb” from the selected software histogram, while the full software histogram in use is the
overlapping histogram which has about twice the number of bins. Using a sigma multiplier that
gives a 5% probability of false alarm for the selected software histogram will ensure that the
Prob(FA) =< 0.1 for whichever software histogram is selected.
The calculation of “s” from “nb” is then:
s = erfc-1(0.05/nb) ∙ √2
To generate the sigma multiplier table, “s” is calculated from various values of “nb” where the intervals
between values of “nb” are chosen to give close enough spacing to allow for accurate control to keep
the probability of false alarm at or below 0.1 while minimizing the size of the table. The sigma
multiplier file contains a table of “nb” values each with its corresponding “s” value. See section 5.3 for
how this table is used. In section 5.3 the value of “nb” is called “nswbin” and the value of “s” is called
“σscale”.
ATLAS FSRA Document v4.0
Page 78
Table D.1: Weak spot theoretical Prob(ACQ) calculations for the Design Cases. All were done with a Range
Window width of 6 km (except for ocean where Range Window width was taken as 1 km). Green cells with
the letters “MF” imply that the Prob(ACQ) was achieved in the Major Frame. Yellow cells with the letters “SF”
indicate that the Prob(ACQ) was achieved in the Super Frame. A red cell implies that the Prob(ACQ) was not
achieved. White cells are not conditions that need to be examined. All of the required Design Cases pass.
WEAK
Case
#
Icesheet
Sea Ice
Land - vegetation -min cover
Land - vegetation - max
cover
Ocean
Signal
pes/sho
t
Nois
e
Binsiz
e
Binsiz
e
Binsiz
e
Binsiz
e
Binsiz
e
Binsiz
e
Binsiz
e
MHz
12m
18m
24m
30m
36m
42m
48m
REQMT
?
1a
2.15
0.50
MF
MF
MF
MF
MF
MF
MF
Yes
1b
3.00
0.50
MF
MF
MF
MF
MF
MF
MF
Yes
2a
2.04
6.19
MF
MF
MF
MF
MF
MF
MF
Yes
2b
1.36
6.21
MF
MF
MF
MF
MF
MF
MF
Yes
2c
0.43
6.00
MF
MF
MF
MF
MF
SF
SF
Yes
3a
1.01
0.50
MF
MF
MF
MF
MF
MF
MF
Yes
3b
0.68
0.50
MF
MF
MF
MF
MF
MF
MF
Yes
3c
0.15
0.50
MF
MF
MF
MF
MF
MF
MF
Yes
4a
0.68
4.69
MF
MF
MF
MF
MF
MF
MF
Yes
5a
1.51
0.50
MF
MF
MF
X
X
X
X
Yes
5b
0.26
0.50
MF
MF
MF
X
X
X
X
Yes
5c
2.21
0.50
MF
MF
MF
X
X
X
X
Yes
6a
0.60
5.73
MF
MF
MF
X
X
X
X
Yes
6b
0.06
2.92
F
F
F
X
X
X
X
No
6c
5.67
1.77
MF
MF
MF
X
X
X
X
Yes
7a
0.20
3.37
F
F
F
F
F
F
F
No
7b
0.20
3.37
F
F
F
F
F
F
F
No
7c
0.20
3.37
F
F
F
F
F
F
F
No
8a
0.73
2.01
MF
MF
MF
MF
MF
MF
MF
No
8b
0.73
2.01
MF
MF
MF
MF
MF
MF
MF
No
8c
0.73
2.01
MF
MF
MF
MF
MF
MF
MF
No
9a
0.73
2.00
MF
MF
MF
MF
MF
MF
MF
No
9b
0.73
2.00
MF
MF
MF
MF
MF
MF
MF
No
9c
0.73
2.00
MF
MF
MF
MF
MF
MF
MF
No
7a
0.15
2.73
F
F
F
F
F
F
F
No
7b
0.15
2.73
F
F
F
F
F
F
F
No
7c
0.15
2.73
F
F
F
F
F
F
F
No
8a
0.44
1.21
MF
MF
MF
MF
MF
MF
MF
No
8b
0.44
1.21
MF
MF
MF
MF
MF
MF
MF
No
8c
0.44
1.21
MF
MF
MF
MF
MF
MF
MF
No
9a
0.32
1.47
MF
MF
MF
MF
MF
MF
MF
No
9b
0.32
1.47
MF
MF
MF
MF
MF
MF
MF
No
9c
0.32
1.47
MF
MF
MF
MF
MF
MF
MF
No
10a
0.49
2.68
MF
MF
MF
X
X
X
X
No
10b
0.21
1.94
MF
MF
SF
X
X
X
X
No
10c
0.12
1.71
F
X
X
X
X
X
X
No
ATLAS FSRA Document v4.0
Page 79
Table D.2: Strong spot theoretical Prob(ACQ) calculations for the Design Cases. All were done with a Range
Window width of 6 km (except for ocean where Range Window width was taken as 1 km). The colors of the
cells are defined as in Table D.1 above. All of the required Design Cases pass.
STRONG
Case#
Icesheet
Sea Ice
Land - vegetation -min
cover
Land - vegetation - max
cover
Ocean
Signal
pes/sho
t
Nois
e
Binsiz
e
Binsiz
e
Binsiz
e
Binsiz
e
Binsiz
e
Binsiz
e
Binsiz
e
MHz
12m
18m
24m
30m
36m
42m
48m
REQMT
?
1a
8.60
0.50
MF
MF
MF
MF
MF
MF
MF
Yes
1b
12.00
0.50
MF
MF
MF
MF
MF
MF
MF
Yes
2a
8.16
6.19
MF
MF
MF
MF
MF
MF
MF
Yes
2b
5.44
6.21
MF
MF
MF
MF
MF
MF
MF
Yes
2c
1.72
6.00
MF
MF
MF
MF
MF
MF
MF
Yes
3a
4.04
0.50
MF
MF
MF
MF
MF
MF
MF
Yes
3b
2.72
0.50
MF
MF
MF
MF
MF
MF
MF
Yes
3c
0.60
0.50
MF
MF
MF
MF
MF
MF
MF
Yes
4a
2.72
4.69
MF
MF
MF
MF
MF
MF
MF
Yes
5a
6.04
0.50
MF
MF
MF
X
X
X
X
Yes
5b
1.03
0.50
MF
MF
MF
X
X
X
X
Yes
5c
8.84
0.50
MF
MF
MF
X
X
X
X
Yes
6a
2.40
5.73
MF
MF
MF
X
X
X
X
Yes
6b
0.23
2.92
MF
SF
SF
X
X
X
X
Yes
6c
22.68
1.77
MF
MF
MF
X
X
X
X
Yes
7a
0.78
3.37
MF
MF
MF
MF
MF
MF
MF
No
7b
0.78
3.37
MF
MF
MF
MF
MF
MF
MF
No
7c
0.78
3.37
MF
MF
MF
MF
MF
MF
MF
No
8a
2.92
2.01
MF
MF
MF
MF
MF
MF
MF
No
8b
2.92
2.01
MF
MF
MF
MF
MF
MF
MF
No
8c
2.92
2.01
MF
MF
MF
MF
MF
MF
MF
No
9a
2.92
2.00
MF
MF
MF
MF
MF
MF
MF
No
9b
2.92
2.00
MF
MF
MF
MF
MF
MF
MF
No
9c
2.92
2.00
MF
MF
MF
MF
MF
MF
MF
No
7a
0.62
2.73
MF
MF
MF
MF
MF
MF
MF
No
7b
0.62
2.73
MF
MF
MF
MF
MF
MF
MF
No
7c
0.62
2.73
MF
MF
MF
MF
MF
MF
MF
No
8a
1.78
1.21
MF
MF
MF
MF
MF
MF
MF
No
8b
1.78
1.21
MF
MF
MF
MF
MF
MF
MF
No
8c
1.78
1.21
MF
MF
MF
MF
MF
MF
MF
No
9a
1.30
1.47
MF
MF
MF
MF
MF
MF
MF
No
9b
1.30
1.47
MF
MF
MF
MF
MF
MF
MF
No
9c
1.30
1.47
MF
MF
MF
MF
MF
MF
MF
No
10a
1.95
2.68
MF
MF
MF
X
X
X
X
Yes
10b
0.84
1.94
MF
MF
MF
X
X
X
X
Yes
10c
0.49
1.71
MF
MF
MF
X
X
X
X
Yes
ATLAS FSRA Document v4.0
Page 80
Appendix E: Spacecraft Position & Pointing
and Database Accuracy
Introduction
There are multiple constraints on the ATLAS Flight Science Receiver Algorithms (FSRA). The
maximum daily data volume limit is 577.4 Gb/day for the science data. The data corresponding to the
required Design Cases must all be correctly telemetered to the ground successfully >= 90% of the time.
The space available in the Flight EEPROM space for the FSRA databases is < 3 MB. The PCE
hardware can only handle a maximum Range Window of 6 km. The instantaneous data rate cannot
exceed 80 Mb/s. The Algorithms must be able to handle a noise rate up to 12 MHz and must contend
with clouds that could potentially overlap the surface echoes. Lastly the Algorithms must perform
successfully anywhere from 0 to 5 degrees off-nadir. Because the laser beams are already off-pointed,
this implies a maximum off-nadir pointing of 5.5 degrees.
To satisfy the Algorithms requirements while living within the constraints, it was decided that we would
make use of the spacecraft onboard knowledge of position and attitude, and use this information to
generate a limited search region (called the Range Window) based upon the knowledge of the spacecraft
location and orientation, and an onboard database of the Earth heights.
The ATLAS Flight Software (FSW) will receive separate position and attitude messages at 1 Hz from
the spacecraft. The information in the messages can be up to 500 ms stale when it arrives. The AFSW
will take up to 1 second to calculate the Range Window information needed for the following second.
This calculation must cover the entire second. To ensure that the calculated data on the SBC lines up
with the signal processing software on the PCE the total extrapolation time must be 3 seconds.
Spacecraft information accuracies
The spacecraft position and attitude information is converted by the FSRA into a range to the Earth
ellipsoid and location on the Earth (latitude and longitude). The latitude and longitude information is
used to index into a database of heights, which in turn, is used to convert the range to the ellipsoid to a
range to the surface of the Earth (see section 4 of the ATLAS Flight Science Receiver Algorithms
Document). The accuracy of this conversion (and extrapolation) will impact the width of the Range
Window used to search for the surface echoes. Larger Range Windows mean lower signal to noise
ratios and imply lower percentages of success in finding the signal.
The requirements on the information provided onboard by the spacecraft are:
Position: 30 m (1 σ, each axis),
Velocity: 0.5 m/s (1 σ, each axis),
Pitch and Roll angles: each 150 μrad (1 σ),
Yaw angle: 1 mrad
Pitch and Roll rates: each 50 μrad/s
ATLAS FSRA Document v4.0
Page 81
Yaw angle: 333 μrad/s
Combining the axes and using 3σ values to ensure a 99% coverage gives the following accuracies:
Position: 156 m
Velocity: 2.6 m/s
Pointing (assuming 5.5 deg off-nadir when calculating yaw): 710 μrad
Rates (assuming 5.5 deg off-nadir when calculating yaw): 240 μrad/s
Pointing (assuming 2.5 deg off-nadir when calculating yaw): 650 μrad
Rates (assuming 2.5 deg off-nadir when calculating yaw): 220 μrad/s
Errors in the time stamps from the spacecraft will be < 100 ms (expected < 50 ms). This is insignificant
for precession and sidereal time calculations. Surface velocity for this orbit is ~7 km/s implying a < 700
meter error in surface location caused by a < 100 ms timing error. Maximum range change over a
second for a nominal orbit (non-slewing) is 25 meters.
A source of error related to time, however, is the use of mean sidereal time rather than apparent sidereal
time. This error can be as much 1.15 seconds of time. This equates to a surface movement of 525
meters which must be factored into the error calculations for surface location but can be ignored for
range.
Errors after extrapolation
Linear extrapolation will be used to generate position and attitude information at times in the future
when it is needed by the FSW. Higher order extrapolation will not be used for two reasons: (1)
accelerations are not available and would have to be calculated, and (2) linear extrapolation is less prone
to large errors due to fitting data with noise.
The error in the range due strictly to the position/velocity errors and to ignoring acceleration:
ΔR = 156 m + (2.6m/s)∙Δt + (αR/2)∙Δt2.
The range acceleration (αR) for ICESat-2 orbits is negligible except during slews where it can be
approximately 5 m/s2 (all due to angular motion). Taking Δt = 3.0 seconds gives a range error of ~165
m due to position/velocity errors. Combined acceleration in ECI rectangular coordinates is about 10
m/s2 for a nominal orbit. The error in the spot positioning on the ground from the position and velocity
errors, plus unaccounted for acceleration is:
ΔX = 156 m + (2.6m/s)∙Δt + (αP/2)∙Δt2
This results in a spot position error after 3 seconds of ~ 210 m.
The combined angular error due to attitude/rate errors and ignoring angular acceleration:
Δθ = 710 μrad + (240 μrad/s) ∙Δt + (αθ/2)∙Δt2.
ATLAS FSRA Document v4.0
Page 82
The angular acceleration for off-nadir slews is constrained to be < 180 μrad/s2. Extrapolating 3.0
seconds ahead gives an angular error of 2.24 mrad.
Total error budget for the Range Window
Assuming 3.0 seconds extrapolation time, 5.5 deg off-nadir angle, and all of the above constraints and
accuracies:
Range error due to extrapolated position:
< 165 m nominal
Range error due to extrapolated pointing: < 110 m
Range (to ellipsoid) calculation error:
< 10 m
Range due to timing error:
< 3m
DEM accuracy:
< 150 m
RSS of these numbers gives 249 m (180 μrad/s2 angular acceleration).
Total error budget for the geolocation error
Assuming 3.0 seconds extrapolation time, 5.5 deg off-nadir angle, and all of the above constraints and
accuracies:
Error due to positional extrapolation:
< 210 m
Error due to extrapolated angle:
< 1242 m
Calculation error:
< 100 m
Timing error:
< 700 m
Error from use of mean sidereal time:
< 525 m
Error due to 9 km mountain in the way:
< 867 m
RSS of these numbers gives 1765 m. Every frame must lie entirely in the same lat/lon tile, so to the
above numbers the S/C motion in the frame (200 shots 140 m) must be added, giving the need for
overlap in the DEM tiles of >= 1905 m.
Note that there has been no error assigned to the laser vectors but that about 100 meters of the error
budget is in reserve. From a 500 km orbit 100 meters is about 200 microradians (or a little less if we are
5 degrees off-nadir).
To compensate for the movement of the telescope relative to the laser beams, the Beam Steering
Mechanism (BSM) is used to steer the laser beams. The BSM can move the beams up to 4 mrad. The
onboard Rx Algorithms do not know anything about how the BSM has steered the laser beams. Until the
laser vectors in the parameter files are updated (by uplinking a new file), the Rx Algorithms continue to
calculate the laser beam intersection with the ground based on the old laser beam angular orientation
with respect to the ATLAS MRF. If the BSM steers the laser too far away from where the Rx
Algorithms think they are, the latitude/longitude used to access the DEM and DRM tiles in the onboard
databases will not be the right one, resulting in errors in the Range Window location.
The major movement between transmit (laser beams) and receive (telescope) paths is expected to occur
during launch. One of the first activities after launch will be to collect ocean calibration data in order to
update the laser vectors. Fortunately the ocean surface is the most forgiving surface type in terms of
ATLAS FSRA Document v4.0
Page 83
having the right latitude/longitude tile, so there should not be an issue with being able to collect this
science data. In addition the Rx Algorithm performance degrades slowly with increasing angular error,
so we are optimistic that a majority of the science data can be collected even right after launch.
The Instrument Scientist believes the BSM will change only tens of microradians during normal
operations based on the changes seen during TVAC. If this is the case, the laser vectors may never have
to updated after the initial post-launch update, or updates may be needed only once every few months.
However, if the BSM changes more than 100 microradians, the laser vectors should be updated by the
ICESat-2 Precision Orbit Determination (POD) team using ocean calibration data and these new vectors
should be uploaded as a Rx Algorithms Parameter file update.
Onboard databases and data volume
The onboard database size is constrained by the available EEPROM space. The data volume
telemetered to the ground has been estimated to be very close to the 577.4 Gb/day limit.
Because of the constraints on the maximum hardware Range Window width and the size in EEPROM of
the onboard databases, it is not possible to widen the Range Window beyond 5.5 km. In addition 5.5 km
covers the maximum height difference for land ice. Reducing this number implies that we will not be
able to produce a Range Window that correctly covers all land ice. With +/- 250 m padding to cover the
accuracy in the Range Window location, the 5.5 km Range Window becomes the maximum 6 km that
the hardware can handle, so an increase in the range error must result in a decrease in the maximum
height difference allowable.
The requirement on the DEM accuracy has been set at 100 m. There are many areas of the Earth where
this accuracy limit can be reached, however, there are other areas where existing information is sparse
and where this error is not achievable. We are therefore carrying 1.5 times the original database
accuracy requirement to compensate for this as yet not completely known accuracy.
To compensate for errors in positioning the 6 spots on the Earth, the lat/lon tiles will overlap by 2 km (ie
each tile contains information from 2 km into all of the other tiles that touch it). Increasing this overlap
will increase the daily data volume since the relief per tile, for many tiles, will increase. We examined
the difference in data volume between a 1 km overlap and a 2 km overlap and while it did go up, the
increase was minimal. This does not imply anything, however, about increasing the overlap beyond 2
km.
Conclusions
We have combined the worst case errors from all sources, which is a very conservative approach,
however, the requirements currently are for the Receiver Algorithms to work should all worst case
conditions occur together. In addition there remain unknowns in the calculations. Included in these are
the accuracy of the UT/CSR generated onboard DEM.
The calculations in this document show that angular accelerations of =< 180 μrad/s2 give a Range
Window error of <= 250 m. Angular accelerations that are greater than this give errors above the 250 m
limit. Because of the remaining unknowns it seems prudent to limit the region where we guarantee that
ATLAS FSRA Document v4.0
Page 84
the Receiver Algorithms will work. A maximum acceleration of 180 μrad/s2 would work according to
the calculations, but even that value is pushing the Algorithms ability under worst case conditions.
ATLAS FSRA Document v4.0
Page 85
Appendix F: Flight Parameters
The FSRA parameters are stored in 12 files. The information is divided between parameters relating to
the Prediction, Pointing, and Range (PPR), the Signal and Telemetry (ST), and two sets of Knob Tables.
For each of these groups of information there are 3 files – one for each track (ie PCE board). In each
file the information is given for the strong and the weak spots where a differentiation between spots is
required.
The Knob parameter file comes in two flavors: (a) the nominal knob parameters which are used for
most of the orbit and are the default knob parameters, and (b) the calibration and special interest knob
parameters, which are used for ocean scans, targets of opportunity (TOOs) and other things. Both are
resident on all PCE board computers at the same time but only one is in use at any given time. The
switch between the nominal Knob parameter file and the calibration Knob parameter file should be
done with a single command upload and this switch must be done while in Science Mode.
The FSRA Simulator uses the information in all of these parameters files and this information is also
passed to the Flight Software team for use onboard. This helps prevent any errors in passing the data
between the two teams.
One of each of the three nominal file types (PPR, ST, Knobs) is given below. In all three cases the file
for Track #1 is shown. Tracks #2 and #3 have the same format, but have some different values. The
latest set of all 12 Parameter Files is currently stored and continually updated on TDMS (ICESat-2-ALGSPEC-0255). For further information please contact Jan McGarry (
[email protected]) or Ann
Rackley Reese (
[email protected]).
ATLAS FSRA Document v4.0
Page 86
F.1 Algorithm Signal/Telemetry (ST) Parameters (for Track 1): v6 (launch) Parameters
! ATLAS flight software algorithm parameters for signal and telemetry (ST 1)
&alg_parms_st_input
! ATLAS flight software algorithm parameters for signal and telemetry
! name
assignment
units
Version_ST
Version_Date
Track
Clock_Cycles_in_ns
=
=
=
=
!
!
!
!
'0000000029'
'2017-04-30'
1
10.0D0
notes
n/a
sequential number
YYYY-MM-DD
n/a
track number
ns
duration of a clock cycle
Nsf_Strong
= 3
signal must be found in a super-frame
Nsf_Weak
= 3
! frames
N of 'N of M', number of frames where
! frames
"
Msf_Strong
frame analysis
Msf_Weak
=
5
! frames
M of 'N of M', number of frames in super-
=
5
! frames
"
Bin_Size_Strong(0)
Bin_Size_Strong(1)
Bin_Size_Strong(2)
Bin_Size_Strong(3)
Bin_Size_Weak(0)
Bin_Size_Weak(1)
Bin_Size_Weak(2)
Bin_Size_Weak(3)
=
=
=
=
=
=
=
=
8
32
8
16
8
32
8
16
!
!
!
!
!
!
!
!
Size of software bins for water
"
"
"
" land
"
"
"
" sea ice
"
"
"
" land ice
Size of software bins for water
"
"
"
" land
"
"
"
" sea ice
"
"
"
" land ice
Sigma_For_Significance_Strong
= 5.0D0
for second maximum signal detection
Sigma_For_Significance_Weak
= 5.0D0
cs*
cs*
cs*
cs*
cs*
cs*
cs*
cs*
! std. dev.
"
"
"
" "
"
"
" "
"
"
"
"
"
Standard deviations above noise required
! std. dev.
"
"
"
"
"
Min_Secondary_SWbin_Separation
= 2.0D0
! SW bins
Minimum number of SW bins in comb hist
needed between primary and next highest peak to be secondary signal (multiplier)
Min_Counts_For_Signal_Strong
finding
Min_Counts_For_Signal_Weak
= 10
! counts
= 10
! counts
Cloud_Scale_Factor_Strong
=
3.D0
Used in calculation of cloud threshold
Cloud_Scale_Factor_Weak
=
3.D0
! n/a
Cloud_Bins_Exclude_Strong
=
1
be excluded in background calculation
Cloud_Bins_Exclude_Weak
=
1
! bins
! n/a
! bins
Minimum value of threshold for signal
"
"
"
"
"
Scale factor for sqrt(background_ctr).
"
"
"
"
"
"
Number of bins on either side of Max to
"
"
"
"
"
"
"
"
"
Cloud_Threshold_Strong
too think
Cloud_Threshold_Weak
=
600
! counts
=
600
! counts
Atm_Histogram_Width_Strong
Atm_Histogram_Width_Weak
=
=
9340
9340
! cs*
! cs*
Range of the atmospheric histogram
"
"
"
"
"
Cloud_Bin_Time_Strong
bin size
Cloud_Bin_Time_Weak
=
20
! cs*
Light-time corresponding to atmospheric
=
20
! cs*
Lbin_Strong
processing.
Lbin_Weak
Threshold for determining if clouds are
"
"
"
"
"
"
"
"
= 334
! bins
Lbin for atmopsheric histogram
Exclude bins above LBin when summing counts of bins above threshold. 1-based.
= 334
! bins
"
"
"
"
Padding_140_Strong(1,0)
interval 1, water
ATLAS FSRA Document v4.0
=
10
! cs*
"
"
"
amount of Padding to add for DRM 140,
Page 87
Padding_140_Strong(1,1)
"
1, land
Padding_140_Strong(1,2)
"
1, sea ice
Padding_140_Strong(1,3)
"
1, land ice
Padding_140_Strong(2,0)
interval 2, water
Padding_140_Strong(2,1)
"
2, land
Padding_140_Strong(2,2)
"
2, sea ice
Padding_140_Strong(2,3)
"
2, land ice
Padding_140_Strong(3,0)
interval 3, water
Padding_140_Strong(3,1)
"
3, land
Padding_140_Strong(3,2)
"
3, sea ice
Padding_140_Strong(3,3)
"
3, land ice
Padding_140_Strong(4,0)
interval 4, water
Padding_140_Strong(4,1)
"
4, land
Padding_140_Strong(4,2)
"
4, sea ice
Padding_140_Strong(4,3)
"
4, land ice
Padding_140_Weak(1,0)
interval 1, water
Padding_140_Weak(1,1)
"
1, land
Padding_140_Weak(1,2)
"
1, sea ice
Padding_140_Weak(1,3)
"
1, land ice
Padding_140_Weak(2,0)
interval 2, water
Padding_140_Weak(2,1)
"
2, land
Padding_140_Weak(2,2)
"
2, sea ice
Padding_140_Weak(2,3)
"
2, land ice
Padding_140_Weak(3,0)
interval 3, water
Padding_140_Weak(3,1)
"
3, land
Padding_140_Weak(3,2)
"
3, sea ice
Padding_140_Weak(3,3)
"
3, land ice
Padding_140_Weak(4,0)
interval 4, water
Padding_140_Weak(4,1)
"
4, land
Padding_140_Weak(4,2)
"
4, sea ice
Padding_140_Weak(4,3)
"
4, land ice
=
16
! cs*
"
"
"
"
" ,
=
10
! cs*
"
"
"
"
" ,
=
16
! cs*
"
"
"
"
" ,
=
10
! cs*
"
"
"
"
" ,
=
93
! cs*
"
"
"
"
" ,
=
93
! cs*
"
"
"
"
" ,
=
93
! cs*
"
"
"
"
" ,
=
10
! cs*
"
"
"
"
" ,
= 140
! cs*
"
"
"
"
" ,
= 140
! cs*
"
"
"
"
" ,
= 140
! cs*
"
"
"
"
" ,
=
10
! cs*
"
"
"
"
" ,
= 340
! cs*
"
"
"
"
" ,
= 340
! cs*
"
"
"
"
" ,
= 340
! cs*
"
"
"
"
" ,
=
10
! cs*
=
16
! cs*
"
"
"
"
" ,
=
10
! cs*
"
"
"
"
" ,
=
16
! cs*
"
"
"
"
" ,
=
10
! cs*
"
"
"
"
" ,
=
93
! cs*
"
"
"
"
" ,
=
93
! cs*
"
"
"
"
" ,
=
93
! cs*
"
"
"
"
" ,
=
10
! cs*
"
"
"
"
" ,
= 140
! cs*
"
"
"
"
" ,
= 140
! cs*
"
"
"
"
" ,
= 140
! cs*
"
"
"
"
" ,
=
10
! cs*
"
"
"
"
" ,
= 340
! cs*
"
"
"
"
" ,
= 340
! cs*
"
"
"
"
" ,
= 340
! cs*
"
"
"
"
" ,
Padding_700_Strong(1,0)
interval 1, water
Padding_700_Strong(1,1)
"
1, land
Padding_700_Strong(1,2)
"
1, sea ice
Padding_700_Strong(1,3)
"
1, land ice
=
10
! cs*
=
16
! cs*
"
"
"
"
" ,
=
10
! cs*
"
"
"
"
" ,
=
16
! cs*
"
"
"
"
" ,
ATLAS FSRA Document v4.0
amount of Padding to add for DRM 140,
amount of Padding to add for DRM 700,
Page 88
Padding_700_Strong(2,0)
interval 2, water
Padding_700_Strong(2,1)
"
2, land
Padding_700_Strong(2,2)
"
2, sea ice
Padding_700_Strong(2,3)
"
2, land ice
Padding_700_Strong(3,0)
interval 3, water
Padding_700_Strong(3,1)
"
3, land
Padding_700_Strong(3,2)
"
3, sea ice
Padding_700_Strong(3,3)
"
3, land ice
Padding_700_Strong(4,0)
interval 4, water
Padding_700_Strong(4,1)
"
4, land
Padding_700_Strong(4,2)
"
4, sea ice
Padding_700_Strong(4,3)
"
4, land ice
Padding_700_Weak(1,0)
interval 1, water
Padding_700_Weak(1,1)
"
1, land
Padding_700_Weak(1,2)
"
1, sea ice
Padding_700_Weak(1,3)
"
1, land ice
Padding_700_Weak(2,0)
interval 2, water
Padding_700_Weak(2,1)
"
2, land
Padding_700_Weak(2,2)
"
2, sea ice
Padding_700_Weak(2,3)
"
2, land ice
Padding_700_Weak(3,0)
interval 3, water
Padding_700_Weak(3,1)
"
3, land
Padding_700_Weak(3,2)
"
3, sea ice
Padding_700_Weak(3,3)
"
3, land ice
Padding_700_Weak(4,0)
interval 4, water
Padding_700_Weak(4,1)
"
4, land
Padding_700_Weak(4,2)
"
4, sea ice
Padding_700_Weak(4,3)
"
4, land ice
=
10
! cs*
"
"
"
"
" ,
=
93
! cs*
"
"
"
"
" ,
=
93
! cs*
"
"
"
"
" ,
=
93
! cs*
"
"
"
"
" ,
=
10
! cs*
"
"
"
"
" ,
= 140
! cs*
"
"
"
"
" ,
= 140
! cs*
"
"
"
"
" ,
= 140
! cs*
"
"
"
"
" ,
=
10
! cs*
"
"
"
"
" ,
= 340
! cs*
"
"
"
"
" ,
= 340
! cs*
"
"
"
"
" ,
= 340
! cs*
"
"
"
"
" ,
=
10
! cs*
=
16
! cs*
"
"
"
"
" ,
=
10
! cs*
"
"
"
"
" ,
=
16
! cs*
"
"
"
"
" ,
=
10
! cs*
"
"
"
"
" ,
=
93
! cs*
"
"
"
"
" ,
=
93
! cs*
"
"
"
"
" ,
=
93
! cs*
"
"
"
"
" ,
=
10
! cs*
"
"
"
"
" ,
= 140
! cs*
"
"
"
"
" ,
= 140
! cs*
"
"
"
"
" ,
= 140
! cs*
"
"
"
"
" ,
=
10
! cs*
"
"
"
"
" ,
= 340
! cs*
"
"
"
"
" ,
= 340
! cs*
"
"
"
"
" ,
= 340
! cs*
"
"
"
"
" ,
Padding_140_Step_Strong(1)
the Padding_140 element
Padding_140_Step_Strong(2)
"
"
"
Padding_140_Step_Strong(3)
"
"
"
Padding_140_Step_Weak(1)
the Padding_140 element
Padding_140_Step_Weak(2)
"
"
"
Padding_140_Step_Weak(3)
"
"
"
=
126
! cs*
=
378
! cs*
"
"
"
"
"
"
=
882
! cs*
"
"
"
"
"
"
=
126
! cs*
=
378
! cs*
"
"
"
"
"
"
=
882
! cs*
"
"
"
"
"
"
ATLAS FSRA Document v4.0
amount of Padding to add for DRM 700,
DRM140 size interval limit for selecting
DRM140 size interval limit for selecting
Page 89
Padding_700_Step_Strong(1)
the Padding_700 element
Padding_700_Step_Strong(2)
"
"
"
Padding_700_Step_Strong(3)
"
"
"
Padding_700_Step_Weak(1)
the Padding_700 element
Padding_700_Step_Weak(2)
"
"
"
Padding_700_Step_Weak(3)
"
"
"
=
126
! cs*
=
378
! cs*
"
"
"
"
"
"
=
882
! cs*
"
"
"
"
"
"
=
126
! cs*
=
378
! cs*
"
"
"
"
"
"
=
882
! cs*
"
"
"
"
"
"
DRM_Scaling_Strong(0)
DRM_Scaling_Strong(1)
DRM_Scaling_Strong(2)
DRM_Scaling_Strong(3)
DRM_Scaling_Weak(0)
DRM_Scaling_Weak(1)
DRM_Scaling_Weak(2)
DRM_Scaling_Weak(3)
=
=
=
=
=
=
=
=
1.D0
2.D0
1.D0
2.D0
1.D0
2.D0
1.D0
2.D0
!
!
!
!
!
!
!
!
n/a
n/a
n/a
n/a
n/a
n/a
n/a
n/a
Scale factor to multiply DRM for water
"
"
"
"
"
" land
"
"
"
"
"
" sea ice
"
"
"
"
"
" land ice
Scale factor to multiply DRM for water
"
"
"
"
"
" land
"
"
"
"
"
" sea ice
"
"
"
"
"
" land ice
Offset_140_Strong(0)
Offset_140_Strong(1)
Offset_140_Strong(2)
Offset_140_Strong(3)
Offset_140_Weak(0)
Offset_140_Weak(1)
Offset_140_Weak(2)
Offset_140_Weak(3)
=
=
=
=
=
=
=
=
0
0
0
0
0
0
0
0
!
!
!
!
!
!
!
!
cs*
cs*
cs*
cs*
cs*
cs*
cs*
cs*
DRM140 Offset for water
"
"
" land
"
"
" sea ice
"
"
" land ice
DRM140 Offset for water
"
"
" land
"
"
" sea ice
"
"
" land ice
Offset_700_Strong(0)
Offset_700_Strong(1)
Offset_700_Strong(2)
Offset_700_Strong(3)
Offset_700_Weak(0)
Offset_700_Weak(1)
Offset_700_Weak(2)
Offset_700_Weak(3)
=
=
=
=
=
=
=
=
0
0
0
0
0
0
0
0
!
!
!
!
!
!
!
!
cs*
cs*
cs*
cs*
cs*
cs*
cs*
cs*
DRM700 Offset for water
"
"
" land
"
"
" sea ice
"
"
" land ice
DRM700 Offset for water
"
"
" land
"
"
" sea ice
"
"
" land ice
Max_Data_Rate_Threshold_Strong
(CURRENTLY NOT BEING USED)
Max_Data_Rate_Threshold_Weak
=
10500
! events
=
10500
! events
Band_Hi_Limit_Strong(0)
Band_Hi_Limit_Strong(1)
Band_Hi_Limit_Strong(2)
Band_Hi_Limit_Strong(3)
ice
Band_Hi_Limit_Weak(0)
Band_Hi_Limit_Weak(1)
Band_Hi_Limit_Weak(2)
Band_Hi_Limit_Weak(3)
ice
=
=
=
=
1022
1022
1022
1022
!
!
!
!
cs*
cs*
cs*
cs*
Maximum bandwidth to downlink for water
"
"
"
" land
"
"
"
" sea ice
"
"
"
" land
=
=
=
=
1022
1022
1022
1022
!
!
!
!
cs*
cs*
cs*
cs*
Maximum bandwidth to downlink for water
"
"
"
" land
"
"
"
" sea ice
"
"
"
" land
Tm_Atmos_Strong
Tm_Atmos_Weak
=
=
TRUE
FALSE
! T-F
! T-f
Telemeter atmosphere data
"
"
"
DRM_for_SW_Bin_Size_Strong(0)
table for water
DRM_for_SW_Bin_Size_Strong(1)
"
" land
DRM_for_SW_Bin_Size_Strong(2)
"
" sea ice
DRM_for_SW_Bin_Size_Strong(3)
"
" land ice
DRM_for_SW_Bin_Size_Weak(0)
"
" water
DRM_for_SW_Bin_Size_Weak(1)
"
" land
=
FALSE
! T-F
Use DRM for software bin size, else use
=
FALSE
! T-F
"
"
"
"
"
"
"
"
=
FALSE
! T-F
"
"
"
"
"
"
"
"
=
FALSE
! T-F
"
"
"
"
"
"
"
"
=
FALSE
! T-F
"
"
"
"
"
"
"
"
=
FALSE
! T-F
"
"
"
"
"
"
"
"
ATLAS FSRA Document v4.0
DRM700 size interval limit for selecting
DRM700 size interval limit for selecting
Maximum data rate threshold for telemetry
"
"
"
"
"
"
Page 90
DRM_for_SW_Bin_Size_Weak(2)
"
" sea ice
DRM_for_SW_Bin_Size_Weak(3)
"
" land ice
=
FALSE
! T-F
"
"
"
"
"
"
"
"
=
FALSE
! T-F
"
"
"
"
"
"
"
"
Coastline_Relief_Flag_Strong(0)
for water
Coastline_Relief_Flag_Strong(1)
" land
Coastline_Relief_Flag_Strong(2)
" sea ice
Coastline_Relief_Flag_Strong(3)
" land ice
Coastline_Relief_Flag_Weak(0)
" water
Coastline_Relief_Flag_Weak(1)
" land
Coastline_Relief_Flag_Weak(2)
" sea ice
Coastline_Relief_Flag_Weak(3)
" land ice
=
TRUE
! T-F
=
TRUE
! T-F
"
"
"
"
"
"
"
=
TRUE
! T-F
"
"
"
"
"
"
"
=
TRUE
! T-F
"
"
"
"
"
"
"
=
TRUE
! T-F
"
"
"
"
"
"
"
=
TRUE
! T-F
"
"
"
"
"
"
"
=
TRUE
! T-F
"
"
"
"
"
"
"
=
TRUE
! T-F
"
"
"
"
"
"
"
Coastline_Relief_North_Strong(0)
relief for water
Coastline_Relief_North_Strong(1)
" land
Coastline_Relief_North_Strong(2)
" sea ice
Coastline_Relief_North_Strong(3)
" land ice
Coastline_Relief_North_Weak(0)
" water
Coastline_Relief_North_Weak(1)
" land
Coastline_Relief_North_Weak(2)
" sea ice
Coastline_Relief_North_Weak(3)
" land ice
=
60.D0
! degrees
=
60.D0
! degrees
"
"
"
"
"
"
=
60.D0
! degrees
"
"
"
"
"
"
=
60.D0
! degrees
"
"
"
"
"
"
=
60.D0
! degrees
"
"
"
"
"
"
=
60.D0
! degrees
"
"
"
"
"
"
=
60.D0
! degrees
"
"
"
"
"
"
=
60.D0
! degrees
"
"
"
"
"
"
Coastline_Relief_South_Strong(0)
relief for water
Coastline_Relief_South_Strong(1)
" land
Coastline_Relief_South_Strong(2)
" sea ice
Coastline_Relief_South_Strong(3)
" land ice
Coastline_Relief_South_Weak(0)
" water
Coastline_Relief_South_Weak(1)
" land
Coastline_Relief_South_Weak(2)
" sea ice
Coastline_Relief_South_Weak(3)
" land ice
=
-60.D0
! degrees
=
-60.D0
! degrees
"
"
"
"
"
"
=
-60.D0
! degrees
"
"
"
"
"
"
=
-60.D0
! degrees
"
"
"
"
"
"
=
-60.D0
! degrees
"
"
"
"
"
"
=
-60.D0
! degrees
"
"
"
"
"
"
=
-60.D0
! degrees
"
"
"
"
"
"
=
-60.D0
! degrees
"
"
"
"
"
"
! Limit of background bin fraction in day/night determination
background_bins_fraction_strong = 0.5D0
! fraction
spans more than this fraction
background_bins_fraction_weak
= 0.5D0
!
"
"
"
"
"
"
Flag to do Coastline relief latitude test
Southern limit of northern coastline
Northern limit of southern coastline
use the whole histogram if the DRM700
"
"
"
"
TEPstart_strong
Hw_Parms file)
TEPstart_weak
TEPwidth_strong
TEPwidth_weak
= -6
! cs
TEP telemetry band start from fire
= 0
= 18
= 0
! cs
! cs
! cs
" "
TEP telemetry band width
" "
subwindow_min_strong(0)
subwindow_min_weak(0)
subwindow_min_strong(1)
= 8
= 8
= 8
! cs
! cs
! cs
SF subwindow minimum, water
SF subwindow minimum, water
SF subwindow minimum, land
ATLAS FSRA Document v4.0
"
"
"
(TEP delay in
Page 91
subwindow_min_weak(1)
subwindow_min_strong(2)
subwindow_min_weak(2)
subwindow_min_strong(3)
subwindow_min_weak(3)
subwindow_max_strong(0)
subwindow_max_weak(0)
subwindow_max_strong(1)
subwindow_max_weak(1)
subwindow_max_strong(2)
subwindow_max_weak(2)
subwindow_max_strong(3)
subwindow_max_weak(3)
=
=
=
=
=
=
=
=
=
=
=
=
=
8
8
8
8
8
700
700
700
700
700
700
700
700
!
!
!
!
!
!
!
!
!
!
!
!
!
cs
cs
cs
cs
cs
cs
cs
cs
cs
cs
cs
cs
cs
SF
SF
SF
SF
SF
SF
SF
SF
SF
SF
SF
SF
SF
coastline_relief_strong
coastline_relief_weak
coastline_scaling_strong
coastline_scaling_weak
=
=
=
=
200
200
2.D0
2.D0
!
!
!
!
m
m
n/a
n/a
minimum coastline relief for telemetry
" "
coastline relief scaling for telemetry
" "
sw_bin_size_lower_limit_strong(0)
sw_bin_size_lower_limit_strong(1)
sw_bin_size_lower_limit_strong(2)
sw_bin_size_lower_limit_strong(3)
sw_bin_size_lower_limit_weak(0)
sw_bin_size_lower_limit_weak(1)
sw_bin_size_lower_limit_weak(2)
sw_bin_size_lower_limit_weak(3)
sw_bin_size_upper_limit_strong(0)
sw_bin_size_upper_limit_strong(1)
sw_bin_size_upper_limit_strong(2)
sw_bin_size_upper_limit_strong(3)
sw_bin_size_upper_limit_weak(0)
sw_bin_size_upper_limit_weak(1)
sw_bin_size_upper_limit_weak(2)
sw_bin_size_upper_limit_weak(3)
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
4
4
4
4
4
4
4
4
48
80
48
48
48
80
48
48
RW_AltimHist_PCE_Delay_Strong
=
4
and add to width to compensate for PCE delay
RW_AltimHist_PCE_Delay_Weak
=
6
" "
"
"
"
"
"
"
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
cs
cs
cs
cs
cs
cs
cs
cs
cs
cs
cs
cs
cs
cs
cs
cs
! cs
! cs
RW_AtmHist_PCE_Delay
=
3
! cs
window and add to width to compensate for PCE delay
! * cs
=
subwindow
subwindow
subwindow
subwindow
subwindow
subwindow
subwindow
subwindow
subwindow
subwindow
subwindow
subwindow
subwindow
minimum,
minimum,
minimum,
minimum,
minimum,
maximum,
maximum,
maximum,
maximum,
maximum,
maximum,
maximum,
maximum,
land
sea ice
sea ice
land ice
land ice
water
water
land
land
sea ice
sea ice
land ice
land ice
Minimum software binsize for water
"
"
"
" land
"
"
"
" sea ice
"
"
"
" land ice
"
"
"
" water
"
"
"
" land
"
"
"
" sea ice
"
"
"
" land ice
Maximum software binsize for water
"
"
"
" land
"
"
"
" sea ice
"
"
"
" land ice
"
"
"
" water
"
"
"
" land
"
"
"
" sea ice
"
"
"
" land ice
Margin to move start of the range window
"
"
"
"
"
"
"
"
"
Margin to move start of the Atm range
clock cycles
/
ATLAS FSRA Document v4.0
Page 92
F.2 Algorithm Position, Pointing and Range (PPR) Parameters (for Track 1): v6 (launch) Parameters
! ATLAS flight software algorithm parameters for position, pointing and ranges (PPR 1)
&alg_parms_ppr_input
! ATLAS flight software algorithm parameters for position, pointing and ranges
! name
assignment
'0000000027'
'2017-07-11'
1
10.0D0
!
!
!
!
units
Version_PPR
Version_Date
Track
Clock_Cycles_in_ns
=
=
=
=
DEM_Delta_Limit_Strong
tier
DEM_Delta_Limit_Weak
= 5500
! m
= 5500
! m
notes
n/a
Sequential number
YYYY-MM-DD
n/a
Track number
ns
duration of a clock cycle
Value of range width to move to next DEM
"
"
"
"
"
"
"
"
"
Range_Window_Width_Min_Strong(0,0)
water
Range_Window_Width_Min_Strong(1,0)
night, water
Range_Window_Width_Min_Strong(0,1)
land
Range_Window_Width_Min_Strong(1,1)
night, land
Range_Window_Width_Min_Strong(0,2)
sea ice
Range_Window_Width_Min_Strong(1,2)
night, sea ice
Range_Window_Width_Min_Strong(0,3)
land ice
Range_Window_Width_Min_Strong(1,3)
night, land ice
Range_Window_Width_Min_Weak(0,0)
water
Range_Window_Width_Min_Weak(1,0)
night, water
Range_Window_Width_Min_Weak(0,1)
land
Range_Window_Width_Min_Weak(1,1)
night, land
Range_Window_Width_Min_Weak(0,2)
sea ice
Range_Window_Width_Min_Weak(1,2)
night, sea ice
Range_Window_Width_Min_Weak(0,3)
land ice
Range_Window_Width_Min_Weak(1,3)
night, land ice
= 334
! cs*
= 334
! cs*
"
"
"
"
"
-
= 334
! cs*
"
"
"
"
"
- day,
= 334
! cs*
"
"
"
"
"
-
= 334
! cs*
"
"
"
"
"
- day,
= 3340
! cs*
"
"
"
"
"
-
= 334
! cs*
"
"
"
"
"
- day,
= 3340
! cs*
"
"
"
"
"
-
= 334
! cs*
"
"
"
"
"
- day,
= 334
! cs*
"
"
"
"
"
-
= 334
! cs*
"
"
"
"
"
- day,
= 334
! cs*
"
"
"
"
"
-
= 334
! cs*
"
"
"
"
"
- day,
= 3340
! cs*
"
"
"
"
"
-
= 334
! cs*
"
"
"
"
"
- day,
= 3340
! cs*
"
"
"
"
"
-
Range_Window_Width_Max_Strong(0,0)
water
Range_Window_Width_Max_Strong(1,0)
night, water
Range_Window_Width_Max_Strong(0,1)
land
Range_Window_Width_Max_Strong(1,1)
night, land
Range_Window_Width_Max_Strong(0,2)
sea ice
Range_Window_Width_Max_Strong(1,2)
night, sea ice
Range_Window_Width_Max_Strong(0,3)
land ice
Range_Window_Width_Max_Strong(1,3)
night, land ice
= 4000
! cs*
= 4000
! cs*
"
"
"
"
"
-
= 4000
! cs*
"
"
"
"
"
- day,
= 4000
! cs*
"
"
"
"
"
-
= 4000
! cs*
"
"
"
"
"
- day,
= 4000
! cs*
"
"
"
"
"
-
= 4000
! cs*
"
"
"
"
"
- day,
= 4000
! cs*
"
"
"
"
"
-
ATLAS FSRA Document v4.0
Minimum allowed range window width - day,
Maximum allowed range window width - day,
Page 93
Range_Window_Width_Max_Weak(0,0)
water
Range_Window_Width_Max_Weak(1,0)
night, water
Range_Window_Width_Max_Weak(0,1)
land
Range_Window_Width_Max_Weak(1,1)
night, land
Range_Window_Width_Max_Weak(0,2)
sea ice
Range_Window_Width_Max_Weak(1,2)
night, sea ice
Range_Window_Width_Max_Weak(0,3)
land ice
Range_Window_Width_Max_Weak(1,3)
night, land ice
= 4000
! cs*
"
"
"
"
"
- day,
= 4000
! cs*
"
"
"
"
"
-
= 4000
! cs*
"
"
"
"
"
- day,
= 4000
! cs*
"
"
"
"
"
-
= 4000
! cs*
"
"
"
"
"
- day,
= 4000
! cs*
"
"
"
"
"
-
= 4000
! cs*
"
"
"
"
"
- day,
= 4000
! cs*
"
"
"
"
"
-
Atmos_Range_Window_Offset_Strong
histogram
Atmos_Range_Window_Offset_Weak
"
= 0
! cs*
Range window offset for the atmsopheric
= 0
! cs*
Range_Window_Offset_Strong(0)
estimated surface) for water
Range_Window_Offset_Strong(1)
"
" land
Range_Window_Offset_Strong(2)
"
" sea ice
Range_Window_Offset_Strong(3)
"
" ice sheet
Range_Window_Offset_Weak(0)
estimated surface) for water
Range_Window_Offset_Weak(1)
"
" land
Range_Window_Offset_Weak(2)
"
" sea ice
Range_Window_Offset_Weak(3)
"
" ice sheet
= 0
! cs*
= 0
! cs*
"
"
"
"
"
"
= 0
! cs*
"
"
"
"
"
"
= 0
! cs*
"
"
"
"
"
"
= 0
! cs*
= 0
! cs*
"
"
"
"
"
"
= 0
! cs*
"
"
"
"
"
"
= 0
! cs*
"
"
"
"
"
"
"
"
"
"
"
"
Range offset (distance below the
Range offset (distance below the
Range_Decrease_Limit_Strong
= 320
decrease between successive frames
Range_Decrease_Limit_Weak
= 320
! cs*
Range_Window_DEM_Margin_Strong(0)
range window width for water
Range_Window_DEM_Margin_Strong(1)
"
"
"
" land
Range_Window_DEM_Margin_Strong(2)
"
"
"
" sea ice
Range_Window_DEM_Margin_Strong(3)
"
"
"
" ice sheet
Range_Window_DEM_Margin_Weak(0)
range window width for water
Range_Window_DEM_Margin_Weak(1)
"
"
"
" land
Range_Window_DEM_Margin_Weak(2)
"
"
"
" sea ice
Range_Window_DEM_Margin_Weak(3)
"
"
"
" ice sheet
= 167
! cs*
= 167
! cs*
"
"
"
"
"
"
"
"
"
= 167
! cs*
"
"
"
"
"
"
"
"
"
= 167
! cs*
"
"
"
"
"
"
"
"
"
= 167
! cs*
= 167
! cs*
"
"
"
"
"
"
"
"
"
= 167
! cs*
"
"
"
"
"
"
"
"
"
= 167
! cs*
"
"
"
"
"
"
"
"
"
Atm14km10ns_Strong
Atm14km10ns_Weak
= 9340
= 9340
! cs*
! cs*
Clock cycles per 14 km atmosphere segment
"
"
" " "
"
"
Velocity_Average_Points_Strong
extrapolation
Velocity_Average_Points_Weak
= 10
! n/a
Number of velocities to average for
= 10
! n/a
Range_Rate_Average_Points_Strong
computation
Range_Rate_Average_Points_Weak
= 2
! n/a
= 2
! n/a
ATLAS FSRA Document v4.0
Limitation on range window start time
! cs*
"
"
"
"
"
"
Margin to be added to delta DEM to give
Margin to be added to delta DEM to give
"
"
"
"
"
"
Number of ranges to use in range rate
"
"
"
"
"
"
"
"
Page 94
Beam_Pointing_Strong(1)
Beam_Pointing_Strong(2)
Beam_Pointing_Strong(3)
Beam_Pointing_Weak(1)
Beam_Pointing_Weak(2)
Beam_Pointing_Weak(3)
= -0.002545050D0 ! n/a
= 0.006675060D0 ! n/a
= 0.999974000D0 ! n/a
= 0.002444363D0 ! n/a
= 0.006654247D0 ! n/a
= 0.999974873D0 ! n/a
Unit vectors of the beams
"
"
"
"
"
"
"
"
"
"
"
"
"
"
"
"
"
"
"
"
"
"
"
"
"
Cosine_Solar_Zenith_Angle_Cutoff_Strong = 0.14D0
range window max/min limits
Cosine_Solar_Zenith_Angle_Cutoff_Weak
= 0.14D0
! n/a
Max_Sep_WeakStrong
= 8820
window and end of other in a track
! cs*
Max separation between start of one range
RW_AltimHist_PCE_Delay_Strong
= 5
and add to width to compensate for PCE delay
RW_AltimHist_PCE_Delay_Weak
= 7
! cs
Margin to move start of the range window
! n/a
! cs
RW_AtmHist_PCE_Delay
= 4
! cs
window and add to width to compensate for PCE delay
Minimum value for daylight in checking
"
"
"
"
"
"
"
"
"
"
"
"
"
"
Margin to move start of the Atm range
! * cs = clock cycles
/
ATLAS FSRA Document v4.0
Page 95
F.3 Algorithm Knobs Parameters (for Track 1): v6 (launch) Parameters
! ATLAS flight software algorithm knobs 1
&alg_parms_knobs_input
! ATLAS flight software algorithm knobs
! WARNING: For NOGO states, lower level flags set to PASS.
!
Version_Knobs = '0000000024' ! sequential number
Version_Date = '2016-01-25' ! YYYY-MM-DD
Track
= 1
! track number
!
! Index descriptions (2,4) = (0=day, 1=night)
!
(0=water, 1=land, 2=sea ice, 3=land ice)
! Knobs for telemetering data.
! 0 = do not telemeter under any conditions
! 1 = IF MF signal is found, do telemeter data.
!
If MF signal is not found, check the *NoMFSig* flag.
Tm_Strong(0,0) = 1
! day,
water
Tm_Strong(1,0) = 1
! night, water
Tm_Strong(0,1) = 1
! day,
land
Tm_Strong(1,1) = 1
! night, land
Tm_Strong(0,2) = 1
! day,
sea ice
Tm_Strong(1,2) = 1
! night, sea ice
Tm_Strong(0,3) = 1
! day,
land ice
Tm_Strong(1,3) = 1
! night, land ice
Tm_Weak(0,0)
= 0
! day,
water
Tm_Weak(1,0)
= 0
! night, water
Tm_Weak(0,1)
= 1
! day,
land
Tm_Weak(1,1)
= 1
! night, land
Tm_Weak(0,2)
= 1
! day,
sea ice
Tm_Weak(1,2)
= 1
! night, sea ice
Tm_Weak(0,3)
= 1
! day,
land ice
Tm_Weak(1,3)
= 1
! night, land ice
! Knobs for telemetering data if MF signal is NOT found and *Tm*=1
! This flag is only checked if no MF signal was found
! 0 = do not telemeter data
! 1 = if SF signal is found, do telemeter data
!
if SF signal is not found, go to next test.
Tm_NoMFSig_Strong(0,0) = 0
! day,
water
Tm_NoMFSig_Strong(1,0) = 0
! night, water
Tm_NoMFSig_Strong(0,1) = 1
! day,
land
Tm_NoMFSig_Strong(1,1) = 1
! night, land
Tm_NoMFSig_Strong(0,2) = 1
! day,
sea ice
Tm_NoMFSig_Strong(1,2) = 1
! night, sea ice
Tm_NoMFSig_Strong(0,3) = 1
! day,
land ice
Tm_NoMFSig_Strong(1,3) = 1
! night, land ice
Tm_NoMFSig_Weak(0,0)
= 1
! day,
water -- not reached
Tm_NoMFSig_Weak(1,0)
= 1
! night, water -- not reached
Tm_NoMFSig_Weak(0,1)
= 1
! day,
land
Tm_NoMFSig_Weak(1,1)
= 1
! night, land
Tm_NoMFSig_Weak(0,2)
= 1
! day,
sea ice
Tm_NoMFSig_Weak(1,2)
= 1
! night, sea ice
Tm_NoMFSig_Weak(0,3)
= 1
! day,
land ice
Tm_NoMFSig_Weak(1,3)
= 1
! night, land ice
! Knobs for telemetering data if SF signal is not found and *Tm*=1 and *NoMF*=1
! This flag is only checked if signal was not found in either the MF or the SF.
! 0 = do not telemeter data
! 1 = if SF signal is not found, go on to Cloud Algorithm flag.
Tm_NoSFSig_Strong(0,0) = 1
! day,
water -- not reached
Tm_NoSFSig_Strong(1,0) = 1
! night, water -- not reached
Tm_NoSFSig_Strong(0,1) = 1
! day,
land
Tm_NoSFSig_Strong(1,1) = 1
! night, land
Tm_NoSFSig_Strong(0,2) = 1
! day,
sea ice
Tm_NoSFSig_Strong(1,2) = 1
! night, sea ice
ATLAS FSRA Document v4.0
Page 96
Tm_NoSFSig_Strong(0,3)
Tm_NoSFSig_Strong(1,3)
Tm_NoSFSig_Weak(0,0)
Tm_NoSFSig_Weak(1,0)
Tm_NoSFSig_Weak(0,1)
Tm_NoSFSig_Weak(1,1)
Tm_NoSFSig_Weak(0,2)
Tm_NoSFSig_Weak(1,2)
Tm_NoSFSig_Weak(0,3)
Tm_NoSFSig_Weak(1,3)
=
=
=
=
=
=
=
=
=
=
1
1
1
1
0
0
1
1
1
1
!
!
!
!
!
!
!
!
!
!
day,
night,
day,
night,
day,
night,
day,
night,
day,
night,
land ice
land ice
water -- not reached
water -- not reached
land
land
sea ice
sea ice
land ice
land ice
! Knobs for using cloud algorithm to determine if data are to be sent down if no
! signal is found.
! 0 = do not run cloud algorithm. Check the *NoSig* flag.
! 1 = run cloud algorithm. If it ==> thick clouds, do not telemeter
!
Otherwise do telemeter data based on the NoSig parms (timer, relief, scale)
Cloud_Alg_Strong(0,0)
= 1
! day,
water -- not reached
Cloud_Alg_Strong(1,0)
= 0
! night, water -- not reached
Cloud_Alg_Strong(0,1)
= 1
! day,
land
Cloud_Alg_Strong(1,1)
= 0
! night, land
Cloud_Alg_Strong(0,2)
= 1
! day,
sea ice
Cloud_Alg_Strong(1,2)
= 0
! night, sea ice
Cloud_Alg_Strong(0,3)
= 0
! day,
land ice
Cloud_Alg_Strong(1,3)
= 0
! night, land ice
Cloud_Alg_Weak(0,0)
= 1
! day,
water -- not reached
Cloud_Alg_Weak(1,0)
= 0
! night, water -- not reached
Cloud_Alg_Weak(0,1)
= 1
! day,
land -- not reached
Cloud_Alg_Weak(1,1)
= 0
! night, land -- not reached
Cloud_Alg_Weak(0,2)
= 1
! day,
sea ice
Cloud_Alg_Weak(1,2)
= 0
! night, sea ice
Cloud_Alg_Weak(0,3)
= 1
! day,
land ice
Cloud_Alg_Weak(1,3)
= 0
! night, land ice
! Knobs for telemetering data if no signal is found and the logic says to run
! this test.
! 0 = do not telemeter data
! 1 = do telemeter data based on the NoSig parms (timer, relief, scale)
Tm_NoSig_Strong(0,0) = 1
! day,
water -- not reached
Tm_NoSig_Strong(1,0) = 1
! night, water -- not reached
Tm_NoSig_Strong(0,1) = 1
! day,
land -- Cloud Alg path taken
Tm_NoSig_Strong(1,1) = 1
! night, land
Tm_NoSig_Strong(0,2) = 1
! day,
sea ice -- Cloud Alg path taken
Tm_NoSig_Strong(1,2) = 1
! night, sea ice
Tm_NoSig_Strong(0,3) = 1
! day,
land ice
Tm_NoSig_Strong(1,3) = 1
! night, land ice
Tm_NoSig_Weak(0,0)
= 1
! day,
water -- not reached
Tm_NoSig_Weak(1,0)
= 1
! night, water -- not reached
Tm_NoSig_Weak(0,1)
= 1
! day,
land -- not reached
Tm_NoSig_Weak(1,1)
= 1
! night, land -- not reached
Tm_NoSig_Weak(0,2)
= 1
! day,
sea ice -- Cloud Alg path taken
Tm_NoSig_Weak(1,2)
= 1
! night, sea ice
Tm_NoSig_Weak(0,3)
= 1
! day,
land ice -- Cloud Alg path taken
Tm_NoSig_Weak(1,3)
= 1
! night, land ice
! Knobs for relief of telemetry band if major frame signal is found
! Values of relief are 0 = DRM140, 1 = DRM700, 2 = DEM (actually, Range Window in this context)
DRMDEM_MFSig_Strong(0,0) = 0
! day,
water
DRMDEM_MFSig_Strong(1,0) = 0
! night, water
DRMDEM_MFSig_Strong(0,1) = 0
! day,
land
DRMDEM_MFSig_Strong(1,1) = 0
! night, land
DRMDEM_MFSig_Strong(0,2) = 0
! day,
sea ice
DRMDEM_MFSig_Strong(1,2) = 0
! night, sea ice
DRMDEM_MFSig_Strong(0,3) = 0
! day,
land ice
DRMDEM_MFSig_Strong(1,3) = 0
! night, land ice
DRMDEM_MFSig_Weak(0,0)
= 0
! day,
water -- not reached
DRMDEM_MFSig_Weak(1,0)
= 0
! night, water -- not reached
DRMDEM_MFSig_Weak(0,1)
= 0
! day,
land
DRMDEM_MFSig_Weak(1,1)
= 0
! night, land
DRMDEM_MFSig_Weak(0,2)
= 0
! day,
sea ice
DRMDEM_MFSig_Weak(1,2)
= 0
! night, sea ice
DRMDEM_MFSig_Weak(0,3)
= 0
! day,
land ice
ATLAS FSRA Document v4.0
Page 97
DRMDEM_MFSig_Weak(1,3)
= 0
! night, land ice
! Knobs for relief of telemetry band if super frame signal is found
! Values of relief are 1 = DRM700, 2 = DEM (actually, Range Window in this context)
DRMDEM_SFSig_Strong(0,0) = 1
! day,
water -- not reached
DRMDEM_SFSig_Strong(1,0) = 1
! night, water -- not reached
DRMDEM_SFSig_Strong(0,1) = 1
! day,
land
DRMDEM_SFSig_Strong(1,1) = 1
! night, land
DRMDEM_SFSig_Strong(0,2) = 1
! day,
sea ice
DRMDEM_SFSig_Strong(1,2) = 1
! night, sea ice
DRMDEM_SFSig_Strong(0,3) = 1
! day,
land ice
DRMDEM_SFSig_Strong(1,3) = 1
! night, land ice
DRMDEM_SFSig_Weak(0,0)
= 1
! day,
water -- not reached
DRMDEM_SFSig_Weak(1,0)
= 1
! night, water -- not reached
DRMDEM_SFSig_Weak(0,1)
= 1
! day,
land
DRMDEM_SFSig_Weak(1,1)
= 1
! night, land
DRMDEM_SFSig_Weak(0,2)
= 1
! day,
sea ice
DRMDEM_SFSig_Weak(1,2)
= 1
! night, sea ice
DRMDEM_SFSig_Weak(0,3)
= 1
! day,
land ice
DRMDEM_SFSig_Weak(1,3)
= 1
! night, land ice
! Threshold to determine if it
! If computed background noise
Day_Night_Threshold_Strong(0)
Day_Night_Threshold_Strong(1)
Day_Night_Threshold_Strong(2)
Day_Night_Threshold_Strong(3)
Day_Night_Threshold_Weak(0)
Day_Night_Threshold_Weak(1)
Day_Night_Threshold_Weak(2)
Day_Night_Threshold_Weak(3)
is
is
=
=
=
=
=
=
=
=
day or night
greater than this threshold, then it's day
0.8D6 ! counts, water
0.8D6 ! counts, land
0.8D6 ! counts, sea ice
0.8D6 ! counts, land ice
0.8D6 ! counts, water
0.8D6 ! counts, land
0.8D6 ! counts, sea ice
0.8D6 ! counts, land ice
! Software channel disable flags.
! If a SW channel is disabled, data collected by that channel is not telemetered
SWChDisable_Water_Day_Strong
=
983040 ! == 0x000F0000 (disable weak chans 16-19)
SWChDisable_Water_Night_Strong =
983040 ! == 0x000F0000 " "
SWChDisable_Land_Day_Strong
=
983040 ! == 0x000F0000 " "
SWChDisable_Land_Night_Strong
=
983040 ! == 0x000F0000 " "
SWChDisable_SeaIce_Day_Strong
=
983040 ! == 0x000F0000 " "
SWChDisable_SeaIce_Night_Strong =
983040 ! == 0x000F0000 " "
SWChDisable_Ice_Day_Strong
=
983040 ! == 0x000F0000 " "
SWChDisable_Ice_Night_Strong
=
983040 ! == 0x000F0000 " "
SWChDisable_Water_Day_Weak
=
65535
! == 0x0000FFFF (disable strong chans 0-15)
SWChDisable_Water_Night_Weak
=
65535
! == 0x0000FFFF " "
SWChDisable_Land_Day_Weak
=
65535
! == 0x0000FFFF " "
SWChDisable_Land_Night_Weak
=
65535
! == 0x0000FFFF " "
SWChDisable_SeaIce_Day_Weak
=
65535
! == 0x0000FFFF " "
SWChDisable_SeaIce_Night_Weak
=
65535
! == 0x0000FFFF " "
SWChDisable_Ice_Day_Weak
=
65535
! == 0x0000FFFF " "
SWChDisable_Ice_Night_Weak
=
65535
! == 0x0000FFFF " "
! Nosig_Relief during timer 1:
! Values of relief are 0 = DRM140, 1 = DRM700, 2 = DEM (actually, Range Window in this context)
Nosig_Relief1_Strong(0,0) = 1
! day,
water -- not reached
Nosig_Relief1_Strong(1,0) = 1
! night, water -- not reached
Nosig_Relief1_Strong(0,1) = 1
! day,
land
Nosig_Relief1_Strong(1,1) = 1
! night, land
Nosig_Relief1_Strong(0,2) = 1
! day,
sea ice
Nosig_Relief1_Strong(1,2) = 1
! night, sea ice
Nosig_Relief1_Strong(0,3) = 1
! day,
land ice
Nosig_Relief1_Strong(1,3) = 1
! night, land ice
Nosig_Relief1_Weak(0,0) = 1
! day,
water -- not reached
Nosig_Relief1_Weak(1,0) = 1
! night, water -- not reached
Nosig_Relief1_Weak(0,1) = 1
! day,
land -- not reached
Nosig_Relief1_Weak(1,1) = 1
! night, land -- not reached
Nosig_Relief1_Weak(0,2) = 1
! day,
sea ice
Nosig_Relief1_Weak(1,2) = 1
! night, sea ice
Nosig_Relief1_Weak(0,3) = 1
! day,
land ice
Nosig_Relief1_Weak(1,3) = 1
! night, land ice
! Nosig_Relief during timer 2:
ATLAS FSRA Document v4.0
Page 98
! Values of relief are 1 = DRM700, 2 = DEM (actually, Range Window in this context)
Nosig_Relief2_Strong(0,0) = 2
! day,
water -- not reached
Nosig_Relief2_Strong(1,0) = 2
! night, water -- not reached
Nosig_Relief2_Strong(0,1) = 2
! day,
land
Nosig_Relief2_Strong(1,1) = 2
! night, land
Nosig_Relief2_Strong(0,2) = 2
! day,
sea ice
Nosig_Relief2_Strong(1,2) = 2
! night, sea ice
Nosig_Relief2_Strong(0,3) = 2
! day,
land ice
Nosig_Relief2_Strong(1,3) = 2
! night, land ice
Nosig_Relief2_Weak(0,0) = 2
! day,
water -- not reached
Nosig_Relief2_Weak(1,0) = 2
! night, water -- not reached
Nosig_Relief2_Weak(0,1) = 2
! day,
land -- not reached
Nosig_Relief2_Weak(1,1) = 2
! night, land -- not reached
Nosig_Relief2_Weak(0,2) = 2
! day,
sea ice
Nosig_Relief2_Weak(1,2) = 2
! night, sea ice
Nosig_Relief2_Weak(0,3) = 2
! day,
land ice
Nosig_Relief2_Weak(1,3) = 2
! night, land ice
! Number of major frames with no
! Timer = -1 means to never stop
Nosig_Timer1_Strong(0,0) = 25
Nosig_Timer1_Strong(1,0) = 25
Nosig_Timer1_Strong(0,1) = 50
Nosig_Timer1_Strong(1,1) = 50
Nosig_Timer1_Strong(0,2) = 25
Nosig_Timer1_Strong(1,2) = 25
Nosig_Timer1_Strong(0,3) = 50
Nosig_Timer1_Strong(1,3) = 50
Nosig_Timer1_Weak(0,0) = 25
Nosig_Timer1_Weak(1,0) = 25
Nosig_Timer1_Weak(0,1) = 50
Nosig_Timer1_Weak(1,1) = 50
Nosig_Timer1_Weak(0,2) = 25
Nosig_Timer1_Weak(1,2) = 25
Nosig_Timer1_Weak(0,3) = 50
Nosig_Timer1_Weak(1,3) = 50
signal to telemeter
sending data
! day,
water -- not reached
! night, water -- not reached
! day,
land
! night, land
! day,
sea ice
! night, sea ice
! day,
land ice
! night, land ice
! day,
water -- not reached
! night, water -- not reached
! day,
land -- not reached
! night, land -- not reached
! day,
sea ice
! night, sea ice
! day,
land ice
! night, land ice
! Number of major frames with no
! Timer = -1 means to never stop
Nosig_Timer2_Strong(0,0) = -1
Nosig_Timer2_Strong(1,0) = -1
Nosig_Timer2_Strong(0,1) = 100
Nosig_Timer2_Strong(1,1) = 100
Nosig_Timer2_Strong(0,2) = -1
Nosig_Timer2_Strong(1,2) = -1
Nosig_Timer2_Strong(0,3) = -1
Nosig_Timer2_Strong(1,3) = -1
Nosig_Timer2_Weak(0,0) = 1000
Nosig_Timer2_Weak(1,0) = 1000
Nosig_Timer2_Weak(0,1) =
100
Nosig_Timer2_Weak(1,1) =
100
Nosig_Timer2_Weak(0,2) =
-1
Nosig_Timer2_Weak(1,2) =
-1
Nosig_Timer2_Weak(0,3) =
-1
Nosig_Timer2_Weak(1,3) =
-1
signal to telemeter after timer 1 has passed
sending data
! day,
water -- not reached
! night, water -- not reached
! day,
land
! night, land
! day,
sea ice
! night, sea ice
! day,
land ice
! night, land ice
! day,
water -- not reached
! night, water -- not reached
! day,
land -- not reached
! night, land -- not reached
! day,
sea ice
! night, sea ice
! day,
land ice
! night, land ice
! Nosig_Scale:
! Scale factor to be applied to relief during timer 1
Nosig_Scale1_Strong(0,0) = 2.0D0
! day,
water -- not reached
Nosig_Scale1_Strong(1,0) = 2.0D0
! night, water -- not reached
Nosig_Scale1_Strong(0,1) = 2.0D0
! day,
land
Nosig_Scale1_Strong(1,1) = 2.0D0
! night, land
Nosig_Scale1_Strong(0,2) = 2.0D0
! day,
sea ice
Nosig_Scale1_Strong(1,2) = 2.0D0
! night, sea ice
Nosig_Scale1_Strong(0,3) = 2.0D0
! day,
land ice
Nosig_Scale1_Strong(1,3) = 2.0D0
! night, land ice
Nosig_Scale1_Weak(0,0) = 2.0D0
! day,
water -- not reached
Nosig_Scale1_Weak(1,0) = 2.0D0
! night, water -- not reached
Nosig_Scale1_Weak(0,1) = 2.0D0
! day,
land -- not reached
Nosig_Scale1_Weak(1,1) = 2.0D0
! night, land -- not reached
Nosig_Scale1_Weak(0,2) = 2.0D0
! day,
sea ice
ATLAS FSRA Document v4.0
Page 99
Nosig_Scale1_Weak(1,2) = 2.0D0
Nosig_Scale1_Weak(0,3) = 2.0D0
Nosig_Scale1_Weak(1,3) = 2.0D0
! night, sea ice
! day,
land ice
! night, land ice
! Nosig_Scale:
! Scale factor to be applied to relief during timer 2
Nosig_Scale2_Strong(0,0) = 1.0D0
! day,
water -- not reached
Nosig_Scale2_Strong(1,0) = 1.0D0
! night, water -- not reached
Nosig_Scale2_Strong(0,1) = 1.0D0
! day,
land
Nosig_Scale2_Strong(1,1) = 1.0D0
! night, land
Nosig_Scale2_Strong(0,2) = 1.0D0
! day,
sea ice
Nosig_Scale2_Strong(1,2) = 1.0D0
! night, sea ice
Nosig_Scale2_Strong(0,3) = 1.0D0
! day,
land ice
Nosig_Scale2_Strong(1,3) = 1.0D0
! night, land ice
Nosig_Scale2_Weak(0,0) = 1.0D0
! day,
water -- not reached
Nosig_Scale2_Weak(1,0) = 1.0D0
! night, water -- not reached
Nosig_Scale2_Weak(0,1) = 1.0D0
! day,
land -- not reached
Nosig_Scale2_Weak(1,1) = 1.0D0
! night, land -- not reached
Nosig_Scale2_Weak(0,2) = 1.0D0
! day,
sea ice
Nosig_Scale2_Weak(1,2) = 1.0D0
! night, sea ice
Nosig_Scale2_Weak(0,3) = 1.0D0
! day,
land ice
Nosig_Scale2_Weak(1,3) = 1.0D0
! night, land ice
! Telemetry band location for Nosig_Timer2 cases
NoSig_DEM_fraction_Strong(0) = 0.5D0 ! water -- not reached
NoSig_DEM_fraction_Strong(1) = 0.5D0 ! land
NoSig_DEM_fraction_Strong(2) = 0.5D0 ! sea ice
NoSig_DEM_fraction_Strong(3) = 0.5D0 ! land ice
NoSig_DEM_fraction_Weak(0)
= 0.5D0 ! water -- not reached
NoSig_DEM_fraction_Weak(1)
= 0.5D0 ! land -- not reached
NoSig_DEM_fraction_Weak(2)
= 0.5D0 ! sea ice
NoSig_DEM_fraction_Weak(3)
= 0.5D0 ! land ice
! Flag to reject TEP region as signal
TEP_not_strong = 1
! reject TEP region as signal (1 = reject, 0 = do nothing)
TEP_not_weak
= 0
! " "
! Tertiary signal flag for telemetry
tertiary_signal_flag_strong(0) = 0
is vice-versa
tertiary_signal_flag_strong(1) = 0
tertiary_signal_flag_strong(2) = 0
tertiary_signal_flag_strong(3) = 0
tertiary_signal_flag_weak(0)
= 0
tertiary_signal_flag_weak(1)
= 0
tertiary_signal_flag_weak(2)
= 0
tertiary_signal_flag_weak(3)
= 0
! TEP flag for telemetry
TEPflag_strong(0) = 0
!
8
TEPflag_strong(1) = 0
!
TEPflag_strong(2) = 0
!
TEPflag_strong(3) = 0
!
TEPflag_weak(0)
= 0
!
TEPflag_weak(1)
= 0
!
TEPflag_weak(2)
= 0
!
TEPflag_weak(3)
= 0
!
!
priority
! flag values '1' gives preference to tertiary over secondary, '0'
!
!
!
!
!
!
!
"
"
"
"
"
"
"
"
"
"
"
"
"
"
flag values '0' means telemeter TEP as secondary band for TM cases 0, 1, 3 and
" "
" "
" "
" "
" "
" "
" "
'1' means telemeter TEP as secondary band for all cases
/
ATLAS FSRA Document v4.0
Page 100
Appendix G: Parameter Type Definitions
The following tables are from the ATLAS Flight Software Team.
SIGNAL/TELEMETERY (ST) PARAMETER FILE
Variable Name
Version_ST (64 characters max)
Version_Date (64 characters max)
Track
Clock_Cycles_in_ns
Nsf_Strong
Nsf_Weak
Bin_Size_Strong(x),x=0,1,2,3
Bin_Size_Weak(x),x=0,1,2,3
Sigma_For_Significance_Strong
Sigma_For_Significance_Weak
Min_Secondary_SWbin_Separation
Min_Counts_For_Signal_Strong
Min_Counts_For_Signal_Weak
Cloud_Scale_Factor_Strong
Cloud_Scale_Factor_Weak
Cloud_Bins_Exclude_Strong
Cloud_Bins_Exclude_Weak
Cloud_Threshold_Strong
Cloud_Threshold_Weak
Atm_Histogram_Width_Strong
Atm_Histogram_Width_Weak
Lbin_Strong
Lbin_Weak
Padding_140_Strong(x,y),x=1,2,3,4, y=0,1,2,3
Padding_140_Weak(x,y),x=1,2,3,4, y=0,1,2,3
Padding_700_Strong(x,y),x=1,2,3,4, y=0,1,2,3
Padding_700_Weak(x,y),x=1,2,3,4, y=0,1,2,3
Padding_140_Step_Strong(x),x=1,2,3
Padding_140_Step_Weak(x),x=1,2,3
Padding_700_Step_Strong(x),x=1,2,3
Padding_700_Step_Weak(x),x=1,2,3
DRM_Scaling_Strong(x),x=0,1,2,3
DRM_Scaling_Weak(x),x=0,1,2,3
Offset_140_Strong(x),x=0,1,2,3
ATLAS FSRA Document v4.0
Data Type
String
String
UINT32
DOUBLE
UINT32
UINT32
UINT32
UINT32
DOUBLE
DOUBLE
DOUBLE
UINT32
UINT32
DOUBLE
DOUBLE
INT32
INT32
UINT32
UINT32
UINT32
UINT32
UINT32
UINT32
UINT32
UINT32
UINT32
UINT32
UINT32
UINT32
UINT32
UINT32
DOUBLE
DOUBLE
INT32
Page 101
Variable Name
Offset_140_Weak(x),x=0,1,2,3
Offset_700_Strong(x),x=0,1,2,3
Offset_700_Weak(x),x=0,1,2,3
Max_Data_Rate_Threshold_Strong
Max_Data_Rate_Threshold_Weak
Band_Hi_Limit_Strong(x),x=0,1,2,3
Band_Hi_Limit_Weak(x),x=0,1,2,3
DRM_for_SW_Bin_Size_Strong(x),x=0,1,2,3
DRM_for_SW_Bin_Size_Weak(x),x=0,1,2,3
Coastline_Relief_Flag_Strong(x),x=0,1,2,3
Coastline_Relief_Flag_Weak(x),x=0,1,2,3
Coastline_Relief_North_Strong(x),x=0,1,2,3
Coastline_Reief_North_Weak(x),x=0,1,2,3
Coastline_Relief_South_Strong(x),x=0,1,2,3
Coastline_Relief_South_Weak(x),x=0,1,2,3
Background_bins_fraction_strong
Background_bins_fraction_weak
TEPstart_strong
TEPstart_weak
TEPwidth_strong
TEPwidth_weak
Subwindow_min_strong(x),x=0,1,2,3
Subwindow_min_weak(x),x=0,1,2,3
Subwindow_max_strong(x),x=0,1,2,3
Subwindow_max_weak(x),x=0,1,2,3
Coastline_relief_strong
Coastline_relief_weak
Coastline_scaling_strong
Coastline_scaling_weak
SW_bin_size_lower_limit_strong(x),x=0,1,2,3
SW_bin_size_lower_limit_weak(x),x=0,1,2,3
SW_bin_size_upper_limit_strong(x),x=0,1,2,3
SW_bin_size_upper_limit_weak(x),x=0,1,2,3
RW_AltimHist_PCE_Delay_Strong
RW_AltimHist_PCE_Delay_Weak
RW_AtmHist_PCE_Delay
ATLAS FSRA Document v4.0
Data Type
INT32
INT32
INT32
UINT32
UINT32
UINT32
UINT32
BOOLEAN
BOOLEAN
BOOLEAN
BOOLEAN
DOUBLE
DOUBLE
DOUBLE
DOUBLE
DOUBLE
DOUBLE
INT32
INT32
UINT32
UINT32
UINT32
UINT32
UINT32
UINT32
UINT32
UINT32
DOUBLE
DOUBLE
UINT32
UINT32
UINT32
UINT32
UINT32
UINT32
UINT32
Page 102
KNOBS PARAMETER FILE
Variable Name
Version_Knobs (64 characters max)
Version_Date (64 characters max)
Track
Tm_Strong(x,y),x=0,1; y=0,1,2,3
Tm_Weak(x,y),x=0,1; y=0,1,2,3
Tm_NoMFSig_Strong(x,y), x=0,1; y=0,1,2,3
TM_NoMFSig_Weak(x,y), x=0,1; y=0,1,2,3
Tm_NoSFSig_Strong(x,y), x=0,1; y=0,1,2,3
TM_NoSFSig_Weak(x,y), x=0,1; y=0,1,2,3
Cloud_Alg_Strong(x,y), x=0,1; y=0,1,2,3
Cloud_Alg_Weak(x,y), x=0,1; y=0,1,2,3
Tm_NoSig_Strong(x,y), x=0,1; y=0,1,2,3
Tm_NoSig_Weak(x,y), x=0,1; y=0,1,2,3
DRMDEM_MFSig_Strong(x,y), x=0,1;
y=0,1,2,3
DRMDEM_MFSig_Weak(x,y), x=0,1;
y=0,1,2,3
DRMDEM_SFSig_Strong(x,y), x=0,1;
y=0,1,2,3
DRMDEM_SFSig_Weak(x,y), x=0,1;
y=0,1,2,3
Day_Night_Threshold_Strong(x), x=0,1,2,3
Day_Night_Threshold_Weak(x), x=0,1,2,3
SWChDisable_Water_Day_Strong
SWChDisable_Water_Night_Strong
SWChDisable_Land_Day_Strong
SWChDisable_Land_Night_Strong
SWChDisable_SeaIce_Day_Strong
SWChDisable_SeaIce_Night_Strong
SWChDisable_Ice_Day_Strong
SWChDisable_Ice_Night_Strong
SWChDisable_Water_Day_Weak
SWChDisable_Water_Night_Weak
SWChDisable_Land_Day_Weak
SWChDisable_Land_Night_Weak
SWChDisable_SeaIce_Day_Weak
SWChDisable_SeaIce_Night_Weak
SWChDisable_Ice_Day_Weak
SWChDisable_Ice_Night_Weak
Nosig_Relief1_Strong(x,y), x=0,1; y=0,1,2,3
ATLAS FSRA Document v4.0
Data Type
String
String
UINT32
UINT32
UINT32
UINT32
UINT32
UINT32
UINT32
UINT32
UINT32
UINT32
UINT32
UINT32
UINT32
UINT32
UINT32
DOUBLE
DOUBLE
UINT32
UINT32
UINT32
UINT32
UINT32
UINT32
UINT32
UINT32
UINT32
UINT32
UINT32
UINT32
UINT32
UINT32
UINT32
UINT32
UINT32
Page 103
Variable Name
Nosig_Relief1_Weak(x,y), x=0,1 y=0,1,2,3
Nosig_Relief2_Strong(x,y), x=0,1; y=0,1,2,3
Nosig_Relief2_Weak(x,y), x=0,1 y=0,1,2,3
Nosig_Timer1_Strong(x,y), x=0,1; y=0,1,2,3
Nosig_Timer1_Weak(x,y), x=0,1; y=0,1,2,3
Nosig_Timer2_Strong(x,y), x=0,1; y=0,1,2,3
Nosig_Timer2_Weak(x,y), x=0,1; y=0,1,2,3
Nosig_Scale1_Strong(x,y), x=0,1; y=0,1,2,3
Nosig_Scale1_Weak(x,y), x=0,1; y=0,1,2,3
Nosig_Scale2_Strong(x,y), x=0,1; y=0,1,2,3
Nosig_Scale2_Weak(x,y), x=0,1; y=0,1,2,3
NoSig_DEM_Fraction_Strong(x), x=0,1,2,3
NoSig_DEM_Fraction_Weak(x), x=0,1,2,3
TEP_NOT_Strong
TEP_NOT_Weak
Tertiary_signal_flag_strong(x), x=0,1,2,3
Tertiary_signal_flag_weak(x), x=0,1,2,3
TEPflag_Strong(x), x=0,1,2,3
TEPflag_Weak(x), x=0,1,2,3
ATLAS FSRA Document v4.0
Data Type
UINT32
UINT32
UINT32
INT32
INT32
INT32
INT32
DOUBLE
DOUBLE
DOUBLE
DOUBLE
DOUBLE
DOUBLE
UINT32
UINT32
UINT32
UINT32
UINT32
UINT32
Page 104
POSITION, POINTING AND RANGE (PPR) PARAMETER FILE
Variable Name
Version_PPR (64 characters max)
Version_Date (64 characters max)
Track
Clock_Cycles_in_ns
DEM_Delta_Limit_strong
DEM_Delta_Limit_weak
Range_Window_Width_Min_Strong(x,y),x=0,1;
y=0,1,2,3
Range_Window_Width_Min_Weak(x,y),x=0,1;
y=0,1,2,3
Range_Window_Width_Max_Strong(x,y),x=0,1;
y=0,1,2,3
Range_Window_Width_Max_Weak(x,y),x=0,1;
y=0,1,2,3
Atmos_Range_Window_Offset_Strong
Atmos_Range_Window_Offset_Weak
Range_Window_Offset_Strong(x),x=0,1,2,3
Range_Window_Offset_Weak(x),x=0,1,2,3
Range_Decrease_Limit_Strong
Range_Decrease_Limit_Weak
Range_Window_DEM_Margin_Strong(x),x=0,1,2,3
Range_Window_DEM_Margin_Weak(x),x=0,1,2,3
Atm14km10ns_Strong
Atm14km10ns_Weak
Velocity_Average_Points_Strong
Velocity_Average_Points_Weak
Range_Rate_Average_Points_Strong
Range_Rate_Average_Points_Weak
Beam_Pointing_Strong(x),x=1,2,3
Beam_Pointing_Weak(x),x=1,2,3
Cosine_Solar_Zenith_Angle_Cutoff_Strong
Cosine_Solar_Zenith_Angle_Cutoff_Weak
Max_Sep_WeakStrong
RW_AltimHist_PCE_Delay_Strong
RW_AltimHist_PCE_Delay_Weak
RW_AtmHist_PCE_Delay
ATLAS FSRA Document v4.0
Data Type
String
String
UINT32
DOUBLE
UINT32
UINT32
UINT32
UINT32
UINT32
UINT32
INT32
INT32
INT32
INT32
UINT32
UINT32
UINT32
UINT32
UINT32
UINT32
UINT32
UINT32
UINT32
UINT32
DOUBLE
DOUBLE
DOUBLE
DOUBLE
UINT32
UINT32
UINT32
UINT32
Page 105
Appendix H: Spacecraft Position and Pointing
Messages
The spacecraft sends the Flight Software packets of information once a second. The information used
by the Flight Science Receiver Algorithms is contained in three messages: (1) Time of Day, (2) Position
& Velocity, and (3) Attitude & Rate.
The function “float” below is intended to represent the conversion of an integer to double precision
floating point.
Time
Conversion of the filtered spacecraft time from the spacecraft message is the same for all three types
of spacecraft messages. This is true for both TP and TQ given in section 4.3. T represents the elapsed
seconds since 6-January 1980 at 00:00:00 UTC.
Call the integer seconds iT. Call the fractions of seconds mT. Then:
T = float(iT) + float(mT)/107.
Position & Velocity
Call the 32 bit integer representation of the X-position “XI” in the spacecraft message iX. Then XI in
meters is:
XI = float(iX) ∙ 0.01
Use the same conversion for “YI” and “ZI”. Call the 32 bit integer representing the X-velocity “XIdot” in
the spacecraft message iVx. Then XIdot in meters/seconds is:
XIdot = float(iVx) ∙ 0.0001
Use the same conversion for “YIdot” and “ZIdot”.
Attitude
The conversion for the SC Inertial to LRS quaterion “i” (where i=1,2,3, or 4) is:
q(i) = float(iQ) ∙ 0.000000001
Where iQ is the 32 bit integer from the spacecraft attitude message.
ATLAS FSRA Document v4.0
Page 106
The following tables (H.1, H.2 and H.3) were from Orbital ATK (now Northrop Grumman Corporation).
H.1 Spacecraft Time of Day Message
ATLAS FSRA Document v4.0
Page 107
H.2 Spacecraft Position & Velocity Message
ATLAS FSRA Document v4.0
Page 108
H.3 Spacecraft Attitude & Rate Message
ATLAS FSRA Document v4.0
Page 109
Appendix J: Telemetry Logic Flowcharts
The following pages define the Rx Algorithm’s logical flow for the telemetry selection. These
flowcharts support the description in section 7 of this document. If there is any disagreement between
these flowcharts and the text in section 7, these flowcharts should take precedence.
ATLAS FSRA Document v4.0
Page 110
ATLAS FSRA Document v4.0
Page 111
ATLAS FSRA Document v4.0
Page 112
ATLAS FSRA Document v4.0
Page 113
Glossary of Acronyms and Terms
Acronym or term
ACQ
AFSRA
ATLAS
BSM
DEM
DOE
DRM
DRM-140/DRM-700
ECEF
ECEF_hat
ECI
FPGA
FSW
FWHM
GLAS
GMST
GPS
ICESat
ICESat-2
JD
LOLA
LRS
MEB
MF
MLA
MOLA
MRF
PCE
POD
PPR
PRF
Rx
SBC
SF
SGT
SRM
SSAI
ST
TBL
TLB, TLMB
TM, TLM
UTC
WGS-84
Definition
Acquisition
ATLAS Flight Science Receiver Algorithms
Advanced Topographic Laser Altimetry System
Beam Steering Mechanism
Digital Elevation Model
Diffractive Optical Element, the device used to split the laser beam into six beamlets
Digital Relief Map
140-m and 700-m resolution DRMs
Earth-Centered-Earth-Fixed coordinate system
Coordinate system aligned with the Earth-Centered-Earth-Fixed coordinate system
but with origin at the orgin of the ATLAS coordinate system
Earth-Centered Inertial coordinate system
Field Programmable Gate Array, a fast hardware processor
Flight SoftWare
Full Width at Half Maximum
Geoscience Laser Altimetry System
Greenwich Mean Siderial Time
Global Positioning System
Ice, Cloud, and land SATellite
ICESat follow-on mission
Julian Day
Lunar Orbiter Laser Altimeter
Laser Reference System
Main Electronics Box
Major Frame
Mercury Laser Altimeter
Mars Orbiter Laser Altimeter
ATLAS Master Reference Frame (also known as ATLAS_CSYS)
Photon Counting Electronics board, where some of the onboard processing will be
done
Precision Orbit Determination
Position, Pointing and Range parameter file
Pulse Repetition Frequency
Receiver
Single Board Computer
Super Frame
Stinger Gaffarian Technologies, Incorporated
Surface Reference Mask
Science, Systems, and Applications, Incorporated
Signal/Telemetry parameter file
Telemetry Band Limit
Telemetry Band
Telemetry
Coordinated Universal Time
World Geodetic System 1984 ellipsoid
ATLAS FSRA Document v4.0
Page 114