23 static ossimTrace traceExec (
"ossimPpjFrameSensor:exec");
24 static ossimTrace traceDebug(
"ossimPpjFrameSensor:debug");
44 m_principalPoint(0.0, 0.0),
48 m_ecefCameraPosition(),
49 m_cameraPositionEllipsoid(),
54 m_adjustedCameraPosition(),
55 m_adjustedFocalLength(0.0),
56 m_averageProjectedHeight(0.0)
61 <<
"ossimPpjFrameSensor::ossimPpjFrameSensor DEBUG:" << std::endl;
81 m_ecef2Cam(src.m_ecef2Cam),
82 m_ecef2CamInverse(src.m_ecef2CamInverse),
83 m_principalPoint(src.m_principalPoint),
84 m_focalLengthX(src.m_focalLengthX),
85 m_focalLengthY(src.m_focalLengthY),
86 m_focalLength(src.m_focalLength),
87 m_ecefCameraPosition(src.m_ecefCameraPosition),
88 m_cameraPositionEllipsoid(src.m_cameraPositionEllipsoid),
89 m_radialK1(src.m_radialK1),
90 m_radialK2(src.m_radialK2),
91 m_radialP1(src.m_radialP1),
92 m_radialP2(src.m_radialP2),
93 m_adjustedCameraPosition(src.m_adjustedCameraPosition),
94 m_adjustedFocalLength(src.m_adjustedFocalLength),
95 m_averageProjectedHeight(src.m_averageProjectedHeight)
150 <<
"ossimPpjFrameSensor::imagingRay DEBUG:\n" 151 <<
" camLOS = " << camLOS <<
"\n" 153 <<
" imageRay = " << imageRay <<
"\n" 168 const double& heightEllipsoid,
213 <<
"ossimPpjFrameSensor::updateModel DEBUG:" << std::endl;
254 <<
"ossimPpjFrameSensor::updateModel complete..." << std::endl;
317 <<
"ossimPpjFrameSensor::loadState DEBUG:" << std::endl;
335 ossimString platform_position = kwl.
find(prefix,
"ecef_camera_position");
336 ossimString averageProjectedHeight = kwl.
find(prefix,
"average_projected_height");
348 bool result = (!principal_point.
empty()&&
349 !focal_length_x.
empty()&&
350 !platform_position.
empty()&&
351 !ecf_to_cam_row1.
empty()&&
352 !ecf_to_cam_row2.
empty()&&
353 !ecf_to_cam_row3.
empty());
354 if(!averageProjectedHeight.
empty())
358 if(!number_samples.
empty())
372 if(!focal_length_x.
empty())
377 if(!focal_length_y.
empty())
382 std::vector<ossimString> row;
383 if(!ecf_to_cam_row1.
empty())
385 row = ecf_to_cam_row1.
explode(
" ");
386 for (
int i=0; i<3; ++i)
388 row = ecf_to_cam_row2.
explode(
" ");
389 for (
int i=0; i<3; ++i)
391 row = ecf_to_cam_row3.
explode(
" ");
392 for (
int i=0; i<3; ++i)
410 if(!principal_point.
empty())
414 if(!platform_position.
empty())
434 <<
"ossimPpjFrameSensor::loadState Caught Exception:\n" 435 << e.
what() << std::endl;
442 <<
"ossimPpjFrameSensor::loadState complete..." << std::endl;
464 kwl.
add(prefix,
"ecf_to_cam_row1", row1,
true);
468 kwl.
add(prefix,
"ecf_to_cam_row2", row2,
true);
472 kwl.
add(prefix,
"ecf_to_cam_row3", row3,
true);
ossimString toString() const
void setParameterDescription(ossim_uint32 idx, const ossimString &descrption)
double computeParameterOffset(ossim_uint32 idx) const
virtual void imagingRay(const ossimDpt &image_point, ossimEcefRay &image_ray) const
virtual ossimObject * dup() const
virtual void worldToLineSample(const ossimGpt &world_point, ossimDpt &image_point) 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
Represents serializable keyword/value map.
ossimGpt m_adjustedCameraPosition
bool intersectRay(const ossimEcefRay &ray, ossimGpt &gpt, double defaultElevValue=0.0)
METHOD: intersectRay()
const char * find(const char *key) const
bool almostEqual(T x, T y, T tolerance=FLT_EPSILON)
double m_adjustedFocalLength
ossimGpt m_cameraPositionEllipsoid
static ossimString toString(bool aValue)
Numeric to string methods.
static ossimElevManager * instance()
METHOD: instance() Implements singelton pattern.
void setOrigin(const ossimEcefPoint &orig)
NEWMAT::Matrix m_ecef2Cam
virtual bool saveState(ossimKeywordlist &kwl, const char *prefix=0) const
double latd() const
Will convert the radian measure to degrees.
ossim_uint32 getNumberOfAdjustableParameters() const
void setFocalLength(double focX, double focY)
void setCameraPosition(const ossimGpt &value)
void toPoint(const std::string &s)
Initializes this point from string.
void add(const char *prefix, const ossimKeywordlist &kwl, bool overwrite=true)
void computeGsd()
This method computes the ground sample distance(gsd) and sets class attributes theGSD and theMeanGSD ...
virtual const char * what() const
Returns the error message.
void toPoint(const std::string &s)
Initializes this point from string.
ossimEcefPoint m_ecefCameraPosition
virtual void initAdjustableParameters()
virtual void lineSampleToWorld(const ossimDpt &image_point, ossimGpt &worldPoint) const
void setParameterUnit(ossim_uint32 idx, ossimUnitType unit)
void setAveragePrjectedHeight(double averageProjectedHeight)
virtual bool saveState(ossimKeywordlist &kwl, const char *prefix=0) const
std::vector< ossimString > explode(const ossimString &delimeter) const
virtual bool loadState(const ossimKeywordlist &kwl, const char *prefix=0)
NEWMAT::Matrix m_ecef2CamInverse
void setPrincipalPoint(const ossimDpt &value)
ossimDrect theImageClipRect
ossimString toString(ossim_uint32 precision=15) const
ossimDpt midPoint() const
virtual void setAdjustableParameter(ossim_uint32 idx, double value, bool notify=false)
void resizeAdjustableParameterArray(ossim_uint32 numberOfParameters)
ossimDpt m_principalPoint
virtual void updateModel()
const ossimColumnVector3d & data() const
ossimDpt metersPerDegree() const
void setDirection(const ossimEcefVector &d)
virtual void lineSampleHeightToWorld(const ossimDpt &image_point, const double &heightEllipsoid, ossimGpt &worldPoint) const
RTTI_DEF1(ossimPpjFrameSensor, "ossimPpjFrameSensor", ossimSensorModel)
void setParameterSigma(ossim_uint32 idx, double value, bool notify=false)
OSSIMDLLEXPORT std::ostream & ossimNotify(ossimNotifyLevel level=ossimNotifyLevel_WARN)
double m_averageProjectedHeight
void setecef2CamMatrix(const NEWMAT::Matrix &value)
ossimString toString(ossim_uint32 precision=15) const
To string method.
bool isnan(const float &v)
isnan Test for floating point Not A Number (NAN) value.