diff --git a/Utilities/otbossimplugins/ossim/ossimEnvisatAsarModel.cpp b/Utilities/otbossimplugins/ossim/ossimEnvisatAsarModel.cpp index 0abfa4d9cbb5460975b94ec8adf72fb7cd252aab..cc900312b33f4bf07a699ee45389557efe7280a0 100644 --- a/Utilities/otbossimplugins/ossim/ossimEnvisatAsarModel.cpp +++ b/Utilities/otbossimplugins/ossim/ossimEnvisatAsarModel.cpp @@ -68,7 +68,7 @@ namespace ossimplugins { const double CLUM = 2.99792458e+8 ; - double GR, GR0, relativeGroundRange, slantRange, slantrangetime; + double GR, GR0, relativeGroundRange, slantRange; if (_n_srgr==0) return(-1) ; @@ -83,7 +83,6 @@ namespace ossimplugins + coefset[4]*pow(relativeGroundRange,3) + coefset[5]*pow(relativeGroundRange,4); - slantrangetime = 2.0*slantRange / (CLUM); return slantRange ; } diff --git a/Utilities/otbossimplugins/ossim/ossimRadarSat2Model.cpp b/Utilities/otbossimplugins/ossim/ossimRadarSat2Model.cpp index c7e78de798ce0b89b77360089f69facb77572dbf..7364f1bb03d732653cfb54f962011963a7a6d4db 100644 --- a/Utilities/otbossimplugins/ossim/ossimRadarSat2Model.cpp +++ b/Utilities/otbossimplugins/ossim/ossimRadarSat2Model.cpp @@ -460,7 +460,11 @@ bool ossimRadarSat2Model::InitPlatformPosition(const ossimKeywordlist &kwl, cons CivilDateTime eph_civil_date; - if (! ossim::iso8601TimeStringToCivilDate(utcString, eph_civil_date)) return false; + if (! ossim::iso8601TimeStringToCivilDate(utcString, eph_civil_date)) + { + delete ephemeris; + return false; + } JSDDateTime eph_jsd_date(eph_civil_date); @@ -514,7 +518,11 @@ bool ossimRadarSat2Model::InitRefPoint(const ossimKeywordlist &kwl, std::string zeroDopplerTimeFirstLine(zeroDopplerTimeFirstLine_str); CivilDateTime * date = new CivilDateTime() ; - if (! ossim::iso8601TimeStringToCivilDate(zeroDopplerTimeFirstLine, *date)) return false ; + if (! ossim::iso8601TimeStringToCivilDate(zeroDopplerTimeFirstLine, *date)) + { + delete date; + return false ; + } if (_sensor->get_lin_direction() == -1) { double time = (double) date->get_second() + date->get_decimal() ; // upper left corner @@ -522,18 +530,22 @@ bool ossimRadarSat2Model::InitRefPoint(const ossimKeywordlist &kwl, date->set_second((int) floor(time)) ; date->set_decimal(time - floor(time)) ; } - delete date;//FIXME to confirm if(_platformPosition != 0) { Ephemeris * ephemeris = _platformPosition->Interpolate((JSDDateTime)*date); - if (ephemeris == 0) return false ; + if (ephemeris == 0) + { + delete date; + return false ; + } _refPoint->set_ephemeris(ephemeris); delete ephemeris; } else { + delete date; return false; } @@ -593,6 +605,8 @@ bool ossimRadarSat2Model::InitRefPoint(const ossimKeywordlist &kwl, // Default optimization optimizeModel(groundGcpCoordinates, imageGcpCoordinates) ; + delete date; + return true; } @@ -648,7 +662,7 @@ int ossimRadarSat2Model::FindSRGRSetNumber(JSDDateTime date) const { if (_n_srgr==0) return(-1) ; - double delays[20]; + double * delays = new double[_n_srgr]; for (int i=0;i<_n_srgr;i++) { delays[i] = fabs(date.get_second()+date.get_decimal()-_srgr_update[i]) ; @@ -663,6 +677,7 @@ int ossimRadarSat2Model::FindSRGRSetNumber(JSDDateTime date) const min_delay = delays[i] ; } } + delete [] delays; return setNumber ; } diff --git a/Utilities/otbossimplugins/ossim/ossimRadarSat2ProductDoc.cpp b/Utilities/otbossimplugins/ossim/ossimRadarSat2ProductDoc.cpp index 65a03bea50565382b7fb2fb3e82ff5616e0934dc..9dd620f54b90dc5f87c4fc24a1f0ce9f94c01ae7 100644 --- a/Utilities/otbossimplugins/ossim/ossimRadarSat2ProductDoc.cpp +++ b/Utilities/otbossimplugins/ossim/ossimRadarSat2ProductDoc.cpp @@ -233,15 +233,13 @@ bool ossimRadarSat2ProductDoc::initPlatformPosition( } pos->setData(ephemeris, nbrData); } - else - { - for (int idx = 0; idx < nbrData; ++idx) - { - delete ephemeris[idx]; - } - delete [] ephemeris; - ephemeris = 0; - } + + for (int idx = 0; idx < nbrData; ++idx) + { + delete ephemeris[idx]; + } + delete [] ephemeris; + ephemeris = 0; } // matches: if ( xnodes.size() ) else @@ -830,27 +828,28 @@ RPCModel ossimRadarSat2ProductDoc::getRpcData(const ossimXmlDocument* xdoc) cons } // end character search term - - model.biasError = biasError; - model.randomError = randomError; - model.lineFitQuality = lineFitQuality; - model.pixelFitQuality = pixelFitQuality; - model.lineOffset = lineOffset; - model.pixelOffset = pixelOffset; - model.latitudeOffset = latitudeOffset; - model.longitudeOffset = longitudeOffset; - model.heightOffset = heightOffset; - model.lineScale = lineScale; - model.pixelScale = pixelScale; - model.latitudeScale = latitudeScale; - model.longitudeScale = longitudeScale; - model.heightScale = heightScale; - model.lineNumeratorCoefficients = lineNumeratorCoefficients; - model.lineDenominatorCoefficients = lineDenominatorCoefficients; - model.pixelNumeratorCoefficients = pixelNumeratorCoefficients; - model.pixelDenominatorCoefficients = pixelDenominatorCoefficients; } + // Fill RPCModel members + model.biasError = biasError; + model.randomError = randomError; + model.lineFitQuality = lineFitQuality; + model.pixelFitQuality = pixelFitQuality; + model.lineOffset = lineOffset; + model.pixelOffset = pixelOffset; + model.latitudeOffset = latitudeOffset; + model.longitudeOffset = longitudeOffset; + model.heightOffset = heightOffset; + model.lineScale = lineScale; + model.pixelScale = pixelScale; + model.latitudeScale = latitudeScale; + model.longitudeScale = longitudeScale; + model.heightScale = heightScale; + model.lineNumeratorCoefficients = lineNumeratorCoefficients; + model.lineDenominatorCoefficients = lineDenominatorCoefficients; + model.pixelNumeratorCoefficients = pixelNumeratorCoefficients; + model.pixelDenominatorCoefficients = pixelDenominatorCoefficients; + return model; } diff --git a/Utilities/otbossimplugins/ossim/ossimRadarSatModel.cpp b/Utilities/otbossimplugins/ossim/ossimRadarSatModel.cpp index dd9e2deaa423a475da8008497302f4179a2bb1e1..c78dd89acee65fe1245f0e28cac0c022e1703522 100644 --- a/Utilities/otbossimplugins/ossim/ossimRadarSatModel.cpp +++ b/Utilities/otbossimplugins/ossim/ossimRadarSatModel.cpp @@ -1211,7 +1211,7 @@ int ossimRadarSatModel::FindSRGRSetNumber(JSDDateTime date) const { if (_n_srgr==0) return(-1) ; - double delays[20]; + double * delays = new double[_n_srgr]; for (int i=0;i<_n_srgr;i++) { delays[i] = fabs(date.get_second()+date.get_decimal()-_srgr_update[i]) ; @@ -1226,6 +1226,8 @@ int ossimRadarSatModel::FindSRGRSetNumber(JSDDateTime date) const min_delay = delays[i] ; } } + + delete [] delays; return setNumber ; } } diff --git a/Utilities/otbossimplugins/ossim/ossimSpot6DimapSupportData.cpp b/Utilities/otbossimplugins/ossim/ossimSpot6DimapSupportData.cpp index d730421302305ae8e8b27492b0e6e1cf5891f75b..6fd95d9438d33a2b6f1fee4a2fc52bd9c24545f5 100644 --- a/Utilities/otbossimplugins/ossim/ossimSpot6DimapSupportData.cpp +++ b/Utilities/otbossimplugins/ossim/ossimSpot6DimapSupportData.cpp @@ -1342,7 +1342,7 @@ namespace ossimplugins } ossimString bandName = sub_nodes[0]->getText(); - ossim_uint32 bandIndex; + ossim_uint32 bandIndex = 0; if (bandName == "B0") bandIndex = 0; else diff --git a/Utilities/otbossimplugins/ossim/ossimTerraSarModel.cpp b/Utilities/otbossimplugins/ossim/ossimTerraSarModel.cpp index cc4f3bfba06b1f857ce0894b37e0ba327365fe5c..6e9650effe71d95cf0ead61c9cbc946081d1cd18 100644 --- a/Utilities/otbossimplugins/ossim/ossimTerraSarModel.cpp +++ b/Utilities/otbossimplugins/ossim/ossimTerraSarModel.cpp @@ -1129,7 +1129,11 @@ bool ossimplugins::ossimTerraSarModel::InitPlatformPosition( */ std::string utcString(date_str); CivilDateTime eph_civil_date; - if (! ossim::iso8601TimeStringToCivilDate(utcString, eph_civil_date)) return false; + if (! ossim::iso8601TimeStringToCivilDate(utcString, eph_civil_date)) + { + delete [] ephemeris; + return false; + } JSDDateTime eph_jsd_date(eph_civil_date); @@ -1195,6 +1199,7 @@ bool ossimplugins::ossimTerraSarModel::InitRefPoint(const ossimKeywordlist &kwl, } else { + delete date; return false; } @@ -1227,14 +1232,26 @@ bool ossimplugins::ossimTerraSarModel::InitRefPoint(const ossimKeywordlist &kwl, std::string azimuthStartTime(kwl.find("azimuthStartTime")); std::string azimuthStopTime(kwl.find("azimuthStopTime")); CivilDateTime * dateStart = new CivilDateTime() ; - if (! ossim::iso8601TimeStringToCivilDate(azimuthStartTime, *dateStart)) return false ; + if (! ossim::iso8601TimeStringToCivilDate(azimuthStartTime, *dateStart)) + { + delete dateStart; + return false ; + } CivilDateTime * dateStop = new CivilDateTime() ; - if (! ossim::iso8601TimeStringToCivilDate(azimuthStopTime, *dateStop)) return false ; + if (! ossim::iso8601TimeStringToCivilDate(azimuthStopTime, *dateStop)) + { + delete dateStart; + delete dateStop; + return false ; + } double acq_msec_first = (double) dateStart->get_second()+dateStart->get_decimal(); double acq_msec_last = (double) dateStop->get_second()+dateStop->get_decimal(); double actualPRF = theImageSize.y/(acq_msec_last-acq_msec_first) ; _sensor->set_nAzimuthLook(_sensor->get_prf()/actualPRF); + + delete dateStart; + delete dateStop; } else _sensor->set_nAzimuthLook(1.0); diff --git a/Utilities/otbossimplugins/ossim/ossimTerraSarProductDoc.cpp b/Utilities/otbossimplugins/ossim/ossimTerraSarProductDoc.cpp index 7f1ef5b1e780037462bf1b01f1a060f54e8e2877..6bf296aae2b58e003fee67b721fa3f3b63f64324 100644 --- a/Utilities/otbossimplugins/ossim/ossimTerraSarProductDoc.cpp +++ b/Utilities/otbossimplugins/ossim/ossimTerraSarProductDoc.cpp @@ -243,6 +243,7 @@ bool ossimplugins::ossimTerraSarProductDoc::initPlatformPosition( << " DEBUG\nnbrData: " << nbrData << "\n"; } pos->setData(ephemeris, nbrData); + delete [] ephemeris; } else { diff --git a/Utilities/otbossimplugins/ossim/otb/GMSTDateTime.cpp b/Utilities/otbossimplugins/ossim/otb/GMSTDateTime.cpp index a67b1707e26df7265f74af3dcf7f7858213bbe30..263f972395b8f2347b021d909556ab5393a7525e 100644 --- a/Utilities/otbossimplugins/ossim/otb/GMSTDateTime.cpp +++ b/Utilities/otbossimplugins/ossim/otb/GMSTDateTime.cpp @@ -17,7 +17,9 @@ namespace ossimplugins GMSTDateTime::GMSTDateTime(): - _tms(0) + _tms(0), + // TODO: Check this initialisation + _origine(GMSTDateTime::AN1900) { }