23 static ossimTrace traceExec (
"ossimAlphaSensor:exec");
24 static ossimTrace traceDebug(
"ossimAlphaSensor:debug");
48 m_adjustedFocalLength(0.0)
54 <<
"ossimAlphaSensor::ossimAlphaSensor DEBUG:" << std::endl;
65 m_rollBias(src.m_rollBias),
66 m_pitchBias(src.m_pitchBias),
67 m_headingBias(src.m_headingBias),
69 m_slitRot(src.m_slitRot),
70 m_focalLength(src.m_focalLength),
71 m_rollPoly(src.m_rollPoly),
72 m_pitchPoly(src.m_pitchPoly),
73 m_headingPoly(src.m_headingPoly),
74 m_lonPoly(src.m_lonPoly),
75 m_latPoly(src.m_latPoly),
76 m_altPoly(src.m_altPoly),
77 m_scanPoly(src.m_scanPoly),
78 m_cam2Platform(src.m_cam2Platform),
79 m_adjustedFocalLength(src.m_adjustedFocalLength)
97 const double& heightEllipsoid,
108 <<
"ossimAlphaSensorHSI::lineSampleHeightToWorld DEBUG:" << std::endl;
179 NEWMAT::Matrix& cam2EcfRot)
const 201 ossimGpt cameraPositionEllipsoid(lat, lon, alt);
210 cameraPositionEllipsoid.
lond() + deltal,
226 NEWMAT::Matrix rmat =
formHPRmat(-roll, -pitch, -heading);
234 int nCoef = polyCoef.size();
240 for(
int i=nCoef-2; i >= 0 ; --i)
241 result = result * line + polyCoef[i];
252 <<
"ossimAlphaSensor::updateModel DEBUG:" << std::endl;
315 <<
"ossimAlphaSensor::loadState DEBUG:" << std::endl;
335 pcount = kwl.
numberOf(
"roll_poly_coeff");
340 while ( (found < pcount) && (count < 100) )
358 <<
"DEBUG ossimAlphaSensor::loadState() roll_poly_coeff lookup failure..." 366 pcount = kwl.
numberOf(
"pitch_poly_coeff");
371 while ( (found < pcount) && (count < 100) )
389 <<
"DEBUG ossimAlphaSensor::loadState() pitch_poly_coeff lookup failure..." 397 pcount = kwl.
numberOf(
"heading_poly_coeff");
402 while ( (found < pcount) && (count < 100) )
420 <<
"DEBUG ossimAlphaSensor::loadState() heading_poly_coeff lookup failure..." 428 pcount = kwl.
numberOf(
"lat_poly_coeff");
433 while ( (found < pcount) && (count < 100) )
451 <<
"DEBUG ossimAlphaSensor::loadState() lat_poly_coeff lookup failure..." 459 pcount = kwl.
numberOf(
"lon_poly_coeff");
464 while ( (found < pcount) && (count < 100) )
482 <<
"DEBUG ossimAlphaSensor::loadState() lon_poly_coeff lookup failure..." 490 pcount = kwl.
numberOf(
"alt_poly_coeff");
495 while ( (found < pcount) && (count < 100) )
513 <<
"DEBUG ossimAlphaSensor::loadState() alt_poly_coeff lookup failure..." 521 pcount = kwl.
numberOf(
"scan_poly_coeff");
526 while ( (found < pcount) && (count < 100) )
544 <<
"DEBUG ossimAlphaSensor::loadState() scan_poly_coeff lookup failure..." 551 if(!number_samples.
empty())
569 if(!rollBias.
empty())
573 if(!pitchBias.
empty())
577 if(!headingBias.
empty())
591 <<
"ossimAlphaSensor::loadState complete..." << std::endl;
680 NEWMAT::Matrix body2LocalRot = hdgM * pitchM * rollM;
682 return body2LocalRot;
698 NEWMAT::Matrix ecf2LocalRot(3,3);
699 ecf2LocalRot(1,1) = -sl*sa - sp*cl*ca;
700 ecf2LocalRot(1,2) = cl*sa - sp*sl*ca;
701 ecf2LocalRot(1,3) = cp*ca;
702 ecf2LocalRot(2,1) = sl*ca - sp*cl*sa;
703 ecf2LocalRot(2,2) = -cl*ca - sp*sl*sa;
704 ecf2LocalRot(2,3) = cp*sa;
705 ecf2LocalRot(3,1) = cp*cl;
706 ecf2LocalRot(3,2) = cp*sl;
707 ecf2LocalRot(3,3) = sp;
ossimString toString() const
void setParameterDescription(ossim_uint32 idx, const ossimString &descrption)
double computeParameterOffset(ossim_uint32 idx) const
virtual void initAdjustableParameters()
void setFov(const double fov)
ossim_uint32 numberOf(const char *str) const
virtual bool loadState(const ossimKeywordlist &kwl, const char *prefix=0)
double lond() const
Will convert the radian measure to degrees.
ossimEcefPoint intersectAboveEarthEllipsoid(const double &heightAboveEllipsoid, const ossimDatum *aDatum=ossimDatumFactory::instance() ->wgs84()) const
virtual bool saveState(ossimKeywordlist &kwl, const char *prefix=0) const
Represents serializable keyword/value map.
NEWMAT::Matrix m_cam2Platform
bool intersectRay(const ossimEcefRay &ray, ossimGpt &gpt, double defaultElevValue=0.0)
METHOD: intersectRay()
const char * find(const char *key) const
void setSlitRot(const double slitRot)
void setHeadingBias(const double headingBias)
std::vector< ossim_float64 > m_rollPoly
static ossimString toString(bool aValue)
Numeric to string methods.
NEWMAT::Matrix formHPRmat(const ossim_float64 &roll, const ossim_float64 &pitch, const ossim_float64 &heading) const
void setPitchPoly(const std::vector< ossim_float64 > pitchPoly)
static ossimElevManager * instance()
METHOD: instance() Implements singelton pattern.
void setAltPoly(const std::vector< ossim_float64 > altPoly)
std::vector< ossim_float64 > m_latPoly
std::vector< ossim_float64 > m_altPoly
double latd() const
Will convert the radian measure to degrees.
void setScanPoly(const std::vector< ossim_float64 > scanPoly)
virtual ossimObject * dup() const
ossimEcefPoint getCameraPosition(const ossim_float64 &line) const
void setHeadingPoly(const std::vector< ossim_float64 > headingPoly)
std::vector< ossim_float64 > m_lonPoly
void add(const char *prefix, const ossimKeywordlist &kwl, bool overwrite=true)
void setLatPoly(const std::vector< ossim_float64 > latPoly)
ossim_float64 m_pitchBias
RTTI_DEF1(ossimAlphaSensor, "ossimAlphaSensor", ossimSensorModel)
double degreesToRadians(double x)
NEWMAT::Matrix formLLAmat(const ossim_float64 &lat, const ossim_float64 &lon, const ossim_float64 &az) const
double lonr() const
Returns the longitude in radian measure.
unsigned int ossim_uint32
ossim_float64 toFloat64() const
NEWMAT::Matrix getPlatform2LocalRot(const ossim_float64 &line) const
void setParameterUnit(ossim_uint32 idx, ossimUnitType unit)
static NEWMAT::Matrix create()
virtual void imagingRay(const ossimDpt &image_point, ossimEcefRay &image_ray) const
virtual bool saveState(ossimKeywordlist &kwl, const char *prefix=0) const
void setPitchBias(const double pitchBias)
void setLonPoly(const std::vector< ossim_float64 > lonPoly)
ossimDrect theImageClipRect
void setRollBias(const double rollBias)
ossimDpt midPoint() const
virtual void setAdjustableParameter(ossim_uint32 idx, double value, bool notify=false)
std::vector< ossim_float64 > m_headingPoly
std::vector< ossim_float64 > m_pitchPoly
ossim_float64 evalPoly(const std::vector< ossim_float64 > &polyCoef, const ossim_float64 &line) const
ossim_float64 m_headingBias
void resizeAdjustableParameterArray(ossim_uint32 numberOfParameters)
virtual void updateModel()
double latr() const
latr().
const char * c_str() const
Returns a pointer to a null-terminated array of characters representing the string's contents...
void getPositionOrientation(const ossim_float64 &line, ossimEcefPoint &pos, NEWMAT::Matrix &cam2EcfRot) const
void setRollPoly(const std::vector< ossim_float64 > rollPoly)
ossimDpt metersPerDegree() const
virtual void lineSampToWorld(const ossimDpt &image_point, ossimGpt &worldPoint) const
virtual bool loadState(const ossimKeywordlist &kwl, const char *prefix=0)
std::vector< ossim_float64 > m_scanPoly
virtual void lineSampleHeightToWorld(const ossimDpt &image_point, const double &heightEllipsoid, ossimGpt &worldPoint) const
ossim_float64 m_adjustedFocalLength
ossim_float64 m_focalLength
void setParameterSigma(ossim_uint32 idx, double value, bool notify=false)
OSSIMDLLEXPORT std::ostream & ossimNotify(ossimNotifyLevel level=ossimNotifyLevel_WARN)