Skip to content
Snippets Groups Projects
Commit e6aa69a8 authored by Chia Aik Song's avatar Chia Aik Song
Browse files

BUG: Take Doppler centroid into account for the SAR sensor model

parent 1891f46a
No related branches found
No related tags found
No related merge requests found
......@@ -131,6 +131,7 @@ void ossimGeometricSarSensorModel::lineSampleHeightToWorld(
}
JSDDateTime azimuthTime = getTime(line) ;
int etatLoc = sensor.ImageToWorld(slantRange, azimuthTime, heightEllipsoid, lon, lat);
if(traceDebug())
......
......@@ -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);
......
......@@ -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;
}
}
......@@ -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:
};
}
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment