7#include "LightTimeCorrectionState.h"
19#include "IException.h"
24#include "NaifStatus.h"
110 QString ikernKey =
"INS" +
toString(ikCode) +
"_LIGHTTIME_CORRECTION";
111 QString abcorr = spice->
getString(ikernKey);
135 m_abcorr = correction;
181 QString qtag(
"ID:USGS_SPK_ABCORR");
187 for (
int k = 0 ; k < spks.size() ; k++ ) {
188 QString spkFile = spks[k];
190 SpiceChar source[128];
194 (void) kinfo_c(spkFile.toLatin1().data(),
sizeof(ktype),
sizeof(source), ktype,
195 source, &handle, &found);
196 if (found == SPICETRUE) {
198 SpiceChar commnt[1001];
199 SpiceBoolean done(SPICEFALSE);
207 dafec_c(handle, 1,
sizeof(commnt), &n, commnt, &done);
208 QString cmmt(commnt);
210 if ( (pos = cmmt.indexOf(qtag, pos, Qt::CaseInsensitive)) != -1 ) {
218 if ( !abcorr.isEmpty() )
break;
225 if (!abcorr.isEmpty()) { m_abcorr = abcorr; }
226 return (!abcorr.isEmpty());
231 return (
"NONE" != m_abcorr);
258 QString ikernKey =
"INS" +
toString(ikCode) +
"_SWAP_OBSERVER_TARGET";
259 QString value = spice->
getString(ikernKey).toUpper();
260 m_swapObserverTarget = (
"TRUE" == value);
264 m_swapObserverTarget =
false;
267 return (m_swapObserverTarget);
273 return (m_swapObserverTarget);
278 m_swapObserverTarget =
true;
283 m_swapObserverTarget =
false;
310 QString ikernKey =
"INS" +
toString(ikCode) +
"_LT_SURFACE_CORRECT";
311 QString value = spice->
getString(ikernKey).toUpper();
312 m_sc_to_surf_ltcorr = (
"TRUE" == value);
316 m_sc_to_surf_ltcorr =
false;
319 return (m_sc_to_surf_ltcorr);
324 return (m_sc_to_surf_ltcorr);
329 m_sc_to_surf_ltcorr =
true;
335 m_sc_to_surf_ltcorr =
false;
351 m_swapObserverTarget =
false;
352 m_sc_to_surf_ltcorr =
false;
Determine SPICE kernels defined in an ISIS file.
int Discover()
Determine which NAIF kernels are currently loaded in the pool.
QStringList getKernelList(const QString &ktype="") const
Provide a list of all the kernels found.
Provides interface to user configurable Light Time correction feature.
void setCorrectLightTimeToSurface()
Sets state of light time from surface to center body for orrection.
bool checkObserverTargetSwap(int ikCode, Spice *spice)
Check status of target/observer swap specification.
void setSwapObserverTarget()
Turns on swapping of observer/target
bool checkSpkKernelsForAberrationCorrection()
Check for light time/stellar aberration tag in SPK comments.
bool isLightTimeToSurfaceCorrected() const
Returns state of light time from surface to center body correction.
bool checkLightTimeToSurfaceCorrect(int ikCode, Spice *spice)
Determines state of surface to s/c light time correction.
void setDefaultState()
Set default conditions for light time correction state.
bool checkAberrationCorrection(int ikCode, Spice *spice)
Apply instrument (team) specific light time/stellar aborration option.
QString getAberrationCorrection() const
Returns the value of the current stellar aberration state.
void setAberrationCorrection(const QString &correction)
Sets the aberration correction directly.
bool isLightTimeCorrected() const
Is light time to target corrected?
void setNoCorrectLightTimeToSurface()
Disables state of light time from surface to center body for correction.
LightTimeCorrectionState()
Default constructor sets default state of light time corrections.
void setNoSwapObserverTarget()
Turns off swapping of observer/target (default)
bool isObserverTargetSwapped() const
Returns state swap observer/target
bool operator==(const LightTimeCorrectionState &state) const
Compare two instances of the LightTimeCorrectionState objects.
static void CheckErrors(bool resetNaif=true)
This method looks for any naif errors that might have occurred.
Obtain SPICE information for a spacecraft.
QString getString(const QString &key, int index=0)
This returns a value from the NAIF text pool.
This is free and unencumbered software released into the public domain.
QString toString(bool boolToConvert)
Global function to convert a boolean to a string.