diff --git a/Utilities/otbossimplugins/ossim/ossimGeometricSarSensorModel.cpp b/Utilities/otbossimplugins/ossim/ossimGeometricSarSensorModel.cpp index 4b4d097fb17f4b7952200a26e34c448ee745617a..f9fc4ba3c7aa4271971bce63b902bd9e7cc2387f 100644 --- a/Utilities/otbossimplugins/ossim/ossimGeometricSarSensorModel.cpp +++ b/Utilities/otbossimplugins/ossim/ossimGeometricSarSensorModel.cpp @@ -131,6 +131,7 @@ void ossimGeometricSarSensorModel::lineSampleHeightToWorld( } JSDDateTime azimuthTime = getTime(line) ; + int etatLoc = sensor.ImageToWorld(slantRange, azimuthTime, heightEllipsoid, lon, lat); if(traceDebug()) diff --git a/Utilities/otbossimplugins/ossim/otb/SarSensor.cpp b/Utilities/otbossimplugins/ossim/otb/SarSensor.cpp index 8aebed47065d4060e4cae9b246597a2483deb2f7..157720e77a8bf9edea19d6a54a2c37a95af850f2 100644 --- a/Utilities/otbossimplugins/ossim/otb/SarSensor.cpp +++ b/Utilities/otbossimplugins/ossim/otb/SarSensor.cpp @@ -51,8 +51,10 @@ int SarSensor::ImageToWorld(double distance, JSDDateTime time, double height, do RectangularCoordinate cart; + double dopplerCentroid = _params->get_dopcen(); + // note : the Doppler frequency is set to zero - int etatLoc = localisationSAR(*geoEph, lambda, distance, 0.0, sensVisee, semiMajorAxis , semiMinorAxis , height, &cart); + int etatLoc = localisationSAR(*geoEph, lambda, distance, dopplerCentroid, sensVisee, semiMajorAxis , semiMinorAxis , height, &cart); GeodesicCoordinate geo; cart.AsGeodesicCoordinates(semiMajorAxis , semiMinorAxis, &geo); diff --git a/Utilities/otbossimplugins/ossim/otb/SensorParams.cpp b/Utilities/otbossimplugins/ossim/otb/SensorParams.cpp index 37c2df41783b187851808c58d6d83f533e304cbe..81315468c0ebcb75056ee2101263a8e13b787937 100644 --- a/Utilities/otbossimplugins/ossim/otb/SensorParams.cpp +++ b/Utilities/otbossimplugins/ossim/otb/SensorParams.cpp @@ -28,6 +28,7 @@ static const char SEMI_MAJOR_AXIS_KW[] = "semi_major_axis"; static const char SEMI_MINOR_AXIS_KW[] = "semi_minor_axis"; static const char NUM_AZIMUTH_LOOKS_KW[] = "number_azimuth_looks"; static const char NUM_RANGE_LOOKS_KW[] = "number_range_looks"; +static const char DOPCEN_KW[] = "doppler_centroid"; SensorParams::SensorParams(): _prf(0.0), @@ -39,7 +40,8 @@ SensorParams::SensorParams(): _semiMajorAxis(6378137.0), _semiMinorAxis(6356752.3141), _nAzimuthLook(1), - _nRangeLook(1) + _nRangeLook(1), + _dopcen(0.0) { } @@ -57,7 +59,8 @@ SensorParams::SensorParams(const SensorParams& rhs): _semiMajorAxis(rhs._semiMajorAxis), _semiMinorAxis(rhs._semiMinorAxis), _nAzimuthLook(rhs._nAzimuthLook), - _nRangeLook(rhs._nRangeLook) + _nRangeLook(rhs._nRangeLook), + _dopcen(rhs._dopcen) { } @@ -75,6 +78,7 @@ SensorParams& SensorParams::operator=(const SensorParams& rhs) _nRangeLook = rhs._nRangeLook; _semiMajorAxis = rhs._semiMajorAxis; _semiMinorAxis = rhs._semiMinorAxis; + _dopcen = rhs._dopcen; return *this; } @@ -97,7 +101,7 @@ bool SensorParams::saveState(ossimKeywordlist& kwl, const char* prefix) const kwl.add(pfx.c_str(), SEMI_MINOR_AXIS_KW, _semiMinorAxis); kwl.add(pfx.c_str(), NUM_AZIMUTH_LOOKS_KW, _nAzimuthLook); kwl.add(pfx.c_str(), NUM_RANGE_LOOKS_KW, _nRangeLook); - + kwl.add(pfx.c_str(), DOPCEN_KW, _dopcen); return true; } @@ -232,6 +236,16 @@ bool SensorParams::loadState(const ossimKeywordlist& kwl, const char* prefix) result = false; } + lookup = kwl.find(pfx.c_str(), DOPCEN_KW); + if (lookup) + { + s = lookup; + _dopcen = s.toDouble(); + } + else + { + result = false; + } return result; } } diff --git a/Utilities/otbossimplugins/ossim/otb/SensorParams.h b/Utilities/otbossimplugins/ossim/otb/SensorParams.h index 33b68e3f47a43f0e82eae7cabcf666abee9bc0da..3335e7407212344e49458434fbf7bfd374058408 100644 --- a/Utilities/otbossimplugins/ossim/otb/SensorParams.h +++ b/Utilities/otbossimplugins/ossim/otb/SensorParams.h @@ -158,6 +158,15 @@ public: _semiMinorAxis = value; } + double get_dopcen() const + { + return _dopcen; + } + + void set_dopcen(double value) + { + _dopcen = value; + } /** * @brief Method to save object state to a keyword list. * @param kwl Keyword list to save to. @@ -226,6 +235,11 @@ protected: */ double _nRangeLook ; + /** + * @brief Doppler centroid + */ + double _dopcen; + private: }; }