diff --git a/Utilities/otbossimplugins/ossim/AlosPalsar/AlosPalsarDataSetSummary.cpp b/Utilities/otbossimplugins/ossim/AlosPalsar/AlosPalsarDataSetSummary.cpp index f17d25b94b0bffc1aca78fdf7186ff16682ad53b..a65928d2af8d2c9520782ffbaf037cfa1882e0bb 100644 --- a/Utilities/otbossimplugins/ossim/AlosPalsar/AlosPalsarDataSetSummary.cpp +++ b/Utilities/otbossimplugins/ossim/AlosPalsar/AlosPalsarDataSetSummary.cpp @@ -190,8 +190,11 @@ std::ostream& operator<<(std::ostream& os, const AlosPalsarDataSetSummary& data) os << "rngcmp_desg:" << data._rngcmp_desg.c_str() << std::endl; + + os << "dopcen_range[0]:" << data._dopcen_range[0] << std::endl; + os << "dopcen_range[1]:" << data._dopcen_range[1] << std::endl; /** - * @Data from 1735 to 4096 to be added + * @Data from 1767 to 4096 to be added */ return os; @@ -208,8 +211,8 @@ std::istream& operator>>(std::istream& is, AlosPalsarDataSetSummary& data) buf8[8] = '\0'; char buf4[5]; buf4[4] = '\0'; - char buf2362[2363]; //data skip from 1735 to 4096// - buf2362[2362] = '\0'; //data skip from 1735 to 4096// + char buf2330[2331]; //data skip from 1767 to 4096// + buf2330[2330] = '\0'; //data skip from 1767 to 4096// is.read(buf4, 4); data._seq_num = atoi(buf4); @@ -513,11 +516,17 @@ std::istream& operator>>(std::istream& is, AlosPalsarDataSetSummary& data) is.read(buf16, 16); data._rngcmp_desg = buf16; + is.read(buf16, 16); + data._dopcen_range[0] = atof(buf16); + + is.read(buf16, 16); + data._dopcen_range[1] = atof(buf16); + /** - * @Data from 1735 to 4096 to be added + * @Data from 1767 to 4096 to be added */ - is.read(buf2362, 2362); + is.read(buf2330, 2330); return is; } @@ -599,6 +608,7 @@ AlosPalsarDataSetSummary::AlosPalsarDataSetSummary(const AlosPalsarDataSetSummar _pix_spacing(rhs._pix_spacing), _rngcmp_desg(rhs._rngcmp_desg) + //to be added// { @@ -630,6 +640,10 @@ AlosPalsarDataSetSummary::AlosPalsarDataSetSummary(const AlosPalsarDataSetSummar _crt_rate[0] = rhs._crt_rate[0]; _crt_rate[1] = rhs._crt_rate[1]; _crt_rate[2] = rhs._crt_rate[2]; + + _dopcen_range[0] = rhs._dopcen_range[0]; + _dopcen_range[1] = rhs._dopcen_range[1]; + } AlosPalsarDataSetSummary& AlosPalsarDataSetSummary::operator=(const AlosPalsarDataSetSummary& rhs) @@ -737,6 +751,9 @@ AlosPalsarDataSetSummary& AlosPalsarDataSetSummary::operator=(const AlosPalsarDa _crt_rate[1] = rhs._crt_rate[1]; _crt_rate[2] = rhs._crt_rate[2]; + _dopcen_range[0] = rhs._dopcen_range[0]; + _dopcen_range[1] = rhs._dopcen_range[1]; + //to be added// diff --git a/Utilities/otbossimplugins/ossim/AlosPalsar/AlosPalsarDataSetSummary.h b/Utilities/otbossimplugins/ossim/AlosPalsar/AlosPalsarDataSetSummary.h index c23c1589b68b92a8af4e8c0463fe50bce10a5e76..5a2c959bfbd33655a00b57e6e9b4c2c86ae1624b 100644 --- a/Utilities/otbossimplugins/ossim/AlosPalsar/AlosPalsarDataSetSummary.h +++ b/Utilities/otbossimplugins/ossim/AlosPalsar/AlosPalsarDataSetSummary.h @@ -666,7 +666,15 @@ public: }; /** - * @Data from 1735 to 4096 to be added + * @brief Along track Doppler frequency terms (in range unit: km) + */ + const double* get_dopcen_range() const + { + return _dopcen_range; + }; + + /** + * @Data from 1767 to 4096 to be added */ @@ -1001,7 +1009,12 @@ protected: std::string _rngcmp_desg; /** - * @Data from 1735 to 4096 to be added + * @brief Cross track Doppler frequency terms (in range unit: km) + */ + double _dopcen_range[2]; + + /** + * @Data from 1767 to 4096 to be added */ private: diff --git a/Utilities/otbossimplugins/ossim/AlosPalsar/AlosPalsarLeader.cpp b/Utilities/otbossimplugins/ossim/AlosPalsar/AlosPalsarLeader.cpp index 334f1ddbaaab3e6e45eccc2b25950e28dd5bd6e5..f98b870553d834307ad5268a8192288058c103e4 100644 --- a/Utilities/otbossimplugins/ossim/AlosPalsar/AlosPalsarLeader.cpp +++ b/Utilities/otbossimplugins/ossim/AlosPalsar/AlosPalsarLeader.cpp @@ -176,6 +176,8 @@ bool AlosPalsarLeader::saveState(ossimKeywordlist& kwl, kwl.add(prefix, "alt_dopcen[0]", datasetSummary->get_alt_dopcen()[0], true); kwl.add(prefix, "crt_dopcen[0]", datasetSummary->get_crt_dopcen()[0], true); kwl.add(prefix, "crt_dopcen[1]", datasetSummary->get_crt_dopcen()[1], true); + kwl.add(prefix, "dopcen_range[0]", datasetSummary->get_dopcen_range()[0], true); + kwl.add(prefix, "dopcen_range[1]", datasetSummary->get_dopcen_range()[1], true); //FIXME check if those data are available // kwl.add(prefix, "zero_dop_range_time_f_pixel", datasetSummary->get_zero_dop_range_time_f_pixel(),true); // kwl.add(prefix, "zero_dop_range_time_c_pixel", datasetSummary->get_zero_dop_range_time_c_pixel(),true); diff --git a/Utilities/otbossimplugins/ossim/AlosPalsar/AlosPalsarSignalData.cpp b/Utilities/otbossimplugins/ossim/AlosPalsar/AlosPalsarSignalData.cpp index 71b0cf16e47af6500d4f91cb63a30f170b027f0f..fdb033932659646e64f30d0153519d28ad140684 100644 --- a/Utilities/otbossimplugins/ossim/AlosPalsar/AlosPalsarSignalData.cpp +++ b/Utilities/otbossimplugins/ossim/AlosPalsar/AlosPalsarSignalData.cpp @@ -42,9 +42,6 @@ std::istream& operator>>(std::istream& is, AlosPalsarSignalData& data) ossim_uint32 tmpuint32; ossimEndian oe; - std::cout << std::endl << "File pointer location = " << is.tellg() << std::endl; - std::cout << std::endl; - is.read(reinterpret_cast<char*>(&tmpuint32), 4); if (oe.getSystemEndianType() == OSSIM_LITTLE_ENDIAN) { diff --git a/Utilities/otbossimplugins/ossim/ossimAlosPalsarModel.cpp b/Utilities/otbossimplugins/ossim/ossimAlosPalsarModel.cpp index 7680b165a4d07d38f628c5533ff78dcfedb71a0e..58bcbb02ca6e8abf842fa080c30ff69de4e3c9a3 100644 --- a/Utilities/otbossimplugins/ossim/ossimAlosPalsarModel.cpp +++ b/Utilities/otbossimplugins/ossim/ossimAlosPalsarModel.cpp @@ -33,14 +33,9 @@ static ossimTrace traceDebug("ossimAlosPalsarModel:debug"); #include <string> #include <algorithm> -// FIXME -#include <iostream> -// Testing - namespace ossimplugins { - RTTI_DEF1(ossimAlosPalsarModel, "ossimAlosPalsarModel", ossimGeometricSarSensorModel); ossimAlosPalsarModel::ossimAlosPalsarModel(): @@ -102,20 +97,10 @@ bool ossimAlosPalsarModel::InitSensorParams(const ossimKeywordlist &kwl, const c const char* ellip_min_str = kwl.find(prefix, "ellip_min"); double ellip_min = atof(ellip_min_str) * 1000.0; // km -> m - const char* dopcen_str = kwl.find(prefix, "crt_dopcen[0]"); + const char* dopcen_str = kwl.find(prefix, "dopcen_range[0]"); double dopcen = atof(dopcen_str); - const char* dopcenLinear_str = kwl.find(prefix, "crt_dopcen[1]"); - const char* rangeToFirstData_str = kwl.find(prefix, "slant_range_to_1st_data_sample"); - double dopcenLinear; - double rangeToFirstData; - if (dopcenLinear_str != NULL) { - dopcenLinear = atof(dopcenLinear_str); - if (rangeToFirstData_str != NULL) { - rangeToFirstData = atof(rangeToFirstData_str); - } - std::cout << "dopcenLinear = " << dopcenLinear << std::endl; - std::cout << "rangeToFirstData = " << rangeToFirstData << std::endl; - } + const char* dopcenLinear_str = kwl.find(prefix, "dopcen_range[1]"); + double dopcenLinear = atof(dopcenLinear_str); if (_sensor != NULL) { @@ -166,7 +151,6 @@ bool ossimAlosPalsarModel::InitSensorParams(const ossimKeywordlist &kwl, const c _sensor->set_dopcen(dopcen); _sensor->set_dopcenLinear(dopcenLinear); - _sensor->set_rangeToFirstData(rangeToFirstData); return true; } diff --git a/Utilities/otbossimplugins/ossim/otb/SarSensor.cpp b/Utilities/otbossimplugins/ossim/otb/SarSensor.cpp index 8f6e7aab8785bf822c3b7fad4ce8942b3647f605..4381b95efa195a54a0d5b74069f0b073a7fed619 100644 --- a/Utilities/otbossimplugins/ossim/otb/SarSensor.cpp +++ b/Utilities/otbossimplugins/ossim/otb/SarSensor.cpp @@ -21,9 +21,6 @@ #include <otb/GeodesicCoordinate.h> #include <complex> -// FIXME -#include <iostream> -// Just for testing namespace ossimplugins { @@ -59,24 +56,7 @@ int SarSensor::ImageToWorld(double distance, JSDDateTime time, double height, do double dopcenLinear = _params->get_dopcenLinear(); if (dopcenLinear != 0.0) { - const double C = 2.99792458e+8 ; - - double prf = _params->get_prf(); - double sf = _params->get_sf(); - double range0 = _params->get_rangeToFirstData(); - - int rangePix = (distance - range0) * 2 * sf / C; - - dopplerCentroid += dopcenLinear * rangePix; - - //FIXME nrangelooks? - std::cout << "dopcenLinear = " << dopcenLinear << std::endl; - std::cout << "prf = " << prf << std::endl; - std::cout << "sf = " << sf << std::endl; - std::cout << "range0 = " << range0 << std::endl; - std::cout << "rangePix = " << rangePix << std::endl; - std::cout << "dopplerCentroid = " << dopplerCentroid << std::endl; - //Testing + dopplerCentroid += dopcenLinear * distance/1000; // Hz/km } // note : the Doppler frequency is set to zero diff --git a/Utilities/otbossimplugins/ossim/otb/SensorParams.cpp b/Utilities/otbossimplugins/ossim/otb/SensorParams.cpp index a5a93f97c6451478ad6df612ee28d39931540ced..4cf3903175e71c4c534821ee66af3216ebe42f51 100644 --- a/Utilities/otbossimplugins/ossim/otb/SensorParams.cpp +++ b/Utilities/otbossimplugins/ossim/otb/SensorParams.cpp @@ -44,8 +44,7 @@ SensorParams::SensorParams(): _nAzimuthLook(1), _nRangeLook(1), _dopcen(0.0), - _dopcenLinear(0.0), - _rangeToFirstData(0.0) + _dopcenLinear(0.0) { } @@ -65,8 +64,7 @@ SensorParams::SensorParams(const SensorParams& rhs): _nAzimuthLook(rhs._nAzimuthLook), _nRangeLook(rhs._nRangeLook), _dopcen(rhs._dopcen), - _dopcenLinear(rhs._dopcenLinear), - _rangeToFirstData(rhs._rangeToFirstData) + _dopcenLinear(rhs._dopcenLinear) { } @@ -86,7 +84,6 @@ SensorParams& SensorParams::operator=(const SensorParams& rhs) _semiMinorAxis = rhs._semiMinorAxis; _dopcen = rhs._dopcen; _dopcenLinear = rhs._dopcenLinear; - _rangeToFirstData = rhs._rangeToFirstData; return *this; } @@ -111,7 +108,6 @@ bool SensorParams::saveState(ossimKeywordlist& kwl, const char* prefix) const kwl.add(pfx.c_str(), NUM_RANGE_LOOKS_KW, _nRangeLook); kwl.add(pfx.c_str(), DOPCEN_KW, _dopcen); kwl.add(pfx.c_str(), DOPCENLINEAR_KW, _dopcenLinear); - kwl.add(pfx.c_str(), RANGETOFIRSTDATA_KW, _rangeToFirstData); return true; } @@ -270,18 +266,6 @@ bool SensorParams::loadState(const ossimKeywordlist& kwl, const char* prefix) } return result; - lookup = kwl.find(pfx.c_str(), RANGETOFIRSTDATA_KW); - if (lookup) - { - s = lookup; - _rangeToFirstData = s.toDouble(); - } - else - { - result = false; - } - return result; - } } diff --git a/Utilities/otbossimplugins/ossim/otb/SensorParams.h b/Utilities/otbossimplugins/ossim/otb/SensorParams.h index f4c487efada4296769af0413c0f42b8aae41ed0e..b553317090316bb26b221a9b64f274e4b67a0c93 100644 --- a/Utilities/otbossimplugins/ossim/otb/SensorParams.h +++ b/Utilities/otbossimplugins/ossim/otb/SensorParams.h @@ -178,16 +178,6 @@ public: _dopcenLinear = value; } - double get_rangeToFirstData() const - { - return _rangeToFirstData; - } - - void set_rangeToFirstData(double value) - { - _rangeToFirstData = value; - } - /** * @brief Method to save object state to a keyword list. @@ -258,20 +248,15 @@ protected: double _nRangeLook ; /** - * @brief Doppler centroid + * @brief Doppler centroid (at range 0) */ double _dopcen; /** - * @brief Doppler centroid linear term (wrt range pixel) + * @brief Doppler centroid linear term (wrt range in km) */ double _dopcenLinear; - /** - * @brief Slant range to first data sample - */ - double _rangeToFirstData; - private: };