00001
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035
00036
00037
00038
00039 #ifndef INC_RVC_RASTERSENSOR_H
00040 #define INC_RVC_RASTERSENSOR_H
00041
00042 #ifndef INC_RVC_SIMPLE_H
00043 #include <rvc/simple.h>
00044 #endif
00045
00046 #ifndef GENERATING_DOXYGEN_OUTPUT
00047 class DATETIME;
00048 #endif // GENERATING_DOXYGEN_OUTPUT
00049
00050
00051 namespace RVC {
00052
00053 class RASTERSENSOR : public RVC::SIMPLE {
00054 public:
00055 enum CALIBTYPE {
00056 CALIBTYPE_FlatField = 1,
00057 CALIBTYPE_EqualArea_IAR = 2,
00058 CALIBTYPE_LogResiduals = 3
00059 };
00060
00061 enum CURVETYPE {
00062 CURVETYPE_Gaussian = 0,
00063 CURVETYPE_NonGaussian = 1
00064 };
00065
00066 enum SENSOR {
00067 SENSOR_Unknown = 0,
00068 SENSOR_AVIRIS = 1,
00069 SENSOR_PROBE1 = 2,
00070 SENSOR_CASI = 3,
00071 SENSOR_HYMAP = 4,
00072 SENSOR_DIAS = 5,
00073 SENSOR_ORBVIEW4 = 6
00074 };
00075
00076 RASTERSENSOR (
00077 );
00078
00079 RASTERSENSOR (
00080 const RVC::RASTERSENSOR& rhs
00081 );
00082
00083 virtual ~RASTERSENSOR (
00084 );
00085
00086 RVC::RASTERSENSOR& operator= (
00087 const RVC::RASTERSENSOR& rhs
00088 );
00089
00090 double GetAltitude (
00091 ) const { return (m_altitude); }
00092
00093 double GetAtmosphereThickness (
00094 ) const { return (m_athmthickness); }
00095
00096 INT32 GetBand (
00097 ) const { return (m_band); }
00098
00099 double GetBandwidth (
00100 ) const { return (m_bandwidth); }
00101
00102 double GetBlackFieldRadiance (
00103 ) const { return (m_blackfieldradiance); }
00104
00105 CALIBTYPE GetCalibrationType (
00106 ) const { return (m_calibrationtype); }
00107
00108 CURVETYPE GetCurveType (
00109 ) const { return (m_curvetype); }
00110
00111 double GetFlatFieldRadiance (
00112 ) const { return (m_flatfieldradiance); }
00113
00114 void GetImageDate (
00115 DATETIME& ImageDate
00116 ) const;
00117
00118 SENSOR GetSensorType (
00119 ) const { return (m_sensor); }
00120
00121 double GetSignalError (
00122 ) const { return (m_signalerror); }
00123
00124 double GetSignalNoise (
00125 ) const { return (m_signalnoise); }
00126
00127 double GetWavelength (
00128 ) const { return (m_wavelength); }
00129
00130 double GetSunAngle (
00131 ) const { return (m_sunangle); }
00132
00133 void SetAltitude (
00134 double Altitude
00135 ) { m_altitude = Altitude; }
00136
00137 void SetAtmosphereThickness (
00138 double AtmosphereThickness
00139 ) { m_athmthickness = AtmosphereThickness; }
00140
00141 void SetBand (
00142 INT32 Band
00143 ) { m_band = Band; }
00144
00145 void SetBandwidth (
00146 double Bandwidth
00147 ) { m_bandwidth = Bandwidth; }
00148
00149 void SetBlackFieldRadiance (
00150 double BlackFieldRadiance
00151 ) { m_blackfieldradiance = BlackFieldRadiance; }
00152
00153 void SetCalibrationType (
00154 CALIBTYPE CalibrationType
00155 ) { m_calibrationtype = CalibrationType; }
00156
00157 void SetCurveType (
00158 CURVETYPE CurveType
00159 ) { m_curvetype = CurveType; }
00160
00161 void SetFlatFieldRadiance (
00162 double FlatFieldRadiance
00163 ) { m_flatfieldradiance = FlatFieldRadiance; }
00164
00165 void SetImageDate (
00166 const DATETIME& ImageDate
00167 );
00168
00169 void SetSensorType (
00170 SENSOR sensor
00171 ) { m_sensor = sensor; }
00172
00173 void SetSignalError (
00174 double signalerror
00175 ) { m_signalerror = signalerror; }
00176
00177 void SetSignalNoise (
00178 double signalnoise
00179 ) { m_signalnoise = signalnoise; }
00180
00181 void SetWavelength (
00182 double Wavelength
00183 ) { m_wavelength = Wavelength; }
00184
00185 void SetSunAngle (
00186 double SunAngle
00187 ) { m_sunangle = SunAngle; }
00188
00189 private:
00190 #ifndef GENERATING_DOXYGEN_OUTPUT
00191 RVCDATETIME m_imagedate;
00192 CURVETYPE m_curvetype;
00193 CALIBTYPE m_calibrationtype;
00194 SENSOR m_sensor;
00195 INT32 m_band;
00196 UINT32 m_flags;
00197 double m_wavelength;
00198 double m_bandwidth;
00199 double m_altitude;
00200 double m_sunangle;
00201 double m_athmthickness;
00202 double m_signalnoise;
00203 double m_signalerror;
00204 double m_flatfieldradiance;
00205 double m_blackfieldradiance;
00206
00208 virtual OBJTYPE v_GetDftObjectType () const;
00209 virtual bool v_ValidateObjectType (const RVC::OBJTYPE otype) const;
00210
00212 virtual ERRVALUE v_GetDftNameDesc (const OBJECT& parent, DESCRIPTOR& Descriptor);
00213 virtual ERRVALUE v_MakeData (RVC::OBJMAKEPARMS& ObjMakeParms);
00214 virtual ERRVALUE v_ReadData (RVC::OBJOPENPARMS& ObjOpenParms);
00215 virtual ERRVALUE v_WriteData (RVC::OBJOPENPARMS& ObjOpenParms);
00216 #endif // GENERATING_DOXYGEN_OUTPUT
00217
00218 };
00219
00220 }
00221
00222 #endif