21 static ossimTrace traceDebug(
"ossimSpectraboticsRedEdgeModel:debug");
25 #ifdef OSSIM_ID_ENABLED 26 static const char OSSIM_ID[] =
"$Id: ossimSpectraboticsRedEdgeModel.cpp 23562 2015-10-02 13:12:40Z gpotts $";
50 <<
"ossimSpectraboticsRedEdgeModel::ossimSpectrabotics DEBUG:" << endl;
51 #ifdef OSSIM_ID_ENABLED 88 <<
"ossimSpectrabotics Constructor caught Exception:\n" 89 << e.
what() << std::endl;
95 <<
"ossimSpectraboticsRedEdgeModel::ossimSpectrabotics DEBUG:" << endl;
96 #ifdef OSSIM_ID_ENABLED 146 ecf_ray_dir = ecf_ray_dir*(1.0/ecf_ray_dir.
magnitude());
192 const double& heightEllipsoid,
233 ossimDpt film (scale*camRayDir[0], scale*camRayDir[1]);
261 double degreePerMeter = 1.0/metersPerDegree;
266 double height = gpt.
height();
277 NEWMAT::Matrix orientation = heading*pitch*roll;
377 const char* prefix)
const 381 kwl.
add(prefix,
"type",
"ossimSpectraboticsRedEdgeModel",
true);
389 kwl.
add(prefix,
"field_of_view",
m_fov);
394 kwl.
add(prefix,
"ecef_platform_position",
413 std::cout <<
"ossimSpectraboticsRedEdgeModel::loadState: ......... entered" << std::endl;
431 const char* roll = kwl.
find(prefix,
"Roll");
432 const char* pitch = kwl.
find(prefix,
"Pitch");
433 const char* heading = kwl.
find(prefix,
"Yaw");
434 const char* focalLength = kwl.
find(prefix,
"Focal Length");
435 const char* imageWidth = kwl.
find(prefix,
"Image Width");
436 const char* imageHeight = kwl.
find(prefix,
"Image Height");
437 const char* fov = kwl.
find(prefix,
"Field Of View");
438 const char* gpsPos = kwl.
find(prefix,
"GPS Position");
439 const char* gpsAlt = kwl.
find(prefix,
"GPS Altitude");
440 const char* imageCenter = kwl.
find(prefix,
"Image Center");
441 const char* fx = kwl.
find(prefix,
"fx");
442 const char* fy = kwl.
find(prefix,
"fy");
443 const char* cx = kwl.
find(prefix,
"cx");
444 const char* cy = kwl.
find(prefix,
"cy");
445 const char* k = kwl.
find(prefix,
"k");
446 const char* p = kwl.
find(prefix,
"p");
451 std::cout <<
"roll: " << roll <<
"\n";
452 std::cout <<
"pitch: " << pitch <<
"\n";
453 std::cout <<
"heading: " << heading <<
"\n";
454 std::cout <<
"focalLength: " << focalLength <<
"\n";
455 std::cout <<
"imageWidth: " << imageWidth <<
"\n";
456 std::cout <<
"imageHeight: " << imageHeight <<
"\n";
458 std::cout <<
"gpsPos: " << gpsPos <<
"\n";
459 std::cout <<
"gpsAlt: " << gpsAlt <<
"\n";
500 std::vector<ossimString> splitString;
503 if(splitString.size() == 2)
518 std::vector<ossimString> splitArray;
521 splitArray[0] = splitArray[0].replaceAllThatMatch(
"deg",
" ");
522 splitArray[1] = splitArray[1].replaceAllThatMatch(
"deg",
" ");
569 else temp = 1.0/temp;
585 const char* principal_point = kwl.
find(prefix,
"principal_point");
586 const char* pixel_size = kwl.
find(prefix,
"pixel_size");
587 const char* ecef_platform_position = kwl.
find(prefix,
"ecef_platform_position");
588 const char* latlonh_platform_position = kwl.
find(prefix,
"latlonh_platform_position");
590 roll = kwl.
find(prefix,
"roll");
591 pitch = kwl.
find(prefix,
"pitch");
592 heading = kwl.
find(prefix,
"heading");
593 fov = kwl.
find(prefix,
"field_of_view");
594 focalLength = kwl.
find(prefix,
"focal_length");
615 std::vector<ossimString> splitString;
618 if(splitString.size() == 2)
635 std::vector<ossimString> splitString;
638 if(splitString.size() == 1)
643 else if(splitString.size() == 2)
657 if(ecef_platform_position)
659 std::vector<ossimString> splitString;
662 if(splitString.size() > 2)
665 splitString[1].toDouble(),
666 splitString[2].toDouble());
669 else if(latlonh_platform_position)
671 std::vector<ossimString> splitString;
674 std::string datumString;
675 double lat=0.0, lon=0.0, h=0.0;
676 if(splitString.size() > 2)
678 lat = splitString[0].toDouble();
679 lon = splitString[1].toDouble();
680 h = splitString[2].toDouble();
731 else temp = 1.0/temp;
753 <<
"ossimSpectraboticsRedEdgeModel::loadState Caught Exception:\n" 754 << e.
what() << std::endl;
761 <<
"pitch: " <<
m_pitch << std::endl
766 <<
"FOV : " <<
m_fov << std::endl
void setParameterDescription(ossim_uint32 idx, const ossimString &descrption)
double computeParameterOffset(ossim_uint32 idx) const
virtual void worldToLineSample(const ossimGpt &world_point, ossimDpt &image_point) const
static NEWMAT::Matrix createRotationYMatrix(double angle, ossimCoordSysOrientMode orientationMode=OSSIM_RIGHT_HANDED)
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.
virtual void updateModel()
bool addFile(const char *file)
ossimEcefPoint m_ecefPlatformPosition
virtual void initAdjustableParameters()
bool intersectRay(const ossimEcefRay &ray, ossimGpt &gpt, double defaultElevValue=0.0)
METHOD: intersectRay()
bool theExtrapolateGroundFlag
const char * find(const char *key) const
double nan()
Method to return ieee floating point double precision NAN.
virtual void undistort(const ossimDpt &input, ossimDpt &output) const
const ossimDpt & ul() const
void lineSampleToWorld(const ossimDpt &image_point, ossimGpt &gpt) const
static ossimString toString(bool aValue)
Numeric to string methods.
ossimDpt m_calibratedCenter
void split(std::vector< ossimString > &result, const ossimString &separatorList, bool skipBlankFields=false) const
Splits this string into a vector of strings (fields) using the delimiter list specified.
static ossimElevManager * instance()
METHOD: instance() Implements singelton pattern.
ossimSpectraboticsRedEdgeModel()
void setOrigin(const ossimEcefPoint &orig)
double latd() const
Will convert the radian measure to degrees.
ossim_uint32 getNumberOfAdjustableParameters() const
ossimRefPtr< ossimTangentialRadialLensDistortion > m_lensDistortion
virtual bool saveState(ossimKeywordlist &kwl, const char *prefix=0) const
virtual bool loadState(const ossimKeywordlist &kwl, const char *prefix=0)
bool theExtrapolateImageFlag
void add(const char *prefix, const ossimKeywordlist &kwl, bool overwrite=true)
const NEWMAT::Matrix & lsrToEcefRotMatrix() const
virtual bool saveState(ossimKeywordlist &kwl, const char *prefix=0) const
virtual bool loadState(const ossimKeywordlist &kwl, const char *prefix=0)
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.
virtual bool setupOptimizer(const ossimString &init_file)
ground to image faster (you don't need DEM)
static NEWMAT::Matrix createRotationXMatrix(double angle, ossimCoordSysOrientMode orientationMode=OSSIM_RIGHT_HANDED)
static NEWMAT::Matrix createRotationZMatrix(double angle, ossimCoordSysOrientMode orientationMode=OSSIM_RIGHT_HANDED)
ossimPolygon theBoundGndPolygon
static ossimGeoidManager * instance()
Implements singelton pattern:
bool setDegrees(const std::string &value)
setDegrees(char*).
bool hasNans() const
will sequence through the polygon and check to see if any values are NAN
void setParameterUnit(ossim_uint32 idx, ossimUnitType unit)
double getDegrees() const
virtual bool saveState(ossimKeywordlist &kwl, const char *prefix=0) const
bool pointWithin(const ossimDpt &point) const
METHOD: pointWithin(ossimDpt) Returns TRUE if point is inside polygon.
ossimEcefPoint m_adjEcefPlatformPosition
NEWMAT::Matrix m_compositeMatrixInverse
ossim_uint32 getNumberOfVertices() const
ossimDrect theImageClipRect
void setRollPitchHeading(double roll, double pitch, double heading)
void setFocalLength(double focalLength)
static NEWMAT::Matrix createIdentity()
void setCenter(const ossimDpt ¢er)
ossimDpt midPoint() const
virtual void setAdjustableParameter(ossim_uint32 idx, double value, bool notify=false)
virtual ossimObject * dup() const
void setImageRect(const ossimDrect &rect)
const ossimDpt & ur() const
ossimDpt m_principalPoint
void resizeAdjustableParameterArray(ossim_uint32 numberOfParameters)
virtual void lineSampleHeightToWorld(const ossimDpt &image_point, const double &heightEllipsoid, ossimGpt &worldPoint) const
const char * c_str() const
Returns a pointer to a null-terminated array of characters representing the string's contents...
void setPlatformPosition(const ossimGpt &gpt)
const ossimColumnVector3d & data() const
ossimDpt metersPerDegree() const
const ossimDpt & ll() const
void resize(ossim_uint32 newSize)
virtual void imagingRay(const ossimDpt &image_point, ossimEcefRay &image_ray) const
void setDirection(const ossimEcefVector &d)
virtual double offsetFromEllipsoid(const ossimGpt &gpt)
const ossimDpt & lr() const
void setPixelSize(const ossimDpt &pixelSize)
virtual void distort(const ossimDpt &input, ossimDpt &output) const
RTTI_DEF1(ossimSpectraboticsRedEdgeModel, "ossimSpectraboticsRedEdgeModel", ossimSensorModel)
void setPrincipalPoint(ossimDpt principalPoint)
void setParameterSigma(ossim_uint32 idx, double value, bool notify=false)
OSSIMDLLEXPORT std::ostream & ossimNotify(ossimNotifyLevel level=ossimNotifyLevel_WARN)
NEWMAT::Matrix m_compositeMatrix
uses file path to init model