From 21b77025ea533c1d3858c3dd7b88287069900ed9 Mon Sep 17 00:00:00 2001 From: Chia Aik Song <crscas@nus.edu.sg> Date: Thu, 24 Sep 2009 16:47:13 +0800 Subject: [PATCH] TEST: Fix reading of ALOS data file header --- .../ossim/AlosPalsar/AlosSarData.cpp | 4 +++ .../AlosPalsar/AlosSarDataFileDescriptor.cpp | 30 ++++++++++++++----- 2 files changed, 26 insertions(+), 8 deletions(-) diff --git a/Utilities/otbossimplugins/ossim/AlosPalsar/AlosSarData.cpp b/Utilities/otbossimplugins/ossim/AlosPalsar/AlosSarData.cpp index 63f122b307..e8032ea011 100644 --- a/Utilities/otbossimplugins/ossim/AlosPalsar/AlosSarData.cpp +++ b/Utilities/otbossimplugins/ossim/AlosPalsar/AlosSarData.cpp @@ -70,6 +70,7 @@ std::istream& operator>>(std::istream& is, AlosSarData& data) { record->Read(is); data._records[header.get_rec_seq()] = record; + eof = true; } else { @@ -141,6 +142,9 @@ bool AlosSarData::saveState(ossimKeywordlist& kwl, { kwl.add(prefix, "num_lines", datafiledesc->get_num_lines(),true); kwl.add(prefix, "num_pix_in_line", datafiledesc->get_num_pix_in_line(),true); + // FIXME debug + std::cout << std::endl << "num_lines = " << datafiledesc->get_num_lines() << std::endl; + std::cout << std::endl << "num_pix_in_line = " << datafiledesc->get_num_pix_in_line() << std::endl; } else { diff --git a/Utilities/otbossimplugins/ossim/AlosPalsar/AlosSarDataFileDescriptor.cpp b/Utilities/otbossimplugins/ossim/AlosPalsar/AlosSarDataFileDescriptor.cpp index babdd25a99..ea310045b5 100644 --- a/Utilities/otbossimplugins/ossim/AlosPalsar/AlosSarDataFileDescriptor.cpp +++ b/Utilities/otbossimplugins/ossim/AlosPalsar/AlosSarDataFileDescriptor.cpp @@ -36,21 +36,35 @@ std::istream& operator>>(std::istream& is, AlosSarDataFileDescriptor& data) char buf6[7]; buf6[6] = '\0'; - char buf180[181]; - buf180[180] = '\0'; + char buf168[169]; + buf168[168] = '\0'; - is.read(buf180,180); + char buf94[95]; + buf94[94] = '\0'; + + char buf8[9]; + buf8[8] = '\0'; + + is.read(buf168,168); is.read(buf6,6); data._num_lines = atoi(buf6); + // FIXME debug + std::cout << std::endl << "buf6: {" << buf6 << "}" << std::endl; - is.read(buf6,6); - data._num_pix_in_line = atoi(buf6); + is.read(buf94,94); + + int tmpval; + is.read(buf8,8); + tmpval = atoi(buf8); + data._num_pix_in_line = tmpval/8; // Assume data always in 8-byte complex format + // FIXME debug + std::cout << std::endl << "buf8: {" << buf8 << "}" << std::endl; - char buf528[528]; - buf528[528] = '\0'; + char buf432[433]; + buf432[432] = '\0'; - is.read(buf528,528); + is.read(buf432,432); return is; } -- GitLab