From 5c9dce34f3ef2749cccc8ea13e4acddea8db55c5 Mon Sep 17 00:00:00 2001 From: Chia Aik Song <crscas@nus.edu.sg> Date: Thu, 10 Dec 2009 15:41:36 +0800 Subject: [PATCH] Modify determination of distance in InitRefPoint. Also 1st successful test (i.e. without crashing) of pixel->latlon conversion using AlosPalsarModel. --- .../otbossimplugins/ossim/AlosPalsar/AlosSarData.cpp | 2 ++ .../ossim/AlosPalsar/AlosSarDataFileDescriptor.cpp | 2 +- .../ossim/AlosPalsar/AlosSarSignalData.cpp | 2 ++ .../otbossimplugins/ossim/ossimAlosPalsarModel.cpp | 11 +++++++---- 4 files changed, 12 insertions(+), 5 deletions(-) diff --git a/Utilities/otbossimplugins/ossim/AlosPalsar/AlosSarData.cpp b/Utilities/otbossimplugins/ossim/AlosPalsar/AlosSarData.cpp index 58ad3a6544..f3df75d833 100644 --- a/Utilities/otbossimplugins/ossim/AlosPalsar/AlosSarData.cpp +++ b/Utilities/otbossimplugins/ossim/AlosPalsar/AlosSarData.cpp @@ -164,6 +164,7 @@ bool AlosSarData::saveState(ossimKeywordlist& kwl, if (datafiledesc != NULL) { kwl.add(prefix, "pulse_repetition_frequency", signalData->get_pulse_repetition_frequency(),true); + // slant range to 1st data sample in metres kwl.add(prefix, "slant_range_to_1st_data_sample", signalData->get_slant_range_to_1st_data_sample(),true); // FIXME debug std::cout << std::endl << "pulse_repetition_frequency = " << signalData->get_pulse_repetition_frequency() << std::endl; @@ -186,6 +187,7 @@ const AlosSarDataFileDescriptor * AlosSarData::get_AlosSarDataFileDescriptor() c const AlosSarSignalData * AlosSarData::get_AlosSarSignalData() const { + // TODO: Check if _records[AlosSarSignalDataID] works return dynamic_cast<const AlosSarSignalData*>(_records.find(AlosSarSignalDataID)->second); } diff --git a/Utilities/otbossimplugins/ossim/AlosPalsar/AlosSarDataFileDescriptor.cpp b/Utilities/otbossimplugins/ossim/AlosPalsar/AlosSarDataFileDescriptor.cpp index e6242d7003..c313dc17c9 100644 --- a/Utilities/otbossimplugins/ossim/AlosPalsar/AlosSarDataFileDescriptor.cpp +++ b/Utilities/otbossimplugins/ossim/AlosPalsar/AlosSarDataFileDescriptor.cpp @@ -27,7 +27,7 @@ AlosSarDataFileDescriptor::~AlosSarDataFileDescriptor() std::ostream& operator<<(std::ostream& os, const AlosSarDataFileDescriptor& data) { os<<"_num_lines:"<<data._num_lines<<std::endl; - os<<"_num_lines:"<<data._num_lines<<std::endl; + os<<"_num_pix_in_line:"<<data._num_pix_in_line<<std::endl; return os; } diff --git a/Utilities/otbossimplugins/ossim/AlosPalsar/AlosSarSignalData.cpp b/Utilities/otbossimplugins/ossim/AlosPalsar/AlosSarSignalData.cpp index 2b7b566602..ceb6d096f1 100644 --- a/Utilities/otbossimplugins/ossim/AlosPalsar/AlosSarSignalData.cpp +++ b/Utilities/otbossimplugins/ossim/AlosPalsar/AlosSarSignalData.cpp @@ -28,6 +28,8 @@ AlosSarSignalData::~AlosSarSignalData() std::ostream& operator<<(std::ostream& os, const AlosSarSignalData& data) { + os << "_pulse_repetition_frequency:" + << data._pulse_repetition_frequency << std::endl; os << "_slant_range_to_1st_data_sample:" << data._slant_range_to_1st_data_sample << std::endl; diff --git a/Utilities/otbossimplugins/ossim/ossimAlosPalsarModel.cpp b/Utilities/otbossimplugins/ossim/ossimAlosPalsarModel.cpp index f78f779787..52c5cad7e7 100644 --- a/Utilities/otbossimplugins/ossim/ossimAlosPalsarModel.cpp +++ b/Utilities/otbossimplugins/ossim/ossimAlosPalsarModel.cpp @@ -480,8 +480,9 @@ bool ossimAlosPalsarModel::InitRefPoint(const ossimKeywordlist &kwl, const char const char* inp_sctim_str = kwl.find(prefix,"inp_sctim"); - const char* rng_gate_str = kwl.find(prefix,"zero_dop_range_time_f_pixel"); - double rng_gate = atof(rng_gate_str); + // Not available for ALOS + //const char* rng_gate_str = kwl.find(prefix,"zero_dop_range_time_f_pixel"); + //double rng_gate = atof(rng_gate_str); if(_refPoint == NULL) { @@ -566,12 +567,14 @@ bool ossimAlosPalsarModel::InitRefPoint(const ossimKeywordlist &kwl, const char double c = 2.99792458e+8; - double distance = (rng_gate*1e-3 + ((double)sc_pix)*_sensor->get_nRangeLook()/_sensor->get_sf()) * (c/2.0); + //double distance = (rng_gate*1e-3 + ((double)sc_pix)*_sensor->get_nRangeLook()/_sensor->get_sf()) * (c/2.0); + const char* slantRange = kwl.find(prefix, "slant_range_to_1st_data_sample"); + double distance = atof(slantRange); _refPoint->set_distance(distance); // in order to use ossimSensorModel::lineSampleToWorld - const char* nbCol_str = kwl.find(prefix,"num_pix"); + const char* nbCol_str = kwl.find(prefix,"num_pix_in_line"); const char* nbLin_str = kwl.find(prefix,"num_lines"); theImageSize.x = atoi(nbCol_str); theImageSize.y = atoi(nbLin_str); -- GitLab