/usr/include/ossim/projection/ossimSpot5Model.h is in libossim-dev 1.8.16-3+b1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 | //*******************************************************************
//
// License: See top level LICENSE.txt file.
//
// Author: Oscar Kramer <okramer@imagelinks.com>
// ossim port by David Burken <dburken@imagelinks.com>
//
// Description:
//
// Contains declaration of class ossimSpot5Model.
//
//*****************************************************************************
// $Id: ossimSpot5Model.h 15766 2009-10-20 12:37:09Z gpotts $
#ifndef ossimSpot5Model_HEADER
#define ossimSpot5Model_HEADER
#include <iostream>
using namespace std;
#include <ossim/projection/ossimSensorModel.h>
#include <ossim/base/ossimIpt.h>
#include <ossim/base/ossimFilename.h>
#include <ossim/base/ossimGpt.h>
#include <ossim/base/ossimDpt.h>
#include <ossim/base/ossimEcefRay.h>
#include <ossim/base/ossimEcefPoint.h>
#include <ossim/base/ossimMatrix3x3.h>
class ossimSpotDimapSupportData;
class OSSIMDLLEXPORT ossimSpot5Model : public ossimSensorModel
{
public:
/*!
* CONSTRUCTORS:
*/
ossimSpot5Model();
ossimSpot5Model(ossimSpotDimapSupportData* sd);
ossimSpot5Model(const ossimFilename& init_file);
ossimSpot5Model(const ossimKeywordlist& geom_kwl);
ossimSpot5Model(const ossimSpot5Model& rhs);
virtual ~ossimSpot5Model();
enum AdjustParamIndex
{
ROLL_OFFSET = 0,
PITCH_OFFSET,
YAW_OFFSET,
ROLL_RATE,
PITCH_RATE,
YAW_RATE,
FOCAL_LEN_OFFSET,
NUM_ADJUSTABLE_PARAMS // not an index
};
/*!
* Returns pointer to a new instance, copy of this.
* Not implemented yet! Returns NULL...
*/
virtual ossimObject* dup() const;
/*!
* Extends base-class implementation. Dumps contents of object to ostream.
*/
virtual std::ostream& print(std::ostream& out) const;
/*!
* Fulfills ossimObject base-class pure virtuals. Loads and saves geometry
* KWL files. Returns true if successful.
*/
virtual bool saveState(ossimKeywordlist& kwl,
const char* prefix=NULL) const;
virtual bool loadState(const ossimKeywordlist& kwl,
const char* prefix=NULL);
/*!
* Writes a template of geom keywords processed by loadState and saveState
* to output stream.
*/
static void writeGeomTemplate(ostream& os);
/*!
* Given an image point and height, initializes worldPoint.
*/
virtual void lineSampleHeightToWorld(const ossimDpt& image_point,
const ossim_float64& heightEllipsoid,
ossimGpt& worldPoint) const;
/*!
* Given an image point, returns a ray originating at some arbitrarily high
* point (ideally at the sensor position) and pointing towards the target.
*/
virtual void imagingRay(const ossimDpt& image_point,
ossimEcefRay& image_ray) const;
/*!
* Following a change to the adjustable parameter set, this virtual
* is called to permit instances to compute derived quantities after
* parameter change.
*/
virtual void updateModel();
/*!
* ossimOptimizableProjection
*/
inline virtual bool useForward()const {return false;} //!image to ground faster
virtual bool setupOptimizer(const ossimString& init_file); //!uses file path to init model
bool initFromMetadata(ossimSpotDimapSupportData* sd);
protected:
/*!
* Sets adjustables to default values.
*/
void initAdjustableParameters();
void loadGeometry(FILE*);
void loadSupportData();
//void computeSatToOrbRotation(ossim_float64 t)const;
void computeSatToOrbRotation(NEWMAT::Matrix& result, ossim_float64 t)const;
/* virtual ossimDpt extrapolate (const ossimGpt& gp) const; */
/* virtual ossimGpt extrapolate (const ossimDpt& ip, */
/* const double& height=ossim::nan()) const; */
ossimRefPtr<ossimSpotDimapSupportData> theSupportData;
//---
// Image constant parameters:
//---
ossimFilename theMetaDataFile;
ossim_float64 theIllumAzimuth;
ossim_float64 theIllumElevation;
ossim_float64 thePositionError;
ossim_float64 theRefImagingTime;
/** relative to full image */
ossim_float64 theRefImagingTimeLine;
ossim_float64 theLineSamplingPeriod;
ossimDpt theSpotSubImageOffset;
// mutable NEWMAT::Matrix theSatToOrbRotation;
// mutable NEWMAT::Matrix theOrbToEcfRotation;
//---
// Adjustable parameters:
//---
ossim_float64 theRollOffset; // degrees
ossim_float64 thePitchOffset; // degrees
ossim_float64 theYawOffset; // degrees
ossim_float64 theRollRate; // degrees/sec
ossim_float64 thePitchRate; // degrees/sec
ossim_float64 theYawRate; // degrees/sec
ossim_float64 theFocalLenOffset; // percent deviation from nominal
TYPE_DATA
};
#endif /* #ifndef ossimSpot5Model_HEADER */
|