diff --git a/CHANGELOG.md b/CHANGELOG.md index 2be0ea8a3a..9bd950c72d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -35,6 +35,20 @@ release. ## [Unreleased] +## [8.0.2] - 2023-12-05 +### Changed +- Cnetedit has been refactored to be callable; old Makefile tests have been removed and replaced by gtests. Issue: [#5346](https://github.com/USGS-Astrogeology/ISIS3/issues/5346), +- Cnetdiff has been refactored to be callable; old Makefile tests have been removed and replaced by gtests. Issue: [#5322](https://github.com/USGS-Astrogeology/ISIS3/issues/5322), +### Fixed +- Bug fix for Cnetthinner app resolving divide by zero in CnetManager.cpp. Issue: [#5354](https://github.com/USGS-Astrogeology/ISIS3/issues/5354), +- Updated photomet MinnaertEmpirical model to support photemplate-style PVL format [#3621](https://github.com/DOI-USGS/ISIS3/issues/3621) +- Fixed target name translation for any dawn images with target "4 CERES" [#5294](https://github.com/DOI-USGS/ISIS3/pull/5294) +- Fixed exception pop ups in qview when viewing images created using the CSM Camera [#5259](https://github.com/DOI-USGS/ISIS3/pull/5295/files) +- Fixed shadowtau input file parseing errors when using example file [#5316](https://github.com/DOI-USGS/ISIS3/pull/5316) +- Fixed ProgramLauncher failing while reporting errors from launched programs [#5331](https://github.com/DOI-USGS/ISIS3/pull/5331) +- Fixed high/low filter functionality in trimfilter [#5311](https://github.com/DOI-USGS/ISIS3/issues/5311) +- Fixed downloadIsisData script excluding needed files in the calibration folder [#5272](https://github.com/DOI-USGS/ISIS3/issues/5272) + ## [8.0.1] - 2023-08-23 ### Fixed diff --git a/code.json b/code.json index 395d7e8a81..1c77b56642 100644 --- a/code.json +++ b/code.json @@ -44,6 +44,50 @@ "metadataLastUpdated": "2023-02-27" } }, { + "name": "ISIS3", + "organization": "U.S. Geological Survey", + "description": "GitHub code repository for the Integrated Software for Imagers and Spectrometers (ISIS)", + "version": "8.0.2", + "status": "Production", + + "permissions": { + "usageType": "openSource", + "licenses": [ + { + "name": "Public Domain, CC0-1.0", + "URL": "https://code.usgs.gov/DOI-USGS/isis/-/raw/8.0.2/LICENSE.md" + } + ] + }, + + "homepageURL": "https://isis.astrogeology.usgs.gov", + "downloadURL": "https://code.usgs.gov/astrogeology/isis/-/archive/8.0.2/isis-8.0.2.zip", + "disclaimerURL": "https://code.usgs.gov/astrogeology/isis/-/raw/8.0.2/DISCLAIMER.md", + "repositoryURL": "https://code.usgs.gov/astrogeology/isis.git", + "vcs": "git", + + "laborHours": 0, + + "tags": [ + "Planetary", + "Remote Sensing", + "Photogrammetry", + "Data Processing" + ], + + "languages": [ + "C++" + ], + + "contact": { + "name": "Austin Sanders", + "email": "arsanders@usgs.gov" + }, + + "date": { + "metadataLastUpdated": "2023-12-05" + } + },{ "name": "ISIS3", "organization": "U.S. Geological Survey", "description": "GitHub code repository for the Integrated Software for Imagers and Spectrometers (ISIS)", diff --git a/isis/CMakeLists.txt b/isis/CMakeLists.txt index 24ae0d216c..dab915fabd 100644 --- a/isis/CMakeLists.txt +++ b/isis/CMakeLists.txt @@ -34,7 +34,7 @@ set(PACKAGE "ISIS") set(PACKAGE_NAME "USGS ISIS") # Version number -set(VERSION "8.0.1") +set(VERSION "8.0.2") string(REPLACE "." ";" VERSION_LIST ${VERSION}) list(GET VERSION_LIST 0 VERSION_MAJOR) list(GET VERSION_LIST 1 VERSION_MINOR) diff --git a/isis/scripts/downloadIsisData b/isis/scripts/downloadIsisData index 6f3e00849f..bfbb67b146 100755 --- a/isis/scripts/downloadIsisData +++ b/isis/scripts/downloadIsisData @@ -17,7 +17,7 @@ import re # priority is: lowest index is highest priority filter_list = [ - '+ calibration/**' # we generally want everything in calibration + '+ calibration/**', # we generally want everything in calibration '- source/', '- /a_older_versions/', '- /former_versions/', diff --git a/isis/src/base/apps/mosrange/tsts/Makefile b/isis/src/base/apps/mosrange/tsts/Makefile deleted file mode 100644 index 46d84c74c2..0000000000 --- a/isis/src/base/apps/mosrange/tsts/Makefile +++ /dev/null @@ -1,4 +0,0 @@ -BLANKS = "%-6s" -LENGTH = "%-40s" - -include $(ISISROOT)/make/isismake.tststree diff --git a/isis/src/base/apps/shadowtau/main.cpp b/isis/src/base/apps/shadowtau/main.cpp index 1d1d4383ca..f712cd1bc4 100644 --- a/isis/src/base/apps/shadowtau/main.cpp +++ b/isis/src/base/apps/shadowtau/main.cpp @@ -250,17 +250,45 @@ void IsisMain() { // rejected if there aren't enough words or if any of them don't make // sense as the corresponding parameter. FileName sInFileName(sInFile); - TextFile infile(sInFileName.expanded()); + // Try with the default ',' delimiter, if that only produces one row + // item, try with spaces + CSVReader inFile(sInFileName.expanded()); + if (inFile.getRow(0).dim() <= 1) { + inFile = CSVReader(sInFileName.expanded(), false, 0, ' '); + } + + if (inFile.getRow(0).dim() <= 1) { + QString msg = "File [" + sInFileName.expanded() + "] either has only one line item or is not delimited by a ',' or ' '."; + throw IException(IException::User, msg, _FILEINFO_); + } + QString infileString; - while (infile.GetLine(infileString)) { - QStringList tokens = infileString.split(QRegExp("[ ,]")); - - QString imgId = tokens.takeFirst(); - double inc = toDouble(tokens.takeFirst()); - double ema = toDouble(tokens.takeFirst()); - double phase = toDouble(tokens.takeFirst()); - double pflat = toDouble(tokens.takeFirst()); - double pshad = toDouble(tokens.takeFirst()); + for (int i = 0; i < inFile.rows(); i++) { + CSVReader::CSVAxis row = inFile.getRow(i); + + if (row.dim1() < 6) { + continue; + } + + QString imgId = row[0]; + std::vector angles = {}; + for (int j = 1; j < row.dim(); j++) { + try { + angles.push_back(toDouble(row[j])); + } + catch (IException &e) { + QString msg = "Unable to convert (" + toString(i) + ", " + toString(j) + + ") element [" + row[j] + "] to double. You may want to check for excess delimiters." + + "Current delimiter is set to '" + inFile.getDelimiter() + "'"; + throw IException(IException::User, msg, _FILEINFO_); + } + } + + double inc = angles[0]; + double ema = angles[1]; + double phase = angles[2]; + double pflat = angles[3]; + double pshad = angles[4]; // checking validity if (!imgId.length() || (inc < 0 || inc >= 89.9) || (ema < 0 || ema >= 89.9) || diff --git a/isis/src/base/apps/trimfilter/main.cpp b/isis/src/base/apps/trimfilter/main.cpp index 8b9ba03aa4..3b79ce80cd 100644 --- a/isis/src/base/apps/trimfilter/main.cpp +++ b/isis/src/base/apps/trimfilter/main.cpp @@ -27,6 +27,13 @@ void IsisMain() { double low = -DBL_MAX; double high = DBL_MAX; int minimum; + + if(ui.WasEntered("LOW")) { + low = ui.GetDouble("LOW"); + } + if(ui.WasEntered("HIGH")) { + high = ui.GetDouble("HIGH"); + } if(ui.GetString("MINOPT") == "PERCENTAGE") { int size = lines * samples; double perc = ui.GetDouble("MINIMUM") / 100; @@ -35,6 +42,7 @@ void IsisMain() { else { minimum = (int) ui.GetDouble("MINIMUM"); } + p.SetFilterParameters(samples, lines, low, high, minimum); // Process each line diff --git a/isis/src/base/objs/MinnaertEmpirical/MinnaertEmpirical.cpp b/isis/src/base/objs/MinnaertEmpirical/MinnaertEmpirical.cpp index f39610a6ea..627ea99a15 100755 --- a/isis/src/base/objs/MinnaertEmpirical/MinnaertEmpirical.cpp +++ b/isis/src/base/objs/MinnaertEmpirical/MinnaertEmpirical.cpp @@ -74,7 +74,7 @@ namespace Isis { * phase curve values that exist between the given phase angles. The values * in the phase angle list are limited to values that are >=0 and <=180. * - * @param phaselist List of phase angles to interpolate + * @param phasestrlist List of phase angles to interpolate */ void MinnaertEmpirical::SetPhotoPhaseList(QString phasestrlist) { double phaseangle; @@ -92,6 +92,38 @@ namespace Isis { } } + /** + * Set the empirical Minnaert function phase angle list. This is the list + * of phase angles that Minnaert K values and phase curve list values will + * be provided for. A spline curve will be used to interpolate K values and + * phase curve values that exist between the given phase angles. The values + * in the phase angle list are limited to values that are >=0 and <=180. + * + * @param phaselist PvlKeyword containing phase angles to interpolate + */ + void MinnaertEmpirical::SetPhotoPhaseList(PvlKeyword phaseList) { + + // If the format is Keyword="1,2,3,4,5" rather than Keyword = (1,2,3,4,5) + if (phaseList.size() == 1) { + SetPhotoPhaseList(QString(phaseList)); + return; + } + + double phaseAngle; + p_photoPhaseList.clear(); + + for (int i=0; i< phaseList.size(); i++) { + phaseAngle = phaseList[i].toDouble(); + + if (phaseAngle < 0.0 || phaseAngle > 180.0) { + QString msg = "Invalid value of empirical Minnaert phase angle list value [" + + toString(phaseAngle) + "]"; + throw IException(IException::User, msg, _FILEINFO_); + } + p_photoPhaseList.push_back(phaseAngle); + } + } + /** * Set the empirical Minnaert function K exponent list. This is used to * govern the limb-darkening in the Minnaert photometric function. Values @@ -99,7 +131,7 @@ namespace Isis { * almost no limb darkening) to 1.0 (Lambert function). This * parameter is limited to values that are >=0. * - * @param klist List of Minnaert function exponents to interpolate + * @param kstrlist List of Minnaert function exponents to interpolate */ void MinnaertEmpirical::SetPhotoKList(QString kstrlist) { double kvalue; @@ -117,6 +149,29 @@ namespace Isis { } } + /** + * Set the empirical Minnaert function K exponent list. This is used to + * govern the limb-darkening in the Minnaert photometric function. Values + * of the Minnaert exponent generally fall in the range from 0.5 ("lunar-like", + * almost no limb darkening) to 1.0 (Lambert function). This + * parameter is limited to values that are >=0. + * + * @param kstrList PvkKeyword containing List of Minnaert function exponents to interpolate + */ + void MinnaertEmpirical::SetPhotoKList(PvlKeyword kstrList) { + + // If the format is Keyword="1,2,3,4,5" rather than Keyword = (1,2,3,4,5) + if (kstrList.size() == 1) { + SetPhotoKList(QString(kstrList)); + return; + } + + p_photoKList.clear(); + for (int i=0; i PhotoPhaseList() const { diff --git a/isis/src/base/objs/MinnaertEmpirical/MinnaertEmpirical.truth b/isis/src/base/objs/MinnaertEmpirical/MinnaertEmpirical.truth index 8c7bece192..4c235e235e 100644 --- a/isis/src/base/objs/MinnaertEmpirical/MinnaertEmpirical.truth +++ b/isis/src/base/objs/MinnaertEmpirical/MinnaertEmpirical.truth @@ -26,3 +26,27 @@ Albedo = 0.008174 Test phase=180.0, incidence=90.0, emission=90.0 ... Albedo = 0 +Object = PhotometricModel + Group = Algorithm + Name = MinnaertEmpirical + PhaseList = (0, 10, 20, 30, 40, 50, 60, 70, 80, 90, 100, 110, 120, + 130, 140) + KList = (0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1, 1.1, + 1.2, 1.3, 1.4) + PhaseCurveList = (0, 0.3, 0.6, 0.9, 1.2, 1.5, 1.8, 2.1, 2.4, 2.7, 3, 3.3, + 3.6, 3.9, 4.2) + End_Group +End_Object +End + +Test phase=0.0, incidence=0.0, emission=0.0 ... +Albedo = 0 +Test phase=38.0, incidence=11.0, emission=20.0 ... +Albedo = 1.1765 +Test phase=65.0, incidence=45.0, emission=30.0 ... +Albedo = 1.63706 +Test phase=127.0, incidence=52.0, emission=33.0 ... +Albedo = 1.96227 +Test phase=180.0, incidence=90.0, emission=90.0 ... +Albedo = 0 + diff --git a/isis/src/base/objs/MinnaertEmpirical/unitTest.cpp b/isis/src/base/objs/MinnaertEmpirical/unitTest.cpp index d0570514f3..ac469bb13a 100755 --- a/isis/src/base/objs/MinnaertEmpirical/unitTest.cpp +++ b/isis/src/base/objs/MinnaertEmpirical/unitTest.cpp @@ -68,5 +68,64 @@ int main() { e.print(); } + // Test Keyword = (1,2,3,4,5) format for input + // + // The actual numbers used for this test are not relevant -- this test's primary purpose is to + // ensure that this format of input is usable for the calculations done by the class without the + // program error-ing out. + PvlGroup algOtherFormat("Algorithm"); + algOtherFormat += PvlKeyword("Name", "MinnaertEmpirical"); + + PvlKeyword phaseList("PhaseList"); + PvlKeyword kList("KList"); + PvlKeyword phaseCurveList("PhaseCurveList"); + + for (int i=0; i < 15; i++) { + phaseList += QString::number(i*10); + kList += QString::number(i*0.1); + phaseCurveList += QString::number(i*0.3); + } + + algOtherFormat += phaseList; + algOtherFormat += kList; + algOtherFormat += phaseCurveList; + + PvlObject photometricModel("PhotometricModel"); + photometricModel.addGroup(algOtherFormat); + + Pvl pvlOtherFormat; + pvlOtherFormat.addObject(photometricModel); + std::cout << pvlOtherFormat << std::endl << std::endl; + + try { + PhotoModel *pm = PhotoModelFactory::Create(pvlOtherFormat); + + std::vectorphaselist = pm->PhotoPhaseList(); + + std::cout << "Test phase=0.0, incidence=0.0, emission=0.0 ..." << + std::endl; + std::cout << "Albedo = " << pm->CalcSurfAlbedo(0.0, 0.0, 0.0) << + std::endl; + std::cout << "Test phase=38.0, incidence=11.0, emission=20.0 ..." << + std::endl; + std::cout << "Albedo = " << pm->CalcSurfAlbedo(38.0, 11.0, 20.0) << + std::endl; + std::cout << "Test phase=65.0, incidence=45.0, emission=30.0 ..." << + std::endl; + std::cout << "Albedo = " << pm->CalcSurfAlbedo(65.0, 45.0, 30.0) << + std::endl; + std::cout << "Test phase=127.0, incidence=52.0, emission=33.0 ..." << + std::endl; + std::cout << "Albedo = " << pm->CalcSurfAlbedo(127.0, 52.0, 33.0) << + std::endl; + std::cout << "Test phase=180.0, incidence=90.0, emission=90.0 ..." << + std::endl; + std::cout << "Albedo = " << pm->CalcSurfAlbedo(180.0, 90.0, 90.0) << + std::endl << std::endl; + } + catch(IException &e) { + e.print(); + } + return 0; } diff --git a/isis/src/base/objs/ProgramLauncher/ProgramLauncher.cpp b/isis/src/base/objs/ProgramLauncher/ProgramLauncher.cpp index 84af06cada..08cb8ed0f4 100644 --- a/isis/src/base/objs/ProgramLauncher/ProgramLauncher.cpp +++ b/isis/src/base/objs/ProgramLauncher/ProgramLauncher.cpp @@ -178,7 +178,6 @@ namespace Isis { for(int i = 0; i < errorPvl.groups(); i++) { PvlGroup &g = errorPvl.group(i); - QString eclass = g["Class"]; QString emsg = g["Message"]; int ecode = g["Code"]; QString efile = g["File"]; diff --git a/isis/src/base/objs/iTime/iTime.cpp b/isis/src/base/objs/iTime/iTime.cpp index ac3b593964..5a30402785 100644 --- a/isis/src/base/objs/iTime/iTime.cpp +++ b/isis/src/base/objs/iTime/iTime.cpp @@ -478,9 +478,16 @@ namespace Isis { QString baseDir = dataDir["Base"]; baseDir += "/kernels/lsk/"; FileName leapSecond(baseDir + "naif????.tls"); + QString leapSecondName; + try { + leapSecondName = QString(leapSecond.highestVersion().expanded()); + } + catch (IException &e) { + QString msg = "Unable to load leadsecond file. Either the data area is not set or there are no naif####.tls files present"; + throw IException(e, IException::User, msg, _FILEINFO_); + } NaifStatus::CheckErrors(); - QString leapSecondName(leapSecond.highestVersion().expanded()); furnsh_c(leapSecondName.toLatin1().data()); NaifStatus::CheckErrors(); diff --git a/isis/src/control/apps/cnetdiff/cnetdiff.cpp b/isis/src/control/apps/cnetdiff/cnetdiff.cpp new file mode 100644 index 0000000000..3dd9c78660 --- /dev/null +++ b/isis/src/control/apps/cnetdiff/cnetdiff.cpp @@ -0,0 +1,380 @@ +/** This is free and unencumbered software released into the public domain. +The authors of ISIS do not claim copyright on the contents of this file. +For more details about the LICENSE terms and the AUTHORS, you will +find files of those names at the top level of this repository. **/ + +/* SPDX-License-Identifier: CC0-1.0 */ + +#include "cnetdiff.h" + +#include +#include + +#include +#include + +#include "ControlNet.h" +#include "ControlNetDiff.h" +#include "ControlNetVersioner.h" +#include "IException.h" +#include "PvlContainer.h" +#include "PvlGroup.h" + +using namespace std; + +namespace Isis { + + bool filesMatch; + QString differenceReason; + PvlGroup tolerances; + PvlGroup ignorekeys; + + void CompareKeywords(const PvlKeyword &pvl1, const PvlKeyword &pvl2); + void CompareGroups(const PvlContainer &pvl1, const PvlContainer &pvl2); + void Compare(const PvlObject &point1, const PvlObject &point2); + void Compare(ControlNetVersioner &net1, ControlNetVersioner &net2); + + /** + * Compare two control networks + * + * @param ui UserInterface object containing parameters + * @return Pvl results log file + */ + Pvl cnetdiff(UserInterface &ui) { + + // input control networks + ControlNet cnet1 = ControlNet(ui.GetFileName("FROM")); + ControlNet cnet2 = ControlNet(ui.GetFileName("FROM2")); + + if(ui.WasEntered("DIFF")) { + Pvl diffFile(ui.GetFileName("DIFF")); + return cnetdiff(cnet1, cnet2, ui, &diffFile); + } + + return cnetdiff(cnet1, cnet2, ui); + } + + + /** + * Compare two control networks + * + * @param ControlNet cnet1 1st control net for comparison + * @param ControlNet cnet2 2nd control net for comparison + * @return Pvl results log file + */ + Pvl cnetdiff(ControlNet &cnet1, ControlNet &cnet2, UserInterface &ui, + Pvl *diffFile) { + Pvl log; + + // create ControlNetVersioner objects for each net + ControlNetVersioner cnv1(&cnet1); + ControlNetVersioner cnv2(&cnet2); + + // report first difference only + if (ui.GetString("REPORT") == "FIRST") { + tolerances = PvlGroup(); + ignorekeys = PvlGroup(); + + differenceReason = ""; + filesMatch = true; + + if (diffFile != nullptr) { + if(diffFile->hasGroup("Tolerances")) { + tolerances = diffFile->findGroup("Tolerances"); + } + + if(diffFile->hasGroup("IgnoreKeys")) { + ignorekeys = diffFile->findGroup("IgnoreKeys"); + } + } + + // Don't want to consider the DateTime of a Point or Measure was set by + // default. + if(!ignorekeys.hasKeyword("DateTime")) { + ignorekeys += PvlKeyword("DateTime", "true"); + } + + // compare ControlNetVersioners + Compare(cnv1, cnv2); + + PvlGroup differences("Results"); + if (filesMatch) { + differences += PvlKeyword("Compare", "Identical"); + } + else { + differences += PvlKeyword("Compare", "Different"); + differences += PvlKeyword("Reason", differenceReason); + } + + log.addLogGroup(differences); + + if (ui.WasEntered("TO")) log.write(ui.GetFileName("TO")); + + differenceReason = ""; + + return log; + } + else { // do full report + FileName fileName1(ui.GetFileName("FROM")); + FileName fileName2(ui.GetFileName("FROM2")); + + ControlNetDiff differencer; + if (diffFile != nullptr) { + differencer.addTolerances(*diffFile); + } + + Pvl out = differencer.compare(fileName1, fileName2); + if (ui.WasEntered("TO")) out.write(ui.GetFileName("TO")); + + PvlGroup results("Results"); + + // Get a count of all the differences: just the keywords at the object level + // (network data) and the number of objects (different points). Ignore the + // FileName keyword as it's a superficial difference. + PvlObject &differences = out.findObject("Differences"); + int count = differences.objects() + differences.keywords(); + + if (differences.hasKeyword("Filename")) count--; + + results += PvlKeyword("Compare", count > 0 ? "Different" : "Identical"); + log.addLogGroup(results); + return log; + } + } + + + /** + * Compare two ControlNetVersioner objects + * + * @param ControlNetVersioner net1 + * @param ControlNetVersioner net2 + */ + void Compare(ControlNetVersioner &net1, ControlNetVersioner &net2) { + + Pvl net1Pvl(net1.toPvl()); + Pvl net2Pvl(net2.toPvl()); + + PvlObject &net1Obj = net1Pvl.findObject("ControlNetwork"); + PvlObject &net2Obj = net2Pvl.findObject("ControlNetwork"); + + BigInt net1NumPts = net1Obj.objects(); + BigInt net2NumPts = net2Obj.objects(); + + if (net1NumPts != net2NumPts) { + differenceReason = "The number of control points in the networks, [" + + toString(net1NumPts) + "] and [" + + toString(net2NumPts) + "], differ."; + filesMatch = false; + return; + } + + QString id1 = net1Obj["NetworkId"][0]; + QString id2 = net2Obj["NetworkId"][0]; + + if (id1 != id2) { + differenceReason = "The network IDs [" + + id1 + "] and [" + + id2 + "] differ."; + filesMatch = false; + return; + } + + QString target1 = net1Obj["TargetName"][0]; + QString target2 = net2Obj["TargetName"][0]; + + if (target1 != target2) { + differenceReason = "The TargetName values [" + + target1 + "] and [" + + target2 + "] differ."; + filesMatch = false; + return; + } + + for(int cpIndex = 0; cpIndex < net1NumPts; cpIndex ++) { + PvlObject &cp1 = net1Obj.object(cpIndex); + PvlObject &cp2 = net2Obj.object(cpIndex); + + Compare(cp1, cp2); + + if (!filesMatch) { + return; + } + } + } + + + /** + * Compare two point PvlObjects + * + * @param const PvlObject point1Pvl + * @param const PvlObject point2Pvl + */ + void Compare(const PvlObject &point1Pvl, const PvlObject &point2Pvl) { + // both names must be at least equal, should be named ControlPoint + if (point1Pvl.name() != point2Pvl.name()) { + QString msg = "The control points' CreatePvlOject method returned an " + "unexpected result."; + throw IException(IException::Programmer, msg, _FILEINFO_); + } + + if (point1Pvl.groups() != point2Pvl.groups()) { + filesMatch = false; + differenceReason = "The number of control measures, [" + + toString(point1Pvl.groups()) + "] and [" + + toString(point2Pvl.groups()) + "] does not match."; + } + + // Start by comparing top level control point keywords. + if (filesMatch) CompareGroups(point1Pvl, point2Pvl); + + // Now compare each measure + for(int cmIndex = 0; filesMatch && cmIndex < point1Pvl.groups(); cmIndex ++) { + const PvlGroup &measure1 = point1Pvl.group(cmIndex); + const PvlGroup &measure2 = point2Pvl.group(cmIndex); + + CompareGroups(measure1, measure2); + + if(!filesMatch) { + differenceReason = "Control Measure for Cube [" + + measure1["SerialNumber"][0] + "] " + differenceReason; + } + } + + if (!filesMatch) { + differenceReason = "Control Point [" + point1Pvl["PointId"][0] + + "] " + differenceReason; + } + } + + + /** + * Compare two PvlContainer objects + * + * @param const PvlContainer pvl1 + * @param const PvlContainer pvl2 + */ + void CompareGroups(const PvlContainer &pvl1, const PvlContainer &pvl2) { + // Create equivalent PvlGroups that can easily be compared to each other + PvlGroup point1FullKeys; + PvlGroup point2FullKeys; + + for(int keywordIndex = 0; keywordIndex < pvl1.keywords(); keywordIndex++) { + PvlKeyword thisKey = pvl1[keywordIndex]; + point1FullKeys += thisKey; + + if (!pvl2.hasKeyword(thisKey.name())) { + point2FullKeys += PvlKeyword(thisKey.name(), ""); + } + } + + for(int keywordIndex = 0; keywordIndex < pvl2.keywords(); keywordIndex++) { + PvlKeyword thisKey = pvl2[keywordIndex]; + point2FullKeys += thisKey; + + if (!pvl1.hasKeyword(thisKey.name())) { + point1FullKeys += PvlKeyword(thisKey.name(), ""); + } + } + + // Now compare the PvlGroups + for(int keywordIndex = 0; + keywordIndex < point1FullKeys.keywords(); + keywordIndex++) { + PvlKeyword key1 = point1FullKeys[keywordIndex]; + PvlKeyword key2 = point2FullKeys[key1.name()]; + CompareKeywords(key1, key2); + } + } + + + /** + * Compare two PvlKeyword objects + * + * @param const PvlKeyword pvl1 + * @param const PvlKeyword pvl2 + */ + void CompareKeywords(const PvlKeyword &pvl1, const PvlKeyword &pvl2) { + if (pvl1.name().compare(pvl2.name()) != 0) { + QString msg = "CompareKeywords should always be called with keywords that " + "have the same name."; + throw IException(IException::Programmer, msg, _FILEINFO_); + } + + if (pvl1.size() != pvl2.size()) { + filesMatch = false; + differenceReason = "Value '" + pvl1.name() + "' array size does not match."; + return; + } + + if (tolerances.hasKeyword(pvl1.name()) && + tolerances[pvl1.name()].size() > 1 && + pvl1.size() != tolerances[pvl1.name()].size()) { + QString msg = "Size of value '" + pvl1.name() + "' does not match with "; + msg += "its number of tolerances in the DIFF file."; + throw IException(IException::User, msg, _FILEINFO_); + } + + if (ignorekeys.hasKeyword(pvl1.name()) && + ignorekeys[pvl1.name()].size() > 1 && + pvl1.size() != ignorekeys[pvl1.name()].size()) { + QString msg = "Size of value '" + pvl1.name() + "' does not match with "; + msg += "its number of ignore keys in the DIFF file."; + throw IException(IException::User, msg, _FILEINFO_); + } + + for(int i = 0; i < pvl1.size() && filesMatch; i++) { + QString val1 = pvl1[i]; + QString val2 = pvl2[i]; + QString unit1 = pvl1.unit(i); + QString unit2 = pvl2.unit(i); + + int ignoreIndex = 0; + if (ignorekeys.hasKeyword(pvl1.name()) && ignorekeys[pvl1.name()].size() > 1) { + ignoreIndex = i; + } + + try { + if (!ignorekeys.hasKeyword(pvl1.name()) || + ignorekeys[pvl1.name()][ignoreIndex] == "false") { + + if (unit1.toLower() != unit2.toLower()) { + filesMatch = false; + differenceReason = "Value '" + pvl1.name() + "': units do not match."; + return; + } + + double tolerance = 0.0; + double difference = abs(toDouble(val1) - toDouble(val2)); + + if (tolerances.hasKeyword(pvl1.name())) { + tolerance = toDouble((tolerances[pvl1.name()].size() == 1) ? + tolerances[pvl1.name()][0] : tolerances[pvl1.name()][i]); + } + + if (difference > tolerance) { + filesMatch = false; + if (pvl1.size() == 1) { + differenceReason = "Value [" + pvl1.name() + "] difference is " + + toString(difference); + } + else { + differenceReason = "Value [" + pvl1.name() + "] at index " + + toString(i) + ": difference is " + toString(difference); + } + differenceReason += " (values are [" + val1 + "] and [" + + val2 + "], tolerance is [" + toString(tolerance) + "])"; + } + } + } + catch(IException &e) { + if (val1.toLower() != val2.toLower()) { + filesMatch = false; + differenceReason = "Value '" + pvl1.name() + "': values do not match."; + } + } + } + } + +} + + diff --git a/isis/src/control/apps/cnetdiff/cnetdiff.h b/isis/src/control/apps/cnetdiff/cnetdiff.h new file mode 100644 index 0000000000..e6229c3e83 --- /dev/null +++ b/isis/src/control/apps/cnetdiff/cnetdiff.h @@ -0,0 +1,20 @@ +/** This is free and unencumbered software released into the public domain. + +The authors of ISIS do not claim copyright on the contents of this file. +For more details about the LICENSE terms and the AUTHORS, you will +find files of those names at the top level of this repository. **/ + +/* SPDX-License-Identifier: CC0-1.0 */ +#ifndef cnetdiff_h +#define cnetdiff_h + +#include "ControlNet.h" +#include "UserInterface.h" + +namespace Isis{ + extern Pvl cnetdiff(UserInterface &ui); + extern Pvl cnetdiff(ControlNet &cnet1, ControlNet &cnet2, + UserInterface &ui, Pvl *diffFile=nullptr); +} + +#endif diff --git a/isis/src/control/apps/cnetdiff/main.cpp b/isis/src/control/apps/cnetdiff/main.cpp index c3ed771e64..1e07513a51 100644 --- a/isis/src/control/apps/cnetdiff/main.cpp +++ b/isis/src/control/apps/cnetdiff/main.cpp @@ -8,322 +8,14 @@ find files of those names at the top level of this repository. **/ #include "Isis.h" -#include -#include +#include "Application.h" +#include "Pvl.h" +#include "UserInterface.h" +#include "cnetdiff.h" -#include -#include - -#include "ControlMeasure.h" -#include "ControlNet.h" -#include "ControlNetDiff.h" -#include "ControlNetVersioner.h" -#include "ControlPoint.h" -#include "IException.h" -#include "PvlContainer.h" -#include "PvlGroup.h" - - -using namespace std; using namespace Isis; -bool filesMatch; -QString differenceReason; -PvlGroup tolerances; -PvlGroup ignorekeys; - -void CompareKeywords(const PvlKeyword &pvl1, const PvlKeyword &pvl2); -void CompareGroups(const PvlContainer &pvl1, const PvlContainer &pvl2); -void Compare(const PvlObject &point1, const PvlObject &point2); -void Compare(const QString net1Path, const QString net2Path); - void IsisMain() { UserInterface &ui = Application::GetUserInterface(); - - if (ui.GetString("REPORT") == "FIRST") { - tolerances = PvlGroup(); - ignorekeys = PvlGroup(); - - differenceReason = ""; - filesMatch = true; - - if(ui.WasEntered("DIFF")) { - Pvl diffFile(ui.GetFileName("DIFF")); - - if(diffFile.hasGroup("Tolerances")) { - tolerances = diffFile.findGroup("Tolerances"); - } - - if(diffFile.hasGroup("IgnoreKeys")) { - ignorekeys = diffFile.findGroup("IgnoreKeys"); - } - } - - // Don't want to consider the DateTime of a Point or Measure was set by - // default. - if(!ignorekeys.hasKeyword("DateTime")) { - ignorekeys += PvlKeyword("DateTime", "true"); - } - - Compare(ui.GetFileName("FROM"), ui.GetFileName("FROM2")); - - PvlGroup differences("Results"); - if(filesMatch) { - differences += PvlKeyword("Compare", "Identical"); - } - else { - differences += PvlKeyword("Compare", "Different"); - differences += PvlKeyword("Reason", differenceReason); - } - - Application::Log(differences); - - if(ui.WasEntered("TO")) { - Pvl out; - out.addGroup(differences); - out.write(ui.GetFileName("TO")); - } - - differenceReason = ""; - } - else { - FileName f1(ui.GetFileName("FROM")); - FileName f2(ui.GetFileName("FROM2")); - - ControlNetDiff differencer; - if (ui.WasEntered("DIFF")) { - Pvl diffFile(ui.GetFileName("DIFF")); - differencer.addTolerances(diffFile); - } - - Pvl results = differencer.compare(f1, f2); - if (ui.WasEntered("TO")) results.write(ui.GetFileName("TO")); - - PvlGroup log("Results"); - - // Get a count of all the differences: just the keywords at the object level - // (network data) and the number of objects (different points). Ignore the - // FileName keyword as it's a superficial difference. - PvlObject &differences = results.findObject("Differences"); - int count = differences.objects() + differences.keywords(); - if (differences.hasKeyword("Filename")) count--; - - log += PvlKeyword("Compare", count > 0 ? "Different" : "Identical"); - Application::Log(log); - } -} - -void Compare(QString net1Path, QString net2Path) { - ControlNetVersioner net1(net1Path); - ControlNetVersioner net2(net2Path); - - Pvl net1Pvl(net1.toPvl()); - Pvl net2Pvl(net2.toPvl()); - - PvlObject &net1Obj = net1Pvl.findObject("ControlNetwork"); - PvlObject &net2Obj = net2Pvl.findObject("ControlNetwork"); - - BigInt net1NumPts = net1Obj.objects(); - BigInt net2NumPts = net2Obj.objects(); - - if(net1NumPts != net2NumPts) { - differenceReason = "The number of control points in the networks, [" + - toString(net1NumPts) + "] and [" + - toString(net2NumPts) + "], differ."; - filesMatch = false; - return; - } - - QString id1 = net1Obj["NetworkId"][0]; - QString id2 = net2Obj["NetworkId"][0]; - - if(id1 != id2) { - differenceReason = "The network IDs [" + - id1 + "] and [" + - id2 + "] differ."; - filesMatch = false; - return; - } - - QString target1 = net1Obj["TargetName"][0]; - QString target2 = net2Obj["TargetName"][0]; - - if(target1 != target2) { - differenceReason = "The TargetName values [" + - target1 + "] and [" + - target2 + "] differ."; - filesMatch = false; - return; - } - -// QList net1Points = net1.GetPointIds(); -// QList net2Points = net2.GetPointIds(); -// qSort(net1Points); -// qSort(net2Points); - - for(int cpIndex = 0; cpIndex < net1NumPts; cpIndex ++) { - PvlObject &cp1 = net1Obj.object(cpIndex); - PvlObject &cp2 = net2Obj.object(cpIndex); - - Compare(cp1, cp2); - - if(!filesMatch) { - return; - } - } -} - -void Compare(const PvlObject &point1Pvl, const PvlObject &point2Pvl) { - // both names must be at least equal, should be named ControlPoint - if(point1Pvl.name() != point2Pvl.name()) { - QString msg = "The control points' CreatePvlOject method returned an " - "unexpected result."; - throw IException(IException::Programmer, msg, _FILEINFO_); - } - - if(point1Pvl.groups() != point2Pvl.groups()) { - filesMatch = false; - differenceReason = "The number of control measures, [" + - toString(point1Pvl.groups()) + "] and [" + - toString(point2Pvl.groups()) + "] does not match."; - } - - // Start by comparing top level control point keywords. - if(filesMatch) CompareGroups(point1Pvl, point2Pvl); - - // Now compare each measure - for(int cmIndex = 0; filesMatch && cmIndex < point1Pvl.groups(); cmIndex ++) { - const PvlGroup &measure1 = point1Pvl.group(cmIndex); - const PvlGroup &measure2 = point2Pvl.group(cmIndex); - - CompareGroups(measure1, measure2); - - if(!filesMatch) { - differenceReason = "Control Measure for Cube [" + - measure1["SerialNumber"][0] + "] " + differenceReason; - } - } - - if(!filesMatch) { - differenceReason = "Control Point [" + point1Pvl["PointId"][0] + - "] " + differenceReason; - } -} - - -void CompareGroups(const PvlContainer &pvl1, const PvlContainer &pvl2) { - // Create equivalent PvlGroups that can easily be compared to each other - PvlGroup point1FullKeys; - PvlGroup point2FullKeys; - - for(int keywordIndex = 0; keywordIndex < pvl1.keywords(); keywordIndex++) { - PvlKeyword thisKey = pvl1[keywordIndex]; - point1FullKeys += thisKey; - - if(!pvl2.hasKeyword(thisKey.name())) { - point2FullKeys += PvlKeyword(thisKey.name(), ""); - } - } - - for(int keywordIndex = 0; keywordIndex < pvl2.keywords(); keywordIndex++) { - PvlKeyword thisKey = pvl2[keywordIndex]; - point2FullKeys += thisKey; - - if(!pvl1.hasKeyword(thisKey.name())) { - point1FullKeys += PvlKeyword(thisKey.name(), ""); - } - } - - // Now compare the PvlGroups - for(int keywordIndex = 0; - keywordIndex < point1FullKeys.keywords(); - keywordIndex++) { - PvlKeyword key1 = point1FullKeys[keywordIndex]; - PvlKeyword key2 = point2FullKeys[key1.name()]; - CompareKeywords(key1, key2); - } -} - - - -void CompareKeywords(const PvlKeyword &pvl1, const PvlKeyword &pvl2) { - if(pvl1.name().compare(pvl2.name()) != 0) { - QString msg = "CompareKeywords should always be called with keywords that " - "have the same name."; - throw IException(IException::Programmer, msg, _FILEINFO_); - } - - if(pvl1.size() != pvl2.size()) { - filesMatch = false; - differenceReason = "Value '" + pvl1.name() + "' array size does not match."; - return; - } - - if(tolerances.hasKeyword(pvl1.name()) && - tolerances[pvl1.name()].size() > 1 && - pvl1.size() != tolerances[pvl1.name()].size()) { - QString msg = "Size of value '" + pvl1.name() + "' does not match with "; - msg += "its number of tolerances in the DIFF file."; - throw IException(IException::User, msg, _FILEINFO_); - } - - if(ignorekeys.hasKeyword(pvl1.name()) && - ignorekeys[pvl1.name()].size() > 1 && - pvl1.size() != ignorekeys[pvl1.name()].size()) { - QString msg = "Size of value '" + pvl1.name() + "' does not match with "; - msg += "its number of ignore keys in the DIFF file."; - throw IException(IException::User, msg, _FILEINFO_); - } - - for(int i = 0; i < pvl1.size() && filesMatch; i++) { - QString val1 = pvl1[i]; - QString val2 = pvl2[i]; - QString unit1 = pvl1.unit(i); - QString unit2 = pvl2.unit(i); - - int ignoreIndex = 0; - if(ignorekeys.hasKeyword(pvl1.name()) && ignorekeys[pvl1.name()].size() > 1) { - ignoreIndex = i; - } - - try { - if(!ignorekeys.hasKeyword(pvl1.name()) || - ignorekeys[pvl1.name()][ignoreIndex] == "false") { - - if(unit1.toLower() != unit2.toLower()) { - filesMatch = false; - differenceReason = "Value '" + pvl1.name() + "': units do not match."; - return; - } - - double tolerance = 0.0; - double difference = abs(toDouble(val1) - toDouble(val2)); - - if(tolerances.hasKeyword(pvl1.name())) { - tolerance = toDouble((tolerances[pvl1.name()].size() == 1) ? - tolerances[pvl1.name()][0] : tolerances[pvl1.name()][i]); - } - - if(difference > tolerance) { - filesMatch = false; - if(pvl1.size() == 1) { - differenceReason = "Value [" + pvl1.name() + "] difference is " + - toString(difference); - } - else { - differenceReason = "Value [" + pvl1.name() + "] at index " + - toString(i) + ": difference is " + toString(difference); - } - differenceReason += " (values are [" + val1 + "] and [" + - val2 + "], tolerance is [" + toString(tolerance) + "])"; - } - } - } - catch(IException &e) { - if(val1.toLower() != val2.toLower()) { - filesMatch = false; - differenceReason = "Value '" + pvl1.name() + "': values do not match."; - } - } - } + Pvl results = cnetdiff(ui); } diff --git a/isis/src/control/apps/cnetdiff/tsts/Makefile b/isis/src/control/apps/cnetdiff/tsts/Makefile deleted file mode 100644 index 46d84c74c2..0000000000 --- a/isis/src/control/apps/cnetdiff/tsts/Makefile +++ /dev/null @@ -1,4 +0,0 @@ -BLANKS = "%-6s" -LENGTH = "%-40s" - -include $(ISISROOT)/make/isismake.tststree diff --git a/isis/src/control/apps/cnetdiff/tsts/default/Makefile b/isis/src/control/apps/cnetdiff/tsts/default/Makefile deleted file mode 100644 index 741df54876..0000000000 --- a/isis/src/control/apps/cnetdiff/tsts/default/Makefile +++ /dev/null @@ -1,13 +0,0 @@ -APPNAME = cnetdiff - -include $(ISISROOT)/make/isismake.tsts - -commands: - $(APPNAME) from=$(INPUT)/cnet.net from2=$(INPUT)/cnet.net \ - to=$(OUTPUT)/compareSame1.txt > /dev/null; - $(APPNAME) from=$(INPUT)/cnet2.net from2=$(INPUT)/cnet2.net \ - to=$(OUTPUT)/compareSame2.txt > /dev/null; - $(APPNAME) from=$(INPUT)/cnet.net from2=$(INPUT)/cnet2.net \ - to=$(OUTPUT)/compareDifferent.txt > /dev/null; - $(APPNAME) from=$(INPUT)/cnet.net from2=$(INPUT)/cnet2.net \ - to=$(OUTPUT)/compareDifferent2.txt DIFF=$(INPUT)/cnet.diff > /dev/null; diff --git a/isis/src/control/apps/cnetdiff/tsts/full/Makefile b/isis/src/control/apps/cnetdiff/tsts/full/Makefile deleted file mode 100644 index e81ce3ae4e..0000000000 --- a/isis/src/control/apps/cnetdiff/tsts/full/Makefile +++ /dev/null @@ -1,20 +0,0 @@ -APPNAME = cnetdiff - -include $(ISISROOT)/make/isismake.tsts - -commands: - cnetpvl2bin from=$(INPUT)/cnet.pvl to=$(OUTPUT)/cnet.net > /dev/null; - cnetpvl2bin from=$(INPUT)/cnet2.pvl to=$(OUTPUT)/cnet2.net > /dev/null; - - $(APPNAME) from=$(OUTPUT)/cnet.net from2=$(OUTPUT)/cnet.net \ - to=$(OUTPUT)/compareSame1.txt report=full > /dev/null; - $(APPNAME) from=$(OUTPUT)/cnet2.net from2=$(OUTPUT)/cnet2.net \ - to=$(OUTPUT)/compareSame2.txt report=full > /dev/null; - $(APPNAME) from=$(OUTPUT)/cnet.net from2=$(OUTPUT)/cnet2.net \ - to=$(OUTPUT)/compareDifferent.txt report=full > /dev/null; - $(APPNAME) from=$(OUTPUT)/cnet.net from2=$(OUTPUT)/cnet2.net \ - to=$(OUTPUT)/compareDifferent2.txt DIFF=$(INPUT)/cnet.diff \ - report=full > /dev/null; - - rm $(OUTPUT)/cnet.net > /dev/null; - rm $(OUTPUT)/cnet2.net > /dev/null; diff --git a/isis/src/control/apps/cnetedit/cnetedit.cpp b/isis/src/control/apps/cnetedit/cnetedit.cpp new file mode 100644 index 0000000000..2e290ddafd --- /dev/null +++ b/isis/src/control/apps/cnetedit/cnetedit.cpp @@ -0,0 +1,1127 @@ +/** This is free and unencumbered software released into the public domain. +The authors of ISIS do not claim copyright on the contents of this file. +For more details about the LICENSE terms and the AUTHORS, you will +find files of those names at the top level of this repository. **/ + +/* SPDX-License-Identifier: CC0-1.0 */ + +#include "cnetedit.h" + +#include +#include +#include +#include +#include +#include + +#include "ControlMeasure.h" +#include "ControlNet.h" +#include "ControlNetValidMeasure.h" +#include "ControlPoint.h" +#include "ControlPointList.h" +#include "Cube.h" +#include "FileName.h" +#include "MeasureValidationResults.h" +#include "Progress.h" +#include "Pvl.h" +#include "PvlGroup.h" +#include "PvlKeyword.h" +#include "PvlObject.h" +#include "SerialNumber.h" +#include "SerialNumberList.h" +#include "IException.h" + +using namespace std; + +namespace Isis { + + // Deletion test + bool shouldDelete(ControlPoint *point); + + // Mutator methods + void ignorePoint(ControlNet &cnet, ControlPoint *point, QString cause); + void ignoreMeasure(ControlNet &cnet, ControlPoint *point, + ControlMeasure *measure, QString cause); + void deletePoint(ControlNet &cnet, int cp); + void deleteMeasure(ControlPoint *point, int cm); + + // Edit passes + void populateLog(ControlNet &cnet, bool ignore); + + void unlockPoints(ControlNet &cnet, ControlPointList &cpList); + void ignorePoints(ControlNet &cnet, ControlPointList &cpList); + void lockPoints(ControlNet &cnet, ControlPointList &cpList); + + void unlockCubes(ControlNet &cnet, SerialNumberList &snl); + void ignoreCubes(ControlNet &cnet, SerialNumberList &snl); + void lockCubes(ControlNet &cnet, SerialNumberList &snl); + + void unlockMeasures(ControlNet &cnet, + QMap< QString, QSet * > &editMeasures); + void ignoreMeasures(ControlNet &cnet, + QMap< QString, QSet * > &editMeasures); + void lockMeasures(ControlNet &cnet, + QMap< QString, QSet * > &editMeasures); + + void checkAllMeasureValidity(ControlNet &cnet, SerialNumberList *serialNumbers); + + // Validity test + MeasureValidationResults validateMeasure(const ControlMeasure *measure, + Cube *cube, Camera *camera); + + // Logging helpers + void logResult(QMap *pointsLog, QString pointId, QString cause); + void logResult(QMap *measuresLog, + QString pointId, QString serial, QString cause); + PvlObject createLog(QString label, QMap *pointsMap); + PvlObject createLog(QString label, + QMap *pointsMap, QMap *measuresMap); + + // Global variables + static int numPointsDeleted; + static int numMeasuresDeleted; + + static bool deleteIgnored; + static bool preservePoints; + static bool retainRef; + static bool keepLog; + static bool ignoreAll; + + static QMap *ignoredPoints; + static QMap *ignoredMeasures; + static QMap *retainedReferences; + static QMap *editLockedPoints; + static QMap *editLockedMeasures; + + static ControlNetValidMeasure *cneteditValidator; + + /** + * Edit a control network + * + * @param ui UserInterface object containing parameters + * @return Pvl results log file + * + * @throws IException::User "Unable to open MEASURELIST [FILENAME]" + * @throws IException::User "Line ___ in the MEASURELIST does not contain a Point ID and a cube filename separated by a comma" + */ + Pvl cnetedit(UserInterface &ui) { + + // Construct control net + ControlNet cnet(ui.GetFileName("CNET")); + + // List of IDs mapping to points to be edited + ControlPointList *cpList = nullptr; + if (ui.WasEntered("POINTLIST") && cnet.GetNumPoints() > 0) { + cpList = new ControlPointList(ui.GetFileName("POINTLIST")); + } + + // Serial number list of cubes to be edited + SerialNumberList *cubeSnList = nullptr; + if (ui.WasEntered("CUBELIST") && cnet.GetNumPoints() > 0) { + cubeSnList = new SerialNumberList(ui.GetFileName("CUBELIST")); + } + + // List of paired Point IDs and cube filenames + QMap< QString, QSet * > *editMeasuresList = nullptr; + if (ui.WasEntered("MEASURELIST") && cnet.GetNumPoints() > 0) { + + QFile file(ui.GetFileName("MEASURELIST")); + if (!file.open(QIODevice::ReadOnly | QIODevice::Text)) { + QString msg = "Unable to open MEASURELIST [" + + file.fileName() + "]"; + throw IException(IException::User, msg, _FILEINFO_); + } + + editMeasuresList = new QMap< QString, QSet * >; + + QTextStream in(&file); + int lineNumber = 1; + while (!in.atEnd()) { + QString line = in.readLine(); + QStringList results = line.split(","); + if (results.size() < 2) { + QString msg = "Line " + QString::number(lineNumber) + " in the MEASURELIST does " + "not contain a Point ID and a cube filename separated by a comma"; + throw IException(IException::User, msg, _FILEINFO_); + } + + if (!editMeasuresList->contains(results[0])) + editMeasuresList->insert(results[0], new QSet); + + FileName cubeName(results[1]); + QString sn = SerialNumber::Compose(cubeName.expanded()); + (*editMeasuresList)[results[0]]->insert(sn); + + lineNumber++; + } + } + + // DefFile and cube serial number list for Validity check + Pvl *defFile = nullptr; + SerialNumberList *snValidationList = nullptr; + if (ui.GetBoolean("CHECKVALID") && cnet.GetNumPoints() > 0) { + cneteditValidator = nullptr; + + // Open DefFile and validate its' keywords and value type + defFile = new Pvl(ui.GetFileName("DEFFILE")); + + // create cube serial number validation list + snValidationList = new SerialNumberList(ui.GetFileName("FROMLIST")); + } + + + // call cnetedit with ControlNet plus list files and/or definition files (if any) + Pvl results = cnetedit(cnet, ui, cpList, cubeSnList, editMeasuresList, defFile, snValidationList); + + // clean up + delete cpList; + cpList = nullptr; + + delete cubeSnList; + cubeSnList = nullptr; + + if (editMeasuresList != nullptr) { + QList points = editMeasuresList->keys(); + for (int i = 0; i < points.size(); i++) delete (*editMeasuresList)[points[i]]; + delete editMeasuresList; + editMeasuresList = nullptr; + } + + delete defFile; + defFile = nullptr; + + delete snValidationList; + snValidationList = nullptr; + + return results; + } + + + /** + * Edit a control network + * + * @param ControlNet cnet + * @param UserInterface ui + * @param ControlPointList cpList + * @param SerialNumberList cubeSnl + * @param QMap< QString, QSet * > editMeasuresList + * @param Pvl defFile + * @param SerialNumberList snValidationList + * + * @return Pvl results log file + * + * @throws IException::User "Invalid Deffile" + */ + Pvl cnetedit(ControlNet &cnet, UserInterface &ui, + ControlPointList *cpList, + SerialNumberList *cubeSnl, + QMap< QString, QSet * > *editMeasuresList, + Pvl *defFile, + SerialNumberList *snValidationList) { + + Pvl results; + + // 2016-12-08 Ian Humphrey - Set the QHash seed, otherwise output is ALWAYS slightly + // different. Note that in Qt4, the seed was constant, but in Qt5, the seed is + // created differently for each process. Fixes #4206. + qSetGlobalQHashSeed(0); + + // Reset the counts of points and measures deleted + numPointsDeleted = 0; + numMeasuresDeleted = 0; + + // Get global user parameters + bool ignore = ui.GetBoolean("IGNORE"); + deleteIgnored = ui.GetBoolean("DELETE"); + preservePoints = ui.GetBoolean("PRESERVE"); + retainRef = ui.GetBoolean("RETAIN_REFERENCE"); + ignoreAll = ui.GetBoolean("IGNOREALL"); + + // Data needed to keep track of ignored/deleted points and measures + keepLog = ui.WasEntered("LOG"); + ignoredPoints = NULL; + ignoredMeasures = NULL; + retainedReferences = NULL; + editLockedPoints = NULL; + editLockedMeasures = NULL; + + // If the user wants to keep a log, go ahead and populate it with all the + // existing ignored points and measures + if (keepLog && cnet.GetNumPoints() > 0) + populateLog(cnet, ignore); + + // List has Points Ids + bool processPoints = false; + if (cpList != nullptr) { + processPoints = true; + } + + // List has Cube file names + bool processCubes = false; + if (cubeSnl != nullptr) { + processCubes = true; + } + + // List has measurelist file names + bool processMeasures = false; + if (editMeasuresList != nullptr) { + processMeasures = true; + } + + if (ui.GetBoolean("UNLOCK")) { + if (processPoints) unlockPoints(cnet, *cpList); + if (processCubes) unlockCubes(cnet, *cubeSnl); + if (processMeasures) unlockMeasures(cnet, *editMeasuresList); + } + + /* + * As a first pass, just try and delete anything that's already ignored + * in the Control Network, if the user wants to delete ignored points and + * measures. Originally, this check was performed last, only if the user + * didn't specify any other deletion methods. However, performing this + * check first will actually improve the running time in cases where there + * are already ignored points and measures in the input network. The added + * cost of doing this check here actually doesn't add to the running time at + * all, because these same checks would need to have been done later + * regardless. + */ + if (deleteIgnored && cnet.GetNumPoints() > 0) { + Progress progress; + progress.SetText("Deleting Ignored in Input"); + progress.SetMaximumSteps(cnet.GetNumPoints()); + progress.CheckStatus(); + + for (int cp = cnet.GetNumPoints() - 1; cp >= 0; cp--) { + ControlPoint *point = cnet.GetPoint(cp); + if (point->IsIgnored()) { + deletePoint(cnet, cp); + } + else { + for (int cm = point->GetNumMeasures() - 1; cm >= 0; cm--) { + if (point->GetMeasure(cm)->IsIgnored()) { + if (cm == point->IndexOfRefMeasure() && ignoreAll) { + // If the reference is ignored and IgnoreAll is set, the point must ignored too + ignorePoint(cnet, point, "Reference measure ignored"); + } + else { + deleteMeasure(point, cm); + } + } + } + + // Check if the number of measures in the point is zero or there are too + // few measures in the point and we don't want to preserve them. + if (shouldDelete(point)) { + deletePoint(cnet, cp); + } + } + + progress.CheckStatus(); + } + } + + if (ignore) { + if (processPoints) ignorePoints(cnet, *cpList); + if (processCubes) ignoreCubes(cnet, *cubeSnl); + if (processMeasures) ignoreMeasures(cnet, *editMeasuresList); + + // Perform validity check + if (ui.GetBoolean("CHECKVALID") && cnet.GetNumPoints() > 0) { + cneteditValidator = NULL; + + // First validate DefFile's keywords and value type + Pvl defFile(ui.GetFileName("DEFFILE")); + Pvl pvlTemplate("$ISISROOT/appdata/templates/cnet_validmeasure/validmeasure.def"); + Pvl pvlResults; + pvlTemplate.validatePvl(defFile, pvlResults); + if (pvlResults.groups() > 0 || pvlResults.keywords() > 0) { + results.addLogGroup(pvlResults.group(0)); + + QString sErrMsg = "Invalid Deffile\n"; + throw IException(IException::User, sErrMsg, _FILEINFO_); + } + + // Construct the validator from the user-specified definition file + cneteditValidator = new ControlNetValidMeasure(defFile); + + // User also provided a list of all serial numbers corresponding to every + // cube in the control network + checkAllMeasureValidity(cnet, snValidationList); + + // Delete the validator + if (cneteditValidator != NULL) { + delete cneteditValidator; + cneteditValidator = NULL; + } + + // Log the DEFFILE to the print file + results.addLogGroup(defFile.findGroup("ValidMeasure", Pvl::Traverse)); + } + } + + if (ui.GetBoolean("LOCK")) { + if (processPoints) lockPoints(cnet, *cpList); + if (processCubes) lockCubes(cnet, *cubeSnl); + if (processMeasures) lockMeasures(cnet, *editMeasuresList); + } + + // Log statistics + if (keepLog) { + Pvl outputLog; + + outputLog.addKeyword(PvlKeyword("PointsDeleted", toString(numPointsDeleted))); + outputLog.addKeyword(PvlKeyword("MeasuresDeleted", toString(numMeasuresDeleted))); + + PvlObject lockedLog = createLog( + "EditLocked", editLockedPoints, editLockedMeasures); + outputLog.addObject(lockedLog); + + outputLog.addObject(createLog("RetainedReferences", retainedReferences)); + + // Depending on whether the user chose to delete ignored points and + // measures, the log will either contain reasons for being ignored, or + // reasons for being deleted + PvlObject ignoredLog = createLog( + deleteIgnored ? "Deleted" : "Ignored", ignoredPoints, ignoredMeasures); + outputLog.addObject(ignoredLog); + + // Write the log + QString logFileName = ui.GetFileName("LOG"); + outputLog.write(logFileName); + + // Delete the structures keeping track of the ignored points and measures + delete ignoredPoints; + ignoredPoints = NULL; + + delete ignoredMeasures; + ignoredMeasures = NULL; + + delete retainedReferences; + retainedReferences = NULL; + + delete editLockedPoints; + editLockedPoints = NULL; + + delete editLockedMeasures; + editLockedMeasures = NULL; + } + + // Write the network + cnet.Write(ui.GetFileName("ONET")); + + return results; + } + + + /** + * After any modification to a point's measures or ignored status, this check + * should be performed to determine if the changes should result in the point's + * deletion. + * + * @param point The Control Point recently modified + * + * @return Whether or not the point should be deleted + */ + bool shouldDelete(ControlPoint *point){ + + if(!deleteIgnored) + return false; + + else{ + + if ( point->GetNumMeasures() == 0 && !preservePoints) + return true; + + + if (point->GetType() != ControlPoint::Fixed && point->GetNumMeasures()< 2 ){ + + if(preservePoints && point->GetNumMeasures() == 1) + return false; + + return true; //deleteIgnore = TRUE or else we would not be here + } + + + if( point->IsIgnored() ) + return true; + + return false; + } + } + + + /** + * Set the point at the given index in the control network to ignored, and add + * a new keyword to the list of ignored points with a cause for the ignoring, + * if the user wished to keep a log. + * + * @param cnet The Control Network being modified + * @param point The Control Point we wish to ignore + * @param cause A prose description of why the point was ignored (for logging) + */ + void ignorePoint(ControlNet &cnet, ControlPoint *point, QString cause) { + ControlPoint::Status result = point->SetIgnored(true); + + logResult(result == ControlPoint::Success ? ignoredPoints : editLockedPoints, + point->GetId(), cause); + } + + + /** + * Set the measure to be ignored, and add a new keyword to the list of ignored + * measures if the user wished to keep a log. + * + * @param cnet The Control Network being modified + * @param point The Control Point of the Control Measure we wish to ignore + * @param measure The Control Measure we wish to ignore + * @param cause A prose description of why the measure was ignored (for + * logging) + */ + void ignoreMeasure(ControlNet &cnet, ControlPoint *point, + ControlMeasure *measure, QString cause) { + ControlMeasure::Status result = measure->SetIgnored(true); + + logResult( + result == ControlMeasure::Success ? ignoredMeasures : editLockedMeasures, + point->GetId(), measure->GetCubeSerialNumber(), cause); + + if (ignoreAll && measure->Parent()->GetRefMeasure() == measure) { + foreach (ControlMeasure *cm, measure->Parent()->getMeasures()) { + if (!cm->IsIgnored()) + ignoreMeasure(cnet, measure->Parent(), cm, "Reference ignored"); + } + } + } + + + /** + * Delete the point, record how many points and measures have been deleted. + * + * @param cnet The Control Network being modified + * @param cp Index into the Control Network for the point we wish to delete + */ + void deletePoint(ControlNet &cnet, int cp) { + ControlPoint *point = cnet.GetPoint(cp); + + // Do the edit lock check up front so we don't accidentally log that a point + // was deleted when in fact it was not + if (!point->IsEditLocked()) { + numMeasuresDeleted += point->GetNumMeasures(); + numPointsDeleted++; + + if (keepLog) { + // If the point's being deleted but it wasn't set to ignore, it can only + // be because the point has two few measures remaining + if (!point->IsIgnored()) + ignorePoint(cnet, point, "Too few measures"); + + // For any measures not ignored, mark their cause for deletion as being + // caused by the point's deletion + for (int cm = 0; cm < point->GetNumMeasures(); cm++) { + ControlMeasure *measure = point->GetMeasure(cm); + if (!measure->IsIgnored()) + ignoreMeasure(cnet, point, measure, "Point deleted"); + } + } + + cnet.DeletePoint(cp); + } + else { + for (int cm = 0; cm < point->GetNumMeasures(); cm++) { + if (point->GetMeasure(cm)->IsEditLocked()) { + ignorePoint(cnet, point, "EditLocked point skipped"); + } + } + } + } + + + /** + * Delete the measure, increment the count of measures deleted. + * + * @param point The Control Point of the Control Measure we wish to delete + * @param cm Index into the Control Network for the measure we wish to delete + */ + void deleteMeasure(ControlPoint *point, int cm) { + if (point->Delete(cm) == ControlMeasure::Success) numMeasuresDeleted++; + } + + + /** + * Seed the log with points and measures already ignored. + * + * @param cnet The Control Network being modified + */ + void populateLog(ControlNet &cnet, bool ignore) { + ignoredPoints = new QMap; + ignoredMeasures = new QMap; + + retainedReferences = new QMap; + + editLockedPoints = new QMap; + editLockedMeasures = new QMap; + + Progress progress; + progress.SetText("Initializing Log File"); + progress.SetMaximumSteps(cnet.GetNumPoints()); + progress.CheckStatus(); + + for (int cp = 0; cp < cnet.GetNumPoints(); cp++) { + ControlPoint *point = cnet.GetPoint(cp); + + if (point->IsIgnored()) { + ignorePoint(cnet, point, "Ignored from input"); + } + + for (int cm = 0; cm < point->GetNumMeasures(); cm++) { + ControlMeasure *measure = point->GetMeasure(cm); + + if (measure->IsIgnored()) { + if (cm == point->IndexOfRefMeasure() && ignoreAll) { + if (ignore && !point->IsIgnored()) { + ignorePoint(cnet, point, "Reference measure ignored"); + } + } + + ignoreMeasure(cnet, point, measure, "Ignored from input"); + } + } + + progress.CheckStatus(); + } + } + + + void unlockPoints(ControlNet &cnet, ControlPointList &cpList) { + Progress progress; + progress.SetText("Unlocking Points"); + progress.SetMaximumSteps(cnet.GetNumPoints()); + progress.CheckStatus(); + + for (int cp = cnet.GetNumPoints() - 1; cp >= 0; cp--) { + ControlPoint *point = cnet.GetPoint(cp); + if (point->IsEditLocked() && cpList.HasControlPoint(point->GetId())) { + point->SetEditLock(false); + } + progress.CheckStatus(); + } + } + + + /** + * Iterates over the points in the Control Network looking for a match in the + * list of Control Points to be ignored. If a match is found, ignore the + * point, and if the DELETE option was selected, the point will then be deleted + * from the network. + * + * @param cnet The Control Network being modified + * @param cpList List of Control Points + */ + void ignorePoints(ControlNet &cnet, ControlPointList &cpList) { + Progress progress; + progress.SetText("Comparing Points to POINTLIST"); + progress.SetMaximumSteps(cnet.GetNumPoints()); + progress.CheckStatus(); + + for (int cp = cnet.GetNumPoints() - 1; cp >= 0; cp--) { + ControlPoint *point = cnet.GetPoint(cp); + + // Compare each Point Id listed with the Point in the + // Control Network for according exclusion + if (!point->IsIgnored() && cpList.HasControlPoint(point->GetId())) { + ignorePoint(cnet, point, "Point ID in POINTLIST"); + } + + if (deleteIgnored) { + //look for previously ignored control points + if (point->IsIgnored()) { + deletePoint(cnet, cp); + } + else { + //look for previously ignored control measures + for (int cm = point->GetNumMeasures() - 1; cm >= 0; cm--) { + if (point->GetMeasure(cm)->IsIgnored() && deleteIgnored) { + deleteMeasure(point, cm); + } + } + // Check if there are too few measures in the point or the point was + // previously ignored + if (shouldDelete(point)) { + deletePoint(cnet, cp); + } + } + } + + progress.CheckStatus(); + } + } + + + /** + * Lock points. + * + * @param ControlNet Input ControlNet + * @param ControlPointList List of points to lock + */ + void lockPoints(ControlNet &cnet, ControlPointList &cpList) { + Progress progress; + progress.SetText("Locking Points"); + progress.SetMaximumSteps(cnet.GetNumPoints()); + progress.CheckStatus(); + + for (int cp = cnet.GetNumPoints() - 1; cp >= 0; cp--) { + ControlPoint *point = cnet.GetPoint(cp); + if (!point->IsEditLocked() && cpList.HasControlPoint(point->GetId())) { + point->SetEditLock(true); + } + progress.CheckStatus(); + } + } + + + /** + * Unlock cubes. + * + * @param ControlNet Input ControlNet + * @param SerialNumberList List of cubes to unlock + */ + void unlockCubes(ControlNet &cnet, SerialNumberList &snl) { + Progress progress; + progress.SetText("Unlocking Cubes"); + progress.SetMaximumSteps(cnet.GetNumPoints()); + progress.CheckStatus(); + + for (int cp = cnet.GetNumPoints() - 1; cp >= 0; cp--) { + ControlPoint *point = cnet.GetPoint(cp); + + for (int cm = point->GetNumMeasures() - 1; cm >= 0; cm--) { + ControlMeasure *measure = point->GetMeasure(cm); + + QString serialNumber = measure->GetCubeSerialNumber(); + if (measure->IsEditLocked() && snl.hasSerialNumber(serialNumber)) { + measure->SetEditLock(false); + } + } + progress.CheckStatus(); + } + } + + + /** + * Iterates over the list of Control Measures in the Control Network and + * compares measure serial numbers with those in the input list of serial + * numbers to be ignored. If a match is found, ignore the measure. If the + * DELETE option was selected, the measure will then be deleted from the + * network. + * + * @param cnet The Control Network being modified + * @param snl List of Serial Numbers to be ignored + */ + void ignoreCubes(ControlNet &cnet, SerialNumberList &snl) { + Progress progress; + progress.SetText("Comparing Measures to CUBELIST"); + progress.SetMaximumSteps(cnet.GetNumPoints()); + progress.CheckStatus(); + + for (int cp = cnet.GetNumPoints() - 1; cp >= 0; cp--) { + ControlPoint *point = cnet.GetPoint(cp); + + // Compare each Serial Number listed with the serial number in the + // Control Measure for according exclusion + for (int cm = point->GetNumMeasures() - 1; cm >= 0; cm--) { + ControlMeasure *measure = point->GetMeasure(cm); + + if (!point->IsIgnored() && point->GetMeasure(cm)->IsEditLocked()) { + ignoreMeasure(cnet, point, measure, "EditLocked measure skipped"); + } + + QString serialNumber = measure->GetCubeSerialNumber(); + + if (snl.hasSerialNumber(serialNumber)) { + QString cause = "Serial Number in CUBELIST"; + if (cm == point->IndexOfRefMeasure() && retainRef) { + logResult(retainedReferences, point->GetId(), cause); + } + else if (!measure->IsIgnored() || cm == point->IndexOfRefMeasure()) { + ignoreMeasure(cnet, point, measure, cause); + + if (cm == point->IndexOfRefMeasure() && !point->IsIgnored() && ignoreAll) { + ignorePoint(cnet, point, "Reference measure ignored"); + } + } + } + + // also look for previously ignored control measures + if (deleteIgnored && measure->IsIgnored()) { + deleteMeasure(point, cm); + } + } + // Check if there are too few measures in the point or the point was + // previously ignored + if (shouldDelete(point)) { + deletePoint(cnet, cp); + } + + progress.CheckStatus(); + } + } + + + /** + * Lock cubes. + * + * @param ControlNet Input ControlNet + * @param SerialNumberList List of cubes to Lock + */ + void lockCubes(ControlNet &cnet, SerialNumberList &snl) { + Progress progress; + progress.SetText("Locking Cubes"); + progress.SetMaximumSteps(cnet.GetNumPoints()); + progress.CheckStatus(); + + for (int cp = cnet.GetNumPoints() - 1; cp >= 0; cp--) { + ControlPoint *point = cnet.GetPoint(cp); + + for (int cm = point->GetNumMeasures() - 1; cm >= 0; cm--) { + ControlMeasure *measure = point->GetMeasure(cm); + + QString serialNumber = measure->GetCubeSerialNumber(); + if (!measure->IsEditLocked() && snl.hasSerialNumber(serialNumber)) { + measure->SetEditLock(true); + } + } + progress.CheckStatus(); + } + } + + + /** + * Unlock measures. + * + * @param ControlNet Input ControlNet + * @param QMap< QString, QSet * > Measures to unlock + */ + void unlockMeasures(ControlNet &cnet, + QMap< QString, QSet * > &editMeasures) { + + Progress progress; + progress.SetText("Unlocking Measures"); + progress.SetMaximumSteps(cnet.GetNumPoints()); + progress.CheckStatus(); + + for (int cp = cnet.GetNumPoints() - 1; cp >= 0; cp--) { + ControlPoint *point = cnet.GetPoint(cp); + + QString id = point->GetId(); + if (editMeasures.contains(id)) { + QSet *measureSet = editMeasures[id]; + + for (int cm = point->GetNumMeasures() - 1; cm >= 0; cm--) { + ControlMeasure *measure = point->GetMeasure(cm); + + QString serialNumber = measure->GetCubeSerialNumber(); + if (measure->IsEditLocked() && measureSet->contains(serialNumber)) { + measure->SetEditLock(false); + } + } + } + progress.CheckStatus(); + } + } + + + /** + * Ignore measures. + * + * @param ControlNet Input ControlNet + * @param QMap< QString, QSet * > Measures to ignore + */ + void ignoreMeasures(ControlNet &cnet, + QMap< QString, QSet * > &editMeasures) { + + Progress progress; + progress.SetText("Ignoring Measures"); + progress.SetMaximumSteps(cnet.GetNumPoints()); + progress.CheckStatus(); + + for (int cp = cnet.GetNumPoints() - 1; cp >= 0; cp--) { + ControlPoint *point = cnet.GetPoint(cp); + + QString id = point->GetId(); + if (editMeasures.contains(id)) { + QSet *measureSet = editMeasures[id]; + + // Compare each Serial Number listed with the serial number in the + // Control Measure for according exclusion + for (int cm = point->GetNumMeasures() - 1; cm >= 0; cm--) { + ControlMeasure *measure = point->GetMeasure(cm); + + if (!point->IsIgnored() && point->GetMeasure(cm)->IsEditLocked()) { + ignoreMeasure(cnet, point, measure, "EditLocked measure skipped"); + } + + QString serialNumber = measure->GetCubeSerialNumber(); + if (measureSet->contains(serialNumber)) { + QString cause = "Measure in MEASURELIST"; + if (cm == point->IndexOfRefMeasure() && retainRef) { + logResult(retainedReferences, point->GetId(), cause); + } + else if (!measure->IsIgnored() || cm == point->IndexOfRefMeasure()) { + ignoreMeasure(cnet, point, measure, cause); + + if (cm == point->IndexOfRefMeasure() && !point->IsIgnored() && ignoreAll) { + ignorePoint(cnet, point, "Reference measure ignored"); + } + } + } + + // also look for previously ignored control measures + if (deleteIgnored && measure->IsIgnored()) { + deleteMeasure(point, cm); + } + } + // Check if there are too few measures in the point or the point was + // previously ignored + if (shouldDelete(point)) { + deletePoint(cnet, cp); + } + } + + progress.CheckStatus(); + } + } + + + /** + * Lock measures. + * + * @param ControlNet Input ControlNet + * @param QMap< QString, QSet * > Measures to lock + */ + void lockMeasures(ControlNet &cnet, + QMap< QString, QSet * > &editMeasures) { + + Progress progress; + progress.SetText("Locking Measures"); + progress.SetMaximumSteps(cnet.GetNumPoints()); + progress.CheckStatus(); + + for (int cp = cnet.GetNumPoints() - 1; cp >= 0; cp--) { + ControlPoint *point = cnet.GetPoint(cp); + + QString id = point->GetId(); + if (editMeasures.contains(id)) { + QSet *measureSet = editMeasures[id]; + + for (int cm = point->GetNumMeasures() - 1; cm >= 0; cm--) { + ControlMeasure *measure = point->GetMeasure(cm); + + QString serialNumber = measure->GetCubeSerialNumber(); + if (!measure->IsEditLocked() && measureSet->contains(serialNumber)) { + measure->SetEditLock(true); + } + } + } + progress.CheckStatus(); + } + } + + + /** + * Compare each measure in the Control Network against tolerances specified in + * the input DEFFILE. Ignore any measure whose values fall outside the valid + * tolerances, and delete it if the user specified to do so. + * + * @param cnet The Control Network being modified + * @param serialNumbers List of all Serial Numbers in the network + */ + void checkAllMeasureValidity(ControlNet &cnet, SerialNumberList *serialNumbers) { + + QList cnetSerials = cnet.GetCubeSerials(); + Progress progress; + progress.SetText("Checking Measure Validity"); + progress.SetMaximumSteps(cnetSerials.size()); + progress.CheckStatus(); + + foreach (QString serialNumber, cnetSerials) { + + Cube *cube = NULL; + Camera *camera = NULL; + if (cneteditValidator->IsCubeRequired()) { + if (!serialNumbers->hasSerialNumber(serialNumber)) { + QString msg = "Serial Number [" + serialNumber + "] contains no "; + msg += "matching cube in FROMLIST"; + throw IException(IException::User, msg, _FILEINFO_); + } + + cube = new Cube; + cube->open(serialNumbers->fileName(serialNumber)); + + if (cneteditValidator->IsCameraRequired()) { + try { + camera = cube->camera(); + } + catch (IException &e) { + QString msg = "Cannot Create Camera for Image:" + cube->fileName(); + throw IException(e, IException::User, msg, _FILEINFO_); + } + } + } + + QList measures = cnet.GetMeasuresInCube(serialNumber); + for (int cm = 0; cm < measures.size(); cm++) { + ControlMeasure *measure = measures[cm]; + ControlPoint *point = measure->Parent(); + + if (!measure->IsIgnored()) { + MeasureValidationResults results = + validateMeasure(measure, cube, camera); + + if (!results.isValid()) { + QString failure = results.toString(); + QString cause = "Validity Check " + failure; + + if (measure == point->GetRefMeasure() && retainRef) { + logResult(retainedReferences, point->GetId(), cause); + } + else { + ignoreMeasure(cnet, point, measure, cause); + + if (measure == point->GetRefMeasure() && ignoreAll) { + ignorePoint(cnet, point, "Reference measure ignored"); + } + } + } + } + } + + delete cube; + progress.CheckStatus(); + } + + for (int cp = cnet.GetNumPoints() - 1; cp >= 0; cp--) { + ControlPoint *point = cnet.GetPoint(cp); + + for (int cm = point->GetNumMeasures() - 1; cm >= 0; cm--) { + ControlMeasure *measure = point->GetMeasure(cm); + + // Also look for previously ignored control measures + if (deleteIgnored && measure->IsIgnored()) { + deleteMeasure(point, cm); + } + } + + // Check if there are too few measures in the point or the point was + // previously ignored + if (shouldDelete(point)) + deletePoint(cnet, cp); + } + } + + + /** + * Test an individual measure against the user-specified tolerances and return + * the result. + * + * @param measure Measure to be tested + * @param cube Cube with serial number matching that of the current measure + * @param camera Camera associated with cube + * + * @return The results of validating the measure as an object containing the + * validity and a formatted error (or success) message + */ + MeasureValidationResults validateMeasure(const ControlMeasure *measure, + Cube *cube, Camera *camera) { + + MeasureValidationResults results = + cneteditValidator->ValidStandardOptions(measure, cube, camera); + + return results; + } + + + void logResult(QMap *pointsLog, QString pointId, QString cause) { + if (keepLog) { + // Label the keyword as the Point ID, and make the cause into the value + (*pointsLog)[pointId] = cause; + } + } + + + void logResult(QMap *measuresLog, + QString pointId, QString serial, QString cause) { + + if (keepLog) { + // Make the keyword label the measure Serial Number, and the cause into the + // value + PvlKeyword measureMessage(PvlKeyword(serial, cause)); + + // Using a map to make accessing by Point ID a O(1) to O(lg n) operation + if (measuresLog->contains(pointId)) { + // If the map already has a group for the given Point ID, simply add the + // new measure to it + PvlGroup &pointGroup = (*measuresLog)[pointId]; + pointGroup.addKeyword(measureMessage); + } + else { + // Else there is no group for the Point ID of the measure being ignored, + // so make a new group, add the measure, and insert it into the map + PvlGroup pointGroup(pointId); + pointGroup.addKeyword(measureMessage); + (*measuresLog)[pointId] = pointGroup; + } + } + } + + + /** + * Create points log. + * + * @param QString Label for points log + * @param QMap Points map + * + * @return PvlObject Points log + */ + PvlObject createLog(QString label, QMap *pointsMap) { + PvlObject pointsLog(label); + + QList pointIds = pointsMap->keys(); + for (int i = 0; i < pointIds.size(); i++) { + QString pointId = pointIds.at(i); + pointsLog.addKeyword(PvlKeyword(pointId, (*pointsMap)[pointId])); + } + + return pointsLog; + } + + + /** + * Create measures log. + * + * @param QString Label for measures log + * @param QMap Points map + * @param QMap Measures map + * + * @return PvlObject Measures log + */ + PvlObject createLog(QString label, + QMap *pointsMap, QMap *measuresMap) { + + PvlObject editLog(label); + + PvlObject pointsLog = createLog("Points", pointsMap); + editLog.addObject(pointsLog); + + // Get all the groups of measures from the map + PvlObject measuresLog("Measures"); + QList measureGroups = measuresMap->values(); + + for (int i = 0; i < measureGroups.size(); i++) + measuresLog.addGroup(measureGroups.at(i)); + + editLog.addObject(measuresLog); + return editLog; + } +} + + diff --git a/isis/src/control/apps/cnetedit/cnetedit.h b/isis/src/control/apps/cnetedit/cnetedit.h new file mode 100644 index 0000000000..d8d054b974 --- /dev/null +++ b/isis/src/control/apps/cnetedit/cnetedit.h @@ -0,0 +1,27 @@ +/** This is free and unencumbered software released into the public domain. + +The authors of ISIS do not claim copyright on the contents of this file. +For more details about the LICENSE terms and the AUTHORS, you will +find files of those names at the top level of this repository. **/ + +/* SPDX-License-Identifier: CC0-1.0 */ +#ifndef cnetedit_h +#define cnetedit_h + +#include "UserInterface.h" + +namespace Isis{ + class ControlNet; + class ControlPointList; + class SerialNumberList; + + extern Pvl cnetedit(UserInterface &ui); + extern Pvl cnetedit(ControlNet &cnet, UserInterface &ui, + ControlPointList *cpList=nullptr, + SerialNumberList *cubeSnl=nullptr, + QMap< QString, QSet * > *editMeasuresList=nullptr, + Pvl *defFile=nullptr, + SerialNumberList *validationSnl=nullptr); +} + +#endif diff --git a/isis/src/control/apps/cnetedit/main.cpp b/isis/src/control/apps/cnetedit/main.cpp index efb4e3aec2..0eab06ab54 100644 --- a/isis/src/control/apps/cnetedit/main.cpp +++ b/isis/src/control/apps/cnetedit/main.cpp @@ -5,1059 +5,40 @@ For more details about the LICENSE terms and the AUTHORS, you will find files of those names at the top level of this repository. **/ /* SPDX-License-Identifier: CC0-1.0 */ - #define GUIHELPERS #include "Isis.h" -#include -#include -#include -#include -#include - -#include "ControlMeasure.h" -#include "ControlNet.h" -#include "ControlNetValidMeasure.h" -#include "ControlPoint.h" -#include "ControlPointList.h" -#include "Cube.h" -#include "FileName.h" -#include "MeasureValidationResults.h" -#include "Progress.h" +#include "Application.h" #include "Pvl.h" -#include "PvlGroup.h" -#include "PvlKeyword.h" -#include "PvlObject.h" -#include "SerialNumber.h" -#include "SerialNumberList.h" -#include "IException.h" +#include "UserInterface.h" +#include "cnetedit.h" #include "GuiEditFile.h" + using namespace std; using namespace Isis; -// Deletion test -bool shouldDelete(ControlPoint *point); - -// Mutator methods -void ignorePoint(ControlNet &cnet, ControlPoint *point, QString cause); -void ignoreMeasure(ControlNet &cnet, ControlPoint *point, - ControlMeasure *measure, QString cause); -void deletePoint(ControlNet &cnet, int cp); -void deleteMeasure(ControlPoint *point, int cm); - -// Edit passes -void populateLog(ControlNet &cnet, bool ignore); - -void unlockPoints(ControlNet &cnet, ControlPointList &cpList); -void ignorePoints(ControlNet &cnet, ControlPointList &cpList); -void lockPoints(ControlNet &cnet, ControlPointList &cpList); - -void unlockCubes(ControlNet &cnet, SerialNumberList &snl); -void ignoreCubes(ControlNet &cnet, SerialNumberList &snl); -void lockCubes(ControlNet &cnet, SerialNumberList &snl); - -void unlockMeasures(ControlNet &cnet, - QMap< QString, QSet * > &editMeasures); -void ignoreMeasures(ControlNet &cnet, - QMap< QString, QSet * > &editMeasures); -void lockMeasures(ControlNet &cnet, - QMap< QString, QSet * > &editMeasures); - -void checkAllMeasureValidity(ControlNet &cnet, QString cubeList); - -// Validity test -MeasureValidationResults validateMeasure(const ControlMeasure *measure, - Cube *cube, Camera *camera); - -// Logging helpers -void logResult(QMap *pointsLog, QString pointId, QString cause); -void logResult(QMap *measuresLog, - QString pointId, QString serial, QString cause); -PvlObject createLog(QString label, QMap *pointsMap); -PvlObject createLog(QString label, - QMap *pointsMap, QMap *measuresMap); - void PrintTemp(); void EditDefFile(); map GuiHelpers() { - map helper; - helper["PrintTemp"] = (void *) PrintTemp; - helper["EditDefFile"] = (void *) EditDefFile; - return helper; + map helper; + helper["PrintTemp"] = (void *) PrintTemp; + helper["EditDefFile"] = (void *) EditDefFile; + return helper; } -// Global variables -int numPointsDeleted; -int numMeasuresDeleted; - -bool deleteIgnored; -bool preservePoints; -bool retainRef; -bool keepLog; -bool ignoreAll; - -QMap *ignoredPoints; -QMap *ignoredMeasures; -QMap *retainedReferences; -QMap *editLockedPoints; -QMap *editLockedMeasures; - -ControlNetValidMeasure *validator; - -// Main program void IsisMain() { - // 2016-12-08 Ian Humphrey - Set the QHash seed, otherwise output is ALWAYS slightly - // different. Note that in Qt4, the seed was constant, but in Qt5, the seed is - // created differently for each process. Fixes #4206. - qSetGlobalQHashSeed(0); - - // Reset the counts of points and measures deleted - numPointsDeleted = 0; - numMeasuresDeleted = 0; - - // Interface for getting user parameters UserInterface &ui = Application::GetUserInterface(); - - // Get global user parameters - bool ignore = ui.GetBoolean("IGNORE"); - deleteIgnored = ui.GetBoolean("DELETE"); - preservePoints = ui.GetBoolean("PRESERVE"); - retainRef = ui.GetBoolean("RETAIN_REFERENCE"); - ignoreAll = ui.GetBoolean("IGNOREALL"); - - // Data needed to keep track of ignored/deleted points and measures - keepLog = ui.WasEntered("LOG"); - ignoredPoints = NULL; - ignoredMeasures = NULL; - retainedReferences = NULL; - editLockedPoints = NULL; - editLockedMeasures = NULL; - - // Test if file exists, throw exception if it does not, continue otherwise. - FileName cnetInput(ui.GetFileName("CNET")); - if (!cnetInput.fileExists()) { - QString msg = "The control network [" + cnetInput.expanded() + "] entered for CNET does not exist."; - throw IException(IException::User, msg, _FILEINFO_); - } - - // If the user wants to keep a log, go ahead and populate it with all the - // existing ignored points and measures - ControlNet cnet(ui.GetFileName("CNET")); - if (keepLog && cnet.GetNumPoints() > 0) - populateLog(cnet, ignore); - - // List has Points Ids - bool processPoints = false; - ControlPointList *cpList = NULL; - if (ui.WasEntered("POINTLIST") && cnet.GetNumPoints() > 0) { - processPoints = true; - QString pointlistFileName = ui.GetFileName("POINTLIST"); - cpList = new ControlPointList((FileName) pointlistFileName); - } - - // List has Cube file names - bool processCubes = false; - SerialNumberList *cubeSnl = NULL; - if (ui.WasEntered("CUBELIST") && cnet.GetNumPoints() > 0) { - processCubes = true; - QString ignorelistFileName = ui.GetFileName("CUBELIST"); - cubeSnl = new SerialNumberList(ignorelistFileName); - } - - // List has measurelist file names - bool processMeasures = false; - QMap< QString, QSet * > *editMeasures = NULL; - if (ui.WasEntered("MEASURELIST") && cnet.GetNumPoints() > 0) { - processMeasures = true; - editMeasures = new QMap< QString, QSet * >; - - QFile file(ui.GetFileName("MEASURELIST")); - if (!file.open(QIODevice::ReadOnly | QIODevice::Text)) { - QString msg = "Unable to open MEASURELIST [" + - file.fileName() + "]"; - throw IException(IException::User, msg, _FILEINFO_); - } - - QTextStream in(&file); - int lineNumber = 1; - while (!in.atEnd()) { - QString line = in.readLine(); - QStringList results = line.split(","); - if (results.size() < 2) { - QString msg = "Line " + QString::number(lineNumber) + " in the MEASURELIST does " - "not contain a Point ID and a cube filename separated by a comma"; - throw IException(IException::User, msg, _FILEINFO_); - } - - if (!editMeasures->contains(results[0])) - editMeasures->insert(results[0], new QSet); - - FileName cubeName(results[1]); - QString sn = SerialNumber::Compose(cubeName.expanded()); - (*editMeasures)[results[0]]->insert(sn); - - lineNumber++; - } - } - - if (ui.GetBoolean("UNLOCK")) { - if (processPoints) unlockPoints(cnet, *cpList); - if (processCubes) unlockCubes(cnet, *cubeSnl); - if (processMeasures) unlockMeasures(cnet, *editMeasures); - } - - /* - * As a first pass, just try and delete anything that's already ignored - * in the Control Network, if the user wants to delete ignored points and - * measures. Originally, this check was performed last, only if the user - * didn't specify any other deletion methods. However, performing this - * check first will actually improve the running time in cases where there - * are already ignored points and measures in the input network. The added - * cost of doing this check here actually doesn't add to the running time at - * all, because these same checks would need to have been done later - * regardless. - */ - if (deleteIgnored && cnet.GetNumPoints() > 0) { - Progress progress; - progress.SetText("Deleting Ignored in Input"); - progress.SetMaximumSteps(cnet.GetNumPoints()); - progress.CheckStatus(); - - for (int cp = cnet.GetNumPoints() - 1; cp >= 0; cp--) { - ControlPoint *point = cnet.GetPoint(cp); - if (point->IsIgnored()) { - deletePoint(cnet, cp); - } - else { - for (int cm = point->GetNumMeasures() - 1; cm >= 0; cm--) { - if (point->GetMeasure(cm)->IsIgnored()) { - if (cm == point->IndexOfRefMeasure() && ignoreAll) { - // If the reference is ignored and IgnoreAll is set, the point must ignored too - ignorePoint(cnet, point, "Reference measure ignored"); - } - else { - deleteMeasure(point, cm); - } - } - } - - // Check if the number of measures in the point is zero or there are too - // few measures in the point and we don't want to preserve them. - if (shouldDelete(point)) { - deletePoint(cnet, cp); - } - } - - progress.CheckStatus(); - } - } - - if (ignore) { - if (processPoints) ignorePoints(cnet, *cpList); - if (processCubes) ignoreCubes(cnet, *cubeSnl); - if (processMeasures) ignoreMeasures(cnet, *editMeasures); - - // Perform validity check - if (ui.GetBoolean("CHECKVALID") && cnet.GetNumPoints() > 0) { - validator = NULL; - - // First validate DefFile's keywords and value type - Pvl defFile(ui.GetFileName("DEFFILE")); - Pvl pvlTemplate("$ISISROOT/appdata/templates/cnet_validmeasure/validmeasure.def"); - Pvl pvlResults; - pvlTemplate.validatePvl(defFile, pvlResults); - if (pvlResults.groups() > 0 || pvlResults.keywords() > 0) { - Application::Log(pvlResults.group(0)); - QString sErrMsg = "Invalid Deffile\n"; - throw IException(IException::User, sErrMsg, _FILEINFO_); - } - - // Construct the validator from the user-specified definition file - validator = new ControlNetValidMeasure(&defFile); - - // User also provided a list of all serial numbers corresponding to every - // cube in the control network - QString cubeList = ui.GetFileName("FROMLIST"); - checkAllMeasureValidity(cnet, cubeList); - - // Delete the validator - if (validator != NULL) { - delete validator; - validator = NULL; - } - - // Log the DEFFILE to the print file - Application::Log(defFile.findGroup("ValidMeasure", Pvl::Traverse)); - } - } - - if (ui.GetBoolean("LOCK")) { - if (processPoints) lockPoints(cnet, *cpList); - if (processCubes) lockCubes(cnet, *cubeSnl); - if (processMeasures) lockMeasures(cnet, *editMeasures); - } - - // Log statistics - if (keepLog) { - Pvl outputLog; - - outputLog.addKeyword(PvlKeyword("PointsDeleted", toString(numPointsDeleted))); - outputLog.addKeyword(PvlKeyword("MeasuresDeleted", toString(numMeasuresDeleted))); - - PvlObject lockedLog = createLog( - "EditLocked", editLockedPoints, editLockedMeasures); - outputLog.addObject(lockedLog); - - outputLog.addObject(createLog("RetainedReferences", retainedReferences)); - - // Depending on whether the user chose to delete ignored points and - // measures, the log will either contain reasons for being ignored, or - // reasons for being deleted - PvlObject ignoredLog = createLog( - deleteIgnored ? "Deleted" : "Ignored", ignoredPoints, ignoredMeasures); - outputLog.addObject(ignoredLog); - - // Write the log - QString logFileName = ui.GetFileName("LOG"); - outputLog.write(logFileName); - - // Delete the structures keeping track of the ignored points and measures - delete ignoredPoints; - ignoredPoints = NULL; - - delete ignoredMeasures; - ignoredMeasures = NULL; - - delete retainedReferences; - retainedReferences = NULL; - - delete editLockedPoints; - editLockedPoints = NULL; - - delete editLockedMeasures; - editLockedMeasures = NULL; - } - - delete cpList; - cpList = NULL; - - delete cubeSnl; - cubeSnl = NULL; - - if (editMeasures != NULL) { - QList points = editMeasures->keys(); - for (int i = 0; i < points.size(); i++) delete (*editMeasures)[points[i]]; - delete editMeasures; - editMeasures = NULL; - } - - // Write the network - cnet.Write(ui.GetFileName("ONET")); -} - - -/** - * After any modification to a point's measures or ignored status, this check - * should be performed to determine if the changes should result in the point's - * deletion. - * - * @param point The Control Point recently modified - * - * @return Whether or not the point should be deleted - */ - -bool shouldDelete(ControlPoint *point){ - - if(!deleteIgnored) - return false; - - - else{ - - if ( point->GetNumMeasures() == 0 && !preservePoints) - return true; - - - if (point->GetType() != ControlPoint::Fixed && point->GetNumMeasures()< 2 ){ - - if(preservePoints && point->GetNumMeasures() == 1) - return false; - - return true; //deleteIgnore = TRUE or else we would not be here - } - - - if( point->IsIgnored() ) - return true; - - return false; - - } - - -} - - - - - -/* -bool shouldDelete(ControlPoint *point) { - // If the point only has one measure, then unless it's a fixed point or the - // user wishes to preserve such points, it should be deleted. As a side - // effect, this check will also delete empty points that satisfy this - // condition without having to do the next check - if ((point->GetNumMeasures() < 2 && !preservePoints) && - point->GetType() != ControlPoint::Fixed) - return true; - - // A point without any measures should always be deleted - if (point->GetNumMeasures() == 0) - return true; - - // If the user wants to delete ignored points, and this point is ignored, - // then it follows that it should be deleted - if (point->IsIgnored() && deleteIgnored) - return true; - - // Otherwise, the point looks good - return false; -} -*/ - -/** - * Set the point at the given index in the control network to ignored, and add - * a new keyword to the list of ignored points with a cause for the ignoring, - * if the user wished to keep a log. - * - * @param cnet The Control Network being modified - * @param point The Control Point we wish to ignore - * @param cause A prose description of why the point was ignored (for logging) - */ -void ignorePoint(ControlNet &cnet, ControlPoint *point, QString cause) { - ControlPoint::Status result = point->SetIgnored(true); - - logResult(result == ControlPoint::Success ? ignoredPoints : editLockedPoints, - point->GetId(), cause); -} - - -/** - * Set the measure to be ignored, and add a new keyword to the list of ignored - * measures if the user wished to keep a log. - * - * @param cnet The Control Network being modified - * @param point The Control Point of the Control Measure we wish to ignore - * @param measure The Control Measure we wish to ignore - * @param cause A prose description of why the measure was ignored (for - * logging) - */ -void ignoreMeasure(ControlNet &cnet, ControlPoint *point, - ControlMeasure *measure, QString cause) { - ControlMeasure::Status result = measure->SetIgnored(true); - - logResult( - result == ControlMeasure::Success ? ignoredMeasures : editLockedMeasures, - point->GetId(), measure->GetCubeSerialNumber(), cause); - - if (ignoreAll && measure->Parent()->GetRefMeasure() == measure) { - foreach (ControlMeasure *cm, measure->Parent()->getMeasures()) { - if (!cm->IsIgnored()) - ignoreMeasure(cnet, measure->Parent(), cm, "Reference ignored"); - } - } -} - - -/** - * Delete the point, record how many points and measures have been deleted. - * - * @param cnet The Control Network being modified - * @param cp Index into the Control Network for the point we wish to delete - */ -void deletePoint(ControlNet &cnet, int cp) { - ControlPoint *point = cnet.GetPoint(cp); - - // Do the edit lock check up front so we don't accidentally log that a point - // was deleted when in fact it was not - if (!point->IsEditLocked()) { - numMeasuresDeleted += point->GetNumMeasures(); - numPointsDeleted++; - - if (keepLog) { - // If the point's being deleted but it wasn't set to ignore, it can only - // be because the point has two few measures remaining - if (!point->IsIgnored()) - ignorePoint(cnet, point, "Too few measures"); - - // For any measures not ignored, mark their cause for deletion as being - // caused by the point's deletion - for (int cm = 0; cm < point->GetNumMeasures(); cm++) { - ControlMeasure *measure = point->GetMeasure(cm); - if (!measure->IsIgnored()) - ignoreMeasure(cnet, point, measure, "Point deleted"); - } - } - - cnet.DeletePoint(cp); - } - else { - for (int cm = 0; cm < point->GetNumMeasures(); cm++) { - if (point->GetMeasure(cm)->IsEditLocked()) { - ignorePoint(cnet, point, "EditLocked point skipped"); - } - } - } -} - - -/** - * Delete the measure, increment the count of measures deleted. - * - * @param cnet The Control Network being modified - * @param point The Control Point of the Control Measure we wish to delete - * @param cm Index into the Control Network for the measure we wish to delete - */ -void deleteMeasure(ControlPoint *point, int cm) { - if (point->Delete(cm) == ControlMeasure::Success) numMeasuresDeleted++; -} - - -/** - * Seed the log with points and measures already ignored. - * - * @param cnet The Control Network being modified - */ -void populateLog(ControlNet &cnet, bool ignore) { - ignoredPoints = new QMap; - ignoredMeasures = new QMap; - - retainedReferences = new QMap; - - editLockedPoints = new QMap; - editLockedMeasures = new QMap; - - Progress progress; - progress.SetText("Initializing Log File"); - progress.SetMaximumSteps(cnet.GetNumPoints()); - progress.CheckStatus(); - - for (int cp = 0; cp < cnet.GetNumPoints(); cp++) { - ControlPoint *point = cnet.GetPoint(cp); - - if (point->IsIgnored()) { - ignorePoint(cnet, point, "Ignored from input"); - } - - for (int cm = 0; cm < point->GetNumMeasures(); cm++) { - ControlMeasure *measure = point->GetMeasure(cm); - - if (measure->IsIgnored()) { - if (cm == point->IndexOfRefMeasure() && ignoreAll) { - if (ignore && !point->IsIgnored()) { - ignorePoint(cnet, point, "Reference measure ignored"); - } - } - - ignoreMeasure(cnet, point, measure, "Ignored from input"); - } - } - - progress.CheckStatus(); - } -} - - -void unlockPoints(ControlNet &cnet, ControlPointList &cpList) { - Progress progress; - progress.SetText("Unlocking Points"); - progress.SetMaximumSteps(cnet.GetNumPoints()); - progress.CheckStatus(); - - for (int cp = cnet.GetNumPoints() - 1; cp >= 0; cp--) { - ControlPoint *point = cnet.GetPoint(cp); - if (point->IsEditLocked() && cpList.HasControlPoint(point->GetId())) { - point->SetEditLock(false); - } - progress.CheckStatus(); - } -} - - -/** - * Iterates over the points in the Control Network looking for a match in the - * list of Control Points to be ignored. If a match is found, ignore the - * point, and if the DELETE option was selected, the point will then be deleted - * from the network. - * - * @param fileName Name of the file containing the list of Control Points - * @param cnet The Control Network being modified - */ -void ignorePoints(ControlNet &cnet, ControlPointList &cpList) { - Progress progress; - progress.SetText("Comparing Points to POINTLIST"); - progress.SetMaximumSteps(cnet.GetNumPoints()); - progress.CheckStatus(); - - for (int cp = cnet.GetNumPoints() - 1; cp >= 0; cp--) { - ControlPoint *point = cnet.GetPoint(cp); - - // Compare each Point Id listed with the Point in the - // Control Network for according exclusion - if (!point->IsIgnored() && cpList.HasControlPoint(point->GetId())) { - ignorePoint(cnet, point, "Point ID in POINTLIST"); - } - - if (deleteIgnored) { - //look for previously ignored control points - if (point->IsIgnored()) { - deletePoint(cnet, cp); - } - else { - //look for previously ignored control measures - for (int cm = point->GetNumMeasures() - 1; cm >= 0; cm--) { - if (point->GetMeasure(cm)->IsIgnored() && deleteIgnored) { - deleteMeasure(point, cm); - } - } - // Check if there are too few measures in the point or the point was - // previously ignored - if (shouldDelete(point)) { - deletePoint(cnet, cp); - } - } - } - - progress.CheckStatus(); - } -} - - -void lockPoints(ControlNet &cnet, ControlPointList &cpList) { - Progress progress; - progress.SetText("Locking Points"); - progress.SetMaximumSteps(cnet.GetNumPoints()); - progress.CheckStatus(); - - for (int cp = cnet.GetNumPoints() - 1; cp >= 0; cp--) { - ControlPoint *point = cnet.GetPoint(cp); - if (!point->IsEditLocked() && cpList.HasControlPoint(point->GetId())) { - point->SetEditLock(true); - } - progress.CheckStatus(); - } -} - - -void unlockCubes(ControlNet &cnet, SerialNumberList &snl) { - Progress progress; - progress.SetText("Unlocking Cubes"); - progress.SetMaximumSteps(cnet.GetNumPoints()); - progress.CheckStatus(); - - for (int cp = cnet.GetNumPoints() - 1; cp >= 0; cp--) { - ControlPoint *point = cnet.GetPoint(cp); - - for (int cm = point->GetNumMeasures() - 1; cm >= 0; cm--) { - ControlMeasure *measure = point->GetMeasure(cm); - - QString serialNumber = measure->GetCubeSerialNumber(); - if (measure->IsEditLocked() && snl.hasSerialNumber(serialNumber)) { - measure->SetEditLock(false); - } - } - progress.CheckStatus(); - } -} - - -/** - * Iterates over the list of Control Measures in the Control Network and - * compares measure serial numbers with those in the input list of serial - * numbers to be ignored. If a match is found, ignore the measure. If the - * DELETE option was selected, the measure will then be deleted from the - * network. - * - * @param fileName Name of the file containing the list of Serial Numbers to be - * ignored - * @param cnet The Control Network being modified - */ -void ignoreCubes(ControlNet &cnet, SerialNumberList &snl) { - Progress progress; - progress.SetText("Comparing Measures to CUBELIST"); - progress.SetMaximumSteps(cnet.GetNumPoints()); - progress.CheckStatus(); - - for (int cp = cnet.GetNumPoints() - 1; cp >= 0; cp--) { - ControlPoint *point = cnet.GetPoint(cp); - - // Compare each Serial Number listed with the serial number in the - // Control Measure for according exclusion - for (int cm = point->GetNumMeasures() - 1; cm >= 0; cm--) { - ControlMeasure *measure = point->GetMeasure(cm); - - if (!point->IsIgnored() && point->GetMeasure(cm)->IsEditLocked()) { - ignoreMeasure(cnet, point, measure, "EditLocked measure skipped"); - } - - QString serialNumber = measure->GetCubeSerialNumber(); - - if (snl.hasSerialNumber(serialNumber)) { - QString cause = "Serial Number in CUBELIST"; - if (cm == point->IndexOfRefMeasure() && retainRef) { - logResult(retainedReferences, point->GetId(), cause); - } - else if (!measure->IsIgnored() || cm == point->IndexOfRefMeasure()) { - ignoreMeasure(cnet, point, measure, cause); - - if (cm == point->IndexOfRefMeasure() && !point->IsIgnored() && ignoreAll) { - ignorePoint(cnet, point, "Reference measure ignored"); - } - } - } - - //also look for previously ignored control measures - if (deleteIgnored && measure->IsIgnored()) { - deleteMeasure(point, cm); - } - } - // Check if there are too few measures in the point or the point was - // previously ignored - if (shouldDelete(point)) { - deletePoint(cnet, cp); - } - - progress.CheckStatus(); - } -} - - -void lockCubes(ControlNet &cnet, SerialNumberList &snl) { - Progress progress; - progress.SetText("Locking Cubes"); - progress.SetMaximumSteps(cnet.GetNumPoints()); - progress.CheckStatus(); - - for (int cp = cnet.GetNumPoints() - 1; cp >= 0; cp--) { - ControlPoint *point = cnet.GetPoint(cp); - - for (int cm = point->GetNumMeasures() - 1; cm >= 0; cm--) { - ControlMeasure *measure = point->GetMeasure(cm); - - QString serialNumber = measure->GetCubeSerialNumber(); - if (!measure->IsEditLocked() && snl.hasSerialNumber(serialNumber)) { - measure->SetEditLock(true); - } - } - progress.CheckStatus(); - } -} - - -void unlockMeasures(ControlNet &cnet, - QMap< QString, QSet * > &editMeasures) { - - Progress progress; - progress.SetText("Unlocking Measures"); - progress.SetMaximumSteps(cnet.GetNumPoints()); - progress.CheckStatus(); - - for (int cp = cnet.GetNumPoints() - 1; cp >= 0; cp--) { - ControlPoint *point = cnet.GetPoint(cp); - - QString id = point->GetId(); - if (editMeasures.contains(id)) { - QSet *measureSet = editMeasures[id]; - - for (int cm = point->GetNumMeasures() - 1; cm >= 0; cm--) { - ControlMeasure *measure = point->GetMeasure(cm); - - QString serialNumber = measure->GetCubeSerialNumber(); - if (measure->IsEditLocked() && measureSet->contains(serialNumber)) { - measure->SetEditLock(false); - } - } - } - progress.CheckStatus(); - } -} - - -void ignoreMeasures(ControlNet &cnet, - QMap< QString, QSet * > &editMeasures) { - - Progress progress; - progress.SetText("Ignoring Measures"); - progress.SetMaximumSteps(cnet.GetNumPoints()); - progress.CheckStatus(); - - for (int cp = cnet.GetNumPoints() - 1; cp >= 0; cp--) { - ControlPoint *point = cnet.GetPoint(cp); - - QString id = point->GetId(); - if (editMeasures.contains(id)) { - QSet *measureSet = editMeasures[id]; - - // Compare each Serial Number listed with the serial number in the - // Control Measure for according exclusion - for (int cm = point->GetNumMeasures() - 1; cm >= 0; cm--) { - ControlMeasure *measure = point->GetMeasure(cm); - - if (!point->IsIgnored() && point->GetMeasure(cm)->IsEditLocked()) { - ignoreMeasure(cnet, point, measure, "EditLocked measure skipped"); - } - - QString serialNumber = measure->GetCubeSerialNumber(); - if (measureSet->contains(serialNumber)) { - QString cause = "Measure in MEASURELIST"; - if (cm == point->IndexOfRefMeasure() && retainRef) { - logResult(retainedReferences, point->GetId(), cause); - } - else if (!measure->IsIgnored() || cm == point->IndexOfRefMeasure()) { - ignoreMeasure(cnet, point, measure, cause); - - if (cm == point->IndexOfRefMeasure() && !point->IsIgnored() && ignoreAll) { - ignorePoint(cnet, point, "Reference measure ignored"); - } - } - } - - //also look for previously ignored control measures - if (deleteIgnored && measure->IsIgnored()) { - deleteMeasure(point, cm); - } - } - // Check if there are too few measures in the point or the point was - // previously ignored - if (shouldDelete(point)) { - deletePoint(cnet, cp); - } - } - - progress.CheckStatus(); - } -} - - -void lockMeasures(ControlNet &cnet, - QMap< QString, QSet * > &editMeasures) { - - Progress progress; - progress.SetText("Locking Measures"); - progress.SetMaximumSteps(cnet.GetNumPoints()); - progress.CheckStatus(); - - for (int cp = cnet.GetNumPoints() - 1; cp >= 0; cp--) { - ControlPoint *point = cnet.GetPoint(cp); - - QString id = point->GetId(); - if (editMeasures.contains(id)) { - QSet *measureSet = editMeasures[id]; - - for (int cm = point->GetNumMeasures() - 1; cm >= 0; cm--) { - ControlMeasure *measure = point->GetMeasure(cm); - - QString serialNumber = measure->GetCubeSerialNumber(); - if (!measure->IsEditLocked() && measureSet->contains(serialNumber)) { - measure->SetEditLock(true); - } - } - } - progress.CheckStatus(); - } -} - - -/** - * Compare each measure in the Control Network against tolerances specified in - * the input DEFFILE. Ignore any measure whose values fall outside the valid - * tolerances, and delete it if the user specified to do so. - * - * @param cnet The Control Network being modified - * @param cubeList Name of the file containing the list of all Serial Numbers - * in the network - */ -void checkAllMeasureValidity(ControlNet &cnet, QString cubeList) { - SerialNumberList serialNumbers(cubeList); - - QList cnetSerials = cnet.GetCubeSerials(); - Progress progress; - progress.SetText("Checking Measure Validity"); - progress.SetMaximumSteps(cnetSerials.size()); - progress.CheckStatus(); - - foreach (QString serialNumber, cnetSerials) { - - Cube *cube = NULL; - Camera *camera = NULL; - if (validator->IsCubeRequired()) { - if (!serialNumbers.hasSerialNumber(serialNumber)) { - QString msg = "Serial Number [" + serialNumber + "] contains no "; - msg += "matching cube in FROMLIST"; - throw IException(IException::User, msg, _FILEINFO_); - } - - cube = new Cube; - cube->open(serialNumbers.fileName(serialNumber)); - - if (validator->IsCameraRequired()) { - try { - camera = cube->camera(); - } - catch (IException &e) { - QString msg = "Cannot Create Camera for Image:" + cube->fileName(); - throw IException(e, IException::User, msg, _FILEINFO_); - } - } - } - - QList measures = cnet.GetMeasuresInCube(serialNumber); - for (int cm = 0; cm < measures.size(); cm++) { - ControlMeasure *measure = measures[cm]; - ControlPoint *point = measure->Parent(); - - if (!measure->IsIgnored()) { - MeasureValidationResults results = - validateMeasure(measure, cube, camera); - - if (!results.isValid()) { - QString failure = results.toString(); - QString cause = "Validity Check " + failure; - - if (measure == point->GetRefMeasure() && retainRef) { - logResult(retainedReferences, point->GetId(), cause); - } - else { - ignoreMeasure(cnet, point, measure, cause); - - if (measure == point->GetRefMeasure() && ignoreAll) { - ignorePoint(cnet, point, "Reference measure ignored"); - } - } - } - } - } - - delete cube; - progress.CheckStatus(); - } - - for (int cp = cnet.GetNumPoints() - 1; cp >= 0; cp--) { - ControlPoint *point = cnet.GetPoint(cp); - - for (int cm = point->GetNumMeasures() - 1; cm >= 0; cm--) { - ControlMeasure *measure = point->GetMeasure(cm); - - // Also look for previously ignored control measures - if (deleteIgnored && measure->IsIgnored()) { - deleteMeasure(point, cm); - } - } - - // Check if there are too few measures in the point or the point was - // previously ignored - if (shouldDelete(point)) - deletePoint(cnet, cp); - } -} - - -/** - * Test an individual measure against the user-specified tolerances and return - * the result. - * - * @param curMeasure The measure currently being tested - * @param cubeName Name of the cube whose serial number matches that of the - * current measure - * - * @return The results of validating the measure as an object containing the - * validity and a formatted error (or success) message - */ -MeasureValidationResults validateMeasure(const ControlMeasure *measure, - Cube *cube, Camera *camera) { - - MeasureValidationResults results = - validator->ValidStandardOptions(measure, cube, camera); - - return results; -} - - -void logResult(QMap *pointsLog, QString pointId, QString cause) { - if (keepLog) { - // Label the keyword as the Point ID, and make the cause into the value - (*pointsLog)[pointId] = cause; - } -} - - -void logResult(QMap *measuresLog, - QString pointId, QString serial, QString cause) { - - if (keepLog) { - // Make the keyword label the measure Serial Number, and the cause into the - // value - PvlKeyword measureMessage(PvlKeyword(serial, cause)); - - // Using a map to make accessing by Point ID a O(1) to O(lg n) operation - if (measuresLog->contains(pointId)) { - // If the map already has a group for the given Point ID, simply add the - // new measure to it - PvlGroup &pointGroup = (*measuresLog)[pointId]; - pointGroup.addKeyword(measureMessage); - } - else { - // Else there is no group for the Point ID of the measure being ignored, - // so make a new group, add the measure, and insert it into the map - PvlGroup pointGroup(pointId); - pointGroup.addKeyword(measureMessage); - (*measuresLog)[pointId] = pointGroup; - } - } -} - - -PvlObject createLog(QString label, QMap *pointsMap) { - PvlObject pointsLog(label); - - QList pointIds = pointsMap->keys(); - for (int i = 0; i < pointIds.size(); i++) { - QString pointId = pointIds.at(i); - pointsLog.addKeyword(PvlKeyword(pointId, (*pointsMap)[pointId])); - } - - return pointsLog; + Pvl results = cnetedit(ui); } - -PvlObject createLog(QString label, - QMap *pointsMap, QMap *measuresMap) { - - PvlObject editLog(label); - - PvlObject pointsLog = createLog("Points", pointsMap); - editLog.addObject(pointsLog); - - // Get all the groups of measures from the map - PvlObject measuresLog("Measures"); - QList measureGroups = measuresMap->values(); - - for (int i = 0; i < measureGroups.size(); i++) - measuresLog.addGroup(measureGroups.at(i)); - - editLog.addObject(measuresLog); - return editLog; -} - - /** - * Helper function to print out template to session log. - */ + * Helper function to print out template to session log. + */ void PrintTemp() { UserInterface &ui = Application::GetUserInterface(); @@ -1069,12 +50,13 @@ void PrintTemp() { Isis::Application::GuiLog(userTemp); } + /** - * Helper function to be able to edit the Deffile. - * Opens an editor to edit the file. - * - * @author Sharmila Prasad (5/23/2011) - */ + * Helper function to be able to edit the Deffile. + * Opens an editor to edit the file. + * + * @author Sharmila Prasad (5/23/2011) + */ void EditDefFile(void) { UserInterface &ui = Application::GetUserInterface(); QString sDefFile = ui.GetAsString("DEFFILE"); diff --git a/isis/src/control/apps/cnetedit/tsts/Makefile b/isis/src/control/apps/cnetedit/tsts/Makefile deleted file mode 100644 index 322a6262d1..0000000000 --- a/isis/src/control/apps/cnetedit/tsts/Makefile +++ /dev/null @@ -1,5 +0,0 @@ -BLANKS = "%-6s" -LENGTH = "%-40s" - -include $(ISISROOT)/make/isismake.tststree - diff --git a/isis/src/control/apps/cnetedit/tsts/checkValid/Makefile b/isis/src/control/apps/cnetedit/tsts/checkValid/Makefile deleted file mode 100644 index 72ee5aa8c8..0000000000 --- a/isis/src/control/apps/cnetedit/tsts/checkValid/Makefile +++ /dev/null @@ -1,27 +0,0 @@ -APPNAME = cnetedit - -include $(ISISROOT)/make/isismake.tsts - -commands: -# normal test - $(LS) $(INPUT)/*.cub > $(OUTPUT)/list.lis; - $(APPNAME) CNET=$(INPUT)/cnet.net \ - ONET=$(OUTPUT)/cnet.net \ - LOG=$(OUTPUT)/log.txt \ - CHECKVALID=yes \ - FROMLIST=$(OUTPUT)/list.lis \ - DEFFILE=$(INPUT)/deffile.def \ - RETAIN_REFERENCE=yes > /dev/null; - -# test with IGNOREALL=true -# $(LS) $(INPUT)/*.cub > $(OUTPUT)/list.lis; - $(APPNAME) CNET=$(INPUT)/cnet.net \ - ONET=$(OUTPUT)/cnet2.net \ - LOG=$(OUTPUT)/log2.txt \ - CHECKVALID=yes \ - IGNOREALL=true \ - FROMLIST=$(OUTPUT)/list.lis \ - DEFFILE=$(INPUT)/deffile.def > /dev/null; - -# Cleanup - $(RM) $(OUTPUT)/list.lis; diff --git a/isis/src/control/apps/cnetedit/tsts/default/Makefile b/isis/src/control/apps/cnetedit/tsts/default/Makefile deleted file mode 100644 index 39b4d39908..0000000000 --- a/isis/src/control/apps/cnetedit/tsts/default/Makefile +++ /dev/null @@ -1,6 +0,0 @@ -APPNAME = cnetedit - -include $(ISISROOT)/make/isismake.tsts - -commands: - $(APPNAME) CNET=$(INPUT)/cnet.net ONET=$(OUTPUT)/cnet.net > /dev/null; diff --git a/isis/src/control/apps/cnetedit/tsts/editLock/Makefile b/isis/src/control/apps/cnetedit/tsts/editLock/Makefile deleted file mode 100644 index eb0e6f149c..0000000000 --- a/isis/src/control/apps/cnetedit/tsts/editLock/Makefile +++ /dev/null @@ -1,22 +0,0 @@ -APPNAME = cnetedit - -include $(ISISROOT)/make/isismake.tsts - -commands: - $(LS) $(INPUT)/*.cub > $(OUTPUT)/list.lis; - - $(APPNAME) CNET=$(INPUT)/cnet.net \ - LOG=$(OUTPUT)/locked.txt \ - CUBELIST=$(OUTPUT)/list.lis \ - POINTLIST=$(INPUT)/points.lis \ - IGNORE=no DELETE=no LOCK=yes \ - ONET=$(OUTPUT)/locked.net > /dev/null; - - $(APPNAME) CNET=$(INPUT)/cnet.net \ - LOG=$(OUTPUT)/unlocked.txt \ - CUBELIST=$(OUTPUT)/list.lis \ - POINTLIST=$(INPUT)/points.lis \ - UNLOCK=yes IGNORE=no DELETE=no \ - ONET=$(OUTPUT)/unlocked.net > /dev/null; - - $(RM) $(OUTPUT)/list.lis; diff --git a/isis/src/control/apps/cnetedit/tsts/errors/Makefile b/isis/src/control/apps/cnetedit/tsts/errors/Makefile deleted file mode 100644 index a2630fbc54..0000000000 --- a/isis/src/control/apps/cnetedit/tsts/errors/Makefile +++ /dev/null @@ -1,19 +0,0 @@ -APPNAME = cnetedit - -include $(ISISROOT)/make/isismake.tsts - -commands: -# Test with a non-existant file - echo -e "Error Test: Non-existant file" > $(OUTPUT)/error_temp.txt; - if [[ `$(APPNAME) CNET=$(INPUT)/cnet.net \ - ONET=$(OUTPUT)/cnet.net \ - 2>> $(OUTPUT)/error_temp.txt \ - > /dev/null` ]]; \ - then \ - true; \ - fi; - - $(SED) 's+\[/.*/input/+\[input/+' $(OUTPUT)/error_temp.txt > $(OUTPUT)/error.txt; - -# Cleanup - $(RM) $(OUTPUT)/error_temp.txt; diff --git a/isis/src/control/apps/cnetedit/tsts/ignore/Makefile b/isis/src/control/apps/cnetedit/tsts/ignore/Makefile deleted file mode 100644 index c7f763dc8f..0000000000 --- a/isis/src/control/apps/cnetedit/tsts/ignore/Makefile +++ /dev/null @@ -1,15 +0,0 @@ -APPNAME = cnetedit - -include $(ISISROOT)/make/isismake.tsts - -commands: - $(LS) $(INPUT)/*.cub > $(OUTPUT)/list.lis; - $(CAT) $(INPUT)/measurelist.txt | sed 's#X#$(INPUT)#' \ - > $(OUTPUT)/measurelist.txt; - $(APPNAME) CNET=$(INPUT)/cnet.net \ - CUBELIST=$(OUTPUT)/list.lis \ - MEASURELIST=$(OUTPUT)/measurelist.txt \ - ONET=$(OUTPUT)/cnet.net DELETE=no \ - IGNOREALL=yes \ - log=$(OUTPUT)/log.txt > /dev/null; - $(RM) $(OUTPUT)/list.lis $(OUTPUT)/measurelist.txt; diff --git a/isis/src/control/apps/cnetedit/tsts/ignoreMeasuresPoints/Makefile b/isis/src/control/apps/cnetedit/tsts/ignoreMeasuresPoints/Makefile deleted file mode 100644 index d8fd565c07..0000000000 --- a/isis/src/control/apps/cnetedit/tsts/ignoreMeasuresPoints/Makefile +++ /dev/null @@ -1,12 +0,0 @@ -APPNAME = cnetedit - -include $(ISISROOT)/make/isismake.tsts - -commands: - $(LS) $(INPUT)/*.cub > $(OUTPUT)/list.lis; - $(APPNAME) CNET=$(INPUT)/cnet.net \ - LOG=$(OUTPUT)/log.txt \ - CUBELIST=$(OUTPUT)/list.lis \ - POINTLIST=$(INPUT)/points.lis \ - ONET=$(OUTPUT)/cnet.net > /dev/null; - $(RM) $(OUTPUT)/list.lis; diff --git a/isis/src/control/apps/cnetedit/tsts/ignorePoints/Makefile b/isis/src/control/apps/cnetedit/tsts/ignorePoints/Makefile deleted file mode 100644 index 77cc4386f2..0000000000 --- a/isis/src/control/apps/cnetedit/tsts/ignorePoints/Makefile +++ /dev/null @@ -1,15 +0,0 @@ -APPNAME = cnetedit - -include $(ISISROOT)/make/isismake.tsts - -commands: -# original test - $(APPNAME) CNET=$(INPUT)/cnet.net \ - POINTLIST=$(INPUT)/points.lis \ - ONET=$(OUTPUT)/cnet.net > /dev/null; - -# test IGNOREALL=true with ignored input measures / points - $(APPNAME) CNET=$(INPUT)/cnet.net \ - POINTLIST=$(INPUT)/points.lis \ - IGNOREALL = true \ - ONET=$(OUTPUT)/cnet2.net > /dev/null; diff --git a/isis/src/control/apps/cnetedit/tsts/measurelist/Makefile b/isis/src/control/apps/cnetedit/tsts/measurelist/Makefile deleted file mode 100644 index 8dc1357221..0000000000 --- a/isis/src/control/apps/cnetedit/tsts/measurelist/Makefile +++ /dev/null @@ -1,39 +0,0 @@ -APPNAME = cnetedit - -include $(ISISROOT)/make/isismake.tsts - -commands: - -# general test - $(CAT) $(INPUT)/bad_measures.lis | $(SED) "s#,#,$(INPUT)/#" \ - > $(OUTPUT)/list.lis; - - $(APPNAME) CNET=$(INPUT)/cnet.net \ - LOG=$(OUTPUT)/log.txt \ - MEASURELIST=$(OUTPUT)/list.lis \ - DELETE=no \ - ONET=$(OUTPUT)/cnet.net > /dev/null; - -# test with IGNOREALL = true, DELETE=no measure that is a reference for a non-ignored point - $(CAT) $(INPUT)/bad_measures2.lis | $(SED) "s#,#,$(INPUT)/#" \ - > $(OUTPUT)/list2.lis; - - $(APPNAME) CNET=$(INPUT)/cnet.net \ - LOG=$(OUTPUT)/log2.txt \ - MEASURELIST=$(OUTPUT)/list2.lis \ - IGNOREALL=true \ - DELETE=no \ - ONET=$(OUTPUT)/cnet2.net > /dev/null; - -# test with DELETE=yes - $(CAT) $(INPUT)/bad_measures.lis | $(SED) "s#,#,$(INPUT)/#" \ - > $(OUTPUT)/list.lis; - - $(APPNAME) CNET=$(INPUT)/cnet.net \ - LOG=$(OUTPUT)/log3.txt \ - MEASURELIST=$(OUTPUT)/list.lis \ - ONET=$(OUTPUT)/cnet3.net > /dev/null; - -# Cleanup - $(RM) $(OUTPUT)/list.lis; - $(RM) $(OUTPUT)/list2.lis; diff --git a/isis/src/control/apps/cnetedit/tsts/noDelete/Makefile b/isis/src/control/apps/cnetedit/tsts/noDelete/Makefile deleted file mode 100644 index 93096a1e09..0000000000 --- a/isis/src/control/apps/cnetedit/tsts/noDelete/Makefile +++ /dev/null @@ -1,13 +0,0 @@ -APPNAME = cnetedit - -include $(ISISROOT)/make/isismake.tsts - -commands: - $(LS) $(INPUT)/*.cub > $(OUTPUT)/list.lis; - $(APPNAME) CNET=$(INPUT)/cnet.net \ - LOG=$(OUTPUT)/log.txt \ - CUBELIST=$(OUTPUT)/list.lis \ - POINTLIST=$(INPUT)/points.lis \ - DELETE = false \ - ONET=$(OUTPUT)/cnet2.net > /dev/null; - $(RM) $(OUTPUT)/list.lis; diff --git a/isis/src/control/apps/cnetedit/tsts/preservePoints/Makefile b/isis/src/control/apps/cnetedit/tsts/preservePoints/Makefile deleted file mode 100644 index 779e410259..0000000000 --- a/isis/src/control/apps/cnetedit/tsts/preservePoints/Makefile +++ /dev/null @@ -1,14 +0,0 @@ -APPNAME = cnetedit - -include $(ISISROOT)/make/isismake.tsts - -commands: - $(LS) $(INPUT)/*.cub > $(OUTPUT)/list.lis; - $(APPNAME) CNET=$(INPUT)/cnet.net \ - LOG=$(OUTPUT)/log.txt \ - CUBELIST=$(OUTPUT)/list.lis \ - POINTLIST=$(INPUT)/points.lis \ - DELETE = true \ - PRESERVE = true \ - ONET=$(OUTPUT)/cnet2.net > /dev/null; - $(RM) $(OUTPUT)/list.lis; diff --git a/isis/src/control/apps/cnetthinner/CnetManager.cpp b/isis/src/control/apps/cnetthinner/CnetManager.cpp index 78566d9e21..65ce302d67 100644 --- a/isis/src/control/apps/cnetthinner/CnetManager.cpp +++ b/isis/src/control/apps/cnetthinner/CnetManager.cpp @@ -27,19 +27,16 @@ find files of those names at the top level of this repository. **/ #include "ControlMeasure.h" #include "ControlMeasureLogData.h" -#include "tnt/tnt_array2d.h" -#include "tnt/tnt_array2d_utils.h" - ///#define DEBUG 1 namespace Isis { -// KPoint implementation + // KPoint implementation -/** - * Empty Constructor. Disabled at runtime. - * - */ + /** + * Empty Constructor. Disabled at runtime. + * + */ KPoint::KPoint() { m_point = 0; m_strength = -3; @@ -49,14 +46,14 @@ namespace Isis { } -/** - * Constructs a KPoint. - * - * @param point The control point to make a KPoint from. - * @param index The source index. - * @param weight The point's weight. - * - */ + /** + * Constructs a KPoint. + * + * @param point The control point to make a KPoint from. + * @param index The source index. + * @param weight The point's weight. + * + */ KPoint::KPoint(ControlPoint *point, const int &index, const double &weight) { BOOST_ASSERT ( point != 0 ); m_point = point; @@ -66,40 +63,40 @@ namespace Isis { } -/** - * Set the status of the KPoint to true for selected or - * false for unselected. - * - * @param state If true, the KPoint is set to selected. - */ + /** + * Set the status of the KPoint to true for selected or + * false for unselected. + * + * @param state If true, the KPoint is set to selected. + */ void KPoint::select(const bool &state) { m_selected = state; } -/** - * Calculate the strength of a control point. A negative return value indicates - * an invalid result. - * - * @param point - * @param weight - * - * @return double - */ + /** + * Calculate the strength of a control point. A negative return value indicates + * an invalid result. + * + * @param point + * @param weight + * + * @return double + */ double KPoint::calculateStrength(const ControlPoint *point, - const double &weight) const { + const double &weight) const { // Gut check for validity if ( !point ) return (-2.0); // Don't use points which have only 1 valid measure or fewer, since - // we don't use refIncides in the strength calculation. + // we don't use reference measures in the strength calculation. if ( point->GetNumValidMeasures() < 2.0 ) return (-1.0); // Got some good ones, compute strength double sum(0.0); int count(0); int refIndex = point->IndexOfRefMeasure(); - for ( int i = 0 ; i < point->GetNumMeasures() ; i++) { + for (int i = 0 ; i < point->GetNumMeasures(); i++) { if ( i != refIndex ) { // Check all but the reference measure const ControlMeasure *m = point->GetMeasure(i); if ( !m->IsIgnored() && m->HasLogData(ControlMeasureLogData::GoodnessOfFit) ) { @@ -109,60 +106,62 @@ namespace Isis { } } + // Check for valid count + if ( count <= 0 ) return ( 0 ); + // Compute the weighted strength - BOOST_ASSERT ( count > 0 ); double v_count(count); double v_strength = sum / v_count; return ( v_strength * ( 1.0 + (qLn(v_count) * weight) ) ); } -// CnetManager implementation + // CnetManager implementation -/** - * Constructs an emtpy CnetManager. - * - */ + /** + * Constructs an emtpy CnetManager. + * + */ CnetManager::CnetManager() : m_kpts() { } -/** - * Constructs a CnetManager using an input control network and a weight. - * - * @param cnet Input control network to be managed. - * @param weight Weights to apply to the control network. - */ + /** + * Constructs a CnetManager using an input control network and a weight. + * + * @param cnet Input control network to be managed. + * @param weight Weights to apply to the control network. + */ CnetManager::CnetManager(ControlNet &cnet, const double &weight) { load(cnet.GetPoints(), weight); } -/** - * - * Default Destructor - * - */ + /** + * + * Default Destructor + * + */ CnetManager::~CnetManager() { } -/** - * The number of points managed by CnetManager. - * - * @return @b int The number of points in this CnetManager. - */ - int CnetManager::size() const { + /** + * The number of points managed by CnetManager. + * + * @return @b int The number of points in this CnetManager. + */ + int CnetManager::size() const { return ( m_kpts.size() ); } -/** - * Loads a list of control points into the CnetManager. - * - * @param pts The QList of ControlPoints to load into the CnetManager. - * @param weight The weight to apply to each ControlPoint in the list. - * - * @return @b int The number of ControlPoints loaded into the CnetManager. - */ - int CnetManager::load(const QList &pts, const double &weight) { + /** + * Loads a list of control points into the CnetManager. + * + * @param pts The QList of ControlPoints to load into the CnetManager. + * @param weight The weight to apply to each ControlPoint in the list. + * + * @return @b int The number of ControlPoints loaded into the CnetManager. + */ + int CnetManager::load(const QList &pts, const double &weight) { m_kpts.clear(); for (int i = 0; i < pts.size(); i++) { @@ -176,7 +175,7 @@ namespace Isis { qSort(m_kpts.begin(), m_kpts.end(), SortStrengthDescending()); #if defined(DEBUG) - for (int p = 0 ; p < qMin(m_kpts.size(), 5) ; p++) { + for (int p = 0; p < qMin(m_kpts.size(), 5); p++) { std::cout << "Point: " << p << " - Strength: " << m_kpts[p].strength() << "\n"; } #endif @@ -190,12 +189,12 @@ namespace Isis { } -/** - * Get a list of control points in this CnetManager. - * - * @return @b const QList List of control points in CnetManager. - */ - const QList CnetManager::getControlPoints() const { + /** + * Get a list of control points in this CnetManager. + * + * @return @b const QList List of control points in CnetManager. + */ + const QList CnetManager::getControlPoints() const { QList pts; BOOST_FOREACH ( const KPoint &p, m_kpts ) { pts.append( p.point() ); @@ -204,11 +203,11 @@ namespace Isis { } -/** - * Return a map of the number of measures per cube. - * - * @return @b QMap Serial number, number of measures per that serial number (cube) - */ + /** + * Return a map of the number of measures per cube. + * + * @return @b QMap Serial number, number of measures per that serial number (cube) + */ QMap CnetManager::getCubeMeasureCount() const { QMap k_map; BOOST_FOREACH ( const KPoint &p, m_kpts ) { @@ -223,13 +222,13 @@ namespace Isis { } -/** - * Returns control measures and their associated indicies for a given cube (serial number.) - * - * @param serialNo Serial number (indicates a specific cube) to get the measure indicies for. - * - * @return @b CnetManager::PointSet Data structure containing the calculated index and measure. - */ + /** + * Returns control measures and their associated indicies for a given cube (serial number.) + * + * @param serialNo Serial number (indicates a specific cube) to get the measure indicies for. + * + * @return @b CnetManager::PointSet Data structure containing the calculated index and measure. + */ CnetManager::PointSet CnetManager::getCubeMeasureIndices(const QString &serialNo) const { PointSet cubeNdx; BOOST_FOREACH ( const KPoint &p, m_kpts ) { @@ -242,48 +241,48 @@ namespace Isis { } -/** - * Will return the KPoint at an input index. - * - * @return @b const KPoint& The KPoint at the requested index. - */ + /** + * Will return the KPoint at an input index. + * + * @return @b const KPoint& The KPoint at the requested index. + */ const KPoint &CnetManager::operator()(const int index) const { BOOST_ASSERT ( index < m_kpts.size() ); return ( m_kpts.at(index) ); } -/** - * - * Get a point at a specificed index. - * - * @param index Index of the point to get. - * - * @return @b const ControlPoint* The point at the requested index. - */ + /** + * + * Get a point at a specificed index. + * + * @param index Index of the point to get. + * + * @return @b const ControlPoint* The point at the requested index. + */ const ControlPoint *CnetManager::point(const int &index) const { BOOST_ASSERT ( index < m_kpts.size() ); return ( m_kpts.at(index).point() ); } -/** - * Gets the list of KPoints managed by this CubeManager. - * - * @return @b const QList& List of KPoints managed by this CnetManager. - */ + /** + * Gets the list of KPoints managed by this CubeManager. + * + * @return @b const QList& List of KPoints managed by this CnetManager. + */ const QList &CnetManager::pointList() const { return ( m_kpts ); } -/** - * Get a point at a specificed index. - * - * @param index Index of the point. - * - * @return @b ControlPoint* The point at the requested index. - */ + /** + * Get a point at a specificed index. + * + * @param index Index of the point. + * + * @return @b ControlPoint* The point at the requested index. + */ ControlPoint *CnetManager::point(const int index) { BOOST_ASSERT ( index < m_kpts.size() ); return ( m_kpts.at(index).point() ); diff --git a/isis/src/control/apps/cnetthinner/CnetManager.h b/isis/src/control/apps/cnetthinner/CnetManager.h index fbf62be0e3..e1f1186129 100644 --- a/isis/src/control/apps/cnetthinner/CnetManager.h +++ b/isis/src/control/apps/cnetthinner/CnetManager.h @@ -30,26 +30,28 @@ find files of those names at the top level of this repository. **/ #include "ControlNet.h" #include "ControlPoint.h" #include "ControlMeasure.h" -#include "ControlMeasureLogData.h" - - -#include "tnt/tnt_array2d.h" -#include "tnt/tnt_array2d_utils.h" +#include "IException.h" namespace Isis { class CnetManager; -/** - * Class to store control points with a weight and computed strength for CnetManager. - * - * @author 2016-09-30 Kris Becker - * - * @internal - * @history 2016-09-30 Kris Becker - Original Version - * @history 2016-12-28 Kristin Berry - Added documentation and tests for checkin - * - */ + /** + * Class to store control points with a weight and computed strength for CnetManager. + * + * @author 2016-09-30 Kris Becker + * + * @internal + * @history 2016-09-30 Kris Becker - Original Version + * @history 2016-12-28 Kristin Berry - Added documentation and tests for checkin + * @history 2020-01-20 Kris Becker - Fix failed assert/abort in point depth + * weight calculation + * @history 2023-11-28 Ken Edmundson - Moved Kris Beckers fix of 2020-01-20 from + * UofA code base to USGS code base. Removed all BOOST + * ASSERTS from CnetManager.cpp;h per Kris' suggestion. + * Removed all unused #include. + * + */ class KPoint { friend class CnetManager; @@ -102,27 +104,26 @@ namespace Isis { return (m_sourceIndex); } - private: + private: ControlPoint *m_point; //! The original ControlPoint used to construct the KPoint. - double m_strength; //! The calulated strength of this KPoint. + double m_strength; //! The calculated strength of this KPoint. int m_sourceIndex; //! The original index of this KPoint. int m_index; //! The calculated index of this KPoint. bool m_selected; //! Flag to indicated whether to use this KPoint or not. double calculateStrength(const ControlPoint *point, const double &weight) const; - }; -/** - * Container class for the network and suppression data. - * - * @author 2016-09-30 Kris Becker - * - * @internal - * @history 2016-09-30 Kris Becker - Original Version - * @history 2016-12-28 Kristin Berry - Added documentation and tests for checkin - */ + /** + * Container class for the network and suppression data. + * + * @author 2016-09-30 Kris Becker + * + * @internal + * @history 2016-09-30 Kris Becker - Original Version + * @history 2016-12-28 Kristin Berry - Added documentation and tests for checkin + */ class CnetManager { public: typedef QPair IndexPoint; //! @@ -169,8 +170,6 @@ namespace Isis { return ( a.strength() > b.strength() ); } }; - - }; diff --git a/isis/src/control/apps/cnetthinner/CnetSuppression.cpp b/isis/src/control/apps/cnetthinner/CnetSuppression.cpp index 8be3dcfb7a..28b46f83d0 100644 --- a/isis/src/control/apps/cnetthinner/CnetSuppression.cpp +++ b/isis/src/control/apps/cnetthinner/CnetSuppression.cpp @@ -15,7 +15,6 @@ find files of those names at the top level of this repository. **/ #include #include #include -#include #include #include @@ -27,9 +26,6 @@ find files of those names at the top level of this repository. **/ #include "IException.h" #include "Progress.h" -#include "tnt/tnt_array2d.h" -#include "tnt/tnt_array2d_utils.h" - #define EARLY_TERMINATION true #define RADIUS_CELLS 100 @@ -37,30 +33,31 @@ find files of those names at the top level of this repository. **/ namespace Isis { -/** - * Constructs an empty CnetSuppression object. - * - */ + /** + * Constructs an empty CnetSuppression object. + * + */ CnetSuppression::CnetSuppression() : CnetManager(), m_cnet(), m_points(), m_results(), m_early_term(EARLY_TERMINATION), m_area() { } -/** - * Constructs a CentSuppression object using a filename and a weight. - * - * @param cnetfile Filename of the controlnet file. - * @param weight Weight to apply to all points in controlnet. - * - * @throws IException::User "Control Net filename [FILENAME] is invalid." - */ + /** + * Constructs a CnetSuppression object using a filename and a weight. + * + * @param cnetfile Filename of the controlnet file. + * @param weight Weight to apply to all points in controlnet. + * + * @throws IException::User "Control Net filename [FILENAME] is invalid." + */ CnetSuppression::CnetSuppression(const QString &cnetfile, const double &weight) : CnetManager( ), m_cnet(), m_points(), m_results(), m_early_term(EARLY_TERMINATION), m_area() { Progress progress; + try { - m_cnet.reset(new ControlNet(cnetfile, &progress)); + m_cnet.reset(new ControlNet(cnetfile, &progress)); } catch (IException &e) { throw e; @@ -71,11 +68,30 @@ namespace Isis { } -/** - * Constructs a CnetSuppression object using a CnetManager - * - * @param cman CnetManager used to construct a CnetSuppression. - */ + /** + * Constructs a CnetSuppression object using a QSharedPointer to a + * ControlNet object and a weight. + * + * @param cnet QSharedPointer to ControlNet object. + * @param weight Weight to apply to all points in ControlNet. + */ + CnetSuppression::CnetSuppression(QSharedPointer &cnet, const double &weight) : + CnetManager( ), m_cnet(), m_points(), m_results(), + m_early_term(EARLY_TERMINATION), + m_area() { + + m_cnet = cnet; + + m_points = m_cnet->take(); + load(m_points, weight); + } + + + /** + * Constructs a CnetSuppression object using a CnetManager + * + * @param cman CnetManager used to construct a CnetSuppression. + */ CnetSuppression::CnetSuppression(const CnetManager &cman) : CnetManager(cman), m_cnet(), m_points(), @@ -83,42 +99,38 @@ namespace Isis { m_early_term(EARLY_TERMINATION), m_area() { } -/** - * - * Destructor. Cleans up dynamically allocated control points. - * - */ - CnetSuppression::~CnetSuppression() { - BOOST_FOREACH ( ControlPoint *p, m_points ) { - delete p; - } - } - - -/** - * Sets the early termiation flag - * - * @param state Will terminate early if true - */ + /** + * + * Destructor. + * + */ + CnetSuppression::~CnetSuppression() { } + + + /** + * Sets the early termination flag + * + * @param state Will terminate early if true + */ void CnetSuppression::setEarlyTermination(const bool &state) { //TODO this is not used right now at all? m_early_term = state; return; } -/** - * Performs a suppression on all cubes associated with the CnetSuppression object and returns the - * results as a Results object. An input bitmask will be used to mask all pointsets associated with - * all cubes before running the suppression. - * - * @param minpts minimum points to keep in the result set - * @param maxpts maximum points to keep in the result set. - * @param min_radius The minimum radius to use for the suppression calculation. - * @param tolerance A multiplicative tolerance on the number of maxpoints to return. - * @param bm A BitMask to apply to the input point set. - * - * @return @b CnetSuppression::Results The Results set for the suppression run. - */ + /** + * Performs a suppression on all cubes associated with the CnetSuppression object and returns the + * results as a Results object. An input bitmask will be used to mask all pointsets associated with + * all cubes before running the suppression. + * + * @param minpts minimum points to keep in the result set + * @param maxpts maximum points to keep in the result set. + * @param min_radius The minimum radius to use for the suppression calculation. + * @param tolerance A multiplicative tolerance on the number of maxpoints to return. + * @param bm A BitMask to apply to the input point set. + * + * @return @b CnetSuppression::Results The Results set for the suppression run. + */ CnetSuppression::Results CnetSuppression::suppress(const int &minpts, const int &maxpts, const double &min_radius, const double &tolerance, @@ -171,20 +183,20 @@ namespace Isis { } -/** - * Performs a suppression on the PointSet associated with a single cube as indicated by - * its serial number and returns the results as a new PointSet. An input bitmask will - * be used to mask the input pointset before running the suppression. - * - * @param serialno The serial number for the image/cube to run suppression on. - * @param minpts The minimum possible points to keep after a suppression run. - * @param maxpts The maximum possible points to keep after a suppression run. - * @param min_radius The minimum radius to use for the suppression calculation. - * @param tolerance A multiplicative tolerance on the number of maxpoints to return. - * @param bm A BitMask to apply to the input point set. - * - * @return @b CnetSuppression::Results The Result set for the suppression run. - */ + /** + * Performs a suppression on the PointSet associated with a single cube as indicated by + * its serial number and returns the results as a new PointSet. An input bitmask will + * be used to mask the input pointset before running the suppression. + * + * @param serialno The serial number for the image/cube to run suppression on. + * @param minpts The minimum possible points to keep after a suppression run. + * @param maxpts The maximum possible points to keep after a suppression run. + * @param min_radius The minimum radius to use for the suppression calculation. + * @param tolerance A multiplicative tolerance on the number of maxpoints to return. + * @param bm A BitMask to apply to the input point set. + * + * @return @b CnetSuppression::Results The Result set for the suppression run. + */ CnetSuppression::Results CnetSuppression::suppress(const QString &serialno, const int minpts, const int &maxpts, const double &min_radius, const double &tolerance, @@ -199,19 +211,19 @@ namespace Isis { } -/** - * Performs a suppression on the input PointSet and returns the result as a new PointSet. - * An input bitmask will be used to mask the input pointset before running the suppression. - * - * @param points The point set to run suppression on. - * @param minpts The minimum possible points to keep after a suppression run. - * @param maxpts The maximum possible points to keep after a suppression run. - * @param min_radius The minimum radius to use for the suppression calculation. - * @param tolerance A tolerance factor which scales the size of the search space for suppression. - * @param bm A BitMask to apply to the input point set. - * - * @return @b CnetSuppression::Results The Result set for the suppression run. - */ + /** + * Performs a suppression on the input PointSet and returns the result as a new PointSet. + * An input bitmask will be used to mask the input pointset before running the suppression. + * + * @param points The point set to run suppression on. + * @param minpts The minimum possible points to keep after a suppression run. + * @param maxpts The maximum possible points to keep after a suppression run. + * @param min_radius The minimum radius to use for the suppression calculation. + * @param tolerance A tolerance factor which scales the size of the search space for suppression. + * @param bm A BitMask to apply to the input point set. + * + * @return @b CnetSuppression::Results The Result set for the suppression run. + */ CnetSuppression::Results CnetSuppression::suppress(const CnetSuppression::PointSet &points, const int &minpts, const int &maxpts, const double &min_radius, @@ -353,14 +365,14 @@ namespace Isis { } -/** - * Write out a Results object to an output control network. - * - * @param onetfile Filename for output control network - * @param result Object containin the results of a suppression calculation - * @param saveall If true, copies all points to the output control net, even if ignored. - * @param netid Control networkd id - */ + /** + * Write out a Results object to an output control network. + * + * @param onetfile Filename for output control network + * @param result Object containing the results of a suppression calculation + * @param saveall If true, copies all points to the output control net, even if ignored. + * @param netid Control network id + */ void CnetSuppression::write(const QString &onetfile, const Results &result, const bool saveall, const QString &netid) { // Create new network @@ -399,49 +411,49 @@ namespace Isis { } -/** - * Gets the control net associated with the CnetSuppresssion. - * - * @return @b const ControlNet* The control net for this CnetSuppression - */ + /** + * Gets the control net associated with the CnetSuppresssion. + * + * @return @b const ControlNet* The control net for this CnetSuppression + */ const ControlNet *CnetSuppression::net() const { return ( m_cnet.data() ); } -/** - * Gets the index of an input IndexPoint - * - * @param p An IndexPoint to get the index of. - * - * @return @b int The index of the input index point. - */ + /** + * Gets the index of an input IndexPoint + * + * @param p An IndexPoint to get the index of. + * + * @return @b int The index of the input index point. + */ int CnetSuppression::index(const CnetSuppression::IndexPoint &p) const { return (p.first); } -/** - * Gets the control measure from the input IndexPoint. - * - * @param p The IndexPoint to get the control measure from - * - * @return @b ControlMeasure* The control measure of the input IndexPoint - */ - ControlMeasure *CnetSuppression::measure(const CnetSuppression::IndexPoint &p) const { + /** + * Gets the control measure from the input IndexPoint. + * + * @param p The IndexPoint to get the control measure from + * + * @return @b ControlMeasure* The control measure of the input IndexPoint + */ + ControlMeasure *CnetSuppression::measure(const CnetSuppression::IndexPoint &p) const { return ( p.second ); } -/** - * Create a BitMask of a specified size for an input PointSet. - * - * @param nbits The size of a BitMask to create. - * @param p The PointSet used to create a BitMask. - * - * @return @b CnetSuppression::BitMask A bit mask with entires set to true if their index is in the - * input PointSet. - */ + /** + * Create a BitMask of a specified size for an input PointSet. + * + * @param nbits The size of a BitMask to create. + * @param p The PointSet used to create a BitMask. + * + * @return @b CnetSuppression::BitMask A bit mask with entires set to true if their index is in + * the input PointSet. + */ CnetSuppression::BitMask CnetSuppression::maskPoints(int nbits, const CnetSuppression::PointSet &p) const { @@ -455,20 +467,19 @@ namespace Isis { } -/** - * Use an input BitMask to mask the input PointSet, and return the results. - * - * @param bm BitMask contining true for indices to keep and false for indicies to get rid of. - * @param pset The PointSet to apply the BitMask to. - * - * @return @b CnetSuppression::PointSet A PointSet containing only the points not masked out. - */ + /** + * Use an input BitMask to mask the input PointSet, and return the results. + * + * @param bm BitMask contining true for indices to keep and false for indicies to get rid of. + * @param pset The PointSet to apply the BitMask to. + * + * @return @b CnetSuppression::PointSet A PointSet containing only the points not masked out. + */ CnetSuppression::PointSet CnetSuppression::contains(const CnetSuppression::BitMask &bm, const CnetSuppression::PointSet &pset) const { PointSet result; if ( bm.dim1() == 0 ) { return (result); } - BOOST_FOREACH ( const IndexPoint &p, pset) { BOOST_ASSERT ( index(p) < bm.dim1() ); if ( bm[index(p)] == true) { @@ -479,15 +490,15 @@ namespace Isis { } -/** - * Calculates the (x,y) coordinates for an IndexPoint inside of a cell - * of input size. - * - * @param p The index point to calculate the x_center and y_center of. - * @param cell_size Size of the cell. - * @param x_center The x-coordinate of the center of the cell (Result). - * @param y_center The y-coordinate of the center of the cell (Result). - */ + /** + * Calculates the (x,y) coordinates for an IndexPoint inside of a cell + * of input size. + * + * @param p The index point to calculate the x_center and y_center of. + * @param cell_size Size of the cell. + * @param x_center The x-coordinate of the center of the cell (Result). + * @param y_center The y-coordinate of the center of the cell (Result). + */ void CnetSuppression::cellIndex(const CnetSuppression::IndexPoint &p, const double &cell_size, int &x_center, int &y_center) const { @@ -497,14 +508,14 @@ namespace Isis { } -/** - * Determine the number of (x,y) positions in the input grid which are set to true. - * - * @param grid The grid to calculate the number of covered points from. - * - * @return @b int The number of convered points; the number of (x,y) positions for which the bitmask - * is set to true. - */ + /** + * Determine the number of (x,y) positions in the input grid which are set to true. + * + * @param grid The grid to calculate the number of covered points from. + * + * @return @b int The number of convered points; the number of (x,y) positions for which the + * bitmask is set to true. + */ int CnetSuppression::nCovered(const CnetSuppression::GridMask &grid) const { int ncov(0); for ( int x = 0 ; x < grid.dim1() ; x++) { @@ -516,17 +527,17 @@ namespace Isis { } -/** - * Update a grid to contain true values where it is covered by cells as defined by the input - * PointSet. - * - * @param grid The grid to update by setting to true grid entries which are contained within cells - * definted by the input PointSet. - * @param points The input PointSet to use to update the grid. - * @param cell_size The size of a cell. - * - * @return @b int The number of grid entries updated. - */ + /** + * Update a grid to contain true values where it is covered by cells as defined by the input + * PointSet. + * + * @param grid The grid to update by setting to true grid entries which are contained within cells + * definted by the input PointSet. + * @param points The input PointSet to use to update the grid. + * @param cell_size The size of a cell. + * + * @return @b int The number of grid entries updated. + */ int CnetSuppression::cover(CnetSuppression::GridMask &grid, const CnetSuppression::PointSet &points, const double &cell_size) const { @@ -540,18 +551,18 @@ namespace Isis { } -/** - * Update a grid to contain true values where it overlaps a rectangle defined by the - * input paramters and return the number of values contained in this rectange. - * - * @param grid The grid to update by setting to true grid entries contained within the - * rectangle defined by the paramters passed to this function. - * @param x_center The x-coordinate of the center of the grid. - * @param y_center The y-coordinate of the center of the grid. - * @param cell_size The size of a cell. - * - * @return @b int The number of covered cells. - */ + /** + * Update a grid to contain true values where it overlaps a rectangle defined by the + * input paramters and return the number of values contained in this rectange. + * + * @param grid The grid to update by setting to true grid entries contained within the + * rectangle defined by the paramters passed to this function. + * @param x_center The x-coordinate of the center of the grid. + * @param y_center The y-coordinate of the center of the grid. + * @param cell_size The size of a cell. + * + * @return @b int The number of covered cells. + */ int CnetSuppression::cover(CnetSuppression::GridMask &grid, const int &x_center, const int &y_center, const double &cell_size) const { @@ -576,14 +587,14 @@ namespace Isis { } -/** - * Merge two PointSets together and return the result. - * - * @param s1 The first PointSet to be merged. - * @param s2 The second PointSet to be merged. - * - * @return @b CnetSuppression::PointSet The merged PointSet. - */ + /** + * Merge two PointSets together and return the result. + * + * @param s1 The first PointSet to be merged. + * @param s2 The second PointSet to be merged. + * + * @return @b CnetSuppression::PointSet The merged PointSet. + */ CnetSuppression::PointSet CnetSuppression::merge(const CnetSuppression::PointSet &s1, const CnetSuppression::PointSet &s2) const { BitMask bm2 = maskPoints(size(), s2); @@ -597,14 +608,14 @@ namespace Isis { } -/** - * Merge two CnetSuppression::Results objects together and return the result. - * - * @param r1 The first Results to be merged. - * @param r2 The second Results to be merged. - * - * @return @b CnetSuppression::Results The merged Results. - */ + /** + * Merge two CnetSuppression::Results objects together and return the result. + * + * @param r1 The first Results to be merged. + * @param r2 The second Results to be merged. + * + * @return @b CnetSuppression::Results The merged Results. + */ CnetSuppression::Results CnetSuppression::merge(const CnetSuppression::Results &r1, const CnetSuppression::Results &r2) const { if ( !r1.isValid() ) { return (r2); } @@ -633,14 +644,14 @@ namespace Isis { } -/** - * Calculates the ratio between the area contained in a square of side-length d and the area - * of the CnetSuppression. - * - * @param d The length of a side of a square. - * - * @return @b double The fraction: area of a square of size d / the area of the CnetSuppression. - */ + /** + * Calculates the ratio between the area contained in a square of side-length d and the area + * of the CnetSuppression. + * + * @param d The length of a side of a square. + * + * @return @b double The fraction: area of a square of size d / the area of the CnetSuppression. + */ double CnetSuppression::getScale(const QSizeF &d) const { if ( m_area.isEmpty() ) { m_area = d; } double area = d.width() * d.height(); @@ -649,14 +660,14 @@ namespace Isis { } -/** - * Computes and returns the bitwise 'or' of the two input bitmasks. - * - * @param b1 First input BitMask - * @param b2 Second input BitMask - * - * @return @b CnetSuppression::BitMask A BitMask which is the bitwise result of 'b1 or b2' - */ + /** + * Computes and returns the bitwise 'or' of the two input bitmasks. + * + * @param b1 First input BitMask + * @param b2 Second input BitMask + * + * @return @b CnetSuppression::BitMask A BitMask which is the bitwise result of 'b1 or b2' + */ CnetSuppression::BitMask CnetSuppression::orMasks(const CnetSuppression::BitMask &b1, const CnetSuppression::BitMask &b2) const { BOOST_ASSERT ( b1.dim1() == b2.dim1() ); @@ -668,20 +679,20 @@ namespace Isis { } -/** - * Creates and returns a vector which contains num entries, starting at dmin and ending at dmax. - * The entires in-between span the space between dmin and dmax with equal steps each time. The - * entire vector is multiplied by an input scale factor. - * - * @param dmin The minimum value of the vector. - * @param dmax The maximum value of the vector. - * @param num The number of entries that should be in the returned vector. - * @param scale Multiplicative scale factor to multiply the entire vector by. - * - * @return @b QVector A vector of size num with entries starting at dmin and ending - * at dmax with values of equal increment spanning the space between them and - * with all entries multiplied by scale. - */ + /** + * Creates and returns a vector which contains num entries, starting at dmin and ending at dmax. + * The entires in-between span the space between dmin and dmax with equal steps each time. The + * entire vector is multiplied by an input scale factor. + * + * @param dmin The minimum value of the vector. + * @param dmax The maximum value of the vector. + * @param num The number of entries that should be in the returned vector. + * @param scale Multiplicative scale factor to multiply the entire vector by. + * + * @return @b QVector A vector of size num with entries starting at dmin and ending + * at dmax with values of equal increment spanning the space between them and + * with all entries multiplied by scale. + */ QVector CnetSuppression::linspace(const double dmin, const double dmax, const int num, diff --git a/isis/src/control/apps/cnetthinner/CnetSuppression.h b/isis/src/control/apps/cnetthinner/CnetSuppression.h index 1ae0abd91d..673da4aa9f 100644 --- a/isis/src/control/apps/cnetthinner/CnetSuppression.h +++ b/isis/src/control/apps/cnetthinner/CnetSuppression.h @@ -24,10 +24,8 @@ find files of those names at the top level of this repository. **/ #include #include "CnetManager.h" -#include "Progress.h" #include "tnt/tnt_array2d.h" -#include "tnt/tnt_array2d_utils.h" namespace Isis { @@ -41,6 +39,7 @@ namespace Isis { * @history 2016-12-28 Kristin Berry - Added documentation and tests for checkin * @history 2017-08-09 Summer Stapleton - Added a try-catch in constructor to throw proper * error for invalid control net. Fixes #5068. + * @history 2023-11-28 Ken Edmundson - Removed all BOOST_ASSERTS and unnecessary #includes. * */ class CnetSuppression : public CnetManager { @@ -123,6 +122,7 @@ namespace Isis { CnetSuppression(); CnetSuppression(const QString &cnetfile, const double &weight = 0.0); + CnetSuppression(QSharedPointer &cnet, const double &weight = 0.0); CnetSuppression(const CnetManager &cman); virtual ~CnetSuppression(); @@ -152,7 +152,7 @@ namespace Isis { const ControlNet *net() const; private: - QScopedPointer m_cnet; //! + QSharedPointer m_cnet; //! QList m_points; //! BitMask m_saved; //! QVector m_results; //! diff --git a/isis/src/control/apps/cnetthinner/cnetthinner.cpp b/isis/src/control/apps/cnetthinner/cnetthinner.cpp new file mode 100644 index 0000000000..75a789d0f0 --- /dev/null +++ b/isis/src/control/apps/cnetthinner/cnetthinner.cpp @@ -0,0 +1,115 @@ + +/** This is free and unencumbered software released into the public domain. + +The authors of ISIS do not claim copyright on the contents of this file. +For more details about the LICENSE terms and the AUTHORS, you will +find files of those names at the top level of this repository. **/ + +/* SPDX-License-Identifier: CC0-1.0 */ + +#include + +#include "CnetManager.h" +#include "CnetSuppression.h" +#include "FileName.h" +#include "IException.h" +#include "ProcessByLine.h" +#include "Progress.h" +#include "PvlGroup.h" +#include "PvlKeyword.h" +#include "UserInterface.h" + +#include "cnetthinner.h" + +using namespace std; + +namespace Isis { + + /** + * Computes the most efficient spatial control point distribution for each image in the input + * control network given a maximum number of points. + * + * @param ui UserInterface object containing parameters + * + * @return Pvl results log file + * + * @throws IException::User "Control Net filename [FILENAME] is invalid." + */ + Pvl cnetthinner(UserInterface &ui) { + + Progress progress; + QSharedPointer inputNet; + + try { + inputNet.reset(new ControlNet(ui.GetFileName("CNET"), &progress)); + } + catch (IException &e) { + throw e; + } + + return cnetthinner(inputNet, ui); + } + + + /** + * Computes the most efficient spatial control point distribution for each image in the input + * control network given a maximum number of points. + * + * @param cnet input ControlNet + * @param ui UserInterface object containing parameters + * + * @return Pvl results log file + * + * @throws IException::User "TOLERANCE must be between 0.0 and 1.0" + */ + Pvl cnetthinner(QSharedPointer &cnet, UserInterface &ui) { + + // We will be processing by line + ProcessByLine p; + + double weight = ui.GetDouble("WEIGHT"); + double tolerance = ui.GetDouble("TOLERANCE"); + int maxpoints = ui.GetDouble("MAXPOINTS"); + int minpoints = ui.GetDouble("MINPOINTS"); + QString suppressed = ui.GetString("SUPPRESSED").toLower(); + + if (tolerance < 0.0 || tolerance > 1.0) { + QString msg = "TOLERANCE must be between 0.0 and 1.0"; + throw IException(IException::User, msg, _FILEINFO_); + } + + QScopedPointer suppressor(new CnetSuppression(cnet, weight)); + // suppression->setEarlyTermination(true); NOTE: early termination is currently set by a hard-coded flag + + // Suppress the points + int totalLoaded = suppressor->size(); + CnetSuppression::Results result = + suppressor->suppress(minpoints, maxpoints, 1.5, tolerance); + + int nsaved = result.size(); + int nremoved = totalLoaded - nsaved; + double efficiency = ( (double) nremoved/(double) totalLoaded ) * 100.0; + + if ( ui.WasEntered("ONET") ) { + bool saveall = ( "ignore" == suppressed ); + QString netid; + if ( ui.WasEntered("NETWORKID") ) { + netid = ui.GetString("NETWORKID"); + } + suppressor->write(ui.GetAsString("ONET"), result, saveall, netid); + } + + // Report results + Pvl log; + PvlGroup results("Results"); + results += PvlKeyword("Points", toString(totalLoaded) ); + results += PvlKeyword("Saved", toString(nsaved) ); + results += PvlKeyword("Suppressed", toString(nremoved) ); + results += PvlKeyword("Efficiency", toString(efficiency, 4), "percent" ); + log.addLogGroup(results); + + p.EndProcess(); + + return log; + } +} diff --git a/isis/src/control/apps/cnetthinner/cnetthinner.h b/isis/src/control/apps/cnetthinner/cnetthinner.h new file mode 100644 index 0000000000..722e56fe44 --- /dev/null +++ b/isis/src/control/apps/cnetthinner/cnetthinner.h @@ -0,0 +1,21 @@ +#ifndef cnetthinner_h +#define cnetthinner_h + +/** This is free and unencumbered software released into the public domain. + +The authors of ISIS do not claim copyright on the contents of this file. +For more details about the LICENSE terms and the AUTHORS, you will +find files of those names at the top level of this repository. **/ + +/* SPDX-License-Identifier: CC0-1.0 */ + +#include "UserInterface.h" +#include "ControlNet.h" +#include "Pvl.h" + +namespace Isis { + extern Pvl cnetthinner(UserInterface &ui); + extern Pvl cnetthinner(QSharedPointer &cnet, UserInterface &ui); +} + +#endif diff --git a/isis/src/control/apps/cnetthinner/cnetthinner.xml b/isis/src/control/apps/cnetthinner/cnetthinner.xml index 84d3f6c8c8..2cffca8925 100644 --- a/isis/src/control/apps/cnetthinner/cnetthinner.xml +++ b/isis/src/control/apps/cnetthinner/cnetthinner.xml @@ -51,7 +51,19 @@ End_Group Original Version - Add documentation, error-checking, and updates to meet ISIS coding standards and get checked in. Changed application name from cnetsuppress to cnetthinner on Kris's request. + Add documentation, error-checking, and updates to meet ISIS coding + standards and get checked in. Changed application name from + cnetsuppress to cnetthinner on Kris's request. + + + In file CnetManager.cpp, method KPoint::calculateStrength. + Replaced BOOST ASSERT (abort) with the line "if ( count LE 0 ) return ( 0 )" + to prevent a divide by zero and subsequent seg fault if a point doesn't + contain valid measures when computing the point depth weight. + + + Moved Kris Becker's bug fix of 2020-01-20 from UofA code base to USGS + code base and updated documentation. References #5354. diff --git a/isis/src/control/apps/cnetthinner/main.cpp b/isis/src/control/apps/cnetthinner/main.cpp index 0df6e6e2fd..8a6a5d5fd7 100644 --- a/isis/src/control/apps/cnetthinner/main.cpp +++ b/isis/src/control/apps/cnetthinner/main.cpp @@ -5,67 +5,15 @@ For more details about the LICENSE terms and the AUTHORS, you will find files of those names at the top level of this repository. **/ /* SPDX-License-Identifier: CC0-1.0 */ - #include "Isis.h" -#include -#include - -#include "CnetManager.h" -#include "CnetSuppression.h" -#include "ControlNet.h" -#include "ProcessByLine.h" +#include "Application.h" +#include "Pvl.h" +#include "cnetthinner.h" -using namespace std; using namespace Isis; void IsisMain() { - - // We will be processing by line - ProcessByLine p; UserInterface &ui = Application::GetUserInterface(); - - QString cnetfrom = ui.GetAsString("CNET"); - double weight = ui.GetDouble("WEIGHT"); - double tolerance = ui.GetDouble("TOLERANCE"); - int maxpoints = ui.GetDouble("MAXPOINTS"); - int minpoints = ui.GetDouble("MINPOINTS"); - QString suppressed = ui.GetString("SUPPRESSED").toLower(); - - if (tolerance < 0.0 || tolerance > 1.0) { - QString msg = "TOLERANCE must be between 0.0 and 1.0"; - throw IException(IException::User, msg, _FILEINFO_); - } - - QScopedPointer suppressor(new CnetSuppression(cnetfrom, weight)); - // suppression->setEarlyTermination(true); NOTE: early termination is currently set by a hard-coded - // flag - - // Suppress the points - int totalLoaded = suppressor->size(); - CnetSuppression::Results result = suppressor->suppress(minpoints, maxpoints, - 1.5, tolerance); - int nsaved = result.size(); - int nremoved = totalLoaded - nsaved; - double efficiency = ( (double) nremoved/(double) totalLoaded ) * 100.0; - - if ( ui.WasEntered("ONET") ) { - bool saveall = ( "ignore" == suppressed ); - QString netid; - if ( ui.WasEntered("NETWORKID") ) { - netid = ui.GetString("NETWORKID"); - } - suppressor->write(ui.GetAsString("ONET"), result, saveall, netid); - } - - // Report results - PvlGroup results("Results"); - results += PvlKeyword("Points", toString(totalLoaded) ); - results += PvlKeyword("Saved", toString(nsaved) ); - results += PvlKeyword("Suppressed", toString(nremoved) ); - results += PvlKeyword("Efficiency", toString(efficiency, 4), "percent" ); - Application::Log(results); - - p.EndProcess(); - + Pvl results = cnetthinner(ui); } diff --git a/isis/src/control/apps/cnetthinner/tsts/Makefile b/isis/src/control/apps/cnetthinner/tsts/Makefile deleted file mode 100644 index 46d84c74c2..0000000000 --- a/isis/src/control/apps/cnetthinner/tsts/Makefile +++ /dev/null @@ -1,4 +0,0 @@ -BLANKS = "%-6s" -LENGTH = "%-40s" - -include $(ISISROOT)/make/isismake.tststree diff --git a/isis/src/control/apps/cnetthinner/tsts/badInput/Makefile b/isis/src/control/apps/cnetthinner/tsts/badInput/Makefile deleted file mode 100644 index 70f4008aca..0000000000 --- a/isis/src/control/apps/cnetthinner/tsts/badInput/Makefile +++ /dev/null @@ -1,13 +0,0 @@ -APPNAME = cnetthinner - -include $(ISISROOT)/make/isismake.tsts - -# History comments - -commands: - if [ `$(APPNAME) cnet=$(INPUT)/FakeFile.net to=$(OUTPUT)/fail.net \ - maxpoints = 20 >& $(OUTPUT)/error.txt` ]; \ - then \ - true; \ - fi; - diff --git a/isis/src/control/apps/cnetthinner/tsts/default/Makefile b/isis/src/control/apps/cnetthinner/tsts/default/Makefile deleted file mode 100644 index c1b8b0c253..0000000000 --- a/isis/src/control/apps/cnetthinner/tsts/default/Makefile +++ /dev/null @@ -1,12 +0,0 @@ -APPNAME = cnetthinner - -include $(ISISROOT)/make/isismake.tsts - -# History comments - -commands: - $(APPNAME) cnet=$(INPUT)/customPointsTruth.net onet=$(OUTPUT)/output.net maxpoints=20000 \ - suppressed=ignore >& /dev/null; - $(APPNAME) cnet=$(INPUT)/customPointsTruth.net onet=$(OUTPUT)/thinned.net maxpoints=20000 \ - suppressed=ignore networkid=testID >& /dev/null; - diff --git a/isis/src/control/apps/cnetthinner/tsts/ignoreOrRemove/Makefile b/isis/src/control/apps/cnetthinner/tsts/ignoreOrRemove/Makefile deleted file mode 100644 index 000664e9c2..0000000000 --- a/isis/src/control/apps/cnetthinner/tsts/ignoreOrRemove/Makefile +++ /dev/null @@ -1,20 +0,0 @@ -APPNAME = cnetthinner -APPNAME2 = cnetedit -APPNAME3 = cnetdiff - -include $(ISISROOT)/make/isismake.tsts - -# History comments - -commands: - $(APPNAME) cnet=$(INPUT)/customPointsTruth.net onet=$(OUTPUT)/ignored.net maxpoints=200 \ - suppressed=ignore >& /dev/null; - $(APPNAME) cnet=$(INPUT)/customPointsTruth.net onet=$(OUTPUT)/removed.net maxpoints=200 \ - suppressed=remove >& /dev/null; - $(APPNAME2) cnet=$(OUTPUT)/ignored.net onet=$(OUTPUT)/ignored_removed.net \ - delete=yes >& /dev/null; - $(APPNAME3) from=$(OUTPUT)/ignored_removed.net from2=$(OUTPUT)/removed.net report=full \ - >& $(OUTPUT)/cnetdiff.txt; \ - $(RM) $(OUTPUT)/ignored_removed.net >& /dev/null; - - diff --git a/isis/src/control/apps/cnetthinner/tsts/minMaxPoints/Makefile b/isis/src/control/apps/cnetthinner/tsts/minMaxPoints/Makefile deleted file mode 100644 index 9241b6d22c..0000000000 --- a/isis/src/control/apps/cnetthinner/tsts/minMaxPoints/Makefile +++ /dev/null @@ -1,20 +0,0 @@ -APPNAME = cnetthinner - -include $(ISISROOT)/make/isismake.tsts - -# History comments - -commands: - #MAXPOINTS - $(APPNAME) cnet=$(INPUT)/customPointsTruth.net onet=$(OUTPUT)/400.net \ - maxpoints=400 >& /dev/null; \ - $(APPNAME) cnet=$(INPUT)/customPointsTruth.net onet=$(OUTPUT)/200.net \ - maxpoints=200 >& /dev/null; \ - $(APPNAME) cnet=$(INPUT)/customPointsTruth.net onet=$(OUTPUT)/50.net \ - maxpoints=50 >& /dev/null; \ - grep -a NumberOfPoints $(OUTPUT)/50.net >& $(OUTPUT)/50.txt; \ - grep -a NumberOfPoints $(OUTPUT)/200.net >& $(OUTPUT)/200.txt; \ - grep -a NumberOfPoints $(OUTPUT)/400.net >& $(OUTPUT)/400.txt; - - #MINPOINTS - diff --git a/isis/src/control/apps/cnetthinner/tsts/tolerance/Makefile b/isis/src/control/apps/cnetthinner/tsts/tolerance/Makefile deleted file mode 100644 index f16ddf23be..0000000000 --- a/isis/src/control/apps/cnetthinner/tsts/tolerance/Makefile +++ /dev/null @@ -1,16 +0,0 @@ -APPNAME = cnetthinner -include $(ISISROOT)/make/isismake.tsts - -# History comments - -commands: - $(APPNAME) cnet=$(INPUT)/customPointsTruth.net onet=$(OUTPUT)/tolSmall.net maxpoints=200 \ - tolerance = 0.0 >& /dev/null; \ - $(APPNAME) cnet=$(INPUT)/customPointsTruth.net onet=$(OUTPUT)/tolMedium.net maxpoints=200 \ - tolerance = 0.5 >& /dev/null; \ - $(APPNAME) cnet=$(INPUT)/customPointsTruth.net onet=$(OUTPUT)/tolLarge.net maxpoints=200 \ - tolerance=1.0 >& /dev/null; \ - grep -a NumberOfPoints $(OUTPUT)/tolSmall.net >& $(OUTPUT)/sm.txt; \ - grep -a NumberOfPoints $(OUTPUT)/tolMedium.net >& $(OUTPUT)/med.txt; \ - grep -a NumberOfPoints $(OUTPUT)/tolLarge.net >& $(OUTPUT)/large.txt; - diff --git a/isis/src/control/apps/cnetthinner/tsts/weight/Makefile b/isis/src/control/apps/cnetthinner/tsts/weight/Makefile deleted file mode 100644 index df6e84393b..0000000000 --- a/isis/src/control/apps/cnetthinner/tsts/weight/Makefile +++ /dev/null @@ -1,20 +0,0 @@ -APPNAME = cnetthinner -include $(ISISROOT)/make/isismake.tsts - -# History comments -# Right now, these will all be identical... - -commands: - $(APPNAME) cnet=$(INPUT)/customPointsTruth.net onet=$(OUTPUT)/Small.net maxpoints=200 \ - weight = 0.0 >& /dev/null; - $(APPNAME) cnet=$(INPUT)/customPointsTruth.net onet=$(OUTPUT)/Medium.net maxpoints=200 \ - weight = 0.5 >& /dev/null; - $(APPNAME) cnet=$(INPUT)/customPointsTruth.net onet=$(OUTPUT)/Large.net maxpoints=200 \ - weight = 1.0 >& /dev/null; - $(APPNAME) cnet=$(INPUT)/customPointsTruth.net onet=$(OUTPUT)/XLarge.net maxpoints=200 \ - weight = 10000.0 >& /dev/null; - grep -a NumberOfPoints $(OUTPUT)/Small.net >& $(OUTPUT)/sm.txt; \ - grep -a NumberOfPoints $(OUTPUT)/Medium.net >& $(OUTPUT)/med.txt; \ - grep -a NumberOfPoints $(OUTPUT)/Large.net >& $(OUTPUT)/large.txt; \ - grep -a NumberOfPoints $(OUTPUT)/XLarge.net >& $(OUTPUT)/Xlarge.txt; - diff --git a/isis/src/dawn/apps/dawnfc2isis/DawnFcInstrument.trn b/isis/src/dawn/apps/dawnfc2isis/DawnFcInstrument.trn index ef10e8e3d1..575f4bfa42 100644 --- a/isis/src/dawn/apps/dawnfc2isis/DawnFcInstrument.trn +++ b/isis/src/dawn/apps/dawnfc2isis/DawnFcInstrument.trn @@ -122,6 +122,7 @@ Group = TargetName InputDefault = "N/A" OutputPosition = (Object, IsisCube, Group, Instrument) Translation = ("VESTA", "4 VESTA") + Translation = ("CERES", "1 CERES") Translation = (*, *) End_Group diff --git a/isis/src/qisis/objs/AdvancedTrackTool/AdvancedTrackTool.cpp b/isis/src/qisis/objs/AdvancedTrackTool/AdvancedTrackTool.cpp index 3fa07acb63..3251048cd8 100644 --- a/isis/src/qisis/objs/AdvancedTrackTool/AdvancedTrackTool.cpp +++ b/isis/src/qisis/objs/AdvancedTrackTool/AdvancedTrackTool.cpp @@ -463,37 +463,70 @@ namespace Isis { } // Write out columns solar lon, slant distance, local solar time - double solarLon = cvp->camera()->solarLongitude().degrees(); - p_tableWin->table()->item(row, getIndex("Solar Longitude"))-> - setText(QString::number(solarLon)); + try { + double solarLon = cvp->camera()->solarLongitude().degrees(); + p_tableWin->table()->item(row, getIndex("Solar Longitude"))-> + setText(QString::number(solarLon)); + } + catch (IException &e) { + p_tableWin->table()->item(row, getIndex("Solar Longitude"))-> + setText(""); + } + double slantDistance = cvp->camera()->SlantDistance(); p_tableWin->table()->item(row, getIndex("Slant Distance"))-> setText(QString::number(slantDistance)); - double lst = cvp->camera()->LocalSolarTime(); - p_tableWin->table()->item(row, getIndex("Local Solar Time"))-> - setText(QString::number(lst)); + try { + double lst = cvp->camera()->LocalSolarTime(); + p_tableWin->table()->item(row, getIndex("Local Solar Time"))-> + setText(QString::number(lst)); + } + catch (IException &e) { + p_tableWin->table()->item(row, getIndex("Local Solar Time"))-> + setText(""); + } + } // end if set image succeeds // Always write out the x/y/z of the undistorted focal plane - CameraDistortionMap *distortedMap = cvp->camera()->DistortionMap(); - double undistortedFocalPlaneX = distortedMap->UndistortedFocalPlaneX(); - p_tableWin->table()->item(row, getIndex("Undistorted Focal X"))-> - setText(QString::number(undistortedFocalPlaneX)); - double undistortedFocalPlaneY = distortedMap->UndistortedFocalPlaneY(); - p_tableWin->table()->item(row, getIndex("Undistorted Focal Y"))-> - setText(QString::number(undistortedFocalPlaneY)); - double undistortedFocalPlaneZ = distortedMap->UndistortedFocalPlaneZ(); - p_tableWin->table()->item(row, getIndex("Undistorted Focal Z"))-> - setText(QString::number(undistortedFocalPlaneZ)); + if (cvp->camera()->DistortionMap() != NULL) { + CameraDistortionMap *distortedMap = cvp->camera()->DistortionMap(); + double undistortedFocalPlaneX = distortedMap->UndistortedFocalPlaneX(); + p_tableWin->table()->item(row, getIndex("Undistorted Focal X"))-> + setText(QString::number(undistortedFocalPlaneX)); + double undistortedFocalPlaneY = distortedMap->UndistortedFocalPlaneY(); + p_tableWin->table()->item(row, getIndex("Undistorted Focal Y"))-> + setText(QString::number(undistortedFocalPlaneY)); + double undistortedFocalPlaneZ = distortedMap->UndistortedFocalPlaneZ(); + p_tableWin->table()->item(row, getIndex("Undistorted Focal Z"))-> + setText(QString::number(undistortedFocalPlaneZ)); + } + else { + p_tableWin->table()->item(row, getIndex("Undistorted Focal X"))-> + setText(""); + p_tableWin->table()->item(row, getIndex("Undistorted Focal Y"))-> + setText(""); + p_tableWin->table()->item(row, getIndex("Undistorted Focal Z"))-> + setText(""); + } // Always write out the x/y of the distorted focal plane - CameraFocalPlaneMap *focalPlaneMap = cvp->camera()->FocalPlaneMap(); - double distortedFocalPlaneX = focalPlaneMap->FocalPlaneX(); - p_tableWin->table()->item(row, getIndex("Focal Plane X"))-> - setText(QString::number(distortedFocalPlaneX)); - double distortedFocalPlaneY = focalPlaneMap->FocalPlaneY(); - p_tableWin->table()->item(row, getIndex("Focal Plane Y"))-> - setText(QString::number(distortedFocalPlaneY)); + if (cvp->camera()->FocalPlaneMap() != NULL) { + CameraFocalPlaneMap *focalPlaneMap = cvp->camera()->FocalPlaneMap(); + double distortedFocalPlaneX = focalPlaneMap->FocalPlaneX(); + p_tableWin->table()->item(row, getIndex("Focal Plane X"))-> + setText(QString::number(distortedFocalPlaneX)); + double distortedFocalPlaneY = focalPlaneMap->FocalPlaneY(); + p_tableWin->table()->item(row, getIndex("Focal Plane Y"))-> + setText(QString::number(distortedFocalPlaneY)); + } + else { + p_tableWin->table()->item(row, getIndex("Focal Plane X"))-> + setText(""); + p_tableWin->table()->item(row, getIndex("Focal Plane Y"))-> + setText(""); + } + // Always write out columns ra/dec, regardless of whether set image succeeds double ra = cvp->camera()->RightAscension(); diff --git a/isis/tests/FunctionalTestsCnetdiff.cpp b/isis/tests/FunctionalTestsCnetdiff.cpp new file mode 100644 index 0000000000..7ee007cf59 --- /dev/null +++ b/isis/tests/FunctionalTestsCnetdiff.cpp @@ -0,0 +1,1023 @@ +#include +#include +#include +#include + +#include "Progress.h" +#include "Pvl.h" +#include "PvlGroup.h" + +#include "cnetdiff.h" +#include "ControlMeasure.h" +#include "ControlPoint.h" +#include "ControlNet.h" +#include "SurfacePoint.h" +#include "TempFixtures.h" + +#include "gtest/gtest.h" + +using namespace Isis; + +static QString APP_XML = FileName("$ISISROOT/bin/xml/cnetdiff.xml").expanded(); + +class CompareNetsReportFirstDiff : public TempTestingFiles { + protected: + QString cnetFile1; + QString cnetFile2; + QString diffsFile; + + void SetUp() override { + TempTestingFiles::SetUp(); + + cnetFile1 = tempDir.path() + "/cnet1.net"; + cnetFile2 = tempDir.path() + "/cnet2.net"; + + diffsFile = tempDir.path() + "/diffs.txt"; + + // setup net1 + ControlNet net1; + + net1.SetNetworkId("Test"); + net1.SetTarget("Mars"); + net1.SetUserName("TSucharski"); + net1.SetCreatedDate("2010-07-10T12:50:15"); + net1.SetModifiedDate("2010-07-10T12:50:55"); + net1.SetDescription("UnitTest of ControlNetwork"); + + ControlPoint *cp1a = new ControlPoint("T0000"); + cp1a->SetType(ControlPoint::Fixed); + cp1a->SetChooserName("autoseed"); + cp1a->SetAprioriSurfacePointSource(ControlPoint::SurfacePointSource::Basemap); + cp1a->SetAprioriSurfacePointSourceFile("/work1/tsucharski/basemap.cub"); + cp1a->SetAprioriRadiusSource(ControlPoint::RadiusSource::DEM); + cp1a->SetAprioriRadiusSourceFile("$base/dems/molaMarsPlanetaryRadius0003.cub"); + + SurfacePoint surfacePt1(Displacement(-424.024048, Displacement::Meters), + Displacement(734.4311949, Displacement::Meters), + Displacement(529.919264, Displacement::Meters), + Distance(10, Distance::Meters), + Distance(50, Distance::Meters), + Distance(20, Distance::Meters)); + + // set apriori and adjusted surface points to the same values here + cp1a->SetAprioriSurfacePoint(surfacePt1); + cp1a->SetAdjustedSurfacePoint(surfacePt1); + + ControlMeasure *measure1aid0 = new ControlMeasure(); + measure1aid0->SetCubeSerialNumber("id0"); + measure1aid0->SetCoordinate(0.0, 0.0); + measure1aid0->SetType(ControlMeasure::Candidate); + measure1aid0->SetChooserName("cnetref"); + measure1aid0->SetDateTime("2010-08-27T17:10:06"); + measure1aid0->SetEditLock(true); + + ControlMeasure *measure1aid1 = new ControlMeasure(); + measure1aid1->SetCubeSerialNumber("id1"); + measure1aid1->SetCoordinate(1.0, 2.0); + measure1aid1->SetDiameter(15.0); + measure1aid1->SetType(ControlMeasure::Candidate); + measure1aid1->SetIgnored(true); + measure1aid1->SetAprioriSample(2.0); + measure1aid1->SetAprioriLine(5.0); + measure1aid1->SetSampleSigma(0.01); + measure1aid1->SetLineSigma(0.21); + measure1aid1->SetResidual(-3.0, 4.0); + measure1aid1->SetChooserName("autoseed"); + measure1aid1->SetDateTime("2010-08-27T17:10:06"); + + cp1a->Add(measure1aid0); + cp1a->Add(measure1aid1); + cp1a->SetDateTime("2010-08-27T17:10:06"); + cp1a->SetEditLock(true); + net1.AddPoint(cp1a); + + ControlPoint *cp1b = new ControlPoint("T0001"); + cp1b->SetType(ControlPoint::Free); + cp1b->SetChooserName("autoseed"); + cp1b->SetIgnored(true); + + ControlMeasure *measure1bid0 = new ControlMeasure(); + measure1bid0->SetCubeSerialNumber("id0"); + measure1bid0->SetCoordinate(0.0, 0.0); + measure1bid0->SetType(ControlMeasure::Candidate); + measure1bid0->SetChooserName("cnetref"); + measure1bid0->SetDateTime("2010-08-27T17:10:06"); + measure1bid0->SetEditLock(true); + + ControlMeasure *measure1bid1 = new ControlMeasure(); + measure1bid1->SetCubeSerialNumber("id1"); + measure1bid1->SetCoordinate(1.0, 2.0); + measure1bid1->SetDiameter(15.0); + measure1bid1->SetType(ControlMeasure::Candidate); + measure1bid1->SetIgnored(true); + measure1bid1->SetAprioriSample(2.0); + measure1bid1->SetAprioriLine(5.0); + measure1bid1->SetSampleSigma(0.01); + measure1bid1->SetLineSigma(0.21); + measure1bid1->SetResidual(-3.0, 4.0); + measure1bid1->SetChooserName("autoseed"); + measure1bid1->SetDateTime("2010-08-27T17:10:06"); + + cp1b->Add(measure1bid0); + cp1b->Add(measure1bid1); + cp1b->SetDateTime("2010-08-27T17:10:06"); + net1.AddPoint(cp1b); + + ControlPoint *cp1c = new ControlPoint("T0003"); + cp1c->SetType(ControlPoint::Free); + cp1c->SetChooserName("autoseed"); + + ControlMeasure *measure1cid0 = new ControlMeasure(); + measure1cid0->SetCubeSerialNumber("id0"); + measure1cid0->SetCoordinate(0.0, 0.0); + measure1cid0->SetType(ControlMeasure::Candidate); + measure1cid0->SetChooserName("cnetref"); + measure1cid0->SetDateTime("2010-08-27T17:10:06"); + measure1cid0->SetEditLock(true); + + ControlMeasure *measure1cid1 = new ControlMeasure(); + measure1cid1->SetCubeSerialNumber("id1"); + measure1cid1->SetCoordinate(1.0, 2.0); + measure1cid1->SetDiameter(15.0); + measure1cid1->SetType(ControlMeasure::Candidate); + measure1cid1->SetIgnored(true); + measure1cid1->SetAprioriSample(2.0); + measure1cid1->SetAprioriLine(5.0); + measure1cid1->SetSampleSigma(0.01); + measure1cid1->SetLineSigma(0.21); + measure1cid1->SetResidual(-3.0, 4.0); + measure1cid1->SetChooserName("autoseed"); + measure1cid1->SetDateTime("2010-08-27T17:10:06"); + + cp1c->Add(measure1cid0); + cp1c->Add(measure1cid1); + cp1c->SetDateTime("2010-08-27T17:10:06"); + net1.AddPoint(cp1c); + + ControlPoint *cp1d = new ControlPoint("T0004"); + cp1d->SetType(ControlPoint::Free); + cp1d->SetChooserName("autoseed"); + + ControlMeasure *measure1did0 = new ControlMeasure(); + measure1did0->SetCubeSerialNumber("id0"); + measure1did0->SetCoordinate(0.0, 0.0); + measure1did0->SetType(ControlMeasure::Candidate); + measure1did0->SetChooserName("cnetref"); + measure1did0->SetDateTime("2010-08-27T17:10:06"); + measure1did0->SetEditLock(true); + + ControlMeasure *measure1did1 = new ControlMeasure(); + measure1did1->SetCubeSerialNumber("id1"); + measure1did1->SetCoordinate(1.0, 2.0); + measure1did1->SetDiameter(15.0); + measure1did1->SetType(ControlMeasure::Candidate); + measure1did1->SetIgnored(true); + measure1did1->SetAprioriSample(2.0); + measure1did1->SetAprioriLine(5.0); + measure1did1->SetSampleSigma(0.01); + measure1did1->SetLineSigma(0.21); + measure1did1->SetResidual(-3.0, 4.0); + measure1did1->SetChooserName("autoseed"); + measure1did1->SetDateTime("2010-08-27T17:10:06"); + + cp1d->Add(measure1did0); + cp1d->Add(measure1did1); + cp1d->SetDateTime("2010-08-27T17:10:06"); + net1.AddPoint(cp1d); + + net1.Write(cnetFile1); + + // construct net2 from net1 and change some items + ControlNet net2(net1); + + ControlPoint *point2a = net2["T0000"]; + ControlMeasure* measure2aid1 = point2a->GetMeasure("id1"); + measure2aid1->SetResidual(-1.0, 4.0); + measure2aid1->SetChooserName("autoseed"); + measure2aid1->SetDateTime("2010-08-27T17:10:06"); + + ControlPoint *point2b = net2["T0001"]; + ControlMeasure* measure2bid1 = point2b->GetMeasure("id1"); + measure2bid1->SetResidual(-1.0, 4.0); + measure2bid1->SetChooserName("autoseed"); + measure2bid1->SetDateTime("2010-08-27T17:10:06"); + + ControlPoint *point2c = net2["T0003"]; + ControlMeasure* measure2cid1 = point2c->GetMeasure("id1"); + measure2cid1->SetResidual(-1.0, 4.0); + measure2cid1->SetChooserName("autoseed"); + measure2cid1->SetDateTime("2010-08-27T17:10:06"); + + ControlPoint *point2d = net2["T0004"]; + ControlMeasure* measure2did1 = point2d->GetMeasure("id1"); + measure2did1->SetResidual(-1.0, 4.0); + measure2did1->SetChooserName("autoseed"); + measure2did1->SetDateTime("2010-08-27T17:10:06"); + + net2.Write(cnetFile2); + + // set up pvl difference file + Pvl diffs; + PvlGroup toleranceGroup("Tolerances"); + toleranceGroup.addKeyword(PvlKeyword("SampleResidual", "1.5")); + diffs.addGroup(toleranceGroup); + diffs.write(diffsFile); + } +}; + +class CompareNetsReportFull : public TempTestingFiles { + protected: + QString cnetFile1; + QString cnetFile2; + + QString diffsFile; + + void SetUp() override { + TempTestingFiles::SetUp(); + + cnetFile1 = tempDir.path() + "/cnet1.net"; + cnetFile2 = tempDir.path() + "/cnet2.net"; + + diffsFile = tempDir.path() + "/diffs.txt"; + + // setup net1 + ControlNet net1; + + net1.SetNetworkId("Test"); + net1.SetTarget("Mars"); + net1.SetUserName("TSucharski"); + net1.SetCreatedDate("2010-07-10T12:50:15"); + net1.SetModifiedDate("2010-07-10T12:50:55"); + net1.SetDescription("UnitTest of ControlNetwork"); + + ControlPoint *cp3a = new ControlPoint("T0001"); + cp3a->SetType(ControlPoint::Free); + cp3a->SetChooserName("autoseed"); + cp3a->SetIgnored(true); + + ControlMeasure *measure3aid0 = new ControlMeasure(); + measure3aid0->SetCubeSerialNumber("id0"); + measure3aid0->SetCoordinate(0.0, 0.0); + measure3aid0->SetType(ControlMeasure::Candidate); + measure3aid0->SetChooserName("cnetref"); + measure3aid0->SetDateTime("2010-08-27T17:10:06"); + measure3aid0->SetEditLock(true); + + ControlMeasure *measure3aid1 = new ControlMeasure(); + measure3aid1->SetCubeSerialNumber("id1"); + measure3aid1->SetCoordinate(1.0, 2.0); + measure3aid1->SetDiameter(15.0); + measure3aid1->SetType(ControlMeasure::Candidate); + measure3aid1->SetIgnored(true); + measure3aid1->SetAprioriSample(2.0); + measure3aid1->SetAprioriLine(5.0); + measure3aid1->SetSampleSigma(0.01); + measure3aid1->SetLineSigma(0.21); + measure3aid1->SetResidual(-3.0, 4.0); + measure3aid1->SetChooserName("autoseed"); + measure3aid1->SetDateTime("2010-08-27T17:10:06"); + + cp3a->Add(measure3aid0); + cp3a->Add(measure3aid1); + cp3a->SetDateTime("2010-08-27T17:10:06"); + net1.AddPoint(cp3a); + + ControlPoint *cp3b = new ControlPoint("T0003"); + cp3b->SetType(ControlPoint::Free); + cp3b->SetChooserName("autoseed"); + cp3b->SetAprioriSurfacePointSource(ControlPoint::SurfacePointSource::Basemap); + cp3b->SetAprioriSurfacePointSourceFile("/work1/tsucharski/basemap.cub"); + cp3b->SetAprioriRadiusSource(ControlPoint::RadiusSource::DEM); + cp3b->SetAprioriRadiusSourceFile("$base/dems/molaMarsPlanetaryRadius0003.cub"); + + SurfacePoint surfacePt1(Displacement(-424.024048, Displacement::Meters), + Displacement(734.4311949, Displacement::Meters), + Displacement(529.919264, Displacement::Meters), + Distance(10, Distance::Meters), + Distance(50, Distance::Meters), + Distance(20, Distance::Meters)); + + cp3b->SetAprioriSurfacePoint(surfacePt1); + + SurfacePoint surfacePt2(Displacement(-423.024048, Displacement::Meters), + Displacement(754.4311949, Displacement::Meters), + Displacement(523.919264, Displacement::Meters), + Distance(10, Distance::Meters), + Distance(50, Distance::Meters), + Distance(20, Distance::Meters)); + + cp3b->SetAdjustedSurfacePoint(surfacePt2); + + ControlMeasure *measure3bid0 = new ControlMeasure(); + measure3bid0->SetCubeSerialNumber("id0"); + measure3bid0->SetCoordinate(0.0, 0.0); + measure3bid0->SetType(ControlMeasure::Candidate); + measure3bid0->SetChooserName("cnetref"); + measure3bid0->SetDateTime("2010-08-27T17:10:06"); + measure3bid0->SetEditLock(true); + + ControlMeasure *measure3bid1 = new ControlMeasure(); + measure3bid1->SetCubeSerialNumber("id1"); + measure3bid1->SetCoordinate(1.0, 2.0); + measure3bid1->SetDiameter(15.0); + measure3bid1->SetType(ControlMeasure::Candidate); + measure3bid1->SetIgnored(true); + measure3bid1->SetAprioriSample(2.0); + measure3bid1->SetAprioriLine(5.0); + measure3bid1->SetSampleSigma(0.01); + measure3bid1->SetLineSigma(0.21); + measure3bid1->SetResidual(-3.0, 4.0); + measure3bid1->SetChooserName("autoseed"); + measure3bid1->SetDateTime("2010-08-27T17:10:06"); + + cp3b->Add(measure3bid0); + cp3b->Add(measure3bid1); + cp3b->SetDateTime("2010-08-27T17:10:06"); + net1.AddPoint(cp3b); + + ControlPoint *cp3c = new ControlPoint("T0004"); + cp3c->SetType(ControlPoint::Free); + cp3c->SetChooserName("autoseed"); + cp3c->SetAprioriSurfacePoint(surfacePt1); + cp3c->SetAdjustedSurfacePoint(surfacePt1); + cp3c->SetAprioriRadiusSource(ControlPoint::RadiusSource::DEM); + cp3c->SetAprioriRadiusSourceFile("$base/dems/molaMarsPlanetaryRadius0003.cub"); + + ControlMeasure *measure3cid0 = new ControlMeasure(); + measure3cid0->SetCubeSerialNumber("id0"); + measure3cid0->SetCoordinate(4.0, 3.0); + measure3cid0->SetType(ControlMeasure::Candidate); + measure3cid0->SetResidual(1.0, -4.0); + measure3cid0->SetAprioriSample(10.0); + measure3cid0->SetAprioriLine(20.0); + measure3cid0->SetChooserName("cnetref"); + measure3cid0->SetDateTime("2010-08-27T17:10:06"); + measure3cid0->SetEditLock(true); + + ControlMeasure *measure3cid1 = new ControlMeasure(); + measure3cid1->SetCubeSerialNumber("id1"); + measure3cid1->SetCoordinate(1.0, 2.0); + measure3cid1->SetDiameter(15.0); + measure3cid1->SetType(ControlMeasure::Candidate); + measure3cid1->SetIgnored(true); + measure3cid1->SetAprioriSample(2.0); + measure3cid1->SetAprioriLine(5.0); + measure3cid1->SetSampleSigma(0.01); + measure3cid1->SetLineSigma(0.21); + measure3cid1->SetResidual(-3.0, 4.0); + measure3cid1->SetChooserName("autoseed"); + measure3cid1->SetDateTime("2010-08-27T17:10:06"); + + cp3c->Add(measure3cid0); + cp3c->Add(measure3cid1); + cp3c->SetDateTime("2010-08-27T17:10:06"); + cp3c->SetEditLock(true); + net1.AddPoint(cp3c); + + ControlPoint *cp3d = new ControlPoint("T0000"); + cp3d->SetType(ControlPoint::Fixed); + cp3d->SetChooserName("autoseed"); + + ControlMeasure *measure3did0 = new ControlMeasure(); + measure3did0->SetCubeSerialNumber("id0"); + measure3did0->SetCoordinate(2.0, 3.0); + measure3did0->SetType(ControlMeasure::Candidate); + measure3did0->SetChooserName("cnetref"); + measure3did0->SetDateTime("2010-08-27T17:10:06"); + measure3did0->SetEditLock(true); + + ControlMeasure *measure3did1 = new ControlMeasure(); + measure3did1->SetCubeSerialNumber("id1"); + measure3did1->SetCoordinate(1.0, 2.0); + measure3did1->SetDiameter(15.0); + measure3did1->SetType(ControlMeasure::Candidate); + measure3did1->SetIgnored(true); + measure3did1->SetAprioriSample(2.0); + measure3did1->SetAprioriLine(5.0); + measure3did1->SetSampleSigma(0.01); + measure3did1->SetLineSigma(0.21); + measure3did1->SetResidual(-3.0, 4.0); + measure3did1->SetChooserName("autoseed"); + measure3did1->SetDateTime("2010-08-27T17:10:06"); + + cp3d->Add(measure3did0); + cp3d->Add(measure3did1); + cp3d->SetDateTime("2010-08-27T17:10:06"); + cp3d->SetEditLock(true); + net1.AddPoint(cp3d); + + net1.Write(cnetFile1); + + // setup net2 + ControlNet net2; + + net2.SetNetworkId("Test2"); + net2.SetTarget("Moon"); + net2.SetUserName("TSucharski"); + net2.SetCreatedDate("2010-07-10T12:50:15"); + net2.SetModifiedDate("2010-07-10T12:50:55"); + net2.SetDescription("UnitTest of ControlNetwork"); + + ControlPoint *point4a = new ControlPoint("T0000"); + point4a->SetType(ControlPoint::Fixed); + point4a->SetChooserName("autoseed"); + + ControlMeasure *measure4aid0 = new ControlMeasure(); + measure4aid0->SetCubeSerialNumber("id0"); + measure4aid0->SetCoordinate(1.0, 2.0); + measure4aid0->SetType(ControlMeasure::Candidate); + measure4aid0->SetChooserName("cnetref"); + measure4aid0->SetDateTime("2010-08-27T17:10:06"); + measure4aid0->SetEditLock(true); + + ControlMeasure *measure4aid1 = new ControlMeasure(); + measure4aid1->SetCubeSerialNumber("id1"); + measure4aid1->SetCoordinate(1.0, 2.0); + measure4aid1->SetDiameter(15.0); + measure4aid1->SetType(ControlMeasure::Candidate); + measure4aid1->SetIgnored(true); + measure4aid1->SetAprioriSample(2.0); + measure4aid1->SetAprioriLine(5.0); + measure4aid1->SetSampleSigma(0.01); + measure4aid1->SetLineSigma(0.21); + measure4aid1->SetResidual(-1.0, 4.0); + measure4aid1->SetChooserName("autoseed"); + measure4aid1->SetDateTime("2010-08-27T17:10:06"); + + point4a->Add(measure4aid0); + point4a->Add(measure4aid1); + point4a->SetDateTime("2010-08-27T17:10:06"); + net2.AddPoint(point4a); + + ControlPoint *point4b = new ControlPoint("T0002"); + point4b->SetType(ControlPoint::Free); + point4b->SetChooserName("autoseed"); + point4b->SetIgnored(true); + + ControlMeasure *measure4bid0 = new ControlMeasure(); + measure4bid0->SetCubeSerialNumber("id0"); + measure4bid0->SetCoordinate(0.0, 0.0); + measure4bid0->SetType(ControlMeasure::Candidate); + measure4bid0->SetChooserName("cnetref"); + measure4bid0->SetDateTime("2010-08-27T17:10:06"); + measure4bid0->SetEditLock(true); + + ControlMeasure *measure4bid1 = new ControlMeasure(); + measure4bid1->SetCubeSerialNumber("id1"); + measure4bid1->SetCoordinate(1.0, 2.0); + measure4bid1->SetDiameter(15.0); + measure4bid1->SetType(ControlMeasure::Candidate); + measure4bid1->SetIgnored(true); + measure4bid1->SetAprioriSample(2.0); + measure4bid1->SetAprioriLine(5.0); + measure4bid1->SetSampleSigma(0.01); + measure4bid1->SetLineSigma(0.21); + measure4bid1->SetResidual(-1.0, 4.0); + measure4bid1->SetChooserName("autoseed"); + measure4bid1->SetDateTime("2010-08-27T17:10:06"); + + point4b->Add(measure4bid0); + point4b->Add(measure4bid1); + point4b->SetDateTime("2010-08-27T17:10:06"); + net2.AddPoint(point4b); + + ControlPoint *point4c = new ControlPoint("T0004"); + point4c->SetType(ControlPoint::Free); + point4c->SetAprioriSurfacePointSource(ControlPoint::SurfacePointSource::Basemap); + point4c->SetAprioriSurfacePointSourceFile("/work1/tsucharski/basemap.cub"); + point4c->SetAprioriRadiusSource(ControlPoint::RadiusSource::DEM); + point4c->SetAprioriRadiusSourceFile("$base/dems/molaMarsPlanetaryRadius0003.cub"); + point4c->SetAprioriSurfacePoint(surfacePt1); + point4c->SetAdjustedSurfacePoint(surfacePt2); + point4c->SetChooserName("autoseed"); + + ControlMeasure *measure4cid0 = new ControlMeasure(); + measure4cid0->SetCubeSerialNumber("id0"); + measure4cid0->SetCoordinate(1.0, 2.0); + measure4cid0->SetType(ControlMeasure::Candidate); + measure4cid0->SetResidual(1.0, -4.0); + measure4cid0->SetSampleSigma(0.01); + measure4cid0->SetLineSigma(0.21); + measure4cid0->SetResidual(-10.0, 4.0); + measure4cid0->SetChooserName("cnetref"); + measure4cid0->SetDateTime("2010-08-27T17:10:06"); + measure4cid0->SetEditLock(true); + + ControlMeasure *measure4cid2 = new ControlMeasure(); + measure4cid2->SetCubeSerialNumber("id2"); + measure4cid2->SetCoordinate(1.0, 2.0); + measure4cid2->SetDiameter(15.0); + measure4cid2->SetType(ControlMeasure::Candidate); + measure4cid2->SetIgnored(true); + measure4cid2->SetAprioriSample(2.0); + measure4cid2->SetAprioriLine(5.0); + measure4cid2->SetSampleSigma(0.01); + measure4cid2->SetLineSigma(0.21); + measure4cid2->SetResidual(-1.0, 4.0); + measure4cid2->SetChooserName("autoseed"); + measure4cid2->SetDateTime("2010-08-27T17:10:06"); + + ControlMeasure *measure4cid3 = new ControlMeasure(); + measure4cid3->SetCubeSerialNumber("id3"); + measure4cid3->SetCoordinate(1.0, 2.0); + measure4cid3->SetDiameter(15.0); + measure4cid3->SetType(ControlMeasure::Candidate); + measure4cid3->SetIgnored(true); + measure4cid3->SetAprioriSample(2.0); + measure4cid3->SetAprioriLine(5.0); + measure4cid3->SetSampleSigma(0.01); + measure4cid3->SetLineSigma(0.21); + measure4cid3->SetResidual(-1.0, 4.0); + measure4cid3->SetChooserName("autoseed"); + measure4cid3->SetDateTime("2010-08-27T17:10:06"); + + point4c->Add(measure4cid0); + point4c->Add(measure4cid2); + point4c->Add(measure4cid3); + point4c->SetDateTime("2010-08-27T17:10:06"); + net2.AddPoint(point4c); + + net2.Write(cnetFile2); + + // set up pvl difference file + Pvl diffs; + PvlGroup ignoreKeysGroup("IgnoreKeys"); + ignoreKeysGroup.addKeyword(PvlKeyword("AprioriSample", "true")); + ignoreKeysGroup.addKeyword(PvlKeyword("AprioriLine", "true")); + ignoreKeysGroup.addKeyword(PvlKeyword("SampleSigma", "true")); + ignoreKeysGroup.addKeyword(PvlKeyword("LineSigma", "true")); + ignoreKeysGroup.addKeyword(PvlKeyword("NetworkId", "true")); + ignoreKeysGroup.addKeyword(PvlKeyword("AprioriXYZSource", "true")); + ignoreKeysGroup.addKeyword(PvlKeyword("EditLock", "true")); + ignoreKeysGroup.addKeyword(PvlKeyword("AdjustedZ", "true")); + diffs.addGroup(ignoreKeysGroup); + + + PvlGroup toleranceGroup("Tolerances"); + toleranceGroup.addKeyword(PvlKeyword("Sample", "1")); + toleranceGroup.addKeyword(PvlKeyword("Line", "1")); + toleranceGroup.addKeyword(PvlKeyword("SampleResidual", "5")); + toleranceGroup.addKeyword(PvlKeyword("AdjustedX", "3")); + toleranceGroup.addKeyword(PvlKeyword("AdjustedY", "3")); + diffs.addGroup(toleranceGroup); + diffs.write(diffsFile); + } +}; + +/** + * CompareNetsReportFirst + * + * Runs 4 comparisons between binary control nets (reporting only + * the first difference)... + * a) cnet1 vs cnet1, should be identical + * b) cnet2 vs cnet2, should be identical + * c) cnet1 vs cnet2 + * d) cnet1 vs cnet2 with sample residual tolerance of 1.5 + * given in the input file diffs1.txt + */ +TEST_F(CompareNetsReportFirstDiff, FunctionalTestCnetdiffReportFirst) { + QVector args = {"from=" + cnetFile1, + "from2=" + cnetFile1, + "to=" + tempDir.path() + "/compareSame1.txt" + }; + + UserInterface ui1(APP_XML, args); + + Pvl log; + + try { + log = cnetdiff(ui1); + } + catch(IException &e) { + FAIL() << e.toString().toStdString().c_str() << std::endl; + } + + // read back CompareSame1 output file + Pvl comparePvlSame1; + try { + comparePvlSame1.read(tempDir.path()+ "/compareSame1.txt"); + } + catch (IException &e) { + FAIL() << "Unable to open error log pvl file: " << e.what() << std::endl; + } + + PvlGroup &results = comparePvlSame1.findGroup("Results", Pvl::Traverse); + EXPECT_EQ(results["Compare"][0].toStdString(), "Identical"); + + // cnet2 vs cnet2 + args = {"from=" + cnetFile2, + "from2=" + cnetFile2, + "to=" + tempDir.path() + "/compareSame2.txt" + }; + + UserInterface ui2(APP_XML, args); + + try { + log = cnetdiff(ui2); + } + catch(IException &e) { + FAIL() << e.toString().toStdString().c_str() << std::endl; + } + + // read back CompareSame2 output file + Pvl comparePvlSame2; + try { + comparePvlSame2.read(tempDir.path()+ "/compareSame2.txt"); + } + catch (IException &e) { + FAIL() << "Unable to open error log pvl file: " << e.what() << std::endl; + } + + results = comparePvlSame2.findGroup("Results", Pvl::Traverse); + EXPECT_EQ(results["Compare"][0].toStdString(), "Identical"); + + // cnet1 vs cnet2 + args = {"from=" + cnetFile1, + "from2=" + cnetFile2, + "to=" + tempDir.path() + "/compareDifferent.txt" + }; + + UserInterface ui3(APP_XML, args); + + try { + log = cnetdiff(ui3); + } + catch(IException &e) { + FAIL() << e.toString().toStdString().c_str() << std::endl; + } + + // read back CompareDifferent output file + Pvl comparePvlDifferent; + try { + comparePvlDifferent.read(tempDir.path()+ "/compareDifferent.txt"); + } + catch (IException &e) { + FAIL() << "Unable to open error log pvl file: " << e.what() << std::endl; + } + + results = comparePvlDifferent.findGroup("Results", Pvl::Traverse); + EXPECT_EQ(results["Compare"][0].toStdString(), "Different"); + EXPECT_EQ(results["Reason"][0].toStdString(), + "Control Point [T0000] Control Measure for Cube [id1] " + "Value [SampleResidual] difference is 2.0 (values are " + "[-3.0] and [-1.0], tolerance is [0.0])"); + + // cnet1 vs cnet2 with sample residual tolerance of 1.5 input in diffs file + args = {"from=" + cnetFile1, + "from2=" + cnetFile2, + "to=" + tempDir.path() + "/compareDifferent2.txt", + "diff=" + diffsFile + }; + + UserInterface ui4(APP_XML, args); + + try { + log = cnetdiff(ui4); + } + catch(IException &e) { + FAIL() << e.toString().toStdString().c_str() << std::endl; + } + + // read back CompareDifferent2 output file + Pvl comparePvlDifferent2; + try { + comparePvlDifferent2.read(tempDir.path()+ "/compareDifferent2.txt"); + } + catch (IException &e) { + FAIL() << "Unable to open error log pvl file: " << e.what() << std::endl; + } + + results = comparePvlDifferent2.findGroup("Results", Pvl::Traverse); + EXPECT_EQ(results["Compare"][0].toStdString(), "Different"); + EXPECT_EQ(results["Reason"][0].toStdString(), + "Control Point [T0000] Control Measure for Cube [id1] " + "Value [SampleResidual] difference is 2.0 (values are " + "[-3.0] and [-1.0], tolerance is [1.5])"); +} + +/** + * FunctionalTestCnetdiffReportFull + * + * 2) Runs 4 comparisons between binary control nets, generating full reports. + * a) cnet1 vs cnet1, should be identical + * b) cnet2 vs cnet2, should be identical + * c) cnet1 vs cnet2 + * d) cnet1 vs cnet2 using diffs2.txt containing... + * Group = IgnoreKeys + * AprioriSample = true + * AprioriLine = true + * SampleSigma = true + * LineSigma = true + * NetworkId = true + * AprioriXYZSource = true + * EditLock = true + * AdjustedZ = true + * EndGroup + * + * Group = Tolerances + * Sample = 1 + * Line = 1 + * SampleResidual = 5 + * AdjustedX = 3 + * AdjustedY = 3 + * EndGroup + */ +TEST_F(CompareNetsReportFull, FunctionalTestCnetdiffReportFull) { + + // compare cnet3 vs cnet3 + QVector args = {"from=" + cnetFile1, + "from2=" + cnetFile1, + "to=" + tempDir.path() + "/compareSame1.txt", + "report=full" + }; + + UserInterface ui1(APP_XML, args); + + Pvl log; + + try { + log = cnetdiff(ui1); + } + catch(IException &e) { + FAIL() << e.toString().toStdString().c_str() << std::endl; + } + + // read back compareSame1 output file + Pvl compareSame1; + try { + compareSame1.read(tempDir.path()+ "/compareSame1.txt"); + } + catch (IException &e) { + FAIL() << "Unable to open error log pvl file: " << e.what() << std::endl; + } + + // confirm there are no groups or objects in the difference + // object confirming cnet3 is identical to itself + ASSERT_TRUE(compareSame1.hasObject("Differences")); + PvlObject differences = compareSame1.findObject("Differences"); + EXPECT_EQ(differences.groups(), 0); + EXPECT_EQ(differences.objects(), 0); + + // compare cnet4 vs cnet4 + args = {"from=" + cnetFile2, + "from2=" + cnetFile2, + "to=" + tempDir.path() + "/compareSame2.txt", + "report=full" + }; + + UserInterface ui2(APP_XML, args); + + try { + log = cnetdiff(ui2); + } + catch(IException &e) { + FAIL() << e.toString().toStdString().c_str() << std::endl; + } + + // read back compareSame2 output file + Pvl compareSame2; + try { + compareSame2.read(tempDir.path()+ "/compareSame2.txt"); + } + catch (IException &e) { + FAIL() << "Unable to open error log pvl file: " << e.what() << std::endl; + } + + // confirm there are no groups or objects in the difference + // object confirming cnet4 is identical to itself + ASSERT_TRUE(compareSame2.hasObject("Differences")); + differences = compareSame2.findObject("Differences"); + EXPECT_EQ(differences.groups(), 0); + EXPECT_EQ(differences.objects(), 0); + + // compare cnet3 vs cnet4 + args = {"from=" + cnetFile1, + "from2=" + cnetFile2, + "to=" + tempDir.path() + "/compareDifferent1.txt", + "report=full" + }; + + UserInterface ui3(APP_XML, args); + + try { + log = cnetdiff(ui3); + } + catch(IException &e) { + FAIL() << e.toString().toStdString().c_str() << std::endl; + } + + // read back compareDifferent1 output file + Pvl compareDifferent1; + try { + compareDifferent1.read(tempDir.path() + "/compareDifferent1.txt"); + } + catch (IException &e) { + FAIL() << "Unable to open error log pvl file: " << e.what() << std::endl; + } + + PvlObject &DifferencesObject1 = compareDifferent1.findObject("Differences"); + EXPECT_EQ(DifferencesObject1.keywords(), 4); + EXPECT_EQ(DifferencesObject1.objects(), 5); + EXPECT_EQ(DifferencesObject1["Filename"][0].toStdString(), "cnet1.net"); + EXPECT_EQ(DifferencesObject1["Filename"][1].toStdString(), "cnet2.net"); + EXPECT_EQ(DifferencesObject1["Points"][0].toStdString(), "4"); + EXPECT_EQ(DifferencesObject1["Points"][1].toStdString(), "3"); + EXPECT_EQ(DifferencesObject1["NetworkId"][0].toStdString(), "Test"); + EXPECT_EQ(DifferencesObject1["NetworkId"][1].toStdString(), "Test2"); + EXPECT_EQ(DifferencesObject1["TargetName"][0].toStdString(), "Mars"); + EXPECT_EQ(DifferencesObject1["TargetName"][1].toStdString(), "Moon"); + + PvlObject &comp1P1 = DifferencesObject1.findObject("Point"); + EXPECT_EQ(comp1P1.keywords(), 2); + EXPECT_EQ(comp1P1.groups(), 2); + EXPECT_EQ(comp1P1["PointId"][0].toStdString(), "T0000"); + EXPECT_EQ(comp1P1["EditLock"][0].toStdString(), "True"); + EXPECT_EQ(comp1P1["EditLock"][1].toStdString(), "N/A"); + + PvlGroup &comp1P1M1 = comp1P1.findGroup("Measure"); + EXPECT_EQ(comp1P1M1.keywords(), 3); + EXPECT_EQ(comp1P1M1["SerialNumber"][0].toStdString(), "id0"); + EXPECT_EQ(comp1P1M1["Line"][0].toStdString(), "3.0"); + EXPECT_EQ(comp1P1M1["Line"][1].toStdString(), "2.0"); + EXPECT_EQ(comp1P1M1["Sample"][0].toStdString(), "2.0"); + EXPECT_EQ(comp1P1M1["Sample"][1].toStdString(), "1.0"); + comp1P1.deleteGroup("Measure"); + + PvlGroup &comp1P1M2 = comp1P1.findGroup("Measure"); + EXPECT_EQ(comp1P1M2.keywords(), 2); + EXPECT_EQ(comp1P1M2["SerialNumber"][0].toStdString(), "id1"); + EXPECT_EQ(comp1P1M2["SampleResidual"][0].toStdString(), "-3.0"); + EXPECT_EQ(comp1P1M2["SampleResidual"][1].toStdString(), "-1.0"); + DifferencesObject1.deleteObject("Point"); + + PvlObject &comp1P2 = DifferencesObject1.findObject("Point"); + EXPECT_EQ(comp1P2.keywords(), 1); + EXPECT_EQ(comp1P2["PointId"][0].toStdString(), "T0001"); + EXPECT_EQ(comp1P2["PointId"][1].toStdString(), "N/A"); + DifferencesObject1.deleteObject("Point"); + + PvlObject &comp1P3 = DifferencesObject1.findObject("Point"); + EXPECT_EQ(comp1P3.keywords(), 1); + EXPECT_EQ(comp1P3["PointId"][0].toStdString(), "N/A"); + EXPECT_EQ(comp1P3["PointId"][1].toStdString(), "T0002"); + DifferencesObject1.deleteObject("Point"); + + PvlObject &comp1P4 = DifferencesObject1.findObject("Point"); + EXPECT_EQ(comp1P4.keywords(), 1); + EXPECT_EQ(comp1P4["PointId"][0].toStdString(), "T0003"); + EXPECT_EQ(comp1P4["PointId"][1].toStdString(), "N/A"); + DifferencesObject1.deleteObject("Point"); + + PvlObject &comp1P5 = DifferencesObject1.findObject("Point"); + EXPECT_EQ(comp1P5.keywords(), 8); + EXPECT_EQ(comp1P5.groups(), 4); + EXPECT_EQ(comp1P5["PointId"][0].toStdString(), "T0004"); + EXPECT_EQ(comp1P5["Measures"][0].toStdString(), "2"); + EXPECT_EQ(comp1P5["Measures"][1].toStdString(), "3"); + EXPECT_EQ(comp1P5["AdjustedX"][0].toStdString(), "-424.024048"); + EXPECT_EQ(comp1P5["AdjustedX"][1].toStdString(), "-423.024048"); + EXPECT_EQ(comp1P5["AdjustedY"][0].toStdString(), "734.4311949"); + EXPECT_EQ(comp1P5["AdjustedY"][1].toStdString(), "754.4311949"); + EXPECT_EQ(comp1P5["AdjustedZ"][0].toStdString(), "529.919264"); + EXPECT_EQ(comp1P5["AdjustedZ"][1].toStdString(), "523.919264"); + EXPECT_EQ(comp1P5["AprioriXYZSource"][0].toStdString(), "N/A"); + EXPECT_EQ(comp1P5["AprioriXYZSource"][1].toStdString(), "Basemap"); + EXPECT_EQ(comp1P5["AprioriXYZSourceFile"][0].toStdString(), "N/A"); + EXPECT_EQ(comp1P5["AprioriXYZSourceFile"][1].toStdString(), "/work1/tsucharski/basemap.cub"); + EXPECT_EQ(comp1P5["EditLock"][0].toStdString(), "True"); + EXPECT_EQ(comp1P5["EditLock"][1].toStdString(), "N/A"); + + PvlGroup &comp1P5M1 = comp1P5.findGroup("Measure"); + EXPECT_EQ(comp1P5M1.keywords(), 9); + EXPECT_EQ(comp1P5M1["SerialNumber"][0].toStdString(), "id0"); + EXPECT_EQ(comp1P5M1["AprioriLine"][0].toStdString(), "20.0"); + EXPECT_EQ(comp1P5M1["AprioriLine"][1].toStdString(), "N/A"); + EXPECT_EQ(comp1P5M1["AprioriSample"][0].toStdString(), "10.0"); + EXPECT_EQ(comp1P5M1["AprioriSample"][1].toStdString(), "N/A"); + EXPECT_EQ(comp1P5M1["Line"][0].toStdString(), "3.0"); + EXPECT_EQ(comp1P5M1["Line"][1].toStdString(), "2.0"); + EXPECT_EQ(comp1P5M1["LineResidual"][0].toStdString(), "-4.0"); + EXPECT_EQ(comp1P5M1["LineResidual"][1].toStdString(), "4.0"); + EXPECT_EQ(comp1P5M1["LineSigma"][0].toStdString(), "N/A"); + EXPECT_EQ(comp1P5M1["LineSigma"][1].toStdString(), "0.21"); + EXPECT_EQ(comp1P5M1["Sample"][0].toStdString(), "4.0"); + EXPECT_EQ(comp1P5M1["Sample"][1].toStdString(), "1.0"); + EXPECT_EQ(comp1P5M1["SampleResidual"][0].toStdString(), "1.0"); + EXPECT_EQ(comp1P5M1["SampleResidual"][1].toStdString(), "-10.0"); + EXPECT_EQ(comp1P5M1["SampleSigma"][0].toStdString(), "N/A"); + EXPECT_EQ(comp1P5M1["SampleSigma"][1].toStdString(), "0.01"); + comp1P5.deleteGroup("Measure"); + + PvlGroup &comp1P5M2 = comp1P5.findGroup("Measure"); + EXPECT_EQ(comp1P5M2.keywords(), 1); + EXPECT_EQ(comp1P5M2["SerialNumber"][0].toStdString(), "id1"); + EXPECT_EQ(comp1P5M2["SerialNumber"][1].toStdString(), "N/A"); + comp1P5.deleteGroup("Measure"); + + PvlGroup &comp1P5M3 = comp1P5.findGroup("Measure"); + EXPECT_EQ(comp1P5M3.keywords(), 1); + EXPECT_EQ(comp1P5M3["SerialNumber"][0].toStdString(), "N/A"); + EXPECT_EQ(comp1P5M3["SerialNumber"][1].toStdString(), "id2"); + comp1P5.deleteGroup("Measure"); + + PvlGroup &comp1P5M4 = comp1P5.findGroup("Measure"); + EXPECT_EQ(comp1P5M4.keywords(), 1); + EXPECT_EQ(comp1P5M4["SerialNumber"][0].toStdString(), "N/A"); + EXPECT_EQ(comp1P5M4["SerialNumber"][1].toStdString(), "id3"); + + // cnet3 vs cnet4 with diffsFile + args = {"from=" + cnetFile1, + "from2=" + cnetFile2, + "to=" + tempDir.path() + "/compareDifferent2.txt", + "diff=" + diffsFile, + "report=full" + }; + + UserInterface ui4(APP_XML, args); + + try { + log = cnetdiff(ui4); + } + catch(IException &e) { + FAIL() << e.toString().toStdString().c_str() << std::endl; + } + + // read back compareDifferent2 output file + Pvl compareDifferent2; + try { + compareDifferent2.read(tempDir.path() + "/compareDifferent2.txt"); + } + catch (IException &e) { + FAIL() << "Unable to open error log pvl file: " << e.what() << std::endl; + } + + PvlObject &DifferencesObject2 = compareDifferent2.findObject("Differences"); + EXPECT_EQ(DifferencesObject2.keywords(), 3); + EXPECT_EQ(DifferencesObject2.objects(), 4); + EXPECT_EQ(DifferencesObject2["Filename"][0].toStdString(), "cnet1.net"); + EXPECT_EQ(DifferencesObject2["Filename"][1].toStdString(), "cnet2.net"); + EXPECT_EQ(DifferencesObject2["Points"][0].toStdString(), "4"); + EXPECT_EQ(DifferencesObject2["Points"][1].toStdString(), "3"); + EXPECT_EQ(DifferencesObject2["TargetName"][0].toStdString(), "Mars"); + EXPECT_EQ(DifferencesObject2["TargetName"][1].toStdString(), "Moon"); + + PvlObject &comp2P1 = DifferencesObject2.findObject("Point"); + EXPECT_EQ(comp2P1.keywords(), 1); + EXPECT_EQ(comp2P1["PointId"][0].toStdString(), "T0001"); + EXPECT_EQ(comp2P1["PointId"][1].toStdString(), "N/A"); + DifferencesObject2.deleteObject("Point"); + + PvlObject &comp2P2 = DifferencesObject2.findObject("Point"); + EXPECT_EQ(comp2P2.keywords(), 1); + EXPECT_EQ(comp2P2["PointId"][0].toStdString(), "N/A"); + EXPECT_EQ(comp2P2["PointId"][1].toStdString(), "T0002"); + DifferencesObject2.deleteObject("Point"); + + PvlObject &comp2P3 = DifferencesObject2.findObject("Point"); + EXPECT_EQ(comp2P3.keywords(), 1); + EXPECT_EQ(comp2P3["PointId"][0].toStdString(), "T0003"); + EXPECT_EQ(comp2P3["PointId"][1].toStdString(), "N/A"); + DifferencesObject2.deleteObject("Point"); + + PvlObject &comp2P4 = DifferencesObject2.findObject("Point"); + EXPECT_EQ(comp2P4.keywords(), 4); + EXPECT_EQ(comp2P4.groups(), 4); + EXPECT_EQ(comp2P4["PointId"][0].toStdString(), "T0004"); + EXPECT_EQ(comp2P4["Measures"][0].toStdString(), "2"); + EXPECT_EQ(comp2P4["Measures"][1].toStdString(), "3"); + EXPECT_EQ(comp2P4["AdjustedY"][0].toStdString(), "734.4311949"); + EXPECT_EQ(comp2P4["AdjustedY"][1].toStdString(), "754.4311949"); + EXPECT_EQ(comp2P4["AdjustedY"][2].toStdString(), "3.0"); + EXPECT_EQ(comp2P4["AprioriXYZSourceFile"][0].toStdString(), "N/A"); + EXPECT_EQ(comp2P4["AprioriXYZSourceFile"][1].toStdString(), "/work1/tsucharski/basemap.cub"); + + PvlGroup &comp2P4M1 = comp2P4.findGroup("Measure"); + EXPECT_EQ(comp2P4M1.keywords(), 4); + EXPECT_EQ(comp2P4M1["SerialNumber"][0].toStdString(), "id0"); + EXPECT_EQ(comp2P4M1["LineResidual"][0].toStdString(), "-4.0"); + EXPECT_EQ(comp2P4M1["LineResidual"][1].toStdString(), "4.0"); + EXPECT_EQ(comp2P4M1["Sample"][0].toStdString(), "4.0"); + EXPECT_EQ(comp2P4M1["Sample"][1].toStdString(), "1.0"); + EXPECT_EQ(comp2P4M1["Sample"][2].toStdString(), "1.0"); + EXPECT_EQ(comp2P4M1["SampleResidual"][0].toStdString(), "1.0"); + EXPECT_EQ(comp2P4M1["SampleResidual"][1].toStdString(), "-10.0"); + EXPECT_EQ(comp2P4M1["SampleResidual"][2].toStdString(), "5.0"); + comp2P4.deleteGroup("Measure"); + + PvlGroup &comp2P4M2 = comp2P4.findGroup("Measure"); + EXPECT_EQ(comp2P4M2.keywords(), 1); + EXPECT_EQ(comp2P4M2["SerialNumber"][0].toStdString(), "id1"); + EXPECT_EQ(comp2P4M2["SerialNumber"][1].toStdString(), "N/A"); + comp2P4.deleteGroup("Measure"); + + PvlGroup &comp2P4M3 = comp2P4.findGroup("Measure"); + EXPECT_EQ(comp2P4M3.keywords(), 1); + EXPECT_EQ(comp2P4M3["SerialNumber"][0].toStdString(), "N/A"); + EXPECT_EQ(comp2P4M3["SerialNumber"][1].toStdString(), "id2"); + comp2P4.deleteGroup("Measure"); + + PvlGroup &comp2P4M4 = comp2P4.findGroup("Measure"); + EXPECT_EQ(comp2P4M4.keywords(), 1); + EXPECT_EQ(comp2P4M4["SerialNumber"][0].toStdString(), "N/A"); + EXPECT_EQ(comp2P4M4["SerialNumber"][1].toStdString(), "id3"); +} diff --git a/isis/tests/FunctionalTestsCnetedit.cpp b/isis/tests/FunctionalTestsCnetedit.cpp new file mode 100644 index 0000000000..a7cca587e7 --- /dev/null +++ b/isis/tests/FunctionalTestsCnetedit.cpp @@ -0,0 +1,2943 @@ +#include +#include +#include + +#include "cnetedit.h" +#include "ControlMeasure.h" +#include "ControlNet.h" +#include "ControlPoint.h" +#include "FileList.h" +#include "Progress.h" +#include "Pvl.h" +#include "PvlGroup.h" +#include "PvlObject.h" +#include "LineManager.h" +#include "spiceinit.h" +#include "TempFixtures.h" +#include "TestUtilities.h" + +#include "gtest/gtest.h" + +using namespace Isis; + +static QString APP_XML = FileName("$ISISROOT/bin/xml/cnetedit.xml").expanded(); + +class CneteditCheckValid : public TempTestingFiles { + protected: + QString cnet11File; + QString chkValidCubeListFile; + QString defFile; + + void SetUp() override { + TempTestingFiles::SetUp(); + + chkValidCubeListFile = tempDir.path() + "/chkValidCubeList.lis"; + cnet11File = "data/cnetedit/cnet_11pts.pvl"; + defFile = tempDir.path() + "/defFile.def"; + + std::ifstream label1Strm("data/cnetedit/PSP_002733_1880_RED4.crop.pvl"); + std::ifstream label2Strm("data/cnetedit/PSP_002733_1880_RED5.crop.pvl"); + + Pvl label1; + Pvl label2; + + label1Strm >> label1; + label2Strm >> label2; + + Cube cube1; + Cube cube2; + + cube1.fromLabel(tempDir.path() + "/PSP_002733_1880_RED4.crop.cub", + label1, "rw"); + cube2.fromLabel(tempDir.path() + "/PSP_002733_1880_RED5.crop.cub", + label2, "rw"); + + LineManager line(cube1); + LineManager line2(cube2); + + for(line.begin(); !line.end(); line++) { + for(int i = 0; i < line.size(); i++) { + line[i] = (double)(i+1); + } + cube1.write(line); + } + for(line2.begin(); !line2.end(); line2++) { + for(int i = 0; i < line2.size(); i++) { + line2[i] = (double)(i+1); + } + cube2.write(line2); + } + cube1.reopen("rw"); + cube2.reopen("rw"); + + // set up cube list for checkValid tests + FileList chkValidCubeList; + chkValidCubeList.append(cube1.fileName()); + chkValidCubeList.append(cube2.fileName()); + chkValidCubeList.write(chkValidCubeListFile); + + // set up pvl def file + PvlGroup validMeasureGroup("ValidMeasure"); + validMeasureGroup.addKeyword(PvlKeyword("MinDN", "-1000000")); + validMeasureGroup.addKeyword(PvlKeyword("MaxDN", "1000000")); + validMeasureGroup.addKeyword(PvlKeyword("MinEmission", "0")); + validMeasureGroup.addKeyword(PvlKeyword("MaxEmission", "135")); + validMeasureGroup.addKeyword(PvlKeyword("MinIncidence", "0")); + validMeasureGroup.addKeyword(PvlKeyword("MaxIncidence", "135")); + validMeasureGroup.addKeyword(PvlKeyword("MinResolution", "0")); + validMeasureGroup.addKeyword(PvlKeyword("MaxResolution", "1000")); + validMeasureGroup.addKeyword(PvlKeyword("PixelsFromEdge", "5")); + validMeasureGroup.addKeyword(PvlKeyword("SampleResidual", "5")); + validMeasureGroup.addKeyword(PvlKeyword("LineResidual", "5")); + validMeasureGroup.addKeyword(PvlKeyword("SampleShift", "3")); + validMeasureGroup.addKeyword(PvlKeyword("LineShift", "5")); + Pvl p; + p.addGroup(validMeasureGroup); + p.write(defFile); + } +}; + +class CneteditMeasureList : public TempTestingFiles { + protected: + QString cnet35File; + QString badMeasureListFile1; + QString badMeasureListFile2; + + void SetUp() override { + TempTestingFiles::SetUp(); + + cnet35File = "data/cnetedit/cnet_35pts.pvl"; + badMeasureListFile1 = tempDir.path() + "badMeasureList1.lis"; + badMeasureListFile2 = tempDir.path() + "badMeasureList2.lis"; + + // setup badMeasureLists with pvl label files + FileList badMeasureList1; + badMeasureList1.append("I24827003RDR_bndry_32,data/cnetedit/I10101002RDR.dstr.cub.label.pvl"); + badMeasureList1.append("I24827003RDR_bndry_32,data/cnetedit/I10413004RDR.dstr.cub.label.pvl"); + badMeasureList1.append("I24827003RDR_bndry_35,data/cnetedit/I07873009RDR.dstr.cub.label.pvl"); + badMeasureList1.append("I24827003RDR_bndry_35,data/cnetedit/I23604003RDR.dstr.cub.label.pvl"); + badMeasureList1.append("I24827003RDR_bndry_35,data/cnetedit/I24827003RDR.dstr.cub.label.pvl"); + badMeasureList1.append("I24827003RDR_bndry_36,data/cnetedit/I07873009RDR.dstr.cub.label.pvl"); + badMeasureList1.append("I24827003RDR_bndry_36,data/cnetedit/I24827003RDR.dstr.cub.label.pvl"); + badMeasureList1.append("I24827003RDR_bndry_50,data/cnetedit/I24827003RDR.dstr.cub.label.pvl"); + badMeasureList1.append("I24827003RDR_bndry_53,data/cnetedit/I24827003RDR.dstr.cub.label.pvl"); + badMeasureList1.append("I24827003RDR_bndry_56,data/cnetedit/I24827003RDR.dstr.cub.label.pvl"); + badMeasureList1.append("I24827003RDR_bndry_8,data/cnetedit/I07873009RDR.dstr.cub.label.pvl"); + badMeasureList1.write(badMeasureListFile1); + + FileList badMeasureList2(badMeasureList1); + badMeasureList2.append("I24827003RDR_bndry_11,data/cnetedit/I24827003RDR.dstr.cub.label.pvl"); + badMeasureList2.write(badMeasureListFile2); + } +}; + + +class Cnetedit : public TempTestingFiles { + protected: + QString cnet108File; + QString pointListFile; + QString cubeListFile; + QString measureListFile; + + void SetUp() override { + TempTestingFiles::SetUp(); + + cnet108File = "data/cnetedit/cnet_108pts.pvl"; + pointListFile = tempDir.path() + "/pointList.lis"; + cubeListFile = tempDir.path() + "/cubeList.lis"; + measureListFile = tempDir.path() + "measureList.lis"; + + // set up cube list + FileList cubeList; + cubeList.append("data/cnetedit/e0902065.cal.sub.cub"); + cubeList.write(cubeListFile); + + // set up measureList + FileList measureList; + measureList.append("new0001,data/cnetedit/e0902065.cal.sub.cub"); + measureList.write(measureListFile); + + // set up point list + FileList pointList; + pointList.append("new0007"); + pointList.append("new0050"); + pointList.append("new0001"); + pointList.append("new0036"); + pointList.append("new0020"); + pointList.append("new0008"); + pointList.write(pointListFile); + } +}; + + +/** + * FunctionalTestCneteditCheckValid + * + * Cnetedit test of check valid functionality. + * Input ... + * 1) ControlNet with 11 points (data/cnetedit/cnet_11pts.pvl) + * 2) two image cube list file (data/cnetedit/PSP_002733_1880_RED4.crop.cub; + * data/cnetedit/PSP_002733_1880_RED5.crop.cub) + * 3) def file + * 4) CHECKVALID = yes + * 5) RETAIN_REFERENCE=yes + * + * Output ... + * 1) edited ControlNet + * 2) Pvl log file. + */ +TEST_F(CneteditCheckValid, FunctionalTestCneteditCheckValid) { + QTemporaryDir tempDir; + + QVector args = {"cnet=" + cnet11File, + "log=" + tempDir.path() + "/log.txt", + "checkvalid=yes", + "fromlist=" + chkValidCubeListFile, + "retain_reference=yes", + "deffile=" + defFile, + "onet=" + tempDir.path() + "/out.net" + }; + + UserInterface ui(APP_XML, args); + + Pvl cneteditLog; + + try { + cneteditLog = cnetedit(ui); + } + catch(IException &e) { + FAIL() << e.toString().toStdString().c_str() << std::endl; + } + + // read back log file + Pvl log; + try { + log.read(tempDir.path()+ "/log.txt"); + } + catch (IException &e) { + FAIL() << "Unable to open log file: " << e.what() << std::endl; + } + + // check number of deleted points and measures + EXPECT_EQ((int)log.findKeyword("PointsDeleted"), 4); + EXPECT_EQ((int)log.findKeyword("MeasuresDeleted"), 8); + + // no edit locked points or measures + EXPECT_EQ(log.findObject("EditLocked").findObject("Points").keywords(), 0); + EXPECT_EQ(log.findObject("EditLocked").findObject("Measures").keywords(), 0); + + // check retained references + PvlObject retainedRefs = log.findObject("RetainedReferences"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, retainedRefs.findKeyword("pointregTest0001"), + "Validity Check failed: Sample Residual is greater than" + " tolerance 5"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, retainedRefs.findKeyword("pointregTest0007"), + "Validity Check failed: Sample Residual is greater than" + " tolerance 5"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, retainedRefs.findKeyword("pointregTest0008"), + "Validity Check failed: Pixels From Edge is less than" + " tolerance 5"); + + // check deleted points + PvlObject deletedPoints = log.findObject("Deleted").findObject("Points"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, deletedPoints.findKeyword("pointregTest0002"), + "Ignored from input"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, deletedPoints.findKeyword("pointregTest0003"), + "Too few measures"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, deletedPoints.findKeyword("pointregTest0004"), + "Ignored from input"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, deletedPoints.findKeyword("pointregTest0011"), + "Too few measures"); + + // check deleted measures + PvlObject deletedMeasures = log.findObject("Deleted").findObject("Measures"); + PvlGroup pointregTest0002 = deletedMeasures.findGroup("pointregTest0002"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, pointregTest0002. + findKeyword("MRO/HIRISE/856864216:41044/RED4/2"), + "Point deleted"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, pointregTest0002. + findKeyword("MRO/HIRISE/856864216:41044/RED5/2"), + "Point deleted"); + PvlGroup pointregTest0003 = deletedMeasures.findGroup("pointregTest0003"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, pointregTest0003. + findKeyword("MRO/HIRISE/856864216:41044/RED5/2"), + "Validity Check failed: Pixels From Edge is less than" + " tolerance 5 Line Residual is greater than tolerance 5"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, pointregTest0003. + findKeyword("MRO/HIRISE/856864216:41044/RED4/2"), + "Point deleted"); + PvlGroup pointregTest0004 = deletedMeasures.findGroup("pointregTest0004"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, pointregTest0004. + findKeyword("MRO/HIRISE/856864216:41044/RED4/2"), + "Point deleted"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, pointregTest0004. + findKeyword("MRO/HIRISE/856864216:41044/RED5/2"), + "Point deleted"); + PvlGroup pointregTest0011 = deletedMeasures.findGroup("pointregTest0011"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, pointregTest0011. + findKeyword("MRO/HIRISE/856864216:41044/RED5/2"), + "Validity Check failed: Pixels From Edge is less than" + " tolerance 5"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, pointregTest0011. + findKeyword("MRO/HIRISE/856864216:41044/RED4/2"), + "Point deleted"); + + // check output ControlNetwork + ControlNet outNet(tempDir.path() + "/out.net"); + EXPECT_EQ(outNet.GetNumPoints(), 7); + EXPECT_EQ(outNet.GetNumValidPoints(), 7); + EXPECT_EQ(outNet.GetNumEditLockPoints(), 0); + EXPECT_EQ(outNet.GetNumMeasures(), 14); + EXPECT_EQ(outNet.GetNumIgnoredMeasures(), 0); + EXPECT_EQ(outNet.GetNumEditLockMeasures(), 0); +} + + +/** + * FunctionalTestCneteditCheckValidIgnoreAll + * + * Cnetedit test of check valid functionality with IGNOREALL=YES. + * Input ... + * 1) ControlNet with 11 points (data/cnetedit/cnet_11pts.pvl) + * 2) two image cube list file (data/cnetedit/PSP_002733_1880_RED4.crop.cub; + * data/cnetedit/PSP_002733_1880_RED5.crop.cub) + * 3) def file + * 4) CHECKVALID = yes + * 5) IGNOREALL=yes + * + * Output ... + * 1) edited ControlNet + * 2) Pvl log file. + */ +TEST_F(CneteditCheckValid, FunctionalTestCneteditCheckValidIgnoreAll) { + QTemporaryDir tempDir; + + QVector args = {"cnet=" + cnet11File, + "log=" + tempDir.path() + "/log.txt", + "checkvalid=yes", + "ignoreall=yes", + "fromlist=" + chkValidCubeListFile, + "deffile=" + defFile, + "onet=" + tempDir.path() + "/out.net" + }; + + UserInterface ui(APP_XML, args); + + Pvl cneteditLog; + + try { + cneteditLog = cnetedit(ui); + } + catch(IException &e) { + FAIL() << e.toString().toStdString().c_str() << std::endl; + } + + // read back log file + Pvl log; + try { + log.read(tempDir.path()+ "/log.txt"); + } + catch (IException &e) { + FAIL() << "Unable to open log file: " << e.what() << std::endl; + } + + // check number of deleted points and measures + EXPECT_EQ((int)log.findKeyword("PointsDeleted"), 7); + EXPECT_EQ((int)log.findKeyword("MeasuresDeleted"), 14); + + // no edit locked points or measures + EXPECT_EQ(log.findObject("EditLocked").findObject("Points").keywords(), 0); + EXPECT_EQ(log.findObject("EditLocked").findObject("Measures").keywords(), 0); + + // no retained references + EXPECT_EQ(log.findObject("RetainedReferences").keywords(), 0); + + // check deleted points + PvlObject deletedPoints = log.findObject("Deleted").findObject("Points"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, deletedPoints.findKeyword("pointregTest0001"), + "Reference measure ignored"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, deletedPoints.findKeyword("pointregTest0002"), + "Ignored from input"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, deletedPoints.findKeyword("pointregTest0003"), + "Too few measures"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, deletedPoints.findKeyword("pointregTest0004"), + "Ignored from input"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, deletedPoints.findKeyword("pointregTest0007"), + "Reference measure ignored"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, deletedPoints.findKeyword("pointregTest0008"), + "Reference measure ignored"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, deletedPoints.findKeyword("pointregTest0011"), + "Too few measures"); + + // check deleted measures + PvlObject deletedMeasures = log.findObject("Deleted").findObject("Measures"); + PvlGroup pointregTest0001 = deletedMeasures.findGroup("pointregTest0001"); + + EXPECT_PRED_FORMAT2(AssertQStringsEqual, pointregTest0001. + findKeyword("MRO/HIRISE/856864216:41044/RED4/2"), + "Validity Check failed: Sample Residual is greater than " + "tolerance 5"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, pointregTest0001. + findKeyword("MRO/HIRISE/856864216:41044/RED5/2"), + "Reference ignored"); + PvlGroup pointregTest0002 = deletedMeasures.findGroup("pointregTest0002"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, pointregTest0002. + findKeyword("MRO/HIRISE/856864216:41044/RED4/2"), + "Point deleted"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, pointregTest0002. + findKeyword("MRO/HIRISE/856864216:41044/RED5/2"), + "Reference ignored"); + PvlGroup pointregTest0003 = deletedMeasures.findGroup("pointregTest0003"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, pointregTest0003. + findKeyword("MRO/HIRISE/856864216:41044/RED5/2"), + "Validity Check failed: Pixels From Edge is less than" + " tolerance 5 Line Residual is greater than tolerance 5"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, pointregTest0003. + findKeyword("MRO/HIRISE/856864216:41044/RED4/2"), + "Point deleted"); + PvlGroup pointregTest0004 = deletedMeasures.findGroup("pointregTest0004"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, pointregTest0004. + findKeyword("MRO/HIRISE/856864216:41044/RED4/2"), + "Point deleted"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, pointregTest0004. + findKeyword("MRO/HIRISE/856864216:41044/RED5/2"), + "Reference ignored"); + PvlGroup pointregTest0007 = deletedMeasures.findGroup("pointregTest0007"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, pointregTest0007. + findKeyword("MRO/HIRISE/856864216:41044/RED4/2"), + "Validity Check failed: Sample Residual is greater than " + "tolerance 5"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, pointregTest0007. + findKeyword("MRO/HIRISE/856864216:41044/RED5/2"), + "Reference ignored"); + PvlGroup pointregTest0008 = deletedMeasures.findGroup("pointregTest0008"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, pointregTest0008. + findKeyword("MRO/HIRISE/856864216:41044/RED4/2"), + "Validity Check failed: Pixels From Edge is less than " + "tolerance 5"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, pointregTest0008. + findKeyword("MRO/HIRISE/856864216:41044/RED5/2"), + "Reference ignored"); + PvlGroup pointregTest0011 = deletedMeasures.findGroup("pointregTest0011"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, pointregTest0011. + findKeyword("MRO/HIRISE/856864216:41044/RED5/2"), + "Validity Check failed: Pixels From Edge is less than" + " tolerance 5"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, pointregTest0011. + findKeyword("MRO/HIRISE/856864216:41044/RED4/2"), + "Point deleted"); + + // check output ControlNetwork + ControlNet outNet(tempDir.path() + "/out.net"); + EXPECT_EQ(outNet.GetNumPoints(), 4); + EXPECT_EQ(outNet.GetNumValidPoints(), 4); + EXPECT_EQ(outNet.GetNumEditLockPoints(), 0); + EXPECT_EQ(outNet.GetNumMeasures(), 8); + EXPECT_EQ(outNet.GetNumIgnoredMeasures(), 0); + EXPECT_EQ(outNet.GetNumEditLockMeasures(), 0); +} + + +/** + * CneteditDefault + * + * Input ... + * 1) ControlNet with 108 points (data/cnetedit/cnet_108pts.pvl) + * + * Output ... + * 1) edited ControlNet + * 2) Pvl log file. + */ +TEST_F(Cnetedit, FunctionalTestCneteditDefault) { + QTemporaryDir tempDir; + + QVector args = {"cnet=" + cnet108File, + "log=" + tempDir.path() + "/log.txt", + "onet=" + tempDir.path() + "/out.net" + }; + + UserInterface ui(APP_XML, args); + + Pvl cneteditLog; + + try { + cneteditLog = cnetedit(ui); + } + catch(IException &e) { + FAIL() << e.toString().toStdString().c_str() << std::endl; + } + + // read back log file + Pvl log; + try { + log.read(tempDir.path()+ "/log.txt"); + } + catch (IException &e) { + FAIL() << "Unable to open log file: " << e.what() << std::endl; + } + + // check number of deleted points and measures + EXPECT_EQ((int)log.findKeyword("PointsDeleted"), 8); + EXPECT_EQ((int)log.findKeyword("MeasuresDeleted"), 21); + + // no edit locked points or measures + EXPECT_EQ(log.findObject("EditLocked").findObject("Points").keywords(), 0); + EXPECT_EQ(log.findObject("EditLocked").findObject("Measures").keywords(), 0); + + // no retained references + EXPECT_EQ(log.findObject("RetainedReferences").keywords(), 0); + + // check deleted points + PvlObject deletedPoints = log.findObject("Deleted").findObject("Points"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, deletedPoints.findKeyword("new0031"), + "Ignored from input"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, deletedPoints.findKeyword("new0032"), + "Ignored from input"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, deletedPoints.findKeyword("new0038"), + "Too few measures"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, deletedPoints.findKeyword("new0039"), + "Too few measures"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, deletedPoints.findKeyword("new0064"), + "Ignored from input"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, deletedPoints.findKeyword("new0065"), + "Ignored from input"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, deletedPoints.findKeyword("new0067"), + "Too few measures"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, deletedPoints.findKeyword("new0068"), + "Ignored from input"); + + // check deleted measures + PvlObject deletedMeasures = log.findObject("Deleted").findObject("Measures"); + PvlGroup new0031 = deletedMeasures.findGroup("new0031"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, new0031. + findKeyword("MGS/691204200:96/MOC-WA/RED"), + "Point deleted"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, new0031. + findKeyword("MGS/718369703:160/MOC-WA/RED"), + "Point deleted"); + PvlGroup new0032 = deletedMeasures.findGroup("new0032"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, new0032. + findKeyword("MGS/691204200:96/MOC-WA/RED"), + "Point deleted"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, new0032. + findKeyword("MGS/718369703:160/MOC-WA/RED"), + "Point deleted"); + PvlGroup new0038 = deletedMeasures.findGroup("new0038"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, new0038. + findKeyword("MGS/691204200:96/MOC-WA/RED"), + "Ignored from input"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, new0038. + findKeyword("MGS/718369703:160/MOC-WA/RED"), + "Point deleted"); + PvlGroup new0039 = deletedMeasures.findGroup("new0039"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, new0039. + findKeyword("MGS/691204200:96/MOC-WA/RED"), + "Ignored from input"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, new0039. + findKeyword("MGS/718369703:160/MOC-WA/RED"), + "Ignored from input"); + PvlGroup new0064 = deletedMeasures.findGroup("new0064"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, new0064. + findKeyword("MGS/718369703:160/MOC-WA/RED"), + "Point deleted"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, new0064. + findKeyword("MGS/688540926:0/MOC-WA/RED"), + "Point deleted"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, new0064. + findKeyword("MGS/691204200:96/MOC-WA/RED"), + "Point deleted"); + PvlGroup new0065 = deletedMeasures.findGroup("new0065"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, new0065. + findKeyword("MGS/718369703:160/MOC-WA/RED"), + "Ignored from input"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, new0065. + findKeyword("MGS/688540926:0/MOC-WA/RED"), + "Point deleted"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, new0065. + findKeyword("MGS/691204200:96/MOC-WA/RED"), + "Point deleted"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, deletedMeasures.findGroup("new0066"). + findKeyword("MGS/718369703:160/MOC-WA/RED"), + "Ignored from input"); + PvlGroup new0067 = deletedMeasures.findGroup("new0067"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, new0067. + findKeyword("MGS/718369703:160/MOC-WA/RED"), + "Ignored from input"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, new0067. + findKeyword("MGS/688540926:0/MOC-WA/RED"), + "Ignored from input"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, new0067. + findKeyword("MGS/691204200:96/MOC-WA/RED"), + "Point deleted"); + PvlGroup new0068 = deletedMeasures.findGroup("new0068"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, new0068. + findKeyword("MGS/718369703:160/MOC-WA/RED"), + "Ignored from input"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, new0068. + findKeyword("MGS/688540926:0/MOC-WA/RED"), + "Ignored from input"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, new0068. + findKeyword("MGS/691204200:96/MOC-WA/RED"), + "Ignored from input"); + + // check output ControlNetwork + ControlNet outNet(tempDir.path() + "/out.net"); + EXPECT_EQ(outNet.GetNumPoints(), 100); + EXPECT_EQ(outNet.GetNumValidPoints(), 100); + EXPECT_EQ(outNet.GetNumEditLockPoints(), 0); + EXPECT_EQ(outNet.GetNumMeasures(), 240); + EXPECT_EQ(outNet.GetNumIgnoredMeasures(), 0); + EXPECT_EQ(outNet.GetNumEditLockMeasures(), 0); +} + + +/** + * CneteditEditlock + * + * Cnetedit test of edit lock functionality. + * Input ... + * 1) ControlNet with 108 points (data/cnetedit/cnet_108pts.pvl) + * 2) one image cube list file (data/cnetedit/e0902065.cal.sub.cub) + * 3) points list file + * 4) ignore=no + * 5) delete=no + * 6) lock=yes + * + * Output ... + * 1) edited ControlNet + * 2) Pvl log file. + */ +TEST_F(Cnetedit, FunctionalTestCneteditEditlock) { + QTemporaryDir tempDir; + + QVector args = {"cnet=" + cnet108File, + "log=" + tempDir.path() + "/log.txt", + "cubelist=" + cubeListFile, + "pointlist=" + pointListFile, + "ignore=no", + "delete=no", + "lock=yes", + "onet=" + tempDir.path() + "/out.net" + }; + + UserInterface ui(APP_XML, args); + + Pvl cneteditLog; + + try { + cneteditLog = cnetedit(ui); + } + catch(IException &e) { + FAIL() << e.toString().toStdString().c_str() << std::endl; + } + + // read back log file + Pvl log; + try { + log.read(tempDir.path()+ "/log.txt"); + } + catch (IException &e) { + FAIL() << "Unable to open log file: " << e.what() << std::endl; + } + + // check number of deleted points and measures + EXPECT_EQ((int)log.findKeyword("PointsDeleted"), 0); + EXPECT_EQ((int)log.findKeyword("MeasuresDeleted"), 0); + + // no edit locked points or measures + EXPECT_EQ(log.findObject("EditLocked").findObject("Points").keywords(), 0); + EXPECT_EQ(log.findObject("EditLocked").findObject("Measures").groups(), 0); + + // no retained references + EXPECT_EQ(log.findObject("RetainedReferences").keywords(), 0); + + // check deleted points + PvlObject ignoredPoints = log.findObject("Ignored").findObject("Points"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, ignoredPoints.findKeyword("new0031"), + "Ignored from input"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, ignoredPoints.findKeyword("new0032"), + "Ignored from input"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, ignoredPoints.findKeyword("new0064"), + "Ignored from input"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, ignoredPoints.findKeyword("new0065"), + "Ignored from input"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, ignoredPoints.findKeyword("new0068"), + "Ignored from input"); + + // check ignored measures + PvlObject ignoredMeasures = log.findObject("Ignored").findObject("Measures"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, ignoredMeasures.findGroup("new0038"). + findKeyword("MGS/691204200:96/MOC-WA/RED"), + "Ignored from input"); + PvlGroup new0039 = ignoredMeasures.findGroup("new0039"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, new0039. + findKeyword("MGS/691204200:96/MOC-WA/RED"), + "Ignored from input"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, new0039. + findKeyword("MGS/718369703:160/MOC-WA/RED"), + "Ignored from input"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, ignoredMeasures.findGroup("new0065"). + findKeyword("MGS/718369703:160/MOC-WA/RED"), + "Ignored from input"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, ignoredMeasures.findGroup("new0066"). + findKeyword("MGS/718369703:160/MOC-WA/RED"), + "Ignored from input"); + PvlGroup new0067 = ignoredMeasures.findGroup("new0067"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, new0067. + findKeyword("MGS/718369703:160/MOC-WA/RED"), + "Ignored from input"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, new0067. + findKeyword("MGS/688540926:0/MOC-WA/RED"), + "Ignored from input"); + PvlGroup new0068 = ignoredMeasures.findGroup("new0068"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, new0068. + findKeyword("MGS/718369703:160/MOC-WA/RED"), + "Ignored from input"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, new0068. + findKeyword("MGS/688540926:0/MOC-WA/RED"), + "Ignored from input"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, new0068. + findKeyword("MGS/691204200:96/MOC-WA/RED"), + "Ignored from input"); + + // check output ControlNetwork + ControlNet outNet(tempDir.path() + "/out.net"); + EXPECT_EQ(outNet.GetNumPoints(), 108); + EXPECT_EQ(outNet.GetNumValidPoints(), 103); + EXPECT_EQ(outNet.GetNumEditLockPoints(), 6); //should be 6 + EXPECT_EQ(outNet.GetNumMeasures(), 261); + EXPECT_EQ(outNet.GetNumIgnoredMeasures(), 10); + EXPECT_EQ(outNet.GetNumEditLockMeasures(), 52); +} + + +/** + * CneteditEditUnlock + * + * Cnetedit test of edit lock functionality with unlock=yes. + * Input ... + * 1) ControlNet with 108 points (data/cnetedit/cnet_108pts.pvl) + * 2) one image cube list file (data/cnetedit/e0902065.cal.sub.cub) + * 3) points list file + * 4) ignore=no + * 5) delete=no + * 6) unlock=yes + * + * Output ... + * 1) edited ControlNet + * 2) Pvl log file. + */ +TEST_F(Cnetedit, FunctionalTestCneteditEditUnlock) { + QTemporaryDir tempDir; + + QVector args = {"cnet=" + cnet108File, + "log=" + tempDir.path() + "/log.txt", + "cubelist=" + cubeListFile, + "pointlist=" + pointListFile, + "ignore=no", + "delete=no", + "unlock=yes", + "onet=" + tempDir.path() + "/out.net" + }; + + UserInterface ui(APP_XML, args); + + Pvl cneteditLog; + + try { + cneteditLog = cnetedit(ui); + } + catch(IException &e) { + FAIL() << e.toString().toStdString().c_str() << std::endl; + } + + // read back log file + Pvl log; + try { + log.read(tempDir.path()+ "/log.txt"); + } + catch (IException &e) { + FAIL() << "Unable to open log file: " << e.what() << std::endl; + } + + // check number of deleted points and measures + EXPECT_EQ((int)log.findKeyword("PointsDeleted"), 0); + EXPECT_EQ((int)log.findKeyword("MeasuresDeleted"), 0); + + // no edit locked points or measures + EXPECT_EQ(log.findObject("EditLocked").findObject("Points").keywords(), 0); + EXPECT_EQ(log.findObject("EditLocked").findObject("Measures").keywords(), 0); + + // no retained references + EXPECT_EQ(log.findObject("RetainedReferences").keywords(), 0); + + // check deleted points + PvlObject ignoredPoints = log.findObject("Ignored").findObject("Points"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, ignoredPoints.findKeyword("new0031"), + "Ignored from input"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, ignoredPoints.findKeyword("new0032"), + "Ignored from input"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, ignoredPoints.findKeyword("new0064"), + "Ignored from input"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, ignoredPoints.findKeyword("new0065"), + "Ignored from input"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, ignoredPoints.findKeyword("new0068"), + "Ignored from input"); + + // check ignored measures + PvlObject ignoredMeasures = log.findObject("Ignored").findObject("Measures"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, ignoredMeasures.findGroup("new0038"). + findKeyword("MGS/691204200:96/MOC-WA/RED"), + "Ignored from input"); + PvlGroup new0039 = ignoredMeasures.findGroup("new0039"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, new0039. + findKeyword("MGS/691204200:96/MOC-WA/RED"), + "Ignored from input"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, new0039. + findKeyword("MGS/718369703:160/MOC-WA/RED"), + "Ignored from input"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, ignoredMeasures.findGroup("new0065"). + findKeyword("MGS/718369703:160/MOC-WA/RED"), + "Ignored from input"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, ignoredMeasures.findGroup("new0066"). + findKeyword("MGS/718369703:160/MOC-WA/RED"), + "Ignored from input"); + PvlGroup new0067 = ignoredMeasures.findGroup("new0067"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, new0067. + findKeyword("MGS/718369703:160/MOC-WA/RED"), + "Ignored from input"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, new0067. + findKeyword("MGS/688540926:0/MOC-WA/RED"), + "Ignored from input"); + PvlGroup new0068 = ignoredMeasures.findGroup("new0068"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, new0068. + findKeyword("MGS/718369703:160/MOC-WA/RED"), + "Ignored from input"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, new0068. + findKeyword("MGS/688540926:0/MOC-WA/RED"), + "Ignored from input"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, new0068. + findKeyword("MGS/691204200:96/MOC-WA/RED"), + "Ignored from input"); + + // check output ControlNetwork + ControlNet outNet(tempDir.path() + "/out.net"); + EXPECT_EQ(outNet.GetNumPoints(), 108); + EXPECT_EQ(outNet.GetNumValidPoints(), 103); + EXPECT_EQ(outNet.GetNumEditLockPoints(), 0); + EXPECT_EQ(outNet.GetNumMeasures(), 261); + EXPECT_EQ(outNet.GetNumIgnoredMeasures(), 10); + EXPECT_EQ(outNet.GetNumEditLockMeasures(), 0); +} + + +/** + * CneteditError + * + * Cnetedit test given a nonexistant input ControlNet. + */ +TEST_F(Cnetedit, FunctionalTestCneteditError) { + + QVector args = {"cnet=cnet.net", + "onet=cnet.net", + }; + + UserInterface ui(APP_XML, args); + + Pvl log; + + try { + log = cnetedit(ui); + FAIL() << "Expected Exception for an invalid control network"; + } + catch(IException &e) { + EXPECT_TRUE(e.toString().toLatin1().contains("Invalid control network")) + << e.toString().toStdString(); + } +} + + +/** + * CneteditIgnore + * + * Cnetedit test with IGNOREALL=YES + * Input ... + * 1) ControlNet with 108 points (data/cnetedit/cnet_108pts.pvl) + * 2) one image cube list file (data/cnetedit/e0902065.cal.sub.cub) + * 3) measure list file (new0001,data/cnetedit/e0902065.cal.sub.cub) + * 4) delete=no + * 5) ignoreall=yes + * + * Output ... + * 1) edited ControlNet + * 2) Pvl log file. + */ +TEST_F(Cnetedit, CneteditIgnore) { + QTemporaryDir tempDir; + + QVector args = {"cnet=" + cnet108File, + "cubelist=" + cubeListFile, + "measurelist=" + measureListFile, + "onet=" + tempDir.path() + "/out.net", +// "onet=/Users/kledmundson/ISISDev/cnetedit/Oct242023cne/ISIS3/isis/tests/data/cnetedit/ignore/truth/gtestCnet1.net", + "delete=no", + "ignoreall=yes", + "log=" + tempDir.path() + "/log.txt" +// "log=/Users/kledmundson/ISISDev/cnetedit/Oct242023cne/ISIS3/isis/tests/data/cnetedit/ignore/truth/gtestLog1.txt", + }; + + UserInterface ui(APP_XML, args); + + Pvl cneteditlog; + + try { + cneteditlog = cnetedit(ui); + } + catch(IException &e) { + FAIL() << e.toString().toStdString().c_str() << std::endl; + } + + // read back log file + Pvl log; + try { + log.read(tempDir.path()+ "/log.txt"); + } + catch (IException &e) { + FAIL() << "Unable to open log file: " << e.what() << std::endl; + } + + // check number of deleted points and measures + EXPECT_EQ((int)log.findKeyword("PointsDeleted"), 0); + EXPECT_EQ((int)log.findKeyword("MeasuresDeleted"), 0); + + // no edit locked points or measures + EXPECT_EQ(log.findObject("EditLocked").findObject("Points").keywords(), 0); + EXPECT_EQ(log.findObject("EditLocked").findObject("Measures").keywords(), 0); + + // no retained references + EXPECT_EQ(log.findObject("RetainedReferences").keywords(), 0); + + // check ignored points + PvlObject ignoredPoints = log.findObject("Ignored").findObject("Points"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, ignoredPoints.findKeyword("new0001"), + "Reference measure ignored"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, ignoredPoints.findKeyword("new0002"), + "Reference measure ignored"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, ignoredPoints.findKeyword("new0031"), + "Ignored from input"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, ignoredPoints.findKeyword("new0032"), + "Ignored from input"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, ignoredPoints.findKeyword("new0038"), + "Reference measure ignored"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, ignoredPoints.findKeyword("new0039"), + "Reference measure ignored"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, ignoredPoints.findKeyword("new0064"), + "Ignored from input"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, ignoredPoints.findKeyword("new0065"), + "Ignored from input"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, ignoredPoints.findKeyword("new0067"), + "Reference measure ignored"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, ignoredPoints.findKeyword("new0068"), + "Ignored from input"); + + // check ignored measures + PvlObject ignoredMeasures = log.findObject("Ignored").findObject("Measures"); + PvlGroup new0001 = ignoredMeasures.findGroup("new0001"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, + new0001.findKeyword("MGS/688540926:0/MOC-WA/RED"), + "Serial Number in CUBELIST"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, + new0001.findKeyword("MGS/691204200:96/MOC-WA/RED"), + "Reference ignored"); + + new0001.deleteKeyword("MGS/688540926:0/MOC-WA/RED"); + + EXPECT_PRED_FORMAT2(AssertQStringsEqual, + new0001.findKeyword("MGS/688540926:0/MOC-WA/RED"), + "Measure in MEASURELIST"); + + PvlGroup new0002 = ignoredMeasures.findGroup("new0002"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, + new0002.findKeyword("MGS/688540926:0/MOC-WA/RED"), + "Serial Number in CUBELIST"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, + new0002.findKeyword("MGS/691204200:96/MOC-WA/RED"), + "Reference ignored"); + PvlGroup new0038 = ignoredMeasures.findGroup("new0038"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, + new0038.findKeyword("MGS/691204200:96/MOC-WA/RED"), + "Ignored from input"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, + new0038.findKeyword("MGS/718369703:160/MOC-WA/RED"), + "Reference ignored"); + + new0038.deleteKeyword("MGS/718369703:160/MOC-WA/RED"); + + EXPECT_PRED_FORMAT2(AssertQStringsEqual, + new0038.findKeyword("MGS/718369703:160/MOC-WA/RED"), + "Ignored from input"); + + PvlGroup new0039 = ignoredMeasures.findGroup("new0039"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, + new0039.findKeyword("MGS/691204200:96/MOC-WA/RED"), + "Ignored from input"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, + new0039.findKeyword("MGS/718369703:160/MOC-WA/RED"), + "Ignored from input"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, ignoredMeasures.findGroup("new0064"). + findKeyword("MGS/688540926:0/MOC-WA/RED"), + "Serial Number in CUBELIST"); + PvlGroup new0065 = ignoredMeasures.findGroup("new0065"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, + new0065.findKeyword("MGS/718369703:160/MOC-WA/RED"), + "Ignored from input"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, + new0065.findKeyword("MGS/688540926:0/MOC-WA/RED"), + "Reference ignored"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, + new0065.findKeyword("MGS/691204200:96/MOC-WA/RED"), + "Reference ignored"); + + new0065.deleteKeyword("MGS/688540926:0/MOC-WA/RED"); + new0065.deleteKeyword("MGS/691204200:96/MOC-WA/RED"); + + EXPECT_PRED_FORMAT2(AssertQStringsEqual, + new0065.findKeyword("MGS/688540926:0/MOC-WA/RED"), + "Ignored from input"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, + new0065.findKeyword("MGS/691204200:96/MOC-WA/RED"), + "Ignored from input"); + + PvlGroup new0066 = ignoredMeasures.findGroup("new0066"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, + new0066.findKeyword("MGS/718369703:160/MOC-WA/RED"), + "Ignored from input"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, + new0066.findKeyword("MGS/688540926:0/MOC-WA/RED"), + "Reference ignored"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, + new0066.findKeyword("MGS/691204200:96/MOC-WA/RED"), + "Reference ignored"); + + new0066.deleteKeyword("MGS/688540926:0/MOC-WA/RED"); + new0066.deleteKeyword("MGS/691204200:96/MOC-WA/RED"); + + EXPECT_PRED_FORMAT2(AssertQStringsEqual, + new0066.findKeyword("MGS/688540926:0/MOC-WA/RED"), + "Ignored from input"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, + new0066.findKeyword("MGS/691204200:96/MOC-WA/RED"), + "Ignored from input"); + + PvlGroup new0067 = ignoredMeasures.findGroup("new0067"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, + new0067.findKeyword("MGS/718369703:160/MOC-WA/RED"), + "Ignored from input"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, + new0067.findKeyword("MGS/691204200:96/MOC-WA/RED"), + "Reference ignored"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, + new0067.findKeyword("MGS/688540926:0/MOC-WA/RED"), + "Ignored from input"); + + new0067.deleteKeyword("MGS/691204200:96/MOC-WA/RED"); + + EXPECT_PRED_FORMAT2(AssertQStringsEqual, + new0067.findKeyword("MGS/691204200:96/MOC-WA/RED"), + "Ignored from input"); + + PvlGroup new0068 = ignoredMeasures.findGroup("new0068"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, + new0068.findKeyword("MGS/718369703:160/MOC-WA/RED"), + "Ignored from input"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, + new0068.findKeyword("MGS/688540926:0/MOC-WA/RED"), + "Ignored from input"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, + new0068.findKeyword("MGS/691204200:96/MOC-WA/RED"), + "Ignored from input"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, ignoredMeasures.findGroup("new0069"). + findKeyword("MGS/688540926:0/MOC-WA/RED "), + "Serial Number in CUBELIST"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, ignoredMeasures.findGroup("new0070"). + findKeyword("MGS/688540926:0/MOC-WA/RED "), + "Serial Number in CUBELIST"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, ignoredMeasures.findGroup("new0071"). + findKeyword("MGS/688540926:0/MOC-WA/RED "), + "Serial Number in CUBELIST"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, ignoredMeasures.findGroup("new0072"). + findKeyword("MGS/688540926:0/MOC-WA/RED "), + "Serial Number in CUBELIST"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, ignoredMeasures.findGroup("new0073"). + findKeyword("MGS/688540926:0/MOC-WA/RED "), + "Serial Number in CUBELIST"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, ignoredMeasures.findGroup("new0074"). + findKeyword("MGS/688540926:0/MOC-WA/RED "), + "Serial Number in CUBELIST"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, ignoredMeasures.findGroup("new0075"). + findKeyword("MGS/688540926:0/MOC-WA/RED "), + "Serial Number in CUBELIST"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, ignoredMeasures.findGroup("new0076"). + findKeyword("MGS/688540926:0/MOC-WA/RED "), + "Serial Number in CUBELIST"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, ignoredMeasures.findGroup("new0077"). + findKeyword("MGS/688540926:0/MOC-WA/RED "), + "Serial Number in CUBELIST"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, ignoredMeasures.findGroup("new0078"). + findKeyword("MGS/688540926:0/MOC-WA/RED "), + "Serial Number in CUBELIST"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, ignoredMeasures.findGroup("new0079"). + findKeyword("MGS/688540926:0/MOC-WA/RED "), + "Serial Number in CUBELIST"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, ignoredMeasures.findGroup("new0080"). + findKeyword("MGS/688540926:0/MOC-WA/RED "), + "Serial Number in CUBELIST"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, ignoredMeasures.findGroup("new0081"). + findKeyword("MGS/688540926:0/MOC-WA/RED "), + "Serial Number in CUBELIST"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, ignoredMeasures.findGroup("new0082"). + findKeyword("MGS/688540926:0/MOC-WA/RED "), + "Serial Number in CUBELIST"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, ignoredMeasures.findGroup("new0083"). + findKeyword("MGS/688540926:0/MOC-WA/RED "), + "Serial Number in CUBELIST"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, ignoredMeasures.findGroup("new0084"). + findKeyword("MGS/688540926:0/MOC-WA/RED "), + "Serial Number in CUBELIST"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, ignoredMeasures.findGroup("new0085"). + findKeyword("MGS/688540926:0/MOC-WA/RED "), + "Serial Number in CUBELIST"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, ignoredMeasures.findGroup("new0086"). + findKeyword("MGS/688540926:0/MOC-WA/RED "), + "Serial Number in CUBELIST"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, ignoredMeasures.findGroup("new0087"). + findKeyword("MGS/688540926:0/MOC-WA/RED "), + "Serial Number in CUBELIST"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, ignoredMeasures.findGroup("new0088"). + findKeyword("MGS/688540926:0/MOC-WA/RED "), + "Serial Number in CUBELIST"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, ignoredMeasures.findGroup("new0089"). + findKeyword("MGS/688540926:0/MOC-WA/RED "), + "Serial Number in CUBELIST"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, ignoredMeasures.findGroup("new0090"). + findKeyword("MGS/688540926:0/MOC-WA/RED "), + "Serial Number in CUBELIST"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, ignoredMeasures.findGroup("new0091"). + findKeyword("MGS/688540926:0/MOC-WA/RED "), + "Serial Number in CUBELIST"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, ignoredMeasures.findGroup("new0092"). + findKeyword("MGS/688540926:0/MOC-WA/RED "), + "Serial Number in CUBELIST"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, ignoredMeasures.findGroup("new0093"). + findKeyword("MGS/688540926:0/MOC-WA/RED "), + "Serial Number in CUBELIST"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, ignoredMeasures.findGroup("new0094"). + findKeyword("MGS/688540926:0/MOC-WA/RED "), + "Serial Number in CUBELIST"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, ignoredMeasures.findGroup("new0095"). + findKeyword("MGS/688540926:0/MOC-WA/RED "), + "Serial Number in CUBELIST"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, ignoredMeasures.findGroup("new0096"). + findKeyword("MGS/688540926:0/MOC-WA/RED "), + "Serial Number in CUBELIST"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, ignoredMeasures.findGroup("new0097"). + findKeyword("MGS/688540926:0/MOC-WA/RED "), + "Serial Number in CUBELIST"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, ignoredMeasures.findGroup("new0098"). + findKeyword("MGS/688540926:0/MOC-WA/RED "), + "Serial Number in CUBELIST"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, ignoredMeasures.findGroup("new0099"). + findKeyword("MGS/688540926:0/MOC-WA/RED "), + "Serial Number in CUBELIST"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, ignoredMeasures.findGroup("new0100"). + findKeyword("MGS/688540926:0/MOC-WA/RED "), + "Serial Number in CUBELIST"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, ignoredMeasures.findGroup("new0101"). + findKeyword("MGS/688540926:0/MOC-WA/RED "), + "Serial Number in CUBELIST"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, ignoredMeasures.findGroup("new0102"). + findKeyword("MGS/688540926:0/MOC-WA/RED "), + "Serial Number in CUBELIST"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, ignoredMeasures.findGroup("new0103"). + findKeyword("MGS/688540926:0/MOC-WA/RED "), + "Serial Number in CUBELIST"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, ignoredMeasures.findGroup("new0104"). + findKeyword("MGS/688540926:0/MOC-WA/RED "), + "Serial Number in CUBELIST"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, ignoredMeasures.findGroup("new0105"). + findKeyword("MGS/688540926:0/MOC-WA/RED "), + "Serial Number in CUBELIST"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, ignoredMeasures.findGroup("new0106"). + findKeyword("MGS/688540926:0/MOC-WA/RED "), + "Serial Number in CUBELIST"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, ignoredMeasures.findGroup("new0107"). + findKeyword("MGS/688540926:0/MOC-WA/RED "), + "Serial Number in CUBELIST"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, ignoredMeasures.findGroup("new0108"). + findKeyword("MGS/688540926:0/MOC-WA/RED "), + "Serial Number in CUBELIST"); + + // check output ControlNetwork + ControlNet outNet(tempDir.path() + "/out.net"); + EXPECT_EQ(outNet.GetNumPoints(), 108); + EXPECT_EQ(outNet.GetNumValidPoints(), 97); + EXPECT_EQ(outNet.GetNumEditLockPoints(), 0); + EXPECT_EQ(outNet.GetNumMeasures(), 261); + EXPECT_EQ(outNet.GetNumIgnoredMeasures(), 61); + EXPECT_EQ(outNet.GetNumEditLockMeasures(), 0); +} + + +/** + * CneteditIgnoreMeasuresPoints + * + * Cnetedit test with ignore measures and points lists. + * Input ... + * 1) ControlNet with 108 points (data/cnetedit/cnet_108pts.pvl) + * 2) one image cube list file (data/cnetedit/e0902065.cal.sub.cub) + * 3) point list file + * + * Output ... + * 1) edited ControlNet + * 2) Pvl log file. + */ +TEST_F(Cnetedit, CneteditIgnoreMeasuresPoints) { + QTemporaryDir tempDir; + + QVector args = {"cnet=" + cnet108File, + "cubelist=" + cubeListFile, + "log=" + tempDir.path() + "/log.txt", + "pointlist=" + pointListFile, + "onet=" + tempDir.path() + "/out.net", + }; + + UserInterface ui(APP_XML, args); + + Pvl cneteditlog; + + try { + cneteditlog = cnetedit(ui); + } + catch(IException &e) { + FAIL() << e.toString().toStdString().c_str() << std::endl; + } + + // read back log file + Pvl log; + try { + log.read(tempDir.path()+ "/log.txt"); + } + catch (IException &e) { + FAIL() << "Unable to open log file: " << e.what() << std::endl; + } + + // check number of deleted points and measures + EXPECT_EQ((int)log.findKeyword("PointsDeleted"), 16); + EXPECT_EQ((int)log.findKeyword("MeasuresDeleted"), 77); + + // no edit locked points or measures + EXPECT_EQ(log.findObject("EditLocked").findObject("Points").keywords(), 0); + EXPECT_EQ(log.findObject("EditLocked").findObject("Measures").keywords(), 0); + + // no retained references + EXPECT_EQ(log.findObject("RetainedReferences").keywords(), 0); + + // check deleted points + PvlObject deletedPoints = log.findObject("Deleted").findObject("Points"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, deletedPoints.findKeyword("new0001"), + "Point ID in POINTLIST"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, deletedPoints.findKeyword("new0002"), + "Too few measures"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, deletedPoints.findKeyword("new0007"), + "Point ID in POINTLIST"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, deletedPoints.findKeyword("new0008"), + "Point ID in POINTLIST"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, deletedPoints.findKeyword("new0020"), + "Point ID in POINTLIST"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, deletedPoints.findKeyword("new0031"), + "Ignored from input"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, deletedPoints.findKeyword("new0032"), + "Ignored from input"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, deletedPoints.findKeyword("new0036"), + "Point ID in POINTLIST"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, deletedPoints.findKeyword("new0038"), + "Too few measures"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, deletedPoints.findKeyword("new0039"), + "Too few measures"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, deletedPoints.findKeyword("new0050"), + "Point ID in POINTLIST"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, deletedPoints.findKeyword("new0064"), + "Ignored from input"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, deletedPoints.findKeyword("new0065"), + "Ignored from input"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, deletedPoints.findKeyword("new0066"), + "Too few measures"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, deletedPoints.findKeyword("new0067"), + "Too few measures"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, deletedPoints.findKeyword("new0068"), + "Ignored from input"); + + // check deleted measures + PvlObject deletedMeasures = log.findObject("Deleted").findObject("Measures"); + PvlGroup new0001 = deletedMeasures.findGroup("new0001"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, + new0001.findKeyword("MGS/688540926:0/MOC-WA/RED"), + "Point deleted"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, + new0001.findKeyword("MGS/691204200:96/MOC-WA/RED"), + "Point deleted"); + PvlGroup new0002 = deletedMeasures.findGroup("new0002"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, + new0002.findKeyword("MGS/688540926:0/MOC-WA/RED"), + "Serial Number in CUBELIST"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, + new0002.findKeyword("MGS/691204200:96/MOC-WA/RED"), + "Point deleted"); + PvlGroup new0007 = deletedMeasures.findGroup("new0007"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, + new0007.findKeyword("MGS/691204200:96/MOC-WA/RED"), + "Point deleted"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, + new0007.findKeyword("MGS/718369703:160/MOC-WA/RED"), + "Point deleted"); + PvlGroup new0008 = deletedMeasures.findGroup("new0008"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, + new0008.findKeyword("MGS/691204200:96/MOC-WA/RED"), + "Point deleted"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, + new0008.findKeyword("MGS/718369703:160/MOC-WA/RED"), + "Point deleted"); + PvlGroup new0020 = deletedMeasures.findGroup("new0020"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, + new0020.findKeyword("MGS/691204200:96/MOC-WA/RED"), + "Point deleted"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, + new0020.findKeyword("MGS/718369703:160/MOC-WA/RED"), + "Point deleted"); + PvlGroup new0031 = deletedMeasures.findGroup("new0031"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, + new0031.findKeyword("MGS/691204200:96/MOC-WA/RED"), + "Point deleted"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, + new0031.findKeyword("MGS/718369703:160/MOC-WA/RED"), + "Point deleted"); + PvlGroup new0032 = deletedMeasures.findGroup("new0032"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, + new0032.findKeyword("MGS/691204200:96/MOC-WA/RED"), + "Point deleted"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, + new0032.findKeyword("MGS/718369703:160/MOC-WA/RED"), + "Point deleted"); + PvlGroup new0036 = deletedMeasures.findGroup("new0036"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, + new0036.findKeyword("MGS/691204200:96/MOC-WA/RED"), + "Point deleted"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, + new0036.findKeyword("MGS/718369703:160/MOC-WA/RED"), + "Point deleted"); + PvlGroup new0038 = deletedMeasures.findGroup("new0038"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, + new0038.findKeyword("MGS/691204200:96/MOC-WA/RED"), + "Ignored from input"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, + new0038.findKeyword("MGS/718369703:160/MOC-WA/RED"), + "Point deleted"); + PvlGroup new0039 = deletedMeasures.findGroup("new0039"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, + new0039.findKeyword("MGS/691204200:96/MOC-WA/RED"), + "Ignored from input"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, + new0039.findKeyword("MGS/718369703:160/MOC-WA/RED"), + "Ignored from input"); + PvlGroup new0050 = deletedMeasures.findGroup("new0050"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, + new0050.findKeyword("MGS/691204200:96/MOC-WA/RED"), + "Point deleted"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, + new0050.findKeyword("MGS/718369703:160/MOC-WA/RED"), + "Point deleted"); + PvlGroup new0064 = deletedMeasures.findGroup("new0064"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, + new0064.findKeyword("MGS/718369703:160/MOC-WA/RED"), + "Point deleted"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, + new0064.findKeyword("MGS/688540926:0/MOC-WA/RED"), + "Point deleted"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, + new0064.findKeyword("MGS/691204200:96/MOC-WA/RED"), + "Point deleted"); + PvlGroup new0065 = deletedMeasures.findGroup("new0065"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, + new0065.findKeyword("MGS/718369703:160/MOC-WA/RED"), + "Ignored from input"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, + new0065.findKeyword("MGS/688540926:0/MOC-WA/RED"), + "Point deleted"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, + new0065.findKeyword("MGS/691204200:96/MOC-WA/RED"), + "Point deleted"); + PvlGroup new0066 = deletedMeasures.findGroup("new0066"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, + new0066.findKeyword("MGS/718369703:160/MOC-WA/RED"), + "Ignored from input"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, + new0066.findKeyword("MGS/688540926:0/MOC-WA/RED"), + "Serial Number in CUBELIST"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, + new0066.findKeyword("MGS/691204200:96/MOC-WA/RED"), + "Point deleted"); + PvlGroup new0067 = deletedMeasures.findGroup("new0067"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, + new0067.findKeyword("MGS/718369703:160/MOC-WA/RED"), + "Ignored from input"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, + new0067.findKeyword("MGS/688540926:0/MOC-WA/RED"), + "Ignored from input"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, + new0067.findKeyword("MGS/691204200:96/MOC-WA/RED"), + "Point deleted"); + PvlGroup new0068 = deletedMeasures.findGroup("new0068"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, + new0068.findKeyword("MGS/718369703:160/MOC-WA/RED"), + "Ignored from input"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, + new0068.findKeyword("MGS/688540926:0/MOC-WA/RED"), + "Ignored from input"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, + new0068.findKeyword("MGS/691204200:96/MOC-WA/RED"), + "Ignored from input"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, deletedMeasures.findGroup("new0069"). + findKeyword("MGS/688540926:0/MOC-WA/RED "), + "Serial Number in CUBELIST"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, deletedMeasures.findGroup("new0070"). + findKeyword("MGS/688540926:0/MOC-WA/RED "), + "Serial Number in CUBELIST"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, deletedMeasures.findGroup("new0071"). + findKeyword("MGS/688540926:0/MOC-WA/RED "), + "Serial Number in CUBELIST"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, deletedMeasures.findGroup("new0072"). + findKeyword("MGS/688540926:0/MOC-WA/RED "), + "Serial Number in CUBELIST"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, deletedMeasures.findGroup("new0073"). + findKeyword("MGS/688540926:0/MOC-WA/RED "), + "Serial Number in CUBELIST"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, deletedMeasures.findGroup("new0074"). + findKeyword("MGS/688540926:0/MOC-WA/RED "), + "Serial Number in CUBELIST"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, deletedMeasures.findGroup("new0075"). + findKeyword("MGS/688540926:0/MOC-WA/RED "), + "Serial Number in CUBELIST"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, deletedMeasures.findGroup("new0076"). + findKeyword("MGS/688540926:0/MOC-WA/RED "), + "Serial Number in CUBELIST"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, deletedMeasures.findGroup("new0077"). + findKeyword("MGS/688540926:0/MOC-WA/RED "), + "Serial Number in CUBELIST"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, deletedMeasures.findGroup("new0078"). + findKeyword("MGS/688540926:0/MOC-WA/RED "), + "Serial Number in CUBELIST"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, deletedMeasures.findGroup("new0079"). + findKeyword("MGS/688540926:0/MOC-WA/RED "), + "Serial Number in CUBELIST"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, deletedMeasures.findGroup("new0080"). + findKeyword("MGS/688540926:0/MOC-WA/RED "), + "Serial Number in CUBELIST"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, deletedMeasures.findGroup("new0081"). + findKeyword("MGS/688540926:0/MOC-WA/RED "), + "Serial Number in CUBELIST"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, deletedMeasures.findGroup("new0082"). + findKeyword("MGS/688540926:0/MOC-WA/RED "), + "Serial Number in CUBELIST"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, deletedMeasures.findGroup("new0083"). + findKeyword("MGS/688540926:0/MOC-WA/RED "), + "Serial Number in CUBELIST"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, deletedMeasures.findGroup("new0084"). + findKeyword("MGS/688540926:0/MOC-WA/RED "), + "Serial Number in CUBELIST"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, deletedMeasures.findGroup("new0085"). + findKeyword("MGS/688540926:0/MOC-WA/RED "), + "Serial Number in CUBELIST"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, deletedMeasures.findGroup("new0086"). + findKeyword("MGS/688540926:0/MOC-WA/RED "), + "Serial Number in CUBELIST"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, deletedMeasures.findGroup("new0087"). + findKeyword("MGS/688540926:0/MOC-WA/RED "), + "Serial Number in CUBELIST"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, deletedMeasures.findGroup("new0088"). + findKeyword("MGS/688540926:0/MOC-WA/RED "), + "Serial Number in CUBELIST"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, deletedMeasures.findGroup("new0089"). + findKeyword("MGS/688540926:0/MOC-WA/RED "), + "Serial Number in CUBELIST"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, deletedMeasures.findGroup("new0090"). + findKeyword("MGS/688540926:0/MOC-WA/RED "), + "Serial Number in CUBELIST"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, deletedMeasures.findGroup("new0091"). + findKeyword("MGS/688540926:0/MOC-WA/RED "), + "Serial Number in CUBELIST"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, deletedMeasures.findGroup("new0092"). + findKeyword("MGS/688540926:0/MOC-WA/RED "), + "Serial Number in CUBELIST"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, deletedMeasures.findGroup("new0093"). + findKeyword("MGS/688540926:0/MOC-WA/RED "), + "Serial Number in CUBELIST"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, deletedMeasures.findGroup("new0094"). + findKeyword("MGS/688540926:0/MOC-WA/RED "), + "Serial Number in CUBELIST"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, deletedMeasures.findGroup("new0095"). + findKeyword("MGS/688540926:0/MOC-WA/RED "), + "Serial Number in CUBELIST"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, deletedMeasures.findGroup("new0096"). + findKeyword("MGS/688540926:0/MOC-WA/RED "), + "Serial Number in CUBELIST"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, deletedMeasures.findGroup("new0097"). + findKeyword("MGS/688540926:0/MOC-WA/RED "), + "Serial Number in CUBELIST"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, deletedMeasures.findGroup("new0098"). + findKeyword("MGS/688540926:0/MOC-WA/RED "), + "Serial Number in CUBELIST"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, deletedMeasures.findGroup("new0099"). + findKeyword("MGS/688540926:0/MOC-WA/RED "), + "Serial Number in CUBELIST"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, deletedMeasures.findGroup("new0100"). + findKeyword("MGS/688540926:0/MOC-WA/RED "), + "Serial Number in CUBELIST"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, deletedMeasures.findGroup("new0101"). + findKeyword("MGS/688540926:0/MOC-WA/RED "), + "Serial Number in CUBELIST"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, deletedMeasures.findGroup("new0102"). + findKeyword("MGS/688540926:0/MOC-WA/RED "), + "Serial Number in CUBELIST"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, deletedMeasures.findGroup("new0103"). + findKeyword("MGS/688540926:0/MOC-WA/RED "), + "Serial Number in CUBELIST"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, deletedMeasures.findGroup("new0104"). + findKeyword("MGS/688540926:0/MOC-WA/RED "), + "Serial Number in CUBELIST"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, deletedMeasures.findGroup("new0105"). + findKeyword("MGS/688540926:0/MOC-WA/RED "), + "Serial Number in CUBELIST"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, deletedMeasures.findGroup("new0106"). + findKeyword("MGS/688540926:0/MOC-WA/RED "), + "Serial Number in CUBELIST"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, deletedMeasures.findGroup("new0107"). + findKeyword("MGS/688540926:0/MOC-WA/RED "), + "Serial Number in CUBELIST"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, deletedMeasures.findGroup("new0108"). + findKeyword("MGS/688540926:0/MOC-WA/RED "), + "Serial Number in CUBELIST"); + + // check output ControlNetwork + ControlNet outNet(tempDir.path() + "/out.net"); + EXPECT_EQ(outNet.GetNumPoints(), 92); + EXPECT_EQ(outNet.GetNumValidPoints(), 92); + EXPECT_EQ(outNet.GetNumEditLockPoints(), 0); + EXPECT_EQ(outNet.GetNumMeasures(), 184); + EXPECT_EQ(outNet.GetNumIgnoredMeasures(), 0); + EXPECT_EQ(outNet.GetNumEditLockMeasures(), 0); +} + + +/** + * CneteditIgnorePoints + * + * Cnetedit test with ignore points list. + * Input ... + * 1) ControlNet with 108 points (data/cnetedit/cnet_108pts.pvl) + * 2) point list file + * + * Output ... + * 1) edited ControlNet + * 2) Pvl log file. + */ +TEST_F(Cnetedit, CneteditIgnorePoints) { + QTemporaryDir tempDir; + + QVector args = {"cnet=" + cnet108File, + "log=" + tempDir.path() + "/log.txt", + "pointlist=" + pointListFile, + "onet=" + tempDir.path() + "/out.net" + }; + + UserInterface ui(APP_XML, args); + + Pvl cneteditlog; + + try { + cneteditlog = cnetedit(ui); + } + catch(IException &e) { + FAIL() << e.toString().toStdString().c_str() << std::endl; + } + + // read back log file + Pvl log; + try { + log.read(tempDir.path()+ "/log.txt"); + } + catch (IException &e) { + FAIL() << "Unable to open log file: " << e.what() << std::endl; + } + + // check number of deleted points and measures + EXPECT_EQ((int)log.findKeyword("PointsDeleted"), 14); + EXPECT_EQ((int)log.findKeyword("MeasuresDeleted"), 33); + + // no edit locked points or measures + EXPECT_EQ(log.findObject("EditLocked").findObject("Points").keywords(), 0); + EXPECT_EQ(log.findObject("EditLocked").findObject("Measures").keywords(), 0); + + // no retained references + EXPECT_EQ(log.findObject("RetainedReferences").keywords(), 0); + + // check deleted points + PvlObject deletedPoints = log.findObject("Deleted").findObject("Points"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, deletedPoints.findKeyword("new0001"), + "Point ID in POINTLIST"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, deletedPoints.findKeyword("new0007"), + "Point ID in POINTLIST"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, deletedPoints.findKeyword("new0008"), + "Point ID in POINTLIST"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, deletedPoints.findKeyword("new0020"), + "Point ID in POINTLIST"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, deletedPoints.findKeyword("new0031"), + "Ignored from input"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, deletedPoints.findKeyword("new0032"), + "Ignored from input"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, deletedPoints.findKeyword("new0036"), + "Point ID in POINTLIST"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, deletedPoints.findKeyword("new0038"), + "Too few measures"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, deletedPoints.findKeyword("new0039"), + "Too few measures"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, deletedPoints.findKeyword("new0050"), + "Point ID in POINTLIST"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, deletedPoints.findKeyword("new0064"), + "Ignored from input"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, deletedPoints.findKeyword("new0065"), + "Ignored from input"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, deletedPoints.findKeyword("new0067"), + "Too few measures"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, deletedPoints.findKeyword("new0068"), + "Ignored from input"); + + // check deleted measures + PvlObject deletedMeasures = log.findObject("Deleted").findObject("Measures"); + PvlGroup new0001 = deletedMeasures.findGroup("new0001"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, + new0001.findKeyword("MGS/688540926:0/MOC-WA/RED "), + "Point deleted"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, + new0001.findKeyword("MGS/691204200:96/MOC-WA/RED"), + "Point deleted"); + PvlGroup new0007 = deletedMeasures.findGroup("new0007"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, + new0007.findKeyword("MGS/691204200:96/MOC-WA/RED "), + "Point deleted"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, + new0007.findKeyword("MGS/718369703:160/MOC-WA/RED"), + "Point deleted"); + PvlGroup new0008 = deletedMeasures.findGroup("new0008"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, + new0008.findKeyword("MGS/691204200:96/MOC-WA/RED "), + "Point deleted"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, + new0008.findKeyword("MGS/718369703:160/MOC-WA/RED"), + "Point deleted"); + PvlGroup new0020 = deletedMeasures.findGroup("new0020"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, + new0020.findKeyword("MGS/691204200:96/MOC-WA/RED "), + "Point deleted"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, + new0020.findKeyword("MGS/718369703:160/MOC-WA/RED"), + "Point deleted"); + PvlGroup new0031 = deletedMeasures.findGroup("new0031"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, + new0031.findKeyword("MGS/691204200:96/MOC-WA/RED "), + "Point deleted"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, + new0031.findKeyword("MGS/718369703:160/MOC-WA/RED"), + "Point deleted"); + PvlGroup new0032 = deletedMeasures.findGroup("new0032"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, + new0032.findKeyword("MGS/691204200:96/MOC-WA/RED "), + "Point deleted"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, + new0032.findKeyword("MGS/718369703:160/MOC-WA/RED"), + "Point deleted"); + PvlGroup new0036 = deletedMeasures.findGroup("new0036"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, + new0036.findKeyword("MGS/691204200:96/MOC-WA/RED "), + "Point deleted"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, + new0036.findKeyword("MGS/718369703:160/MOC-WA/RED"), + "Point deleted"); + PvlGroup new0038 = deletedMeasures.findGroup("new0038"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, + new0038.findKeyword("MGS/691204200:96/MOC-WA/RED"), + "Ignored from input"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, + new0038.findKeyword("MGS/718369703:160/MOC-WA/RED"), + "Point deleted"); + PvlGroup new0039 = deletedMeasures.findGroup("new0039"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, + new0039.findKeyword("MGS/691204200:96/MOC-WA/RED"), + "Ignored from input"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, + new0039.findKeyword("MGS/718369703:160/MOC-WA/RED"), + "Ignored from input"); + PvlGroup new0050 = deletedMeasures.findGroup("new0050"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, + new0050.findKeyword("MGS/691204200:96/MOC-WA/RED"), + "Point deleted"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, + new0050.findKeyword("MGS/718369703:160/MOC-WA/RED"), + "Point deleted"); + PvlGroup new0064 = deletedMeasures.findGroup("new0064"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, + new0064.findKeyword("MGS/718369703:160/MOC-WA/RED"), + "Point deleted"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, + new0064.findKeyword("MGS/688540926:0/MOC-WA/RED"), + "Point deleted"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, deletedMeasures.findGroup("new0064"). + findKeyword("MGS/691204200:96/MOC-WA/RED"), + "Point deleted"); + PvlGroup new0065 = deletedMeasures.findGroup("new0065"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, + new0065.findKeyword("MGS/718369703:160/MOC-WA/RED"), + "Ignored from input"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, + new0065.findKeyword("MGS/688540926:0/MOC-WA/RED"), + "Point deleted"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, + new0065.findKeyword("MGS/691204200:96/MOC-WA/RED"), + "Point deleted"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, deletedMeasures.findGroup("new0066"). + findKeyword("MGS/718369703:160/MOC-WA/RED"), + "Ignored from input"); + PvlGroup new0067 = deletedMeasures.findGroup("new0067"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, + new0067.findKeyword("MGS/718369703:160/MOC-WA/RED"), + "Ignored from input"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, + new0067.findKeyword("MGS/688540926:0/MOC-WA/RED"), + "Ignored from input"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, + new0067.findKeyword("MGS/691204200:96/MOC-WA/RED"), + "Point deleted"); + PvlGroup new0068 = deletedMeasures.findGroup("new0068"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, + new0068.findKeyword("MGS/718369703:160/MOC-WA/RED"), + "Ignored from input"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, + new0068.findKeyword("MGS/688540926:0/MOC-WA/RED"), + "Ignored from input"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, + new0068.findKeyword("MGS/691204200:96/MOC-WA/RED"), + "Ignored from input"); + + // check output ControlNetwork + ControlNet outNet(tempDir.path() + "/out.net"); + EXPECT_EQ(outNet.GetNumPoints(), 94); + EXPECT_EQ(outNet.GetNumValidPoints(), 94); + EXPECT_EQ(outNet.GetNumEditLockPoints(), 0); + EXPECT_EQ(outNet.GetNumMeasures(), 228); + EXPECT_EQ(outNet.GetNumIgnoredMeasures(), 0); + EXPECT_EQ(outNet.GetNumEditLockMeasures(), 0); +} + + +/** + * CneteditIgnoreAllPoints + * + * Cnetedit test with ignore points list and IGNOREALL=YES. + * Input ... + * 1) ControlNet with 108 points (data/cnetedit/cnet_108pts.pvl) + * 2) point list file + * 3) ignoreall=yes + * + * Output ... + * 1) edited ControlNet + * 2) Pvl log file. + */ +TEST_F(Cnetedit, CneteditIgnoreAllPoints) { + QTemporaryDir tempDir; + + QVector args = {"cnet=" + cnet108File, + "log=" + tempDir.path() + "/log.txt", + "pointlist=" + pointListFile, + "ignoreall=yes", + "onet=" + tempDir.path() + "/out.net" + }; + + UserInterface ui(APP_XML, args); + + Pvl cneteditlog; + + try { + cneteditlog = cnetedit(ui); + } + catch(IException &e) { + FAIL() << e.toString().toStdString().c_str() << std::endl; + } + + // read back log file + Pvl log; + try { + log.read(tempDir.path()+ "/log.txt"); + } + catch (IException &e) { + FAIL() << "Unable to open log file: " << e.what() << std::endl; + } + + // check number of deleted points and measures + EXPECT_EQ((int)log.findKeyword("PointsDeleted"), 15); + EXPECT_EQ((int)log.findKeyword("MeasuresDeleted"), 35); + + // no edit locked points or measures + EXPECT_EQ(log.findObject("EditLocked").findObject("Points").keywords(), 0); + EXPECT_EQ(log.findObject("EditLocked").findObject("Measures").keywords(), 0); + + // no retained references + EXPECT_EQ(log.findObject("RetainedReferences").keywords(), 0); + + // check deleted points + PvlObject deletedPoints = log.findObject("Deleted").findObject("Points"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, deletedPoints.findKeyword("new0001"), + "Point ID in POINTLIST"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, deletedPoints.findKeyword("new0007"), + "Point ID in POINTLIST"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, deletedPoints.findKeyword("new0008"), + "Point ID in POINTLIST"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, deletedPoints.findKeyword("new0020"), + "Point ID in POINTLIST"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, deletedPoints.findKeyword("new0031"), + "Ignored from input"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, deletedPoints.findKeyword("new0032"), + "Ignored from input"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, deletedPoints.findKeyword("new0036"), + "Point ID in POINTLIST"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, deletedPoints.findKeyword("new0038"), + "Reference measure ignored"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, deletedPoints.findKeyword("new0039"), + "Reference measure ignored"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, deletedPoints.findKeyword("new0050"), + "Point ID in POINTLIST"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, deletedPoints.findKeyword("new0064"), + "Ignored from input"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, deletedPoints.findKeyword("new0065"), + "Ignored from input"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, deletedPoints.findKeyword("new0066"), + "Reference measure ignored"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, deletedPoints.findKeyword("new0067"), + "Reference measure ignored"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, deletedPoints.findKeyword("new0068"), + "Ignored from input"); + + // check deleted measures + PvlObject deletedMeasures = log.findObject("Deleted").findObject("Measures"); + PvlGroup new0001 = deletedMeasures.findGroup("new0001"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, + new0001.findKeyword("MGS/688540926:0/MOC-WA/RED "), + "Point deleted"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, + new0001.findKeyword("MGS/691204200:96/MOC-WA/RED"), + "Reference ignored"); + PvlGroup new0007 = deletedMeasures.findGroup("new0007"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, + new0007.findKeyword("MGS/691204200:96/MOC-WA/RED "), + "Point deleted"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, + new0007.findKeyword("MGS/718369703:160/MOC-WA/RED"), + "Reference ignored"); + PvlGroup new0008 = deletedMeasures.findGroup("new0008"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, + new0008.findKeyword("MGS/691204200:96/MOC-WA/RED "), + "Point deleted"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, + new0008.findKeyword("MGS/718369703:160/MOC-WA/RED"), + "Reference ignored"); + PvlGroup new0020 = deletedMeasures.findGroup("new0020"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, + new0020.findKeyword("MGS/691204200:96/MOC-WA/RED "), + "Point deleted"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, + new0020.findKeyword("MGS/718369703:160/MOC-WA/RED"), + "Reference ignored"); + PvlGroup new0031 = deletedMeasures.findGroup("new0031"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, + new0031.findKeyword("MGS/691204200:96/MOC-WA/RED "), + "Point deleted"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, + new0031.findKeyword("MGS/718369703:160/MOC-WA/RED"), + "Reference ignored"); + PvlGroup new0032 = deletedMeasures.findGroup("new0032"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, + new0032.findKeyword("MGS/691204200:96/MOC-WA/RED "), + "Point deleted"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, + new0032.findKeyword("MGS/718369703:160/MOC-WA/RED"), + "Reference ignored"); + PvlGroup new0036 = deletedMeasures.findGroup("new0036"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, + new0036.findKeyword("MGS/691204200:96/MOC-WA/RED "), + "Point deleted"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, + new0036.findKeyword("MGS/718369703:160/MOC-WA/RED"), + "Reference ignored"); + PvlGroup new0038 = deletedMeasures.findGroup("new0038"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, + new0038.findKeyword("MGS/691204200:96/MOC-WA/RED"), + "Ignored from input"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, + new0038.findKeyword("MGS/718369703:160/MOC-WA/RED"), + "Reference ignored"); + + new0038.deleteKeyword("MGS/718369703:160/MOC-WA/RED"); + + EXPECT_PRED_FORMAT2(AssertQStringsEqual, + new0038.findKeyword("MGS/718369703:160/MOC-WA/RED"), + "Ignored from input"); + PvlGroup new0039 = deletedMeasures.findGroup("new0039"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, + new0039.findKeyword("MGS/691204200:96/MOC-WA/RED"), + "Ignored from input"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, + new0039.findKeyword("MGS/718369703:160/MOC-WA/RED"), + "Ignored from input"); + PvlGroup new0050 = deletedMeasures.findGroup("new0050"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, + new0050.findKeyword("MGS/691204200:96/MOC-WA/RED"), + "Point deleted"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, + new0050.findKeyword("MGS/718369703:160/MOC-WA/RED"), + "Reference ignored"); + PvlGroup new0064 = deletedMeasures.findGroup("new0064"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, + new0064.findKeyword("MGS/718369703:160/MOC-WA/RED"), + "Point deleted"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, + new0064.findKeyword("MGS/688540926:0/MOC-WA/RED"), + "Reference ignored"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, + new0064.findKeyword("MGS/691204200:96/MOC-WA/RED"), + "Reference ignored"); + PvlGroup new0065 = deletedMeasures.findGroup("new0065"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, + new0065.findKeyword("MGS/718369703:160/MOC-WA/RED"), + "Ignored from input"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, + new0065.findKeyword("MGS/688540926:0/MOC-WA/RED"), + "Reference ignored"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, + new0065.findKeyword("MGS/691204200:96/MOC-WA/RED"), + "Reference ignored"); + + new0065.deleteKeyword("MGS/688540926:0/MOC-WA/RED"); + new0065.deleteKeyword("MGS/691204200:96/MOC-WA/RED"); + + EXPECT_PRED_FORMAT2(AssertQStringsEqual, + new0065.findKeyword("MGS/688540926:0/MOC-WA/RED"), + "Ignored from input"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, + new0065.findKeyword("MGS/691204200:96/MOC-WA/RED"), + "Ignored from input"); + PvlGroup new0066 = deletedMeasures.findGroup("new0066"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, + new0066.findKeyword("MGS/718369703:160/MOC-WA/RED"), + "Ignored from input"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, + new0066.findKeyword("MGS/688540926:0/MOC-WA/RED"), + "Reference ignored"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, + new0066.findKeyword("MGS/691204200:96/MOC-WA/RED"), + "Reference ignored"); + + new0066.deleteKeyword("MGS/688540926:0/MOC-WA/RED"); + new0066.deleteKeyword("MGS/691204200:96/MOC-WA/RED"); + + EXPECT_PRED_FORMAT2(AssertQStringsEqual, + new0066.findKeyword("MGS/688540926:0/MOC-WA/RED"), + "Ignored from input"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, + new0066.findKeyword("MGS/691204200:96/MOC-WA/RED"), + "Ignored from input"); + PvlGroup new0067 = deletedMeasures.findGroup("new0067"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, + new0067.findKeyword("MGS/718369703:160/MOC-WA/RED"), + "Ignored from input"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, + new0067.findKeyword("MGS/691204200:96/MOC-WA/RED"), + "Reference ignored"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, + new0067.findKeyword("MGS/688540926:0/MOC-WA/RED"), + "Ignored from input"); + + new0067.deleteKeyword("MGS/691204200:96/MOC-WA/RED"); + + EXPECT_PRED_FORMAT2(AssertQStringsEqual, + new0067.findKeyword("MGS/691204200:96/MOC-WA/RED"), + "Ignored from input"); + PvlGroup new0068 = deletedMeasures.findGroup("new0068"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, + new0068.findKeyword("MGS/718369703:160/MOC-WA/RED"), + "Ignored from input"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, + new0068.findKeyword("MGS/688540926:0/MOC-WA/RED"), + "Ignored from input"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, + new0068.findKeyword("MGS/691204200:96/MOC-WA/RED"), + "Ignored from input"); + + // check output ControlNetwork + ControlNet outNet(tempDir.path() + "/out.net"); + EXPECT_EQ(outNet.GetNumPoints(), 93); + EXPECT_EQ(outNet.GetNumValidPoints(), 93); + EXPECT_EQ(outNet.GetNumEditLockPoints(), 0); + EXPECT_EQ(outNet.GetNumMeasures(), 226); + EXPECT_EQ(outNet.GetNumIgnoredMeasures(), 0); + EXPECT_EQ(outNet.GetNumEditLockMeasures(), 0); +} + +/** + * CneteditNoDelete + * + * Cnetedit test with DELETE=NO. + * Input ... + * 1) ControlNet with 108 points (data/cnetedit/cnet_108pts.pvl) + * 2) one image cube list file (data/cnetedit/e0902065.cal.sub.cub) + * 3) point list file + * 4) delete=no + * + * Output ... + * 1) edited ControlNet + * 2) Pvl log file. + */ +TEST_F(Cnetedit, CneteditNoDelete) { + QTemporaryDir tempDir; + + QVector args = {"cnet=" + cnet108File, + "cubelist=" + cubeListFile, + "log=" + tempDir.path() + "/log.txt", + "pointlist=" + pointListFile, + "delete=no", + "onet=" + tempDir.path() + "/out.net", + }; + + UserInterface ui(APP_XML, args); + + Pvl cneteditlog; + + try { + cneteditlog = cnetedit(ui); + } + catch(IException &e) { + FAIL() << e.toString().toStdString().c_str() << std::endl; + } + + // read back log file + Pvl log; + try { + log.read(tempDir.path()+ "/log.txt"); + } + catch (IException &e) { + FAIL() << "Unable to open log file: " << e.what() << std::endl; + } + + // check number of deleted points and measures + EXPECT_EQ((int)log.findKeyword("PointsDeleted"), 0); + EXPECT_EQ((int)log.findKeyword("MeasuresDeleted"), 0); + + // no edit locked points or measures + EXPECT_EQ(log.findObject("EditLocked").findObject("Points").keywords(), 0); + EXPECT_EQ(log.findObject("EditLocked").findObject("Measures").keywords(), 0); + + // no retained references + EXPECT_EQ(log.findObject("RetainedReferences").keywords(), 0); + + // check ignored points + PvlObject ignoredPoints = log.findObject("Ignored").findObject("Points"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, ignoredPoints.findKeyword("new0001"), + "Point ID in POINTLIST"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, ignoredPoints.findKeyword("new0007"), + "Point ID in POINTLIST"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, ignoredPoints.findKeyword("new0008"), + "Point ID in POINTLIST"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, ignoredPoints.findKeyword("new0020"), + "Point ID in POINTLIST"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, ignoredPoints.findKeyword("new0031"), + "Ignored from input"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, ignoredPoints.findKeyword("new0032"), + "Ignored from input"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, ignoredPoints.findKeyword("new0036"), + "Point ID in POINTLIST"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, ignoredPoints.findKeyword("new0050"), + "Point ID in POINTLIST"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, ignoredPoints.findKeyword("new0064"), + "Ignored from input"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, ignoredPoints.findKeyword("new0065"), + "Ignored from input"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, ignoredPoints.findKeyword("new0068"), + "Ignored from input"); + + // check ignored measures + PvlObject ignoredMeasures = log.findObject("Ignored").findObject("Measures"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, ignoredMeasures.findGroup("new0001"). + findKeyword("MGS/688540926:0/MOC-WA/RED "), + "Serial Number in CUBELIST"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, ignoredMeasures.findGroup("new0002"). + findKeyword("MGS/688540926:0/MOC-WA/RED"), + "Serial Number in CUBELIST"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, ignoredMeasures.findGroup("new0038"). + findKeyword("MGS/691204200:96/MOC-WA/RED"), + "Ignored from input"); + PvlGroup new0039 = ignoredMeasures.findGroup("new0039"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, + new0039.findKeyword("MGS/691204200:96/MOC-WA/RED"), + "Ignored from input"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, + new0039.findKeyword("MGS/718369703:160/MOC-WA/RED"), + "Ignored from input"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, ignoredMeasures.findGroup("new0064"). + findKeyword("MGS/688540926:0/MOC-WA/RED"), + "Serial Number in CUBELIST"); + PvlGroup new0065 = ignoredMeasures.findGroup("new0065"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, + new0065.findKeyword("MGS/718369703:160/MOC-WA/RED"), + "Ignored from input"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, + new0065.findKeyword("MGS/688540926:0/MOC-WA/RED"), + "Serial Number in CUBELIST"); + PvlGroup new0066 = ignoredMeasures.findGroup("new0066"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, + new0066.findKeyword("MGS/718369703:160/MOC-WA/RED"), + "Ignored from input"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, + new0066.findKeyword("MGS/688540926:0/MOC-WA/RED"), + "Serial Number in CUBELIST"); + PvlGroup new0067 = ignoredMeasures.findGroup("new0067"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, + new0067.findKeyword("MGS/718369703:160/MOC-WA/RED"), + "Ignored from input"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, + new0067.findKeyword("MGS/688540926:0/MOC-WA/RED"), + "Ignored from input"); + PvlGroup new0068 = ignoredMeasures.findGroup("new0068"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, + new0068.findKeyword("MGS/718369703:160/MOC-WA/RED"), + "Ignored from input"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, + new0068.findKeyword("MGS/688540926:0/MOC-WA/RED"), + "Ignored from input"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, + new0068.findKeyword("MGS/691204200:96/MOC-WA/RED"), + "Ignored from input"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, ignoredMeasures.findGroup("new0069"). + findKeyword("MGS/688540926:0/MOC-WA/RED "), + "Serial Number in CUBELIST"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, ignoredMeasures.findGroup("new0070"). + findKeyword("MGS/688540926:0/MOC-WA/RED "), + "Serial Number in CUBELIST"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, ignoredMeasures.findGroup("new0071"). + findKeyword("MGS/688540926:0/MOC-WA/RED "), + "Serial Number in CUBELIST"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, ignoredMeasures.findGroup("new0072"). + findKeyword("MGS/688540926:0/MOC-WA/RED "), + "Serial Number in CUBELIST"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, ignoredMeasures.findGroup("new0073"). + findKeyword("MGS/688540926:0/MOC-WA/RED "), + "Serial Number in CUBELIST"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, ignoredMeasures.findGroup("new0074"). + findKeyword("MGS/688540926:0/MOC-WA/RED "), + "Serial Number in CUBELIST"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, ignoredMeasures.findGroup("new0075"). + findKeyword("MGS/688540926:0/MOC-WA/RED "), + "Serial Number in CUBELIST"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, ignoredMeasures.findGroup("new0076"). + findKeyword("MGS/688540926:0/MOC-WA/RED "), + "Serial Number in CUBELIST"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, ignoredMeasures.findGroup("new0077"). + findKeyword("MGS/688540926:0/MOC-WA/RED "), + "Serial Number in CUBELIST"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, ignoredMeasures.findGroup("new0078"). + findKeyword("MGS/688540926:0/MOC-WA/RED "), + "Serial Number in CUBELIST"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, ignoredMeasures.findGroup("new0079"). + findKeyword("MGS/688540926:0/MOC-WA/RED "), + "Serial Number in CUBELIST"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, ignoredMeasures.findGroup("new0080"). + findKeyword("MGS/688540926:0/MOC-WA/RED "), + "Serial Number in CUBELIST"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, ignoredMeasures.findGroup("new0081"). + findKeyword("MGS/688540926:0/MOC-WA/RED "), + "Serial Number in CUBELIST"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, ignoredMeasures.findGroup("new0082"). + findKeyword("MGS/688540926:0/MOC-WA/RED "), + "Serial Number in CUBELIST"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, ignoredMeasures.findGroup("new0083"). + findKeyword("MGS/688540926:0/MOC-WA/RED "), + "Serial Number in CUBELIST"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, ignoredMeasures.findGroup("new0084"). + findKeyword("MGS/688540926:0/MOC-WA/RED "), + "Serial Number in CUBELIST"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, ignoredMeasures.findGroup("new0085"). + findKeyword("MGS/688540926:0/MOC-WA/RED "), + "Serial Number in CUBELIST"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, ignoredMeasures.findGroup("new0086"). + findKeyword("MGS/688540926:0/MOC-WA/RED "), + "Serial Number in CUBELIST"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, ignoredMeasures.findGroup("new0087"). + findKeyword("MGS/688540926:0/MOC-WA/RED "), + "Serial Number in CUBELIST"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, ignoredMeasures.findGroup("new0088"). + findKeyword("MGS/688540926:0/MOC-WA/RED "), + "Serial Number in CUBELIST"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, ignoredMeasures.findGroup("new0089"). + findKeyword("MGS/688540926:0/MOC-WA/RED "), + "Serial Number in CUBELIST"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, ignoredMeasures.findGroup("new0090"). + findKeyword("MGS/688540926:0/MOC-WA/RED "), + "Serial Number in CUBELIST"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, ignoredMeasures.findGroup("new0091"). + findKeyword("MGS/688540926:0/MOC-WA/RED "), + "Serial Number in CUBELIST"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, ignoredMeasures.findGroup("new0092"). + findKeyword("MGS/688540926:0/MOC-WA/RED "), + "Serial Number in CUBELIST"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, ignoredMeasures.findGroup("new0093"). + findKeyword("MGS/688540926:0/MOC-WA/RED "), + "Serial Number in CUBELIST"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, ignoredMeasures.findGroup("new0094"). + findKeyword("MGS/688540926:0/MOC-WA/RED "), + "Serial Number in CUBELIST"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, ignoredMeasures.findGroup("new0095"). + findKeyword("MGS/688540926:0/MOC-WA/RED "), + "Serial Number in CUBELIST"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, ignoredMeasures.findGroup("new0096"). + findKeyword("MGS/688540926:0/MOC-WA/RED "), + "Serial Number in CUBELIST"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, ignoredMeasures.findGroup("new0097"). + findKeyword("MGS/688540926:0/MOC-WA/RED "), + "Serial Number in CUBELIST"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, ignoredMeasures.findGroup("new0098"). + findKeyword("MGS/688540926:0/MOC-WA/RED "), + "Serial Number in CUBELIST"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, ignoredMeasures.findGroup("new0099"). + findKeyword("MGS/688540926:0/MOC-WA/RED "), + "Serial Number in CUBELIST"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, ignoredMeasures.findGroup("new0100"). + findKeyword("MGS/688540926:0/MOC-WA/RED "), + "Serial Number in CUBELIST"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, ignoredMeasures.findGroup("new0101"). + findKeyword("MGS/688540926:0/MOC-WA/RED "), + "Serial Number in CUBELIST"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, ignoredMeasures.findGroup("new0102"). + findKeyword("MGS/688540926:0/MOC-WA/RED "), + "Serial Number in CUBELIST"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, ignoredMeasures.findGroup("new0103"). + findKeyword("MGS/688540926:0/MOC-WA/RED "), + "Serial Number in CUBELIST"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, ignoredMeasures.findGroup("new0104"). + findKeyword("MGS/688540926:0/MOC-WA/RED "), + "Serial Number in CUBELIST"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, ignoredMeasures.findGroup("new0105"). + findKeyword("MGS/688540926:0/MOC-WA/RED "), + "Serial Number in CUBELIST"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, ignoredMeasures.findGroup("new0106"). + findKeyword("MGS/688540926:0/MOC-WA/RED "), + "Serial Number in CUBELIST"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, ignoredMeasures.findGroup("new0107"). + findKeyword("MGS/688540926:0/MOC-WA/RED "), + "Serial Number in CUBELIST"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, ignoredMeasures.findGroup("new0108"). + findKeyword("MGS/688540926:0/MOC-WA/RED "), + "Serial Number in CUBELIST"); + + // check output ControlNetwork + ControlNet outNet(tempDir.path() + "/out.net"); + EXPECT_EQ(outNet.GetNumPoints(), 108); + EXPECT_EQ(outNet.GetNumValidPoints(), 97); + EXPECT_EQ(outNet.GetNumEditLockPoints(), 0); + EXPECT_EQ(outNet.GetNumMeasures(), 261); + EXPECT_EQ(outNet.GetNumIgnoredMeasures(), 55); + EXPECT_EQ(outNet.GetNumEditLockMeasures(), 0); +} + +/** + * CneteditPreservePoints + * + * Cnetedit test with PRESERVE=YES. + * Input ... + * 1) ControlNet with 108 points (data/cnetedit/cnet_108pts.pvl) + * 2) one image cube list file (data/cnetedit/e0902065.cal.sub.cub) + * 3) point list file + * 4) preserve=yes + * + * Output ... + * 1) edited ControlNet + * 2) Pvl log file. + */ +TEST_F(Cnetedit, CneteditPreservePoints) { + QTemporaryDir tempDir; + + QVector args = {"cnet=" + cnet108File, + "cubelist=" + cubeListFile, + "log=" + tempDir.path() + "/log.txt", + "pointlist=" + pointListFile, + "preserve=yes", + "onet=" + tempDir.path() + "/out.net", + }; + + UserInterface ui(APP_XML, args); + + Pvl cneteditlog; + + try { + cneteditlog = cnetedit(ui); + } + catch(IException &e) { + FAIL() << e.toString().toStdString().c_str() << std::endl; + } + + // read back log file + Pvl log; + try { + log.read(tempDir.path()+ "/log.txt"); + } + catch (IException &e) { + FAIL() << "Unable to open log file: " << e.what() << std::endl; + } + + // check number of deleted points and measures + EXPECT_EQ((int)log.findKeyword("PointsDeleted"), 12); + EXPECT_EQ((int)log.findKeyword("MeasuresDeleted"), 73); + + // no edit locked points or measures + EXPECT_EQ(log.findObject("EditLocked").findObject("Points").keywords(), 0); + EXPECT_EQ(log.findObject("EditLocked").findObject("Measures").keywords(), 0); + + // no retained references + EXPECT_EQ(log.findObject("RetainedReferences").keywords(), 0); + + // check deleted points + PvlObject deletedPoints = log.findObject("Deleted").findObject("Points"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, deletedPoints.findKeyword("new0001"), + "Point ID in POINTLIST"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, deletedPoints.findKeyword("new0007"), + "Point ID in POINTLIST"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, deletedPoints.findKeyword("new0008"), + "Point ID in POINTLIST"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, deletedPoints.findKeyword("new0020"), + "Point ID in POINTLIST"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, deletedPoints.findKeyword("new0031"), + "Ignored from input"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, deletedPoints.findKeyword("new0032"), + "Ignored from input"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, deletedPoints.findKeyword("new0036"), + "Point ID in POINTLIST"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, deletedPoints.findKeyword("new0039"), + "Too few measures"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, deletedPoints.findKeyword("new0050"), + "Point ID in POINTLIST"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, deletedPoints.findKeyword("new0064"), + "Ignored from input"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, deletedPoints.findKeyword("new0065"), + "Ignored from input"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, deletedPoints.findKeyword("new0068"), + "Ignored from input"); + + // check deleted measures + PvlObject deletedMeasures = log.findObject("Deleted").findObject("Measures"); + PvlGroup new0001 = deletedMeasures.findGroup("new0001"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, + new0001.findKeyword("MGS/688540926:0/MOC-WA/RED"), + "Point deleted"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, + new0001.findKeyword("MGS/691204200:96/MOC-WA/RED"), + "Point deleted"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, deletedMeasures.findGroup("new0002"). + findKeyword("MGS/688540926:0/MOC-WA/RED"), + "Serial Number in CUBELIST"); + PvlGroup new0007 = deletedMeasures.findGroup("new0007"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, + new0007.findKeyword("MGS/691204200:96/MOC-WA/RED"), + "Point deleted"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, + new0007.findKeyword("MGS/718369703:160/MOC-WA/RED"), + "Point deleted"); + PvlGroup new0008 = deletedMeasures.findGroup("new0008"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, + new0008.findKeyword("MGS/691204200:96/MOC-WA/RED"), + "Point deleted"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, + new0008.findKeyword("MGS/718369703:160/MOC-WA/RED"), + "Point deleted"); + PvlGroup new0020 = deletedMeasures.findGroup("new0020"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, + new0020.findKeyword("MGS/691204200:96/MOC-WA/RED"), + "Point deleted"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, + new0020.findKeyword("MGS/718369703:160/MOC-WA/RED"), + "Point deleted"); + PvlGroup new0031 = deletedMeasures.findGroup("new0031"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, + new0031.findKeyword("MGS/691204200:96/MOC-WA/RED"), + "Point deleted"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, + new0031.findKeyword("MGS/718369703:160/MOC-WA/RED"), + "Point deleted"); + PvlGroup new0032 = deletedMeasures.findGroup("new0032"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, + new0032.findKeyword("MGS/691204200:96/MOC-WA/RED"), + "Point deleted"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, + new0032.findKeyword("MGS/718369703:160/MOC-WA/RED"), + "Point deleted"); + PvlGroup new0036 = deletedMeasures.findGroup("new0036"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, + new0036.findKeyword("MGS/691204200:96/MOC-WA/RED"), + "Point deleted"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, + new0036.findKeyword("MGS/718369703:160/MOC-WA/RED"), + "Point deleted"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, deletedMeasures.findGroup("new0038"). + findKeyword("MGS/691204200:96/MOC-WA/RED"), + "Ignored from input"); + PvlGroup new0039 = deletedMeasures.findGroup("new0039"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, + new0039.findKeyword("MGS/691204200:96/MOC-WA/RED"), + "Ignored from input"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, + new0039.findKeyword("MGS/718369703:160/MOC-WA/RED"), + "Ignored from input"); + PvlGroup new0050 = deletedMeasures.findGroup("new0050"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, + new0050.findKeyword("MGS/691204200:96/MOC-WA/RED"), + "Point deleted"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, + new0050.findKeyword("MGS/718369703:160/MOC-WA/RED"), + "Point deleted"); + PvlGroup new0064 = deletedMeasures.findGroup("new0064"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, + new0064.findKeyword("MGS/718369703:160/MOC-WA/RED"), + "Point deleted"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, + new0064.findKeyword("MGS/688540926:0/MOC-WA/RED"), + "Point deleted"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, + new0064.findKeyword("MGS/691204200:96/MOC-WA/RED"), + "Point deleted"); + PvlGroup new0065 = deletedMeasures.findGroup("new0065"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, + new0065.findKeyword("MGS/718369703:160/MOC-WA/RED"), + "Ignored from input"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, + new0065.findKeyword("MGS/688540926:0/MOC-WA/RED"), + "Point deleted"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, + new0065.findKeyword("MGS/691204200:96/MOC-WA/RED"), + "Point deleted"); + PvlGroup new0066 = deletedMeasures.findGroup("new0066"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, + new0066.findKeyword("MGS/718369703:160/MOC-WA/RED"), + "Ignored from input"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, + new0066.findKeyword("MGS/688540926:0/MOC-WA/RED"), + "Serial Number in CUBELIST"); + PvlGroup new0067 = deletedMeasures.findGroup("new0067"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, + new0067.findKeyword("MGS/718369703:160/MOC-WA/RED"), + "Ignored from input"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, + new0067.findKeyword("MGS/688540926:0/MOC-WA/RED"), + "Ignored from input"); + PvlGroup new0068 = deletedMeasures.findGroup("new0068"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, + new0068.findKeyword("MGS/718369703:160/MOC-WA/RED"), + "Ignored from input"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, + new0068.findKeyword("MGS/688540926:0/MOC-WA/RED"), + "Ignored from input"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, + new0068.findKeyword("MGS/691204200:96/MOC-WA/RED"), + "Ignored from input"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, deletedMeasures.findGroup("new0069"). + findKeyword("MGS/688540926:0/MOC-WA/RED "), + "Serial Number in CUBELIST"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, deletedMeasures.findGroup("new0070"). + findKeyword("MGS/688540926:0/MOC-WA/RED "), + "Serial Number in CUBELIST"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, deletedMeasures.findGroup("new0071"). + findKeyword("MGS/688540926:0/MOC-WA/RED "), + "Serial Number in CUBELIST"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, deletedMeasures.findGroup("new0072"). + findKeyword("MGS/688540926:0/MOC-WA/RED "), + "Serial Number in CUBELIST"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, deletedMeasures.findGroup("new0073"). + findKeyword("MGS/688540926:0/MOC-WA/RED "), + "Serial Number in CUBELIST"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, deletedMeasures.findGroup("new0074"). + findKeyword("MGS/688540926:0/MOC-WA/RED "), + "Serial Number in CUBELIST"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, deletedMeasures.findGroup("new0075"). + findKeyword("MGS/688540926:0/MOC-WA/RED "), + "Serial Number in CUBELIST"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, deletedMeasures.findGroup("new0076"). + findKeyword("MGS/688540926:0/MOC-WA/RED "), + "Serial Number in CUBELIST"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, deletedMeasures.findGroup("new0077"). + findKeyword("MGS/688540926:0/MOC-WA/RED "), + "Serial Number in CUBELIST"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, deletedMeasures.findGroup("new0078"). + findKeyword("MGS/688540926:0/MOC-WA/RED "), + "Serial Number in CUBELIST"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, deletedMeasures.findGroup("new0079"). + findKeyword("MGS/688540926:0/MOC-WA/RED "), + "Serial Number in CUBELIST"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, deletedMeasures.findGroup("new0080"). + findKeyword("MGS/688540926:0/MOC-WA/RED "), + "Serial Number in CUBELIST"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, deletedMeasures.findGroup("new0081"). + findKeyword("MGS/688540926:0/MOC-WA/RED "), + "Serial Number in CUBELIST"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, deletedMeasures.findGroup("new0082"). + findKeyword("MGS/688540926:0/MOC-WA/RED "), + "Serial Number in CUBELIST"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, deletedMeasures.findGroup("new0083"). + findKeyword("MGS/688540926:0/MOC-WA/RED "), + "Serial Number in CUBELIST"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, deletedMeasures.findGroup("new0084"). + findKeyword("MGS/688540926:0/MOC-WA/RED "), + "Serial Number in CUBELIST"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, deletedMeasures.findGroup("new0085"). + findKeyword("MGS/688540926:0/MOC-WA/RED "), + "Serial Number in CUBELIST"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, deletedMeasures.findGroup("new0086"). + findKeyword("MGS/688540926:0/MOC-WA/RED "), + "Serial Number in CUBELIST"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, deletedMeasures.findGroup("new0087"). + findKeyword("MGS/688540926:0/MOC-WA/RED "), + "Serial Number in CUBELIST"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, deletedMeasures.findGroup("new0088"). + findKeyword("MGS/688540926:0/MOC-WA/RED "), + "Serial Number in CUBELIST"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, deletedMeasures.findGroup("new0089"). + findKeyword("MGS/688540926:0/MOC-WA/RED "), + "Serial Number in CUBELIST"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, deletedMeasures.findGroup("new0090"). + findKeyword("MGS/688540926:0/MOC-WA/RED "), + "Serial Number in CUBELIST"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, deletedMeasures.findGroup("new0091"). + findKeyword("MGS/688540926:0/MOC-WA/RED "), + "Serial Number in CUBELIST"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, deletedMeasures.findGroup("new0092"). + findKeyword("MGS/688540926:0/MOC-WA/RED "), + "Serial Number in CUBELIST"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, deletedMeasures.findGroup("new0093"). + findKeyword("MGS/688540926:0/MOC-WA/RED "), + "Serial Number in CUBELIST"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, deletedMeasures.findGroup("new0094"). + findKeyword("MGS/688540926:0/MOC-WA/RED "), + "Serial Number in CUBELIST"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, deletedMeasures.findGroup("new0095"). + findKeyword("MGS/688540926:0/MOC-WA/RED "), + "Serial Number in CUBELIST"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, deletedMeasures.findGroup("new0096"). + findKeyword("MGS/688540926:0/MOC-WA/RED "), + "Serial Number in CUBELIST"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, deletedMeasures.findGroup("new0097"). + findKeyword("MGS/688540926:0/MOC-WA/RED "), + "Serial Number in CUBELIST"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, deletedMeasures.findGroup("new0098"). + findKeyword("MGS/688540926:0/MOC-WA/RED "), + "Serial Number in CUBELIST"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, deletedMeasures.findGroup("new0099"). + findKeyword("MGS/688540926:0/MOC-WA/RED "), + "Serial Number in CUBELIST"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, deletedMeasures.findGroup("new0100"). + findKeyword("MGS/688540926:0/MOC-WA/RED "), + "Serial Number in CUBELIST"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, deletedMeasures.findGroup("new0101"). + findKeyword("MGS/688540926:0/MOC-WA/RED "), + "Serial Number in CUBELIST"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, deletedMeasures.findGroup("new0102"). + findKeyword("MGS/688540926:0/MOC-WA/RED "), + "Serial Number in CUBELIST"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, deletedMeasures.findGroup("new0103"). + findKeyword("MGS/688540926:0/MOC-WA/RED "), + "Serial Number in CUBELIST"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, deletedMeasures.findGroup("new0104"). + findKeyword("MGS/688540926:0/MOC-WA/RED "), + "Serial Number in CUBELIST"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, deletedMeasures.findGroup("new0105"). + findKeyword("MGS/688540926:0/MOC-WA/RED "), + "Serial Number in CUBELIST"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, deletedMeasures.findGroup("new0106"). + findKeyword("MGS/688540926:0/MOC-WA/RED "), + "Serial Number in CUBELIST"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, deletedMeasures.findGroup("new0107"). + findKeyword("MGS/688540926:0/MOC-WA/RED "), + "Serial Number in CUBELIST"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, deletedMeasures.findGroup("new0108"). + findKeyword("MGS/688540926:0/MOC-WA/RED "), + "Serial Number in CUBELIST"); + + // check output ControlNetwork + ControlNet outNet(tempDir.path() + "/out.net"); + EXPECT_EQ(outNet.GetNumPoints(), 96); + EXPECT_EQ(outNet.GetNumValidPoints(), 96); + EXPECT_EQ(outNet.GetNumEditLockPoints(), 0); + EXPECT_EQ(outNet.GetNumMeasures(), 188); + EXPECT_EQ(outNet.GetNumIgnoredMeasures(), 0); + EXPECT_EQ(outNet.GetNumEditLockMeasures(), 0); +} + + +/** + * CneteditMeasureListGeneral + * General cnetedit test with bad measures list. + * Input ... + * 1) ControlNet with 35 points (data/cnetedit/cnet_35pts.pvl) + * 2) list file of bad measures + * 3) delete=no + * + * Output ... + * 1) edited ControlNet + * 2) Pvl log file. + */ +TEST_F(CneteditMeasureList, CneteditMeasureListGeneral) { + QTemporaryDir tempDir; + + QVector args = {"cnet=" + cnet35File, + "log=" + tempDir.path() + "/log.txt", + "measurelist=" + badMeasureListFile1, + "delete=no", + "onet=" + tempDir.path() + "/out.net", + }; + + UserInterface ui(APP_XML, args); + + Pvl cneteditlog; + + try { + cneteditlog = cnetedit(ui); + } + catch(IException &e) { + FAIL() << e.toString().toStdString().c_str() << std::endl; + } + + // read back log file + Pvl log; + try { + log.read(tempDir.path()+ "/log.txt"); + } + catch (IException &e) { + FAIL() << "Unable to open log file: " << e.what() << std::endl; + } + + // check number of deleted points and measures + EXPECT_EQ((int)log.findKeyword("PointsDeleted"), 0); + EXPECT_EQ((int)log.findKeyword("MeasuresDeleted"), 0); + + // no edit locked points or measures + EXPECT_EQ(log.findObject("EditLocked").findObject("Points").keywords(), 0); + EXPECT_EQ(log.findObject("EditLocked").findObject("Measures").keywords(), 0); + + // no retained references + EXPECT_EQ(log.findObject("RetainedReferences").keywords(), 0); + + // no ignored points + EXPECT_EQ(log.findObject("Ignored").findObject("Points").keywords(), 0); + + // check ignored measures + PvlObject ignoredMeasures = log.findObject("Ignored").findObject("Measures"); + PvlGroup bndry_32 = ignoredMeasures.findGroup("I24827003RDR_bndry_32"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, + bndry_32.findKeyword("Odyssey/THEMIS_IR/766864399.204"), + "Measure in MEASURELIST"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, + bndry_32.findKeyword("Odyssey/THEMIS_IR/764644820.000"), + "Measure in MEASURELIST"); + PvlGroup bndry_35 = ignoredMeasures.findGroup("I24827003RDR_bndry_35"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, + bndry_35.findKeyword("Odyssey/THEMIS_IR/860700556.051"), + "Measure in MEASURELIST"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, + bndry_35.findKeyword("Odyssey/THEMIS_IR/748799078.000"), + "Measure in MEASURELIST"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, + bndry_35.findKeyword("Odyssey/THEMIS_IR/869400711.102"), + "Measure in MEASURELIST"); + PvlGroup bndry_36 = ignoredMeasures.findGroup("I24827003RDR_bndry_36"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, + bndry_36.findKeyword("Odyssey/THEMIS_IR/748799078.000"), + "Measure in MEASURELIST"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, + bndry_36.findKeyword("Odyssey/THEMIS_IR/869400711.102"), + "Measure in MEASURELIST"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, ignoredMeasures.findGroup("I24827003RDR_bndry_50"). + findKeyword("Odyssey/THEMIS_IR/869400711.102"), + "Measure in MEASURELIST"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, ignoredMeasures.findGroup("I24827003RDR_bndry_53"). + findKeyword("Odyssey/THEMIS_IR/869400711.102"), + "Measure in MEASURELIST"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, ignoredMeasures.findGroup("I24827003RDR_bndry_56"). + findKeyword("Odyssey/THEMIS_IR/869400711.102"), + "Measure in MEASURELIST"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, ignoredMeasures.findGroup("I24827003RDR_bndry_8"). + findKeyword("Odyssey/THEMIS_IR/748799078.000"), + "Measure in MEASURELIST"); + + // check output ControlNetwork + ControlNet outNet(tempDir.path() + "/out.net"); + EXPECT_EQ(outNet.GetNumPoints(), 35); + EXPECT_EQ(outNet.GetNumValidPoints(), 35); + EXPECT_EQ(outNet.GetNumEditLockPoints(), 0); + EXPECT_EQ(outNet.GetNumMeasures(), 91); + EXPECT_EQ(outNet.GetNumIgnoredMeasures(), 11); + EXPECT_EQ(outNet.GetNumEditLockMeasures(), 0); +} + +/** + * CneteditMeasureListIgnoreAll + * + * Cnetedit test with bad measures list and IGNOREALL=YES; DELETE=NO. + * Input ... + * 1) ControlNet with 35 points (data/cnetedit/cnet_35pts.pvl) + * 2) bad measure list + * 3) ignoreall=yes + * 4) delete=no + * + * Output ... + * 1) edited ControlNet + * 2) Pvl log file. + */ +TEST_F(CneteditMeasureList, CneteditMeasureListIgnoreAll) { + QTemporaryDir tempDir; + + QVector args = {"cnet=" + cnet35File, + "log=" + tempDir.path() + "/log.txt", + "measurelist=" + badMeasureListFile2, + "ignoreall=yes", + "delete=no", + "onet=" + tempDir.path() + "/out.net", + }; + + UserInterface ui(APP_XML, args); + + Pvl cneteditlog; + + try { + cneteditlog = cnetedit(ui); + } + catch(IException &e) { + FAIL() << e.toString().toStdString().c_str() << std::endl; + } + + // read back log file + Pvl log; + try { + log.read(tempDir.path()+ "/log.txt"); + } + catch (IException &e) { + FAIL() << "Unable to open log file: " << e.what() << std::endl; + } + + // check number of deleted points and measures + EXPECT_EQ((int)log.findKeyword("PointsDeleted"), 0); + EXPECT_EQ((int)log.findKeyword("MeasuresDeleted"), 0); + + // no edit locked points or measures + EXPECT_EQ(log.findObject("EditLocked").findObject("Points").keywords(), 0); + EXPECT_EQ(log.findObject("EditLocked").findObject("Measures").keywords(), 0); + + // no retained references + EXPECT_EQ(log.findObject("RetainedReferences").keywords(), 0); + + // no ignored points + EXPECT_EQ(log.findObject("Ignored").findObject("Points").keywords(), 1); + + // check ignored measures + PvlObject ignoredMeasures = log.findObject("Ignored").findObject("Measures"); + PvlGroup bndry_32 = ignoredMeasures.findGroup("I24827003RDR_bndry_32"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, + bndry_32.findKeyword("Odyssey/THEMIS_IR/766864399.204"), + "Measure in MEASURELIST"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, + bndry_32.findKeyword("Odyssey/THEMIS_IR/764644820.000"), + "Measure in MEASURELIST"); + PvlGroup bndry_35 = ignoredMeasures.findGroup("I24827003RDR_bndry_35"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, + bndry_35.findKeyword("Odyssey/THEMIS_IR/860700556.051"), + "Measure in MEASURELIST"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, + bndry_35.findKeyword("Odyssey/THEMIS_IR/748799078.000"), + "Measure in MEASURELIST"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, + bndry_35.findKeyword("Odyssey/THEMIS_IR/869400711.102"), + "Measure in MEASURELIST"); + PvlGroup bndry_36 = ignoredMeasures.findGroup("I24827003RDR_bndry_36"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, + bndry_36.findKeyword("Odyssey/THEMIS_IR/748799078.000"), + "Measure in MEASURELIST"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, + bndry_36.findKeyword("Odyssey/THEMIS_IR/869400711.102"), + "Measure in MEASURELIST"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, ignoredMeasures.findGroup("I24827003RDR_bndry_50"). + findKeyword("Odyssey/THEMIS_IR/869400711.102"), + "Measure in MEASURELIST"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, ignoredMeasures.findGroup("I24827003RDR_bndry_53"). + findKeyword("Odyssey/THEMIS_IR/869400711.102"), + "Measure in MEASURELIST"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, ignoredMeasures.findGroup("I24827003RDR_bndry_56"). + findKeyword("Odyssey/THEMIS_IR/869400711.102"), + "Measure in MEASURELIST"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, ignoredMeasures.findGroup("I24827003RDR_bndry_8"). + findKeyword("Odyssey/THEMIS_IR/748799078.000"), + "Measure in MEASURELIST"); + + // check output ControlNetwork + ControlNet outNet(tempDir.path() + "/out.net"); + EXPECT_EQ(outNet.GetNumPoints(), 35); + EXPECT_EQ(outNet.GetNumValidPoints(), 34); + EXPECT_EQ(outNet.GetNumEditLockPoints(), 0); + EXPECT_EQ(outNet.GetNumMeasures(), 91); + EXPECT_EQ(outNet.GetNumIgnoredMeasures(), 13); + EXPECT_EQ(outNet.GetNumEditLockMeasures(), 0); +} + + +/** + * CneteditMeasureListDelete + * + * Cnetedit test with bad measures list and delete=yes. + * Input ... + * 1) ControlNet with 35 points (data/cnetedit/cnet_35pts.pvl) + * 2) bad measure list + * 4) delete=yes (default) + * + * Output ... + * 1) edited ControlNet + * 2) Pvl log file. + */ +TEST_F(CneteditMeasureList, CneteditMeasureListDelete) { + QTemporaryDir tempDir; + + QVector args = {"cnet=" + cnet35File, + "log=" + tempDir.path() + "/log.txt", + "measurelist=" + badMeasureListFile1, + "onet=" + tempDir.path() + "/out.net", + }; + + UserInterface ui(APP_XML, args); + + Pvl cneteditlog; + + try { + cneteditlog = cnetedit(ui); + } + catch(IException &e) { + FAIL() << e.toString().toStdString().c_str() << std::endl; + } + + // read back log file + Pvl log; + try { + log.read(tempDir.path()+ "/log.txt"); + } + catch (IException &e) { + FAIL() << "Unable to open log file: " << e.what() << std::endl; + } + + // check number of deleted points and measures + EXPECT_EQ((int)log.findKeyword("PointsDeleted"), 5); + EXPECT_EQ((int)log.findKeyword("MeasuresDeleted"),16); + + // no edit locked points or measures + EXPECT_EQ(log.findObject("EditLocked").findObject("Points").keywords(), 0); + EXPECT_EQ(log.findObject("EditLocked").findObject("Measures").keywords(), 0); + + // no retained references + EXPECT_EQ(log.findObject("RetainedReferences").keywords(), 0); + + // check deleted points + PvlObject deletedPoints = log.findObject("Deleted").findObject("Points"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, deletedPoints.findKeyword("I24827003RDR_bndry_32"), + "Too few measures"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, deletedPoints.findKeyword("I24827003RDR_bndry_50"), + "Too few measures"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, deletedPoints.findKeyword("I24827003RDR_bndry_53"), + "Too few measures"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, deletedPoints.findKeyword("I24827003RDR_bndry_56"), + "Too few measures"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, deletedPoints.findKeyword("I24827003RDR_bndry_8"), + "Too few measures"); + + // check deleted measures + PvlObject deletedMeasures = log.findObject("Deleted").findObject("Measures"); + PvlGroup bndry_32 = deletedMeasures.findGroup("I24827003RDR_bndry_32"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, + bndry_32.findKeyword("Odyssey/THEMIS_IR/766864399.204"), + "Measure in MEASURELIST"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, + bndry_32.findKeyword("Odyssey/THEMIS_IR/764644820.000"), + "Measure in MEASURELIST"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, + bndry_32.findKeyword("Odyssey/THEMIS_IR/860700556.051"), + "Point deleted"); + PvlGroup bndry_35 = deletedMeasures.findGroup("I24827003RDR_bndry_35"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, + bndry_35.findKeyword("Odyssey/THEMIS_IR/860700556.051"), + "Measure in MEASURELIST"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, + bndry_35.findKeyword("Odyssey/THEMIS_IR/748799078.000"), + "Measure in MEASURELIST"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, + bndry_35.findKeyword("Odyssey/THEMIS_IR/869400711.102"), + "Measure in MEASURELIST"); + PvlGroup bndry_36 = deletedMeasures.findGroup("I24827003RDR_bndry_36"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, + bndry_36.findKeyword("Odyssey/THEMIS_IR/748799078.000"), + "Measure in MEASURELIST"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, + bndry_36.findKeyword("Odyssey/THEMIS_IR/869400711.102"), + "Measure in MEASURELIST"); + PvlGroup bndry_50 = deletedMeasures.findGroup("I24827003RDR_bndry_50"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, + bndry_50.findKeyword("Odyssey/THEMIS_IR/869400711.102"), + "Measure in MEASURELIST"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, + bndry_50.findKeyword("Odyssey/THEMIS_IR/823680993.230"), + "Point deleted"); + PvlGroup bndry_53 = deletedMeasures.findGroup("I24827003RDR_bndry_53"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, + bndry_53.findKeyword("Odyssey/THEMIS_IR/869400711.102"), + "Measure in MEASURELIST"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, + bndry_53.findKeyword("Odyssey/THEMIS_IR/823680993.230"), + "Point deleted"); + PvlGroup bndry_56 = deletedMeasures.findGroup("I24827003RDR_bndry_56"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, + bndry_56.findKeyword("Odyssey/THEMIS_IR/869400711.102"), + "Measure in MEASURELIST"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, + bndry_56.findKeyword("Odyssey/THEMIS_IR/823680993.230"), + "Point deleted"); + PvlGroup bndry_8 = deletedMeasures.findGroup("I24827003RDR_bndry_8"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, + bndry_8.findKeyword("Odyssey/THEMIS_IR/748799078.000"), + "Measure in MEASURELIST"); + EXPECT_PRED_FORMAT2(AssertQStringsEqual, + bndry_8.findKeyword("Odyssey/THEMIS_IR/760206015.230"), + "Point deleted"); + + // check output ControlNetwork + ControlNet outNet(tempDir.path() + "/out.net"); + EXPECT_EQ(outNet.GetNumPoints(), 30); + EXPECT_EQ(outNet.GetNumValidPoints(), 30); + EXPECT_EQ(outNet.GetNumEditLockPoints(), 0); + EXPECT_EQ(outNet.GetNumMeasures(), 75); + EXPECT_EQ(outNet.GetNumIgnoredMeasures(), 0); + EXPECT_EQ(outNet.GetNumEditLockMeasures(), 0); +} \ No newline at end of file diff --git a/isis/tests/FunctionalTestsCnetthinner.cpp b/isis/tests/FunctionalTestsCnetthinner.cpp new file mode 100644 index 0000000000..0b8c447b00 --- /dev/null +++ b/isis/tests/FunctionalTestsCnetthinner.cpp @@ -0,0 +1,462 @@ +#include +#include +#include + +#include "cnetedit.h" +#include "cnetdiff.h" +#include "cnetthinner.h" +#include "ControlNet.h" +#include "TempFixtures.h" + +#include "gtest/gtest.h" + +using namespace Isis; + +static QString APP_XML = FileName("$ISISROOT/bin/xml/cnetthinner.xml").expanded(); +static QString APP1_XML = FileName("$ISISROOT/bin/xml/cnetdiff.xml").expanded(); +static QString APP2_XML = FileName("$ISISROOT/bin/xml/cnetedit.xml").expanded(); + +class Cnetthinner : public TempTestingFiles { + protected: + QString cnetFile; + + void SetUp() override { + TempTestingFiles::SetUp(); + + cnetFile = "data/cnetthinner/customPointsTruth.pvl"; + } +}; + + +/** + * CnetthinnerEmptyInputControlNet + * + * Cnetthinner test given a empty input ControlNet. + */ +TEST_F(Cnetthinner, FunctionalTestCnetthinnerEmptyControlNet) { + + // create empty control net + ControlNet emptyNet; + + QVector args = {"cnet=emptyNet", + "onet=" + tempDir.path() + "/failNet", + "maxpoints=20", + }; + + UserInterface options(APP_XML, args); + + try { + cnetthinner(options); + FAIL() << "Expected Exception for invalid, empty control network file"; + } + catch(IException &e) { + EXPECT_TRUE(e.toString().toLatin1().contains("Invalid control network")) + << e.toString().toStdString(); + } +} + + +/** + * CnetthinnerDefault + * + * Input ... + * 1) ControlNet with 481 points (data/cnetthinner/customPointsTruth.pvl) + * 2) maxpoints=20000 + * 3) suppressed=ignore (suppressed points are to be ignored in output net) + * 4) networkid=testID + * + * Output ... + * 1) thinned ControlNet (10 points should have been ignored) + * 2) Pvl log file. + */ +TEST_F(Cnetthinner, FunctionalTestCnetthinnerDefault) { + + QVector args = {"cnet=" + cnetFile, + "onet=" + tempDir.path() + "/out.net", + "maxpoints=20000", + "suppressed=ignore", + "networkid=testID" + }; + + UserInterface ui(APP_XML, args); + + try { + cnetthinner(ui); + } + catch(IException &e) { + FAIL() << e.toString().toStdString().c_str() << std::endl; + } + + // check output ControlNetwork + ControlNet outNet(tempDir.path() + "/out.net"); + EXPECT_EQ(outNet.GetNetworkId().toStdString(), "testID"); + EXPECT_EQ(outNet.GetNumPoints(), 481); + EXPECT_EQ(outNet.GetNumValidPoints(), 471); // 481 - 471 = 10 ignored points + EXPECT_EQ(outNet.GetNumEditLockPoints(), 0); + EXPECT_EQ(outNet.GetNumMeasures(), 962); + EXPECT_EQ(outNet.GetNumIgnoredMeasures(), 0); + EXPECT_EQ(outNet.GetNumEditLockMeasures(), 0); + + // confirm id's of 10 ignored points in output ControlNetwork + EXPECT_TRUE(outNet.GetPoint("ff_test_339")->IsIgnored()); + EXPECT_TRUE(outNet.GetPoint("ff_test_363")->IsIgnored()); + EXPECT_TRUE(outNet.GetPoint("ff_test_387")->IsIgnored()); + EXPECT_TRUE(outNet.GetPoint("ff_test_398")->IsIgnored()); + EXPECT_TRUE(outNet.GetPoint("ff_test_413")->IsIgnored()); + EXPECT_TRUE(outNet.GetPoint("ff_test_466")->IsIgnored()); + EXPECT_TRUE(outNet.GetPoint("ff_test_606")->IsIgnored()); + EXPECT_TRUE(outNet.GetPoint("ff_test_717")->IsIgnored()); + EXPECT_TRUE(outNet.GetPoint("ff_test_727")->IsIgnored()); + EXPECT_TRUE(outNet.GetPoint("ff_test_754")->IsIgnored()); +} + + +/** + * CnetthinnerIgnoreOrRemove + * + * 1) Cnetthinner is executed twice with max points of 200. In the + * first output ControlNet (ignored.net) the suppressed points + * are ignored. In the second (removed.net) the suppressed points + * are removed. + * + * Input run 1... + * 1) ControlNet with 481 points (data/cnetthinner/customPointsTruth.pvl) + * 2) maxpoints=200 + * 3) suppressed=ignore (suppressed points are to be ignored in output net) + + * Input run 2... + * 1) ControlNet with 481 points (data/cnetthinner/customPointsTruth.pvl) + * 2) maxpoints=200 + * 3) suppressed=remove (suppressed points are to be removed in output net) + * + * 2) Cnetedit is used to delete the ignored points in ignored.net. + * The result is in ignored_removed.net. + * + * 3) Cnetdiff is then used to compare ignored_removed.net and + * removed.net. Result in cnetdiff.txt. They should be identical. + */ +TEST_F(Cnetthinner, FunctionalTestCnetthinnerIgnoreOrRemove) { + + // Use cnetthinner to suppress points by ignoring in customPointsTruth.net. + // Result in ignored.net. + QVector args = {"cnet=" + cnetFile, + "onet=" + tempDir.path() + "/ignored.net", + "maxpoints=200", + "suppressed=ignore" + }; + + UserInterface ui1(APP_XML, args); + + try { + cnetthinner(ui1); + } + catch(IException &e) { + FAIL() << "cnetthinner ignore failure: " << e.toString().toStdString().c_str() << std::endl; + } + + // Use cnetthinner to suppress points by removing in customPointsTruth.net. + // Result in removed.net. + args = {"cnet=" + cnetFile, + "onet=" + tempDir.path() + "/removed.net", + "maxpoints=200", + "suppressed=remove" + }; + UserInterface ui2(APP_XML, args); + + try { + cnetthinner(ui2); + } + catch(IException &e) { + FAIL() << "cnetthinner remove failure: " << e.toString().toStdString().c_str() << std::endl; + } + + // confirm 64 points are ignored in both runs + ControlNet ignored(tempDir.path()+ "/ignored.net"); + EXPECT_EQ(ignored.GetNumPoints(), 481); + EXPECT_EQ(ignored.GetNumValidPoints(), 417); + + ControlNet removed(tempDir.path()+ "/removed.net"); + EXPECT_EQ(removed.GetNumPoints(), 417); + EXPECT_EQ(removed.GetNumValidPoints(), 417); + + // use cnetedit to delete ignored points in removed.net. Result in ignored_removed.net. + args = {"cnet=" + tempDir.path() + "/ignored.net", + "onet=" + tempDir.path() + "/ignored_removed.net", + "ignore=no", + "delete=yes" + }; + + UserInterface ui3(APP2_XML, args); + + try { + cnetedit(ui3); + } + catch(IException &e) { + FAIL() << "cnetedit failure to delete removed points: " << e.toString().toStdString().c_str() << std::endl; + } + + // Use cnetdiff to compare ignored_removed.net and removed.net. + // Result in cnetdiff.txt. They should be identical. + args = {"from=" + tempDir.path() + "/ignored_removed.net", + "from2=" + tempDir.path() + "/removed.net", + "to=" + tempDir.path() + "/compareIgnored_IgnoredRemoved.txt", + "report=full" + }; + + UserInterface ui4(APP1_XML, args); + + try { + cnetdiff(ui4); + } + catch(IException &e) { + FAIL() << "cnetdiff failure to compare networks: " << e.toString().toStdString().c_str() << std::endl; + } + + // read back compareIgnored_IgnoredRemoved log file + Pvl compareIgnored_IgnoredRemoved; + try { + compareIgnored_IgnoredRemoved.read(tempDir.path()+ "/compareIgnored_IgnoredRemoved.txt"); + } + catch (IException &e) { + FAIL() << "Unable to open error log pvl file: " << e.what() << std::endl; + } + + // confirm output filenames and that there are no groups or objects + // in the difference object confirming cnets are identical + ASSERT_TRUE(compareIgnored_IgnoredRemoved.hasObject("Differences")); + PvlObject differences = compareIgnored_IgnoredRemoved.findObject("Differences"); + EXPECT_EQ(differences["Filename"][0].toStdString(), "ignored_removed.net"); + EXPECT_EQ(differences["Filename"][1].toStdString(), "removed.net"); + EXPECT_EQ(differences.groups(), 0); + EXPECT_EQ(differences.objects(), 0); +} + + +/** + * CnetthinnerMinMaxPoints + * + * Runs cnetthinner three times with different maxpoints (50, 200, + * 400) and verifies the number of points in the output ControlNetworks. + * + * Input... + * 1) ControlNet with 481 points (data/cnetthinner/customPointsTruth.pvl) + * 2) maxpoints=50 (200, 400) + * 3) suppressed=remove (default) + * expected + * maxpoints = 50 => 50.net with 101 points + * = 200 => 200.net with 417 points + * = 400 => 400.net with 471 points + */ +TEST_F(Cnetthinner, FunctionalTestCnetthinnerMinMaxPoints) { + + QVector args = {"cnet=" + cnetFile, + "onet=" + tempDir.path() + "/50.net", + "maxpoints=50", + }; + UserInterface ui1(APP_XML, args); + + try { + cnetthinner(ui1); + } + catch(IException &e) { + FAIL() << e.toString().toStdString().c_str() << std::endl; + } + + ControlNet outNet50(tempDir.path()+ "/50.net"); + EXPECT_EQ(outNet50.GetNumPoints(), 101); + + args = {"cnet=" + cnetFile, + "onet=" + tempDir.path() + "/200.net", + "maxpoints=200", + }; + UserInterface ui2(APP_XML, args); + + try { + cnetthinner(ui2); + } + catch(IException &e) { + FAIL() << e.toString().toStdString().c_str() << std::endl; + } + + ControlNet outNet200(tempDir.path()+ "/200.net"); + EXPECT_EQ(outNet200.GetNumPoints(), 417); + + args = {"cnet=" + cnetFile, + "onet=" + tempDir.path() + "/400.net", + "maxpoints=400", + }; + UserInterface ui3(APP_XML, args); + + try { + cnetthinner(ui3); + } + catch(IException &e) { + FAIL() << e.toString().toStdString().c_str() << std::endl; + } + + ControlNet outNet400(tempDir.path()+"/400.net"); + EXPECT_EQ(outNet400.GetNumPoints(), 471); +} + + +/** + * CnetthinnerTolerance + * + * Runs cnetthinner three times with maxpoints = 200 and different + * tolerances (0.0, 0.5, 1.0) and verifies number of points in + * output ControlNetworks. + * + * Input... + * 1) ControlNet with 481 points (data/cnetthinner/customPointsTruth.pvl) + * 2) maxpoints=200 + * 3) tolerance=0.0 (0.5, 1.0) + * 4) suppressed=remove (default) + * + * expected + * tolerance = 0.0 => tolSmall.net with 427 points + * tolerance = 0.5 => tolMedium.net with 418 points + * tolerance = 1.0 => tolLarge.net with 1 point + */ +TEST_F(Cnetthinner, FunctionalTestCnetthinnerTolerance) { + + QVector args = {"cnet=" + cnetFile, + "onet=" + tempDir.path() + "/tolSmall.net", + "maxpoints=200", + "tolerance=0.0" + }; + UserInterface ui1(APP_XML, args); + + try { + cnetthinner(ui1); + } + catch(IException &e) { + FAIL() << e.toString().toStdString().c_str() << std::endl; + } + + ControlNet smallTol(tempDir.path()+"/tolSmall.net"); + EXPECT_EQ(smallTol.GetNumPoints(), 427); + + args = {"cnet=" + cnetFile, + "onet=" + tempDir.path() + "/tolMedium.net", + "maxpoints=200", + "tolerance=0.5" + }; + UserInterface ui2(APP_XML, args); + + try { + cnetthinner(ui2); + } + catch(IException &e) { + FAIL() << e.toString().toStdString().c_str() << std::endl; + } + + ControlNet mediumTol(tempDir.path()+"/tolMedium.net"); + EXPECT_EQ(mediumTol.GetNumPoints(), 418); + + args = {"cnet=" + cnetFile, + "onet=" + tempDir.path() + "/tolLarge.net", + "maxpoints=200", + "tolerance=1.0" + }; + UserInterface ui3(APP_XML, args); + + try { + cnetthinner(ui3); + } + catch(IException &e) { + FAIL() << e.toString().toStdString().c_str() << std::endl; + } + + ControlNet largeTol(tempDir.path()+"/tolLarge.net"); + EXPECT_EQ(largeTol.GetNumPoints(), 1); +} + + +/** + * CnetthinnerWeight + * + * Runs cnetthinner four times with maxpoints=200 and different weights + * (0.0, 0.5, 1.0, 10,000.0) and verifies number of points in output + * control networks. Note all output nets contain 417 points. + * + * Input... + * 1) ControlNet with 481 points (data/cnetthinner/customPointsTruth.pvl) + * 2) maxpoints=200 + * 3) weight=0.0 (0.5, 1.0, 10,000.0) + * 4) suppressed=remove (default) + * expected + * weight = 0.0 => Small.net with 417 points + * weight = 0.5 => Medium.net with 417 points + * weight = 1.0 => Large.net with 417 points + * weight = 10,000.0 => XLarge.net with 417 points + */ +TEST_F(Cnetthinner, FunctionalTestCnetthinnerWeight) { + + QVector args = {"cnet=" + cnetFile, + "onet=" + tempDir.path() + "/Small.net", + "maxpoints=200", + "weight=0.0" + }; + UserInterface ui1(APP_XML, args); + + try { + cnetthinner(ui1); + } + catch(IException &e) { + FAIL() << e.toString().toStdString().c_str() << std::endl; + } + + ControlNet smallWeight(tempDir.path()+"/Small.net"); + EXPECT_EQ(smallWeight.GetNumPoints(), 417); + + args = {"cnet=" + cnetFile, + "onet=" + tempDir.path() + "/Medium.net", + "maxpoints=200", + "weight=0.5" + }; + UserInterface ui2(APP_XML, args); + + try { + cnetthinner(ui2); + } + catch(IException &e) { + FAIL() << e.toString().toStdString().c_str() << std::endl; + } + + ControlNet mediumWeight(tempDir.path()+"/Medium.net"); + EXPECT_EQ(mediumWeight.GetNumPoints(), 417); + + args = {"cnet=" + cnetFile, + "onet=" + tempDir.path() + "/Large.net", + "maxpoints=200", + "weight=1.0" + }; + UserInterface ui3(APP_XML, args); + + try { + cnetthinner(ui3); + } + catch(IException &e) { + FAIL() << e.toString().toStdString().c_str() << std::endl; + } + + ControlNet largeWeight(tempDir.path() + "/Large.net"); + EXPECT_EQ(largeWeight.GetNumPoints(), 417); + + args = {"cnet=" + cnetFile, + "onet=" + tempDir.path() + "/XLarge.net", + "maxpoints=200", + "weight=10000.0" + }; + UserInterface ui4(APP_XML, args); + + try { + cnetthinner(ui4); + } + catch(IException &e) { + FAIL() << e.toString().toStdString().c_str() << std::endl; + } + + ControlNet xLargeWeight(tempDir.path() + "/XLarge.net"); + EXPECT_EQ(xLargeWeight.GetNumPoints(), 417); +} diff --git a/isis/tests/data/cnetedit/I07873009RDR.dstr.cub.label.pvl b/isis/tests/data/cnetedit/I07873009RDR.dstr.cub.label.pvl new file mode 100644 index 0000000000..bea220d69b --- /dev/null +++ b/isis/tests/data/cnetedit/I07873009RDR.dstr.cub.label.pvl @@ -0,0 +1,387 @@ +Object = IsisCube + Object = Core + StartByte = 65537 + Format = Tile + TileSamples = 320 + TileLines = 472 + + Group = Dimensions + Samples = 320 + Lines = 17936 + Bands = 1 + End_Group + + Group = Pixels + Type = Real + ByteOrder = Lsb + Base = 0.0 + Multiplier = 1.0 + End_Group + End_Object + + Group = Instrument + SpacecraftName = MARS_ODYSSEY + InstrumentId = THEMIS_IR + TargetName = MARS + MissionPhaseName = MAPPING + StartTime = 2003-09-23T15:42:25.400 + StopTime = 2003-09-23T15:52:23.262 + SpacecraftClockCount = 748799078.000 + GainNumber = 16 + OffsetNumber = 2 + MissingScanLines = 0 + TimeDelayIntegration = ENABLED + SpacecraftClockOffset = 0.0 + End_Group + + Group = Archive + DataSetId = ODY-M-THM-3-IRRDR-V1.0 + ProducerId = ODY_THM_TEAM + ProductId = I07873009RDR + ProductCreationTime = 2004-10-14T00:21:58 + ProductVersionId = 1.1 + OrbitNumber = 07873 + FlightSoftwareVersionId = 1.00 + CommandSequenceNumber = 7873 + Description = "No Description Given" + End_Group + + Group = BandBin + OriginalBand = 2 + Center = 12.57 + Width = 0.81 + FilterNumber = 9 + End_Group + + Group = Kernels + NaifFrameCode = -53031 + LeapSecond = $base/kernels/lsk/naif0009.tls + TargetAttitudeShape = $base/kernels/pck/pck00009.tpc + TargetPosition = (Table, $base/kernels/spk/de405.bsp) + InstrumentPointing = (Table, $odyssey/kernels/ck/m01_sc_map7.bc, + $odyssey/kernels/fk/m01_v29.tf) + Instrument = Null + SpacecraftClock = $odyssey/kernels/sclk/ORB1_SCLKSCET.00184.tsc + InstrumentPosition = (Table, $odyssey/kernels/spk/m01_map7.bsp) + InstrumentAddendum = $odyssey/kernels/iak/themisAddendum003.ti + ShapeModel = $base/dems/molaMarsPlanetaryRadius0005.cub + InstrumentPositionQuality = Reconstructed + InstrumentPointingQuality = Reconstructed + CameraVersion = 2 + End_Group +End_Object + +Object = Label + Bytes = 65536 +End_Object + +Object = Table + Name = InstrumentPointing + StartByte = 23023617 + Bytes = 8960 + Records = 140 + ByteOrder = Lsb + TimeDependentFrames = (-53000, 16, 1) + ConstantFrames = (-53031, -53030, -53000) + ConstantRotation = (0.0013835021734055, 0.011529976186854, + 0.99993257051207, 0.28811330695433, 0.95752799265849, + -0.011439651709814, -0.95759532594806, + 0.28810970640458, -0.0019971975093594) + CkTableStartTime = 117603812.11191 + CkTableEndTime = 117604414.30884 + CkTableOriginalSize = 17937 + Description = "Created by spiceinit" + Kernels = ($odyssey/kernels/ck/m01_sc_map7.bc, + $odyssey/kernels/fk/m01_v29.tf) + + Group = Field + Name = J2000Q0 + Type = Double + Size = 1 + End_Group + + Group = Field + Name = J2000Q1 + Type = Double + Size = 1 + End_Group + + Group = Field + Name = J2000Q2 + Type = Double + Size = 1 + End_Group + + Group = Field + Name = J2000Q3 + Type = Double + Size = 1 + End_Group + + Group = Field + Name = AV1 + Type = Double + Size = 1 + End_Group + + Group = Field + Name = AV2 + Type = Double + Size = 1 + End_Group + + Group = Field + Name = AV3 + Type = Double + Size = 1 + End_Group + + Group = Field + Name = ET + Type = Double + Size = 1 + End_Group +End_Object + +Object = Table + Name = InstrumentPosition + StartByte = 23032577 + Bytes = 4200 + Records = 75 + ByteOrder = Lsb + CacheType = HermiteSpline + SpkTableStartTime = 117603812.11191 + SpkTableEndTime = 117604414.30884 + SpkTableOriginalSize = 17937.0 + Description = "Created by spiceinit" + Kernels = $odyssey/kernels/spk/m01_map7.bsp + + Group = Field + Name = J2000X + Type = Double + Size = 1 + End_Group + + Group = Field + Name = J2000Y + Type = Double + Size = 1 + End_Group + + Group = Field + Name = J2000Z + Type = Double + Size = 1 + End_Group + + Group = Field + Name = J2000XV + Type = Double + Size = 1 + End_Group + + Group = Field + Name = J2000YV + Type = Double + Size = 1 + End_Group + + Group = Field + Name = J2000ZV + Type = Double + Size = 1 + End_Group + + Group = Field + Name = ET + Type = Double + Size = 1 + End_Group +End_Object + +Object = Table + Name = BodyRotation + StartByte = 23036777 + Bytes = 128 + Records = 2 + ByteOrder = Lsb + TimeDependentFrames = (10014, 1) + CkTableStartTime = 117603812.11191 + CkTableEndTime = 117604414.30884 + CkTableOriginalSize = 2 + Description = "Created by spiceinit" + Kernels = ($base/kernels/spk/de405.bsp, + $base/kernels/pck/pck00009.tpc) + SolarLongitude = 266.33576028989 + + Group = Field + Name = J2000Q0 + Type = Double + Size = 1 + End_Group + + Group = Field + Name = J2000Q1 + Type = Double + Size = 1 + End_Group + + Group = Field + Name = J2000Q2 + Type = Double + Size = 1 + End_Group + + Group = Field + Name = J2000Q3 + Type = Double + Size = 1 + End_Group + + Group = Field + Name = AV1 + Type = Double + Size = 1 + End_Group + + Group = Field + Name = AV2 + Type = Double + Size = 1 + End_Group + + Group = Field + Name = AV3 + Type = Double + Size = 1 + End_Group + + Group = Field + Name = ET + Type = Double + Size = 1 + End_Group +End_Object + +Object = Table + Name = SunPosition + StartByte = 23036905 + Bytes = 112 + Records = 2 + ByteOrder = Lsb + CacheType = Linear + SpkTableStartTime = 117603812.11191 + SpkTableEndTime = 117604414.30884 + SpkTableOriginalSize = 2.0 + Description = "Created by spiceinit" + Kernels = $base/kernels/spk/de405.bsp + + Group = Field + Name = J2000X + Type = Double + Size = 1 + End_Group + + Group = Field + Name = J2000Y + Type = Double + Size = 1 + End_Group + + Group = Field + Name = J2000Z + Type = Double + Size = 1 + End_Group + + Group = Field + Name = J2000XV + Type = Double + Size = 1 + End_Group + + Group = Field + Name = J2000YV + Type = Double + Size = 1 + End_Group + + Group = Field + Name = J2000ZV + Type = Double + Size = 1 + End_Group + + Group = Field + Name = ET + Type = Double + Size = 1 + End_Group +End_Object + +Object = Table + Name = CameraStatistics + StartByte = 23037017 + Bytes = 624 + Records = 12 + ByteOrder = Lsb + + Group = Field + Name = Name + Type = Text + Size = 20 + End_Group + + Group = Field + Name = Minimum + Type = Double + Size = 1 + End_Group + + Group = Field + Name = Maximum + Type = Double + Size = 1 + End_Group + + Group = Field + Name = Average + Type = Double + Size = 1 + End_Group + + Group = Field + Name = StandardDeviation + Type = Double + Size = 1 + End_Group +End_Object + +Object = History + Name = IsisCube + StartByte = 23073798 + Bytes = 4311 +End_Object + +Object = NaifKeywords + BODY499_RADII = (3396.19, 3396.19, 3376.2) + BODY_FRAME_CODE = 10014 + CLOCK_ET_-53_748799078.000_COMPUTED = b4105486f7099c41 + INS-53031_TRANSX = (0.0, 0.05, 0.0) + INS-53031_TRANSY = (0.0, 0.0, 0.05) + INS-53031_ITRANSS = (0.0, 20.0, 0.0) + INS-53031_ITRANSL = (0.0, 0.0, 20.0) +End_Object + +Object = Polygon + Name = Footprint + StartByte = 23037641 + Bytes = 31880 +End_Object + +Object = OriginalLabel + Name = IsisCube + StartByte = 23069521 + Bytes = 4277 +End_Object +End diff --git a/isis/tests/data/cnetedit/I09477002RDR.dstr.cub.label.pvl b/isis/tests/data/cnetedit/I09477002RDR.dstr.cub.label.pvl new file mode 100644 index 0000000000..84d977c639 --- /dev/null +++ b/isis/tests/data/cnetedit/I09477002RDR.dstr.cub.label.pvl @@ -0,0 +1,387 @@ +Object = IsisCube + Object = Core + StartByte = 65537 + Format = Tile + TileSamples = 320 + TileLines = 128 + + Group = Dimensions + Samples = 320 + Lines = 10768 + Bands = 1 + End_Group + + Group = Pixels + Type = Real + ByteOrder = Lsb + Base = 0.0 + Multiplier = 1.0 + End_Group + End_Object + + Group = Instrument + SpacecraftName = MARS_ODYSSEY + InstrumentId = THEMIS_IR + TargetName = MARS + MissionPhaseName = MAPPING + StartTime = 2004-02-02T16:17:44.937 + StopTime = 2004-02-02T16:23:43.874 + SpacecraftClockCount = 760206015.230 + GainNumber = 16 + OffsetNumber = 2 + MissingScanLines = 0 + TimeDelayIntegration = ENABLED + SpacecraftClockOffset = 0.0 + End_Group + + Group = Archive + DataSetId = ODY-M-THM-3-IRRDR-V1.0 + ProducerId = ODY_THM_TEAM + ProductId = I09477002RDR + ProductCreationTime = 2004-10-14T18:27:41 + ProductVersionId = 1.1 + OrbitNumber = 09477 + FlightSoftwareVersionId = 1.00 + CommandSequenceNumber = 9477 + Description = "No Description Given" + End_Group + + Group = BandBin + OriginalBand = 9 + Center = 12.57 + Width = 0.81 + FilterNumber = 9 + End_Group + + Group = Kernels + NaifFrameCode = -53031 + LeapSecond = $base/kernels/lsk/naif0009.tls + TargetAttitudeShape = $base/kernels/pck/pck00009.tpc + TargetPosition = (Table, $base/kernels/spk/de405.bsp) + InstrumentPointing = (Table, $odyssey/kernels/ck/m01_sc_map9.bc, + $odyssey/kernels/fk/m01_v29.tf) + Instrument = Null + SpacecraftClock = $odyssey/kernels/sclk/ORB1_SCLKSCET.00184.tsc + InstrumentPosition = (Table, $odyssey/kernels/spk/m01_map9.bsp) + InstrumentAddendum = $odyssey/kernels/iak/themisAddendum003.ti + ShapeModel = $base/dems/molaMarsPlanetaryRadius0005.cub + InstrumentPositionQuality = Reconstructed + InstrumentPointingQuality = Reconstructed + CameraVersion = 2 + End_Group +End_Object + +Object = Label + Bytes = 65536 +End_Object + +Object = Table + Name = InstrumentPointing + StartByte = 13991937 + Bytes = 5504 + Records = 86 + ByteOrder = Lsb + TimeDependentFrames = (-53000, 16, 1) + ConstantFrames = (-53031, -53030, -53000) + ConstantRotation = (0.0013835021734055, 0.011529976186854, + 0.99993257051207, 0.28811330695433, 0.95752799265849, + -0.011439651709814, -0.95759532594806, + 0.28810970640458, -0.0019971975093594) + CkTableStartTime = 129010729.38783 + CkTableEndTime = 129011095.24634 + CkTableOriginalSize = 10769 + Description = "Created by spiceinit" + Kernels = ($odyssey/kernels/ck/m01_sc_map9.bc, + $odyssey/kernels/fk/m01_v29.tf) + + Group = Field + Name = J2000Q0 + Type = Double + Size = 1 + End_Group + + Group = Field + Name = J2000Q1 + Type = Double + Size = 1 + End_Group + + Group = Field + Name = J2000Q2 + Type = Double + Size = 1 + End_Group + + Group = Field + Name = J2000Q3 + Type = Double + Size = 1 + End_Group + + Group = Field + Name = AV1 + Type = Double + Size = 1 + End_Group + + Group = Field + Name = AV2 + Type = Double + Size = 1 + End_Group + + Group = Field + Name = AV3 + Type = Double + Size = 1 + End_Group + + Group = Field + Name = ET + Type = Double + Size = 1 + End_Group +End_Object + +Object = Table + Name = InstrumentPosition + StartByte = 13997441 + Bytes = 1736 + Records = 31 + ByteOrder = Lsb + CacheType = HermiteSpline + SpkTableStartTime = 129010729.38783 + SpkTableEndTime = 129011095.24634 + SpkTableOriginalSize = 10769.0 + Description = "Created by spiceinit" + Kernels = $odyssey/kernels/spk/m01_map9.bsp + + Group = Field + Name = J2000X + Type = Double + Size = 1 + End_Group + + Group = Field + Name = J2000Y + Type = Double + Size = 1 + End_Group + + Group = Field + Name = J2000Z + Type = Double + Size = 1 + End_Group + + Group = Field + Name = J2000XV + Type = Double + Size = 1 + End_Group + + Group = Field + Name = J2000YV + Type = Double + Size = 1 + End_Group + + Group = Field + Name = J2000ZV + Type = Double + Size = 1 + End_Group + + Group = Field + Name = ET + Type = Double + Size = 1 + End_Group +End_Object + +Object = Table + Name = BodyRotation + StartByte = 13999177 + Bytes = 128 + Records = 2 + ByteOrder = Lsb + TimeDependentFrames = (10014, 1) + CkTableStartTime = 129010729.38783 + CkTableEndTime = 129011095.24634 + CkTableOriginalSize = 2 + Description = "Created by spiceinit" + Kernels = ($base/kernels/spk/de405.bsp, + $base/kernels/pck/pck00009.tpc) + SolarLongitude = 343.59609359065 + + Group = Field + Name = J2000Q0 + Type = Double + Size = 1 + End_Group + + Group = Field + Name = J2000Q1 + Type = Double + Size = 1 + End_Group + + Group = Field + Name = J2000Q2 + Type = Double + Size = 1 + End_Group + + Group = Field + Name = J2000Q3 + Type = Double + Size = 1 + End_Group + + Group = Field + Name = AV1 + Type = Double + Size = 1 + End_Group + + Group = Field + Name = AV2 + Type = Double + Size = 1 + End_Group + + Group = Field + Name = AV3 + Type = Double + Size = 1 + End_Group + + Group = Field + Name = ET + Type = Double + Size = 1 + End_Group +End_Object + +Object = Table + Name = SunPosition + StartByte = 13999305 + Bytes = 112 + Records = 2 + ByteOrder = Lsb + CacheType = Linear + SpkTableStartTime = 129010729.38783 + SpkTableEndTime = 129011095.24634 + SpkTableOriginalSize = 2.0 + Description = "Created by spiceinit" + Kernels = $base/kernels/spk/de405.bsp + + Group = Field + Name = J2000X + Type = Double + Size = 1 + End_Group + + Group = Field + Name = J2000Y + Type = Double + Size = 1 + End_Group + + Group = Field + Name = J2000Z + Type = Double + Size = 1 + End_Group + + Group = Field + Name = J2000XV + Type = Double + Size = 1 + End_Group + + Group = Field + Name = J2000YV + Type = Double + Size = 1 + End_Group + + Group = Field + Name = J2000ZV + Type = Double + Size = 1 + End_Group + + Group = Field + Name = ET + Type = Double + Size = 1 + End_Group +End_Object + +Object = Table + Name = CameraStatistics + StartByte = 13999417 + Bytes = 624 + Records = 12 + ByteOrder = Lsb + + Group = Field + Name = Name + Type = Text + Size = 20 + End_Group + + Group = Field + Name = Minimum + Type = Double + Size = 1 + End_Group + + Group = Field + Name = Maximum + Type = Double + Size = 1 + End_Group + + Group = Field + Name = Average + Type = Double + Size = 1 + End_Group + + Group = Field + Name = StandardDeviation + Type = Double + Size = 1 + End_Group +End_Object + +Object = History + Name = IsisCube + StartByte = 14024477 + Bytes = 4311 +End_Object + +Object = NaifKeywords + BODY499_RADII = (3396.19, 3396.19, 3376.2) + BODY_FRAME_CODE = 10014 + CLOCK_ET_-53_760206015.230_COMPUTED = e2727ca430c29e41 + INS-53031_TRANSX = (0.0, 0.05, 0.0) + INS-53031_TRANSY = (0.0, 0.0, 0.05) + INS-53031_ITRANSS = (0.0, 20.0, 0.0) + INS-53031_ITRANSL = (0.0, 0.0, 20.0) +End_Object + +Object = Polygon + Name = Footprint + StartByte = 14000041 + Bytes = 19582 +End_Object + +Object = OriginalLabel + Name = IsisCube + StartByte = 14019623 + Bytes = 4854 +End_Object +End diff --git a/isis/tests/data/cnetedit/I10101002RDR.dstr.cub.label.pvl b/isis/tests/data/cnetedit/I10101002RDR.dstr.cub.label.pvl new file mode 100644 index 0000000000..3801944460 --- /dev/null +++ b/isis/tests/data/cnetedit/I10101002RDR.dstr.cub.label.pvl @@ -0,0 +1,387 @@ +Object = IsisCube + Object = Core + StartByte = 65537 + Format = Tile + TileSamples = 320 + TileLines = 128 + + Group = Dimensions + Samples = 320 + Lines = 10768 + Bands = 1 + End_Group + + Group = Pixels + Type = Real + ByteOrder = Lsb + Base = 0.0 + Multiplier = 1.0 + End_Group + End_Object + + Group = Instrument + SpacecraftName = MARS_ODYSSEY + InstrumentId = THEMIS_IR + TargetName = MARS + MissionPhaseName = MAPPING + StartTime = 2004-03-25T01:17:41.845 + StopTime = 2004-03-25T01:23:40.774 + SpacecraftClockCount = 764644820.000 + GainNumber = 16 + OffsetNumber = 2 + MissingScanLines = 0 + TimeDelayIntegration = ENABLED + SpacecraftClockOffset = 0.0 + End_Group + + Group = Archive + DataSetId = ODY-M-THM-3-IRRDR-V1.0 + ProducerId = ODY_THM_TEAM + ProductId = I10101002RDR + ProductCreationTime = 2004-10-15T00:32:17 + ProductVersionId = 1.1 + OrbitNumber = 10101 + FlightSoftwareVersionId = 1.00 + CommandSequenceNumber = 10101 + Description = "No Description Given" + End_Group + + Group = BandBin + OriginalBand = 9 + Center = 12.57 + Width = 0.81 + FilterNumber = 9 + End_Group + + Group = Kernels + NaifFrameCode = -53031 + LeapSecond = $base/kernels/lsk/naif0009.tls + TargetAttitudeShape = $base/kernels/pck/pck00009.tpc + TargetPosition = (Table, $base/kernels/spk/de405.bsp) + InstrumentPointing = (Table, $odyssey/kernels/ck/m01_sc_map9.bc, + $odyssey/kernels/fk/m01_v29.tf) + Instrument = Null + SpacecraftClock = $odyssey/kernels/sclk/ORB1_SCLKSCET.00184.tsc + InstrumentPosition = (Table, $odyssey/kernels/spk/m01_map9.bsp) + InstrumentAddendum = $odyssey/kernels/iak/themisAddendum003.ti + ShapeModel = $base/dems/molaMarsPlanetaryRadius0005.cub + InstrumentPositionQuality = Reconstructed + InstrumentPointingQuality = Reconstructed + CameraVersion = 2 + End_Group +End_Object + +Object = Label + Bytes = 65536 +End_Object + +Object = Table + Name = InstrumentPointing + StartByte = 13991937 + Bytes = 5504 + Records = 86 + ByteOrder = Lsb + TimeDependentFrames = (-53000, 16, 1) + ConstantFrames = (-53031, -53030, -53000) + ConstantRotation = (0.0013835021734055, 0.011529976186854, + 0.99993257051207, 0.28811330695433, 0.95752799265849, + -0.011439651709814, -0.95759532594806, + 0.28810970640458, -0.0019971975093594) + CkTableStartTime = 133449526.29696 + CkTableEndTime = 133449892.15548 + CkTableOriginalSize = 10769 + Description = "Created by spiceinit" + Kernels = ($odyssey/kernels/ck/m01_sc_map9.bc, + $odyssey/kernels/fk/m01_v29.tf) + + Group = Field + Name = J2000Q0 + Type = Double + Size = 1 + End_Group + + Group = Field + Name = J2000Q1 + Type = Double + Size = 1 + End_Group + + Group = Field + Name = J2000Q2 + Type = Double + Size = 1 + End_Group + + Group = Field + Name = J2000Q3 + Type = Double + Size = 1 + End_Group + + Group = Field + Name = AV1 + Type = Double + Size = 1 + End_Group + + Group = Field + Name = AV2 + Type = Double + Size = 1 + End_Group + + Group = Field + Name = AV3 + Type = Double + Size = 1 + End_Group + + Group = Field + Name = ET + Type = Double + Size = 1 + End_Group +End_Object + +Object = Table + Name = InstrumentPosition + StartByte = 13997441 + Bytes = 1568 + Records = 28 + ByteOrder = Lsb + CacheType = HermiteSpline + SpkTableStartTime = 133449526.29696 + SpkTableEndTime = 133449892.15548 + SpkTableOriginalSize = 10769.0 + Description = "Created by spiceinit" + Kernels = $odyssey/kernels/spk/m01_map9.bsp + + Group = Field + Name = J2000X + Type = Double + Size = 1 + End_Group + + Group = Field + Name = J2000Y + Type = Double + Size = 1 + End_Group + + Group = Field + Name = J2000Z + Type = Double + Size = 1 + End_Group + + Group = Field + Name = J2000XV + Type = Double + Size = 1 + End_Group + + Group = Field + Name = J2000YV + Type = Double + Size = 1 + End_Group + + Group = Field + Name = J2000ZV + Type = Double + Size = 1 + End_Group + + Group = Field + Name = ET + Type = Double + Size = 1 + End_Group +End_Object + +Object = Table + Name = BodyRotation + StartByte = 13999009 + Bytes = 128 + Records = 2 + ByteOrder = Lsb + TimeDependentFrames = (10014, 1) + CkTableStartTime = 133449526.29696 + CkTableEndTime = 133449892.15548 + CkTableOriginalSize = 2 + Description = "Created by spiceinit" + Kernels = ($base/kernels/spk/de405.bsp, + $base/kernels/pck/pck00009.tpc) + SolarLongitude = 9.5252197504187 + + Group = Field + Name = J2000Q0 + Type = Double + Size = 1 + End_Group + + Group = Field + Name = J2000Q1 + Type = Double + Size = 1 + End_Group + + Group = Field + Name = J2000Q2 + Type = Double + Size = 1 + End_Group + + Group = Field + Name = J2000Q3 + Type = Double + Size = 1 + End_Group + + Group = Field + Name = AV1 + Type = Double + Size = 1 + End_Group + + Group = Field + Name = AV2 + Type = Double + Size = 1 + End_Group + + Group = Field + Name = AV3 + Type = Double + Size = 1 + End_Group + + Group = Field + Name = ET + Type = Double + Size = 1 + End_Group +End_Object + +Object = Table + Name = SunPosition + StartByte = 13999137 + Bytes = 112 + Records = 2 + ByteOrder = Lsb + CacheType = Linear + SpkTableStartTime = 133449526.29696 + SpkTableEndTime = 133449892.15548 + SpkTableOriginalSize = 2.0 + Description = "Created by spiceinit" + Kernels = $base/kernels/spk/de405.bsp + + Group = Field + Name = J2000X + Type = Double + Size = 1 + End_Group + + Group = Field + Name = J2000Y + Type = Double + Size = 1 + End_Group + + Group = Field + Name = J2000Z + Type = Double + Size = 1 + End_Group + + Group = Field + Name = J2000XV + Type = Double + Size = 1 + End_Group + + Group = Field + Name = J2000YV + Type = Double + Size = 1 + End_Group + + Group = Field + Name = J2000ZV + Type = Double + Size = 1 + End_Group + + Group = Field + Name = ET + Type = Double + Size = 1 + End_Group +End_Object + +Object = Table + Name = CameraStatistics + StartByte = 13999249 + Bytes = 624 + Records = 12 + ByteOrder = Lsb + + Group = Field + Name = Name + Type = Text + Size = 20 + End_Group + + Group = Field + Name = Minimum + Type = Double + Size = 1 + End_Group + + Group = Field + Name = Maximum + Type = Double + Size = 1 + End_Group + + Group = Field + Name = Average + Type = Double + Size = 1 + End_Group + + Group = Field + Name = StandardDeviation + Type = Double + Size = 1 + End_Group +End_Object + +Object = History + Name = IsisCube + StartByte = 14024342 + Bytes = 4311 +End_Object + +Object = NaifKeywords + BODY499_RADII = (3396.19, 3396.19, 3376.2) + BODY_FRAME_CODE = 10014 + CLOCK_ET_-53_764644820.000_COMPUTED = 05661fd81cd19f41 + INS-53031_TRANSX = (0.0, 0.05, 0.0) + INS-53031_TRANSY = (0.0, 0.0, 0.05) + INS-53031_ITRANSS = (0.0, 20.0, 0.0) + INS-53031_ITRANSL = (0.0, 0.0, 20.0) +End_Object + +Object = Polygon + Name = Footprint + StartByte = 13999873 + Bytes = 19582 +End_Object + +Object = OriginalLabel + Name = IsisCube + StartByte = 14019455 + Bytes = 4887 +End_Object +End diff --git a/isis/tests/data/cnetedit/I10413004RDR.dstr.cub.label.pvl b/isis/tests/data/cnetedit/I10413004RDR.dstr.cub.label.pvl new file mode 100644 index 0000000000..fa1d80b26f --- /dev/null +++ b/isis/tests/data/cnetedit/I10413004RDR.dstr.cub.label.pvl @@ -0,0 +1,387 @@ +Object = IsisCube + Object = Core + StartByte = 65537 + Format = Tile + TileSamples = 320 + TileLines = 450 + + Group = Dimensions + Samples = 320 + Lines = 3600 + Bands = 1 + End_Group + + Group = Pixels + Type = Real + ByteOrder = Lsb + Base = 0.0 + Multiplier = 1.0 + End_Group + End_Object + + Group = Instrument + SpacecraftName = MARS_ODYSSEY + InstrumentId = THEMIS_IR + TargetName = MARS + MissionPhaseName = MAPPING + StartTime = 2004-04-19T17:50:38.067 + StopTime = 2004-04-19T17:52:38.067 + SpacecraftClockCount = 766864399.204 + GainNumber = 16 + OffsetNumber = 2 + MissingScanLines = 0 + TimeDelayIntegration = ENABLED + SpacecraftClockOffset = 0.0 + End_Group + + Group = Archive + DataSetId = ODY-M-THM-3-IRRDR-V1.0 + ProducerId = ODY_THM_TEAM + ProductId = I10413004RDR + ProductCreationTime = 2004-09-28T13:50:33 + ProductVersionId = 1.0 + OrbitNumber = 10413 + FlightSoftwareVersionId = 1.00 + CommandSequenceNumber = 10413 + Description = "No Description Given" + End_Group + + Group = BandBin + OriginalBand = 9 + Center = 12.57 + Width = 0.81 + FilterNumber = 9 + End_Group + + Group = Kernels + NaifFrameCode = -53031 + LeapSecond = $base/kernels/lsk/naif0009.tls + TargetAttitudeShape = $base/kernels/pck/pck00009.tpc + TargetPosition = (Table, $base/kernels/spk/de405.bsp) + InstrumentPointing = (Table, $odyssey/kernels/ck/m01_sc_map10.bc, + $odyssey/kernels/fk/m01_v29.tf) + Instrument = Null + SpacecraftClock = $odyssey/kernels/sclk/ORB1_SCLKSCET.00184.tsc + InstrumentPosition = (Table, $odyssey/kernels/spk/m01_map10.bsp) + InstrumentAddendum = $odyssey/kernels/iak/themisAddendum003.ti + ShapeModel = $base/dems/molaMarsPlanetaryRadius0005.cub + InstrumentPositionQuality = Reconstructed + InstrumentPointingQuality = Reconstructed + CameraVersion = 2 + End_Group +End_Object + +Object = Label + Bytes = 65536 +End_Object + +Object = Table + Name = InstrumentPointing + StartByte = 4673537 + Bytes = 2048 + Records = 32 + ByteOrder = Lsb + TimeDependentFrames = (-53000, 16, 1) + ConstantFrames = (-53031, -53030, -53000) + ConstantRotation = (0.0013835021734055, 0.011529976186854, + 0.99993257051207, 0.28811330695433, 0.95752799265849, + -0.011439651709814, -0.95759532594806, + 0.28810970640458, -0.0019971975093594) + CkTableStartTime = 135669102.51927 + CkTableEndTime = 135669229.77585 + CkTableOriginalSize = 3601 + Description = "Created by spiceinit" + Kernels = ($odyssey/kernels/ck/m01_sc_map10.bc, + $odyssey/kernels/fk/m01_v29.tf) + + Group = Field + Name = J2000Q0 + Type = Double + Size = 1 + End_Group + + Group = Field + Name = J2000Q1 + Type = Double + Size = 1 + End_Group + + Group = Field + Name = J2000Q2 + Type = Double + Size = 1 + End_Group + + Group = Field + Name = J2000Q3 + Type = Double + Size = 1 + End_Group + + Group = Field + Name = AV1 + Type = Double + Size = 1 + End_Group + + Group = Field + Name = AV2 + Type = Double + Size = 1 + End_Group + + Group = Field + Name = AV3 + Type = Double + Size = 1 + End_Group + + Group = Field + Name = ET + Type = Double + Size = 1 + End_Group +End_Object + +Object = Table + Name = InstrumentPosition + StartByte = 4675585 + Bytes = 336 + Records = 6 + ByteOrder = Lsb + CacheType = HermiteSpline + SpkTableStartTime = 135669102.51927 + SpkTableEndTime = 135669229.77585 + SpkTableOriginalSize = 3601.0 + Description = "Created by spiceinit" + Kernels = $odyssey/kernels/spk/m01_map10.bsp + + Group = Field + Name = J2000X + Type = Double + Size = 1 + End_Group + + Group = Field + Name = J2000Y + Type = Double + Size = 1 + End_Group + + Group = Field + Name = J2000Z + Type = Double + Size = 1 + End_Group + + Group = Field + Name = J2000XV + Type = Double + Size = 1 + End_Group + + Group = Field + Name = J2000YV + Type = Double + Size = 1 + End_Group + + Group = Field + Name = J2000ZV + Type = Double + Size = 1 + End_Group + + Group = Field + Name = ET + Type = Double + Size = 1 + End_Group +End_Object + +Object = Table + Name = BodyRotation + StartByte = 4675921 + Bytes = 128 + Records = 2 + ByteOrder = Lsb + TimeDependentFrames = (10014, 1) + CkTableStartTime = 135669102.51927 + CkTableEndTime = 135669229.77585 + CkTableOriginalSize = 2 + Description = "Created by spiceinit" + Kernels = ($base/kernels/spk/de405.bsp, + $base/kernels/pck/pck00009.tpc) + SolarLongitude = 21.755944220554 + + Group = Field + Name = J2000Q0 + Type = Double + Size = 1 + End_Group + + Group = Field + Name = J2000Q1 + Type = Double + Size = 1 + End_Group + + Group = Field + Name = J2000Q2 + Type = Double + Size = 1 + End_Group + + Group = Field + Name = J2000Q3 + Type = Double + Size = 1 + End_Group + + Group = Field + Name = AV1 + Type = Double + Size = 1 + End_Group + + Group = Field + Name = AV2 + Type = Double + Size = 1 + End_Group + + Group = Field + Name = AV3 + Type = Double + Size = 1 + End_Group + + Group = Field + Name = ET + Type = Double + Size = 1 + End_Group +End_Object + +Object = Table + Name = SunPosition + StartByte = 4676049 + Bytes = 112 + Records = 2 + ByteOrder = Lsb + CacheType = Linear + SpkTableStartTime = 135669102.51927 + SpkTableEndTime = 135669229.77585 + SpkTableOriginalSize = 2.0 + Description = "Created by spiceinit" + Kernels = $base/kernels/spk/de405.bsp + + Group = Field + Name = J2000X + Type = Double + Size = 1 + End_Group + + Group = Field + Name = J2000Y + Type = Double + Size = 1 + End_Group + + Group = Field + Name = J2000Z + Type = Double + Size = 1 + End_Group + + Group = Field + Name = J2000XV + Type = Double + Size = 1 + End_Group + + Group = Field + Name = J2000YV + Type = Double + Size = 1 + End_Group + + Group = Field + Name = J2000ZV + Type = Double + Size = 1 + End_Group + + Group = Field + Name = ET + Type = Double + Size = 1 + End_Group +End_Object + +Object = Table + Name = CameraStatistics + StartByte = 4676161 + Bytes = 624 + Records = 12 + ByteOrder = Lsb + + Group = Field + Name = Name + Type = Text + Size = 20 + End_Group + + Group = Field + Name = Minimum + Type = Double + Size = 1 + End_Group + + Group = Field + Name = Maximum + Type = Double + Size = 1 + End_Group + + Group = Field + Name = Average + Type = Double + Size = 1 + End_Group + + Group = Field + Name = StandardDeviation + Type = Double + Size = 1 + End_Group +End_Object + +Object = History + Name = IsisCube + StartByte = 4688865 + Bytes = 4311 +End_Object + +Object = NaifKeywords + BODY499_RADII = (3396.19, 3396.19, 3376.2) + BODY_FRAME_CODE = 10014 + CLOCK_ET_-53_766864399.204_COMPUTED = a08581dc4a2ca041 + INS-53031_TRANSX = (0.0, 0.05, 0.0) + INS-53031_TRANSY = (0.0, 0.0, 0.05) + INS-53031_ITRANSS = (0.0, 20.0, 0.0) + INS-53031_ITRANSL = (0.0, 0.0, 20.0) +End_Object + +Object = Polygon + Name = Footprint + StartByte = 4676785 + Bytes = 7198 +End_Object + +Object = OriginalLabel + Name = IsisCube + StartByte = 4683983 + Bytes = 4882 +End_Object +End diff --git a/isis/tests/data/cnetedit/I18400005RDR.dstr.cub.label.pvl b/isis/tests/data/cnetedit/I18400005RDR.dstr.cub.label.pvl new file mode 100644 index 0000000000..3c7096ad62 --- /dev/null +++ b/isis/tests/data/cnetedit/I18400005RDR.dstr.cub.label.pvl @@ -0,0 +1,388 @@ +Object = IsisCube + Object = Core + StartByte = 65537 + Format = Tile + TileSamples = 320 + TileLines = 128 + + Group = Dimensions + Samples = 320 + Lines = 10768 + Bands = 1 + End_Group + + Group = Pixels + Type = Real + ByteOrder = Lsb + Base = 0.0 + Multiplier = 1.0 + End_Group + End_Object + + Group = Instrument + SpacecraftName = MARS_ODYSSEY + InstrumentId = THEMIS_IR + TargetName = MARS + MissionPhaseName = EXTENDED-1 + StartTime = 2006-02-06T08:12:21.766 + StopTime = 2006-02-06T08:18:20.703 + SpacecraftClockCount = 823680993.230 + GainNumber = 16 + OffsetNumber = 2 + MissingScanLines = 0 + TimeDelayIntegration = ENABLED + SpatialSumming = 1 + SpacecraftClockOffset = 0.0 + End_Group + + Group = Archive + DataSetId = ODY-M-THM-3-IRRDR-V1.0 + ProducerId = ODY_THM_TEAM + ProductId = I18400005RDR + ProductCreationTime = 2008-06-04T16:19:13 + ProductVersionId = 1.1 + OrbitNumber = 18400 + FlightSoftwareVersionId = 1.00 + CommandSequenceNumber = 18400 + Description = "No Description Given" + End_Group + + Group = BandBin + OriginalBand = 9 + Center = 12.57 + Width = 0.81 + FilterNumber = 9 + End_Group + + Group = Kernels + NaifFrameCode = -53031 + LeapSecond = $base/kernels/lsk/naif0009.tls + TargetAttitudeShape = $base/kernels/pck/pck00009.tpc + TargetPosition = (Table, $base/kernels/spk/de405.bsp) + InstrumentPointing = (Table, $odyssey/kernels/ck/m01_sc_ext6.bc, + $odyssey/kernels/fk/m01_v29.tf) + Instrument = Null + SpacecraftClock = $odyssey/kernels/sclk/ORB1_SCLKSCET.00184.tsc + InstrumentPosition = (Table, $odyssey/kernels/spk/m01_ext6.bsp) + InstrumentAddendum = $odyssey/kernels/iak/themisAddendum003.ti + ShapeModel = $base/dems/molaMarsPlanetaryRadius0005.cub + InstrumentPositionQuality = Reconstructed + InstrumentPointingQuality = Reconstructed + CameraVersion = 2 + End_Group +End_Object + +Object = Label + Bytes = 65536 +End_Object + +Object = Table + Name = InstrumentPointing + StartByte = 13991937 + Bytes = 9024 + Records = 141 + ByteOrder = Lsb + TimeDependentFrames = (-53000, 16, 1) + ConstantFrames = (-53031, -53030, -53000) + ConstantRotation = (0.0013835021734055, 0.011529976186854, + 0.99993257051207, 0.28811330695433, 0.95752799265849, + -0.011439651709814, -0.95759532594806, + 0.28810970640458, -0.0019971975093594) + CkTableStartTime = 192485606.20742 + CkTableEndTime = 192485972.06594 + CkTableOriginalSize = 10769 + Description = "Created by spiceinit" + Kernels = ($odyssey/kernels/ck/m01_sc_ext6.bc, + $odyssey/kernels/fk/m01_v29.tf) + + Group = Field + Name = J2000Q0 + Type = Double + Size = 1 + End_Group + + Group = Field + Name = J2000Q1 + Type = Double + Size = 1 + End_Group + + Group = Field + Name = J2000Q2 + Type = Double + Size = 1 + End_Group + + Group = Field + Name = J2000Q3 + Type = Double + Size = 1 + End_Group + + Group = Field + Name = AV1 + Type = Double + Size = 1 + End_Group + + Group = Field + Name = AV2 + Type = Double + Size = 1 + End_Group + + Group = Field + Name = AV3 + Type = Double + Size = 1 + End_Group + + Group = Field + Name = ET + Type = Double + Size = 1 + End_Group +End_Object + +Object = Table + Name = InstrumentPosition + StartByte = 14000961 + Bytes = 1736 + Records = 31 + ByteOrder = Lsb + CacheType = HermiteSpline + SpkTableStartTime = 192485606.20742 + SpkTableEndTime = 192485972.06594 + SpkTableOriginalSize = 10769.0 + Description = "Created by spiceinit" + Kernels = $odyssey/kernels/spk/m01_ext6.bsp + + Group = Field + Name = J2000X + Type = Double + Size = 1 + End_Group + + Group = Field + Name = J2000Y + Type = Double + Size = 1 + End_Group + + Group = Field + Name = J2000Z + Type = Double + Size = 1 + End_Group + + Group = Field + Name = J2000XV + Type = Double + Size = 1 + End_Group + + Group = Field + Name = J2000YV + Type = Double + Size = 1 + End_Group + + Group = Field + Name = J2000ZV + Type = Double + Size = 1 + End_Group + + Group = Field + Name = ET + Type = Double + Size = 1 + End_Group +End_Object + +Object = Table + Name = BodyRotation + StartByte = 14002697 + Bytes = 128 + Records = 2 + ByteOrder = Lsb + TimeDependentFrames = (10014, 1) + CkTableStartTime = 192485606.20742 + CkTableEndTime = 192485972.06594 + CkTableOriginalSize = 2 + Description = "Created by spiceinit" + Kernels = ($base/kernels/spk/de405.bsp, + $base/kernels/pck/pck00009.tpc) + SolarLongitude = 7.7251945911519 + + Group = Field + Name = J2000Q0 + Type = Double + Size = 1 + End_Group + + Group = Field + Name = J2000Q1 + Type = Double + Size = 1 + End_Group + + Group = Field + Name = J2000Q2 + Type = Double + Size = 1 + End_Group + + Group = Field + Name = J2000Q3 + Type = Double + Size = 1 + End_Group + + Group = Field + Name = AV1 + Type = Double + Size = 1 + End_Group + + Group = Field + Name = AV2 + Type = Double + Size = 1 + End_Group + + Group = Field + Name = AV3 + Type = Double + Size = 1 + End_Group + + Group = Field + Name = ET + Type = Double + Size = 1 + End_Group +End_Object + +Object = Table + Name = SunPosition + StartByte = 14002825 + Bytes = 112 + Records = 2 + ByteOrder = Lsb + CacheType = Linear + SpkTableStartTime = 192485606.20742 + SpkTableEndTime = 192485972.06594 + SpkTableOriginalSize = 2.0 + Description = "Created by spiceinit" + Kernels = $base/kernels/spk/de405.bsp + + Group = Field + Name = J2000X + Type = Double + Size = 1 + End_Group + + Group = Field + Name = J2000Y + Type = Double + Size = 1 + End_Group + + Group = Field + Name = J2000Z + Type = Double + Size = 1 + End_Group + + Group = Field + Name = J2000XV + Type = Double + Size = 1 + End_Group + + Group = Field + Name = J2000YV + Type = Double + Size = 1 + End_Group + + Group = Field + Name = J2000ZV + Type = Double + Size = 1 + End_Group + + Group = Field + Name = ET + Type = Double + Size = 1 + End_Group +End_Object + +Object = Table + Name = CameraStatistics + StartByte = 14002937 + Bytes = 624 + Records = 12 + ByteOrder = Lsb + + Group = Field + Name = Name + Type = Text + Size = 20 + End_Group + + Group = Field + Name = Minimum + Type = Double + Size = 1 + End_Group + + Group = Field + Name = Maximum + Type = Double + Size = 1 + End_Group + + Group = Field + Name = Average + Type = Double + Size = 1 + End_Group + + Group = Field + Name = StandardDeviation + Type = Double + Size = 1 + End_Group +End_Object + +Object = History + Name = IsisCube + StartByte = 14028182 + Bytes = 4311 +End_Object + +Object = NaifKeywords + BODY499_RADII = (3396.19, 3396.19, 3376.2) + BODY_FRAME_CODE = 10014 + CLOCK_ET_-53_823680993.230_COMPUTED = 68dbe1cb31f2a641 + INS-53031_TRANSX = (0.0, 0.05, 0.0) + INS-53031_TRANSY = (0.0, 0.0, 0.05) + INS-53031_ITRANSS = (0.0, 20.0, 0.0) + INS-53031_ITRANSL = (0.0, 0.0, 20.0) +End_Object + +Object = Polygon + Name = Footprint + StartByte = 14003561 + Bytes = 19582 +End_Object + +Object = OriginalLabel + Name = IsisCube + StartByte = 14023143 + Bytes = 5039 +End_Object +End diff --git a/isis/tests/data/cnetedit/I23604003RDR.dstr.cub.label.pvl b/isis/tests/data/cnetedit/I23604003RDR.dstr.cub.label.pvl new file mode 100644 index 0000000000..b71f721e2f --- /dev/null +++ b/isis/tests/data/cnetedit/I23604003RDR.dstr.cub.label.pvl @@ -0,0 +1,388 @@ +Object = IsisCube + Object = Core + StartByte = 65537 + Format = Tile + TileSamples = 320 + TileLines = 449 + + Group = Dimensions + Samples = 320 + Lines = 7184 + Bands = 1 + End_Group + + Group = Pixels + Type = Real + ByteOrder = Lsb + Base = 0.0 + Multiplier = 1.0 + End_Group + End_Object + + Group = Instrument + SpacecraftName = MARS_ODYSSEY + InstrumentId = THEMIS_IR + TargetName = MARS + MissionPhaseName = EXTENDED-1 + StartTime = 2007-04-10T19:24:04.439 + StopTime = 2007-04-10T19:28:03.903 + SpacecraftClockCount = 860700556.051 + GainNumber = 16 + OffsetNumber = 2 + MissingScanLines = 0 + TimeDelayIntegration = ENABLED + SpatialSumming = 1 + SpacecraftClockOffset = 0.0 + End_Group + + Group = Archive + DataSetId = ODY-M-THM-3-IRRDR-V1.0 + ProducerId = ODY_THM_TEAM + ProductId = I23604003RDR + ProductCreationTime = 2007-04-13T15:26:13 + ProductVersionId = 1.0 + OrbitNumber = 23604 + FlightSoftwareVersionId = 1.00 + CommandSequenceNumber = 23604 + Description = "No Description Given" + End_Group + + Group = BandBin + OriginalBand = 9 + Center = 12.57 + Width = 0.81 + FilterNumber = 9 + End_Group + + Group = Kernels + NaifFrameCode = -53031 + LeapSecond = $base/kernels/lsk/naif0009.tls + TargetAttitudeShape = $base/kernels/pck/pck00009.tpc + TargetPosition = (Table, $base/kernels/spk/de405.bsp) + InstrumentPointing = (Table, $odyssey/kernels/ck/m01_sc_ext11.bc, + $odyssey/kernels/fk/m01_v29.tf) + Instrument = Null + SpacecraftClock = $odyssey/kernels/sclk/ORB1_SCLKSCET.00184.tsc + InstrumentPosition = (Table, $odyssey/kernels/spk/m01_ext11.bsp) + InstrumentAddendum = $odyssey/kernels/iak/themisAddendum003.ti + ShapeModel = $base/dems/molaMarsPlanetaryRadius0005.cub + InstrumentPositionQuality = Reconstructed + InstrumentPointingQuality = Reconstructed + CameraVersion = 2 + End_Group +End_Object + +Object = Label + Bytes = 65536 +End_Object + +Object = Table + Name = InstrumentPointing + StartByte = 9261057 + Bytes = 3584 + Records = 56 + ByteOrder = Lsb + TimeDependentFrames = (-53000, 16, 1) + ConstantFrames = (-53031, -53030, -53000) + ConstantRotation = (0.0013835021734055, 0.011529976186854, + 0.99993257051207, 0.28811330695433, 0.95752799265849, + -0.011439651709814, -0.95759532594806, + 0.28810970640458, -0.0019971975093594) + CkTableStartTime = 229505108.63108 + CkTableEndTime = 229505355.18863 + CkTableOriginalSize = 7185 + Description = "Created by spiceinit" + Kernels = ($odyssey/kernels/ck/m01_sc_ext11.bc, + $odyssey/kernels/fk/m01_v29.tf) + + Group = Field + Name = J2000Q0 + Type = Double + Size = 1 + End_Group + + Group = Field + Name = J2000Q1 + Type = Double + Size = 1 + End_Group + + Group = Field + Name = J2000Q2 + Type = Double + Size = 1 + End_Group + + Group = Field + Name = J2000Q3 + Type = Double + Size = 1 + End_Group + + Group = Field + Name = AV1 + Type = Double + Size = 1 + End_Group + + Group = Field + Name = AV2 + Type = Double + Size = 1 + End_Group + + Group = Field + Name = AV3 + Type = Double + Size = 1 + End_Group + + Group = Field + Name = ET + Type = Double + Size = 1 + End_Group +End_Object + +Object = Table + Name = InstrumentPosition + StartByte = 9264641 + Bytes = 896 + Records = 16 + ByteOrder = Lsb + CacheType = HermiteSpline + SpkTableStartTime = 229505108.63108 + SpkTableEndTime = 229505355.18863 + SpkTableOriginalSize = 7185.0 + Description = "Created by spiceinit" + Kernels = $odyssey/kernels/spk/m01_ext11.bsp + + Group = Field + Name = J2000X + Type = Double + Size = 1 + End_Group + + Group = Field + Name = J2000Y + Type = Double + Size = 1 + End_Group + + Group = Field + Name = J2000Z + Type = Double + Size = 1 + End_Group + + Group = Field + Name = J2000XV + Type = Double + Size = 1 + End_Group + + Group = Field + Name = J2000YV + Type = Double + Size = 1 + End_Group + + Group = Field + Name = J2000ZV + Type = Double + Size = 1 + End_Group + + Group = Field + Name = ET + Type = Double + Size = 1 + End_Group +End_Object + +Object = Table + Name = BodyRotation + StartByte = 9265537 + Bytes = 128 + Records = 2 + ByteOrder = Lsb + TimeDependentFrames = (10014, 1) + CkTableStartTime = 229505108.63108 + CkTableEndTime = 229505355.18863 + CkTableOriginalSize = 2 + Description = "Created by spiceinit" + Kernels = ($base/kernels/spk/de405.bsp, + $base/kernels/pck/pck00009.tpc) + SolarLongitude = 216.68369485425 + + Group = Field + Name = J2000Q0 + Type = Double + Size = 1 + End_Group + + Group = Field + Name = J2000Q1 + Type = Double + Size = 1 + End_Group + + Group = Field + Name = J2000Q2 + Type = Double + Size = 1 + End_Group + + Group = Field + Name = J2000Q3 + Type = Double + Size = 1 + End_Group + + Group = Field + Name = AV1 + Type = Double + Size = 1 + End_Group + + Group = Field + Name = AV2 + Type = Double + Size = 1 + End_Group + + Group = Field + Name = AV3 + Type = Double + Size = 1 + End_Group + + Group = Field + Name = ET + Type = Double + Size = 1 + End_Group +End_Object + +Object = Table + Name = SunPosition + StartByte = 9265665 + Bytes = 112 + Records = 2 + ByteOrder = Lsb + CacheType = Linear + SpkTableStartTime = 229505108.63108 + SpkTableEndTime = 229505355.18863 + SpkTableOriginalSize = 2.0 + Description = "Created by spiceinit" + Kernels = $base/kernels/spk/de405.bsp + + Group = Field + Name = J2000X + Type = Double + Size = 1 + End_Group + + Group = Field + Name = J2000Y + Type = Double + Size = 1 + End_Group + + Group = Field + Name = J2000Z + Type = Double + Size = 1 + End_Group + + Group = Field + Name = J2000XV + Type = Double + Size = 1 + End_Group + + Group = Field + Name = J2000YV + Type = Double + Size = 1 + End_Group + + Group = Field + Name = J2000ZV + Type = Double + Size = 1 + End_Group + + Group = Field + Name = ET + Type = Double + Size = 1 + End_Group +End_Object + +Object = Table + Name = CameraStatistics + StartByte = 9265777 + Bytes = 624 + Records = 12 + ByteOrder = Lsb + + Group = Field + Name = Name + Type = Text + Size = 20 + End_Group + + Group = Field + Name = Minimum + Type = Double + Size = 1 + End_Group + + Group = Field + Name = Maximum + Type = Double + Size = 1 + End_Group + + Group = Field + Name = Average + Type = Double + Size = 1 + End_Group + + Group = Field + Name = StandardDeviation + Type = Double + Size = 1 + End_Group +End_Object + +Object = History + Name = IsisCube + StartByte = 9284827 + Bytes = 4311 +End_Object + +Object = NaifKeywords + BODY499_RADII = (3396.19, 3396.19, 3376.2) + BODY_FRAME_CODE = 10014 + CLOCK_ET_-53_860700556.051_COMPUTED = 56c4baa8f05bab41 + INS-53031_TRANSX = (0.0, 0.05, 0.0) + INS-53031_TRANSY = (0.0, 0.0, 0.05) + INS-53031_ITRANSS = (0.0, 20.0, 0.0) + INS-53031_ITRANSL = (0.0, 0.0, 20.0) +End_Object + +Object = Polygon + Name = Footprint + StartByte = 9266401 + Bytes = 13390 +End_Object + +Object = OriginalLabel + Name = IsisCube + StartByte = 9279791 + Bytes = 5036 +End_Object +End diff --git a/isis/tests/data/cnetedit/I24827003RDR.dstr.cub.label.pvl b/isis/tests/data/cnetedit/I24827003RDR.dstr.cub.label.pvl new file mode 100644 index 0000000000..82e2439cc6 --- /dev/null +++ b/isis/tests/data/cnetedit/I24827003RDR.dstr.cub.label.pvl @@ -0,0 +1,388 @@ +Object = IsisCube + Object = Core + StartByte = 65537 + Format = Tile + TileSamples = 160 + TileLines = 128 + + Group = Dimensions + Samples = 160 + Lines = 5384 + Bands = 1 + End_Group + + Group = Pixels + Type = Real + ByteOrder = Lsb + Base = 0.0 + Multiplier = 1.0 + End_Group + End_Object + + Group = Instrument + SpacecraftName = MARS_ODYSSEY + InstrumentId = THEMIS_IR + TargetName = MARS + MissionPhaseName = EXTENDED-1 + StartTime = 2007-07-20T12:06:24.995 + StopTime = 2007-07-20T12:12:23.932 + SpacecraftClockCount = 869400711.102 + GainNumber = 16 + OffsetNumber = 2 + MissingScanLines = 0 + TimeDelayIntegration = ENABLED + SpatialSumming = 2 + SpacecraftClockOffset = 0.0 + End_Group + + Group = Archive + DataSetId = ODY-M-THM-3-IRRDR-V1.0 + ProducerId = ODY_THM_TEAM + ProductId = I24827003RDR + ProductCreationTime = 2008-01-04T17:31:37 + ProductVersionId = 1.0 + OrbitNumber = 24827 + FlightSoftwareVersionId = 1.00 + CommandSequenceNumber = 24827 + Description = "No Description Given" + End_Group + + Group = BandBin + OriginalBand = 7 + Center = 12.57 + Width = 0.81 + FilterNumber = 9 + End_Group + + Group = Kernels + NaifFrameCode = -53031 + LeapSecond = $base/kernels/lsk/naif0009.tls + TargetAttitudeShape = $base/kernels/pck/pck00009.tpc + TargetPosition = (Table, $base/kernels/spk/de405.bsp) + InstrumentPointing = (Table, $odyssey/kernels/ck/m01_sc_ext12.bc, + $odyssey/kernels/fk/m01_v29.tf) + Instrument = Null + SpacecraftClock = $odyssey/kernels/sclk/ORB1_SCLKSCET.00184.tsc + InstrumentPosition = (Table, $odyssey/kernels/spk/m01_ext12.bsp) + InstrumentAddendum = $odyssey/kernels/iak/themisAddendum003.ti + ShapeModel = $base/dems/molaMarsPlanetaryRadius0005.cub + InstrumentPositionQuality = Reconstructed + InstrumentPointingQuality = Reconstructed + CameraVersion = 2 + End_Group +End_Object + +Object = Label + Bytes = 65536 +End_Object + +Object = Table + Name = InstrumentPointing + StartByte = 3588097 + Bytes = 5504 + Records = 86 + ByteOrder = Lsb + TimeDependentFrames = (-53000, 16, 1) + ConstantFrames = (-53031, -53030, -53000) + ConstantRotation = (0.0013835021734055, 0.011529976186854, + 0.99993257051207, 0.28811330695433, 0.95752799265849, + -0.011439651709814, -0.95759532594806, + 0.28810970640458, -0.0019971975093594) + CkTableStartTime = 238205250.8296 + CkTableEndTime = 238205615.29006 + CkTableOriginalSize = 5385 + Description = "Created by spiceinit" + Kernels = ($odyssey/kernels/ck/m01_sc_ext12.bc, + $odyssey/kernels/fk/m01_v29.tf) + + Group = Field + Name = J2000Q0 + Type = Double + Size = 1 + End_Group + + Group = Field + Name = J2000Q1 + Type = Double + Size = 1 + End_Group + + Group = Field + Name = J2000Q2 + Type = Double + Size = 1 + End_Group + + Group = Field + Name = J2000Q3 + Type = Double + Size = 1 + End_Group + + Group = Field + Name = AV1 + Type = Double + Size = 1 + End_Group + + Group = Field + Name = AV2 + Type = Double + Size = 1 + End_Group + + Group = Field + Name = AV3 + Type = Double + Size = 1 + End_Group + + Group = Field + Name = ET + Type = Double + Size = 1 + End_Group +End_Object + +Object = Table + Name = InstrumentPosition + StartByte = 3593601 + Bytes = 728 + Records = 13 + ByteOrder = Lsb + CacheType = HermiteSpline + SpkTableStartTime = 238205250.8296 + SpkTableEndTime = 238205615.29006 + SpkTableOriginalSize = 5385.0 + Description = "Created by spiceinit" + Kernels = $odyssey/kernels/spk/m01_ext12.bsp + + Group = Field + Name = J2000X + Type = Double + Size = 1 + End_Group + + Group = Field + Name = J2000Y + Type = Double + Size = 1 + End_Group + + Group = Field + Name = J2000Z + Type = Double + Size = 1 + End_Group + + Group = Field + Name = J2000XV + Type = Double + Size = 1 + End_Group + + Group = Field + Name = J2000YV + Type = Double + Size = 1 + End_Group + + Group = Field + Name = J2000ZV + Type = Double + Size = 1 + End_Group + + Group = Field + Name = ET + Type = Double + Size = 1 + End_Group +End_Object + +Object = Table + Name = BodyRotation + StartByte = 3594329 + Bytes = 128 + Records = 2 + ByteOrder = Lsb + TimeDependentFrames = (10014, 1) + CkTableStartTime = 238205250.8296 + CkTableEndTime = 238205615.29006 + CkTableOriginalSize = 2 + Description = "Created by spiceinit" + Kernels = ($base/kernels/spk/de405.bsp, + $base/kernels/pck/pck00009.tpc) + SolarLongitude = 280.0343296642 + + Group = Field + Name = J2000Q0 + Type = Double + Size = 1 + End_Group + + Group = Field + Name = J2000Q1 + Type = Double + Size = 1 + End_Group + + Group = Field + Name = J2000Q2 + Type = Double + Size = 1 + End_Group + + Group = Field + Name = J2000Q3 + Type = Double + Size = 1 + End_Group + + Group = Field + Name = AV1 + Type = Double + Size = 1 + End_Group + + Group = Field + Name = AV2 + Type = Double + Size = 1 + End_Group + + Group = Field + Name = AV3 + Type = Double + Size = 1 + End_Group + + Group = Field + Name = ET + Type = Double + Size = 1 + End_Group +End_Object + +Object = Table + Name = SunPosition + StartByte = 3594457 + Bytes = 112 + Records = 2 + ByteOrder = Lsb + CacheType = Linear + SpkTableStartTime = 238205250.8296 + SpkTableEndTime = 238205615.29006 + SpkTableOriginalSize = 2.0 + Description = "Created by spiceinit" + Kernels = $base/kernels/spk/de405.bsp + + Group = Field + Name = J2000X + Type = Double + Size = 1 + End_Group + + Group = Field + Name = J2000Y + Type = Double + Size = 1 + End_Group + + Group = Field + Name = J2000Z + Type = Double + Size = 1 + End_Group + + Group = Field + Name = J2000XV + Type = Double + Size = 1 + End_Group + + Group = Field + Name = J2000YV + Type = Double + Size = 1 + End_Group + + Group = Field + Name = J2000ZV + Type = Double + Size = 1 + End_Group + + Group = Field + Name = ET + Type = Double + Size = 1 + End_Group +End_Object + +Object = Table + Name = CameraStatistics + StartByte = 3594569 + Bytes = 624 + Records = 12 + ByteOrder = Lsb + + Group = Field + Name = Name + Type = Text + Size = 20 + End_Group + + Group = Field + Name = Minimum + Type = Double + Size = 1 + End_Group + + Group = Field + Name = Maximum + Type = Double + Size = 1 + End_Group + + Group = Field + Name = Average + Type = Double + Size = 1 + End_Group + + Group = Field + Name = StandardDeviation + Type = Double + Size = 1 + End_Group +End_Object + +Object = History + Name = IsisCube + StartByte = 3609866 + Bytes = 4311 +End_Object + +Object = NaifKeywords + BODY499_RADII = (3396.19, 3396.19, 3376.2) + BODY_FRAME_CODE = 10014 + CLOCK_ET_-53_869400711.102_COMPUTED = b79a54827265ac41 + INS-53031_TRANSX = (0.0, 0.05, 0.0) + INS-53031_TRANSY = (0.0, 0.0, 0.05) + INS-53031_ITRANSS = (0.0, 20.0, 0.0) + INS-53031_ITRANSL = (0.0, 0.0, 20.0) +End_Object + +Object = Polygon + Name = Footprint + StartByte = 3595193 + Bytes = 9864 +End_Object + +Object = OriginalLabel + Name = IsisCube + StartByte = 3605057 + Bytes = 4809 +End_Object +End diff --git a/isis/tests/data/cnetedit/PSP_002733_1880_RED4.crop.pvl b/isis/tests/data/cnetedit/PSP_002733_1880_RED4.crop.pvl new file mode 100644 index 0000000000..945a054912 --- /dev/null +++ b/isis/tests/data/cnetedit/PSP_002733_1880_RED4.crop.pvl @@ -0,0 +1,518 @@ +Object = IsisCube + Object = Core + StartByte = 65537 + Format = Tile + TileSamples = 128 + TileLines = 128 + + Group = Dimensions + Samples = 2048 + Lines = 2000 + Bands = 1 + End_Group + + Group = Pixels + Type = Real + ByteOrder = Lsb + Base = 0.0 + Multiplier = 1.0 + End_Group + End_Object + + Group = Instrument + SpacecraftName = "MARS RECONNAISSANCE ORBITER" + InstrumentId = HIRISE + TargetName = Mars + StartTime = 2007-02-25T09:49:57.917 + StopTime = 2007-02-25T09:50:04.917 + ObservationStartCount = 856864216:41044 + SpacecraftClockStartCount = 856864216:53351 + SpacecraftClockStopCount = 856864223:53351 + ReadoutStartCount = 856864468:00780 + CalibrationStartTime = 2007-02-25T09:49:57.902 + CalibrationStartCount = 856864216:52387 + MissionPhaseName = "PRIMARY SCIENCE PHASE" + LineExposureDuration = 87.5000 + ScanExposureDuration = 87.5000 + DeltaLineTimerCount = 216 + Summing = 1 + Tdi = 128 + FocusPositionCount = 2023 + PoweredCpmmFlag = (On, On, On, On, On, On, On, On, On, On, On, + On, On, On) + CpmmNumber = 5 + CcdId = RED4 + ChannelNumber = 2 + LookupTableType = Stored + LookupTableNumber = 10 + LookupTableMinimum = -9998 + LookupTableMaximum = -9998 + LookupTableMedian = -9998 + LookupTableKValue = -9998 + StimulationLampFlag = (Off, Off, Off) + HeaterControlFlag = (On, On, On, On, On, On, On, On, On, On, On, + On, On, On) + OptBnchFlexureTemperature = 20.0215 + OptBnchMirrorTemperature = 20.1082 + OptBnchFoldFlatTemperature = 20.3683 + OptBnchFpaTemperature = 19.7615 + OptBnchFpeTemperature = 19.5881 + OptBnchLivingRmTemperature = 20.0215 + OptBnchBoxBeamTemperature = 20.1949 + OptBnchCoverTemperature = 19.9348 + FieldStopTemperature = 18.4616 + FpaPositiveYTemperature = 19.5881 + FpaNegativeYTemperature = 19.5881 + FpeTemperature = 17.7686 + PrimaryMirrorMntTemperature = 20.1082 + PrimaryMirrorTemperature = 20.455 + PrimaryMirrorBafTemperature = 3.34153 + MsTrussLeg0ATemperature = 19.8482 + MsTrussLeg0BTemperature = 19.9348 + MsTrussLeg120ATemperature = 19.4148 + MsTrussLeg120BTemperature = 20.1949 + MsTrussLeg240ATemperature = 20.5417 + MsTrussLeg240BTemperature = 20.6284 + BarrelBaffleTemperature = -12.4606 + SunShadeTemperature = -14.001 + SpiderLeg30Temperature = 16.1233 + SpiderLeg120Temperature = -9999 + SpiderLeg240Temperature = -9999 + SecMirrorMtrRngTemperature = 19.7615 + SecMirrorTemperature = 20.8885 + SecMirrorBaffleTemperature = -9.71965 + IeaTemperature = 25.9221 + FocusMotorTemperature = 21.3221 + IePwsBoardTemperature = 17.8502 + CpmmPwsBoardTemperature = 21.4948 + MechTlmBoardTemperature = 35.1464 + InstContBoardTemperature = 34.6875 + DllLockedFlag = (YES, YES) + DllResetCount = 0 + DllLockedOnceFlag = (YES, YES) + DllFrequenceCorrectCount = 4 + ADCTimingSetting = -9999 + Unlutted = TRUE + StitchedChannels = (0, 1) + StitchedProductIds = (PSP_002733_1880_RED4_0, + PSP_002733_1880_RED4_1) + End_Group + + Group = Archive + DataSetId = MRO-M-HIRISE-2-EDR-V1.0 + ProducerId = UA + ObservationId = PSP_002733_1880 + ProductId = PSP_002733_1880_RED4_0 + ProductVersionId = 1.0 + EdrProductCreationTime = 2007-02-25T22:21:23 + RationaleDescription = Null + OrbitNumber = 2733 + SoftwareName = "HiRISE_Observation v2.9.1 (2.43 2006/10/0 + 05:41:12)" + ObservationStartTime = 2007-02-25T09:49:57.729 + ReadoutStartTime = 2007-02-25T09:54:09.115 + TrimLines = 1797 + FelicsCompressionFlag = YES + IdFlightSoftwareName = IE_FSW_V4 + End_Group + + Group = BandBin + Name = Red + Center = 700 + Width = 300 + End_Group + + Group = Kernels + NaifIkCode = -74699 + LeapSecond = $base/kernels/lsk/naif0009.tls + TargetAttitudeShape = $base/kernels/pck/pck00009.tpc + TargetPosition = (Table, $base/kernels/spk/de405.bsp) + InstrumentPointing = (Table, + $mro/kernels/ck/mro_sc_psp_070220_070226.bc, + $mro/kernels/fk/mro_v14.tf) + Instrument = $mro/kernels/ik/mro_hirise_v11.ti + SpacecraftClock = $mro/kernels/sclk/MRO_SCLKSCET.00038.65536.tsc + InstrumentPosition = (Table, $mro/kernels/spk/mro_psp2.bsp) + InstrumentAddendum = $mro/kernels/iak/hiriseAddendum006.ti + ShapeModel = Null + InstrumentPositionQuality = Reconstructed + InstrumentPointingQuality = Reconstructed + CameraVersion = 1 + End_Group + + Group = Radiometry + CalibrationParameters = (OFFSET:/HiRISE/Data/HiCalCoefficients/Matrices/B- + _TDI128_BIN1_0001.cub, + GAIN:/HiRISE/Data/HiCalCoefficients/Matrices/A_TD- + I128_BIN1_0001.cub, + GAIN:/HiRISE/Data/HiCalCoefficients/Matrices/G_TD- + I128_BIN1_0001.cub) + End_Group + + Group = AlphaCube + AlphaSamples = 2048 + AlphaLines = 80000 + AlphaStartingSample = 0.5 + AlphaStartingLine = 0.5 + AlphaEndingSample = 2048.5 + AlphaEndingLine = 2000.5 + BetaSamples = 2048 + BetaLines = 2000 + End_Group + + Group = RadiometricCalibration + Name = hiclean + Version = 1.4.1 + Compatability = "Alan D. clean.pro, version 2/29 sep 2006" + Revision = "$Revision: 1.3 $" + MaskStartingRow = 21 + MaskEndingRow = 38 + BadMaskPixels = 0 + MaskInducedNulls = 0 + DarkStartingColumn = 4 + DarkEndingColumn = 11 + BadDarkPixels = 0 + DarkInducedNulls = 0 + LastGoodLine = 80000 + End_Group +End_Object + +Object = Label + Bytes = 65536 +End_Object + +Object = Table + Name = "HiRISE Calibration Ancillary" + StartByte = 8454145 + Bytes = 20160 + Records = 168 + ByteOrder = Lsb + + Group = Field + Name = GapFlag + Type = Integer + Size = 1 + End_Group + + Group = Field + Name = LineNumber + Type = Integer + Size = 1 + End_Group + + Group = Field + Name = BufferPixels + Type = Integer + Size = 12 + End_Group + + Group = Field + Name = DarkPixels + Type = Integer + Size = 16 + End_Group +End_Object + +Object = Table + Name = "HiRISE Calibration Image" + StartByte = 8474305 + Bytes = 688128 + Records = 168 + ByteOrder = Lsb + + Group = Field + Name = Calibration + Type = Integer + Size = 1024 + End_Group +End_Object + +Object = Table + Name = "HiRISE Ancillary" + StartByte = 9162433 + Bytes = 9600000 + Records = 80000 + ByteOrder = Lsb + Association = Lines + + Group = Field + Name = GapFlag + Type = Integer + Size = 1 + End_Group + + Group = Field + Name = LineNumber + Type = Integer + Size = 1 + End_Group + + Group = Field + Name = BufferPixels + Type = Integer + Size = 12 + End_Group + + Group = Field + Name = DarkPixels + Type = Integer + Size = 16 + End_Group +End_Object + +Object = Table + Name = InstrumentPointing + StartByte = 18762433 + Bytes = 256 + Records = 4 + ByteOrder = Lsb + TimeDependentFrames = (-74000, -74900, 1) + ConstantFrames = (-74690, -74000) + ConstantRotation = (0.9999703083413, 0.0, -0.0077059999872177, + 8.81584889031119e-06, 0.99999934560434, + 0.0011439900269605, 0.0077059949444447, + -0.0011440239949305, 0.99996965396507) + CkTableStartTime = 225669063.07843 + CkTableEndTime = 225669063.25343 + CkTableOriginalSize = 2001 + Description = "Created by spiceinit" + Kernels = ($mro/kernels/ck/mro_sc_psp_070220_070226.bc, + $mro/kernels/fk/mro_v14.tf) + + Group = Field + Name = J2000Q0 + Type = Double + Size = 1 + End_Group + + Group = Field + Name = J2000Q1 + Type = Double + Size = 1 + End_Group + + Group = Field + Name = J2000Q2 + Type = Double + Size = 1 + End_Group + + Group = Field + Name = J2000Q3 + Type = Double + Size = 1 + End_Group + + Group = Field + Name = AV1 + Type = Double + Size = 1 + End_Group + + Group = Field + Name = AV2 + Type = Double + Size = 1 + End_Group + + Group = Field + Name = AV3 + Type = Double + Size = 1 + End_Group + + Group = Field + Name = ET + Type = Double + Size = 1 + End_Group +End_Object + +Object = Table + Name = InstrumentPosition + StartByte = 21962473 + Bytes = 168 + Records = 3 + ByteOrder = Lsb + CacheType = HermiteSpline + Description = "Created by spiceinit" + Kernels = $mro/kernels/spk/mro_psp2.bsp + + Group = Field + Name = J2000X + Type = Double + Size = 1 + End_Group + + Group = Field + Name = J2000Y + Type = Double + Size = 1 + End_Group + + Group = Field + Name = J2000Z + Type = Double + Size = 1 + End_Group + + Group = Field + Name = J2000XV + Type = Double + Size = 1 + End_Group + + Group = Field + Name = J2000YV + Type = Double + Size = 1 + End_Group + + Group = Field + Name = J2000ZV + Type = Double + Size = 1 + End_Group + + Group = Field + Name = ET + Type = Double + Size = 1 + End_Group +End_Object + +Object = Table + Name = BodyRotation + StartByte = 24522505 + Bytes = 128 + Records = 2 + ByteOrder = Lsb + TimeDependentFrames = (10014, 1) + CkTableStartTime = 225669063.07843 + CkTableEndTime = 225669063.25343 + CkTableOriginalSize = 2 + Description = "Created by spiceinit" + Kernels = ($base/kernels/spk/de405.bsp, + $base/kernels/pck/pck00009.tpc) + SolarLongitude = 190.08669942814 + + Group = Field + Name = J2000Q0 + Type = Double + Size = 1 + End_Group + + Group = Field + Name = J2000Q1 + Type = Double + Size = 1 + End_Group + + Group = Field + Name = J2000Q2 + Type = Double + Size = 1 + End_Group + + Group = Field + Name = J2000Q3 + Type = Double + Size = 1 + End_Group + + Group = Field + Name = AV1 + Type = Double + Size = 1 + End_Group + + Group = Field + Name = AV2 + Type = Double + Size = 1 + End_Group + + Group = Field + Name = AV3 + Type = Double + Size = 1 + End_Group + + Group = Field + Name = ET + Type = Double + Size = 1 + End_Group +End_Object + +Object = Table + Name = SunPosition + StartByte = 27722545 + Bytes = 112 + Records = 2 + ByteOrder = Lsb + CacheType = Linear + Description = "Created by spiceinit" + Kernels = $base/kernels/spk/de405.bsp + + Group = Field + Name = J2000X + Type = Double + Size = 1 + End_Group + + Group = Field + Name = J2000Y + Type = Double + Size = 1 + End_Group + + Group = Field + Name = J2000Z + Type = Double + Size = 1 + End_Group + + Group = Field + Name = J2000XV + Type = Double + Size = 1 + End_Group + + Group = Field + Name = J2000YV + Type = Double + Size = 1 + End_Group + + Group = Field + Name = J2000ZV + Type = Double + Size = 1 + End_Group + + Group = Field + Name = ET + Type = Double + Size = 1 + End_Group +End_Object + +Object = History + Name = IsisCube + StartByte = 30373328 + Bytes = 14212 +End_Object + +Object = OriginalLabel + Name = OriginalLabel + StartByte = 30282577 + Bytes = 30940 +End_Object + +Object = Polygon + Name = Footprint + StartByte = 30369908 + Bytes = 3420 +End_Object +End diff --git a/isis/tests/data/cnetedit/PSP_002733_1880_RED5.crop.pvl b/isis/tests/data/cnetedit/PSP_002733_1880_RED5.crop.pvl new file mode 100644 index 0000000000..683e0d6085 --- /dev/null +++ b/isis/tests/data/cnetedit/PSP_002733_1880_RED5.crop.pvl @@ -0,0 +1,518 @@ +Object = IsisCube + Object = Core + StartByte = 65537 + Format = Tile + TileSamples = 128 + TileLines = 128 + + Group = Dimensions + Samples = 2048 + Lines = 2000 + Bands = 1 + End_Group + + Group = Pixels + Type = Real + ByteOrder = Lsb + Base = 0.0 + Multiplier = 1.0 + End_Group + End_Object + + Group = Instrument + SpacecraftName = "MARS RECONNAISSANCE ORBITER" + InstrumentId = HIRISE + TargetName = Mars + StartTime = 2007-02-25T09:49:57.866 + StopTime = 2007-02-25T09:50:04.866 + ObservationStartCount = 856864216:41044 + SpacecraftClockStartCount = 856864216:50008 + SpacecraftClockStopCount = 856864223:50008 + ReadoutStartCount = 856864554:12778 + CalibrationStartTime = 2007-02-25T09:49:57.851 + CalibrationStartCount = 856864216:49044 + MissionPhaseName = "PRIMARY SCIENCE PHASE" + LineExposureDuration = 87.5000 + ScanExposureDuration = 87.5000 + DeltaLineTimerCount = 216 + Summing = 1 + Tdi = 128 + FocusPositionCount = 2023 + PoweredCpmmFlag = (On, On, On, On, On, On, On, On, On, On, On, + On, On, On) + CpmmNumber = 8 + CcdId = RED5 + ChannelNumber = 2 + LookupTableType = Stored + LookupTableNumber = 17 + LookupTableMinimum = -9998 + LookupTableMaximum = -9998 + LookupTableMedian = -9998 + LookupTableKValue = -9998 + StimulationLampFlag = (Off, Off, Off) + HeaterControlFlag = (On, On, On, On, On, On, On, On, On, On, On, + On, On, On) + OptBnchFlexureTemperature = 20.0215 + OptBnchMirrorTemperature = 20.1082 + OptBnchFoldFlatTemperature = 20.3683 + OptBnchFpaTemperature = 19.7615 + OptBnchFpeTemperature = 19.5881 + OptBnchLivingRmTemperature = 20.0215 + OptBnchBoxBeamTemperature = 20.1949 + OptBnchCoverTemperature = 19.9348 + FieldStopTemperature = 18.4616 + FpaPositiveYTemperature = 19.5881 + FpaNegativeYTemperature = 19.5881 + FpeTemperature = 17.7686 + PrimaryMirrorMntTemperature = 20.1082 + PrimaryMirrorTemperature = 20.455 + PrimaryMirrorBafTemperature = 3.34153 + MsTrussLeg0ATemperature = 19.8482 + MsTrussLeg0BTemperature = 19.9348 + MsTrussLeg120ATemperature = 19.4148 + MsTrussLeg120BTemperature = 20.1949 + MsTrussLeg240ATemperature = 20.5417 + MsTrussLeg240BTemperature = 20.6284 + BarrelBaffleTemperature = -12.4606 + SunShadeTemperature = -14.001 + SpiderLeg30Temperature = 16.1233 + SpiderLeg120Temperature = -9999 + SpiderLeg240Temperature = -9999 + SecMirrorMtrRngTemperature = 19.7615 + SecMirrorTemperature = 20.8885 + SecMirrorBaffleTemperature = -9.71965 + IeaTemperature = 25.9221 + FocusMotorTemperature = 21.3221 + IePwsBoardTemperature = 17.8502 + CpmmPwsBoardTemperature = 21.4948 + MechTlmBoardTemperature = 35.1464 + InstContBoardTemperature = 34.6875 + DllLockedFlag = (YES, YES) + DllResetCount = 0 + DllLockedOnceFlag = (YES, YES) + DllFrequenceCorrectCount = 4 + ADCTimingSetting = -9999 + Unlutted = TRUE + StitchedChannels = (0, 1) + StitchedProductIds = (PSP_002733_1880_RED5_0, + PSP_002733_1880_RED5_1) + End_Group + + Group = Archive + DataSetId = MRO-M-HIRISE-2-EDR-V1.0 + ProducerId = UA + ObservationId = PSP_002733_1880 + ProductId = PSP_002733_1880_RED5_0 + ProductVersionId = 1.0 + EdrProductCreationTime = 2007-02-25T22:27:25 + RationaleDescription = Null + OrbitNumber = 2733 + SoftwareName = "HiRISE_Observation v2.9.1 (2.43 2006/10/0 + 05:41:12)" + ObservationStartTime = 2007-02-25T09:49:57.729 + ReadoutStartTime = 2007-02-25T09:55:35.298 + TrimLines = 1214 + FelicsCompressionFlag = YES + IdFlightSoftwareName = IE_FSW_V4 + End_Group + + Group = BandBin + Name = Red + Center = 700 + Width = 300 + End_Group + + Group = Kernels + NaifIkCode = -74699 + LeapSecond = $base/kernels/lsk/naif0009.tls + TargetAttitudeShape = $base/kernels/pck/pck00009.tpc + TargetPosition = (Table, $base/kernels/spk/de405.bsp) + InstrumentPointing = (Table, + $mro/kernels/ck/mro_sc_psp_070220_070226.bc, + $mro/kernels/fk/mro_v14.tf) + Instrument = $mro/kernels/ik/mro_hirise_v11.ti + SpacecraftClock = $mro/kernels/sclk/MRO_SCLKSCET.00038.65536.tsc + InstrumentPosition = (Table, $mro/kernels/spk/mro_psp2.bsp) + InstrumentAddendum = $mro/kernels/iak/hiriseAddendum006.ti + ShapeModel = Null + InstrumentPositionQuality = Reconstructed + InstrumentPointingQuality = Reconstructed + CameraVersion = 1 + End_Group + + Group = Radiometry + CalibrationParameters = (OFFSET:/HiRISE/Data/HiCalCoefficients/Matrices/B- + _TDI128_BIN1_0001.cub, + GAIN:/HiRISE/Data/HiCalCoefficients/Matrices/A_TD- + I128_BIN1_0001.cub, + GAIN:/HiRISE/Data/HiCalCoefficients/Matrices/G_TD- + I128_BIN1_0001.cub) + End_Group + + Group = AlphaCube + AlphaSamples = 2048 + AlphaLines = 80000 + AlphaStartingSample = 0.5 + AlphaStartingLine = 0.5 + AlphaEndingSample = 2048.5 + AlphaEndingLine = 2000.5 + BetaSamples = 2048 + BetaLines = 2000 + End_Group + + Group = RadiometricCalibration + Name = hiclean + Version = 1.4.1 + Compatability = "Alan D. clean.pro, version 2/29 sep 2006" + Revision = "$Revision: 1.3 $" + MaskStartingRow = 21 + MaskEndingRow = 38 + BadMaskPixels = 0 + MaskInducedNulls = 0 + DarkStartingColumn = 4 + DarkEndingColumn = 11 + BadDarkPixels = 0 + DarkInducedNulls = 0 + LastGoodLine = 80000 + End_Group +End_Object + +Object = Label + Bytes = 65536 +End_Object + +Object = Table + Name = "HiRISE Calibration Ancillary" + StartByte = 8454145 + Bytes = 20160 + Records = 168 + ByteOrder = Lsb + + Group = Field + Name = GapFlag + Type = Integer + Size = 1 + End_Group + + Group = Field + Name = LineNumber + Type = Integer + Size = 1 + End_Group + + Group = Field + Name = BufferPixels + Type = Integer + Size = 12 + End_Group + + Group = Field + Name = DarkPixels + Type = Integer + Size = 16 + End_Group +End_Object + +Object = Table + Name = "HiRISE Calibration Image" + StartByte = 8474305 + Bytes = 688128 + Records = 168 + ByteOrder = Lsb + + Group = Field + Name = Calibration + Type = Integer + Size = 1024 + End_Group +End_Object + +Object = Table + Name = "HiRISE Ancillary" + StartByte = 9162433 + Bytes = 9600000 + Records = 80000 + ByteOrder = Lsb + Association = Lines + + Group = Field + Name = GapFlag + Type = Integer + Size = 1 + End_Group + + Group = Field + Name = LineNumber + Type = Integer + Size = 1 + End_Group + + Group = Field + Name = BufferPixels + Type = Integer + Size = 12 + End_Group + + Group = Field + Name = DarkPixels + Type = Integer + Size = 16 + End_Group +End_Object + +Object = Table + Name = InstrumentPointing + StartByte = 18762433 + Bytes = 256 + Records = 4 + ByteOrder = Lsb + TimeDependentFrames = (-74000, -74900, 1) + ConstantFrames = (-74690, -74000) + ConstantRotation = (0.9999703083413, 0.0, -0.0077059999872177, + 8.81584889031119e-06, 0.99999934560434, + 0.0011439900269605, 0.0077059949444447, + -0.0011440239949305, 0.99996965396507) + CkTableStartTime = 225669063.02742 + CkTableEndTime = 225669063.20242 + CkTableOriginalSize = 2001 + Description = "Created by spiceinit" + Kernels = ($mro/kernels/ck/mro_sc_psp_070220_070226.bc, + $mro/kernels/fk/mro_v14.tf) + + Group = Field + Name = J2000Q0 + Type = Double + Size = 1 + End_Group + + Group = Field + Name = J2000Q1 + Type = Double + Size = 1 + End_Group + + Group = Field + Name = J2000Q2 + Type = Double + Size = 1 + End_Group + + Group = Field + Name = J2000Q3 + Type = Double + Size = 1 + End_Group + + Group = Field + Name = AV1 + Type = Double + Size = 1 + End_Group + + Group = Field + Name = AV2 + Type = Double + Size = 1 + End_Group + + Group = Field + Name = AV3 + Type = Double + Size = 1 + End_Group + + Group = Field + Name = ET + Type = Double + Size = 1 + End_Group +End_Object + +Object = Table + Name = InstrumentPosition + StartByte = 21962473 + Bytes = 168 + Records = 3 + ByteOrder = Lsb + CacheType = HermiteSpline + Description = "Created by spiceinit" + Kernels = $mro/kernels/spk/mro_psp2.bsp + + Group = Field + Name = J2000X + Type = Double + Size = 1 + End_Group + + Group = Field + Name = J2000Y + Type = Double + Size = 1 + End_Group + + Group = Field + Name = J2000Z + Type = Double + Size = 1 + End_Group + + Group = Field + Name = J2000XV + Type = Double + Size = 1 + End_Group + + Group = Field + Name = J2000YV + Type = Double + Size = 1 + End_Group + + Group = Field + Name = J2000ZV + Type = Double + Size = 1 + End_Group + + Group = Field + Name = ET + Type = Double + Size = 1 + End_Group +End_Object + +Object = Table + Name = BodyRotation + StartByte = 24522505 + Bytes = 128 + Records = 2 + ByteOrder = Lsb + TimeDependentFrames = (10014, 1) + CkTableStartTime = 225669063.02742 + CkTableEndTime = 225669063.20242 + CkTableOriginalSize = 2 + Description = "Created by spiceinit" + Kernels = ($base/kernels/spk/de405.bsp, + $base/kernels/pck/pck00009.tpc) + SolarLongitude = 190.08669908562 + + Group = Field + Name = J2000Q0 + Type = Double + Size = 1 + End_Group + + Group = Field + Name = J2000Q1 + Type = Double + Size = 1 + End_Group + + Group = Field + Name = J2000Q2 + Type = Double + Size = 1 + End_Group + + Group = Field + Name = J2000Q3 + Type = Double + Size = 1 + End_Group + + Group = Field + Name = AV1 + Type = Double + Size = 1 + End_Group + + Group = Field + Name = AV2 + Type = Double + Size = 1 + End_Group + + Group = Field + Name = AV3 + Type = Double + Size = 1 + End_Group + + Group = Field + Name = ET + Type = Double + Size = 1 + End_Group +End_Object + +Object = Table + Name = SunPosition + StartByte = 27722545 + Bytes = 112 + Records = 2 + ByteOrder = Lsb + CacheType = Linear + Description = "Created by spiceinit" + Kernels = $base/kernels/spk/de405.bsp + + Group = Field + Name = J2000X + Type = Double + Size = 1 + End_Group + + Group = Field + Name = J2000Y + Type = Double + Size = 1 + End_Group + + Group = Field + Name = J2000Z + Type = Double + Size = 1 + End_Group + + Group = Field + Name = J2000XV + Type = Double + Size = 1 + End_Group + + Group = Field + Name = J2000YV + Type = Double + Size = 1 + End_Group + + Group = Field + Name = J2000ZV + Type = Double + Size = 1 + End_Group + + Group = Field + Name = ET + Type = Double + Size = 1 + End_Group +End_Object + +Object = History + Name = IsisCube + StartByte = 30373330 + Bytes = 14212 +End_Object + +Object = OriginalLabel + Name = OriginalLabel + StartByte = 30282577 + Bytes = 30942 +End_Object + +Object = Polygon + Name = Footprint + StartByte = 30369910 + Bytes = 3420 +End_Object +End diff --git a/isis/tests/data/cnetedit/cnet_108pts.pvl b/isis/tests/data/cnetedit/cnet_108pts.pvl new file mode 100644 index 0000000000..a9dfed4a99 --- /dev/null +++ b/isis/tests/data/cnetedit/cnet_108pts.pvl @@ -0,0 +1,3238 @@ +Object = ControlNetwork + NetworkId = NewNetwork + TargetName = Mars + UserName = caustin + Created = Null + LastModified = Null + Description = NewNetwork + Version = 5 + + Object = ControlPoint + PointType = Free + PointId = new0001 + ChooserName = Unknown + DateTime = 2012-05-03T12:58:49 + + Group = ControlMeasure + SerialNumber = MGS/688540926:0/MOC-WA/RED + MeasureType = Candidate + ChooserName = "Application autoseed" + DateTime = 2008-12-22T09:24:31 + Sample = 11.002362806422 + Line = 422.04915727097 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MGS/691204200:96/MOC-WA/RED + MeasureType = Candidate + ChooserName = "Application autoseed" + DateTime = 2008-12-22T09:24:31 + Sample = 1.6628550989635 + Line = 328.45336149322 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = new0002 + ChooserName = Unknown + DateTime = 2012-05-03T12:58:49 + + Group = ControlMeasure + SerialNumber = MGS/688540926:0/MOC-WA/RED + MeasureType = Candidate + ChooserName = "Application autoseed" + DateTime = 2008-12-22T09:24:31 + Sample = 18.215874334214 + Line = 442.29284754422 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MGS/691204200:96/MOC-WA/RED + MeasureType = Candidate + ChooserName = "Application autoseed" + DateTime = 2008-12-22T09:24:31 + Sample = 8.9231888331417 + Line = 348.63944344774 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = new0003 + ChooserName = Unknown + DateTime = 2012-05-03T12:58:49 + + Group = ControlMeasure + SerialNumber = MGS/691204200:96/MOC-WA/RED + MeasureType = Candidate + ChooserName = "Application autoseed" + DateTime = 2008-12-22T09:24:33 + Sample = 472.66293186489 + Line = 286.5028408727 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MGS/718369703:160/MOC-WA/RED + MeasureType = Candidate + ChooserName = "Application autoseed" + DateTime = 2008-12-22T09:24:33 + Sample = 462.63180582145 + Line = 180.62363048896 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = new0004 + ChooserName = Unknown + DateTime = 2012-05-03T12:58:49 + + Group = ControlMeasure + SerialNumber = MGS/691204200:96/MOC-WA/RED + MeasureType = Candidate + ChooserName = "Application autoseed" + DateTime = 2008-12-22T09:24:33 + Sample = 475.15468487065 + Line = 306.89233376838 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MGS/718369703:160/MOC-WA/RED + MeasureType = Candidate + ChooserName = "Application autoseed" + DateTime = 2008-12-22T09:24:33 + Sample = 465.1316930521 + Line = 200.92276750532 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = new0005 + ChooserName = Unknown + DateTime = 2012-05-03T12:58:49 + + Group = ControlMeasure + SerialNumber = MGS/691204200:96/MOC-WA/RED + MeasureType = Candidate + ChooserName = "Application autoseed" + DateTime = 2008-12-22T09:24:33 + Sample = 477.53757440886 + Line = 327.46214256434 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MGS/718369703:160/MOC-WA/RED + MeasureType = Candidate + ChooserName = "Application autoseed" + DateTime = 2008-12-22T09:24:33 + Sample = 467.5550525596 + Line = 221.38613187076 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = new0006 + ChooserName = Unknown + DateTime = 2012-05-03T12:58:49 + + Group = ControlMeasure + SerialNumber = MGS/691204200:96/MOC-WA/RED + MeasureType = Candidate + ChooserName = "Application autoseed" + DateTime = 2008-12-22T09:24:33 + Sample = 480.23040562098 + Line = 347.48594461527 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MGS/718369703:160/MOC-WA/RED + MeasureType = Candidate + ChooserName = "Application autoseed" + DateTime = 2008-12-22T09:24:33 + Sample = 470.2565958944 + Line = 241.37444692109 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = new0007 + ChooserName = Unknown + DateTime = 2012-05-03T12:58:49 + + Group = ControlMeasure + SerialNumber = MGS/691204200:96/MOC-WA/RED + MeasureType = Candidate + ChooserName = "Application autoseed" + DateTime = 2008-12-22T09:24:33 + Sample = 215.83286033802 + Line = 386.11449945343 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MGS/718369703:160/MOC-WA/RED + MeasureType = Candidate + ChooserName = "Application autoseed" + DateTime = 2008-12-22T09:24:33 + Sample = 205.84205510189 + Line = 280.15987230805 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = new0008 + ChooserName = Unknown + DateTime = 2012-05-03T12:58:49 + + Group = ControlMeasure + SerialNumber = MGS/691204200:96/MOC-WA/RED + MeasureType = Candidate + ChooserName = "Application autoseed" + DateTime = 2008-12-22T09:24:33 + Sample = 27.52772891931 + Line = 399.43869629082 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MGS/718369703:160/MOC-WA/RED + MeasureType = Candidate + ChooserName = "Application autoseed" + DateTime = 2008-12-22T09:24:33 + Sample = 18.020527100954 + Line = 293.55619563515 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = new0009 + ChooserName = Unknown + DateTime = 2012-05-03T12:58:49 + + Group = ControlMeasure + SerialNumber = MGS/691204200:96/MOC-WA/RED + MeasureType = Candidate + ChooserName = "Application autoseed" + DateTime = 2008-12-22T09:24:33 + Sample = 66.029356641932 + Line = 396.51994976475 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MGS/718369703:160/MOC-WA/RED + MeasureType = Candidate + ChooserName = "Application autoseed" + DateTime = 2008-12-22T09:24:33 + Sample = 56.3928897278 + Line = 290.62638349716 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = new0010 + ChooserName = Unknown + DateTime = 2012-05-03T12:58:49 + + Group = ControlMeasure + SerialNumber = MGS/691204200:96/MOC-WA/RED + MeasureType = Candidate + ChooserName = "Application autoseed" + DateTime = 2008-12-22T09:24:33 + Sample = 104.71454341575 + Line = 393.57978828151 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MGS/718369703:160/MOC-WA/RED + MeasureType = Candidate + ChooserName = "Application autoseed" + DateTime = 2008-12-22T09:24:33 + Sample = 94.960468344733 + Line = 287.67316516766 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = new0011 + ChooserName = Unknown + DateTime = 2012-05-03T12:58:49 + + Group = ControlMeasure + SerialNumber = MGS/691204200:96/MOC-WA/RED + MeasureType = Candidate + ChooserName = "Application autoseed" + DateTime = 2008-12-22T09:24:33 + Sample = 143.55456618838 + Line = 390.80933654525 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MGS/718369703:160/MOC-WA/RED + MeasureType = Candidate + ChooserName = "Application autoseed" + DateTime = 2008-12-22T09:24:33 + Sample = 133.69928982239 + Line = 284.88669857134 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = new0012 + ChooserName = Unknown + DateTime = 2012-05-03T12:58:49 + + Group = ControlMeasure + SerialNumber = MGS/691204200:96/MOC-WA/RED + MeasureType = Candidate + ChooserName = "Application autoseed" + DateTime = 2008-12-22T09:24:33 + Sample = 182.45221586379 + Line = 388.25314334373 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MGS/718369703:160/MOC-WA/RED + MeasureType = Candidate + ChooserName = "Application autoseed" + DateTime = 2008-12-22T09:24:33 + Sample = 172.51638102427 + Line = 282.3135842755 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = new0013 + ChooserName = Unknown + DateTime = 2012-05-03T12:58:49 + + Group = ControlMeasure + SerialNumber = MGS/691204200:96/MOC-WA/RED + MeasureType = Candidate + ChooserName = "Application autoseed" + DateTime = 2008-12-22T09:24:33 + Sample = 218.33345803397 + Line = 406.43165385853 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MGS/718369703:160/MOC-WA/RED + MeasureType = Candidate + ChooserName = "Application autoseed" + DateTime = 2008-12-22T09:24:33 + Sample = 208.3637100796 + Line = 300.45509221498 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = new0014 + ChooserName = Unknown + DateTime = 2012-05-03T12:58:49 + + Group = ControlMeasure + SerialNumber = MGS/691204200:96/MOC-WA/RED + MeasureType = Candidate + ChooserName = "Application autoseed" + DateTime = 2008-12-22T09:24:33 + Sample = 257.10788297379 + Line = 403.92827127584 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MGS/718369703:160/MOC-WA/RED + MeasureType = Candidate + ChooserName = "Application autoseed" + DateTime = 2008-12-22T09:24:33 + Sample = 247.09425026747 + Line = 297.93934590851 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = new0015 + ChooserName = Unknown + DateTime = 2012-05-03T12:58:49 + + Group = ControlMeasure + SerialNumber = MGS/691204200:96/MOC-WA/RED + MeasureType = Candidate + ChooserName = "Application autoseed" + DateTime = 2008-12-22T09:24:33 + Sample = 295.81013351473 + Line = 401.07147464254 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MGS/718369703:160/MOC-WA/RED + MeasureType = Candidate + ChooserName = "Application autoseed" + DateTime = 2008-12-22T09:24:33 + Sample = 285.76108663093 + Line = 295.07114770209 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = new0016 + ChooserName = Unknown + DateTime = 2012-05-03T12:58:49 + + Group = ControlMeasure + SerialNumber = MGS/691204200:96/MOC-WA/RED + MeasureType = Candidate + ChooserName = "Application autoseed" + DateTime = 2008-12-22T09:24:33 + Sample = 334.2409901193 + Line = 398.61327555411 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MGS/718369703:160/MOC-WA/RED + MeasureType = Candidate + ChooserName = "Application autoseed" + DateTime = 2008-12-22T09:24:33 + Sample = 324.1817366712 + Line = 292.60034187579 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = new0017 + ChooserName = Unknown + DateTime = 2012-05-03T12:58:49 + + Group = ControlMeasure + SerialNumber = MGS/691204200:96/MOC-WA/RED + MeasureType = Candidate + ChooserName = "Application autoseed" + DateTime = 2008-12-22T09:24:33 + Sample = 372.38481470749 + Line = 396.21013151637 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MGS/718369703:160/MOC-WA/RED + MeasureType = Candidate + ChooserName = "Application autoseed" + DateTime = 2008-12-22T09:24:33 + Sample = 362.33270246833 + Line = 290.18438687577 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = new0018 + ChooserName = Unknown + DateTime = 2012-05-03T12:58:49 + + Group = ControlMeasure + SerialNumber = MGS/691204200:96/MOC-WA/RED + MeasureType = Candidate + ChooserName = "Application autoseed" + DateTime = 2008-12-22T09:24:33 + Sample = 410.2841487475 + Line = 393.63779838354 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MGS/718369703:160/MOC-WA/RED + MeasureType = Candidate + ChooserName = "Application autoseed" + DateTime = 2008-12-22T09:24:33 + Sample = 400.24906215823 + Line = 287.59640437607 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = new0019 + ChooserName = Unknown + DateTime = 2012-05-03T12:58:49 + + Group = ControlMeasure + SerialNumber = MGS/691204200:96/MOC-WA/RED + MeasureType = Candidate + ChooserName = "Application autoseed" + DateTime = 2008-12-22T09:24:33 + Sample = 447.11346910145 + Line = 392.3965595217 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MGS/718369703:160/MOC-WA/RED + MeasureType = Candidate + ChooserName = "Application autoseed" + DateTime = 2008-12-22T09:24:33 + Sample = 437.1398375913 + Line = 286.3359479599 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = new0020 + ChooserName = Unknown + DateTime = 2012-05-03T12:58:49 + + Group = ControlMeasure + SerialNumber = MGS/691204200:96/MOC-WA/RED + MeasureType = Candidate + ChooserName = "Application autoseed" + DateTime = 2008-12-22T09:24:33 + Sample = 35.314504786338 + Line = 419.37682721863 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MGS/718369703:160/MOC-WA/RED + MeasureType = Candidate + ChooserName = "Application autoseed" + DateTime = 2008-12-22T09:24:33 + Sample = 25.789877685118 + Line = 313.45441568757 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = new0021 + ChooserName = Unknown + DateTime = 2012-05-03T12:58:49 + + Group = ControlMeasure + SerialNumber = MGS/691204200:96/MOC-WA/RED + MeasureType = Candidate + ChooserName = "Application autoseed" + DateTime = 2008-12-22T09:24:33 + Sample = 73.879724569268 + Line = 416.510362235 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MGS/718369703:160/MOC-WA/RED + MeasureType = Candidate + ChooserName = "Application autoseed" + DateTime = 2008-12-22T09:24:33 + Sample = 64.230148841699 + Line = 310.5769812793 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = new0022 + ChooserName = Unknown + DateTime = 2012-05-03T12:58:49 + + Group = ControlMeasure + SerialNumber = MGS/691204200:96/MOC-WA/RED + MeasureType = Candidate + ChooserName = "Application autoseed" + DateTime = 2008-12-22T09:24:33 + Sample = 112.59354536983 + Line = 413.53082913619 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MGS/718369703:160/MOC-WA/RED + MeasureType = Candidate + ChooserName = "Application autoseed" + DateTime = 2008-12-22T09:24:33 + Sample = 102.83112890233 + Line = 307.58674074819 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = new0023 + ChooserName = Unknown + DateTime = 2012-05-03T12:58:49 + + Group = ControlMeasure + SerialNumber = MGS/691204200:96/MOC-WA/RED + MeasureType = Candidate + ChooserName = "Application autoseed" + DateTime = 2008-12-22T09:24:33 + Sample = 151.47688688712 + Line = 410.97993475279 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MGS/718369703:160/MOC-WA/RED + MeasureType = Candidate + ChooserName = "Application autoseed" + DateTime = 2008-12-22T09:24:33 + Sample = 141.6258655717 + Line = 305.02378286756 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = new0024 + ChooserName = Unknown + DateTime = 2012-05-03T12:58:49 + + Group = ControlMeasure + SerialNumber = MGS/691204200:96/MOC-WA/RED + MeasureType = Candidate + ChooserName = "Application autoseed" + DateTime = 2008-12-22T09:24:33 + Sample = 190.36508552431 + Line = 408.17893239589 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MGS/718369703:160/MOC-WA/RED + MeasureType = Candidate + ChooserName = "Application autoseed" + DateTime = 2008-12-22T09:24:33 + Sample = 180.43582455199 + Line = 302.21139421271 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = new0025 + ChooserName = Unknown + DateTime = 2012-05-03T12:58:49 + + Group = ControlMeasure + SerialNumber = MGS/691204200:96/MOC-WA/RED + MeasureType = Candidate + ChooserName = "Application autoseed" + DateTime = 2008-12-22T09:24:33 + Sample = 220.81867088281 + Line = 426.99739584839 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MGS/718369703:160/MOC-WA/RED + MeasureType = Candidate + ChooserName = "Application autoseed" + DateTime = 2008-12-22T09:24:33 + Sample = 210.86181154898 + Line = 320.98301723143 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = new0026 + ChooserName = Unknown + DateTime = 2012-05-03T12:58:49 + + Group = ControlMeasure + SerialNumber = MGS/691204200:96/MOC-WA/RED + MeasureType = Candidate + ChooserName = "Application autoseed" + DateTime = 2008-12-22T09:24:33 + Sample = 259.62261193082 + Line = 424.18225627403 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MGS/718369703:160/MOC-WA/RED + MeasureType = Candidate + ChooserName = "Application autoseed" + DateTime = 2008-12-22T09:24:33 + Sample = 249.6163909158 + Line = 318.15668410401 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = new0027 + ChooserName = Unknown + DateTime = 2012-05-03T12:58:49 + + Group = ControlMeasure + SerialNumber = MGS/691204200:96/MOC-WA/RED + MeasureType = Candidate + ChooserName = "Application autoseed" + DateTime = 2008-12-22T09:24:33 + Sample = 298.30899741076 + Line = 421.42519521595 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MGS/718369703:160/MOC-WA/RED + MeasureType = Candidate + ChooserName = "Application autoseed" + DateTime = 2008-12-22T09:24:33 + Sample = 288.27100255896 + Line = 315.38818888577 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = new0028 + ChooserName = Unknown + DateTime = 2012-05-03T12:58:49 + + Group = ControlMeasure + SerialNumber = MGS/691204200:96/MOC-WA/RED + MeasureType = Candidate + ChooserName = "Application autoseed" + DateTime = 2008-12-22T09:24:33 + Sample = 336.67502325167 + Line = 419.15164091881 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MGS/718369703:160/MOC-WA/RED + MeasureType = Candidate + ChooserName = "Application autoseed" + DateTime = 2008-12-22T09:24:33 + Sample = 326.63233739384 + Line = 313.10171234904 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = new0029 + ChooserName = Unknown + DateTime = 2012-05-03T12:58:49 + + Group = ControlMeasure + SerialNumber = MGS/691204200:96/MOC-WA/RED + MeasureType = Candidate + ChooserName = "Application autoseed" + DateTime = 2008-12-22T09:24:33 + Sample = 374.8088274976 + Line = 416.71043920798 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MGS/718369703:160/MOC-WA/RED + MeasureType = Candidate + ChooserName = "Application autoseed" + DateTime = 2008-12-22T09:24:33 + Sample = 364.77378781645 + Line = 310.64804045112 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = new0030 + ChooserName = Unknown + DateTime = 2012-05-03T12:58:49 + + Group = ControlMeasure + SerialNumber = MGS/691204200:96/MOC-WA/RED + MeasureType = Candidate + ChooserName = "Application autoseed" + DateTime = 2008-12-22T09:24:33 + Sample = 412.7433497737 + Line = 414.01320951525 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MGS/718369703:160/MOC-WA/RED + MeasureType = Candidate + ChooserName = "Application autoseed" + DateTime = 2008-12-22T09:24:33 + Sample = 402.72610762286 + Line = 307.93903526759 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = new0031 + ChooserName = Unknown + DateTime = 2012-05-03T12:58:49 + Ignore = True + + Group = ControlMeasure + SerialNumber = MGS/691204200:96/MOC-WA/RED + MeasureType = Candidate + ChooserName = "Application autoseed" + DateTime = 2008-12-22T09:24:33 + Sample = 449.39753091028 + Line = 413.04779127673 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MGS/718369703:160/MOC-WA/RED + MeasureType = Candidate + ChooserName = "Application autoseed" + DateTime = 2008-12-22T09:24:33 + Sample = 439.45072383102 + Line = 306.9568034164 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = new0032 + ChooserName = Unknown + DateTime = 2012-05-03T12:58:49 + Ignore = True + + Group = ControlMeasure + SerialNumber = MGS/691204200:96/MOC-WA/RED + MeasureType = Candidate + ChooserName = "Application autoseed" + DateTime = 2008-12-22T09:24:33 + Sample = 43.464883969992 + Line = 439.2597477519 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MGS/718369703:160/MOC-WA/RED + MeasureType = Candidate + ChooserName = "Application autoseed" + DateTime = 2008-12-22T09:24:33 + Sample = 33.785100683671 + Line = 333.44372186509 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = new0033 + ChooserName = Unknown + DateTime = 2012-05-03T12:58:49 + + Group = ControlMeasure + SerialNumber = MGS/691204200:96/MOC-WA/RED + MeasureType = Candidate + ChooserName = "Application autoseed" + DateTime = 2008-12-22T09:24:33 + Sample = 82.031381315359 + Line = 436.43090829286 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MGS/718369703:160/MOC-WA/RED + MeasureType = Candidate + ChooserName = "Application autoseed" + DateTime = 2008-12-22T09:24:33 + Sample = 72.267021555104 + Line = 330.56192690454 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = new0034 + ChooserName = Unknown + DateTime = 2012-05-03T12:58:49 + + Group = ControlMeasure + SerialNumber = MGS/691204200:96/MOC-WA/RED + MeasureType = Candidate + ChooserName = "Application autoseed" + DateTime = 2008-12-22T09:24:33 + Sample = 120.7671638813 + Line = 433.67673785268 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MGS/718369703:160/MOC-WA/RED + MeasureType = Candidate + ChooserName = "Application autoseed" + DateTime = 2008-12-22T09:24:33 + Sample = 110.93424436092 + Line = 327.75725841392 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = new0035 + ChooserName = Unknown + DateTime = 2012-05-03T12:58:49 + + Group = ControlMeasure + SerialNumber = MGS/691204200:96/MOC-WA/RED + MeasureType = Candidate + ChooserName = "Application autoseed" + DateTime = 2008-12-22T09:24:33 + Sample = 159.61329195052 + Line = 431.1786289072 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MGS/718369703:160/MOC-WA/RED + MeasureType = Candidate + ChooserName = "Application autoseed" + DateTime = 2008-12-22T09:24:33 + Sample = 149.72990151882 + Line = 325.21286995747 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = new0036 + ChooserName = Unknown + DateTime = 2012-05-03T12:58:49 + + Group = ControlMeasure + SerialNumber = MGS/691204200:96/MOC-WA/RED + MeasureType = Candidate + ChooserName = "Application autoseed" + DateTime = 2008-12-22T09:24:33 + Sample = 198.45415035333 + Line = 428.54785222778 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MGS/718369703:160/MOC-WA/RED + MeasureType = Candidate + ChooserName = "Application autoseed" + DateTime = 2008-12-22T09:24:33 + Sample = 188.53108510233 + Line = 322.54050296699 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = new0037 + ChooserName = Unknown + DateTime = 2012-05-03T12:58:49 + + Group = ControlMeasure + SerialNumber = MGS/691204200:96/MOC-WA/RED + MeasureType = Candidate + ChooserName = "Application autoseed" + DateTime = 2008-12-22T09:24:33 + Sample = 223.56671055391 + Line = 447.23228271631 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MGS/718369703:160/MOC-WA/RED + MeasureType = Candidate + ChooserName = "Application autoseed" + DateTime = 2008-12-22T09:24:33 + Sample = 213.3680193192 + Line = 341.41565776505 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = new0038 + ChooserName = Unknown + DateTime = 2012-05-03T12:58:49 + + Group = ControlMeasure + SerialNumber = MGS/691204200:96/MOC-WA/RED + MeasureType = Candidate + ChooserName = "Application autoseed" + DateTime = 2008-12-22T09:24:33 + Ignore = True + Sample = 262.29151761831 + Line = 444.69748447539 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MGS/718369703:160/MOC-WA/RED + MeasureType = Candidate + ChooserName = "Application autoseed" + DateTime = 2008-12-22T09:24:33 + Sample = 252.07974106094 + Line = 338.82993376889 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = new0039 + ChooserName = Unknown + DateTime = 2012-05-03T12:58:49 + + Group = ControlMeasure + SerialNumber = MGS/691204200:96/MOC-WA/RED + MeasureType = Candidate + ChooserName = "Application autoseed" + DateTime = 2008-12-22T09:24:33 + Ignore = True + Sample = 300.89010791282 + Line = 442.0620807151 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MGS/718369703:160/MOC-WA/RED + MeasureType = Candidate + ChooserName = "Application autoseed" + DateTime = 2008-12-22T09:24:33 + Ignore = True + Sample = 290.68547871004 + Line = 336.1462253802 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = new0040 + ChooserName = Unknown + DateTime = 2012-05-03T12:58:49 + + Group = ControlMeasure + SerialNumber = MGS/691204200:96/MOC-WA/RED + MeasureType = Candidate + ChooserName = "Application autoseed" + DateTime = 2008-12-22T09:24:33 + Sample = 339.25760065483 + Line = 439.57228386989 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MGS/718369703:160/MOC-WA/RED + MeasureType = Candidate + ChooserName = "Application autoseed" + DateTime = 2008-12-22T09:24:33 + Sample = 329.07862766947 + Line = 333.61118699507 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = new0041 + ChooserName = Unknown + DateTime = 2012-05-03T12:58:49 + + Group = ControlMeasure + SerialNumber = MGS/691204200:96/MOC-WA/RED + MeasureType = Candidate + ChooserName = "Application autoseed" + DateTime = 2008-12-22T09:24:33 + Sample = 377.34966143085 + Line = 437.1164701152 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MGS/718369703:160/MOC-WA/RED + MeasureType = Candidate + ChooserName = "Application autoseed" + DateTime = 2008-12-22T09:24:33 + Sample = 367.21318088003 + Line = 331.11187899492 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = new0042 + ChooserName = Unknown + DateTime = 2012-05-03T12:58:49 + + Group = ControlMeasure + SerialNumber = MGS/691204200:96/MOC-WA/RED + MeasureType = Candidate + ChooserName = "Application autoseed" + DateTime = 2008-12-22T09:24:33 + Sample = 415.17157257786 + Line = 434.56008250241 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MGS/718369703:160/MOC-WA/RED + MeasureType = Candidate + ChooserName = "Application autoseed" + DateTime = 2008-12-22T09:24:33 + Sample = 405.09296772439 + Line = 328.51259675658 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = new0043 + ChooserName = Unknown + DateTime = 2012-05-03T12:58:49 + + Group = ControlMeasure + SerialNumber = MGS/691204200:96/MOC-WA/RED + MeasureType = Candidate + ChooserName = "Application autoseed" + DateTime = 2008-12-22T09:24:33 + Sample = 451.89397453419 + Line = 433.37769193293 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MGS/718369703:160/MOC-WA/RED + MeasureType = Candidate + ChooserName = "Application autoseed" + DateTime = 2008-12-22T09:24:33 + Sample = 441.8988274385 + Line = 327.29998051101 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = new0044 + ChooserName = Unknown + DateTime = 2012-05-03T12:58:49 + + Group = ControlMeasure + SerialNumber = MGS/691204200:96/MOC-WA/RED + MeasureType = Candidate + ChooserName = "Application autoseed" + DateTime = 2008-12-22T09:24:33 + Sample = 13.541454340573 + Line = 461.87473795926 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MGS/718369703:160/MOC-WA/RED + MeasureType = Candidate + ChooserName = "Application autoseed" + DateTime = 2008-12-22T09:24:33 + Sample = 3.7137561540906 + Line = 356.38113613293 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = new0045 + ChooserName = Unknown + DateTime = 2012-05-03T12:58:49 + + Group = ControlMeasure + SerialNumber = MGS/691204200:96/MOC-WA/RED + MeasureType = Candidate + ChooserName = "Application autoseed" + DateTime = 2008-12-22T09:24:33 + Sample = 51.938895574767 + Line = 459.03122322641 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MGS/718369703:160/MOC-WA/RED + MeasureType = Candidate + ChooserName = "Application autoseed" + DateTime = 2008-12-22T09:24:33 + Sample = 42.006442017098 + Line = 353.47159461034 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = new0046 + ChooserName = Unknown + DateTime = 2012-05-03T12:58:49 + + Group = ControlMeasure + SerialNumber = MGS/691204200:96/MOC-WA/RED + MeasureType = Candidate + ChooserName = "Application autoseed" + DateTime = 2008-12-22T09:24:33 + Sample = 90.558527581699 + Line = 456.27310299719 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MGS/718369703:160/MOC-WA/RED + MeasureType = Candidate + ChooserName = "Application autoseed" + DateTime = 2008-12-22T09:24:33 + Sample = 80.537235545132 + Line = 350.65073017945 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = new0047 + ChooserName = Unknown + DateTime = 2012-05-03T12:58:49 + + Group = ControlMeasure + SerialNumber = MGS/691204200:96/MOC-WA/RED + MeasureType = Candidate + ChooserName = "Application autoseed" + DateTime = 2008-12-22T09:24:33 + Sample = 129.35190059662 + Line = 453.78121391638 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MGS/718369703:160/MOC-WA/RED + MeasureType = Candidate + ChooserName = "Application autoseed" + DateTime = 2008-12-22T09:24:33 + Sample = 119.26018439067 + Line = 348.10145811183 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = new0048 + ChooserName = Unknown + DateTime = 2012-05-03T12:58:49 + + Group = ControlMeasure + SerialNumber = MGS/691204200:96/MOC-WA/RED + MeasureType = Candidate + ChooserName = "Application autoseed" + DateTime = 2008-12-22T09:24:33 + Sample = 168.16802368972 + Line = 451.12751290768 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MGS/718369703:160/MOC-WA/RED + MeasureType = Candidate + ChooserName = "Application autoseed" + DateTime = 2008-12-22T09:24:33 + Sample = 158.02073803666 + Line = 345.39039327971 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = new0049 + ChooserName = Unknown + DateTime = 2012-05-03T12:58:49 + + Group = ControlMeasure + SerialNumber = MGS/691204200:96/MOC-WA/RED + MeasureType = Candidate + ChooserName = "Application autoseed" + DateTime = 2008-12-22T09:24:33 + Sample = 206.99014030732 + Line = 448.4386990938 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MGS/718369703:160/MOC-WA/RED + MeasureType = Candidate + ChooserName = "Application autoseed" + DateTime = 2008-12-22T09:24:33 + Sample = 196.80364235828 + Line = 342.64586897144 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = new0050 + ChooserName = Unknown + DateTime = 2012-05-03T12:58:49 + + Group = ControlMeasure + SerialNumber = MGS/691204200:96/MOC-WA/RED + MeasureType = Candidate + ChooserName = "Application autoseed" + DateTime = 2008-12-22T09:24:33 + Sample = 226.33117866633 + Line = 467.58759283332 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MGS/718369703:160/MOC-WA/RED + MeasureType = Candidate + ChooserName = "Application autoseed" + DateTime = 2008-12-22T09:24:33 + Sample = 215.89971074881 + Line = 362.00972482935 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = new0051 + ChooserName = Unknown + DateTime = 2012-05-03T12:58:49 + + Group = ControlMeasure + SerialNumber = MGS/691204200:96/MOC-WA/RED + MeasureType = Candidate + ChooserName = "Application autoseed" + DateTime = 2008-12-22T09:24:33 + Sample = 265.04255741077 + Line = 465.02110268501 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MGS/718369703:160/MOC-WA/RED + MeasureType = Candidate + ChooserName = "Application autoseed" + DateTime = 2008-12-22T09:24:33 + Sample = 254.59646415154 + Line = 359.3840500572 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = new0052 + ChooserName = Unknown + DateTime = 2012-05-03T12:58:49 + + Group = ControlMeasure + SerialNumber = MGS/691204200:96/MOC-WA/RED + MeasureType = Candidate + ChooserName = "Application autoseed" + DateTime = 2008-12-22T09:24:33 + Sample = 303.6479954802 + Line = 462.28151086847 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MGS/718369703:160/MOC-WA/RED + MeasureType = Candidate + ChooserName = "Application autoseed" + DateTime = 2008-12-22T09:24:33 + Sample = 293.20268982868 + Line = 356.58540905665 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = new0053 + ChooserName = Unknown + DateTime = 2012-05-03T12:58:49 + + Group = ControlMeasure + SerialNumber = MGS/691204200:96/MOC-WA/RED + MeasureType = Candidate + ChooserName = "Application autoseed" + DateTime = 2008-12-22T09:24:33 + Sample = 341.99675884552 + Line = 459.81323396253 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MGS/718369703:160/MOC-WA/RED + MeasureType = Candidate + ChooserName = "Application autoseed" + DateTime = 2008-12-22T09:24:33 + Sample = 331.57208539356 + Line = 354.0629701884 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = new0054 + ChooserName = Unknown + DateTime = 2012-05-03T12:58:49 + + Group = ControlMeasure + SerialNumber = MGS/691204200:96/MOC-WA/RED + MeasureType = Candidate + ChooserName = "Application autoseed" + DateTime = 2008-12-22T09:24:33 + Sample = 380.03388251292 + Line = 457.45503614473 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MGS/718369703:160/MOC-WA/RED + MeasureType = Candidate + ChooserName = "Application autoseed" + DateTime = 2008-12-22T09:24:33 + Sample = 369.64769313335 + Line = 351.65357406926 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = new0055 + ChooserName = Unknown + DateTime = 2012-05-03T12:58:49 + + Group = ControlMeasure + SerialNumber = MGS/691204200:96/MOC-WA/RED + MeasureType = Candidate + ChooserName = "Application autoseed" + DateTime = 2008-12-22T09:24:33 + Sample = 417.92282628311 + Line = 454.70389565052 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MGS/718369703:160/MOC-WA/RED + MeasureType = Candidate + ChooserName = "Application autoseed" + DateTime = 2008-12-22T09:24:33 + Sample = 407.58769130151 + Line = 348.84939882781 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = new0056 + ChooserName = Unknown + DateTime = 2012-05-03T12:58:49 + + Group = ControlMeasure + SerialNumber = MGS/691204200:96/MOC-WA/RED + MeasureType = Candidate + ChooserName = "Application autoseed" + DateTime = 2008-12-22T09:24:33 + Sample = 454.63786374006 + Line = 453.49883330126 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MGS/718369703:160/MOC-WA/RED + MeasureType = Candidate + ChooserName = "Application autoseed" + DateTime = 2008-12-22T09:24:33 + Sample = 444.38378805588 + Line = 347.60710671977 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = new0057 + ChooserName = Unknown + DateTime = 2012-05-03T12:58:49 + + Group = ControlMeasure + SerialNumber = MGS/691204200:96/MOC-WA/RED + MeasureType = Candidate + ChooserName = "Application autoseed" + DateTime = 2008-12-22T09:24:33 + Sample = 60.62584221893 + Line = 478.85864591418 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MGS/718369703:160/MOC-WA/RED + MeasureType = Candidate + ChooserName = "Application autoseed" + DateTime = 2008-12-22T09:24:33 + Sample = 50.446464870616 + Line = 373.56602044442 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = new0058 + ChooserName = Unknown + DateTime = 2012-05-03T12:58:49 + + Group = ControlMeasure + SerialNumber = MGS/691204200:96/MOC-WA/RED + MeasureType = Candidate + ChooserName = "Application autoseed" + DateTime = 2008-12-22T09:24:33 + Sample = 99.30081884234 + Line = 476.2538782229 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MGS/718369703:160/MOC-WA/RED + MeasureType = Candidate + ChooserName = "Application autoseed" + DateTime = 2008-12-22T09:24:33 + Sample = 89.038905243482 + Line = 370.88698959096 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = new0059 + ChooserName = Unknown + DateTime = 2012-05-03T12:58:49 + + Group = ControlMeasure + SerialNumber = MGS/691204200:96/MOC-WA/RED + MeasureType = Candidate + ChooserName = "Application autoseed" + DateTime = 2008-12-22T09:24:33 + Sample = 138.07605197639 + Line = 473.63373806196 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MGS/718369703:160/MOC-WA/RED + MeasureType = Candidate + ChooserName = "Application autoseed" + DateTime = 2008-12-22T09:24:33 + Sample = 127.74358623113 + Line = 368.2004283557 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = new0060 + ChooserName = Unknown + DateTime = 2012-05-03T12:58:49 + + Group = ControlMeasure + SerialNumber = MGS/691204200:96/MOC-WA/RED + MeasureType = Candidate + ChooserName = "Application autoseed" + DateTime = 2008-12-22T09:24:33 + Sample = 176.8933393194 + Line = 470.97641350486 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MGS/718369703:160/MOC-WA/RED + MeasureType = Candidate + ChooserName = "Application autoseed" + DateTime = 2008-12-22T09:24:33 + Sample = 166.50656130793 + Line = 365.47824912369 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = new0061 + ChooserName = Unknown + DateTime = 2012-05-03T12:58:49 + + Group = ControlMeasure + SerialNumber = MGS/691204200:96/MOC-WA/RED + MeasureType = Candidate + ChooserName = "Application autoseed" + DateTime = 2008-12-22T09:24:33 + Sample = 382.75999557669 + Line = 477.68493710411 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MGS/718369703:160/MOC-WA/RED + MeasureType = Candidate + ChooserName = "Application autoseed" + DateTime = 2008-12-22T09:24:33 + Sample = 372.13679566215 + Line = 372.08901208852 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = new0062 + ChooserName = Unknown + DateTime = 2012-05-03T12:58:49 + + Group = ControlMeasure + SerialNumber = MGS/691204200:96/MOC-WA/RED + MeasureType = Candidate + ChooserName = "Application autoseed" + DateTime = 2008-12-22T09:24:33 + Sample = 420.52829813638 + Line = 475.15133662178 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MGS/718369703:160/MOC-WA/RED + MeasureType = Candidate + ChooserName = "Application autoseed" + DateTime = 2008-12-22T09:24:33 + Sample = 409.95804420569 + Line = 369.49666811078 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = new0063 + ChooserName = Unknown + DateTime = 2012-05-03T12:58:49 + + Group = ControlMeasure + SerialNumber = MGS/691204200:96/MOC-WA/RED + MeasureType = Candidate + ChooserName = "Application autoseed" + DateTime = 2008-12-22T09:24:33 + Sample = 457.72885192594 + Line = 472.99638403268 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MGS/718369703:160/MOC-WA/RED + MeasureType = Candidate + ChooserName = "Application autoseed" + DateTime = 2008-12-22T09:24:33 + Sample = 447.23100437209 + Line = 367.28844933244 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = new0064 + ChooserName = Unknown + DateTime = 2012-05-03T12:58:49 + Ignore = True + + Group = ControlMeasure + SerialNumber = MGS/718369703:160/MOC-WA/RED + MeasureType = Candidate + ChooserName = "Application autoseed" + DateTime = 2008-12-22T09:24:34 + Sample = 457.6304846974 + Line = 75.398182723679 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MGS/688540926:0/MOC-WA/RED + MeasureType = Candidate + ChooserName = "Application autoseed" + DateTime = 2008-12-22T09:24:34 + Sample = 474.83447903502 + Line = 275.12751002867 + End_Group + + Group = ControlMeasure + SerialNumber = MGS/691204200:96/MOC-WA/RED + MeasureType = Candidate + ChooserName = "Application autoseed" + DateTime = 2008-12-22T09:24:34 + Sample = 467.5225551724 + Line = 180.99580115403 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = new0065 + ChooserName = Unknown + DateTime = 2012-05-03T12:58:49 + Ignore = True + + Group = ControlMeasure + SerialNumber = MGS/718369703:160/MOC-WA/RED + MeasureType = Candidate + ChooserName = "Application autoseed" + DateTime = 2008-12-22T09:24:34 + Ignore = True + Sample = 460.01225255037 + Line = 95.876800782756 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MGS/688540926:0/MOC-WA/RED + MeasureType = Candidate + ChooserName = "Application autoseed" + DateTime = 2008-12-22T09:24:34 + Sample = 477.187963359 + Line = 295.70367014835 + End_Group + + Group = ControlMeasure + SerialNumber = MGS/691204200:96/MOC-WA/RED + MeasureType = Candidate + ChooserName = "Application autoseed" + DateTime = 2008-12-22T09:24:34 + Sample = 469.89397574436 + Line = 201.56542498155 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = new0066 + ChooserName = Unknown + DateTime = 2012-05-03T12:58:49 + + Group = ControlMeasure + SerialNumber = MGS/718369703:160/MOC-WA/RED + MeasureType = Candidate + ChooserName = Unknown + DateTime = 2012-05-03T12:58:49 + Ignore = True + Sample = 462.35208428959 + Line = 116.36800076912 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MGS/688540926:0/MOC-WA/RED + MeasureType = Candidate + ChooserName = "Application autoseed" + DateTime = 2008-12-22T09:24:34 + Sample = 479.53352230593 + Line = 316.30088843423 + End_Group + + Group = ControlMeasure + SerialNumber = MGS/691204200:96/MOC-WA/RED + MeasureType = Candidate + ChooserName = "Application autoseed" + DateTime = 2008-12-22T09:24:34 + Sample = 472.25532228181 + Line = 222.14816684858 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = new0067 + ChooserName = Unknown + DateTime = 2012-05-03T12:58:49 + + Group = ControlMeasure + SerialNumber = MGS/718369703:160/MOC-WA/RED + MeasureType = Candidate + ChooserName = "Application autoseed" + DateTime = 2008-12-22T09:24:34 + Ignore = True + Sample = 33.04943477971 + Line = 207.64538731051 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MGS/688540926:0/MOC-WA/RED + MeasureType = Candidate + ChooserName = "Application autoseed" + DateTime = 2008-12-22T09:24:34 + Ignore = True + Sample = 51.932170047058 + Line = 407.05378039341 + End_Group + + Group = ControlMeasure + SerialNumber = MGS/691204200:96/MOC-WA/RED + MeasureType = Candidate + ChooserName = "Application autoseed" + DateTime = 2008-12-22T09:24:34 + Sample = 42.658880082357 + Line = 313.39222000341 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = new0068 + ChooserName = Unknown + DateTime = 2012-05-03T12:58:49 + Ignore = True + + Group = ControlMeasure + SerialNumber = MGS/718369703:160/MOC-WA/RED + MeasureType = Candidate + ChooserName = "Application autoseed" + DateTime = 2008-12-22T09:24:34 + Ignore = True + Sample = 205.19224208483 + Line = 215.86245786587 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MGS/688540926:0/MOC-WA/RED + MeasureType = Candidate + ChooserName = "Application autoseed" + DateTime = 2008-12-22T09:24:34 + Ignore = True + Sample = 223.96005623139 + Line = 415.65437180684 + End_Group + + Group = ControlMeasure + SerialNumber = MGS/691204200:96/MOC-WA/RED + MeasureType = Candidate + ChooserName = "Application autoseed" + DateTime = 2008-12-22T09:24:34 + Ignore = True + Sample = 215.20985155685 + Line = 321.75094064898 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = new0069 + ChooserName = Unknown + DateTime = 2012-05-03T12:58:49 + + Group = ControlMeasure + SerialNumber = MGS/718369703:160/MOC-WA/RED + MeasureType = Candidate + ChooserName = "Application autoseed" + DateTime = 2008-12-22T09:24:34 + Sample = 243.95950172752 + Line = 213.20782099833 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MGS/688540926:0/MOC-WA/RED + MeasureType = Candidate + ChooserName = "Application autoseed" + DateTime = 2008-12-22T09:24:34 + Sample = 262.61831136631 + Line = 413.06490335698 + End_Group + + Group = ControlMeasure + SerialNumber = MGS/691204200:96/MOC-WA/RED + MeasureType = Candidate + ChooserName = "Application autoseed" + DateTime = 2008-12-22T09:24:34 + Sample = 254.02897765876 + Line = 319.10606841165 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = new0070 + ChooserName = Unknown + DateTime = 2012-05-03T12:58:49 + + Group = ControlMeasure + SerialNumber = MGS/718369703:160/MOC-WA/RED + MeasureType = Candidate + ChooserName = "Application autoseed" + DateTime = 2008-12-22T09:24:34 + Sample = 282.60854604844 + Line = 210.59602015523 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MGS/688540926:0/MOC-WA/RED + MeasureType = Candidate + ChooserName = "Application autoseed" + DateTime = 2008-12-22T09:24:34 + Sample = 301.12588456368 + Line = 410.51802995416 + End_Group + + Group = ControlMeasure + SerialNumber = MGS/691204200:96/MOC-WA/RED + MeasureType = Candidate + ChooserName = "Application autoseed" + DateTime = 2008-12-22T09:24:34 + Sample = 292.71249261284 + Line = 316.50416245431 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = new0071 + ChooserName = Unknown + DateTime = 2012-05-03T12:58:49 + + Group = ControlMeasure + SerialNumber = MGS/718369703:160/MOC-WA/RED + MeasureType = Candidate + ChooserName = "Application autoseed" + DateTime = 2008-12-22T09:24:34 + Sample = 321.08280074311 + Line = 207.99772219339 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MGS/688540926:0/MOC-WA/RED + MeasureType = Candidate + ChooserName = "Application autoseed" + DateTime = 2008-12-22T09:24:34 + Sample = 339.42576541018 + Line = 407.98462619752 + End_Group + + Group = ControlMeasure + SerialNumber = MGS/691204200:96/MOC-WA/RED + MeasureType = Candidate + ChooserName = "Application autoseed" + DateTime = 2008-12-22T09:24:34 + Sample = 331.20451888514 + Line = 313.91571346014 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = new0072 + ChooserName = Unknown + DateTime = 2012-05-03T12:58:49 + + Group = ControlMeasure + SerialNumber = MGS/718369703:160/MOC-WA/RED + MeasureType = Candidate + ChooserName = "Application autoseed" + DateTime = 2008-12-22T09:24:34 + Sample = 1.9318287545343 + Line = 230.65251394295 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MGS/688540926:0/MOC-WA/RED + MeasureType = Candidate + ChooserName = "Application autoseed" + DateTime = 2008-12-22T09:24:34 + Sample = 20.71510390822 + Line = 430.09779971251 + End_Group + + Group = ControlMeasure + SerialNumber = MGS/691204200:96/MOC-WA/RED + MeasureType = Candidate + ChooserName = "Application autoseed" + DateTime = 2008-12-22T09:24:34 + Sample = 11.405115857796 + Line = 336.47098191308 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = new0073 + ChooserName = Unknown + DateTime = 2012-05-03T12:58:49 + + Group = ControlMeasure + SerialNumber = MGS/718369703:160/MOC-WA/RED + MeasureType = Candidate + ChooserName = "Application autoseed" + DateTime = 2008-12-22T09:24:34 + Sample = 40.197992724746 + Line = 227.68227481392 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MGS/688540926:0/MOC-WA/RED + MeasureType = Candidate + ChooserName = "Application autoseed" + DateTime = 2008-12-22T09:24:34 + Sample = 59.052790658398 + Line = 427.19368883739 + End_Group + + Group = ControlMeasure + SerialNumber = MGS/691204200:96/MOC-WA/RED + MeasureType = Candidate + ChooserName = "Application autoseed" + DateTime = 2008-12-22T09:24:34 + Sample = 49.80843138117 + Line = 333.51818027174 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = new0074 + ChooserName = Unknown + DateTime = 2012-05-03T12:58:49 + + Group = ControlMeasure + SerialNumber = MGS/718369703:160/MOC-WA/RED + MeasureType = Candidate + ChooserName = "Application autoseed" + DateTime = 2008-12-22T09:24:34 + Sample = 78.757251487916 + Line = 224.96602512573 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MGS/688540926:0/MOC-WA/RED + MeasureType = Candidate + ChooserName = "Application autoseed" + DateTime = 2008-12-22T09:24:34 + Sample = 97.641116971002 + Line = 424.54430570307 + End_Group + + Group = ControlMeasure + SerialNumber = MGS/691204200:96/MOC-WA/RED + MeasureType = Candidate + ChooserName = "Application autoseed" + DateTime = 2008-12-22T09:24:34 + Sample = 88.485503730667 + Line = 330.82014340192 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = new0075 + ChooserName = Unknown + DateTime = 2012-05-03T12:58:49 + + Group = ControlMeasure + SerialNumber = MGS/718369703:160/MOC-WA/RED + MeasureType = Candidate + ChooserName = "Application autoseed" + DateTime = 2008-12-22T09:24:34 + Sample = 117.41224012231 + Line = 222.00785504853 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MGS/688540926:0/MOC-WA/RED + MeasureType = Candidate + ChooserName = "Application autoseed" + DateTime = 2008-12-22T09:24:34 + Sample = 136.30405378312 + Line = 421.65134801753 + End_Group + + Group = ControlMeasure + SerialNumber = MGS/691204200:96/MOC-WA/RED + MeasureType = Candidate + ChooserName = "Application autoseed" + DateTime = 2008-12-22T09:24:34 + Sample = 127.24974189508 + Line = 327.87463218332 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = new0076 + ChooserName = Unknown + DateTime = 2012-05-03T12:58:49 + + Group = ControlMeasure + SerialNumber = MGS/718369703:160/MOC-WA/RED + MeasureType = Candidate + ChooserName = "Application autoseed" + DateTime = 2008-12-22T09:24:34 + Sample = 156.19715775607 + Line = 219.1575052782 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MGS/688540926:0/MOC-WA/RED + MeasureType = Candidate + ChooserName = "Application autoseed" + DateTime = 2008-12-22T09:24:34 + Sample = 175.06015908186 + Line = 418.86624970626 + End_Group + + Group = ControlMeasure + SerialNumber = MGS/691204200:96/MOC-WA/RED + MeasureType = Candidate + ChooserName = "Application autoseed" + DateTime = 2008-12-22T09:24:34 + Sample = 166.1273508863 + Line = 325.03317358112 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = new0077 + ChooserName = Unknown + DateTime = 2012-05-03T12:58:49 + + Group = ControlMeasure + SerialNumber = MGS/718369703:160/MOC-WA/RED + MeasureType = Candidate + ChooserName = "Application autoseed" + DateTime = 2008-12-22T09:24:34 + Sample = 207.75060818821 + Line = 236.31923835468 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MGS/688540926:0/MOC-WA/RED + MeasureType = Candidate + ChooserName = "Application autoseed" + DateTime = 2008-12-22T09:24:34 + Sample = 226.46286346465 + Line = 436.21338827757 + End_Group + + Group = ControlMeasure + SerialNumber = MGS/691204200:96/MOC-WA/RED + MeasureType = Candidate + ChooserName = "Application autoseed" + DateTime = 2008-12-22T09:24:34 + Sample = 217.7516603177 + Line = 342.26911316279 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = new0078 + ChooserName = Unknown + DateTime = 2012-05-03T12:58:49 + + Group = ControlMeasure + SerialNumber = MGS/718369703:160/MOC-WA/RED + MeasureType = Candidate + ChooserName = "Application autoseed" + DateTime = 2008-12-22T09:24:34 + Sample = 246.50250756643 + Line = 233.71853580313 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MGS/688540926:0/MOC-WA/RED + MeasureType = Candidate + ChooserName = "Application autoseed" + DateTime = 2008-12-22T09:24:34 + Sample = 265.10091571913 + Line = 433.67996341343 + End_Group + + Group = ControlMeasure + SerialNumber = MGS/691204200:96/MOC-WA/RED + MeasureType = Candidate + ChooserName = "Application autoseed" + DateTime = 2008-12-22T09:24:34 + Sample = 256.55019021969 + Line = 339.68698873763 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = new0079 + ChooserName = Unknown + DateTime = 2012-05-03T12:58:49 + + Group = ControlMeasure + SerialNumber = MGS/718369703:160/MOC-WA/RED + MeasureType = Candidate + ChooserName = "Application autoseed" + DateTime = 2008-12-22T09:24:34 + Sample = 285.14809915517 + Line = 231.03857862623 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MGS/688540926:0/MOC-WA/RED + MeasureType = Candidate + ChooserName = "Application autoseed" + DateTime = 2008-12-22T09:24:34 + Sample = 303.6055342191 + Line = 431.06639750112 + End_Group + + Group = ControlMeasure + SerialNumber = MGS/691204200:96/MOC-WA/RED + MeasureType = Candidate + ChooserName = "Application autoseed" + DateTime = 2008-12-22T09:24:34 + Sample = 295.22768092533 + Line = 337.02545730574 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = new0080 + ChooserName = Unknown + DateTime = 2012-05-03T12:58:49 + + Group = ControlMeasure + SerialNumber = MGS/718369703:160/MOC-WA/RED + MeasureType = Candidate + ChooserName = "Application autoseed" + DateTime = 2008-12-22T09:24:34 + Sample = 323.60491818759 + Line = 228.4488703099 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MGS/688540926:0/MOC-WA/RED + MeasureType = Candidate + ChooserName = "Application autoseed" + DateTime = 2008-12-22T09:24:34 + Sample = 341.88795040063 + Line = 428.54310007565 + End_Group + + Group = ControlMeasure + SerialNumber = MGS/691204200:96/MOC-WA/RED + MeasureType = Candidate + ChooserName = "Application autoseed" + DateTime = 2008-12-22T09:24:34 + Sample = 333.69790889885 + Line = 334.45447746053 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = new0081 + ChooserName = Unknown + DateTime = 2012-05-03T12:58:49 + + Group = ControlMeasure + SerialNumber = MGS/718369703:160/MOC-WA/RED + MeasureType = Candidate + ChooserName = "Application autoseed" + DateTime = 2008-12-22T09:24:34 + Sample = 361.7423801317 + Line = 226.10177726401 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MGS/688540926:0/MOC-WA/RED + MeasureType = Candidate + ChooserName = "Application autoseed" + DateTime = 2008-12-22T09:24:34 + Sample = 379.8128437515 + Line = 426.26329064209 + End_Group + + Group = ControlMeasure + SerialNumber = MGS/691204200:96/MOC-WA/RED + MeasureType = Candidate + ChooserName = "Application autoseed" + DateTime = 2008-12-22T09:24:34 + Sample = 371.82708581589 + Line = 332.1268065637 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = new0082 + ChooserName = Unknown + DateTime = 2012-05-03T12:58:49 + + Group = ControlMeasure + SerialNumber = MGS/718369703:160/MOC-WA/RED + MeasureType = Candidate + ChooserName = "Application autoseed" + DateTime = 2008-12-22T09:24:34 + Sample = 399.61875568541 + Line = 223.62261082721 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MGS/688540926:0/MOC-WA/RED + MeasureType = Candidate + ChooserName = "Application autoseed" + DateTime = 2008-12-22T09:24:34 + Sample = 417.45549129239 + Line = 423.8502381098 + End_Group + + Group = ControlMeasure + SerialNumber = MGS/691204200:96/MOC-WA/RED + MeasureType = Candidate + ChooserName = "Application autoseed" + DateTime = 2008-12-22T09:24:34 + Sample = 409.68217002062 + Line = 329.66676251229 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = new0083 + ChooserName = Unknown + DateTime = 2012-05-03T12:58:49 + + Group = ControlMeasure + SerialNumber = MGS/718369703:160/MOC-WA/RED + MeasureType = Candidate + ChooserName = "Application autoseed" + DateTime = 2008-12-22T09:24:34 + Sample = 437.07471263846 + Line = 221.28466899767 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MGS/688540926:0/MOC-WA/RED + MeasureType = Candidate + ChooserName = "Application autoseed" + DateTime = 2008-12-22T09:24:34 + Sample = 454.64731647662 + Line = 421.57876031021 + End_Group + + Group = ControlMeasure + SerialNumber = MGS/691204200:96/MOC-WA/RED + MeasureType = Candidate + ChooserName = "Application autoseed" + DateTime = 2008-12-22T09:24:34 + Sample = 447.10042792123 + Line = 327.34107303664 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = new0084 + ChooserName = Unknown + DateTime = 2012-05-03T12:58:49 + + Group = ControlMeasure + SerialNumber = MGS/718369703:160/MOC-WA/RED + MeasureType = Candidate + ChooserName = "Application autoseed" + DateTime = 2008-12-22T09:24:34 + Sample = 9.2728348419828 + Line = 250.86120472502 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MGS/688540926:0/MOC-WA/RED + MeasureType = Candidate + ChooserName = "Application autoseed" + DateTime = 2008-12-22T09:24:34 + Sample = 28.03228422598 + Line = 450.39562482308 + End_Group + + Group = ControlMeasure + SerialNumber = MGS/691204200:96/MOC-WA/RED + MeasureType = Candidate + ChooserName = "Application autoseed" + DateTime = 2008-12-22T09:24:34 + Sample = 18.772164358801 + Line = 356.70695331817 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = new0085 + ChooserName = Unknown + DateTime = 2012-05-03T12:58:49 + + Group = ControlMeasure + SerialNumber = MGS/718369703:160/MOC-WA/RED + MeasureType = Candidate + ChooserName = "Application autoseed" + DateTime = 2008-12-22T09:24:34 + Sample = 47.576831614772 + Line = 247.88912683565 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MGS/688540926:0/MOC-WA/RED + MeasureType = Candidate + ChooserName = "Application autoseed" + DateTime = 2008-12-22T09:24:34 + Sample = 66.398015039437 + Line = 447.49348074201 + End_Group + + Group = ControlMeasure + SerialNumber = MGS/691204200:96/MOC-WA/RED + MeasureType = Candidate + ChooserName = "Application autoseed" + DateTime = 2008-12-22T09:24:34 + Sample = 57.206855272589 + Line = 353.7544538475 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = new0086 + ChooserName = Unknown + DateTime = 2012-05-03T12:58:49 + + Group = ControlMeasure + SerialNumber = MGS/718369703:160/MOC-WA/RED + MeasureType = Candidate + ChooserName = "Application autoseed" + DateTime = 2008-12-22T09:24:34 + Sample = 86.128736340207 + Line = 245.03816050386 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MGS/688540926:0/MOC-WA/RED + MeasureType = Candidate + ChooserName = "Application autoseed" + DateTime = 2008-12-22T09:24:34 + Sample = 104.97511458817 + Line = 444.71338361445 + End_Group + + Group = ControlMeasure + SerialNumber = MGS/691204200:96/MOC-WA/RED + MeasureType = Candidate + ChooserName = "Application autoseed" + DateTime = 2008-12-22T09:24:34 + Sample = 95.872873826211 + Line = 350.92399901593 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = new0087 + ChooserName = Unknown + DateTime = 2012-05-03T12:58:49 + + Group = ControlMeasure + SerialNumber = MGS/718369703:160/MOC-WA/RED + MeasureType = Candidate + ChooserName = "Application autoseed" + DateTime = 2008-12-22T09:24:34 + Sample = 124.81458927671 + Line = 242.09895644984 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MGS/688540926:0/MOC-WA/RED + MeasureType = Candidate + ChooserName = "Application autoseed" + DateTime = 2008-12-22T09:24:34 + Sample = 143.65810104625 + Line = 441.84489934573 + End_Group + + Group = ControlMeasure + SerialNumber = MGS/691204200:96/MOC-WA/RED + MeasureType = Candidate + ChooserName = "Application autoseed" + DateTime = 2008-12-22T09:24:34 + Sample = 134.65961115059 + Line = 348.00592061661 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = new0088 + ChooserName = Unknown + DateTime = 2012-05-03T12:58:49 + + Group = ControlMeasure + SerialNumber = MGS/718369703:160/MOC-WA/RED + MeasureType = Candidate + ChooserName = "Application autoseed" + DateTime = 2008-12-22T09:24:34 + Sample = 163.61149616781 + Line = 239.22804352143 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MGS/688540926:0/MOC-WA/RED + MeasureType = Candidate + ChooserName = "Application autoseed" + DateTime = 2008-12-22T09:24:34 + Sample = 182.41742908741 + Line = 439.04475026917 + End_Group + + Group = ControlMeasure + SerialNumber = MGS/691204200:96/MOC-WA/RED + MeasureType = Candidate + ChooserName = "Application autoseed" + DateTime = 2008-12-22T09:24:34 + Sample = 173.54075885534 + Line = 345.15658826528 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = new0089 + ChooserName = Unknown + DateTime = 2012-05-03T12:58:49 + + Group = ControlMeasure + SerialNumber = MGS/718369703:160/MOC-WA/RED + MeasureType = Candidate + ChooserName = "Application autoseed" + DateTime = 2008-12-22T09:24:34 + Sample = 210.28240398663 + Line = 256.95948365094 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MGS/688540926:0/MOC-WA/RED + MeasureType = Candidate + ChooserName = "Application autoseed" + DateTime = 2008-12-22T09:24:34 + Sample = 228.95190144135 + Line = 456.92687292921 + End_Group + + Group = ControlMeasure + SerialNumber = MGS/691204200:96/MOC-WA/RED + MeasureType = Candidate + ChooserName = "Application autoseed" + DateTime = 2008-12-22T09:24:34 + Sample = 220.28981014413 + Line = 362.91588956689 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = new0090 + ChooserName = Unknown + DateTime = 2012-05-03T12:58:49 + + Group = ControlMeasure + SerialNumber = MGS/718369703:160/MOC-WA/RED + MeasureType = Candidate + ChooserName = "Application autoseed" + DateTime = 2008-12-22T09:24:34 + Sample = 249.02711018549 + Line = 254.2567648022 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MGS/688540926:0/MOC-WA/RED + MeasureType = Candidate + ChooserName = "Application autoseed" + DateTime = 2008-12-22T09:24:34 + Sample = 267.58172263012 + Line = 454.2957319601 + End_Group + + Group = ControlMeasure + SerialNumber = MGS/691204200:96/MOC-WA/RED + MeasureType = Candidate + ChooserName = "Application autoseed" + DateTime = 2008-12-22T09:24:34 + Sample = 259.07897306573 + Line = 360.23418990954 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = new0091 + ChooserName = Unknown + DateTime = 2012-05-03T12:58:49 + + Group = ControlMeasure + SerialNumber = MGS/718369703:160/MOC-WA/RED + MeasureType = Candidate + ChooserName = "Application autoseed" + DateTime = 2008-12-22T09:24:34 + Sample = 287.66706609449 + Line = 251.53246833885 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MGS/688540926:0/MOC-WA/RED + MeasureType = Candidate + ChooserName = "Application autoseed" + DateTime = 2008-12-22T09:24:34 + Sample = 306.07706817476 + Line = 451.64271851927 + End_Group + + Group = ControlMeasure + SerialNumber = MGS/691204200:96/MOC-WA/RED + MeasureType = Candidate + ChooserName = "Application autoseed" + DateTime = 2008-12-22T09:24:34 + Sample = 297.74734956111 + Line = 357.53157974596 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = new0092 + ChooserName = Unknown + DateTime = 2012-05-03T12:58:49 + + Group = ControlMeasure + SerialNumber = MGS/718369703:160/MOC-WA/RED + MeasureType = Candidate + ChooserName = "Application autoseed" + DateTime = 2008-12-22T09:24:34 + Sample = 326.10405196827 + Line = 248.95666709406 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MGS/688540926:0/MOC-WA/RED + MeasureType = Candidate + ChooserName = "Application autoseed" + DateTime = 2008-12-22T09:24:34 + Sample = 344.33374949004 + Line = 449.13920021898 + End_Group + + Group = ControlMeasure + SerialNumber = MGS/691204200:96/MOC-WA/RED + MeasureType = Candidate + ChooserName = "Application autoseed" + DateTime = 2008-12-22T09:24:34 + Sample = 336.19312649703 + Line = 354.97824670457 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = new0093 + ChooserName = Unknown + DateTime = 2012-05-03T12:58:49 + + Group = ControlMeasure + SerialNumber = MGS/718369703:160/MOC-WA/RED + MeasureType = Candidate + ChooserName = "Application autoseed" + DateTime = 2008-12-22T09:24:34 + Sample = 364.22874451962 + Line = 246.58401748283 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MGS/688540926:0/MOC-WA/RED + MeasureType = Candidate + ChooserName = "Application autoseed" + DateTime = 2008-12-22T09:24:34 + Sample = 382.24191641484 + Line = 446.83967090939 + End_Group + + Group = ControlMeasure + SerialNumber = MGS/691204200:96/MOC-WA/RED + MeasureType = Candidate + ChooserName = "Application autoseed" + DateTime = 2008-12-22T09:24:34 + Sample = 374.30603198036 + Line = 352.6288151688 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = new0094 + ChooserName = Unknown + DateTime = 2012-05-03T12:58:49 + + Group = ControlMeasure + SerialNumber = MGS/718369703:160/MOC-WA/RED + MeasureType = Candidate + ChooserName = "Application autoseed" + DateTime = 2008-12-22T09:24:34 + Sample = 402.08034166792 + Line = 244.1081340044 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MGS/688540926:0/MOC-WA/RED + MeasureType = Candidate + ChooserName = "Application autoseed" + DateTime = 2008-12-22T09:24:34 + Sample = 419.85454454593 + Line = 444.43667258752 + End_Group + + Group = ControlMeasure + SerialNumber = MGS/691204200:96/MOC-WA/RED + MeasureType = Candidate + ChooserName = "Application autoseed" + DateTime = 2008-12-22T09:24:34 + Sample = 412.13205666513 + Line = 350.17670485629 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = new0095 + ChooserName = Unknown + DateTime = 2012-05-03T12:58:49 + + Group = ControlMeasure + SerialNumber = MGS/718369703:160/MOC-WA/RED + MeasureType = Candidate + ChooserName = "Application autoseed" + DateTime = 2008-12-22T09:24:34 + Sample = 439.64155090357 + Line = 241.51723607622 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MGS/688540926:0/MOC-WA/RED + MeasureType = Candidate + ChooserName = "Application autoseed" + DateTime = 2008-12-22T09:24:34 + Sample = 457.15598607744 + Line = 441.91838180779 + End_Group + + Group = ControlMeasure + SerialNumber = MGS/691204200:96/MOC-WA/RED + MeasureType = Candidate + ChooserName = "Application autoseed" + DateTime = 2008-12-22T09:24:34 + Sample = 449.65450271612 + Line = 347.61016925278 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = new0096 + ChooserName = Unknown + DateTime = 2012-05-03T12:58:49 + + Group = ControlMeasure + SerialNumber = MGS/718369703:160/MOC-WA/RED + MeasureType = Candidate + ChooserName = "Application autoseed" + DateTime = 2008-12-22T09:24:34 + Sample = 16.706313553447 + Line = 270.85785446436 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MGS/688540926:0/MOC-WA/RED + MeasureType = Candidate + ChooserName = "Application autoseed" + DateTime = 2008-12-22T09:24:34 + Sample = 35.495469601723 + Line = 470.48373747509 + End_Group + + Group = ControlMeasure + SerialNumber = MGS/691204200:96/MOC-WA/RED + MeasureType = Candidate + ChooserName = "Application autoseed" + DateTime = 2008-12-22T09:24:34 + Sample = 26.244980889334 + Line = 376.71994832416 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = new0097 + ChooserName = Unknown + DateTime = 2012-05-03T12:58:49 + + Group = ControlMeasure + SerialNumber = MGS/718369703:160/MOC-WA/RED + MeasureType = Candidate + ChooserName = "Application autoseed" + DateTime = 2008-12-22T09:24:34 + Sample = 55.096100211402 + Line = 268.00710272558 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MGS/688540926:0/MOC-WA/RED + MeasureType = Candidate + ChooserName = "Application autoseed" + DateTime = 2008-12-22T09:24:34 + Sample = 73.926983952242 + Line = 467.69892383747 + End_Group + + Group = ControlMeasure + SerialNumber = MGS/691204200:96/MOC-WA/RED + MeasureType = Candidate + ChooserName = "Application autoseed" + DateTime = 2008-12-22T09:24:34 + Sample = 64.760076105261 + Line = 373.88649650395 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = new0098 + ChooserName = Unknown + DateTime = 2012-05-03T12:58:49 + + Group = ControlMeasure + SerialNumber = MGS/718369703:160/MOC-WA/RED + MeasureType = Candidate + ChooserName = "Application autoseed" + DateTime = 2008-12-22T09:24:34 + Sample = 93.653900937427 + Line = 265.0532822766 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MGS/688540926:0/MOC-WA/RED + MeasureType = Candidate + ChooserName = "Application autoseed" + DateTime = 2008-12-22T09:24:34 + Sample = 112.49920617427 + Line = 464.81148761724 + End_Group + + Group = ControlMeasure + SerialNumber = MGS/691204200:96/MOC-WA/RED + MeasureType = Candidate + ChooserName = "Application autoseed" + DateTime = 2008-12-22T09:24:34 + Sample = 103.43078817918 + Line = 370.95055781871 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = new0099 + ChooserName = Unknown + DateTime = 2012-05-03T12:58:49 + + Group = ControlMeasure + SerialNumber = MGS/718369703:160/MOC-WA/RED + MeasureType = Candidate + ChooserName = "Application autoseed" + DateTime = 2008-12-22T09:24:34 + Sample = 132.37019878824 + Line = 262.13677620159 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MGS/688540926:0/MOC-WA/RED + MeasureType = Candidate + ChooserName = "Application autoseed" + DateTime = 2008-12-22T09:24:34 + Sample = 151.19663836386 + Line = 461.96248715372 + End_Group + + Group = ControlMeasure + SerialNumber = MGS/691204200:96/MOC-WA/RED + MeasureType = Candidate + ChooserName = "Application autoseed" + DateTime = 2008-12-22T09:24:34 + Sample = 142.24425262511 + Line = 368.05273651857 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = new0100 + ChooserName = Unknown + DateTime = 2012-05-03T12:58:49 + + Group = ControlMeasure + SerialNumber = MGS/718369703:160/MOC-WA/RED + MeasureType = Candidate + ChooserName = "Application autoseed" + DateTime = 2008-12-22T09:24:34 + Sample = 171.19785333443 + Line = 259.63363163384 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MGS/688540926:0/MOC-WA/RED + MeasureType = Candidate + ChooserName = "Application autoseed" + DateTime = 2008-12-22T09:24:34 + Sample = 189.95691061088 + Line = 459.5295415342 + End_Group + + Group = ControlMeasure + SerialNumber = MGS/691204200:96/MOC-WA/RED + MeasureType = Candidate + ChooserName = "Application autoseed" + DateTime = 2008-12-22T09:24:34 + Sample = 181.14492956916 + Line = 365.56950123898 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = new0101 + ChooserName = Unknown + DateTime = 2012-05-03T12:58:49 + + Group = ControlMeasure + SerialNumber = MGS/718369703:160/MOC-WA/RED + MeasureType = Candidate + ChooserName = "Application autoseed" + DateTime = 2008-12-22T09:24:34 + Sample = 212.81424378753 + Line = 277.47574436131 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MGS/688540926:0/MOC-WA/RED + MeasureType = Candidate + ChooserName = "Application autoseed" + DateTime = 2008-12-22T09:24:34 + Sample = 231.50551171771 + Line = 477.51787903431 + End_Group + + Group = ControlMeasure + SerialNumber = MGS/691204200:96/MOC-WA/RED + MeasureType = Candidate + ChooserName = "Application autoseed" + DateTime = 2008-12-22T09:24:34 + Sample = 222.82226310755 + Line = 383.43333766726 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = new0102 + ChooserName = Unknown + DateTime = 2012-05-03T12:58:49 + + Group = ControlMeasure + SerialNumber = MGS/718369703:160/MOC-WA/RED + MeasureType = Candidate + ChooserName = "Application autoseed" + DateTime = 2008-12-22T09:24:34 + Sample = 251.55729692049 + Line = 274.70165880063 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MGS/688540926:0/MOC-WA/RED + MeasureType = Candidate + ChooserName = "Application autoseed" + DateTime = 2008-12-22T09:24:34 + Sample = 270.1263973688 + Line = 474.8112660352 + End_Group + + Group = ControlMeasure + SerialNumber = MGS/691204200:96/MOC-WA/RED + MeasureType = Candidate + ChooserName = "Application autoseed" + DateTime = 2008-12-22T09:24:34 + Sample = 261.61752210309 + Line = 380.67741048979 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = new0103 + ChooserName = Unknown + DateTime = 2012-05-03T12:58:49 + + Group = ControlMeasure + SerialNumber = MGS/718369703:160/MOC-WA/RED + MeasureType = Candidate + ChooserName = "Application autoseed" + DateTime = 2008-12-22T09:24:34 + Sample = 290.17957584383 + Line = 272.02267182857 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MGS/688540926:0/MOC-WA/RED + MeasureType = Candidate + ChooserName = "Application autoseed" + DateTime = 2008-12-22T09:24:34 + Sample = 308.59231734557 + Line = 472.20099900447 + End_Group + + Group = ControlMeasure + SerialNumber = MGS/691204200:96/MOC-WA/RED + MeasureType = Candidate + ChooserName = "Application autoseed" + DateTime = 2008-12-22T09:24:34 + Sample = 300.27020286304 + Line = 378.01742249825 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = new0104 + ChooserName = Unknown + DateTime = 2012-05-03T12:58:49 + + Group = ControlMeasure + SerialNumber = MGS/718369703:160/MOC-WA/RED + MeasureType = Candidate + ChooserName = "Application autoseed" + DateTime = 2008-12-22T09:24:34 + Sample = 328.58063576356 + Line = 269.51561607631 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MGS/688540926:0/MOC-WA/RED + MeasureType = Candidate + ChooserName = "Application autoseed" + DateTime = 2008-12-22T09:24:34 + Sample = 346.80111690207 + Line = 469.76413220215 + End_Group + + Group = ControlMeasure + SerialNumber = MGS/691204200:96/MOC-WA/RED + MeasureType = Candidate + ChooserName = "Application autoseed" + DateTime = 2008-12-22T09:24:34 + Sample = 338.67746829452 + Line = 375.53030167793 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = new0105 + ChooserName = Unknown + DateTime = 2012-05-03T12:58:49 + + Group = ControlMeasure + SerialNumber = MGS/718369703:160/MOC-WA/RED + MeasureType = Candidate + ChooserName = "Application autoseed" + DateTime = 2008-12-22T09:24:34 + Sample = 366.70525962922 + Line = 267.07668425596 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MGS/688540926:0/MOC-WA/RED + MeasureType = Candidate + ChooserName = "Application autoseed" + DateTime = 2008-12-22T09:24:34 + Sample = 384.70306691995 + Line = 467.39641276823 + End_Group + + Group = ControlMeasure + SerialNumber = MGS/691204200:96/MOC-WA/RED + MeasureType = Candidate + ChooserName = "Application autoseed" + DateTime = 2008-12-22T09:24:34 + Sample = 376.79063695802 + Line = 373.11196939834 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = new0106 + ChooserName = Unknown + DateTime = 2012-05-03T12:58:49 + + Group = ControlMeasure + SerialNumber = MGS/718369703:160/MOC-WA/RED + MeasureType = Candidate + ChooserName = "Application autoseed" + DateTime = 2008-12-22T09:24:34 + Sample = 404.61798154484 + Line = 264.41868722101 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MGS/688540926:0/MOC-WA/RED + MeasureType = Candidate + ChooserName = "Application autoseed" + DateTime = 2008-12-22T09:24:34 + Sample = 422.37441658546 + Line = 464.80965274513 + End_Group + + Group = ControlMeasure + SerialNumber = MGS/691204200:96/MOC-WA/RED + MeasureType = Candidate + ChooserName = "Application autoseed" + DateTime = 2008-12-22T09:24:34 + Sample = 414.68055033674 + Line = 370.47509653686 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = new0107 + ChooserName = Unknown + DateTime = 2012-05-03T12:58:49 + + Group = ControlMeasure + SerialNumber = MGS/718369703:160/MOC-WA/RED + MeasureType = Candidate + ChooserName = "Application autoseed" + DateTime = 2008-12-22T09:24:34 + Sample = 441.66228137884 + Line = 262.78248139854 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MGS/688540926:0/MOC-WA/RED + MeasureType = Candidate + ChooserName = "Application autoseed" + DateTime = 2008-12-22T09:24:34 + Sample = 459.11784379988 + Line = 463.24871167321 + End_Group + + Group = ControlMeasure + SerialNumber = MGS/691204200:96/MOC-WA/RED + MeasureType = Candidate + ChooserName = "Application autoseed" + DateTime = 2008-12-22T09:24:34 + Sample = 451.66575491637 + Line = 368.86094398859 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = new0108 + ChooserName = Unknown + DateTime = 2012-05-03T12:58:49 + + Group = ControlMeasure + SerialNumber = MGS/718369703:160/MOC-WA/RED + MeasureType = Candidate + ChooserName = "Application autoseed" + DateTime = 2008-12-22T09:24:34 + Sample = 178.94746933022 + Line = 279.83515345393 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MGS/688540926:0/MOC-WA/RED + MeasureType = Candidate + ChooserName = "Application autoseed" + DateTime = 2008-12-22T09:24:34 + Sample = 197.72240205749 + Line = 479.81896983674 + End_Group + + Group = ControlMeasure + SerialNumber = MGS/691204200:96/MOC-WA/RED + MeasureType = Candidate + ChooserName = "Application autoseed" + DateTime = 2008-12-22T09:24:34 + Sample = 188.89803974946 + Line = 385.7773340193 + End_Group + End_Object +End_Object +End diff --git a/isis/tests/data/cnetedit/cnet_11pts.pvl b/isis/tests/data/cnetedit/cnet_11pts.pvl new file mode 100644 index 0000000000..da6e3473b1 --- /dev/null +++ b/isis/tests/data/cnetedit/cnet_11pts.pvl @@ -0,0 +1,344 @@ +Object = ControlNetwork + NetworkId = pointregTest + TargetName = Mars + UserName = jwalldren + Created = Null + LastModified = Null + Description = pointregAppTest + Version = 5 + + Object = ControlPoint + PointType = Free + PointId = pointregTest0001 + ChooserName = cnetbin2pvl + DateTime = 2023-11-15T08:30:46 + + Group = ControlMeasure + SerialNumber = MRO/HIRISE/856864216:41044/RED4/2 + MeasureType = Candidate + ChooserName = "Application autoseed" + DateTime = 2008-02-19T14:31:39 + Sample = 2024.9426496396 + Line = 1002.2851420811 + SampleResidual = 10.0 + LineResidual = 0.0 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MRO/HIRISE/856864216:41044/RED5/2 + MeasureType = Candidate + ChooserName = "Application autoseed" + DateTime = 2008-02-19T14:31:39 + Sample = 24.231028472272 + Line = 1003.4315948486 + AprioriSample = 25.0 + AprioriLine = 1000.0 + SampleResidual = 0.0 + LineResidual = 0.0 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = pointregTest0002 + ChooserName = cnetbin2pvl + DateTime = 2023-11-15T08:30:46 + Ignore = True + + Group = ControlMeasure + SerialNumber = MRO/HIRISE/856864216:41044/RED4/2 + MeasureType = Candidate + ChooserName = "Application autoseed" + DateTime = 2008-02-19T14:31:39 + Sample = 2037.6533300862 + Line = 1184.6426576887 + SampleResidual = 0.0 + LineResidual = 0.0 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MRO/HIRISE/856864216:41044/RED5/2 + MeasureType = Candidate + ChooserName = "Application autoseed" + DateTime = 2008-02-19T14:31:39 + Sample = 36.997759287231 + Line = 1185.8466715131 + SampleResidual = 0.0 + LineResidual = 0.0 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = pointregTest0003 + ChooserName = cnetbin2pvl + DateTime = 2023-11-15T08:30:46 + + Group = ControlMeasure + SerialNumber = MRO/HIRISE/856864216:41044/RED4/2 + MeasureType = Candidate + ChooserName = "Application autoseed" + DateTime = 2008-02-19T14:31:39 + Sample = 2003.8286760498 + Line = 1361.3694076538 + SampleResidual = 0.0 + LineResidual = 0.0 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MRO/HIRISE/856864216:41044/RED5/2 + MeasureType = Candidate + ChooserName = "Application autoseed" + DateTime = 2008-02-19T14:31:39 + Sample = 3.217924722872 + Line = 1362.6534620013 + SampleResidual = 0.0 + LineResidual = 6.0 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = pointregTest0004 + ChooserName = cnetbin2pvl + DateTime = 2023-11-15T08:30:46 + Ignore = True + + Group = ControlMeasure + SerialNumber = MRO/HIRISE/856864216:41044/RED4/2 + MeasureType = Candidate + ChooserName = "Application autoseed" + DateTime = 2008-02-19T14:31:39 + Sample = 2016.6480691753 + Line = 1543.6421143668 + SampleResidual = 0.0 + LineResidual = 0.0 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MRO/HIRISE/856864216:41044/RED5/2 + MeasureType = Candidate + ChooserName = "Application autoseed" + DateTime = 2008-02-19T14:31:39 + Sample = 16.046408804032 + Line = 1545.0106370108 + SampleResidual = 0.0 + LineResidual = 0.0 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = pointregTest0005 + ChooserName = cnetbin2pvl + DateTime = 2023-11-15T08:30:46 + + Group = ControlMeasure + SerialNumber = MRO/HIRISE/856864216:41044/RED4/2 + MeasureType = Candidate + ChooserName = "Application autoseed" + DateTime = 2008-02-19T14:31:39 + Sample = 2029.5446002794 + Line = 1725.8194536482 + SampleResidual = 0.0 + LineResidual = 0.0 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MRO/HIRISE/856864216:41044/RED5/2 + MeasureType = Candidate + ChooserName = "Application autoseed" + DateTime = 2008-02-19T14:31:39 + Sample = 28.925844700071 + Line = 1727.3395423889 + SampleResidual = 0.0 + LineResidual = 0.0 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = pointregTest0006 + ChooserName = cnetbin2pvl + DateTime = 2023-11-15T08:30:46 + + Group = ControlMeasure + SerialNumber = MRO/HIRISE/856864216:41044/RED4/2 + MeasureType = Candidate + ChooserName = "Application autoseed" + DateTime = 2008-02-19T14:31:39 + Sample = 2042.5256884771 + Line = 1907.9279921395 + SampleResidual = 0.0 + LineResidual = 0.0 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MRO/HIRISE/856864216:41044/RED5/2 + MeasureType = Candidate + ChooserName = "Application autoseed" + DateTime = 2008-02-19T14:31:39 + Sample = 41.865298408191 + Line = 1909.6773033142 + SampleResidual = 0.0 + LineResidual = 0.0 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = pointregTest0007 + ChooserName = cnetbin2pvl + DateTime = 2023-11-15T08:30:46 + + Group = ControlMeasure + SerialNumber = MRO/HIRISE/856864216:41044/RED4/2 + MeasureType = Candidate + ChooserName = "Application autoseed" + DateTime = 2008-02-19T14:31:39 + Sample = 2012.201404177 + Line = 819.94669995989 + SampleResidual = 11.0 + LineResidual = 0.0 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MRO/HIRISE/856864216:41044/RED5/2 + MeasureType = Candidate + ChooserName = "Application autoseed" + DateTime = 2008-02-19T14:31:39 + Sample = 11.40926078542 + Line = 821.0601147243 + SampleResidual = 0.0 + LineResidual = 0.0 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = pointregTest0008 + ChooserName = cnetbin2pvl + DateTime = 2023-11-15T08:30:46 + + Group = ControlMeasure + SerialNumber = MRO/HIRISE/856864216:41044/RED4/2 + MeasureType = Candidate + ChooserName = "Application autoseed" + DateTime = 2008-02-19T14:31:39 + Sample = 2045.9696349664 + Line = 643.09835651943 + SampleResidual = 0.0 + LineResidual = 0.0 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MRO/HIRISE/856864216:41044/RED5/2 + MeasureType = Candidate + ChooserName = "Application autoseed" + DateTime = 2008-02-19T14:31:39 + Sample = 45.063543577348 + Line = 644.22982297625 + SampleResidual = 0.0 + LineResidual = 0.0 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = pointregTest0009 + ChooserName = cnetbin2pvl + DateTime = 2023-11-15T08:30:46 + + Group = ControlMeasure + SerialNumber = MRO/HIRISE/856864216:41044/RED4/2 + MeasureType = Candidate + ChooserName = "Application autoseed" + DateTime = 2008-02-19T14:31:39 + Sample = 2033.1477595262 + Line = 460.74015971592 + SampleResidual = 0.0 + LineResidual = 0.0 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MRO/HIRISE/856864216:41044/RED5/2 + MeasureType = Candidate + ChooserName = "Application autoseed" + DateTime = 2008-02-19T14:31:39 + Sample = 32.112688695736 + Line = 461.86277062552 + SampleResidual = 0.0 + LineResidual = 0.0 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = pointregTest0010 + ChooserName = cnetbin2pvl + DateTime = 2023-11-15T08:30:46 + + Group = ControlMeasure + SerialNumber = MRO/HIRISE/856864216:41044/RED4/2 + MeasureType = Candidate + ChooserName = "Application autoseed" + DateTime = 2008-02-19T14:31:39 + Sample = 2020.272346886 + Line = 278.31520571027 + SampleResidual = 0.0 + LineResidual = 0.0 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MRO/HIRISE/856864216:41044/RED5/2 + MeasureType = Candidate + ChooserName = "Application autoseed" + DateTime = 2008-02-19T14:31:39 + Sample = 19.083908218492 + Line = 279.54408318656 + SampleResidual = 0.0 + LineResidual = 0.0 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = pointregTest0011 + ChooserName = cnetbin2pvl + DateTime = 2023-11-15T08:30:46 + + Group = ControlMeasure + SerialNumber = MRO/HIRISE/856864216:41044/RED4/2 + MeasureType = Candidate + ChooserName = "Application autoseed" + DateTime = 2008-02-19T14:31:39 + Sample = 2007.3360059905 + Line = 95.954965318952 + SampleResidual = 0.0 + LineResidual = 0.0 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MRO/HIRISE/856864216:41044/RED5/2 + MeasureType = Candidate + ChooserName = "Application autoseed" + DateTime = 2008-02-19T14:31:39 + Sample = 5.9696691241626 + Line = 97.276485443115 + SampleResidual = 0.0 + LineResidual = 0.0 + End_Group + End_Object +End_Object +End diff --git a/isis/tests/data/cnetedit/cnet_35pts.pvl b/isis/tests/data/cnetedit/cnet_35pts.pvl new file mode 100644 index 0000000000..c0556f3564 --- /dev/null +++ b/isis/tests/data/cnetedit/cnet_35pts.pvl @@ -0,0 +1,1623 @@ +Object = ControlNetwork + NetworkId = I24827003RDR_BOUNDARY_NET + TargetName = Mars + UserName = lweller + Created = 2011-12-15T23:19:37 + LastModified = 2011-12-15T23:19:37 + Description = "I24827003RDR IMAGE BOUNDARY NETWORK" + Version = 5 + + Object = ControlPoint + PointType = Free + PointId = I24827003RDR_UL + ChooserName = cnetadd + DateTime = 2011-12-15T23:20:27 + + Group = ControlMeasure + SerialNumber = Odyssey/THEMIS_IR/869400711.102 + MeasureType = RegisteredSubPixel + ChooserName = pointreg + DateTime = 2012-01-13T13:24:49 + Sample = 27.607059317834 + Line = 18.295111585227 + AprioriSample = 27.592145368644 + AprioriLine = 18.277370871022 + MinimumPixelZScore = -9.1101292766656 + MaximumPixelZScore = 7.1550838917398 + GoodnessOfFit = 0.42491860555961 + SubPixelCorrelation = 0.42491860555961 + Obsolete_Eccentricity = 0.82500889401041 + WholePixelCorrelation = 0.48094671315067 + End_Group + + Group = ControlMeasure + SerialNumber = Odyssey/THEMIS_IR/764644820.000 + MeasureType = Candidate + ChooserName = cnetref + DateTime = 2011-12-15T23:20:28 + Sample = 142.0 + Line = 5710.0 + AprioriSample = 137.85157104559 + AprioriLine = 5723.5583837946 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = Odyssey/THEMIS_IR/766864399.204 + MeasureType = RegisteredSubPixel + ChooserName = pointreg + DateTime = 2012-01-13T13:24:49 + Sample = 224.84594511441 + Line = 1114.556157076 + AprioriSample = 224.86109569625 + AprioriLine = 1114.5366784126 + MinimumPixelZScore = -9.1101292766656 + MaximumPixelZScore = 7.1550838917398 + GoodnessOfFit = 0.6301057592872 + SubPixelCorrelation = 0.6301057592872 + Obsolete_Eccentricity = 0.85464446637656 + WholePixelCorrelation = 0.91990818731499 + End_Group + + Group = ControlMeasure + SerialNumber = Odyssey/THEMIS_IR/860700556.051 + MeasureType = RegisteredSubPixel + ChooserName = pointreg + DateTime = 2012-01-13T13:24:49 + Sample = 241.70373879742 + Line = 4170.1757137588 + AprioriSample = 241.66704417356 + AprioriLine = 4170.1768448015 + MinimumPixelZScore = -9.1101292766656 + MaximumPixelZScore = 7.1550838917398 + GoodnessOfFit = 0.52130053192069 + SubPixelCorrelation = 0.52130053192069 + Obsolete_Eccentricity = 0.87083916894004 + WholePixelCorrelation = 0.68332380944365 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = I24827003RDR_UR + ChooserName = cnetadd + DateTime = 2011-12-15T23:20:27 + + Group = ControlMeasure + SerialNumber = Odyssey/THEMIS_IR/869400711.102 + MeasureType = RegisteredSubPixel + ChooserName = pointreg + DateTime = 2012-01-13T13:24:49 + Sample = 126.11723415114 + Line = 14.624031718257 + AprioriSample = 126.13262109331 + AprioriLine = 14.60864867694 + MinimumPixelZScore = -7.7826442877901 + MaximumPixelZScore = 6.4531771874365 + GoodnessOfFit = 0.54141035408281 + SubPixelCorrelation = 0.54141035408281 + Obsolete_Eccentricity = 0.80166834482906 + WholePixelCorrelation = 0.59126689617359 + End_Group + + Group = ControlMeasure + SerialNumber = Odyssey/THEMIS_IR/760206015.230 + MeasureType = Candidate + ChooserName = cnetref + DateTime = 2011-12-15T23:20:28 + Sample = 167.0 + Line = 4129.0 + AprioriSample = 185.89330945024 + AprioriLine = 4149.8781759925 + Reference = True + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = I24827003RDR_LL + ChooserName = cnetadd + DateTime = 2011-12-15T23:20:27 + + Group = ControlMeasure + SerialNumber = Odyssey/THEMIS_IR/869400711.102 + MeasureType = RegisteredSubPixel + ChooserName = pointreg + DateTime = 2012-01-13T13:24:49 + Sample = 15.994142166447 + Line = 5351.59876634 + AprioriSample = 15.988352444663 + AprioriLine = 5351.6271443448 + MinimumPixelZScore = -1.3323758785145 + MaximumPixelZScore = 1.7088719658458 + GoodnessOfFit = 0.97152986956068 + SubPixelCorrelation = 0.97152986956068 + Obsolete_Eccentricity = 0.84992032708551 + WholePixelCorrelation = 0.97231368866292 + End_Group + + Group = ControlMeasure + SerialNumber = Odyssey/THEMIS_IR/823680993.230 + MeasureType = Candidate + ChooserName = cnetref + DateTime = 2011-12-15T23:20:28 + Sample = 276.0 + Line = 10691.0 + AprioriSample = 294.45457233458 + AprioriLine = 10704.104037218 + Reference = True + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = I24827003RDR_CTR + ChooserName = cnetadd + DateTime = 2011-12-15T23:20:27 + + Group = ControlMeasure + SerialNumber = Odyssey/THEMIS_IR/869400711.102 + MeasureType = RegisteredSubPixel + ChooserName = pointreg + DateTime = 2012-01-13T13:24:49 + Sample = 72.351376549012 + Line = 2683.7835945571 + AprioriSample = 72.31156993241 + AprioriLine = 2683.7871073413 + MinimumPixelZScore = -10.556951321328 + MaximumPixelZScore = 7.6843165392047 + GoodnessOfFit = 0.42694248853572 + SubPixelCorrelation = 0.42694248853572 + Obsolete_Eccentricity = 0.86764337082849 + WholePixelCorrelation = 0.47513217291136 + End_Group + + Group = ControlMeasure + SerialNumber = Odyssey/THEMIS_IR/760206015.230 + MeasureType = Candidate + ChooserName = cnetref + DateTime = 2011-12-15T23:20:28 + Sample = 62.0 + Line = 9450.0 + AprioriSample = 78.035822649479 + AprioriLine = 9466.8664683336 + Reference = True + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = I24827003RDR_bndry_1 + ChooserName = cnetadd + DateTime = 2012-01-13T13:06:19 + + Group = ControlMeasure + SerialNumber = Odyssey/THEMIS_IR/869400711.102 + MeasureType = RegisteredSubPixel + ChooserName = pointreg + DateTime = 2012-01-13T13:24:49 + Sample = 48.760708608846 + Line = 34.687788591 + AprioriSample = 48.783779645185 + AprioriLine = 34.690686342128 + MinimumPixelZScore = -10.336933423527 + MaximumPixelZScore = 8.3466298590249 + GoodnessOfFit = 0.42219888501096 + SubPixelCorrelation = 0.42219888501096 + Obsolete_Eccentricity = 0.81654602547138 + WholePixelCorrelation = 0.4842514894252 + End_Group + + Group = ControlMeasure + SerialNumber = Odyssey/THEMIS_IR/764644820.000 + MeasureType = Candidate + ChooserName = cnetref + DateTime = 2011-12-15T23:20:28 + Sample = 185.0 + Line = 5743.0 + AprioriSample = 192.35430957356 + AprioriLine = 5723.6616154452 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = Odyssey/THEMIS_IR/766864399.204 + MeasureType = RegisteredSubPixel + ChooserName = pointreg + DateTime = 2012-01-13T13:24:49 + Sample = 268.02675159169 + Line = 1147.6104906502 + AprioriSample = 268.09033141866 + AprioriLine = 1147.56287184 + MinimumPixelZScore = -10.336933423527 + MaximumPixelZScore = 8.3466298590249 + GoodnessOfFit = 0.59150804215855 + SubPixelCorrelation = 0.59150804215855 + Obsolete_Eccentricity = 0.87243685463714 + WholePixelCorrelation = 0.90247447994431 + End_Group + + Group = ControlMeasure + SerialNumber = Odyssey/THEMIS_IR/860700556.051 + MeasureType = RegisteredSubPixel + ChooserName = pointreg + DateTime = 2012-01-13T13:24:49 + Sample = 284.81369462788 + Line = 4203.1792327291 + AprioriSample = 284.85045436259 + AprioriLine = 4203.2511600821 + MinimumPixelZScore = -10.336933423527 + MaximumPixelZScore = 8.3466298590249 + GoodnessOfFit = 0.47601397505042 + SubPixelCorrelation = 0.47601397505042 + Obsolete_Eccentricity = 0.89216340544699 + WholePixelCorrelation = 0.67632719937417 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = I24827003RDR_bndry_2 + ChooserName = cnetadd + DateTime = 2011-12-15T23:20:27 + + Group = ControlMeasure + SerialNumber = Odyssey/THEMIS_IR/869400711.102 + MeasureType = RegisteredSubPixel + ChooserName = pointreg + DateTime = 2012-01-13T13:24:49 + Sample = 64.553532057187 + Line = 16.16468261595 + AprioriSample = 64.572486285992 + AprioriLine = 16.159319580388 + MinimumPixelZScore = -10.851025717118 + MaximumPixelZScore = 9.0681589770554 + GoodnessOfFit = 0.36725373651513 + SubPixelCorrelation = 0.36725373651513 + Obsolete_Eccentricity = 0.82699300047967 + WholePixelCorrelation = 0.42843510599361 + End_Group + + Group = ControlMeasure + SerialNumber = Odyssey/THEMIS_IR/760206015.230 + MeasureType = RegisteredSubPixel + ChooserName = pointreg + DateTime = 2012-01-13T13:24:49 + Sample = 42.01598881521 + Line = 4131.262421516 + AprioriSample = 42.019306132363 + AprioriLine = 4131.2821435604 + MinimumPixelZScore = -10.851025717118 + MaximumPixelZScore = 9.0681589770554 + GoodnessOfFit = 0.58620780317928 + SubPixelCorrelation = 0.58620780317928 + Obsolete_Eccentricity = 0.85025939150097 + WholePixelCorrelation = 0.85996682715537 + End_Group + + Group = ControlMeasure + SerialNumber = Odyssey/THEMIS_IR/764644820.000 + MeasureType = Candidate + ChooserName = cnetref + DateTime = 2011-12-15T23:20:28 + Sample = 217.0 + Line = 5706.0 + AprioriSample = 246.84321887463 + AprioriLine = 5723.765018548 + Reference = True + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = I24827003RDR_bndry_3 + ChooserName = cnetadd + DateTime = 2012-01-13T13:06:19 + + Group = ControlMeasure + SerialNumber = Odyssey/THEMIS_IR/869400711.102 + MeasureType = RegisteredSubPixel + ChooserName = pointreg + DateTime = 2012-01-13T13:24:49 + Sample = 121.11506062968 + Line = 31.572854327236 + AprioriSample = 121.14548884404 + AprioriLine = 31.572969450255 + MinimumPixelZScore = -8.5291500072502 + MaximumPixelZScore = 7.7800103958966 + GoodnessOfFit = 0.50147560129106 + SubPixelCorrelation = 0.50147560129106 + Obsolete_Eccentricity = 0.82257001244825 + WholePixelCorrelation = 0.54888811579928 + End_Group + + Group = ControlMeasure + SerialNumber = Odyssey/THEMIS_IR/760206015.230 + MeasureType = Candidate + ChooserName = cnetref + DateTime = 2011-12-15T23:20:28 + Sample = 157.0 + Line = 4163.0 + AprioriSample = 126.98178618374 + AprioriLine = 4149.931145305 + Reference = True + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = I24827003RDR_bndry_4 + ChooserName = cnetadd + DateTime = 2011-12-15T23:20:27 + + Group = ControlMeasure + SerialNumber = Odyssey/THEMIS_IR/869400711.102 + MeasureType = RegisteredSubPixel + ChooserName = pointreg + DateTime = 2012-01-13T13:24:49 + Sample = 138.20448769735 + Line = 228.14972149796 + AprioriSample = 138.2463996157 + AprioriLine = 228.15056835088 + MinimumPixelZScore = -8.3439788918745 + MaximumPixelZScore = 6.8503359515919 + GoodnessOfFit = 0.58524107005789 + SubPixelCorrelation = 0.58524107005789 + Obsolete_Eccentricity = 0.79963813984092 + WholePixelCorrelation = 0.61793743687586 + End_Group + + Group = ControlMeasure + SerialNumber = Odyssey/THEMIS_IR/760206015.230 + MeasureType = Candidate + ChooserName = cnetref + DateTime = 2011-12-15T23:20:28 + Sample = 192.0 + Line = 4555.0 + AprioriSample = 186.03957998842 + AprioriLine = 4558.6289790526 + Reference = True + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = I24827003RDR_bndry_5 + ChooserName = cnetadd + DateTime = 2011-12-15T23:20:27 + + Group = ControlMeasure + SerialNumber = Odyssey/THEMIS_IR/869400711.102 + MeasureType = RegisteredSubPixel + ChooserName = pointreg + DateTime = 2012-01-13T13:24:49 + Sample = 149.20509521588 + Line = 423.93494885646 + AprioriSample = 149.18783166409 + AprioriLine = 423.90617198328 + MinimumPixelZScore = -6.9567313793804 + MaximumPixelZScore = 7.116669122997 + GoodnessOfFit = 0.58378259591105 + SubPixelCorrelation = 0.58378259591105 + Obsolete_Eccentricity = 0.81140407536592 + WholePixelCorrelation = 0.62604756787944 + End_Group + + Group = ControlMeasure + SerialNumber = Odyssey/THEMIS_IR/760206015.230 + MeasureType = Candidate + ChooserName = cnetref + DateTime = 2011-12-15T23:20:28 + Sample = 214.0 + Line = 4945.0 + AprioriSample = 186.32462775985 + AprioriLine = 4967.2377534825 + Reference = True + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = I24827003RDR_bndry_6 + ChooserName = cnetadd + DateTime = 2011-12-15T23:20:27 + + Group = ControlMeasure + SerialNumber = Odyssey/THEMIS_IR/869400711.102 + MeasureType = RegisteredSubPixel + ChooserName = pointreg + DateTime = 2012-01-13T13:24:49 + Sample = 128.28737710591 + Line = 651.23659834539 + AprioriSample = 128.29832945259 + AprioriLine = 651.26409956921 + MinimumPixelZScore = -6.0616802552658 + MaximumPixelZScore = 5.8974339078448 + GoodnessOfFit = 0.46624774328617 + SubPixelCorrelation = 0.46624774328617 + Obsolete_Eccentricity = 0.66978571811643 + WholePixelCorrelation = 0.50483735035139 + End_Group + + Group = ControlMeasure + SerialNumber = Odyssey/THEMIS_IR/760206015.230 + MeasureType = Candidate + ChooserName = cnetref + DateTime = 2011-12-15T23:20:28 + Sample = 173.0 + Line = 5399.0 + AprioriSample = 186.47612972153 + AprioriLine = 5375.9772827805 + Reference = True + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = I24827003RDR_bndry_8 + ChooserName = cnetadd + DateTime = 2012-01-13T13:25:48 + + Group = ControlMeasure + SerialNumber = Odyssey/THEMIS_IR/748799078.000 + MeasureType = RegisteredSubPixel + ChooserName = pointreg + DateTime = 2012-01-13T13:24:49 + Sample = 28.513330924664 + Line = 15802.82320805 + AprioriSample = 28.577348166348 + AprioriLine = 15802.74722498 + MinimumPixelZScore = -3.3013168477769 + MaximumPixelZScore = 2.2949036325521 + GoodnessOfFit = 0.71147478712267 + SubPixelCorrelation = 0.71147478712267 + Obsolete_Eccentricity = 0.93900106979889 + WholePixelCorrelation = 0.71074079991412 + End_Group + + Group = ControlMeasure + SerialNumber = Odyssey/THEMIS_IR/760206015.230 + MeasureType = Candidate + ChooserName = cnetref + DateTime = 2011-12-15T23:20:28 + Sample = 197.0 + Line = 6217.0 + AprioriSample = 187.20197125496 + AprioriLine = 6193.3583087996 + Reference = True + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = I24827003RDR_bndry_9 + ChooserName = cnetadd + DateTime = 2011-12-15T23:20:27 + + Group = ControlMeasure + SerialNumber = Odyssey/THEMIS_IR/869400711.102 + MeasureType = RegisteredSubPixel + ChooserName = pointreg + DateTime = 2012-01-13T13:24:49 + Sample = 132.43324628739 + Line = 1244.9963043389 + AprioriSample = 132.41230089305 + AprioriLine = 1244.9968964388 + MinimumPixelZScore = -4.3267682575543 + MaximumPixelZScore = 3.3036547408159 + GoodnessOfFit = 0.64094554586329 + SubPixelCorrelation = 0.64094554586329 + Obsolete_Eccentricity = 0.69326613917787 + WholePixelCorrelation = 0.70413968240039 + End_Group + + Group = ControlMeasure + SerialNumber = Odyssey/THEMIS_IR/748799078.000 + MeasureType = RegisteredSubPixel + ChooserName = pointreg + DateTime = 2012-01-13T13:24:49 + Sample = 139.20929458768 + Line = 15461.410830143 + AprioriSample = 139.07279851894 + AprioriLine = 15461.411736985 + MinimumPixelZScore = -4.3267682575543 + MaximumPixelZScore = 3.3036547408159 + GoodnessOfFit = 0.57147470389177 + SubPixelCorrelation = 0.57147470389177 + Obsolete_Eccentricity = 0.46252692121887 + WholePixelCorrelation = 0.63489389099904 + End_Group + + Group = ControlMeasure + SerialNumber = Odyssey/THEMIS_IR/760206015.230 + MeasureType = Candidate + ChooserName = cnetref + DateTime = 2011-12-15T23:20:28 + Sample = 182.0 + Line = 6582.0 + AprioriSample = 187.43332157572 + AprioriLine = 6601.9213229651 + Reference = True + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = I24827003RDR_bndry_10 + ChooserName = cnetadd + DateTime = 2011-12-15T23:20:27 + + Group = ControlMeasure + SerialNumber = Odyssey/THEMIS_IR/869400711.102 + MeasureType = Candidate + ChooserName = cnetref + DateTime = 2011-12-15T23:20:28 + Sample = 119.0 + Line = 1437.0 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = Odyssey/THEMIS_IR/748799078.000 + MeasureType = RegisteredSubPixel + ChooserName = pointreg + DateTime = 2012-01-13T13:24:49 + Sample = 273.65933086114 + Line = 15088.126010294 + AprioriSample = 273.79775945033 + AprioriLine = 15088.279072135 + MinimumPixelZScore = -4.5982076153028 + MaximumPixelZScore = 5.1547250339538 + GoodnessOfFit = 0.46437443646356 + SubPixelCorrelation = 0.46437443646356 + Obsolete_Eccentricity = 0.5755806348777 + WholePixelCorrelation = 0.47471560826242 + End_Group + + Group = ControlMeasure + SerialNumber = Odyssey/THEMIS_IR/760206015.230 + MeasureType = RegisteredSubPixel + ChooserName = pointreg + DateTime = 2012-01-13T13:24:49 + Sample = 155.87633505028 + Line = 6965.8249656384 + AprioriSample = 155.75079341732 + AprioriLine = 6965.8015269146 + MinimumPixelZScore = -4.5982076153028 + MaximumPixelZScore = 5.1547250339538 + GoodnessOfFit = 0.6221840844042 + SubPixelCorrelation = 0.6221840844042 + Obsolete_Eccentricity = 0.78095310139119 + WholePixelCorrelation = 0.67240071516507 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = I24827003RDR_bndry_11 + ChooserName = cnetadd + DateTime = 2011-12-15T23:20:27 + + Group = ControlMeasure + SerialNumber = Odyssey/THEMIS_IR/869400711.102 + MeasureType = Candidate + ChooserName = cnetref + DateTime = 2011-12-15T23:20:28 + Sample = 118.0 + Line = 1634.0 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = Odyssey/THEMIS_IR/760206015.230 + MeasureType = RegisteredSubPixel + ChooserName = pointreg + DateTime = 2012-01-13T13:24:49 + Sample = 153.15891256983 + Line = 7357.6539686369 + AprioriSample = 153.22494967358 + AprioriLine = 7357.6402737744 + MinimumPixelZScore = -8.8742551139388 + MaximumPixelZScore = 4.4648645875177 + GoodnessOfFit = 0.43246786725171 + SubPixelCorrelation = 0.43246786725171 + Obsolete_Eccentricity = 0.84442625710954 + WholePixelCorrelation = 0.57817462187924 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = I24827003RDR_bndry_12 + ChooserName = cnetadd + DateTime = 2011-12-15T23:20:27 + + Group = ControlMeasure + SerialNumber = Odyssey/THEMIS_IR/869400711.102 + MeasureType = RegisteredSubPixel + ChooserName = pointreg + DateTime = 2012-01-13T13:24:49 + Sample = 121.49478999227 + Line = 1856.731446573 + AprioriSample = 121.50516007892 + AprioriLine = 1856.7635557292 + MinimumPixelZScore = -6.8138683213418 + MaximumPixelZScore = 2.9308636161718 + GoodnessOfFit = 0.64478667558312 + SubPixelCorrelation = 0.64478667558312 + Obsolete_Eccentricity = 0.72771562095133 + WholePixelCorrelation = 0.66352150232528 + End_Group + + Group = ControlMeasure + SerialNumber = Odyssey/THEMIS_IR/760206015.230 + MeasureType = Candidate + ChooserName = cnetref + DateTime = 2011-12-15T23:20:28 + Sample = 161.0 + Line = 7802.0 + AprioriSample = 188.35852324024 + AprioriLine = 7828.0151912856 + Reference = True + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = I24827003RDR_bndry_13 + ChooserName = cnetadd + DateTime = 2011-12-15T23:20:27 + + Group = ControlMeasure + SerialNumber = Odyssey/THEMIS_IR/869400711.102 + MeasureType = RegisteredSubPixel + ChooserName = pointreg + DateTime = 2012-01-13T13:24:49 + Sample = 137.57913021604 + Line = 2075.8951198701 + AprioriSample = 137.58325445598 + AprioriLine = 2075.9164372763 + MinimumPixelZScore = -5.1298466964338 + MaximumPixelZScore = 3.768980062869 + GoodnessOfFit = 0.63467767714999 + SubPixelCorrelation = 0.63467767714999 + Obsolete_Eccentricity = 0.74702153978772 + WholePixelCorrelation = 0.66651958106393 + End_Group + + Group = ControlMeasure + SerialNumber = Odyssey/THEMIS_IR/760206015.230 + MeasureType = Candidate + ChooserName = cnetref + DateTime = 2011-12-15T23:20:28 + Sample = 194.0 + Line = 8239.0 + AprioriSample = 188.7116242464 + AprioriLine = 8236.611878563 + Reference = True + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = I24827003RDR_bndry_14 + ChooserName = cnetadd + DateTime = 2011-12-15T23:20:27 + + Group = ControlMeasure + SerialNumber = Odyssey/THEMIS_IR/869400711.102 + MeasureType = RegisteredSubPixel + ChooserName = pointreg + DateTime = 2012-01-13T13:24:49 + Sample = 143.29125188489 + Line = 2295.6657077538 + AprioriSample = 143.27818713457 + AprioriLine = 2295.7018251456 + MinimumPixelZScore = -2.8495963378738 + MaximumPixelZScore = 4.2726177946745 + GoodnessOfFit = 0.50555393181678 + SubPixelCorrelation = 0.50555393181678 + Obsolete_Eccentricity = 0.84376716040979 + WholePixelCorrelation = 0.52159173578701 + End_Group + + Group = ControlMeasure + SerialNumber = Odyssey/THEMIS_IR/760206015.230 + MeasureType = Candidate + ChooserName = cnetref + DateTime = 2011-12-15T23:20:28 + Sample = 207.0 + Line = 8675.0 + AprioriSample = 189.16494375722 + AprioriLine = 8645.4100113685 + Reference = True + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = I24827003RDR_bndry_15 + ChooserName = cnetadd + DateTime = 2011-12-15T23:20:27 + + Group = ControlMeasure + SerialNumber = Odyssey/THEMIS_IR/869400711.102 + MeasureType = RegisteredSubPixel + ChooserName = pointreg + DateTime = 2012-01-13T13:24:49 + Sample = 145.30808018025 + Line = 2477.1515954142 + AprioriSample = 145.33233846913 + AprioriLine = 2477.1921753136 + MinimumPixelZScore = -3.5474697309863 + MaximumPixelZScore = 2.6587565865915 + GoodnessOfFit = 0.74011087203503 + SubPixelCorrelation = 0.74011087203503 + Obsolete_Eccentricity = 0.64299738534369 + WholePixelCorrelation = 0.74945020462948 + End_Group + + Group = ControlMeasure + SerialNumber = Odyssey/THEMIS_IR/760206015.230 + MeasureType = Candidate + ChooserName = cnetref + DateTime = 2011-12-15T23:20:28 + Sample = 211.0 + Line = 9039.0 + AprioriSample = 189.75749469492 + AprioriLine = 9054.1180252552 + Reference = True + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = I24827003RDR_bndry_16 + ChooserName = cnetadd + DateTime = 2011-12-15T23:20:27 + + Group = ControlMeasure + SerialNumber = Odyssey/THEMIS_IR/869400711.102 + MeasureType = RegisteredSubPixel + ChooserName = pointreg + DateTime = 2012-01-13T13:24:49 + Sample = 140.38785971346 + Line = 2681.7415355665 + AprioriSample = 140.40848396701 + AprioriLine = 2681.7274129245 + MinimumPixelZScore = -3.1758333116921 + MaximumPixelZScore = 9.0338725240029 + GoodnessOfFit = 0.64015829348973 + SubPixelCorrelation = 0.64015829348973 + Obsolete_Eccentricity = 0.83201034936892 + WholePixelCorrelation = 0.66279412202517 + End_Group + + Group = ControlMeasure + SerialNumber = Odyssey/THEMIS_IR/760206015.230 + MeasureType = Candidate + ChooserName = cnetref + DateTime = 2011-12-15T23:20:28 + Sample = 200.0 + Line = 9446.0 + AprioriSample = 189.74898445243 + AprioriLine = 9462.737163363 + Reference = True + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = I24827003RDR_bndry_17 + ChooserName = cnetadd + DateTime = 2011-12-15T23:20:27 + + Group = ControlMeasure + SerialNumber = Odyssey/THEMIS_IR/869400711.102 + MeasureType = RegisteredSubPixel + ChooserName = pointreg + DateTime = 2012-01-13T13:24:49 + Sample = 124.74745142602 + Line = 2886.7706306145 + AprioriSample = 124.71763854068 + AprioriLine = 2886.7534192259 + MinimumPixelZScore = -5.0257793273488 + MaximumPixelZScore = 4.5136102504828 + GoodnessOfFit = 0.64224423008729 + SubPixelCorrelation = 0.64224423008729 + Obsolete_Eccentricity = 0.88553794865542 + WholePixelCorrelation = 0.6693638769383 + End_Group + + Group = ControlMeasure + SerialNumber = Odyssey/THEMIS_IR/760206015.230 + MeasureType = Candidate + ChooserName = cnetref + DateTime = 2011-12-15T23:20:28 + Sample = 169.0 + Line = 9855.0 + AprioriSample = 190.17574850163 + AprioriLine = 9871.5220697322 + Reference = True + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = I24827003RDR_bndry_19 + ChooserName = cnetadd + DateTime = 2011-12-15T23:20:27 + + Group = ControlMeasure + SerialNumber = Odyssey/THEMIS_IR/869400711.102 + MeasureType = RegisteredSubPixel + ChooserName = pointreg + DateTime = 2012-01-13T13:24:49 + Sample = 133.32938592698 + Line = 3304.5102172403 + AprioriSample = 133.33076800753 + AprioriLine = 3304.5111192353 + MinimumPixelZScore = -3.5877838148283 + MaximumPixelZScore = 5.9675648071378 + GoodnessOfFit = 0.57259590692606 + SubPixelCorrelation = 0.57259590692606 + Obsolete_Eccentricity = 0.61612921400087 + WholePixelCorrelation = 0.59797982339977 + End_Group + + Group = ControlMeasure + SerialNumber = Odyssey/THEMIS_IR/760206015.230 + MeasureType = Candidate + ChooserName = cnetref + DateTime = 2011-12-15T23:20:28 + Sample = 188.0 + Line = 10688.0 + AprioriSample = 191.38234151276 + AprioriLine = 10688.903800361 + Reference = True + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = I24827003RDR_bndry_32 + ChooserName = cnetadd + DateTime = 2012-01-13T13:25:48 + + Group = ControlMeasure + SerialNumber = Odyssey/THEMIS_IR/764644820.000 + MeasureType = RegisteredSubPixel + ChooserName = pointreg + DateTime = 2012-01-13T13:24:49 + Sample = 131.10154251818 + Line = 6114.7427251932 + AprioriSample = 131.08464580002 + AprioriLine = 6114.72255253 + MinimumPixelZScore = -6.7883347305594 + MaximumPixelZScore = 3.0268974724574 + GoodnessOfFit = 0.46612674246283 + SubPixelCorrelation = 0.46612674246283 + Obsolete_Eccentricity = 0.92407264183803 + WholePixelCorrelation = 0.55739606549034 + End_Group + + Group = ControlMeasure + SerialNumber = Odyssey/THEMIS_IR/766864399.204 + MeasureType = RegisteredSubPixel + ChooserName = pointreg + DateTime = 2012-01-13T13:24:49 + Sample = 213.1699011323 + Line = 1518.9151968876 + AprioriSample = 213.26905955464 + AprioriLine = 1518.9193152579 + MinimumPixelZScore = -6.7883347305594 + MaximumPixelZScore = 3.0268974724574 + GoodnessOfFit = 0.41028456857734 + SubPixelCorrelation = 0.41028456857734 + Obsolete_Eccentricity = 0.91737961021451 + WholePixelCorrelation = 0.49561038667554 + End_Group + + Group = ControlMeasure + SerialNumber = Odyssey/THEMIS_IR/860700556.051 + MeasureType = Candidate + ChooserName = cnetref + DateTime = 2011-12-15T23:20:28 + Sample = 231.0 + Line = 4574.0 + AprioriSample = 235.04493503215 + AprioriLine = 4589.2309851386 + Reference = True + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = I24827003RDR_bndry_33 + ChooserName = cnetadd + DateTime = 2011-12-15T23:20:27 + + Group = ControlMeasure + SerialNumber = Odyssey/THEMIS_IR/869400711.102 + MeasureType = RegisteredSubPixel + ChooserName = pointreg + DateTime = 2012-01-13T13:24:49 + Sample = 32.243849071197 + Line = 443.99293787456 + AprioriSample = 32.267286312846 + AprioriLine = 443.93790066253 + MinimumPixelZScore = -9.4814064508761 + MaximumPixelZScore = 7.613279128717 + GoodnessOfFit = 0.35909430591995 + SubPixelCorrelation = 0.35909430591995 + Obsolete_Eccentricity = 0.86088783993688 + WholePixelCorrelation = 0.42439889849862 + End_Group + + Group = ControlMeasure + SerialNumber = Odyssey/THEMIS_IR/764644820.000 + MeasureType = Candidate + ChooserName = cnetref + DateTime = 2011-12-15T23:20:28 + Sample = 150.0 + Line = 6561.0 + AprioriSample = 136.08250364324 + AprioriLine = 6542.0592380917 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = Odyssey/THEMIS_IR/766864399.204 + MeasureType = RegisteredSubPixel + ChooserName = pointreg + DateTime = 2012-01-13T13:24:49 + Sample = 231.61495841089 + Line = 1964.6495319857 + AprioriSample = 231.58016101587 + AprioriLine = 1964.5656483556 + MinimumPixelZScore = -9.4814064508761 + MaximumPixelZScore = 7.613279128717 + GoodnessOfFit = 0.63763367292373 + SubPixelCorrelation = 0.63763367292373 + Obsolete_Eccentricity = 0.88928007456266 + WholePixelCorrelation = 0.9083985074489 + End_Group + + Group = ControlMeasure + SerialNumber = Odyssey/THEMIS_IR/860700556.051 + MeasureType = RegisteredSubPixel + ChooserName = pointreg + DateTime = 2012-01-13T13:24:49 + Sample = 248.64525826167 + Line = 5019.6082778839 + AprioriSample = 248.66537068953 + AprioriLine = 5019.6509310444 + MinimumPixelZScore = -9.4814064508761 + MaximumPixelZScore = 7.613279128717 + GoodnessOfFit = 0.47134697831144 + SubPixelCorrelation = 0.47134697831144 + Obsolete_Eccentricity = 0.90697269892977 + WholePixelCorrelation = 0.67790447057524 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = I24827003RDR_bndry_34 + ChooserName = cnetadd + DateTime = 2012-01-13T13:06:19 + + Group = ControlMeasure + SerialNumber = Odyssey/THEMIS_IR/869400711.102 + MeasureType = RegisteredSubPixel + ChooserName = pointreg + DateTime = 2012-01-13T13:24:49 + Sample = 39.377323532456 + Line = 644.45059392332 + AprioriSample = 39.422550221501 + AprioriLine = 644.48255376688 + MinimumPixelZScore = -3.6303773877818 + MaximumPixelZScore = 3.9449657352508 + GoodnessOfFit = 0.68219867118992 + SubPixelCorrelation = 0.68219867118992 + Obsolete_Eccentricity = 0.6687629032313 + WholePixelCorrelation = 0.69541576692436 + End_Group + + Group = ControlMeasure + SerialNumber = Odyssey/THEMIS_IR/764644820.000 + MeasureType = Candidate + ChooserName = cnetref + DateTime = 2011-12-15T23:20:28 + Sample = 165.0 + Line = 6962.0 + AprioriSample = 135.40596122852 + AprioriLine = 6951.3519736314 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = Odyssey/THEMIS_IR/766864399.204 + MeasureType = RegisteredSubPixel + ChooserName = pointreg + DateTime = 2012-01-13T13:24:49 + Sample = 245.82294568014 + Line = 2365.749168986 + AprioriSample = 245.80677488643 + AprioriLine = 2365.659647922 + MinimumPixelZScore = -3.6303773877818 + MaximumPixelZScore = 3.9449657352508 + GoodnessOfFit = 0.88500611615228 + SubPixelCorrelation = 0.88500611615228 + Obsolete_Eccentricity = 0.79641849988017 + WholePixelCorrelation = 0.93879938608019 + End_Group + + Group = ControlMeasure + SerialNumber = Odyssey/THEMIS_IR/860700556.051 + MeasureType = RegisteredSubPixel + ChooserName = pointreg + DateTime = 2012-01-13T13:24:49 + Sample = 262.99285894944 + Line = 5419.5752950317 + AprioriSample = 262.93741513321 + AprioriLine = 5419.5000790279 + MinimumPixelZScore = -3.6303773877818 + MaximumPixelZScore = 3.9449657352508 + GoodnessOfFit = 0.8384872040154 + SubPixelCorrelation = 0.8384872040154 + Obsolete_Eccentricity = 0.80938385565388 + WholePixelCorrelation = 0.88811262489038 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = I24827003RDR_bndry_35 + ChooserName = cnetadd + DateTime = 2011-12-15T23:20:27 + + Group = ControlMeasure + SerialNumber = Odyssey/THEMIS_IR/869400711.102 + MeasureType = RegisteredSubPixel + ChooserName = pointreg + DateTime = 2012-01-13T13:24:49 + Sample = 38.84105669372 + Line = 832.10752901602 + AprioriSample = 38.80553051742 + AprioriLine = 832.12557774503 + MinimumPixelZScore = -3.8007083634248 + MaximumPixelZScore = 4.4757735324342 + GoodnessOfFit = 0.42116724718091 + SubPixelCorrelation = 0.42116724718091 + Obsolete_Eccentricity = 0.73339213911551 + WholePixelCorrelation = 0.4230891360784 + End_Group + + Group = ControlMeasure + SerialNumber = Odyssey/THEMIS_IR/748799078.000 + MeasureType = RegisteredSubPixel + ChooserName = pointreg + DateTime = 2012-01-13T13:24:49 + Sample = 122.65301115881 + Line = 16293.50679139 + AprioriSample = 122.78458208301 + AprioriLine = 16293.419624892 + MinimumPixelZScore = -3.8007083634248 + MaximumPixelZScore = 4.4757735324342 + GoodnessOfFit = 0.44965842923952 + SubPixelCorrelation = 0.44965842923952 + Obsolete_Eccentricity = 0.84701026248297 + WholePixelCorrelation = 0.45019255138853 + End_Group + + Group = ControlMeasure + SerialNumber = Odyssey/THEMIS_IR/764644820.000 + MeasureType = Candidate + ChooserName = cnetref + DateTime = 2011-12-15T23:20:28 + Sample = 150.0 + Line = 7353.0 + AprioriSample = 134.63818771615 + AprioriLine = 7360.5513465387 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = Odyssey/THEMIS_IR/766864399.204 + MeasureType = RegisteredSubPixel + ChooserName = pointreg + DateTime = 2012-01-13T13:24:49 + Sample = 230.33072524429 + Line = 2756.0791608266 + AprioriSample = 230.33084176063 + AprioriLine = 2756.1290924305 + MinimumPixelZScore = -3.8007083634248 + MaximumPixelZScore = 4.4757735324342 + GoodnessOfFit = 0.90144944908857 + SubPixelCorrelation = 0.90144944908857 + Obsolete_Eccentricity = 0.82298722113186 + WholePixelCorrelation = 0.96435572021431 + End_Group + + Group = ControlMeasure + SerialNumber = Odyssey/THEMIS_IR/860700556.051 + MeasureType = RegisteredSubPixel + ChooserName = pointreg + DateTime = 2012-01-13T13:24:49 + Sample = 248.02226348435 + Line = 5809.3611366058 + AprioriSample = 248.02655270592 + AprioriLine = 5809.4447753716 + MinimumPixelZScore = -3.8007083634248 + MaximumPixelZScore = 4.4757735324342 + GoodnessOfFit = 0.71300187736795 + SubPixelCorrelation = 0.71300187736795 + Obsolete_Eccentricity = 0.8291423602584 + WholePixelCorrelation = 0.76584458449782 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = I24827003RDR_bndry_36 + ChooserName = cnetadd + DateTime = 2011-12-15T23:20:27 + + Group = ControlMeasure + SerialNumber = Odyssey/THEMIS_IR/869400711.102 + MeasureType = RegisteredSubPixel + ChooserName = pointreg + DateTime = 2012-01-13T13:24:49 + Sample = 19.767099267132 + Line = 1053.224776834 + AprioriSample = 19.768653236342 + AprioriLine = 1053.2080015315 + MinimumPixelZScore = -2.0483817202699 + MaximumPixelZScore = 2.8640554045295 + GoodnessOfFit = 0.58115488237753 + SubPixelCorrelation = 0.58115488237753 + Obsolete_Eccentricity = 0.85917790473711 + WholePixelCorrelation = 0.5848321471167 + End_Group + + Group = ControlMeasure + SerialNumber = Odyssey/THEMIS_IR/748799078.000 + MeasureType = RegisteredSubPixel + ChooserName = pointreg + DateTime = 2012-01-13T13:24:49 + Sample = 291.4370894032 + Line = 15864.748037614 + AprioriSample = 291.36469422798 + AprioriLine = 15864.232672573 + MinimumPixelZScore = -2.0483817202699 + MaximumPixelZScore = 2.8640554045295 + GoodnessOfFit = 0.58326123746324 + SubPixelCorrelation = 0.58326123746324 + Obsolete_Eccentricity = 0.90296752695405 + WholePixelCorrelation = 0.58348490860222 + End_Group + + Group = ControlMeasure + SerialNumber = Odyssey/THEMIS_IR/764644820.000 + MeasureType = Candidate + ChooserName = cnetref + DateTime = 2011-12-15T23:20:28 + Sample = 124.0 + Line = 7777.0 + AprioriSample = 133.54370444799 + AprioriLine = 7769.8770322264 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = Odyssey/THEMIS_IR/766864399.204 + MeasureType = RegisteredSubPixel + ChooserName = pointreg + DateTime = 2012-01-13T13:24:49 + Sample = 203.98302895363 + Line = 3179.4605858777 + AprioriSample = 203.85450286355 + AprioriLine = 3179.5000595293 + MinimumPixelZScore = -2.0483817202699 + MaximumPixelZScore = 2.8640554045295 + GoodnessOfFit = 0.97240168667426 + SubPixelCorrelation = 0.97240168667426 + Obsolete_Eccentricity = 0.85995206536045 + WholePixelCorrelation = 0.98978024760144 + End_Group + + Group = ControlMeasure + SerialNumber = Odyssey/THEMIS_IR/860700556.051 + MeasureType = RegisteredSubPixel + ChooserName = pointreg + DateTime = 2012-01-13T13:24:49 + Sample = 220.86690968465 + Line = 6234.9839367112 + AprioriSample = 220.81710118731 + AprioriLine = 6234.7801259019 + MinimumPixelZScore = -2.0483817202699 + MaximumPixelZScore = 2.8640554045295 + GoodnessOfFit = 0.90014960228514 + SubPixelCorrelation = 0.90014960228514 + Obsolete_Eccentricity = 0.89695661349753 + WholePixelCorrelation = 0.91793725667105 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = I24827003RDR_bndry_37 + ChooserName = cnetadd + DateTime = 2011-12-15T23:20:27 + + Group = ControlMeasure + SerialNumber = Odyssey/THEMIS_IR/869400711.102 + MeasureType = RegisteredSubPixel + ChooserName = pointreg + DateTime = 2012-01-13T13:24:49 + Sample = 36.888733189199 + Line = 1242.731084961 + AprioriSample = 36.911483608247 + AprioriLine = 1242.6935558131 + MinimumPixelZScore = -3.5448692768999 + MaximumPixelZScore = 3.21268016751 + GoodnessOfFit = 0.59407851965547 + SubPixelCorrelation = 0.59407851965547 + Obsolete_Eccentricity = 0.74709296406025 + WholePixelCorrelation = 0.60911835276394 + End_Group + + Group = ControlMeasure + SerialNumber = Odyssey/THEMIS_IR/764644820.000 + MeasureType = Candidate + ChooserName = cnetref + DateTime = 2011-12-15T23:20:28 + Sample = 157.0 + Line = 8156.0 + AprioriSample = 132.61992449207 + AprioriLine = 8178.9207494154 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = Odyssey/THEMIS_IR/766864399.204 + MeasureType = RegisteredSubPixel + ChooserName = pointreg + DateTime = 2012-01-13T13:24:49 + Sample = 236.2196163681 + Line = 3558.0866737144 + AprioriSample = 236.22665154064 + AprioriLine = 3558.2674905463 + MinimumPixelZScore = -3.5448692768999 + MaximumPixelZScore = 3.21268016751 + GoodnessOfFit = 0.92551012715239 + SubPixelCorrelation = 0.92551012715239 + Obsolete_Eccentricity = 0.79541873154535 + WholePixelCorrelation = 0.96799250418854 + End_Group + + Group = ControlMeasure + SerialNumber = Odyssey/THEMIS_IR/860700556.051 + MeasureType = RegisteredSubPixel + ChooserName = pointreg + DateTime = 2012-01-13T13:24:49 + Sample = 253.44978676116 + Line = 6612.4380581812 + AprioriSample = 253.5215797661 + AprioriLine = 6612.5086541373 + MinimumPixelZScore = -3.5448692768999 + MaximumPixelZScore = 3.21268016751 + GoodnessOfFit = 0.81024350233636 + SubPixelCorrelation = 0.81024350233636 + Obsolete_Eccentricity = 0.83198975240015 + WholePixelCorrelation = 0.85543090385472 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = I24827003RDR_bndry_38 + ChooserName = cnetadd + DateTime = 2011-12-15T23:20:27 + + Group = ControlMeasure + SerialNumber = Odyssey/THEMIS_IR/869400711.102 + MeasureType = RegisteredSubPixel + ChooserName = pointreg + DateTime = 2012-01-13T13:24:49 + Sample = 34.966885270204 + Line = 1445.2306971316 + AprioriSample = 34.976625619327 + AprioriLine = 1445.2507961096 + MinimumPixelZScore = -2.7649404184731 + MaximumPixelZScore = 3.885430669618 + GoodnessOfFit = 0.50123049691391 + SubPixelCorrelation = 0.50123049691391 + Obsolete_Eccentricity = 0.71542230034353 + WholePixelCorrelation = 0.52019516111106 + End_Group + + Group = ControlMeasure + SerialNumber = Odyssey/THEMIS_IR/764644820.000 + MeasureType = Candidate + ChooserName = cnetref + DateTime = 2011-12-15T23:20:28 + Sample = 152.0 + Line = 8559.0 + AprioriSample = 131.66372638651 + AprioriLine = 8588.1443315449 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = Odyssey/THEMIS_IR/860700556.051 + MeasureType = RegisteredSubPixel + ChooserName = pointreg + DateTime = 2012-01-13T13:24:49 + Sample = 248.54298985524 + Line = 7015.0925938841 + AprioriSample = 248.47477041243 + AprioriLine = 7015.0708018329 + MinimumPixelZScore = -2.7649404184731 + MaximumPixelZScore = 3.885430669618 + GoodnessOfFit = 0.57404993830787 + SubPixelCorrelation = 0.57404993830787 + Obsolete_Eccentricity = 0.79975823900933 + WholePixelCorrelation = 0.61126341945065 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = I24827003RDR_bndry_39 + ChooserName = cnetadd + DateTime = 2011-12-15T23:20:27 + + Group = ControlMeasure + SerialNumber = Odyssey/THEMIS_IR/869400711.102 + MeasureType = RegisteredSubPixel + ChooserName = pointreg + DateTime = 2012-01-13T13:24:49 + Sample = 21.124305682401 + Line = 1660.7015570648 + AprioriSample = 21.244027873838 + AprioriLine = 1660.6652772725 + MinimumPixelZScore = -9.91464328244 + MaximumPixelZScore = 6.6095255951013 + GoodnessOfFit = 0.40060655379026 + SubPixelCorrelation = 0.40060655379026 + Obsolete_Eccentricity = 0.8842462315449 + WholePixelCorrelation = 0.42777155677984 + End_Group + + Group = ControlMeasure + SerialNumber = Odyssey/THEMIS_IR/764644820.000 + MeasureType = Candidate + ChooserName = cnetref + DateTime = 2011-12-15T23:20:28 + Sample = 122.0 + Line = 8990.0 + AprioriSample = 130.84304170727 + AprioriLine = 8997.4098805041 + Reference = True + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = I24827003RDR_bndry_41 + ChooserName = cnetadd + DateTime = 2011-12-15T23:20:27 + + Group = ControlMeasure + SerialNumber = Odyssey/THEMIS_IR/869400711.102 + MeasureType = RegisteredSubPixel + ChooserName = pointreg + DateTime = 2012-01-13T13:24:49 + Sample = 39.651442821199 + Line = 2081.9946567966 + AprioriSample = 39.640958585734 + AprioriLine = 2081.9963499484 + MinimumPixelZScore = -2.0151952076585 + MaximumPixelZScore = 1.89602994523 + GoodnessOfFit = 0.91233424417264 + SubPixelCorrelation = 0.91233424417264 + Obsolete_Eccentricity = 0.8685408387441 + WholePixelCorrelation = 0.91685736046086 + End_Group + + Group = ControlMeasure + SerialNumber = Odyssey/THEMIS_IR/764644820.000 + MeasureType = Candidate + ChooserName = cnetref + DateTime = 2011-12-15T23:20:28 + Sample = 158.0 + Line = 9831.0 + AprioriSample = 128.74374032515 + AprioriLine = 9815.6199810588 + Reference = True + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = I24827003RDR_bndry_43 + ChooserName = cnetadd + DateTime = 2011-12-15T23:20:27 + + Group = ControlMeasure + SerialNumber = Odyssey/THEMIS_IR/869400711.102 + MeasureType = RegisteredSubPixel + ChooserName = pointreg + DateTime = 2012-01-13T13:24:49 + Sample = 40.331922777574 + Line = 2498.4634598633 + AprioriSample = 40.342396523112 + AprioriLine = 2498.4688726782 + MinimumPixelZScore = -2.1929700186508 + MaximumPixelZScore = 2.6406477049999 + GoodnessOfFit = 0.87903042477486 + SubPixelCorrelation = 0.87903042477486 + Obsolete_Eccentricity = 0.80945067719471 + WholePixelCorrelation = 0.88307243605489 + End_Group + + Group = ControlMeasure + SerialNumber = Odyssey/THEMIS_IR/764644820.000 + MeasureType = Candidate + ChooserName = cnetref + DateTime = 2011-12-15T23:20:28 + Sample = 158.0 + Line = 10661.0 + AprioriSample = 126.82388485966 + AprioriLine = 10634.051423648 + Reference = True + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = I24827003RDR_bndry_50 + ChooserName = cnetadd + DateTime = 2011-12-15T23:20:27 + + Group = ControlMeasure + SerialNumber = Odyssey/THEMIS_IR/869400711.102 + MeasureType = RegisteredSubPixel + ChooserName = pointreg + DateTime = 2012-01-13T13:24:49 + Sample = 14.277915476186 + Line = 3935.2833714183 + AprioriSample = 14.234425279049 + AprioriLine = 3935.2313000495 + MinimumPixelZScore = -3.2207280824112 + MaximumPixelZScore = 2.179464511159 + GoodnessOfFit = 0.61079317083437 + SubPixelCorrelation = 0.61079317083437 + Obsolete_Eccentricity = 0.83055975470962 + WholePixelCorrelation = 0.621385909313 + End_Group + + Group = ControlMeasure + SerialNumber = Odyssey/THEMIS_IR/823680993.230 + MeasureType = Candidate + ChooserName = cnetref + DateTime = 2011-12-15T23:20:28 + Sample = 296.0 + Line = 7863.0 + AprioriSample = 317.16905352284 + AprioriLine = 7832.2439273096 + Reference = True + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = I24827003RDR_bndry_51 + ChooserName = cnetadd + DateTime = 2011-12-15T23:20:27 + + Group = ControlMeasure + SerialNumber = Odyssey/THEMIS_IR/869400711.102 + MeasureType = RegisteredSubPixel + ChooserName = pointreg + DateTime = 2012-01-13T13:24:49 + Sample = 11.30320020209 + Line = 4130.0913785706 + AprioriSample = 11.27822009864 + AprioriLine = 4130.0656229356 + MinimumPixelZScore = -5.5551124504224 + MaximumPixelZScore = 5.3507909286785 + GoodnessOfFit = 0.43949327976759 + SubPixelCorrelation = 0.43949327976759 + Obsolete_Eccentricity = 0.76159002924015 + WholePixelCorrelation = 0.46446010837209 + End_Group + + Group = ControlMeasure + SerialNumber = Odyssey/THEMIS_IR/823680993.230 + MeasureType = Candidate + ChooserName = cnetref + DateTime = 2011-12-15T23:20:28 + Sample = 286.0 + Line = 8252.0 + AprioriSample = 314.07066277501 + AprioriLine = 8241.2675814639 + Reference = True + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = I24827003RDR_bndry_53 + ChooserName = cnetadd + DateTime = 2011-12-15T23:20:27 + + Group = ControlMeasure + SerialNumber = Odyssey/THEMIS_IR/869400711.102 + MeasureType = RegisteredSubPixel + ChooserName = pointreg + DateTime = 2012-01-13T13:24:49 + Sample = 30.377263509207 + Line = 4535.7660808899 + AprioriSample = 30.440341462824 + AprioriLine = 4535.748993877 + MinimumPixelZScore = -3.7311603048292 + MaximumPixelZScore = 2.4776325037694 + GoodnessOfFit = 0.61516820087654 + SubPixelCorrelation = 0.61516820087654 + Obsolete_Eccentricity = 0.74206145332326 + WholePixelCorrelation = 0.61756685189949 + End_Group + + Group = ControlMeasure + SerialNumber = Odyssey/THEMIS_IR/823680993.230 + MeasureType = Candidate + ChooserName = cnetref + DateTime = 2011-12-15T23:20:28 + Sample = 297.0 + Line = 9048.0 + AprioriSample = 307.37707389729 + AprioriLine = 9059.4587520006 + Reference = True + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = I24827003RDR_bndry_56 + ChooserName = cnetadd + DateTime = 2011-12-15T23:20:27 + + Group = ControlMeasure + SerialNumber = Odyssey/THEMIS_IR/869400711.102 + MeasureType = RegisteredSubPixel + ChooserName = pointreg + DateTime = 2012-01-13T13:24:49 + Sample = 28.435531108092 + Line = 5157.421973579 + AprioriSample = 28.433104417652 + AprioriLine = 5157.4175236742 + MinimumPixelZScore = -2.608895713487 + MaximumPixelZScore = 3.0009659960998 + GoodnessOfFit = 0.80009655417522 + SubPixelCorrelation = 0.80009655417522 + Obsolete_Eccentricity = 0.91052297013589 + WholePixelCorrelation = 0.80523427372119 + End_Group + + Group = ControlMeasure + SerialNumber = Odyssey/THEMIS_IR/823680993.230 + MeasureType = Candidate + ChooserName = cnetref + DateTime = 2011-12-15T23:20:28 + Sample = 305.0 + Line = 10302.0 + AprioriSample = 297.73233806667 + AprioriLine = 10286.943394023 + Reference = True + End_Group + End_Object +End_Object +End diff --git a/isis/tests/data/cnetedit/e0902065.cal.sub.cub b/isis/tests/data/cnetedit/e0902065.cal.sub.cub new file mode 100644 index 0000000000..32bd8b0633 Binary files /dev/null and b/isis/tests/data/cnetedit/e0902065.cal.sub.cub differ diff --git a/isis/tests/data/cnetthinner/customPointsTruth.pvl b/isis/tests/data/cnetthinner/customPointsTruth.pvl new file mode 100644 index 0000000000..2d3dcd5699 --- /dev/null +++ b/isis/tests/data/cnetthinner/customPointsTruth.pvl @@ -0,0 +1,18289 @@ +Object = ControlNetwork + NetworkId = "NETTYPE image, POINTID ff_test_???, POINTINDEX 314" + TargetName = Mercury + UserName = ihumphrey + Created = 2016-03-10T11:24:22 + LastModified = 2016-03-10T11:24:22 + Description = surf/surf/DescriptorMatcher.BFMatcher@normType:4@crossCheck:- + false + Version = 5 + + Object = ControlPoint + PointType = Free + PointId = ff_test_314 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 39.236947483477 + AprioriX = -1060689.0304042 + + # AprioriLongitude = 235.85772458085 + AprioriY = -1564143.9334167 + + # AprioriRadius = 2440000.0 + AprioriZ = 1543370.511684 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 156.60247802734 + Line = 233.13891601562 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 213.20182800293 + Line = 483.25592041016 + SampleResidual = 0.19805908203125 + LineResidual = -0.36578369140625 + GoodnessOfFit = 23866.66015625 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_315 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 34.813658653759 + AprioriX = -1085439.075363 + + # AprioriLongitude = 237.19148766331 + AprioriY = -1683722.337672 + + # AprioriRadius = 2440000.0 + AprioriZ = 1393018.7017049 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 677.67840576172 + Line = 954.65338134766 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 567.64129638672 + Line = 966.47857666016 + SampleResidual = 0.9974365234375 + LineResidual = -0.6763916015625 + GoodnessOfFit = 17786.0859375 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_316 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 37.300811596227 + AprioriX = -1121904.9949419 + + # AprioriLongitude = 234.68837835398 + AprioriY = -1583841.9515784 + + # AprioriRadius = 2440000.0 + AprioriZ = 1478639.1901829 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 143.59034729004 + Line = 675.50823974609 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 197.54563903809 + Line = 763.94403076172 + SampleResidual = 0.55642700195312 + LineResidual = -0.488037109375 + GoodnessOfFit = 16137.451171875 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_317 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 37.975553798385 + AprioriX = -978248.27842263 + + # AprioriLongitude = 239.42890651291 + AprioriY = -1656033.7829025 + + # AprioriRadius = 2440000.0 + AprioriZ = 1501393.491277 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 729.08233642578 + Line = 236.58532714844 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 618.74993896484 + Line = 490.2975769043 + SampleResidual = 2.1309204101562 + LineResidual = -0.21551513671875 + GoodnessOfFit = 15602.76171875 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_318 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 35.903969695878 + AprioriX = -1107071.4621558 + + # AprioriLongitude = 235.93419141743 + AprioriY = -1637241.429802 + + # AprioriRadius = 2440000.0 + AprioriZ = 1430885.4874588 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 426.25473022461 + Line = 849.31207275391 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 388.60034179688 + Line = 886.45239257812 + SampleResidual = 0.57754516601562 + LineResidual = 0.05718994140625 + GoodnessOfFit = 10302.791015625 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_319 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 37.122045387698 + AprioriX = -1066481.603971 + + # AprioriLongitude = 236.758588274 + AprioriY = -1627186.6524883 + + # AprioriRadius = 2440000.0 + AprioriZ = 1472576.1733626 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 447.98846435547 + Line = 569.72308349609 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 406.53558349609 + Line = 704.71441650391 + SampleResidual = -1.4452819824219 + LineResidual = -0.395751953125 + GoodnessOfFit = 11707.0 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_320 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 37.225096682794 + AprioriX = -1122148.553483 + + # AprioriLongitude = 234.72035163878 + AprioriY = -1586061.5086299 + + # AprioriRadius = 2440000.0 + AprioriZ = 1476073.0045491 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 154.03085327148 + Line = 687.65460205078 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 203.86508178711 + Line = 772.35717773438 + SampleResidual = 0.073532104492188 + LineResidual = -0.1192626953125 + GoodnessOfFit = 12686.533203125 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_321 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 37.807702609501 + AprioriX = -1049406.6771755 + + # AprioriLongitude = 237.01899357436 + AprioriY = -1617117.9372698 + + # AprioriRadius = 2440000.0 + AprioriZ = 1495752.3868808 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 429.95001220703 + Line = 426.19592285156 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 397.29000854492 + Line = 611.23797607422 + SampleResidual = -0.38421630859375 + LineResidual = -0.0447998046875 + GoodnessOfFit = 9942.349609375 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_322 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 37.265071688469 + AprioriX = -975638.36569347 + + # AprioriLongitude = 239.839392008 + AprioriY = -1678968.6499662 + + # AprioriRadius = 2440000.0 + AprioriZ = 1477428.1883793 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 835.53594970703 + Line = 335.50216674805 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 696.2099609375 + Line = 558.11279296875 + SampleResidual = 1.7590942382812 + LineResidual = 0.0885009765625 + GoodnessOfFit = 8095.63671875 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_323 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 37.288682654739 + AprioriX = -1119590.9715748 + + # AprioriLongitude = 234.77856801236 + AprioriY = -1585861.660552 + + # AprioriRadius = 2440000.0 + AprioriZ = 1478228.2807332 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 157.56173706055 + Line = 671.78375244141 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 206.36582946777 + Line = 762.6845703125 + SampleResidual = -0.058090209960938 + LineResidual = 0.19110107421875 + GoodnessOfFit = 8675.7783203125 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_324 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 39.360955513805 + AprioriX = -1070131.5354237 + + # AprioriLongitude = 235.44130736821 + AprioriY = -1553639.1530443 + + # AprioriRadius = 2440000.0 + AprioriZ = 1547457.2301099 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 88.229095458984 + Line = 235.3752746582 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 167.74085998535 + Line = 483.50354003906 + SampleResidual = 0.45550537109375 + LineResidual = -1.0115051269531 + GoodnessOfFit = 6698.5913085938 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_325 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 36.238102443085 + AprioriX = -1018698.4668487 + + # AprioriLongitude = 238.82692978321 + AprioriY = -1683856.7148217 + + # AprioriRadius = 2440000.0 + AprioriZ = 1442386.9098097 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 787.26403808594 + Line = 586.43414306641 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 653.19403076172 + Line = 726.09155273438 + SampleResidual = -0.775390625 + LineResidual = 0.5059814453125 + GoodnessOfFit = 5986.923828125 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_326 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 34.87785881856 + AprioriX = -1090406.8493615 + + # AprioriLongitude = 236.99325925735 + AprioriY = -1678646.9117975 + + # AprioriRadius = 2440000.0 + AprioriZ = 1395262.5016025 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 646.41381835938 + Line = 957.76654052734 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 544.60992431641 + Line = 966.98797607422 + SampleResidual = 0.8726806640625 + LineResidual = -0.68365478515625 + GoodnessOfFit = 5985.7709960938 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_327 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 38.027421378047 + AprioriX = -982755.72725906 + + # AprioriLongitude = 239.24873129966 + AprioriY = -1651780.6254416 + + # AprioriRadius = 2440000.0 + AprioriZ = 1503134.0412469 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 702.46936035156 + Line = 239.14877319336 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 599.02191162109 + Line = 491.92782592773 + SampleResidual = 2.0950927734375 + LineResidual = -0.06201171875 + GoodnessOfFit = 6969.4208984375 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_328 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 38.838825569661 + AprioriX = -1020094.4022418 + + # AprioriLongitude = 237.53821668752 + AprioriY = -1603586.8224477 + + # AprioriRadius = 2440000.0 + AprioriZ = 1530201.5270503 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 417.04263305664 + Line = 201.90640258789 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 393.69543457031 + Line = 465.18078613281 + SampleResidual = 1.3502807617188 + LineResidual = -0.19497680664062 + GoodnessOfFit = 6181.904296875 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_329 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 38.762578399991 + AprioriX = -1014081.297961 + + # AprioriLongitude = 237.79145635943 + AprioriY = -1609801.3737332 + + # AprioriRadius = 2440000.0 + AprioriZ = 1527670.9914941 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 456.59005737305 + Line = 199.84687805176 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 421.73135375977 + Line = 464.3327331543 + SampleResidual = 1.5093078613281 + LineResidual = 0.0496826171875 + GoodnessOfFit = 6015.2216796875 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_330 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 39.353067310845 + AprioriX = -1071886.2228608 + + # AprioriLongitude = 235.38103860751 + AprioriY = -1552687.9463118 + + # AprioriRadius = 2440000.0 + AprioriZ = 1547197.4879178 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 80.374801635742 + Line = 240.61804199219 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 162.87272644043 + Line = 487.92306518555 + SampleResidual = 0.88825988769531 + LineResidual = 0.15762329101562 + GoodnessOfFit = 5205.0224609375 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_331 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 38.919371426236 + AprioriX = -1015222.8317097 + + # AprioriLongitude = 237.67104001127 + AprioriY = -1604128.0148956 + + # AprioriRadius = 2440000.0 + AprioriZ = 1532871.7864852 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 428.04635620117 + Line = 178.54711914062 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 401.80944824219 + Line = 449.71115112305 + SampleResidual = 1.3468322753906 + LineResidual = -0.55230712890625 + GoodnessOfFit = 5753.3354492188 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_332 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 36.622519693115 + AprioriX = -1155650.1055873 + + # AprioriLongitude = 233.83387707676 + AprioriY = -1580956.126731 + + # AprioriRadius = 2440000.0 + AprioriZ = 1455558.5040828 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 69.853340148926 + Line = 861.07446289062 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 145.3971862793 + Line = 879.48895263672 + SampleResidual = 0.56893920898438 + LineResidual = 0.11676025390625 + GoodnessOfFit = 5474.392578125 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_333 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 37.346175644245 + AprioriX = -1067663.4137117 + + # AprioriLongitude = 236.6049097048 + AprioriY = -1619498.5110191 + + # AprioriRadius = 2440000.0 + AprioriZ = 1480175.4652164 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 409.74639892578 + Line = 538.86083984375 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 380.05603027344 + Line = 684.30218505859 + SampleResidual = -1.561767578125 + LineResidual = 0.24407958984375 + GoodnessOfFit = 6123.8134765625 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_334 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 38.920836718329 + AprioriX = -1060334.9423754 + + # AprioriLongitude = 236.04412051281 + AprioriY = -1574625.3693701 + + # AprioriRadius = 2440000.0 + AprioriZ = 1532920.3358667 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 208.0693359375 + Line = 281.35430908203 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 246.36311340332 + Line = 513.29736328125 + SampleResidual = -0.57200622558594 + LineResidual = -1.4888305664062 + GoodnessOfFit = 5996.2998046875 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_335 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 34.824426739409 + AprioriX = -1100781.3037546 + + # AprioriLongitude = 236.66292753151 + AprioriY = -1673418.7831843 + + # AprioriRadius = 2440000.0 + AprioriZ = 1393395.1691427 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 605.38446044922 + Line = 991.28607177734 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 514.25762939453 + Line = 987.63287353516 + SampleResidual = 0.8905029296875 + LineResidual = -0.16192626953125 + GoodnessOfFit = 4901.33984375 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_336 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 38.920916926108 + AprioriX = -1061912.1463328 + + # AprioriLongitude = 235.98666782101 + AprioriY = -1573559.5603333 + + # AprioriRadius = 2440000.0 + AprioriZ = 1532922.9933544 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 200.09703063965 + Line = 284.96878051758 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 240.5265045166 + Line = 516.58654785156 + SampleResidual = -0.95066833496094 + LineResidual = -0.42315673828125 + GoodnessOfFit = 6196.02734375 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_337 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 39.072256503891 + AprioriX = -1058941.8732822 + + # AprioriLongitude = 236.01226521507 + AprioriY = -1570671.0582263 + + # AprioriRadius = 2440000.0 + AprioriZ = 1537931.902218 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 191.41999816895 + Line = 254.71220397949 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 235.37939453125 + Line = 497.71557617188 + SampleResidual = -0.72926330566406 + LineResidual = 0.07891845703125 + GoodnessOfFit = 5205.8994140625 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_338 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 38.668998660692 + AprioriX = -1050865.667373 + + # AprioriLongitude = 236.52221022078 + AprioriY = -1589022.8241249 + + # AprioriRadius = 2440000.0 + AprioriZ = 1524561.5151731 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 294.11459350586 + Line = 298.36846923828 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 305.09426879883 + Line = 527.3466796875 + SampleResidual = -0.27960205078125 + LineResidual = 0.73541259765625 + GoodnessOfFit = 4783.4775390625 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_339 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 34.814755735042 + AprioriX = -1100100.7041885 + + # AprioriLongitude = 236.69064768019 + AprioriY = -1674147.6845622 + + # AprioriRadius = 2440000.0 + AprioriZ = 1393057.0594627 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 609.85626220703 + Line = 990.98187255859 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 517.21649169922 + Line = 987.68682861328 + SampleResidual = 0.60589599609375 + LineResidual = -0.13543701171875 + GoodnessOfFit = 4870.7607421875 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_340 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 36.077991474446 + AprioriX = -1006947.7296235 + + # AprioriLongitude = 239.29550939942 + AprioriY = -1695590.5206028 + + # AprioriRadius = 2440000.0 + AprioriZ = 1436881.7126849 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 858.29425048828 + Line = 581.70721435547 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 707.85333251953 + Line = 724.10333251953 + SampleResidual = 0.39556884765625 + LineResidual = -0.37152099609375 + GoodnessOfFit = 4231.4096679688 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_341 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 38.868945557074 + AprioriX = -1060049.9624567 + + # AprioriLongitude = 236.08265370705 + AprioriY = -1576489.5654156 + + # AprioriRadius = 2440000.0 + AprioriZ = 1531200.4203341 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 217.58760070801 + Line = 288.72052001953 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 253.37547302246 + Line = 519.93286132812 + SampleResidual = 0.10748291015625 + LineResidual = 0.34417724609375 + GoodnessOfFit = 4228.9428710938 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_342 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 37.133718609763 + AprioriX = -1046032.4260441 + + # AprioriLongitude = 237.4700772139 + AprioriY = -1640051.2556117 + + # AprioriRadius = 2440000.0 + AprioriZ = 1472972.519306 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 542.76696777344 + Line = 519.42449951172 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 474.98373413086 + Line = 674.15246582031 + SampleResidual = -1.2058410644531 + LineResidual = -0.4615478515625 + GoodnessOfFit = 4278.5107421875 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_343 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 37.351290203712 + AprioriX = -1043354.1181466 + + # AprioriLongitude = 237.45826883659 + AprioriY = -1635108.6095816 + + # AprioriRadius = 2440000.0 + AprioriZ = 1480348.6140158 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 524.38006591797 + Line = 480.6081237793 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 462.25946044922 + Line = 649.40057373047 + SampleResidual = -1.4254760742188 + LineResidual = 0.67864990234375 + GoodnessOfFit = 5040.2153320312 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_344 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 37.876684155246 + AprioriX = -1049196.7714345 + + # AprioriLongitude = 236.99164130855 + AprioriY = -1615105.4579802 + + # AprioriRadius = 2440000.0 + AprioriZ = 1498072.25941 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 420.83966064453 + Line = 415.27340698242 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 390.47204589844 + Line = 603.85980224609 + SampleResidual = -0.98403930664062 + LineResidual = -0.15631103515625 + GoodnessOfFit = 3611.1638183594 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_345 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 37.450313058971 + AprioriX = -1121502.0877315 + + # AprioriLongitude = 234.62198072008 + AprioriY = -1579389.5914988 + + # AprioriRadius = 2440000.0 + AprioriZ = 1483698.6167949 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 122.45862579346 + Line = 651.66540527344 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 183.17192077637 + Line = 749.19738769531 + SampleResidual = -0.073257446289062 + LineResidual = 0.53411865234375 + GoodnessOfFit = 4509.9033203125 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_346 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 39.017884698506 + AprioriX = -1010399.3677594 + + # AprioriLongitude = 237.79301440372 + AprioriY = -1604053.2195603 + + # AprioriRadius = 2440000.0 + AprioriZ = 1536133.5835303 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 436.06884765625 + Line = 152.59007263184 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 407.38082885742 + Line = 433.23516845703 + SampleResidual = 0.84201049804688 + LineResidual = -0.18817138671875 + GoodnessOfFit = 4377.0239257812 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_347 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 37.142804143984 + AprioriX = -1127167.039717 + + # AprioriLongitude = 234.58328584485 + AprioriY = -1585098.6314482 + + # AprioriRadius = 2440000.0 + AprioriZ = 1473280.9620561 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 140.46733093262 + Line = 712.33709716797 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 194.21128845215 + Line = 788.17572021484 + SampleResidual = -0.07928466796875 + LineResidual = 0.44842529296875 + GoodnessOfFit = 4469.3115234375 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_348 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 37.972022700038 + AprioriX = -1034451.4995033 + + # AprioriLongitude = 237.4658508757 + AprioriY = -1621629.9255186 + + # AprioriRadius = 2440000.0 + AprioriZ = 1501274.9514455 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 476.79602050781 + Line = 366.49725341797 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 430.5608215332 + Line = 573.51287841797 + SampleResidual = -1.176025390625 + LineResidual = 0.3304443359375 + GoodnessOfFit = 3551.4291992188 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_349 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 39.099879533689 + AprioriX = -1006450.8084284 + + # AprioriLongitude = 237.89222756163 + AprioriY = -1603936.6790636 + + # AprioriRadius = 2440000.0 + AprioriZ = 1538844.9888693 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 442.37478637695 + Line = 131.16107177734 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 412.33236694336 + Line = 419.23239135742 + SampleResidual = 0.99478149414062 + LineResidual = -0.27114868164062 + GoodnessOfFit = 3423.4526367188 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_350 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 35.546112253869 + AprioriX = -1019576.5283205 + + # AprioriLongitude = 239.09856610481 + AprioriY = -1703491.4909444 + + # AprioriRadius = 2440000.0 + AprioriZ = 1418513.4624592 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 872.78070068359 + Line = 688.51141357422 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 717.13696289062 + Line = 796.73181152344 + SampleResidual = 0.52081298828125 + LineResidual = -0.34521484375 + GoodnessOfFit = 4316.0517578125 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_351 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 36.3100006565 + AprioriX = -1160055.1007952 + + # AprioriLongitude = 233.84337000098 + AprioriY = -1587534.2905926 + + # AprioriRadius = 2440000.0 + AprioriZ = 1444855.3696865 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 94.679992675781 + Line = 919.34161376953 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 160.76924133301 + Line = 917.86663818359 + SampleResidual = 0.43186950683594 + LineResidual = 0.61810302734375 + GoodnessOfFit = 3575.9040527344 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_352 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 39.612149950604 + AprioriX = -1063724.797172 + + # AprioriLongitude = 235.53556260741 + AprioriY = -1549789.0388504 + + # AprioriRadius = 2440000.0 + AprioriZ = 1555713.1775943 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 80.999198913574 + Line = 181.48487854004 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 164.06774902344 + Line = 449.29669189453 + SampleResidual = 0.69877624511719 + LineResidual = -1.1328125 + GoodnessOfFit = 4051.4965820312 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_353 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 38.007073504808 + AprioriX = -993271.58782458 + + # AprioriLongitude = 238.89286919637 + AprioriY = -1646101.8969737 + + # AprioriRadius = 2440000.0 + AprioriZ = 1502451.3628068 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 659.24523925781 + Line = 266.22332763672 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 565.31329345703 + Line = 509.81216430664 + SampleResidual = 0.56396484375 + LineResidual = 0.2503662109375 + GoodnessOfFit = 3607.705078125 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_354 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 37.32045756146 + AprioriX = -1126853.2144302 + + # AprioriLongitude = 234.49849889228 + AprioriY = -1579702.3968529 + + # AprioriRadius = 2440000.0 + AprioriZ = 1479304.6239722 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 114.51755523682 + Line = 684.43603515625 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 178.7622833252 + Line = 769.46575927734 + SampleResidual = 1.3557434082031 + LineResidual = 0.26751708984375 + GoodnessOfFit = 4162.96484375 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_355 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 38.812222441269 + AprioriX = -1058138.1713673 + + # AprioriLongitude = 236.18272023413 + AprioriY = -1579597.1853982 + + # AprioriRadius = 2440000.0 + AprioriZ = 1529318.9144771 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 235.98371887207 + Line = 293.0771484375 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 265.61254882812 + Line = 522.24981689453 + SampleResidual = -0.0869140625 + LineResidual = -0.3221435546875 + GoodnessOfFit = 3929.744140625 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_356 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 38.031478760237 + AprioriX = -1036686.2226738 + + # AprioriLongitude = 237.35711710866 + AprioriY = -1618351.1813724 + + # AprioriRadius = 2440000.0 + AprioriZ = 1503270.1452064 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 457.6272277832 + Line = 362.70611572266 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 416.87811279297 + Line = 569.99572753906 + SampleResidual = -1.3594970703125 + LineResidual = -0.4205322265625 + GoodnessOfFit = 3414.873046875 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_357 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 37.423632290658 + AprioriX = -1039189.842482 + + # AprioriLongitude = 237.56896790744 + AprioriY = -1635542.4879871 + + # AprioriRadius = 2440000.0 + AprioriZ = 1482796.4261055 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 533.45611572266 + Line = 459.98718261719 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 469.01028442383 + Line = 635.28210449219 + SampleResidual = -1.50830078125 + LineResidual = -0.10968017578125 + GoodnessOfFit = 3802.853515625 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_358 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 37.809574348048 + AprioriX = -1036471.1431563 + + # AprioriLongitude = 237.47520519695 + AprioriY = -1625381.1768602 + + # AprioriRadius = 2440000.0 + AprioriZ = 1495815.3627078 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 490.84243774414 + Line = 395.68994140625 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 440.1315612793 + Line = 593.08038330078 + SampleResidual = -1.0836486816406 + LineResidual = 0.60040283203125 + GoodnessOfFit = 3023.5185546875 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_359 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 35.000644513559 + AprioriX = -1096007.7488528 + + # AprioriLongitude = 236.74569071179 + AprioriY = -1671415.4613267 + + # AprioriRadius = 2440000.0 + AprioriZ = 1399548.9881004 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 604.04974365234 + Line = 953.97705078125 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 513.89447021484 + Line = 963.62341308594 + SampleResidual = 0.86614990234375 + LineResidual = 0.54669189453125 + GoodnessOfFit = 3446.4985351562 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_360 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 38.724600597363 + AprioriX = -1050893.8543597 + + # AprioriLongitude = 236.49172040417 + AprioriY = -1587229.0273506 + + # AprioriRadius = 2440000.0 + AprioriZ = 1526409.5523826 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 285.47915649414 + Line = 289.89135742188 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 299.3903503418 + Line = 520.58599853516 + SampleResidual = -0.19287109375 + LineResidual = -0.48260498046875 + GoodnessOfFit = 3466.8232421875 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_361 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 39.44785890275 + AprioriX = -1063497.1666332 + + # AprioriLongitude = 235.63684166018 + AprioriY = -1555342.8831399 + + # AprioriRadius = 2440000.0 + AprioriZ = 1550316.8361432 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 108.60960388184 + Line = 206.66809082031 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 181.97019958496 + Line = 465.88500976562 + SampleResidual = 0.6502685546875 + LineResidual = -0.61752319335938 + GoodnessOfFit = 3000.0073242188 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_362 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 37.093938225418 + AprioriX = -1020482.5416044 + + # AprioriLongitude = 238.37685754888 + AprioriY = -1657270.4317562 + + # AprioriRadius = 2440000.0 + AprioriZ = 1471621.5880135 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 664.62036132812 + Line = 465.09020996094 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 565.32470703125 + Line = 641.78924560547 + SampleResidual = -0.00787353515625 + LineResidual = 0.25341796875 + GoodnessOfFit = 3236.27734375 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_363 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 35.554364833303 + AprioriX = -1019895.5171775 + + # AprioriLongitude = 239.0843050419 + AprioriY = -1703062.3584625 + + # AprioriRadius = 2440000.0 + AprioriZ = 1418799.3999257 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 870.38269042969 + Line = 688.09454345703 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 715.48217773438 + Line = 796.314453125 + SampleResidual = 0.67724609375 + LineResidual = -0.39556884765625 + GoodnessOfFit = 3565.3032226562 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_364 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 37.135286245242 + AprioriX = -995215.58233341 + + # AprioriLongitude = 239.22774334107 + AprioriY = -1671329.1448085 + + # AprioriRadius = 2440000.0 + AprioriZ = 1473025.7412532 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 769.68304443359 + Line = 399.91604614258 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 644.40887451172 + Line = 600.41772460938 + SampleResidual = 0.40118408203125 + LineResidual = 0.22979736328125 + GoodnessOfFit = 3499.859375 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_365 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 37.755241660593 + AprioriX = -1046972.0732573 + + # AprioriLongitude = 237.13150082846 + AprioriY = -1620325.0752839 + + # AprioriRadius = 2440000.0 + AprioriZ = 1493986.655973 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 449.20349121094 + Line = 428.41732788086 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 410.33599853516 + Line = 612.82727050781 + SampleResidual = -0.85928344726562 + LineResidual = -0.2607421875 + GoodnessOfFit = 3419.3471679688 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_366 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 38.802764019421 + AprioriX = -1055826.4488362 + + # AprioriLongitude = 236.27160996608 + AprioriY = -1581446.8437994 + + # AprioriRadius = 2440000.0 + AprioriZ = 1529005.03275 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 248.9951171875 + Line = 289.21383666992 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 275.13800048828 + Line = 519.71038818359 + SampleResidual = 0.50808715820312 + LineResidual = -0.5299072265625 + GoodnessOfFit = 3171.4443359375 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_367 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 38.314851403661 + AprioriX = -1051435.679195 + + # AprioriLongitude = 236.68738794908 + AprioriY = -1599890.2722656 + + # AprioriRadius = 2440000.0 + AprioriZ = 1512757.1283011 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 344.94799804688 + Line = 353.90194702148 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 339.31063842773 + Line = 562.86016845703 + SampleResidual = -0.228515625 + LineResidual = -0.17877197265625 + GoodnessOfFit = 3392.7060546875 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_368 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 37.095409988694 + AprioriX = -1056525.9569868 + + # AprioriLongitude = 237.12147276394 + AprioriY = -1634483.300274 + + # AprioriRadius = 2440000.0 + AprioriZ = 1471671.581345 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 499.10784912109 + Line = 550.02502441406 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 445.22009277344 + Line = 693.05279541016 + SampleResidual = 0.71005249023438 + LineResidual = -0.5313720703125 + GoodnessOfFit = 3470.3447265625 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_369 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 36.838789511253 + AprioriX = -1019098.8904279 + + # AprioriLongitude = 238.54243568683 + AprioriY = -1665786.3325194 + + # AprioriRadius = 2440000.0 + AprioriZ = 1462939.9666152 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 705.50085449219 + Line = 499.48620605469 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 594.59503173828 + Line = 665.65350341797 + SampleResidual = -0.1739501953125 + LineResidual = 0.33087158203125 + GoodnessOfFit = 3032.1469726562 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_370 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 37.30298979903 + AprioriX = -978233.0866803 + + # AprioriLongitude = 239.73396467863 + AprioriY = -1676325.7317843 + + # AprioriRadius = 2440000.0 + AprioriZ = 1478712.977248 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 819.62963867188 + Line = 335.92123413086 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 683.52709960938 + Line = 558.20892333984 + SampleResidual = 1.0562133789062 + LineResidual = 0.1346435546875 + GoodnessOfFit = 2796.0874023438 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_371 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 38.649420358096 + AprioriX = -1047112.8662856 + + # AprioriLongitude = 236.66772335809 + AprioriY = -1592121.7237449 + + # AprioriRadius = 2440000.0 + AprioriZ = 1523910.4507939 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 315.52416992188 + Line = 292.72790527344 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 319.11001586914 + Line = 523.30139160156 + SampleResidual = -1.0988464355469 + LineResidual = 0.07958984375 + GoodnessOfFit = 3474.3227539062 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_372 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 37.221159450668 + AprioriX = -1042014.5153769 + + # AprioriLongitude = 237.56823158245 + AprioriY = -1639941.5752777 + + # AprioriRadius = 2440000.0 + AprioriZ = 1475939.490433 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 549.04956054688 + Line = 496.88864135742 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 479.54547119141 + Line = 660.29241943359 + SampleResidual = -1.5259094238281 + LineResidual = 0.33282470703125 + GoodnessOfFit = 3190.4526367188 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_373 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 38.623070460182 + AprioriX = -1047542.0981357 + + # AprioriLongitude = 236.6661319224 + AprioriY = -1592678.0058204 + + # AprioriRadius = 2440000.0 + AprioriZ = 1523033.9203082 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 317.42306518555 + Line = 297.75619506836 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 321.06777954102 + Line = 525.16394042969 + SampleResidual = -0.36773681640625 + LineResidual = -1.3172607421875 + GoodnessOfFit = 3331.791015625 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_374 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 39.560378176567 + AprioriX = -1055737.184989 + + # AprioriLongitude = 235.85938945462 + AprioriY = -1556939.0913368 + + # AprioriRadius = 2440000.0 + AprioriZ = 1554014.0482309 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 130.46263122559 + Line = 171.47290039062 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 197.88081359863 + Line = 444.43280029297 + SampleResidual = 1.3883209228516 + LineResidual = 0.10848999023438 + GoodnessOfFit = 3119.9345703125 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_375 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 37.352036038474 + AprioriX = -983574.79609702 + + # AprioriLongitude = 239.52922276151 + AprioriY = -1671727.8030325 + + # AprioriRadius = 2440000.0 + AprioriZ = 1480373.8625938 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 790.50463867188 + Line = 341.03778076172 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 660.89349365234 + Line = 561.49346923828 + SampleResidual = 0.34619140625 + LineResidual = 0.41156005859375 + GoodnessOfFit = 2914.208984375 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_376 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 37.73425541084 + AprioriX = -1043878.5097075 + + # AprioriLongitude = 237.25127548158 + AprioriY = -1622970.3165392 + + # AprioriRadius = 2440000.0 + AprioriZ = 1493279.9498431 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 466.90469360352 + Line = 424.33975219727 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 422.33120727539 + Line = 611.18310546875 + SampleResidual = -1.4360961914062 + LineResidual = 0.42242431640625 + GoodnessOfFit = 2966.3295898438 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_377 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 38.130700217203 + AprioriX = -1046744.6777479 + + # AprioriLongitude = 236.94975804772 + AprioriY = -1608755.2937309 + + # AprioriRadius = 2440000.0 + AprioriZ = 1506596.1583978 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 395.12884521484 + Line = 371.04412841797 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 373.7412109375 + Line = 574.73608398438 + SampleResidual = -0.44149780273438 + LineResidual = -0.14276123046875 + GoodnessOfFit = 3178.6499023438 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_378 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 37.011914324068 + AprioriX = -1044770.5851394 + + # AprioriLongitude = 237.5726802706 + AprioriY = -1644561.2109218 + + # AprioriRadius = 2440000.0 + AprioriZ = 1468833.8394654 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 565.75189208984 + Line = 534.57049560547 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 490.89562988281 + Line = 685.39544677734 + SampleResidual = -1.5418395996094 + LineResidual = 0.25970458984375 + GoodnessOfFit = 2942.8237304688 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_379 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 39.309643408605 + AprioriX = -1049141.7989982 + + # AprioriLongitude = 236.23995397308 + AprioriY = -1569555.8436916 + + # AprioriRadius = 2440000.0 + AprioriZ = 1545767.10378 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 203.57391357422 + Line = 195.52928161621 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 246.13012695312 + Line = 459.50973510742 + SampleResidual = 0.82405090332031 + LineResidual = -0.482177734375 + GoodnessOfFit = 2606.5451660156 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_380 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 39.378062873575 + AprioriX = -1049591.289142 + + # AprioriLongitude = 236.18600300464 + AprioriY = -1567032.4965981 + + # AprioriRadius = 2440000.0 + AprioriZ = 1548020.4392587 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 190.5651550293 + Line = 185.92736816406 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 237.80207824707 + Line = 453.43591308594 + SampleResidual = 1.1369934082031 + LineResidual = -0.36367797851562 + GoodnessOfFit = 3099.849609375 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_381 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 37.355399852395 + AprioriX = -1047719.1173584 + + # AprioriLongitude = 237.3031709415 + AprioriY = -1632188.9353979 + + # AprioriRadius = 2440000.0 + AprioriZ = 1480487.7339196 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 503.38638305664 + Line = 490.28280639648 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 449.03851318359 + Line = 654.9033203125 + SampleResidual = 0.48516845703125 + LineResidual = 0.3092041015625 + GoodnessOfFit = 2926.6303710938 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_382 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 35.14063687905 + AprioriX = -1125081.0702839 + + # AprioriLongitude = 235.67624363762 + AprioriY = -1647839.0921372 + + # AprioriRadius = 2440000.0 + AprioriZ = 1404428.3220276 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 445.87466430664 + Line = 1006.1005859375 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 399.82095336914 + Line = 989.70837402344 + SampleResidual = 0.61398315429688 + LineResidual = 0.29638671875 + GoodnessOfFit = 2648.0185546875 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_383 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 36.488992382181 + AprioriX = -1032619.6697216 + + # AprioriLongitude = 238.23793228521 + AprioriY = -1667909.6096941 + + # AprioriRadius = 2440000.0 + AprioriZ = 1450990.74828 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 692.77972412109 + Line = 582.92919921875 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 582.34741210938 + Line = 720.44525146484 + SampleResidual = -1.6514282226562 + LineResidual = -0.08209228515625 + GoodnessOfFit = 2138.0715332031 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_384 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 37.082808271885 + AprioriX = -1037524.8315048 + + # AprioriLongitude = 237.79107814616 + AprioriY = -1646992.6578601 + + # AprioriRadius = 2440000.0 + AprioriZ = 1471243.4907132 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 589.14239501953 + Line = 506.88568115234 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 508.37481689453 + Line = 667.53503417969 + SampleResidual = -1.3868408203125 + LineResidual = 0.06304931640625 + GoodnessOfFit = 2190.2287597656 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_385 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 37.094850796067 + AprioriX = -1035086.3798044 + + # AprioriLongitude = 237.87015090123 + AprioriY = -1648161.0511806 + + # AprioriRadius = 2440000.0 + AprioriZ = 1471652.5866232 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 598.60595703125 + Line = 499.33892822266 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 515.74548339844 + Line = 663.04345703125 + SampleResidual = -0.9833984375 + LineResidual = 0.32684326171875 + GoodnessOfFit = 2683.4826660156 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_386 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 38.305670036102 + AprioriX = -1048669.3138514 + + # AprioriLongitude = 236.79115043221 + AprioriY = -1601994.5950303 + + # AprioriRadius = 2440000.0 + AprioriZ = 1512450.3256901 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 359.77252197266 + Line = 348.88500976562 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 349.99230957031 + Line = 560.3818359375 + SampleResidual = 0.081634521484375 + LineResidual = 0.37188720703125 + GoodnessOfFit = 3130.28515625 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_387 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 38.917941781235 + AprioriX = -1059784.2192763 + + # AprioriLongitude = 236.06573011264 + AprioriY = -1575089.4306417 + + # AprioriRadius = 2440000.0 + AprioriZ = 1532824.4172291 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 211.29547119141 + Line = 280.53591918945 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 248.71853637695 + Line = 514.70697021484 + SampleResidual = -0.41664123535156 + LineResidual = 0.41015625 + GoodnessOfFit = 2089.03125 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_388 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 36.75108832947 + AprioriX = -1051322.6381865 + + # AprioriLongitude = 237.4692441325 + AprioriY = -1648292.8006619 + + # AprioriRadius = 2440000.0 + AprioriZ = 1459949.1613487 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 571.95623779297 + Line = 588.86987304688 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 495.43533325195 + Line = 721.83123779297 + SampleResidual = -0.55657958984375 + LineResidual = 0.79119873046875 + GoodnessOfFit = 2152.5588378906 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_389 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 37.159653682483 + AprioriX = -1086585.3013655 + + # AprioriLongitude = 236.02861206415 + AprioriY = -1612665.5126629 + + # AprioriRadius = 2440000.0 + AprioriZ = 1473852.88517 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 344.68228149414 + Line = 612.07873535156 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 334.19577026367 + Line = 729.91003417969 + SampleResidual = -0.87155151367188 + LineResidual = 0.16094970703125 + GoodnessOfFit = 1788.6188964844 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_390 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 37.098505511304 + AprioriX = -1013215.0780306 + + # AprioriLongitude = 238.62566757646 + AprioriY = -1661586.1304465 + + # AprioriRadius = 2440000.0 + AprioriZ = 1471776.7278902 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 696.24487304688 + Line = 447.36642456055 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 588.61193847656 + Line = 630.87322998047 + SampleResidual = -0.22149658203125 + LineResidual = 0.445068359375 + GoodnessOfFit = 2171.58203125 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_391 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 38.041402563865 + AprioriX = -1011831.1198161 + + # AprioriLongitude = 238.22802156596 + AprioriY = -1633700.0299415 + + # AprioriRadius = 2440000.0 + AprioriZ = 1503603.0051649 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 571.3076171875 + Line = 303.71743774414 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 500.3991394043 + Line = 533.86999511719 + SampleResidual = 0.091522216796875 + LineResidual = 0.52874755859375 + GoodnessOfFit = 2157.2971191406 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_392 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 38.306820027986 + AprioriX = -1047324.8872114 + + # AprioriLongitude = 236.83862746054 + AprioriY = -1602837.5914321 + + # AprioriRadius = 2440000.0 + AprioriZ = 1512488.7557003 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 366.11456298828 + Line = 345.59252929688 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 354.46487426758 + Line = 556.708984375 + SampleResidual = 0.09027099609375 + LineResidual = -1.2615966796875 + GoodnessOfFit = 2442.51171875 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_393 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 36.943792197656 + AprioriX = -971610.90592252 + + # AprioriLongitude = 240.11678002132 + AprioriY = -1690828.8620736 + + # AprioriRadius = 2440000.0 + AprioriZ = 1466516.2824433 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 894.18389892578 + Line = 373.15698242188 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 740.03454589844 + Line = 584.54760742188 + SampleResidual = 1.790283203125 + LineResidual = 0.18231201171875 + GoodnessOfFit = 2121.4448242188 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_394 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 37.480391437155 + AprioriX = -1068890.6824389 + + # AprioriLongitude = 236.49359806825 + AprioriY = -1614525.6762013 + + # AprioriRadius = 2440000.0 + AprioriZ = 1484715.3093715 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 384.10610961914 + Line = 521.5302734375 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 362.21615600586 + Line = 672.07312011719 + SampleResidual = -1.765625 + LineResidual = -0.1246337890625 + GoodnessOfFit = 2635.8666992188 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_395 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 38.995883600296 + AprioriX = -1048384.2623325 + + # AprioriLongitude = 236.43763902321 + AprioriY = -1580196.2982718 + + # AprioriRadius = 2440000.0 + AprioriZ = 1535405.5156283 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 256.19143676758 + Line = 242.35255432129 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 280.52865600586 + Line = 490.69876098633 + SampleResidual = 0.211669921875 + LineResidual = 0.40631103515625 + GoodnessOfFit = 2528.2895507812 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_396 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 39.000261935931 + AprioriX = -1053265.5181596 + + # AprioriLongitude = 236.25810123827 + AprioriY = -1576805.836648 + + # AprioriRadius = 2440000.0 + AprioriZ = 1535550.423063 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 231.1978302002 + Line = 252.85093688965 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 263.11923217773 + Line = 496.6262512207 + SampleResidual = 0.0118408203125 + LineResidual = -0.17251586914062 + GoodnessOfFit = 2203.6848144531 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_397 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 36.256365840137 + AprioriX = -1020162.1187144 + + # AprioriLongitude = 238.76899586614 + AprioriY = -1682432.5824494 + + # AprioriRadius = 2440000.0 + AprioriZ = 1443014.1569135 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 778.52526855469 + Line = 587.26049804688 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 647.29614257812 + Line = 726.26727294922 + SampleResidual = -0.13409423828125 + LineResidual = 0.3819580078125 + GoodnessOfFit = 2197.6142578125 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_398 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 38.325346360358 + AprioriX = -1047643.2719764 + + # AprioriLongitude = 236.81767385944 + AprioriY = -1602045.0764582 + + # AprioriRadius = 2440000.0 + AprioriZ = 1513107.7779453 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 361.80111694336 + Line = 343.50619506836 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 351.02310180664 + Line = 557.66571044922 + SampleResidual = -0.38677978515625 + LineResidual = 1.1043701171875 + GoodnessOfFit = 2510.255859375 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_399 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 35.090126418539 + AprioriX = -1025968.1067264 + + # AprioriLongitude = 239.07761946773 + AprioriY = -1712749.1742788 + + # AprioriRadius = 2440000.0 + AprioriZ = 1402668.7812836 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 903.15051269531 + Line = 769.12237548828 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 739.37725830078 + Line = 851.98767089844 + SampleResidual = 1.0390625 + LineResidual = -0.8055419921875 + GoodnessOfFit = 1809.5422363281 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_400 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 35.643938282916 + AprioriX = -1087378.3658111 + + # AprioriLongitude = 236.74375059473 + AprioriY = -1658133.1793093 + + # AprioriRadius = 2440000.0 + AprioriZ = 1421901.0687245 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 557.07891845703 + Line = 839.15509033203 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 480.09875488281 + Line = 885.30139160156 + SampleResidual = -0.99667358398438 + LineResidual = 0.06280517578125 + GoodnessOfFit = 1804.9462890625 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_401 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 37.299151370581 + AprioriX = -1096826.0482735 + + # AprioriLongitude = 235.5914856717 + AprioriY = -1601363.5080549 + + # AprioriRadius = 2440000.0 + AprioriZ = 1478582.9482646 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 272.73236083984 + Line = 615.50177001953 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 285.49359130859 + Line = 730.44183349609 + SampleResidual = 0.039825439453125 + LineResidual = 0.52374267578125 + GoodnessOfFit = 1551.8853759766 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_402 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 36.787607938075 + AprioriX = -1024261.5470388 + + # AprioriLongitude = 238.38828224382 + AprioriY = -1664150.6908378 + + # AprioriRadius = 2440000.0 + AprioriZ = 1461194.9772162 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 689.56988525391 + Line = 519.20837402344 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 581.91009521484 + Line = 678.65087890625 + SampleResidual = -0.80419921875 + LineResidual = 0.5904541015625 + GoodnessOfFit = 1906.4090576172 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_403 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 37.214246674625 + AprioriX = -1053096.7649997 + + # AprioriLongitude = 237.18359152635 + AprioriY = -1633059.0279698 + + # AprioriRadius = 2440000.0 + AprioriZ = 1475705.0568164 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 498.294921875 + Line = 524.12390136719 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 445.06350708008 + Line = 676.9033203125 + SampleResidual = 0.698486328125 + LineResidual = 0.284912109375 + GoodnessOfFit = 2024.2043457031 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_404 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 38.464873665043 + AprioriX = -1013499.031191 + + # AprioriLongitude = 237.96140826906 + AprioriY = -1619509.1645944 + + # AprioriRadius = 2440000.0 + AprioriZ = 1517764.7312971 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 502.83282470703 + Line = 243.69853210449 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 452.00344848633 + Line = 493.51971435547 + SampleResidual = -0.27871704101562 + LineResidual = 0.26651000976562 + GoodnessOfFit = 1743.9279785156 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_405 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 38.706998873762 + AprioriX = -1028153.4075412 + + # AprioriLongitude = 237.31782902106 + AprioriY = -1602610.2502926 + + # AprioriRadius = 2440000.0 + AprioriZ = 1525824.6806952 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 398.42901611328 + Line = 240.41021728516 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 379.60174560547 + Line = 491.26354980469 + SampleResidual = 0.937744140625 + LineResidual = 1.0412292480469 + GoodnessOfFit = 1550.7618408203 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_406 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 35.873233764576 + AprioriX = -1006634.7675251 + + # AprioriLongitude = 239.39415970692 + AprioriY = -1701730.5191704 + + # AprioriRadius = 2440000.0 + AprioriZ = 1429825.0539607 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 885.78570556641 + Line = 610.50408935547 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 727.46954345703 + Line = 744.51928710938 + SampleResidual = -0.34808349609375 + LineResidual = -0.241455078125 + GoodnessOfFit = 1900.4912109375 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_407 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 34.911559947919 + AprioriX = -1083808.1883363 + + # AprioriLongitude = 237.20305715141 + AprioriY = -1681938.1958023 + + # AprioriRadius = 2440000.0 + AprioriZ = 1396439.65727 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 672.23797607422 + Line = 936.54412841797 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 563.55926513672 + Line = 954.45654296875 + SampleResidual = 0.59576416015625 + LineResidual = -0.39422607421875 + GoodnessOfFit = 1909.5261230469 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_408 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 37.079289044309 + AprioriX = -1011656.545044 + + # AprioriLongitude = 238.68823291326 + AprioriY = -1663113.173058 + + # AprioriRadius = 2440000.0 + AprioriZ = 1471123.9269588 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 705.72369384766 + Line = 446.5520324707 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 595.17120361328 + Line = 630.14489746094 + SampleResidual = -0.65509033203125 + LineResidual = 0.06298828125 + GoodnessOfFit = 1729.4755859375 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_409 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 38.232233437275 + AprioriX = -1023162.2724165 + + # AprioriLongitude = 237.73534836008 + AprioriY = -1620695.5615811 + + # AprioriRadius = 2440000.0 + AprioriZ = 1509994.9870694 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 491.78979492188 + Line = 301.07028198242 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 444.00769042969 + Line = 529.99627685547 + SampleResidual = 0.53829956054688 + LineResidual = -0.65478515625 + GoodnessOfFit = 1888.2973632812 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_410 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 34.524324697738 + AprioriX = -1079358.1820015 + + # AprioriLongitude = 237.52584862016 + AprioriY = -1695940.9028751 + + # AprioriRadius = 2440000.0 + AprioriZ = 1382884.7995772 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 742.79998779297 + Line = 980.89855957031 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 615.51586914062 + Line = 987.22247314453 + SampleResidual = 1.315185546875 + LineResidual = -0.73138427734375 + GoodnessOfFit = 2185.4538574219 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_411 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 39.318634457557 + AprioriX = -1056329.9583007 + + # AprioriLongitude = 235.97217934169 + AprioriY = -1564434.4542621 + + # AprioriRadius = 2440000.0 + AprioriZ = 1546063.3420122 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 165.85902404785 + Line = 210.49081420898 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 220.20246887207 + Line = 468.85266113281 + SampleResidual = 0.60165405273438 + LineResidual = -0.43789672851562 + GoodnessOfFit = 1725.4908447266 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_412 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 39.188193604336 + AprioriX = -1005719.4139753 + + # AprioriLongitude = 237.87325078468 + AprioriY = -1601592.6166457 + + # AprioriRadius = 2440000.0 + AprioriZ = 1541761.8333125 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 432.67098999023 + Line = 116.02304077148 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 406.20748901367 + Line = 408.89169311523 + SampleResidual = 1.4507446289062 + LineResidual = -0.7474365234375 + GoodnessOfFit = 1694.4858398438 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_413 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 38.661527562068 + AprioriX = -1050462.3175052 + + # AprioriLongitude = 236.54070365758 + AprioriY = -1589527.7679234 + + # AprioriRadius = 2440000.0 + AprioriZ = 1524313.0893953 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 297.24053955078 + Line = 298.58605957031 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 307.59634399414 + Line = 526.54760742188 + SampleResidual = 0.076995849609375 + LineResidual = -0.23895263671875 + GoodnessOfFit = 2214.07421875 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_414 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 34.947648681397 + AprioriX = -1074765.1699641 + + # AprioriLongitude = 237.49452536372 + AprioriY = -1686687.7154188 + + # AprioriRadius = 2440000.0 + AprioriZ = 1397699.6744964 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 708.56018066406 + Line = 908.98248291016 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 592.06622314453 + Line = 938.03912353516 + SampleResidual = 1.9555053710938 + LineResidual = -0.2081298828125 + GoodnessOfFit = 1797.2312011719 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_415 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 37.67403580658 + AprioriX = -997867.17453026 + + # AprioriLongitude = 238.88938696222 + AprioriY = -1653490.7552701 + + # AprioriRadius = 2440000.0 + AprioriZ = 1491250.9595072 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 685.08349609375 + Line = 326.40408325195 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 582.61553955078 + Line = 550.28002929688 + SampleResidual = -0.05328369140625 + LineResidual = 0.4678955078125 + GoodnessOfFit = 1523.3624267578 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_416 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 35.394068860519 + AprioriX = -998991.66183853 + + # AprioriLongitude = 239.8514550392 + AprioriY = -1719990.6673488 + + # AprioriRadius = 2440000.0 + AprioriZ = 1413240.1649437 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 977.35906982422 + Line = 660.84167480469 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 799.19268798828 + Line = 782.14208984375 + SampleResidual = 2.0564575195312 + LineResidual = 0.18408203125 + GoodnessOfFit = 1880.3511962891 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_417 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 37.219166592384 + AprioriX = -1117004.3083251 + + # AprioriLongitude = 234.90913797755 + AprioriY = -1589875.3046843 + + # AprioriRadius = 2440000.0 + AprioriZ = 1475871.9086487 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 181.71868896484 + Line = 676.14849853516 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 221.54534912109 + Line = 765.404296875 + SampleResidual = -1.0644378662109 + LineResidual = -0.612060546875 + GoodnessOfFit = 1860.1987304688 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_418 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 38.534228011055 + AprioriX = -1033467.7794361 + + # AprioriLongitude = 237.21667393435 + AprioriY = -1604653.4506036 + + # AprioriRadius = 2440000.0 + AprioriZ = 1520076.1995154 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 398.81878662109 + Line = 278.94619750977 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 377.92947387695 + Line = 514.57257080078 + SampleResidual = -0.36593627929688 + LineResidual = -0.63970947265625 + GoodnessOfFit = 1860.0625 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_419 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 39.127784485596 + AprioriX = -999734.96938633 + + # AprioriLongitude = 238.117707924 + AprioriY = -1607248.4189221 + + # AprioriRadius = 2440000.0 + AprioriZ = 1539767.0313585 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 469.46939086914 + Line = 111.78907775879 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 432.42013549805 + Line = 406.46405029297 + SampleResidual = 1.6209106445312 + LineResidual = -0.47274780273438 + GoodnessOfFit = 1508.1398925781 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_420 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 37.282626456552 + AprioriX = -1058788.8825076 + + # AprioriLongitude = 236.94985019358 + AprioriY = -1627271.9111793 + + # AprioriRadius = 2440000.0 + AprioriZ = 1478023.0814724 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 461.53625488281 + Line = 527.36529541016 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 418.37835693359 + Line = 677.77502441406 + SampleResidual = 0.12701416015625 + LineResidual = -0.0694580078125 + GoodnessOfFit = 1728.7326660156 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_421 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 38.740934809926 + AprioriX = -1039668.2858362 + + # AprioriLongitude = 236.88745642662 + AprioriY = -1594084.9729022 + + # AprioriRadius = 2440000.0 + AprioriZ = 1526952.1782275 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 337.94720458984 + Line = 261.59173583984 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 335.78591918945 + Line = 502.70223999023 + SampleResidual = -0.4356689453125 + LineResidual = -0.6812744140625 + GoodnessOfFit = 1730.0946044922 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_422 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 37.626946517115 + AprioriX = -1000281.2516366 + + # AprioriLongitude = 238.82768651965 + AprioriY = -1653463.3041649 + + # AprioriRadius = 2440000.0 + AprioriZ = 1489663.2234853 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 680.94445800781 + Line = 338.97827148438 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 579.23168945312 + Line = 559.01861572266 + SampleResidual = -0.186767578125 + LineResidual = 0.9107666015625 + GoodnessOfFit = 1377.4404296875 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_423 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 35.87905279507 + AprioriX = -1139383.5466193 + + # AprioriLongitude = 234.80841539304 + AprioriY = -1615682.8899486 + + # AprioriRadius = 2440000.0 + AprioriZ = 1430025.8504029 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 268.11532592773 + Line = 932.81170654297 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 277.10940551758 + Line = 934.158203125 + SampleResidual = 0.070281982421875 + LineResidual = 0.6650390625 + GoodnessOfFit = 1637.8126220703 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_424 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 36.711082047243 + AprioriX = -1039948.6358639 + + # AprioriLongitude = 237.88249565609 + AprioriY = -1656695.6152488 + + # AprioriRadius = 2440000.0 + AprioriZ = 1458583.7216904 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 629.58868408203 + Line = 567.69006347656 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 537.21142578125 + Line = 708.62133789062 + SampleResidual = -0.8408203125 + LineResidual = -0.03704833984375 + GoodnessOfFit = 1380.12890625 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_425 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 36.981275550735 + AprioriX = -993756.63500944 + + # AprioriLongitude = 239.34676633501 + AprioriY = -1676793.111993 + + # AprioriRadius = 2440000.0 + AprioriZ = 1467791.7461096 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 796.42913818359 + Line = 419.13259887695 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 663.66021728516 + Line = 614.53814697266 + SampleResidual = 0.00250244140625 + LineResidual = 0.96856689453125 + GoodnessOfFit = 1669.0258789062 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_426 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 38.781767345181 + AprioriX = -1026462.3690363 + + # AprioriLongitude = 237.33983632305 + AprioriY = -1601327.3729634 + + # AprioriRadius = 2440000.0 + AprioriZ = 1528308.1003354 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 395.32550048828 + Line = 225.13000488281 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 377.40002441406 + Line = 480.14505004883 + SampleResidual = 0.65203857421875 + LineResidual = -0.1470947265625 + GoodnessOfFit = 1295.1138916016 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_427 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 37.037744820456 + AprioriX = -1063328.9999574 + + # AprioriLongitude = 236.91107315269 + AprioriY = -1631832.6753083 + + # AprioriRadius = 2440000.0 + AprioriZ = 1469712.0662381 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 475.15414428711 + Line = 574.83135986328 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 426.4306640625 + Line = 708.81079101562 + SampleResidual = -0.66302490234375 + LineResidual = -0.357421875 + GoodnessOfFit = 1282.7026367188 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_428 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 36.830072177888 + AprioriX = -1055076.2011061 + + # AprioriLongitude = 237.30078095025 + AprioriY = -1643499.3562538 + + # AprioriRadius = 2440000.0 + AprioriZ = 1462642.83947 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 543.47351074219 + Line = 586.10504150391 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 473.96270751953 + Line = 717.98815917969 + SampleResidual = -1.6158752441406 + LineResidual = -0.43548583984375 + GoodnessOfFit = 1651.3706054688 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_429 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 35.791833481032 + AprioriX = -1002104.760879 + + # AprioriLongitude = 239.58109612203 + AprioriY = -1706755.7712386 + + # AprioriRadius = 2440000.0 + AprioriZ = 1427014.6409786 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 915.00463867188 + Line = 611.4130859375 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 750.16375732422 + Line = 746.11651611328 + SampleResidual = 0.09210205078125 + LineResidual = -0.169677734375 + GoodnessOfFit = 1584.9854736328 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_430 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 38.317185228805 + AprioriX = -1017879.7181284 + + # AprioriLongitude = 237.87986248543 + AprioriY = -1621373.1258648 + + # AprioriRadius = 2440000.0 + AprioriZ = 1512835.1087102 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 503.99060058594 + Line = 276.07739257812 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 452.88491821289 + Line = 514.87170410156 + SampleResidual = 0.31973266601562 + LineResidual = 0.4267578125 + GoodnessOfFit = 1399.0152587891 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_431 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 38.371009405768 + AprioriX = -1053297.6735457 + + # AprioriLongitude = 236.59139767522 + AprioriY = -1596888.0210265 + + # AprioriRadius = 2440000.0 + AprioriZ = 1514632.8463377 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 327.39825439453 + Line = 349.64437866211 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 327.21319580078 + Line = 559.45080566406 + SampleResidual = -0.25006103515625 + LineResidual = -0.59100341796875 + GoodnessOfFit = 1528.9792480469 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_432 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 35.789244347432 + AprioriX = -997691.83717493 + + # AprioriLongitude = 239.7302153397 + AprioriY = -1709413.7787123 + + # AprioriRadius = 2440000.0 + AprioriZ = 1426925.2016778 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 933.60626220703 + Line = 601.27893066406 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 764.59338378906 + Line = 739.29174804688 + SampleResidual = 0.11187744140625 + LineResidual = -0.6915283203125 + GoodnessOfFit = 1599.8376464844 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_433 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 36.683451348815 + AprioriX = -1035266.0931014 + + # AprioriLongitude = 238.05713802153 + AprioriY = -1660454.4584035 + + # AprioriRadius = 2440000.0 + AprioriZ = 1457640.2533007 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 654.53704833984 + Line = 560.63238525391 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 554.99475097656 + Line = 705.17559814453 + SampleResidual = -1.3579711914062 + LineResidual = 0.51544189453125 + GoodnessOfFit = 1292.0327148438 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_434 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 37.798220883801 + AprioriX = -1029686.292479 + + # AprioriLongitude = 237.71962345224 + AprioriY = -1630038.4209057 + + # AprioriRadius = 2440000.0 + AprioriZ = 1495433.3437007 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 524.07342529297 + Line = 381.59252929688 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 464.99182128906 + Line = 583.99633789062 + SampleResidual = -0.13134765625 + LineResidual = 0.1873779296875 + GoodnessOfFit = 1462.0953369141 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_435 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 37.238986994298 + AprioriX = -1118640.9247235 + + # AprioriLongitude = 234.83953011386 + AprioriY = -1588099.6068655 + + # AprioriRadius = 2440000.0 + AprioriZ = 1476543.9784197 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 170.173828125 + Line = 677.07434082031 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 214.12980651855 + Line = 766.66326904297 + SampleResidual = -0.68685913085938 + LineResidual = 0.414794921875 + GoodnessOfFit = 1726.9327392578 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_436 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 37.489475762258 + AprioriX = -1025216.1702861 + + # AprioriLongitude = 238.02570296694 + AprioriY = -1642327.7979051 + + # AprioriRadius = 2440000.0 + AprioriZ = 1485022.2922274 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 588.39379882812 + Line = 417.40454101562 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 510.33233642578 + Line = 608.29852294922 + SampleResidual = -0.39068603515625 + LineResidual = -0.17364501953125 + GoodnessOfFit = 1319.9379882812 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_437 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 38.69113677822 + AprioriX = -1030381.3445356 + + # AprioriLongitude = 237.24631745452 + AprioriY = -1601680.945543 + + # AprioriRadius = 2440000.0 + AprioriZ = 1525297.4901695 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 390.16567993164 + Line = 247.92944335938 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 373.17196655273 + Line = 494.75640869141 + SampleResidual = 0.40890502929688 + LineResidual = -0.26870727539062 + GoodnessOfFit = 1304.0986328125 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_438 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 36.642374967306 + AprioriX = -1035452.2154206 + + # AprioriLongitude = 238.06977680785 + AprioriY = -1661569.250251 + + # AprioriRadius = 2440000.0 + AprioriZ = 1456237.0467067 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 659.30432128906 + Line = 567.12591552734 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 558.62786865234 + Line = 709.67364501953 + SampleResidual = -1.0986328125 + LineResidual = 0.57763671875 + GoodnessOfFit = 1382.2365722656 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_439 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 34.735311761201 + AprioriX = -1087333.7572869 + + # AprioriLongitude = 237.16212314259 + AprioriY = -1684764.7002339 + + # AprioriRadius = 2440000.0 + AprioriZ = 1390278.1035138 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 679.3154296875 + Line = 970.59906005859 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 568.44586181641 + Line = 977.00952148438 + SampleResidual = 0.87091064453125 + LineResidual = -0.830078125 + GoodnessOfFit = 1510.0083007812 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_440 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 35.923688694934 + AprioriX = -1009997.3296406 + + # AprioriLongitude = 239.25916829934 + AprioriY = -1698271.2724468 + + # AprioriRadius = 2440000.0 + AprioriZ = 1431565.6042602 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 865.1943359375 + Line = 611.2490234375 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 711.62426757812 + Line = 744.74536132812 + SampleResidual = -0.55511474609375 + LineResidual = 0.11932373046875 + GoodnessOfFit = 1662.4528808594 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_441 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 39.075771950903 + AprioriX = -1004184.6974407 + + # AprioriLongitude = 237.98538848473 + AprioriY = -1606119.8757173 + + # AprioriRadius = 2440000.0 + AprioriZ = 1538048.1261169 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 456.5071105957 + Line = 129.7331237793 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 422.22174072266 + Line = 417.06652832031 + SampleResidual = 0.88885498046875 + LineResidual = -1.5410766601562 + GoodnessOfFit = 1134.2418212891 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_442 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 35.772955908661 + AprioriX = -1001445.2864648 + + # AprioriLongitude = 239.61121252073 + AprioriY = -1707687.7512322 + + # AprioriRadius = 2440000.0 + AprioriZ = 1426362.4653324 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 920.11962890625 + Line = 612.55163574219 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 754.01177978516 + Line = 746.46197509766 + SampleResidual = 0.04931640625 + LineResidual = -0.7567138671875 + GoodnessOfFit = 1220.4318847656 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_443 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 37.442159038768 + AprioriX = -1117323.7659382 + + # AprioriLongitude = 234.77782556381 + AprioriY = -1582606.7157424 + + # AprioriRadius = 2440000.0 + AprioriZ = 1483422.9286877 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 145.6342010498 + Line = 642.87561035156 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 198.65184020996 + Line = 743.7158203125 + SampleResidual = -0.24461364746094 + LineResidual = -0.04559326171875 + GoodnessOfFit = 1824.1881103516 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_444 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 36.681288060222 + AprioriX = -1144408.0065392 + + # AprioriLongitude = 234.20874528947 + AprioriY = -1587271.4278171 + + # AprioriRadius = 2440000.0 + AprioriZ = 1457566.3720752 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 120.8116607666 + Line = 824.55004882812 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 180.15188598633 + Line = 858.61663818359 + SampleResidual = 0.85069274902344 + LineResidual = 0.36553955078125 + GoodnessOfFit = 1285.6861572266 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_445 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 37.711577747996 + AprioriX = -1091553.4038892 + + # AprioriLongitude = 235.56377679638 + AprioriY = -1592013.4971751 + + # AprioriRadius = 2440000.0 + AprioriZ = 1492516.0606406 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 236.85148620605 + Line = 540.16613769531 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 262.02667236328 + Line = 680.62963867188 + SampleResidual = -0.17999267578125 + LineResidual = -0.05889892578125 + GoodnessOfFit = 1375.4296875 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_446 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 35.561963336789 + AprioriX = -1060716.2160229 + + # AprioriLongitude = 237.69741240389 + AprioriY = -1677719.3769867 + + # AprioriRadius = 2440000.0 + AprioriZ = 1419062.6487754 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 690.96038818359 + Line = 785.86389160156 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 578.22418212891 + Line = 855.69207763672 + SampleResidual = -1.0142211914062 + LineResidual = 0.209228515625 + GoodnessOfFit = 1256.4240722656 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_447 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 37.389277668594 + AprioriX = -1040483.4739939 + + # AprioriLongitude = 237.54035507631 + AprioriY = -1635773.2153788 + + # AprioriRadius = 2440000.0 + AprioriZ = 1481634.2761272 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 532.33264160156 + Line = 468.16812133789 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 468.35015869141 + Line = 640.75421142578 + SampleResidual = -1.2277221679688 + LineResidual = 0.01898193359375 + GoodnessOfFit = 1232.921875 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_448 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 34.907605069091 + AprioriX = -1086045.4069072 + + # AprioriLongitude = 237.12859644713 + AprioriY = -1680609.2288129 + + # AprioriRadius = 2440000.0 + AprioriZ = 1396301.5412742 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 662.52215576172 + Line = 942.65985107422 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 556.49786376953 + Line = 957.49395751953 + SampleResidual = 0.74627685546875 + LineResidual = -0.9461669921875 + GoodnessOfFit = 1470.1625976562 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_449 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 38.048688368487 + AprioriX = -988608.71195569 + + # AprioriLongitude = 239.03551095148 + AprioriY = -1647633.4395657 + + # AprioriRadius = 2440000.0 + AprioriZ = 1503847.3537797 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 673.97943115234 + Line = 249.34275817871 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 576.62945556641 + Line = 498.21893310547 + SampleResidual = 0.809326171875 + LineResidual = -0.28897094726562 + GoodnessOfFit = 1349.5573730469 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_450 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 38.080057650481 + AprioriX = -1045219.9411361 + + # AprioriLongitude = 237.02982030701 + AprioriY = -1611332.9547862 + + # AprioriRadius = 2440000.0 + AprioriZ = 1504899.1273408 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 409.93414306641 + Line = 375.18548583984 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 383.54379272461 + Line = 577.80322265625 + SampleResidual = -0.93145751953125 + LineResidual = 0.0067138671875 + GoodnessOfFit = 1129.9447021484 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_451 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 37.663027223985 + AprioriX = -1027967.2257096 + + # AprioriLongitude = 237.84586877254 + AprioriY = -1635286.0926092 + + # AprioriRadius = 2440000.0 + AprioriZ = 1490879.8671207 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 551.29064941406 + Line = 397.87393188477 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 484.13668823242 + Line = 595.21942138672 + SampleResidual = -0.20184326171875 + LineResidual = 0.2666015625 + GoodnessOfFit = 935.8310546875 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_452 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 39.314349445934 + AprioriX = -1073494.0332104 + + # AprioriLongitude = 235.34363046775 + AprioriY = -1552847.4569647 + + # AprioriRadius = 2440000.0 + AprioriZ = 1545922.1636486 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 78.236862182617 + Line = 250.34910583496 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 160.99971008301 + Line = 492.79531860352 + SampleResidual = 0.59320068359375 + LineResidual = -1.0970458984375 + GoodnessOfFit = 1276.4516601562 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_453 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 36.825461122947 + AprioriX = -978035.21578686 + + # AprioriLongitude = 239.95026815208 + AprioriY = -1690616.1042702 + + # AprioriRadius = 2440000.0 + AprioriZ = 1462485.6596435 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 882.93499755859 + Line = 405.29180908203 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 730.69055175781 + Line = 606.86541748047 + SampleResidual = 1.5502319335938 + LineResidual = 0.96527099609375 + GoodnessOfFit = 1382.494140625 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_454 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 35.211505713778 + AprioriX = -1061920.7948864 + + # AprioriLongitude = 237.81342435675 + AprioriY = -1687178.1451747 + + # AprioriRadius = 2440000.0 + AprioriZ = 1406895.2099687 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 731.72491455078 + Line = 839.44030761719 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 608.61804199219 + Line = 892.14923095703 + SampleResidual = 0.22723388671875 + LineResidual = -0.75 + GoodnessOfFit = 1381.6384277344 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_455 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 38.742751176205 + AprioriX = -1021890.3036116 + + # AprioriLongitude = 237.52322408048 + AprioriY = -1605482.170504 + + # AprioriRadius = 2440000.0 + AprioriZ = 1527012.5106161 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 422.82894897461 + Line = 220.65225219727 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 397.38305664062 + Line = 477.22854614258 + SampleResidual = 1.2879943847656 + LineResidual = -0.36181640625 + GoodnessOfFit = 1209.7907714844 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_456 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 34.789362991811 + AprioriX = -1098526.7202003 + + # AprioriLongitude = 236.75607042188 + AprioriY = -1675918.9159935 + + # AprioriRadius = 2440000.0 + AprioriZ = 1392169.1104248 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 620.57879638672 + Line = 990.71234130859 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 525.72698974609 + Line = 987.37170410156 + SampleResidual = 1.3368530273438 + LineResidual = -0.82080078125 + GoodnessOfFit = 1134.4273681641 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_457 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 37.302391468502 + AprioriX = -975913.11805807 + + # AprioriLongitude = 239.81349297485 + AprioriY = -1677695.2818292 + + # AprioriRadius = 2440000.0 + AprioriZ = 1478692.708892 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 829.46118164062 + Line = 330.65991210938 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 691.13482666016 + Line = 554.56915283203 + SampleResidual = 1.1782836914062 + LineResidual = -0.10845947265625 + GoodnessOfFit = 1217.326171875 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_458 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 36.928836181005 + AprioriX = -1025155.671355 + + # AprioriLongitude = 238.29216580257 + AprioriY = -1659360.9501853 + + # AprioriRadius = 2440000.0 + AprioriZ = 1466007.1918271 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 666.35601806641 + Line = 500.49462890625 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 565.29718017578 + Line = 665.60125732422 + SampleResidual = -0.70916748046875 + LineResidual = 0.53350830078125 + GoodnessOfFit = 1066.5922851562 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_459 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 36.450047712619 + AprioriX = -1167421.9613316 + + # AprioriLongitude = 233.50080096237 + AprioriY = -1577726.3595777 + + # AprioriRadius = 2440000.0 + AprioriZ = 1449657.0278843 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 33.075172424316 + Line = 916.32800292969 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 120.2907409668 + Line = 912.98486328125 + SampleResidual = 0.63967132568359 + LineResidual = 0.2802734375 + GoodnessOfFit = 1153.8151855469 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_460 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 36.439216033826 + AprioriX = -1021803.169002 + + # AprioriLongitude = 238.6311943818 + AprioriY = -1676033.5576559 + + # AprioriRadius = 2440000.0 + AprioriZ = 1449285.9612336 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 747.19488525391 + Line = 564.49176025391 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 624.39392089844 + Line = 709.02355957031 + SampleResidual = -0.108154296875 + LineResidual = -0.73455810546875 + GoodnessOfFit = 1148.2894287109 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_461 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 36.838951557885 + AprioriX = -1023519.0435651 + + # AprioriLongitude = 238.39020321487 + AprioriY = -1663069.2294467 + + # AprioriRadius = 2440000.0 + AprioriZ = 1462945.4895952 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 685.8994140625 + Line = 509.89141845703 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 579.30871582031 + Line = 671.91369628906 + SampleResidual = -0.86651611328125 + LineResidual = 0.1376953125 + GoodnessOfFit = 912.65832519531 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_462 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 37.029595013393 + AprioriX = -1045727.8159154 + + # AprioriLongitude = 237.53084176815 + AprioriY = -1643415.3740305 + + # AprioriRadius = 2440000.0 + AprioriZ = 1469435.0082331 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 558.84637451172 + Line = 534.21008300781 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 486.30004882812 + Line = 685.12805175781 + SampleResidual = -1.1789855957031 + LineResidual = 0.40252685546875 + GoodnessOfFit = 1086.0261230469 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_463 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 38.788410196981 + AprioriX = -1030470.5333968 + + # AprioriLongitude = 237.19286718801 + AprioriY = -1598540.1938737 + + # AprioriRadius = 2440000.0 + AprioriZ = 1528528.6154898 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 375.17248535156 + Line = 233.26789855957 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 363.14532470703 + Line = 484.32931518555 + SampleResidual = 0.59796142578125 + LineResidual = -1.077392578125 + GoodnessOfFit = 1187.4886474609 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_464 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 36.833808102621 + AprioriX = -971562.43874682 + + # AprioriLongitude = 240.16580704081 + AprioriY = -1694098.5285533 + + # AprioriRadius = 2440000.0 + AprioriZ = 1462770.1812554 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 908.55181884766 + Line = 389.04898071289 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 750.92047119141 + Line = 595.42456054688 + SampleResidual = 1.9916381835938 + LineResidual = 0.04681396484375 + GoodnessOfFit = 1264.6898193359 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_465 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 35.177056205128 + AprioriX = -1057957.5915175 + + # AprioriLongitude = 237.96312192123 + AprioriY = -1690663.6551083 + + # AprioriRadius = 2440000.0 + AprioriZ = 1405696.3185007 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 753.84332275391 + Line = 834.68395996094 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 625.38421630859 + Line = 889.93890380859 + SampleResidual = 0.51580810546875 + LineResidual = -0.74041748046875 + GoodnessOfFit = 1075.3728027344 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_466 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 38.771865814993 + AprioriX = -1026261.2010231 + + # AprioriLongitude = 237.35213080551 + AprioriY = -1601769.9537395 + + # AprioriRadius = 2440000.0 + AprioriZ = 1527979.3724302 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 397.7624206543 + Line = 226.18316650391 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 379.0715637207 + Line = 481.18090820312 + SampleResidual = 0.63705444335938 + LineResidual = 0.18768310546875 + GoodnessOfFit = 1147.0827636719 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_467 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 36.927257788859 + AprioriX = -1050868.8615146 + + # AprioriLongitude = 237.40075095888 + AprioriY = -1643245.2928523 + + # AprioriRadius = 2440000.0 + AprioriZ = 1465953.4588171 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 549.39202880859 + Line = 561.63854980469 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 478.70034790039 + Line = 701.86920166016 + SampleResidual = -1.5315246582031 + LineResidual = -0.642333984375 + GoodnessOfFit = 1165.1813964844 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_468 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 37.880410280463 + AprioriX = -1029183.9593174 + + # AprioriLongitude = 237.69694552528 + AprioriY = -1627815.8997592 + + # AprioriRadius = 2440000.0 + AprioriZ = 1498197.5084663 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 514.61212158203 + Line = 368.0654296875 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 458.89663696289 + Line = 574.92590332031 + SampleResidual = 0.30062866210938 + LineResidual = 0.13104248046875 + GoodnessOfFit = 1097.4508056641 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_469 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 36.798254353485 + AprioriX = -974496.1529998 + + # AprioriLongitude = 240.08185626437 + AprioriY = -1693459.5669557 + + # AprioriRadius = 2440000.0 + AprioriZ = 1461558.0532003 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 901.06286621094 + Line = 401.02618408203 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 744.23724365234 + Line = 603.40234375 + SampleResidual = 1.2255859375 + LineResidual = 0.048583984375 + GoodnessOfFit = 888.96551513672 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_470 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 36.00146550573 + AprioriX = -1013341.8491885 + + # AprioriLongitude = 239.11253195133 + AprioriY = -1694011.5870001 + + # AprioriRadius = 2440000.0 + AprioriZ = 1434246.505937 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 841.02380371094 + Line = 607.99151611328 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 693.77435302734 + Line = 741.68988037109 + SampleResidual = -0.19049072265625 + LineResidual = 0.00579833984375 + GoodnessOfFit = 1102.6988525391 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_471 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 37.505090872595 + AprioriX = -1124242.1403519 + + # AprioriLongitude = 234.49256902725 + AprioriY = -1575697.040662 + + # AprioriRadius = 2440000.0 + AprioriZ = 1485549.8799791 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 99.432273864746 + Line = 649.84918212891 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 167.53063964844 + Line = 746.88110351562 + SampleResidual = -0.39605712890625 + LineResidual = 0.04315185546875 + GoodnessOfFit = 1812.6927490234 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_472 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 37.938779059747 + AprioriX = -1118315.5101887 + + # AprioriLongitude = 234.46928719406 + AprioriY = -1566044.1787804 + + # AprioriRadius = 2440000.0 + AprioriZ = 1500158.6748672 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 62.371047973633 + Line = 568.87567138672 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 145.08477783203 + Line = 694.52661132812 + SampleResidual = 0.41169738769531 + LineResidual = -0.14019775390625 + GoodnessOfFit = 1085.4421386719 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_473 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 37.81847733159 + AprioriX = -1041417.7537968 + + # AprioriLongitude = 237.29622805553 + AprioriY = -1621939.9822087 + + # AprioriRadius = 2440000.0 + AprioriZ = 1496114.8873631 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 466.30163574219 + Line = 405.89050292969 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 422.8684387207 + Line = 599.28747558594 + SampleResidual = -0.7802734375 + LineResidual = 0.57232666015625 + GoodnessOfFit = 1226.1134033203 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_474 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 35.970755940711 + AprioriX = -983724.0139775 + + # AprioriLongitude = 240.12196317391 + AprioriY = -1712267.0336178 + + # AprioriRadius = 2440000.0 + AprioriZ = 1433188.288366 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 968.12103271484 + Line = 542.14416503906 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 793.88146972656 + Line = 699.73675537109 + SampleResidual = 1.8499755859375 + LineResidual = -1.0154418945312 + GoodnessOfFit = 1012.2766723633 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_475 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 38.45269200668 + AprioriX = -1042700.3593415 + + # AprioriLongitude = 236.92865789201 + AprioriY = -1601249.2382598 + + # AprioriRadius = 2440000.0 + AprioriZ = 1517358.5066165 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 366.64797973633 + Line = 312.64767456055 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 355.27896118164 + Line = 537.02355957031 + SampleResidual = -0.014190673828125 + LineResidual = 0.3521728515625 + GoodnessOfFit = 983.74536132812 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_476 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 37.608816709448 + AprioriX = -1052127.855701 + + # AprioriLongitude = 237.02248670984 + AprioriY = -1621527.7125074 + + # AprioriRadius = 2440000.0 + AprioriZ = 1489051.662243 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 445.99551391602 + Line = 462.59417724609 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 407.54476928711 + Line = 635.38671875 + SampleResidual = -0.818359375 + LineResidual = 0.10247802734375 + GoodnessOfFit = 1043.7030029297 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_477 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 38.827185833586 + AprioriX = -1049169.5851207 + + # AprioriLongitude = 236.49945016507 + AprioriY = -1585089.2833746 + + # AprioriRadius = 2440000.0 + AprioriZ = 1529815.395853 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 278.27554321289 + Line = 270.14959716797 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 294.55288696289 + Line = 507.72012329102 + SampleResidual = -0.41595458984375 + LineResidual = -0.5977783203125 + GoodnessOfFit = 1276.2883300781 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_478 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 36.671254698442 + AprioriX = -1151206.0734914 + + # AprioriLongitude = 233.96841017532 + AprioriY = -1582663.4875056 + + # AprioriRadius = 2440000.0 + AprioriZ = 1457223.6827863 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 86.128677368164 + Line = 842.74548339844 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 156.47314453125 + Line = 868.62817382812 + SampleResidual = 0.55630493164062 + LineResidual = 0.19732666015625 + GoodnessOfFit = 1148.6279296875 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_479 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 38.338727143305 + AprioriX = -1108294.3084094 + + # AprioriLongitude = 234.61294136883 + AprioriY = -1560267.8215566 + + # AprioriRadius = 2440000.0 + AprioriZ = 1513554.7730302 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 51.822193145752 + Line = 483.1926574707 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 139.47996520996 + Line = 640.37353515625 + SampleResidual = 0.37237548828125 + LineResidual = -0.0224609375 + GoodnessOfFit = 918.37689208984 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_480 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 38.886775349325 + AprioriX = -1086189.0508663 + + # AprioriLongitude = 235.11723685631 + AprioriY = -1558014.1433121 + + # AprioriRadius = 2440000.0 + AprioriZ = 1531791.5246591 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 80.617568969727 + Line = 346.31195068359 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 161.12605285645 + Line = 554.12786865234 + SampleResidual = 0.71481323242188 + LineResidual = -0.39031982421875 + GoodnessOfFit = 1052.5911865234 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_481 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 35.78158783618 + AprioriX = -1096048.1999606 + + # AprioriLongitude = 236.37793248723 + AprioriY = -1648307.4950148 + + # AprioriRadius = 2440000.0 + AprioriZ = 1426660.6973072 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 496.84921264648 + Line = 840.26245117188 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 437.10418701172 + Line = 882.43951416016 + SampleResidual = -0.94528198242188 + LineResidual = -0.9989013671875 + GoodnessOfFit = 1145.7160644531 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_482 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 36.448335213003 + AprioriX = -1033125.0079438 + + # AprioriLongitude = 238.23918165923 + AprioriY = -1668807.14801 + + # AprioriRadius = 2440000.0 + AprioriZ = 1449598.3653109 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 696.00909423828 + Line = 590.09594726562 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 584.98620605469 + Line = 725.82269287109 + SampleResidual = -1.2664184570312 + LineResidual = 0.4345703125 + GoodnessOfFit = 1037.8343505859 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_483 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 37.212965011056 + AprioriX = -1049909.2117088 + + # AprioriLongitude = 237.29598138239 + AprioriY = -1635149.3880048 + + # AprioriRadius = 2440000.0 + AprioriZ = 1475661.58928 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 513.44573974609 + Line = 516.76922607422 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 455.56140136719 + Line = 672.22875976562 + SampleResidual = 0.28500366210938 + LineResidual = 0.0604248046875 + GoodnessOfFit = 918.28173828125 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_484 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 38.787092599045 + AprioriX = -1055090.0966194 + + # AprioriLongitude = 236.3066847843 + AprioriY = -1582440.7934353 + + # AprioriRadius = 2440000.0 + AprioriZ = 1528484.8783313 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 255.08129882812 + Line = 289.93395996094 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 278.7995300293 + Line = 520.8603515625 + SampleResidual = 0.027496337890625 + LineResidual = 0.09326171875 + GoodnessOfFit = 1089.2814941406 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_485 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 34.966686303338 + AprioriX = -1103258.537455 + + # AprioriLongitude = 236.51250570539 + AprioriY = -1667632.5540268 + + # AprioriRadius = 2440000.0 + AprioriZ = 1398364.1386573 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 574.62377929688 + Line = 976.92340087891 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 492.6393737793 + Line = 976.6953125 + SampleResidual = 1.2400207519531 + LineResidual = -0.06622314453125 + GoodnessOfFit = 1083.3676757812 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_486 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 36.462553856283 + AprioriX = -1026342.1278835 + + # AprioriLongitude = 238.46532431565 + AprioriY = -1672565.1524368 + + # AprioriRadius = 2440000.0 + AprioriZ = 1450085.3931358 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 724.14947509766 + Line = 571.86462402344 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 606.53387451172 + Line = 713.78979492188 + SampleResidual = -0.775634765625 + LineResidual = -0.2509765625 + GoodnessOfFit = 1177.2979736328 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_487 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 37.104265451719 + AprioriX = -992181.20875226 + + # AprioriLongitude = 239.34562890816 + AprioriY = -1674059.0797504 + + # AprioriRadius = 2440000.0 + AprioriZ = 1471972.3660803 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 786.82690429688 + Line = 397.41607666016 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 656.98699951172 + Line = 598.84204101562 + SampleResidual = 0.1436767578125 + LineResidual = 0.018310546875 + GoodnessOfFit = 988.17248535156 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_488 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 35.649396267347 + AprioriX = -998969.3354146 + + # AprioriLongitude = 239.74611168245 + AprioriY = -1712693.9128687 + + # AprioriRadius = 2440000.0 + AprioriZ = 1422089.9506445 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 945.82556152344 + Line = 624.35394287109 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 774.21838378906 + Line = 755.80902099609 + SampleResidual = 0.75262451171875 + LineResidual = -0.24420166015625 + GoodnessOfFit = 1149.3138427734 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_489 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 35.6469276146 + AprioriX = -1005178.0911838 + + # AprioriLongitude = 239.53922723485 + AprioriY = -1709128.4761625 + + # AprioriRadius = 2440000.0 + AprioriZ = 1422004.5207292 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 920.45513916016 + Line = 639.53063964844 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 754.91546630859 + Line = 764.60620117188 + SampleResidual = 1.1559448242188 + LineResidual = -0.93170166015625 + GoodnessOfFit = 1042.6202392578 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_490 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 36.010386655757 + AprioriX = -1008196.0392897 + + # AprioriLongitude = 239.28256705297 + AprioriY = -1696819.383948 + + # AprioriRadius = 2440000.0 + AprioriZ = 1434553.8416591 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 861.69860839844 + Line = 594.44470214844 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 709.85552978516 + Line = 732.76123046875 + SampleResidual = 0.0377197265625 + LineResidual = -0.41192626953125 + GoodnessOfFit = 880.47277832031 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_491 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 37.31048023876 + AprioriX = -1140761.793016 + + # AprioriLongitude = 233.99796046494 + AprioriY = -1570006.37852 + + # AprioriRadius = 2440000.0 + AprioriZ = 1478966.7011131 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 41.899730682373 + Line = 719.57623291016 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 128.68771362305 + Line = 789.68981933594 + SampleResidual = 5.18798828125e-04 + LineResidual = 0.59515380859375 + GoodnessOfFit = 894.60778808594 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_492 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 36.711187203971 + AprioriX = -1037957.8861214 + + # AprioriLongitude = 237.95126946731 + AprioriY = -1657940.4334355 + + # AprioriRadius = 2440000.0 + AprioriZ = 1458587.3116883 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 638.59393310547 + Line = 562.94036865234 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 543.41973876953 + Line = 705.94427490234 + SampleResidual = -1.2661743164062 + LineResidual = 0.18524169921875 + GoodnessOfFit = 920.07202148438 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_493 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 36.875883353129 + AprioriX = -1083413.2290811 + + # AprioriLongitude = 236.28441107821 + AprioriY = -1623552.4818923 + + # AprioriRadius = 2440000.0 + AprioriZ = 1464203.9180365 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 401.86492919922 + Line = 647.130859375 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 372.44747924805 + Line = 753.96759033203 + SampleResidual = -1.849365234375 + LineResidual = -0.1610107421875 + GoodnessOfFit = 898.78717041016 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_494 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 39.112299961617 + AprioriX = -1008562.0783203 + + # AprioriLongitude = 237.81042320136 + AprioriY = -1602215.7303274 + + # AprioriRadius = 2440000.0 + AprioriZ = 1539255.4328849 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 430.64999389648 + Line = 134.02331542969 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 404.501953125 + Line = 421.560546875 + SampleResidual = 1.466796875 + LineResidual = 0.2249755859375 + GoodnessOfFit = 1036.8568115234 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_495 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 37.002097559795 + AprioriX = -1148893.2261182 + + # AprioriLongitude = 233.87178284933 + AprioriY = -1573897.112138 + + # AprioriRadius = 2440000.0 + AprioriZ = 1468499.9950233 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 46.77127456665 + Line = 786.61901855469 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 131.61657714844 + Line = 831.79833984375 + SampleResidual = 0.81707763671875 + LineResidual = 0.2855224609375 + GoodnessOfFit = 876.71240234375 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_496 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 35.945844608995 + AprioriX = -1029639.5922434 + + # AprioriLongitude = 238.58436700405 + AprioriY = -1685785.9638174 + + # AprioriRadius = 2440000.0 + AprioriZ = 1432329.5690172 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 778.06915283203 + Line = 655.02941894531 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 645.39025878906 + Line = 770.39996337891 + SampleResidual = -0.55230712890625 + LineResidual = -0.89263916015625 + GoodnessOfFit = 867.58404541016 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_497 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 35.263455779734 + AprioriX = -1092603.1771987 + + # AprioriLongitude = 236.74131663522 + AprioriY = -1665946.1141322 + + # AprioriRadius = 2440000.0 + AprioriZ = 1408702.1835659 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 584.49597167969 + Line = 907.47039794922 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 498.97872924805 + Line = 931.31231689453 + SampleResidual = -0.70233154296875 + LineResidual = -0.1356201171875 + GoodnessOfFit = 1083.4102783203 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_498 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 37.606818549088 + AprioriX = -1027478.0985755 + + # AprioriLongitude = 237.89021727768 + AprioriY = -1637319.3515183 + + # AprioriRadius = 2440000.0 + AprioriZ = 1488984.2504511 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 561.50842285156 + Line = 405.14981079102 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 491.47888183594 + Line = 600.30743408203 + SampleResidual = -0.07708740234375 + LineResidual = 0.3924560546875 + GoodnessOfFit = 910.21179199219 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_499 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 36.892336163875 + AprioriX = -1044184.0362091 + + # AprioriLongitude = 237.65015075668 + AprioriY = -1648558.4981446 + + # AprioriRadius = 2440000.0 + AprioriZ = 1464764.3417019 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 585.16680908203 + Line = 550.93634033203 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 504.89312744141 + Line = 696.21746826172 + SampleResidual = -1.2587585449219 + LineResidual = -0.19268798828125 + GoodnessOfFit = 916.25262451172 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_500 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 38.272232173245 + AprioriX = -1102342.6634957 + + # AprioriLongitude = 234.86818553054 + AprioriY = -1566625.1269467 + + # AprioriRadius = 2440000.0 + AprioriZ = 1511332.6450046 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 93.874122619629 + Line = 479.48428344727 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 168.0729675293 + Line = 638.39672851562 + SampleResidual = 1.0438385009766 + LineResidual = -0.51409912109375 + GoodnessOfFit = 787.056640625 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_501 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 36.646077112797 + AprioriX = -1020242.6532954 + + # AprioriLongitude = 238.59108539964 + AprioriY = -1670841.1504637 + + # AprioriRadius = 2440000.0 + AprioriZ = 1456363.5460673 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 726.41326904297 + Line = 530.50384521484 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 609.38024902344 + Line = 686.92218017578 + SampleResidual = -0.30145263671875 + LineResidual = 0.41162109375 + GoodnessOfFit = 826.38433837891 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_502 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 38.128658526135 + AprioriX = -997341.45648041 + + # AprioriLongitude = 238.6932564207 + AprioriY = -1639903.6907832 + + # AprioriRadius = 2440000.0 + AprioriZ = 1506527.7641455 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 624.19860839844 + Line = 257.35818481445 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 540.73901367188 + Line = 503.17672729492 + SampleResidual = 1.387939453125 + LineResidual = -0.16937255859375 + GoodnessOfFit = 945.51330566406 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_503 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 35.748466560737 + AprioriX = -1143984.5863168 + + # AprioriLongitude = 234.71185905632 + AprioriY = -1616416.6763468 + + # AprioriRadius = 2440000.0 + AprioriZ = 1425516.185351 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 263.76266479492 + Line = 963.68145751953 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 273.83596801758 + Line = 953.39624023438 + SampleResidual = 0.28378295898438 + LineResidual = 0.28253173828125 + GoodnessOfFit = 925.00451660156 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_504 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 39.067354383849 + AprioriX = -1012101.66894 + + # AprioriLongitude = 237.70684477213 + AprioriY = -1601410.059981 + + # AprioriRadius = 2440000.0 + AprioriZ = 1537769.8239726 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 420.71661376953 + Line = 148.88078308105 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 396.54080200195 + Line = 430.57293701172 + SampleResidual = 0.73382568359375 + LineResidual = -0.38626098632812 + GoodnessOfFit = 811.27416992188 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_505 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 38.929961816509 + AprioriX = -1054800.3502341 + + # AprioriLongitude = 236.24034434451 + AprioriY = -1578044.5220232 + + # AprioriRadius = 2440000.0 + AprioriZ = 1533222.6543 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 234.435546875 + Line = 267.23080444336 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 264.52850341797 + Line = 506.29925537109 + SampleResidual = -0.54425048828125 + LineResidual = 0.27520751953125 + GoodnessOfFit = 855.23303222656 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_506 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 34.970303202265 + AprioriX = -1087355.7997327 + + # AprioriLongitude = 237.05554114464 + AprioriY = -1677939.8308101 + + # AprioriRadius = 2440000.0 + AprioriZ = 1398490.3606992 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 648.19738769531 + Line = 936.88293457031 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 545.90954589844 + Line = 953.47808837891 + SampleResidual = 0.52001953125 + LineResidual = -0.43255615234375 + GoodnessOfFit = 877.1748046875 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_507 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 37.939643611264 + AprioriX = -1025807.1447676 + + # AprioriLongitude = 237.7866773675 + AprioriY = -1628114.4097678 + + # AprioriRadius = 2440000.0 + AprioriZ = 1500187.7117382 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 521.75311279297 + Line = 351.31451416016 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 463.86251831055 + Line = 563.97314453125 + SampleResidual = -0.11007690429688 + LineResidual = 0.04351806640625 + GoodnessOfFit = 790.48010253906 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_508 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 36.087737696732 + AprioriX = -1016120.294926 + + # AprioriLongitude = 238.98078725324 + AprioriY = -1689824.3772964 + + # AprioriRadius = 2440000.0 + AprioriZ = 1437217.144392 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 817.99279785156 + Line = 602.12628173828 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 676.541015625 + Line = 737.92797851562 + SampleResidual = -0.18634033203125 + LineResidual = 0.89263916015625 + GoodnessOfFit = 687.0322265625 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_509 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 38.253779354541 + AprioriX = -1045312.3151921 + + # AprioriLongitude = 236.93780296944 + AprioriY = -1605820.8041456 + + # AprioriRadius = 2440000.0 + AprioriZ = 1510715.6279991 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 383.744140625 + Line = 349.00427246094 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 365.8108215332 + Line = 560.41137695312 + SampleResidual = -0.78836059570312 + LineResidual = -0.01629638671875 + GoodnessOfFit = 853.25866699219 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_510 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 35.967527548842 + AprioriX = -989759.50755161 + + # AprioriLongitude = 239.92115553075 + AprioriY = -1708878.6904654 + + # AprioriRadius = 2440000.0 + AprioriZ = 1433077.0176388 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 943.88311767578 + Line = 556.87078857422 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 774.22698974609 + Line = 710.03271484375 + SampleResidual = 1.1026000976562 + LineResidual = -0.0706787109375 + GoodnessOfFit = 814.31652832031 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_511 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 38.26995419329 + AprioriX = -1090402.0358167 + + # AprioriLongitude = 235.304970655 + AprioriY = -1575032.4573175 + + # AprioriRadius = 2440000.0 + AprioriZ = 1511256.4834214 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 156.41427612305 + Line = 451.75765991211 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 209.29811096191 + Line = 622.33636474609 + SampleResidual = 0.020492553710938 + LineResidual = -0.22705078125 + GoodnessOfFit = 741.49060058594 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_512 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 37.412436366665 + AprioriX = -978446.01276953 + + # AprioriLongitude = 239.67786831804 + AprioriY = -1672925.8858441 + + # AprioriRadius = 2440000.0 + AprioriZ = 1482417.7483315 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 804.20318603516 + Line = 320.32141113281 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 672.01055908203 + Line = 548.04852294922 + SampleResidual = 0.85546875 + LineResidual = 0.67193603515625 + GoodnessOfFit = 761.68957519531 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_513 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 38.284449060358 + AprioriX = -1033723.7678515 + + # AprioriLongitude = 237.33481259267 + AprioriY = -1612344.2978282 + + # AprioriRadius = 2440000.0 + AprioriZ = 1511741.0615048 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 434.56655883789 + Line = 317.52447509766 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 402.95349121094 + Line = 541.17095947266 + SampleResidual = 0.2208251953125 + LineResidual = 0.492431640625 + GoodnessOfFit = 811.18920898438 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_514 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 37.09151040361 + AprioriX = -1023207.041446 + + # AprioriLongitude = 238.28375181776 + AprioriY = -1655663.002517 + + # AprioriRadius = 2440000.0 + AprioriZ = 1471539.1168541 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 652.77313232422 + Line = 471.85192871094 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 556.39514160156 + Line = 646.46966552734 + SampleResidual = -0.16412353515625 + LineResidual = 0.70721435546875 + GoodnessOfFit = 603.17327880859 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_515 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 36.76002053446 + AprioriX = -1060314.0818494 + + # AprioriLongitude = 237.15184126535 + AprioriY = -1642252.270371 + + # AprioriRadius = 2440000.0 + AprioriZ = 1460253.925964 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 528.84906005859 + Line = 609.02514648438 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 463.54702758789 + Line = 733.50366210938 + SampleResidual = -1.1811828613281 + LineResidual = 0.451904296875 + GoodnessOfFit = 748.22546386719 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_516 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 36.669654580512 + AprioriX = -1080040.0405189 + + # AprioriLongitude = 236.50555996691 + AprioriY = -1632106.5953642 + + # AprioriRadius = 2440000.0 + AprioriZ = 1457169.0266556 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 447.98159790039 + Line = 669.83734130859 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 405.58505249023 + Line = 770.02178955078 + SampleResidual = -0.72030639648438 + LineResidual = -0.3165283203125 + GoodnessOfFit = 597.21557617188 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_517 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 35.91547224298 + AprioriX = -1013734.994727 + + # AprioriLongitude = 239.13654260635 + AprioriY = -1696281.9699896 + + # AprioriRadius = 2440000.0 + AprioriZ = 1431282.2358829 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 850.41558837891 + Line = 621.35296630859 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 700.54248046875 + Line = 751.50207519531 + SampleResidual = -0.2852783203125 + LineResidual = 0.51824951171875 + GoodnessOfFit = 657.86590576172 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_518 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 37.434492595168 + AprioriX = -1055396.2210627 + + # AprioriLongitude = 236.99402489158 + AprioriY = -1624796.6829603 + + # AprioriRadius = 2440000.0 + AprioriZ = 1483163.698183 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 455.73309326172 + Line = 496.53256225586 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 415.84616088867 + Line = 657.37780761719 + SampleResidual = 1.1795043945312 + LineResidual = -0.22821044921875 + GoodnessOfFit = 746.12518310547 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_519 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 37.678804865878 + AprioriX = -1054083.2055307 + + # AprioriLongitude = 236.91822511934 + AprioriY = -1618085.2028825 + + # AprioriRadius = 2440000.0 + AprioriZ = 1491411.7044032 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 426.44979858398 + Line = 456.63467407227 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 393.65625 + Line = 630.91418457031 + SampleResidual = -1.0505676269531 + LineResidual = -0.09283447265625 + GoodnessOfFit = 804.67419433594 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_520 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 36.552523558985 + AprioriX = -1162212.2023226 + + # AprioriLongitude = 233.63398361449 + AprioriY = -1578345.3946979 + + # AprioriRadius = 2440000.0 + AprioriZ = 1453165.0325439 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 45.333793640137 + Line = 887.87945556641 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 128.92245483398 + Line = 896.63830566406 + SampleResidual = 0.73150634765625 + LineResidual = 1.3463134765625 + GoodnessOfFit = 710.994140625 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_521 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 36.802516005877 + AprioriX = -1066718.4538358 + + # AprioriLongitude = 236.90742360043 + AprioriY = -1636806.3369354 + + # AprioriRadius = 2440000.0 + AprioriZ = 1461703.3747017 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 492.646484375 + Line = 618.03295898438 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 438.14883422852 + Line = 738.26055908203 + SampleResidual = -0.63119506835938 + LineResidual = 0.36761474609375 + GoodnessOfFit = 805.04626464844 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_522 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 38.765275718034 + AprioriX = -1034361.5199021 + + # AprioriLongitude = 237.06533656891 + AprioriY = -1596760.4466658 + + # AprioriRadius = 2440000.0 + AprioriZ = 1527760.5578458 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 359.94464111328 + Line = 245.70561218262 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 351.52322387695 + Line = 492.7698059082 + SampleResidual = -0.22116088867188 + LineResidual = -0.55426025390625 + GoodnessOfFit = 761.52331542969 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_523 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 38.198811245243 + AprioriX = -1036979.4909199 + + # AprioriLongitude = 237.26247028924 + AprioriY = -1612936.6500375 + + # AprioriRadius = 2440000.0 + AprioriZ = 1508876.7008531 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 431.7255859375 + Line = 338.04586791992 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 400.068359375 + Line = 554.1962890625 + SampleResidual = -0.32363891601562 + LineResidual = 0.20892333984375 + GoodnessOfFit = 713.39508056641 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_524 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 37.234220320762 + AprioriX = -1047796.9406072 + + # AprioriLongitude = 237.35962418456 + AprioriY = -1635853.5019274 + + # AprioriRadius = 2440000.0 + AprioriZ = 1476382.366288 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 520.30346679688 + Line = 508.59677124023 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 460.46722412109 + Line = 667.24291992188 + SampleResidual = 0.16177368164062 + LineResidual = 0.2669677734375 + GoodnessOfFit = 782.84033203125 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_525 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 39.125089311178 + AprioriX = -1009862.46936 + + # AprioriLongitude = 237.75734932208 + AprioriY = -1600990.1535975 + + # AprioriRadius = 2440000.0 + AprioriZ = 1539677.9926536 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 422.64175415039 + Line = 135.00080871582 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 398.29028320312 + Line = 421.86169433594 + SampleResidual = 0.90017700195312 + LineResidual = -0.088226318359375 + GoodnessOfFit = 670.28662109375 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_526 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 38.473113289396 + AprioriX = -1035208.4561325 + + # AprioriLongitude = 237.18586835194 + AprioriY = -1605459.3258029 + + # AprioriRadius = 2440000.0 + AprioriZ = 1518039.4611288 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 399.59448242188 + Line = 292.26251220703 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 378.95666503906 + Line = 524.02111816406 + SampleResidual = 0.34024047851562 + LineResidual = 0.16546630859375 + GoodnessOfFit = 1106.0013427734 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_527 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 37.254362265894 + AprioriX = -1134388.0309506 + + # AprioriLongitude = 234.26098429 + AprioriY = -1576401.6578592 + + # AprioriRadius = 2440000.0 + AprioriZ = 1477065.2011116 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 84.896896362305 + Line = 712.76031494141 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 156.35418701172 + Line = 786.98937988281 + SampleResidual = -0.88043212890625 + LineResidual = 0.80133056640625 + GoodnessOfFit = 734.46411132812 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_528 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 37.103679420724 + AprioriX = -1143556.4060307 + + # AprioriLongitude = 234.01017954017 + AprioriY = -1574558.5717088 + + # AprioriRadius = 2440000.0 + AprioriZ = 1471952.4620328 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 59.516872406006 + Line = 758.07464599609 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 139.18130493164 + Line = 814.78924560547 + SampleResidual = -0.50088500976562 + LineResidual = 0.82928466796875 + GoodnessOfFit = 799.91040039062 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_529 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 35.429367682988 + AprioriX = -1091621.6045367 + + # AprioriLongitude = 236.69787842894 + AprioriY = -1661700.9778208 + + # AprioriRadius = 2440000.0 + AprioriZ = 1414465.3169371 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 566.52044677734 + Line = 880.91381835938 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 487.23052978516 + Line = 912.24468994141 + SampleResidual = 0.050933837890625 + LineResidual = -0.88739013671875 + GoodnessOfFit = 626.8046875 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_530 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 35.62902213885 + AprioriX = -1035487.945037 + + # AprioriLongitude = 238.52558870156 + AprioriY = -1691457.9351735 + + # AprioriRadius = 2440000.0 + AprioriZ = 1421384.8068773 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 793.87475585938 + Line = 714.93951416016 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 657.32629394531 + Line = 811.23132324219 + SampleResidual = 0.59130859375 + LineResidual = -0.7978515625 + GoodnessOfFit = 725.04034423828 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_531 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 38.980187615375 + AprioriX = -1087412.6318263 + + # AprioriLongitude = 235.01947671146 + AprioriY = -1554110.3104163 + + # AprioriRadius = 2440000.0 + AprioriZ = 1534885.9603249 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 59.182689666748 + Line = 334.57727050781 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 147.12237548828 + Line = 546.05749511719 + SampleResidual = 0.71524047851562 + LineResidual = -0.7752685546875 + GoodnessOfFit = 804.42004394531 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_532 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 36.763182743907 + AprioriX = -1112445.9067219 + + # AprioriLongitude = 235.31205218855 + AprioriY = -1607298.1941239 + + # AprioriRadius = 2440000.0 + AprioriZ = 1460361.8112591 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 274.15435791016 + Line = 734.20520019531 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 284.20223999023 + Line = 806.18548583984 + SampleResidual = -0.25924682617188 + LineResidual = -0.00146484375 + GoodnessOfFit = 734.21533203125 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_533 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 37.822207969446 + AprioriX = -1054688.9948394 + + # AprioriLongitude = 236.82427881537 + AprioriY = -1613225.2874508 + + # AprioriRadius = 2440000.0 + AprioriZ = 1496240.387135 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 402.48962402344 + Line = 436.37680053711 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 377.22296142578 + Line = 617.24578857422 + SampleResidual = -1.0203552246094 + LineResidual = -0.13336181640625 + GoodnessOfFit = 668.43957519531 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_534 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 36.977370890727 + AprioriX = -1034818.7836452 + + # AprioriLongitude = 237.9350434105 + AprioriY = -1651886.0159711 + + # AprioriRadius = 2440000.0 + AprioriZ = 1467658.909711 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 616.14038085938 + Line = 516.13647460938 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 527.69769287109 + Line = 674.42742919922 + SampleResidual = -1.4525756835938 + LineResidual = 0.20306396484375 + GoodnessOfFit = 594.60559082031 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_535 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 38.606559685541 + AprioriX = -1014507.7049643 + + # AprioriLongitude = 237.85490090026 + AprioriY = -1614439.5278831 + + # AprioriRadius = 2440000.0 + AprioriZ = 1522484.5245114 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 477.50564575195 + Line = 224.52754211426 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 435.2861328125 + Line = 480.83627319336 + SampleResidual = 0.67562866210938 + LineResidual = 0.315185546875 + GoodnessOfFit = 788.96862792969 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_536 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 35.340444971618 + AprioriX = -1121203.5004694 + + # AprioriLongitude = 235.71489317181 + AprioriY = -1644540.9585548 + + # AprioriRadius = 2440000.0 + AprioriZ = 1411377.9600698 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 436.84140014648 + Line = 967.20428466797 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 393.96908569336 + Line = 964.39465332031 + SampleResidual = 0.47210693359375 + LineResidual = 0.77532958984375 + GoodnessOfFit = 709.87463378906 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_537 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 34.825255476561 + AprioriX = -1071324.2537215 + + # AprioriLongitude = 237.66541352384 + AprioriY = -1692404.652229 + + # AprioriRadius = 2440000.0 + AprioriZ = 1393424.140921 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 739.93975830078 + Line = 918.02117919922 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 613.85955810547 + Line = 945.23382568359 + SampleResidual = 0.71502685546875 + LineResidual = -0.5421142578125 + GoodnessOfFit = 662.0478515625 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_538 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 36.080486868442 + AprioriX = -1134932.7647512 + + # AprioriLongitude = 234.86337305211 + AprioriY = -1612653.6321306 + + # AprioriRadius = 2440000.0 + AprioriZ = 1436967.5995896 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 261.13116455078 + Line = 891.73767089844 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 273.12719726562 + Line = 907.19598388672 + SampleResidual = 0.18148803710938 + LineResidual = 0.37799072265625 + GoodnessOfFit = 608.41735839844 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_539 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 36.852643054968 + AprioriX = -1072213.3428352 + + # AprioriLongitude = 236.69021074827 + AprioriY = -1631681.2196105 + + # AprioriRadius = 2440000.0 + AprioriZ = 1463412.0899516 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 459.31323242188 + Line = 623.72296142578 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 414.12054443359 + Line = 741.0029296875 + SampleResidual = -0.95135498046875 + LineResidual = 0.3768310546875 + GoodnessOfFit = 680.91662597656 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_540 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 35.301813982401 + AprioriX = -1127291.2106422 + + # AprioriLongitude = 235.52133364989 + AprioriY = -1641527.9446457 + + # AprioriRadius = 2440000.0 + AprioriZ = 1410035.6496756 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 412.34191894531 + Line = 988.0390625 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 376.98858642578 + Line = 975.26165771484 + SampleResidual = 1.0380249023438 + LineResidual = -0.71929931640625 + GoodnessOfFit = 684.74255371094 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_541 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 38.488603393283 + AprioriX = -1028302.9782008 + + # AprioriLongitude = 237.4241056646 + AprioriY = -1609403.9578676 + + # AprioriRadius = 2440000.0 + AprioriZ = 1518555.8552201 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 430.13330078125 + Line = 274.02597045898 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 401.13830566406 + Line = 511.76901245117 + SampleResidual = 0.79916381835938 + LineResidual = -0.57278442382812 + GoodnessOfFit = 686.29223632812 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_542 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 37.665019181974 + AprioriX = -1043854.5134727 + + # AprioriLongitude = 237.28651663845 + AprioriY = -1625129.1461568 + + # AprioriRadius = 2440000.0 + AprioriZ = 1490947.0188489 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 477.04107666016 + Line = 434.71005249023 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 429.13006591797 + Line = 617.68237304688 + SampleResidual = -1.6411743164062 + LineResidual = -0.03778076171875 + GoodnessOfFit = 666.12719726562 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_543 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 36.40431125298 + AprioriX = -1023614.8754403 + + # AprioriLongitude = 238.58497488445 + AprioriY = -1675961.9186326 + + # AprioriRadius = 2440000.0 + AprioriZ = 1448089.8570429 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 743.90478515625 + Line = 573.89813232422 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 621.47827148438 + Line = 716.07946777344 + SampleResidual = -0.42388916015625 + LineResidual = 0.12713623046875 + GoodnessOfFit = 666.384765625 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_544 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 37.775584646096 + AprioriX = -1018013.6230374 + + # AprioriLongitude = 238.13990631682 + AprioriY = -1638049.2493682 + + # AprioriRadius = 2440000.0 + AprioriZ = 1494671.5090463 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 580.86608886719 + Line = 357.8684387207 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 506.5192565918 + Line = 568.81402587891 + SampleResidual = 0.23049926757812 + LineResidual = -0.3055419921875 + GoodnessOfFit = 585.2236328125 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_545 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 39.102442850274 + AprioriX = -1004281.7512997 + + # AprioriLongitude = 237.96837441641 + AprioriY = -1605214.4831017 + + # AprioriRadius = 2440000.0 + AprioriZ = 1538929.7018535 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 452.10989379883 + Line = 125.8832244873 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 419.23840332031 + Line = 415.81304931641 + SampleResidual = 0.94647216796875 + LineResidual = -0.27737426757812 + GoodnessOfFit = 759.71569824219 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_546 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 36.800820422723 + AprioriX = -1010105.7928567 + + # AprioriLongitude = 238.86842557498 + AprioriY = -1672387.0826 + + # AprioriRadius = 2440000.0 + AprioriZ = 1461645.5566211 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 750.01086425781 + Line = 483.88858032227 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 627.18725585938 + Line = 656.31518554688 + SampleResidual = -0.76776123046875 + LineResidual = 0.36004638671875 + GoodnessOfFit = 593.32238769531 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_547 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 35.73158497615 + AprioriX = -1022615.352367 + + # AprioriLongitude = 238.91626455261 + AprioriY = -1696297.37011 + + # AprioriRadius = 2440000.0 + AprioriZ = 1424932.6556932 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 836.17321777344 + Line = 669.14324951172 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 688.4169921875 + Line = 782.76763916016 + SampleResidual = -0.85272216796875 + LineResidual = 0.03717041015625 + GoodnessOfFit = 682.28503417969 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_548 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 35.43102799431 + AprioriX = -1089413.3527621 + + # AprioriLongitude = 236.7732124452 + AprioriY = -1663100.5465138 + + # AprioriRadius = 2440000.0 + AprioriZ = 1414522.929828 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 576.65997314453 + Line = 875.22882080078 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 494.63494873047 + Line = 909.76623535156 + SampleResidual = 0.0614013671875 + LineResidual = -0.0714111328125 + GoodnessOfFit = 651.45520019531 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_549 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 37.874957425213 + AprioriX = -1044286.6889764 + + # AprioriLongitude = 237.1665214919 + AprioriY = -1618338.2593688 + + # AprioriRadius = 2440000.0 + AprioriZ = 1498014.2153831 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 444.49639892578 + Line = 404.0627746582 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 407.22201538086 + Line = 596.81201171875 + SampleResidual = -1.0607299804688 + LineResidual = -0.33062744140625 + GoodnessOfFit = 625.35583496094 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_550 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 35.940826963902 + AprioriX = -1122553.5126767 + + # AprioriLongitude = 235.37220729075 + AprioriY = -1625546.4195315 + + # AprioriRadius = 2440000.0 + AprioriZ = 1432156.5728389 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 344.34878540039 + Line = 881.98547363281 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 328.81365966797 + Line = 904.62152099609 + SampleResidual = -1.5379028320312 + LineResidual = 0.51092529296875 + GoodnessOfFit = 682.66003417969 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_551 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 38.409517231045 + AprioriX = -1040718.9076687 + + # AprioriLongitude = 237.02176793187 + AprioriY = -1603900.3029724 + + # AprioriRadius = 2440000.0 + AprioriZ = 1515918.1948067 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 382.64990234375 + Line = 314.65740966797 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 366.42593383789 + Line = 537.94396972656 + SampleResidual = 0.01885986328125 + LineResidual = -0.22479248046875 + GoodnessOfFit = 538.68597412109 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_552 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 38.377756331848 + AprioriX = -1099741.9681917 + + # AprioriLongitude = 234.90469504297 + AprioriY = -1565047.1360833 + + # AprioriRadius = 2440000.0 + AprioriZ = 1514858.1006931 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 90.780494689941 + Line = 457.02313232422 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 165.72758483887 + Line = 623.86004638672 + SampleResidual = 0.38577270507812 + LineResidual = -0.78619384765625 + GoodnessOfFit = 826.35229492188 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_553 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 38.118574348988 + AprioriX = -985011.85360972 + + # AprioriLongitude = 239.12778940221 + AprioriY = -1647647.8838142 + + # AprioriRadius = 2440000.0 + AprioriZ = 1506189.9280008 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 680.04351806641 + Line = 230.70289611816 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 582.10302734375 + Line = 486.51541137695 + SampleResidual = 1.521484375 + LineResidual = 0.32949829101562 + GoodnessOfFit = 665.22875976562 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_554 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 37.109047322606 + AprioriX = -1006180.6062986 + + # AprioriLongitude = 238.86310609202 + AprioriY = -1665538.8914758 + + # AprioriRadius = 2440000.0 + AprioriZ = 1472134.7725294 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 725.69885253906 + Line = 429.35061645508 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 610.83544921875 + Line = 618.97723388672 + SampleResidual = -0.02618408203125 + LineResidual = -0.04522705078125 + GoodnessOfFit = 621.38317871094 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_555 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 37.025112872424 + AprioriX = -1018820.6551769 + + # AprioriLongitude = 238.46620813095 + AprioriY = -1660365.3358584 + + # AprioriRadius = 2440000.0 + AprioriZ = 1469282.6222564 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 681.42919921875 + Line = 471.35961914062 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 577.04968261719 + Line = 646.4248046875 + SampleResidual = -0.49365234375 + LineResidual = 0.36041259765625 + GoodnessOfFit = 526.01019287109 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_556 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 38.009091850976 + AprioriX = -1088249.0783744 + + # AprioriLongitude = 235.52427437445 + AprioriY = -1584850.2563589 + + # AprioriRadius = 2440000.0 + AprioriZ = 1502519.0875115 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 207.99391174316 + Line = 486.81707763672 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 243.6031036377 + Line = 645.22155761719 + SampleResidual = 0.11015319824219 + LineResidual = -0.7132568359375 + GoodnessOfFit = 735.56787109375 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_557 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 36.674095206645 + AprioriX = -1043443.4908717 + + # AprioriLongitude = 237.77892459431 + AprioriY = -1655609.2668981 + + # AprioriRadius = 2440000.0 + AprioriZ = 1457320.7048274 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 618.787109375 + Line = 581.47186279297 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 530.57556152344 + Line = 717.23352050781 + SampleResidual = 0.602783203125 + LineResidual = -0.24078369140625 + GoodnessOfFit = 709.84466552734 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_558 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 34.590780295234 + AprioriX = -1086356.5195294 + + # AprioriLongitude = 237.25969035426 + AprioriY = -1689558.357676 + + # AprioriRadius = 2440000.0 + AprioriZ = 1385215.5314186 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 702.64392089844 + Line = 988.84655761719 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 585.33575439453 + Line = 990.80853271484 + SampleResidual = 0.93109130859375 + LineResidual = -0.371826171875 + GoodnessOfFit = 538.96862792969 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_559 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 35.043605558586 + AprioriX = -1091183.9533353 + + # AprioriLongitude = 236.89126819565 + AprioriY = -1673315.3230676 + + # AprioriRadius = 2440000.0 + AprioriZ = 1401047.2545817 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 620.73449707031 + Line = 935.79827880859 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 524.94543457031 + Line = 951.66235351562 + SampleResidual = -0.481689453125 + LineResidual = -0.2054443359375 + GoodnessOfFit = 569.35101318359 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_560 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 36.420334400074 + AprioriX = -1162098.6730038 + + # AprioriLongitude = 233.70998952842 + AprioriY = -1582583.8759653 + + # AprioriRadius = 2440000.0 + AprioriZ = 1448638.9991083 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 66.58358001709 + Line = 907.68206787109 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 143.34521484375 + Line = 909.49963378906 + SampleResidual = 1.4458770751953 + LineResidual = 0.82470703125 + GoodnessOfFit = 641.71447753906 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_561 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 34.906126507638 + AprioriX = -1074106.108543 + + # AprioriLongitude = 237.53536392316 + AprioriY = -1688307.5174806 + + # AprioriRadius = 2440000.0 + AprioriZ = 1396249.9038528 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 716.95251464844 + Line = 913.31243896484 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 596.83947753906 + Line = 940.73651123047 + SampleResidual = 0.613037109375 + LineResidual = -0.79608154296875 + GoodnessOfFit = 659.38098144531 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_562 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 39.505457503127 + AprioriX = -1057277.9993969 + + # AprioriLongitude = 235.83345074714 + AprioriY = -1557692.7711894 + + # AprioriRadius = 2440000.0 + AprioriZ = 1552210.1863393 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 131.34733581543 + Line = 183.5399017334 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 197.70086669922 + Line = 451.11758422852 + SampleResidual = 0.8148193359375 + LineResidual = -0.86163330078125 + GoodnessOfFit = 739.61022949219 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_563 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 35.014672962311 + AprioriX = -1108243.1880832 + + # AprioriLongitude = 236.3186996006 + AprioriY = -1662916.0374166 + + # AprioriRadius = 2440000.0 + AprioriZ = 1400038.316822 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 544.51422119141 + Line = 982.39520263672 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 470.63354492188 + Line = 978.45556640625 + SampleResidual = 0.95245361328125 + LineResidual = -0.40069580078125 + GoodnessOfFit = 615.66613769531 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_564 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 38.220800905314 + AprioriX = -1051024.6540779 + + # AprioriLongitude = 236.75079177358 + AprioriY = -1603127.3243526 + + # AprioriRadius = 2440000.0 + AprioriZ = 1509612.5193024 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 361.04254150391 + Line = 367.28817749023 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 350.86962890625 + Line = 571.29010009766 + SampleResidual = 0.38214111328125 + LineResidual = -0.6348876953125 + GoodnessOfFit = 718.44116210938 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_565 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 37.183201863359 + AprioriX = -1049137.6935508 + + # AprioriLongitude = 237.33749696702 + AprioriY = -1636554.8196905 + + # AprioriRadius = 2440000.0 + AprioriZ = 1474651.9664378 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 521.28894042969 + Line = 519.39025878906 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 460.98785400391 + Line = 674.37023925781 + SampleResidual = 0.1595458984375 + LineResidual = 0.29644775390625 + GoodnessOfFit = 654.33953857422 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_566 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 36.113697794983 + AprioriX = -982599.76880736 + + # AprioriLongitude = 240.09983630161 + AprioriY = -1708782.073106 + + # AprioriRadius = 2440000.0 + AprioriZ = 1438110.3994379 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 954.82373046875 + Line = 518.96392822266 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 783.92022705078 + Line = 684.32580566406 + SampleResidual = 1.7382202148438 + LineResidual = -0.2874755859375 + GoodnessOfFit = 608.75775146484 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_567 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 35.378723646138 + AprioriX = -1095566.6411886 + + # AprioriLongitude = 236.58550533439 + AprioriY = -1660599.7557359 + + # AprioriRadius = 2440000.0 + AprioriZ = 1412707.3957351 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 554.85668945312 + Line = 898.02905273438 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 478.56173706055 + Line = 923.75677490234 + SampleResidual = 0.04925537109375 + LineResidual = -0.1148681640625 + GoodnessOfFit = 666.38647460938 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_568 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 36.837966654091 + AprioriX = -1059154.7787272 + + # AprioriLongitude = 237.1546626241 + AprioriY = -1640633.982731 + + # AprioriRadius = 2440000.0 + AprioriZ = 1462911.9212746 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 523.28839111328 + Line = 594.66638183594 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 459.99621582031 + Line = 724.44769287109 + SampleResidual = -0.99960327148438 + LineResidual = 0.97247314453125 + GoodnessOfFit = 700.34191894531 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_569 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 35.418045616658 + AprioriX = -1031229.9594534 + + # AprioriLongitude = 238.76123330802 + AprioriY = -1700165.8721758 + + # AprioriRadius = 2440000.0 + AprioriZ = 1414072.4089715 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 839.40264892578 + Line = 735.00421142578 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 691.39489746094 + Line = 827.04547119141 + SampleResidual = 0.80902099609375 + LineResidual = -0.18084716796875 + GoodnessOfFit = 613.453125 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_570 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 38.55728344895 + AprioriX = -1088136.1865446 + + # AprioriLongitude = 235.22963765341 + AprioriY = -1567352.1755137 + + # AprioriRadius = 2440000.0 + AprioriZ = 1520844.1068843 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 122.92887115479 + Line = 402.03280639648 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 188.08598327637 + Line = 590.28747558594 + SampleResidual = 0.42108154296875 + LineResidual = -0.11773681640625 + GoodnessOfFit = 701.89221191406 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_571 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 37.164906805812 + AprioriX = -1040234.3348565 + + # AprioriLongitude = 237.65744986628 + AprioriY = -1642785.637668 + + # AprioriRadius = 2440000.0 + AprioriZ = 1474031.165633 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 565.19793701172 + Line = 501.07107543945 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 490.94604492188 + Line = 663.43908691406 + SampleResidual = -1.65478515625 + LineResidual = 0.3572998046875 + GoodnessOfFit = 712.57971191406 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_572 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 36.194100987366 + AprioriX = -1008653.6738287 + + # AprioriLongitude = 239.18733245356 + AprioriY = -1691182.0456088 + + # AprioriRadius = 2440000.0 + AprioriZ = 1440875.1003756 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 836.08319091797 + Line = 568.94934082031 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 690.47265625 + Line = 714.26208496094 + SampleResidual = -0.4298095703125 + LineResidual = -0.9727783203125 + GoodnessOfFit = 603.35687255859 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_573 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 36.08395973722 + AprioriX = -1068451.4174066 + + # AprioriLongitude = 237.1910730258 + AprioriY = -1657344.9140773 + + # AprioriRadius = 2440000.0 + AprioriZ = 1437087.124855 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 585.02203369141 + Line = 728.49542236328 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 502.71524047852 + Line = 813.28076171875 + SampleResidual = -0.35113525390625 + LineResidual = -0.17144775390625 + GoodnessOfFit = 616.05200195312 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_574 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 38.402031559074 + AprioriX = -1030150.9977943 + + # AprioriLongitude = 237.40227729054 + AprioriY = -1610943.2853162 + + # AprioriRadius = 2440000.0 + AprioriZ = 1515668.3849834 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 434.16345214844 + Line = 291.4333190918 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 404.48385620117 + Line = 523.146484375 + SampleResidual = 1.5999450683594 + LineResidual = -0.5576171875 + GoodnessOfFit = 703.46551513672 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_575 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 37.321578201798 + AprioriX = -1059993.4348893 + + # AprioriLongitude = 236.8880811289 + AprioriY = -1625287.5007557 + + # AprioriRadius = 2440000.0 + AprioriZ = 1479342.5762408 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 450.16659545898 + Line = 524.37225341797 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 410.97277832031 + Line = 676.35870361328 + SampleResidual = 0.6990966796875 + LineResidual = 0.7398681640625 + GoodnessOfFit = 459.00057983398 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_576 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 37.431198070512 + AprioriX = -1028341.1022125 + + # AprioriLongitude = 237.94459695095 + AprioriY = -1642154.2200253 + + # AprioriRadius = 2440000.0 + AprioriZ = 1483052.2900941 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 582.33172607422 + Line = 433.41003417969 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 505.4375 + Line = 619.58374023438 + SampleResidual = -0.64108276367188 + LineResidual = 0.6802978515625 + GoodnessOfFit = 641.02783203125 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_577 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 36.686264078152 + AprioriX = -1123809.5100078 + + # AprioriLongitude = 234.94626329249 + AprioriY = -1601766.8469354 + + # AprioriRadius = 2440000.0 + AprioriZ = 1457736.3112972 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 227.6608581543 + Line = 773.45135498047 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 252.12214660645 + Line = 830.14495849609 + SampleResidual = 0.021713256835938 + LineResidual = 0.44915771484375 + GoodnessOfFit = 583.99444580078 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_578 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 37.909655113187 + AprioriX = -1035896.0851684 + + # AprioriLongitude = 237.44585558054 + AprioriY = -1622645.2717161 + + # AprioriRadius = 2440000.0 + AprioriZ = 1499180.31701 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 479.06173706055 + Line = 379.26702880859 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 432.69122314453 + Line = 582.46124267578 + SampleResidual = -0.43829345703125 + LineResidual = 0.9058837890625 + GoodnessOfFit = 570.31097412109 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_579 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 37.340539507943 + AprioriX = -1092267.178629 + + # AprioriLongitude = 235.73295260678 + AprioriY = -1603183.6639431 + + # AprioriRadius = 2440000.0 + AprioriZ = 1479984.6452433 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 289.43496704102 + Line = 598.31774902344 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 296.37548828125 + Line = 720.06744384766 + SampleResidual = -0.81427001953125 + LineResidual = 0.725341796875 + GoodnessOfFit = 571.46234130859 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_580 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 37.334380791007 + AprioriX = -1076518.5614926 + + # AprioriLongitude = 236.29706019427 + AprioriY = -1613992.0795604 + + # AprioriRadius = 2440000.0 + AprioriZ = 1479776.1161331 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 368.39797973633 + Line = 561.68566894531 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 351.62564086914 + Line = 698.71478271484 + SampleResidual = -0.74526977539062 + LineResidual = 0.90338134765625 + GoodnessOfFit = 593.79772949219 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_581 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 36.944138188243 + AprioriX = -1135284.0075537 + + # AprioriLongitude = 234.3969216149 + AprioriY = -1585567.9347885 + + # AprioriRadius = 2440000.0 + AprioriZ = 1466528.0584985 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 128.47253417969 + Line = 762.31018066406 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 185.66738891602 + Line = 819.25830078125 + SampleResidual = 0.22486877441406 + LineResidual = 0.211669921875 + GoodnessOfFit = 485.92413330078 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_582 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 35.346684885912 + AprioriX = -1099170.6295851 + + # AprioriLongitude = 236.47613491865 + AprioriY = -1659163.7287732 + + # AprioriRadius = 2440000.0 + AprioriZ = 1411594.7181046 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 542.19250488281 + Line = 911.60729980469 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 469.66696166992 + Line = 932.06781005859 + SampleResidual = 0.4619140625 + LineResidual = -0.15185546875 + GoodnessOfFit = 563.75872802734 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_583 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 37.403037755219 + AprioriX = -1097217.1219981 + + # AprioriLongitude = 235.52310228049 + AprioriY = -1597840.642718 + + # AprioriRadius = 2440000.0 + AprioriZ = 1482099.817041 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 255.06575012207 + Line = 600.66290283203 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 273.05450439453 + Line = 720.63244628906 + SampleResidual = -0.56719970703125 + LineResidual = 0.72491455078125 + GoodnessOfFit = 545.42395019531 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_584 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 36.521993565841 + AprioriX = -1162333.1778086 + + # AprioriLongitude = 233.6462470302 + AprioriY = -1579217.5047502 + + # AprioriRadius = 2440000.0 + AprioriZ = 1452120.4001239 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 49.456256866455 + Line = 892.82135009766 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 132.6302947998 + Line = 899.07891845703 + SampleResidual = 1.8017272949219 + LineResidual = 0.50048828125 + GoodnessOfFit = 509.65133666992 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_585 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 38.105391556103 + AprioriX = -990695.75096463 + + # AprioriLongitude = 238.93616130641 + AprioriY = -1644641.0697819 + + # AprioriRadius = 2440000.0 + AprioriZ = 1505748.2128853 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 656.91796875 + Line = 245.64292907715 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 564.11932373047 + Line = 496.71929931641 + SampleResidual = 0.724853515625 + LineResidual = 0.82138061523438 + GoodnessOfFit = 657.75402832031 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_586 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 37.339036777343 + AprioriX = -1024415.476554 + + # AprioriLongitude = 238.12529199557 + AprioriY = -1647412.8143405 + + # AprioriRadius = 2440000.0 + AprioriZ = 1479933.7655933 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 613.07293701172 + Line = 437.94909667969 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 527.91204833984 + Line = 622.67510986328 + SampleResidual = -0.3270263671875 + LineResidual = 0.17333984375 + GoodnessOfFit = 449.3876953125 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_587 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 36.754582378239 + AprioriX = -970027.18899101 + + # AprioriLongitude = 240.25160553611 + AprioriY = -1697305.9752217 + + # AprioriRadius = 2440000.0 + AprioriZ = 1460068.3816503 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 924.98699951172 + Line = 396.99371337891 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 761.18225097656 + Line = 601.47857666016 + SampleResidual = -0.17626953125 + LineResidual = 0.41400146484375 + GoodnessOfFit = 593.11511230469 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_588 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 36.834167534736 + AprioriX = -989769.16210361 + + # AprioriLongitude = 239.54796124748 + AprioriY = -1683515.536339 + + # AprioriRadius = 2440000.0 + AprioriZ = 1462782.4324396 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 832.73022460938 + Line = 431.3557434082 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 692.13989257812 + Line = 622.70825195312 + SampleResidual = 1.4292602539062 + LineResidual = 0.205078125 + GoodnessOfFit = 557.32366943359 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_589 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 35.38777777625 + AprioriX = -1102216.1433606 + + # AprioriLongitude = 236.35149277792 + AprioriY = -1655925.4469728 + + # AprioriRadius = 2440000.0 + AprioriZ = 1413021.7575761 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 522.05285644531 + Line = 913.15057373047 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 454.88104248047 + Line = 932.33410644531 + SampleResidual = 0.10086059570312 + LineResidual = 0.02862548828125 + GoodnessOfFit = 559.03149414062 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_590 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 38.395153317374 + AprioriX = -1045531.8232861 + + # AprioriLongitude = 236.85710465071 + AprioriY = -1601220.9026787 + + # AprioriRadius = 2440000.0 + AprioriZ = 1515438.8233514 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 361.57427978516 + Line = 327.97021484375 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 351.3327331543 + Line = 546.22229003906 + SampleResidual = -0.1776123046875 + LineResidual = -0.2923583984375 + GoodnessOfFit = 409.29174804688 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_591 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 37.560027531261 + AprioriX = -1064925.4683579 + + # AprioriLongitude = 236.59389974522 + AprioriY = -1614670.1438442 + + # AprioriRadius = 2440000.0 + AprioriZ = 1487405.1477055 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 391.63748168945 + Line = 500.12051391602 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 368.50015258789 + Line = 659.06817626953 + SampleResidual = -1.0950012207031 + LineResidual = 0.57269287109375 + GoodnessOfFit = 528.37170410156 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_592 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 38.558620775829 + AprioriX = -1036165.534137 + + # AprioriLongitude = 237.10772917871 + AprioriY = -1602141.9180293 + + # AprioriRadius = 2440000.0 + AprioriZ = 1520888.6416697 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 382.26528930664 + Line = 281.42761230469 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 366.91397094727 + Line = 516.61401367188 + SampleResidual = 0.22259521484375 + LineResidual = -0.0322265625 + GoodnessOfFit = 562.67297363281 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_593 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 38.224021729837 + AprioriX = -1076311.4394163 + + # AprioriLongitude = 235.84056049432 + AprioriY = -1586158.3697178 + + # AprioriRadius = 2440000.0 + AprioriZ = 1509720.2759305 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 235.43020629883 + Line = 425.78765869141 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 262.35250854492 + Line = 607.90209960938 + SampleResidual = -0.77731323242188 + LineResidual = 0.4366455078125 + GoodnessOfFit = 542.86254882812 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_594 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 38.624948599145 + AprioriX = -1066918.2676993 + + # AprioriLongitude = 235.96524179044 + AprioriY = -1579703.3721497 + + # AprioriRadius = 2440000.0 + AprioriZ = 1523096.4073453 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 220.89501953125 + Line = 342.23849487305 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 255.11703491211 + Line = 553.8095703125 + SampleResidual = 0.487548828125 + LineResidual = -0.00762939453125 + GoodnessOfFit = 527.58508300781 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_595 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 35.26461578373 + AprioriX = -1121954.4560385 + + # AprioriLongitude = 235.7253444655 + AprioriY = -1646287.5552978 + + # AprioriRadius = 2440000.0 + AprioriZ = 1408742.5186481 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 443.81463623047 + Line = 980.17663574219 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 398.10983276367 + Line = 971.37139892578 + SampleResidual = -0.07891845703125 + LineResidual = -1.0398559570312 + GoodnessOfFit = 552.79705810547 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_596 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 37.128432373509 + AprioriX = -1016745.1622272 + + # AprioriLongitude = 238.48998383368 + AprioriY = -1658526.4343416 + + # AprioriRadius = 2440000.0 + AprioriZ = 1472793.0410202 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 676.53375244141 + Line = 451.21713256836 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 573.91687011719 + Line = 632.44750976562 + SampleResidual = -0.3751220703125 + LineResidual = -0.13153076171875 + GoodnessOfFit = 507.47125244141 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_597 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 37.059995867097 + AprioriX = -1141199.4089464 + + # AprioriLongitude = 234.1197931214 + AprioriY = -1577652.2842415 + + # AprioriRadius = 2440000.0 + AprioriZ = 1470468.353637 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 79.009498596191 + Line = 759.02648925781 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 152.9701385498 + Line = 815.04876708984 + SampleResidual = 0.40065002441406 + LineResidual = -0.18817138671875 + GoodnessOfFit = 496.98123168945 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_598 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 37.813044685532 + AprioriX = -1061547.6563337 + + # AprioriLongitude = 236.58503714449 + AprioriY = -1609007.0432215 + + # AprioriRadius = 2440000.0 + AprioriZ = 1495932.1201833 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 370.64831542969 + Line = 453.86157226562 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 355.99517822266 + Line = 627.9013671875 + SampleResidual = 0.26556396484375 + LineResidual = -0.1871337890625 + GoodnessOfFit = 511.60498046875 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_599 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 37.043838906612 + AprioriX = -1023432.5370882 + + # AprioriLongitude = 238.29820032496 + AprioriY = -1656962.0789078 + + # AprioriRadius = 2440000.0 + AprioriZ = 1469919.2192398 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 658.31121826172 + Line = 479.43728637695 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 560.29644775391 + Line = 650.78466796875 + SampleResidual = -0.1807861328125 + LineResidual = -0.12921142578125 + GoodnessOfFit = 567.93115234375 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_600 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 36.51837990172 + AprioriX = -1117686.5025921 + + # AprioriLongitude = 235.25162975223 + AprioriY = -1611236.2927037 + + # AprioriRadius = 2440000.0 + AprioriZ = 1451996.7255465 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 284.0549621582 + Line = 783.78894042969 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 289.82632446289 + Line = 837.91302490234 + SampleResidual = -0.59817504882812 + LineResidual = -0.48931884765625 + GoodnessOfFit = 499.50122070312 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_601 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 37.000448242583 + AprioriX = -1089332.0817325 + + # AprioriLongitude = 236.01220971585 + AprioriY = -1615743.8299001 + + # AprioriRadius = 2440000.0 + AprioriZ = 1468443.9014985 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 354.6100769043 + Line = 642.65093994141 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 340.79006958008 + Line = 749.82092285156 + SampleResidual = -0.65399169921875 + LineResidual = 0.02655029296875 + GoodnessOfFit = 667.98083496094 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_602 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 36.31028187011 + AprioriX = -1135209.8051861 + + # AprioriLongitude = 234.73488286272 + AprioriY = -1605385.8639155 + + # AprioriRadius = 2440000.0 + AprioriZ = 1444865.020045 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 225.4320526123 + Line = 857.98870849609 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 249.16944885254 + Line = 884.03784179688 + SampleResidual = -0.019515991210938 + LineResidual = 0.340087890625 + GoodnessOfFit = 456.67663574219 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_603 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 35.739046014556 + AprioriX = -1017284.8858447 + + # AprioriLongitude = 239.09292807546 + AprioriY = -1699283.1728318 + + # AprioriRadius = 2440000.0 + AprioriZ = 1425190.5695599 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 857.93780517578 + Line = 655.27917480469 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 704.79833984375 + Line = 774.01806640625 + SampleResidual = -1.139892578125 + LineResidual = -0.1005859375 + GoodnessOfFit = 488.01486206055 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_604 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 37.801785124793 + AprioriX = -995982.81874061 + + # AprioriLongitude = 238.89507582012 + AprioriY = -1650738.8087908 + + # AprioriRadius = 2440000.0 + AprioriZ = 1495553.2788655 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 675.75659179688 + Line = 303.05752563477 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 576.39721679688 + Line = 534.58380126953 + SampleResidual = 0.178955078125 + LineResidual = 0.39959716796875 + GoodnessOfFit = 405.71444702148 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_605 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 34.955655178529 + AprioriX = -1056763.6147429 + + # AprioriLongitude = 238.10049063826 + AprioriY = -1697794.1519222 + + # AprioriRadius = 2440000.0 + AprioriZ = 1397979.1415663 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 787.67761230469 + Line = 863.4921875 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 650.43969726562 + Line = 911.49761962891 + SampleResidual = 0.854736328125 + LineResidual = 0.01519775390625 + GoodnessOfFit = 440.17977905273 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_606 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 38.625288220683 + AprioriX = -1067505.9425352 + + # AprioriLongitude = 235.94374074617 + AprioriY = -1579295.4051331 + + # AprioriRadius = 2440000.0 + AprioriZ = 1523107.706624 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 217.87882995605 + Line = 343.5478515625 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 252.58840942383 + Line = 554.68981933594 + SampleResidual = 0.027938842773438 + LineResidual = 0.076904296875 + GoodnessOfFit = 498.63928222656 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_607 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 36.127744910763 + AprioriX = -1128047.3131029 + + # AprioriLongitude = 235.08359175929 + AprioriY = -1616031.4523403 + + # AprioriRadius = 2440000.0 + AprioriZ = 1438593.6203279 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 289.28387451172 + Line = 867.69396972656 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 293.1891784668 + Line = 892.69213867188 + SampleResidual = 0.5679931640625 + LineResidual = 0.12945556640625 + GoodnessOfFit = 425.55352783203 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_608 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 37.951278426871 + AprioriX = -1012254.7406692 + + # AprioriLongitude = 238.25675602102 + AprioriY = -1636216.5710434 + + # AprioriRadius = 2440000.0 + AprioriZ = 1500578.4460119 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 582.16760253906 + Line = 318.21884155273 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 507.50637817383 + Line = 542.04638671875 + SampleResidual = -0.38650512695312 + LineResidual = -0.97784423828125 + GoodnessOfFit = 583.38244628906 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_609 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 35.429864322658 + AprioriX = -1107789.4297438 + + # AprioriLongitude = 236.13836952356 + AprioriY = -1650951.7539052 + + # AprioriRadius = 2440000.0 + AprioriZ = 1414482.5504845 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 489.50433349609 + Line = 920.79992675781 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 432.04000854492 + Line = 936.0078125 + SampleResidual = 0.5546875 + LineResidual = 0.191650390625 + GoodnessOfFit = 514.48602294922 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_610 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 36.925852192522 + AprioriX = -978385.15225475 + + # AprioriLongitude = 239.89478191624 + AprioriY = -1687448.738251 + + # AprioriRadius = 2440000.0 + AprioriZ = 1465905.6073372 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 868.46673583984 + Line = 391.47491455078 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 720.20794677734 + Line = 597.05120849609 + SampleResidual = 1.8145751953125 + LineResidual = 0.75299072265625 + GoodnessOfFit = 391.86010742188 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_611 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 38.25718384445 + AprioriX = -1096206.3494455 + + # AprioriLongitude = 235.10058084063 + AprioriY = -1571408.8993963 + + # AprioriRadius = 2440000.0 + AprioriZ = 1510829.4775829 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 128.34056091309 + Line = 467.369140625 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 191.12757873535 + Line = 632.73565673828 + SampleResidual = 0.92044067382812 + LineResidual = 0.80584716796875 + GoodnessOfFit = 464.21740722656 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_612 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 36.323075589158 + AprioriX = -1095223.1842854 + + # AprioriLongitude = 236.14347719738 + AprioriY = -1632538.6542214 + + # AprioriRadius = 2440000.0 + AprioriZ = 1445304.0230611 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 424.16952514648 + Line = 758.20654296875 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 387.24133300781 + Line = 827.05718994141 + SampleResidual = -0.8365478515625 + LineResidual = 0.009521484375 + GoodnessOfFit = 444.21398925781 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_613 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 38.290301657498 + AprioriX = -1086797.3819751 + + # AprioriLongitude = 235.42493035169 + AprioriY = -1576869.9657553 + + # AprioriRadius = 2440000.0 + AprioriZ = 1511936.6923356 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 171.79206848145 + Line = 440.16235351562 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 219.83842468262 + Line = 615.38330078125 + SampleResidual = 0.027297973632812 + LineResidual = -0.09393310546875 + GoodnessOfFit = 384.88385009766 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_614 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 37.643480632515 + AprioriX = -1062528.7545297 + + # AprioriLongitude = 236.63661798419 + AprioriY = -1613652.5428153 + + # AprioriRadius = 2440000.0 + AprioriZ = 1490220.8282209 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 390.96151733398 + Line = 481.84994506836 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 368.76544189453 + Line = 646.06201171875 + SampleResidual = -0.66162109375 + LineResidual = -0.57421875 + GoodnessOfFit = 369.28094482422 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_615 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 35.938166113117 + AprioriX = -1087174.1554345 + + # AprioriLongitude = 236.6113601903 + AprioriY = -1649497.7059913 + + # AprioriRadius = 2440000.0 + AprioriZ = 1432064.8287298 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 517.31341552734 + Line = 795.49822998047 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 452.07467651367 + Line = 854.31762695312 + SampleResidual = -1.2943725585938 + LineResidual = -0.62841796875 + GoodnessOfFit = 430.75573730469 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_616 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 36.752854789282 + AprioriX = -1096434.8721978 + + # AprioriLongitude = 235.8860833009 + AprioriY = -1618580.5570825 + + # AprioriRadius = 2440000.0 + AprioriZ = 1460009.4353336 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 355.88833618164 + Line = 696.96856689453 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 339.60659790039 + Line = 785.11077880859 + SampleResidual = -1.8218994140625 + LineResidual = 0.15777587890625 + GoodnessOfFit = 449.67852783203 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_617 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 38.26043259896 + AprioriX = -1029153.2657386 + + # AprioriLongitude = 237.50915142516 + AprioriY = -1616016.5749599 + + # AprioriRadius = 2440000.0 + AprioriZ = 1510938.1142438 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 459.65948486328 + Line = 310.61581420898 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 419.00625610352 + Line = 536.89611816406 + SampleResidual = -1.5364074707031 + LineResidual = 0.4029541015625 + GoodnessOfFit = 445.44781494141 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_618 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 38.451658732027 + AprioriX = -1058692.6743424 + + # AprioriLongitude = 236.3550855036 + AprioriY = -1590753.7706677 + + # AprioriRadius = 2440000.0 + AprioriZ = 1517324.0466031 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 288.61273193359 + Line = 349.81134033203 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 301.25790405273 + Line = 558.77740478516 + SampleResidual = 0.51580810546875 + LineResidual = -0.8250732421875 + GoodnessOfFit = 388.1901550293 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_619 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 35.116569323425 + AprioriX = -1050724.095525 + + # AprioriLongitude = 238.23431702853 + AprioriY = -1696913.0257566 + + # AprioriRadius = 2440000.0 + AprioriZ = 1403590.0605592 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 793.51385498047 + Line = 825.65838623047 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 654.25256347656 + Line = 886.13311767578 + SampleResidual = -0.336181640625 + LineResidual = -0.21112060546875 + GoodnessOfFit = 398.37197875977 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_620 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 34.860383212479 + AprioriX = -1037995.715704 + + # AprioriLongitude = 238.77204267511 + AprioriY = -1712048.7633141 + + # AprioriRadius = 2440000.0 + AprioriZ = 1394651.9014487 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 880.90246582031 + Line = 831.08447265625 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 720.94860839844 + Line = 894.66595458984 + SampleResidual = 0.5936279296875 + LineResidual = 0.85552978515625 + GoodnessOfFit = 437.54656982422 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_621 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 36.746847489672 + AprioriX = -991932.57223657 + + # AprioriLongitude = 239.51278041621 + AprioriY = -1684826.617941 + + # AprioriRadius = 2440000.0 + AprioriZ = 1459804.4525256 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 835.02392578125 + Line = 449.15731811523 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 693.32879638672 + Line = 634.50079345703 + SampleResidual = 1.1919555664062 + LineResidual = -0.034912109375 + GoodnessOfFit = 425.61050415039 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_622 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 36.47476176004 + AprioriX = -1004220.6562611 + + # AprioriLongitude = 239.21471874993 + AprioriY = -1685580.1786656 + + # AprioriRadius = 2440000.0 + AprioriZ = 1450503.4763241 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 818.44897460938 + Line = 517.68286132812 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 678.03564453125 + Line = 681.1318359375 + SampleResidual = -0.46636962890625 + LineResidual = 0.871337890625 + GoodnessOfFit = 448.36199951172 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_623 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 35.161065585219 + AprioriX = -1031756.8240882 + + # AprioriLongitude = 238.85363412497 + AprioriY = -1707237.6579926 + + # AprioriRadius = 2440000.0 + AprioriZ = 1405139.6496717 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 869.73980712891 + Line = 773.06372070312 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 713.85565185547 + Line = 853.49102783203 + SampleResidual = 0.982666015625 + LineResidual = -0.61444091796875 + GoodnessOfFit = 401.8427734375 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_624 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 36.719676550213 + AprioriX = -1048158.4144246 + + # AprioriLongitude = 237.59405309516 + AprioriY = -1651254.52136 + + # AprioriRadius = 2440000.0 + AprioriZ = 1458877.1174979 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 590.91046142578 + Line = 585.97381591797 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 508.91799926758 + Line = 719.09558105469 + SampleResidual = -0.79290771484375 + LineResidual = -0.5694580078125 + GoodnessOfFit = 437.20739746094 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_625 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 37.739679140296 + AprioriX = -978637.61744665 + + # AprioriLongitude = 239.52356425973 + AprioriY = -1662960.5651941 + + # AprioriRadius = 2440000.0 + AprioriZ = 1493462.611627 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 759.48260498047 + Line = 272.46102905273 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 640.23693847656 + Line = 514.14727783203 + SampleResidual = 1.668212890625 + LineResidual = -0.6173095703125 + GoodnessOfFit = 540.96606445312 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_626 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 37.773980413903 + AprioriX = -1065159.8475074 + + # AprioriLongitude = 236.47639060359 + AprioriY = -1607841.0995312 + + # AprioriRadius = 2440000.0 + AprioriZ = 1494617.5089019 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 358.84335327148 + Line = 468.28115844727 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 346.64819335938 + Line = 636.35864257812 + SampleResidual = -0.633056640625 + LineResidual = -0.81707763671875 + GoodnessOfFit = 354.30471801758 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_627 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 35.965308466027 + AprioriX = -1108336.8799027 + + # AprioriLongitude = 235.85976704779 + AprioriY = -1634533.2170344 + + # AprioriRadius = 2440000.0 + AprioriZ = 1433000.5314231 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 411.30447387695 + Line = 843.349609375 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 377.66217041016 + Line = 881.10461425781 + SampleResidual = 0.0263671875 + LineResidual = -0.79248046875 + GoodnessOfFit = 311.08673095703 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_628 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 35.671203668155 + AprioriX = -1031167.1423911 + + # AprioriLongitude = 238.65341348479 + AprioriY = -1692869.7091564 + + # AprioriRadius = 2440000.0 + AprioriZ = 1422844.5003842 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 807.15734863281 + Line = 698.42694091797 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 666.99163818359 + Line = 801.08807373047 + SampleResidual = 0.0294189453125 + LineResidual = -0.3311767578125 + GoodnessOfFit = 383.41256713867 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_629 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 38.252629465158 + AprioriX = -1053025.7056401 + + # AprioriLongitude = 236.66275244528 + AprioriY = -1600809.5893136 + + # AprioriRadius = 2440000.0 + AprioriZ = 1510677.1733308 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 346.54266357422 + Line = 367.08786010742 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 340.65823364258 + Line = 571.91851806641 + SampleResidual = 0.23257446289062 + LineResidual = 0.34259033203125 + GoodnessOfFit = 463.89193725586 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_630 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 36.097170995795 + AprioriX = -1101504.419921 + + # AprioriLongitude = 236.03439719291 + AprioriY = -1635164.1146251 + + # AprioriRadius = 2440000.0 + AprioriZ = 1437541.7667451 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 425.88854980469 + Line = 807.06469726562 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 387.72546386719 + Line = 859.20672607422 + SampleResidual = -0.7447509765625 + LineResidual = 0.31231689453125 + GoodnessOfFit = 440.56408691406 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_631 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 36.329395575417 + AprioriX = -990720.83067128 + + # AprioriLongitude = 239.73513851917 + AprioriY = -1697804.9589203 + + # AprioriRadius = 2440000.0 + AprioriZ = 1445520.8601537 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 894.07763671875 + Line = 506.96801757812 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 737.57171630859 + Line = 674.5458984375 + SampleResidual = 1.6844482421875 + LineResidual = -0.3818359375 + GoodnessOfFit = 432.77984619141 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_632 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 35.687965158523 + AprioriX = -1012245.5038276 + + # AprioriLongitude = 239.28452146594 + AprioriY = -1703767.0761763 + + # AprioriRadius = 2440000.0 + AprioriZ = 1423424.318367 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 885.73297119141 + Line = 650.55145263672 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 727.07238769531 + Line = 772.08563232422 + SampleResidual = -0.02392578125 + LineResidual = 0.2318115234375 + GoodnessOfFit = 411.73712158203 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_633 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 37.826922183127 + AprioriX = -1059982.7825843 + + # AprioriLongitude = 236.63365054899 + AprioriY = -1609604.4968623 + + # AprioriRadius = 2440000.0 + AprioriZ = 1496398.965619 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 376.19515991211 + Line = 448.08181762695 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 359.21987915039 + Line = 624.73419189453 + SampleResidual = -0.46856689453125 + LineResidual = 0.277099609375 + GoodnessOfFit = 374.04437255859 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_634 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 35.970042821402 + AprioriX = -1093817.810846 + + # AprioriLongitude = 236.36490578827 + AprioriY = -1644142.4441089 + + # AprioriRadius = 2440000.0 + AprioriZ = 1433163.7101725 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 481.11813354492 + Line = 807.04797363281 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 427.26147460938 + Line = 861.02624511719 + SampleResidual = -0.177490234375 + LineResidual = -0.04620361328125 + GoodnessOfFit = 413.08465576172 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_635 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 35.803616952376 + AprioriX = -1025731.9799707 + + # AprioriLongitude = 238.77950476223 + AprioriY = -1692318.329399 + + # AprioriRadius = 2440000.0 + AprioriZ = 1427421.6536279 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 813.50384521484 + Line = 666.23425292969 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 673.36340332031 + Line = 780.90411376953 + SampleResidual = 1.0941772460938 + LineResidual = 0.90350341796875 + GoodnessOfFit = 413.48873901367 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_636 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 36.877326449734 + AprioriX = -1033317.1217626 + + # AprioriLongitude = 238.03407856336 + AprioriY = -1655843.7874627 + + # AprioriRadius = 2440000.0 + AprioriZ = 1464253.0783282 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 636.75079345703 + Line = 527.39221191406 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 542.70452880859 + Line = 681.85656738281 + SampleResidual = -1.2372436523438 + LineResidual = -0.31982421875 + GoodnessOfFit = 468.85754394531 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_637 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 35.660148065438 + AprioriX = -1006903.6603178 + + # AprioriLongitude = 239.47577206138 + AprioriY = -1707731.5042527 + + # AprioriRadius = 2440000.0 + AprioriZ = 1422461.9953522 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 911.61242675781 + Line = 641.76104736328 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 747.67797851562 + Line = 766.29803466797 + SampleResidual = 0.71435546875 + LineResidual = -0.46124267578125 + GoodnessOfFit = 300.09262084961 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_638 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 34.940158651116 + AprioriX = -1066579.8106862 + + # AprioriLongitude = 237.77544880442 + AprioriY = -1692091.5922718 + + # AprioriRadius = 2440000.0 + AprioriZ = 1397438.2100113 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 746.24114990234 + Line = 889.8603515625 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 619.65887451172 + Line = 925.87860107422 + SampleResidual = 1.3666381835938 + LineResidual = -1.3677368164062 + GoodnessOfFit = 447.28607177734 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_639 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 36.676683145156 + AprioriX = -1052643.5699726 + + # AprioriLongitude = 237.45874597772 + AprioriY = -1649697.0143216 + + # AprioriRadius = 2440000.0 + AprioriZ = 1457409.0968338 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 576.21636962891 + Line = 603.04406738281 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 498.33728027344 + Line = 730.95648193359 + SampleResidual = -0.4854736328125 + LineResidual = 0.460693359375 + GoodnessOfFit = 410.01904296875 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_640 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 37.456763667215 + AprioriX = -1073999.8156928 + + # AprioriLongitude = 236.32416547966 + AprioriY = -1611867.1315377 + + # AprioriRadius = 2440000.0 + AprioriZ = 1483916.6911118 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 362.65521240234 + Line = 537.21380615234 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 348.59036254883 + Line = 682.57916259766 + SampleResidual = -0.1939697265625 + LineResidual = 0.74371337890625 + GoodnessOfFit = 390.95623779297 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_641 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 36.330743082346 + AprioriX = -1013156.4990653 + + # AprioriLongitude = 238.97444227927 + AprioriY = -1684473.1209745 + + # AprioriRadius = 2440000.0 + AprioriZ = 1445567.0904929 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 799.02337646484 + Line = 559.78723144531 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 662.61193847656 + Line = 708.19342041016 + SampleResidual = -0.6053466796875 + LineResidual = 0.15576171875 + GoodnessOfFit = 363.42700195312 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_642 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 37.375943292412 + AprioriX = -1025456.6085823 + + # AprioriLongitude = 238.0715249982 + AprioriY = -1645641.3633304 + + # AprioriRadius = 2440000.0 + AprioriZ = 1481183.0566175 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 603.20550537109 + Line = 434.89315795898 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 520.50305175781 + Line = 620.35900878906 + SampleResidual = -0.63702392578125 + LineResidual = 0.069580078125 + GoodnessOfFit = 359.38500976562 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_643 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 36.212516307741 + AprioriX = -1104034.3330953 + + # AprioriLongitude = 235.88867800772 + AprioriY = -1629958.0075715 + + # AprioriRadius = 2440000.0 + AprioriZ = 1441507.9205125 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 396.95227050781 + Line = 796.13391113281 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 369.01513671875 + Line = 851.76092529297 + SampleResidual = 0.635009765625 + LineResidual = 1.0989379882812 + GoodnessOfFit = 369.02471923828 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_644 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 36.753281474868 + AprioriX = -1138156.1343355 + + # AprioriLongitude = 234.3956788572 + AprioriY = -1589506.3857062 + + # AprioriRadius = 2440000.0 + AprioriZ = 1460023.9942116 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 142.76683044434 + Line = 798.3251953125 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 194.79611206055 + Line = 842.88714599609 + SampleResidual = 0.38124084472656 + LineResidual = 0.45428466796875 + GoodnessOfFit = 542.44274902344 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_645 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 35.695044881579 + AprioriX = -1129608.8401429 + + # AprioriLongitude = 235.24650549577 + AprioriY = -1628112.3789965 + + # AprioriRadius = 2440000.0 + AprioriZ = 1423669.1854604 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 344.57876586914 + Line = 935.88226318359 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 330.10974121094 + Line = 938.40985107422 + SampleResidual = 0.49468994140625 + LineResidual = -0.54156494140625 + GoodnessOfFit = 393.21209716797 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_646 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 38.474687489305 + AprioriX = -1075723.6554983 + + # AprioriLongitude = 235.72698687105 + AprioriY = -1578548.5302875 + + # AprioriRadius = 2440000.0 + AprioriZ = 1518091.9453474 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 199.65228271484 + Line = 385.85925292969 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 239.60903930664 + Line = 581.64959716797 + SampleResidual = 0.097183227539062 + LineResidual = 0.29522705078125 + GoodnessOfFit = 297.86016845703 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_647 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 35.460918987461 + AprioriX = -1110603.0257903 + + # AprioriLongitude = 236.02577623856 + AprioriY = -1648135.6010348 + + # AprioriRadius = 2440000.0 + AprioriZ = 1415559.9456425 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 471.58392333984 + Line = 923.22424316406 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 419.68902587891 + Line = 936.63922119141 + SampleResidual = 0.94476318359375 + LineResidual = 0.0657958984375 + GoodnessOfFit = 425.4990234375 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_648 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 37.252765806334 + AprioriX = -1010191.031363 + + # AprioriLongitude = 238.65874188052 + AprioriY = -1658780.3748691 + + # AprioriRadius = 2440000.0 + AprioriZ = 1477011.0859783 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 688.56097412109 + Line = 417.48928833008 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 584.71624755859 + Line = 610.87902832031 + SampleResidual = 1.0283203125 + LineResidual = 0.47210693359375 + GoodnessOfFit = 337.78436279297 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_649 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 35.20400026867 + AprioriX = -999564.69446023 + + # AprioriLongitude = 239.91046252914 + AprioriY = -1725065.5239499 + + # AprioriRadius = 2440000.0 + AprioriZ = 1406634.0532165 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 998.30712890625 + Line = 689.21673583984 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 815.00109863281 + Line = 801.83666992188 + SampleResidual = 2.136962890625 + LineResidual = -0.2376708984375 + GoodnessOfFit = 361.59796142578 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_650 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 38.102348953912 + AprioriX = -1066685.2901073 + + # AprioriLongitude = 236.25153390165 + AprioriY = -1596499.8753264 + + # AprioriRadius = 2440000.0 + AprioriZ = 1505646.2532585 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 302.08926391602 + Line = 421.88162231445 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 307.87228393555 + Line = 605.88922119141 + SampleResidual = -0.939453125 + LineResidual = -0.26739501953125 + GoodnessOfFit = 381.923828125 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_651 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 35.674792507391 + AprioriX = -1061684.0092824 + + # AprioriLongitude = 237.61313403509 + AprioriY = -1673794.2724297 + + # AprioriRadius = 2440000.0 + AprioriZ = 1422968.6567229 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 671.54852294922 + Line = 771.84106445312 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 564.37622070312 + Line = 845.40802001953 + SampleResidual = -0.8592529296875 + LineResidual = 0.0166015625 + GoodnessOfFit = 331.99453735352 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_652 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 35.99655271753 + AprioriX = -1123893.8337044 + + # AprioriLongitude = 235.29696043658 + AprioriY = -1622924.8620063 + + # AprioriRadius = 2440000.0 + AprioriZ = 1434077.244378 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 329.5149230957 + Line = 877.00927734375 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 321.09414672852 + Line = 900.78430175781 + SampleResidual = 0.92230224609375 + LineResidual = 0.52197265625 + GoodnessOfFit = 405.8141784668 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_653 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 35.37161865437 + AprioriX = -1047383.7888332 + + # AprioriLongitude = 238.23569429617 + AprioriY = -1691609.2975655 + + # AprioriRadius = 2440000.0 + AprioriZ = 1412460.6837995 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 775.25347900391 + Line = 780.88189697266 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 642.72509765625 + Line = 855.84643554688 + SampleResidual = 1.0133666992188 + LineResidual = 0.3017578125 + GoodnessOfFit = 403.34506225586 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_654 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 38.08886982874 + AprioriX = -999492.56335802 + + # AprioriLongitude = 238.63709886535 + AprioriY = -1639818.316065 + + # AprioriRadius = 2440000.0 + AprioriZ = 1505194.5077264 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 620.19116210938 + Line = 268.2453918457 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 536.29174804688 + Line = 511.36459350586 + SampleResidual = 0.03509521484375 + LineResidual = 0.86398315429688 + GoodnessOfFit = 258.34658813477 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_655 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 39.030781811188 + AprioriX = -1018562.7926851 + + # AprioriLongitude = 237.49429193321 + AprioriY = -1598471.883387 + + # AprioriRadius = 2440000.0 + AprioriZ = 1536560.2739166 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 395.64126586914 + Line = 169.09222412109 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 378.560546875 + Line = 443.50637817383 + SampleResidual = 0.65957641601562 + LineResidual = -0.46731567382812 + GoodnessOfFit = 351.86309814453 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_656 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 35.599061042153 + AprioriX = -1005389.6793296 + + # AprioriLongitude = 239.55230296201 + AprioriY = -1710381.3830569 + + # AprioriRadius = 2440000.0 + AprioriZ = 1420347.5339471 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 925.57684326172 + Line = 646.89141845703 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 759.49591064453 + Line = 770.69757080078 + SampleResidual = 1.9428100585938 + LineResidual = -0.0068359375 + GoodnessOfFit = 276.44982910156 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_657 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 35.535344083498 + AprioriX = -1106715.1568128 + + # AprioriLongitude = 236.12521433608 + AprioriY = -1648532.5579828 + + # AprioriRadius = 2440000.0 + AprioriZ = 1418140.319909 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 479.97720336914 + Line = 902.69372558594 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 425.86184692383 + Line = 924.84802246094 + SampleResidual = 0.83062744140625 + LineResidual = 1.3070068359375 + GoodnessOfFit = 391.62530517578 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_658 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 36.398052328844 + AprioriX = -1049163.3117659 + + # AprioriLongitude = 237.71033297029 + AprioriY = -1660275.0971056 + + # AprioriRadius = 2440000.0 + AprioriZ = 1447875.3216957 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 630.61566162109 + Line = 635.82452392578 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 536.23626708984 + Line = 753.79058837891 + SampleResidual = -1.416748046875 + LineResidual = 0.01806640625 + GoodnessOfFit = 278.74917602539 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_659 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 35.704456307009 + AprioriX = -1017600.8204338 + + # AprioriLongitude = 239.09716844887 + AprioriY = -1700096.3979268 + + # AprioriRadius = 2440000.0 + AprioriZ = 1423994.6657234 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 861.01281738281 + Line = 661.01489257812 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 708.02471923828 + Line = 777.85516357422 + SampleResidual = -0.142822265625 + LineResidual = -0.239013671875 + GoodnessOfFit = 422.71514892578 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_660 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 35.344336832429 + AprioriX = -1132690.8710505 + + # AprioriLongitude = 235.31180238862 + AprioriY = -1636533.5328338 + + # AprioriRadius = 2440000.0 + AprioriZ = 1411513.1549331 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 379.5124206543 + Line = 995.27545166016 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 354.08819580078 + Line = 977.88464355469 + SampleResidual = 1.1935729980469 + LineResidual = -1.17431640625 + GoodnessOfFit = 285.94915771484 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_661 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 38.230069008578 + AprioriX = -994689.66918974 + + # AprioriLongitude = 238.73749337592 + AprioriY = -1638391.3628613 + + # AprioriRadius = 2440000.0 + AprioriZ = 1509922.5821573 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 621.75439453125 + Line = 236.09791564941 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 538.99176025391 + Line = 490.26177978516 + SampleResidual = 1.0594482421875 + LineResidual = 0.98727416992188 + GoodnessOfFit = 361.06756591797 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_662 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 36.370894445357 + AprioriX = -1034016.2170037 + + # AprioriLongitude = 238.24395452833 + AprioriY = -1670557.6414219 + + # AprioriRadius = 2440000.0 + AprioriZ = 1446944.2386147 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 702.45886230469 + Line = 603.56799316406 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 590.24951171875 + Line = 734.14373779297 + SampleResidual = -0.5225830078125 + LineResidual = -0.4005126953125 + GoodnessOfFit = 361.23791503906 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_663 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 37.087300535177 + AprioriX = -994336.28454447 + + # AprioriLongitude = 239.27946621566 + AprioriY = -1673286.8421767 + + # AprioriRadius = 2440000.0 + AprioriZ = 1471396.1047375 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 779.86218261719 + Line = 404.92306518555 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 652.15704345703 + Line = 604.79364013672 + SampleResidual = 0.6427001953125 + LineResidual = 1.0657348632812 + GoodnessOfFit = 315.12661743164 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_664 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 36.078805229379 + AprioriX = -1122686.2042199 + + # AprioriLongitude = 235.29817580176 + AprioriY = -1621254.4959732 + + # AprioriRadius = 2440000.0 + AprioriZ = 1436909.7209432 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 323.58068847656 + Line = 861.78997802734 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 315.58062744141 + Line = 890.31896972656 + SampleResidual = -0.74560546875 + LineResidual = 0.12677001953125 + GoodnessOfFit = 289.76184082031 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_665 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 35.141586416116 + AprioriX = -1081104.4228638 + + # AprioriLongitude = 237.1913836264 + AprioriY = -1676991.7811481 + + # AprioriRadius = 2440000.0 + AprioriZ = 1404461.3888698 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 654.14715576172 + Line = 896.7109375 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 550.74993896484 + Line = 928.30200195312 + SampleResidual = 0.3424072265625 + LineResidual = 0.75628662109375 + GoodnessOfFit = 344.21850585938 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_666 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 36.121146670454 + AprioriX = -1018903.4418322 + + # AprioriLongitude = 238.87166326706 + AprioriY = -1687168.3827793 + + # AprioriRadius = 2440000.0 + AprioriZ = 1438366.6515783 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 801.68109130859 + Line = 603.91589355469 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 663.658203125 + Line = 737.09228515625 + SampleResidual = -0.8018798828125 + LineResidual = -0.6534423828125 + GoodnessOfFit = 346.39379882812 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_667 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 37.452992832951 + AprioriX = -1032212.9025842 + + # AprioriLongitude = 237.79889966173 + AprioriY = -1639056.4643388 + + # AprioriRadius = 2440000.0 + AprioriZ = 1483789.2136176 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 561.52172851562 + Line = 439.22497558594 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 490.76156616211 + Line = 621.92486572266 + SampleResidual = -0.23269653320312 + LineResidual = -0.3980712890625 + GoodnessOfFit = 242.94282531738 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_668 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 37.587940995524 + AprioriX = -990252.93994009 + + # AprioriLongitude = 239.19247727059 + AprioriY = -1660668.9790616 + + # AprioriRadius = 2440000.0 + AprioriZ = 1488347.2904273 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 730.07305908203 + Line = 321.61434936523 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 616.32464599609 + Line = 547.82391357422 + SampleResidual = 0.407958984375 + LineResidual = 0.58831787109375 + GoodnessOfFit = 282.21002197266 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_669 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 36.096012271194 + AprioriX = -1050460.7466412 + + # AprioriLongitude = 237.80534536862 + AprioriY = -1668448.5378545 + + # AprioriRadius = 2440000.0 + AprioriZ = 1437501.894363 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 665.75231933594 + Line = 683.23815917969 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 561.97723388672 + Line = 786.29864501953 + SampleResidual = -0.50872802734375 + LineResidual = -0.0438232421875 + GoodnessOfFit = 304.11346435547 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_670 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 37.294150047002 + AprioriX = -966251.43768357 + + # AprioriLongitude = 240.14650808333 + AprioriY = -1683523.5775375 + + # AprioriRadius = 2440000.0 + AprioriZ = 1478413.51558 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 870.77972412109 + Line = 309.63751220703 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 723.16070556641 + Line = 540.97082519531 + SampleResidual = 1.6231689453125 + LineResidual = -0.1036376953125 + GoodnessOfFit = 342.70288085938 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_671 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 37.664252950265 + AprioriX = -1081971.9972231 + + # AprioriLongitude = 235.93263508406 + AprioriY = -1600028.3145897 + + # AprioriRadius = 2440000.0 + AprioriZ = 1490921.1883048 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 292.24850463867 + Line = 524.654296875 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 299.45681762695 + Line = 671.87054443359 + SampleResidual = -0.88580322265625 + LineResidual = -0.1822509765625 + GoodnessOfFit = 295.60504150391 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_672 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 38.831331842821 + AprioriX = -1021376.5344607 + + # AprioriLongitude = 237.49623881967 + AprioriY = -1603007.7896111 + + # AprioriRadius = 2440000.0 + AprioriZ = 1529952.9408774 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 412.09136962891 + Line = 205.96824645996 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 388.39874267578 + Line = 468.33084106445 + SampleResidual = -0.406005859375 + LineResidual = 0.34976196289062 + GoodnessOfFit = 323.01605224609 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_673 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 38.841694913247 + AprioriX = -1080229.0978471 + + # AprioriLongitude = 235.36123212766 + AprioriY = -1563616.6713924 + + # AprioriRadius = 2440000.0 + AprioriZ = 1530296.7036193 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 118.85449981689 + Line = 339.52264404297 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 186.2420501709 + Line = 550.66363525391 + SampleResidual = 0.2705078125 + LineResidual = -0.06695556640625 + GoodnessOfFit = 338.91363525391 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_674 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 37.246265556374 + AprioriX = -1089339.1187555 + + # AprioriLongitude = 235.88621504799 + AprioriY = -1608113.6179381 + + # AprioriRadius = 2440000.0 + AprioriZ = 1476790.7353959 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 318.16549682617 + Line = 605.58953857422 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 315.29992675781 + Line = 725.34265136719 + SampleResidual = -1.5418395996094 + LineResidual = 0.52606201171875 + GoodnessOfFit = 313.24105834961 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_675 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 38.275602693649 + AprioriX = -997075.07263005 + + # AprioriLongitude = 238.63216098038 + AprioriY = -1635534.870899 + + # AprioriRadius = 2440000.0 + AprioriZ = 1511445.3300114 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 604.67541503906 + Line = 234.70970153809 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 527.09484863281 + Line = 487.84265136719 + SampleResidual = 1.5286254882812 + LineResidual = -0.37210083007812 + GoodnessOfFit = 322.22601318359 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_676 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 36.992891647928 + AprioriX = -1025270.1009629 + + # AprioriLongitude = 238.2584142196 + AprioriY = -1657361.9069791 + + # AprioriRadius = 2440000.0 + AprioriZ = 1468186.8850273 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 657.07354736328 + Line = 491.29919433594 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 559.33618164062 + Line = 658.73046875 + SampleResidual = -0.036865234375 + LineResidual = -0.0211181640625 + GoodnessOfFit = 367.90798950195 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_677 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 36.834895354357 + AprioriX = -1012748.0586797 + + # AprioriLongitude = 238.76239229432 + AprioriY = -1669771.346206 + + # AprioriRadius = 2440000.0 + AprioriZ = 1462807.2398747 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 733.92529296875 + Line = 485.10101318359 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 615.27130126953 + Line = 656.60205078125 + SampleResidual = -0.73590087890625 + LineResidual = 0.20654296875 + GoodnessOfFit = 266.85754394531 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_678 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 38.89644719082 + AprioriX = -1024793.6910084 + + # AprioriLongitude = 237.34040376504 + AprioriY = -1598759.0108653 + + # AprioriRadius = 2440000.0 + AprioriZ = 1532112.1094902 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 386.11956787109 + Line = 203.7960357666 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 371.4811706543 + Line = 466.66702270508 + SampleResidual = 0.80938720703125 + LineResidual = 0.26104736328125 + GoodnessOfFit = 319.93627929688 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_679 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 36.039452933543 + AprioriX = -1064783.2246439 + + # AprioriLongitude = 237.33857917624 + AprioriY = -1661029.4089345 + + # AprioriRadius = 2440000.0 + AprioriZ = 1435554.9404922 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 608.08538818359 + Line = 726.134765625 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 518.97180175781 + Line = 812.86810302734 + SampleResidual = -0.80889892578125 + LineResidual = 0.14105224609375 + GoodnessOfFit = 262.46844482422 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_680 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 36.743264849521 + AprioriX = -993394.59204496 + + # AprioriLongitude = 239.46462675308 + AprioriY = -1684070.9807595 + + # AprioriRadius = 2440000.0 + AprioriZ = 1459682.1970071 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 829.31304931641 + Line = 453.10107421875 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 686.88006591797 + Line = 636.35467529297 + SampleResidual = -0.8883056640625 + LineResidual = -0.7137451171875 + GoodnessOfFit = 291.43695068359 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_681 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 37.648305834271 + AprioriX = -1001860.9450252 + + # AprioriLongitude = 238.76294323438 + AprioriY = -1651857.0075452 + + # AprioriRadius = 2440000.0 + AprioriZ = 1490383.5323355 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 671.03356933594 + Line = 339.45504760742 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 572.46411132812 + Line = 558.75732421875 + SampleResidual = 0.3203125 + LineResidual = 0.4757080078125 + GoodnessOfFit = 227.78704833984 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_682 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 36.026324766678 + AprioriX = -1004382.030275 + + # AprioriLongitude = 239.40441660028 + AprioriY = -1698616.0878416 + + # AprioriRadius = 2440000.0 + AprioriZ = 1435102.8267641 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 875.72845458984 + Line = 583.07415771484 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 719.47442626953 + Line = 725.66845703125 + SampleResidual = -1.170654296875 + LineResidual = -0.23980712890625 + GoodnessOfFit = 281.17559814453 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_683 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 36.700038785137 + AprioriX = -1125047.890905 + + # AprioriLongitude = 234.89473927748 + AprioriY = -1600468.8416419 + + # AprioriRadius = 2440000.0 + AprioriZ = 1458206.6829169 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 219.20327758789 + Line = 774.39068603516 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 247.03401184082 + Line = 829.4541015625 + SampleResidual = 0.69134521484375 + LineResidual = -0.5347900390625 + GoodnessOfFit = 293.81072998047 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_684 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 35.95477027636 + AprioriX = -1142256.1741031 + + # AprioriLongitude = 234.66763091409 + AprioriY = -1611335.2428647 + + # AprioriRadius = 2440000.0 + AprioriZ = 1432637.2771311 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 242.12843322754 + Line = 928.64117431641 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 260.31854248047 + Line = 929.92633056641 + SampleResidual = 0.94415283203125 + LineResidual = 0.276123046875 + GoodnessOfFit = 399.74282836914 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_685 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 35.577345183766 + AprioriX = -1051161.3613554 + + # AprioriLongitude = 238.01626824468 + AprioriY = -1683273.1457198 + + # AprioriRadius = 2440000.0 + AprioriZ = 1419595.4738206 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 731.70281982422 + Line = 760.38024902344 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 610.4365234375 + Line = 840.22821044922 + SampleResidual = 0.72576904296875 + LineResidual = 0.1240234375 + GoodnessOfFit = 288.31066894531 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_686 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 35.420488645879 + AprioriX = -1084292.6534932 + + # AprioriLongitude = 236.95432691959 + AprioriY = -1666753.9929551 + + # AprioriRadius = 2440000.0 + AprioriZ = 1414157.1937197 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 601.99426269531 + Line = 864.15319824219 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 513.08312988281 + Line = 903.9072265625 + SampleResidual = 0.0322265625 + LineResidual = 0.25946044921875 + GoodnessOfFit = 284.33206176758 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_687 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 35.01146085304 + AprioriX = -1039211.6743554 + + # AprioriLongitude = 238.66717273774 + AprioriY = -1706998.9749789 + + # AprioriRadius = 2440000.0 + AprioriZ = 1399926.2820964 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 856.74768066406 + Line = 812.55499267578 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 703.07720947266 + Line = 880.08782958984 + SampleResidual = 0.71160888671875 + LineResidual = -0.150634765625 + GoodnessOfFit = 284.55859375 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_688 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 36.673386215421 + AprioriX = -1066715.6904525 + + # AprioriLongitude = 236.97025878304 + AprioriY = -1640732.9400296 + + # AprioriRadius = 2440000.0 + AprioriZ = 1457296.4884485 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 510.96502685547 + Line = 637.23608398438 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 450.98767089844 + Line = 750.76037597656 + SampleResidual = -0.50469970703125 + LineResidual = -0.2508544921875 + GoodnessOfFit = 272.4323425293 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_689 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 36.071131271365 + AprioriX = -1023752.8676933 + + # AprioriLongitude = 238.72899116061 + AprioriY = -1685698.5302257 + + # AprioriRadius = 2440000.0 + AprioriZ = 1436645.582976 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 787.25506591797 + Line = 622.75317382812 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 652.77136230469 + Line = 749.81304931641 + SampleResidual = -0.5762939453125 + LineResidual = -0.13287353515625 + GoodnessOfFit = 314.58850097656 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_690 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 38.034411321629 + AprioriX = -1074757.0411188 + + # AprioriLongitude = 235.99727786574 + AprioriY = -1593229.5559152 + + # AprioriRadius = 2440000.0 + AprioriZ = 1503368.5126156 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 272.23760986328 + Line = 451.18551635742 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 287.78506469727 + Line = 624.21838378906 + SampleResidual = -0.0504150390625 + LineResidual = -0.21044921875 + GoodnessOfFit = 329.28393554688 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_691 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 38.605301021534 + AprioriX = -1056898.6640235 + + # AprioriLongitude = 236.33833256245 + AprioriY = -1587051.8674968 + + # AprioriRadius = 2440000.0 + AprioriZ = 1522442.6372971 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 274.02780151367 + Line = 322.07574462891 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 291.28546142578 + Line = 542.09448242188 + SampleResidual = 0.0869140625 + LineResidual = 0.49639892578125 + GoodnessOfFit = 341.41815185547 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_692 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 36.284165507156 + AprioriX = -1131091.9400211 + + # AprioriLongitude = 234.89520286474 + AprioriY = -1609094.6483332 + + # AprioriRadius = 2440000.0 + AprioriZ = 1443968.6409077 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 250.54246520996 + Line = 851.77960205078 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 264.95574951172 + Line = 881.23052978516 + SampleResidual = -1.4242553710938 + LineResidual = 0.4857177734375 + GoodnessOfFit = 274.80926513672 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_693 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 38.380575758346 + AprioriX = -1061901.3268589 + + # AprioriLongitude = 236.27709344678 + AprioriY = -1590875.6486955 + + # AprioriRadius = 2440000.0 + AprioriZ = 1514952.2244622 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 283.54794311523 + Line = 368.15838623047 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 297.34744262695 + Line = 571.79296875 + SampleResidual = 0.38543701171875 + LineResidual = 0.4774169921875 + GoodnessOfFit = 224.80352783203 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_694 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 35.241156817153 + AprioriX = -1128937.2576 + + # AprioriLongitude = 235.49336989484 + AprioriY = -1642206.7676276 + + # AprioriRadius = 2440000.0 + AprioriZ = 1407926.7029078 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 412.78155517578 + Line = 1001.0378417969 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 376.35174560547 + Line = 983.78918457031 + SampleResidual = 0.3099365234375 + LineResidual = -0.66357421875 + GoodnessOfFit = 255.24967956543 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_695 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 37.237754916765 + AprioriX = -1088762.8872619 + + # AprioriLongitude = 235.91112210779 + AprioriY = -1608768.6626989 + + # AprioriRadius = 2440000.0 + AprioriZ = 1476502.2063103 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 322.29937744141 + Line = 605.49761962891 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 318.9264831543 + Line = 725.12048339844 + SampleResidual = -0.76956176757812 + LineResidual = 0.247802734375 + GoodnessOfFit = 369.25787353516 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_696 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 36.105727775746 + AprioriX = -1105265.4366152 + + # AprioriLongitude = 235.8982848876 + AprioriY = -1632364.9710774 + + # AprioriRadius = 2440000.0 + AprioriZ = 1437836.1922776 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 406.2604675293 + Line = 815.00469970703 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 374.20272827148 + Line = 864.18988037109 + SampleResidual = -0.37338256835938 + LineResidual = 0.91156005859375 + GoodnessOfFit = 269.80227661133 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_697 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 39.200299789344 + AprioriX = -1008214.4244743 + + # AprioriLongitude = 237.77772885992 + AprioriY = -1599638.057525 + + # AprioriRadius = 2440000.0 + AprioriZ = 1542161.3920727 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 419.16586303711 + Line = 119.78507995605 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 396.82443237305 + Line = 411.7890625 + SampleResidual = 1.6217041015625 + LineResidual = -0.271484375 + GoodnessOfFit = 295.89990234375 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_698 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 35.800016939243 + AprioriX = -1033079.6981742 + + # AprioriLongitude = 238.53199785654 + AprioriY = -1687948.0798398 + + # AprioriRadius = 2440000.0 + AprioriZ = 1427297.3120501 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 782.12994384766 + Line = 684.42303466797 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 650.22973632812 + Line = 790.505859375 + SampleResidual = 1.75439453125 + LineResidual = -0.63018798828125 + GoodnessOfFit = 246.51995849609 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_699 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 35.172215927429 + AprioriX = -1045390.5057137 + + # AprioriLongitude = 238.39013187854 + AprioriY = -1698602.4289585 + + # AprioriRadius = 2440000.0 + AprioriZ = 1405527.8292869 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 809.64825439453 + Line = 804.65777587891 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 667.46069335938 + Line = 871.30291748047 + SampleResidual = 0.431884765625 + LineResidual = -1.6183471679688 + GoodnessOfFit = 365.07305908203 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_700 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 34.970985082034 + AprioriX = -1049497.0261615 + + # AprioriLongitude = 238.33878291788 + AprioriY = -1701856.0887826 + + # AprioriRadius = 2440000.0 + AprioriZ = 1398514.1562214 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 817.47631835938 + Line = 843.47711181641 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 673.97705078125 + Line = 898.87127685547 + SampleResidual = 1.7316284179688 + LineResidual = -0.49652099609375 + GoodnessOfFit = 237.60504150391 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_701 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 37.482355976895 + AprioriX = -1012245.4750104 + + # AprioriLongitude = 238.48045433107 + AprioriY = -1650570.3267046 + + # AprioriRadius = 2440000.0 + AprioriZ = 1484781.6994169 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 647.86254882812 + Line = 388.22024536133 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 554.81909179688 + Line = 591.00946044922 + SampleResidual = 0.43658447265625 + LineResidual = 0.759033203125 + GoodnessOfFit = 249.01976013184 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_702 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 37.100756546837 + AprioriX = -1148738.2702755 + + # AprioriLongitude = 233.82300988975 + AprioriY = -1570875.100998 + + # AprioriRadius = 2440000.0 + AprioriZ = 1471853.1867917 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 32.0260887146 + Line = 771.12890625 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 121.06377410889 + Line = 821.787109375 + SampleResidual = -0.27700042724609 + LineResidual = 0.55706787109375 + GoodnessOfFit = 252.34854125977 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_703 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 35.153217860405 + AprioriX = -1042822.7874074 + + # AprioriLongitude = 238.48491107644 + AprioriY = -1700726.6081703 + + # AprioriRadius = 2440000.0 + AprioriZ = 1404866.4129823 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 823.21746826172 + Line = 801.11553955078 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 678.75714111328 + Line = 871.23583984375 + SampleResidual = 1.47900390625 + LineResidual = 0.12841796875 + GoodnessOfFit = 319.76275634766 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_704 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 37.218523982897 + AprioriX = -1105908.1729001 + + # AprioriLongitude = 235.30838494763 + AprioriY = -1597633.7339673 + + # AprioriRadius = 2440000.0 + AprioriZ = 1475850.1161034 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 238.86413574219 + Line = 649.53088378906 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 261.58514404297 + Line = 751.53369140625 + SampleResidual = -0.18344116210938 + LineResidual = 0.7813720703125 + GoodnessOfFit = 257.49661254883 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_705 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 37.858456348186 + AprioriX = -989339.12382375 + + # AprioriLongitude = 239.09906973789 + AprioriY = -1653004.3116915 + + # AprioriRadius = 2440000.0 + AprioriZ = 1497459.463091 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 697.05718994141 + Line = 279.35977172852 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 593.06909179688 + Line = 519.08044433594 + SampleResidual = 0.8050537109375 + LineResidual = 0.3946533203125 + GoodnessOfFit = 237.00219726562 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_706 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 36.997820968071 + AprioriX = -1116164.7102482 + + # AprioriLongitude = 235.05665098458 + AprioriY = -1597407.6717648 + + # AprioriRadius = 2440000.0 + AprioriZ = 1468354.5449869 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 219.83766174316 + Line = 707.75390625 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 247.97842407227 + Line = 787.94647216797 + SampleResidual = 0.10420227050781 + LineResidual = 0.53985595703125 + GoodnessOfFit = 214.83575439453 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_707 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 35.790651957216 + AprioriX = -1043600.2332333 + + # AprioriLongitude = 238.178393269 + AprioriY = -1681738.4610063 + + # AprioriRadius = 2440000.0 + AprioriZ = 1426973.8266582 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 737.15454101562 + Line = 711.15509033203 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 615.3759765625 + Line = 806.47100830078 + SampleResidual = 0.797119140625 + LineResidual = -0.962646484375 + GoodnessOfFit = 230.03005981445 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_708 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 36.556018165195 + AprioriX = -1031382.0054381 + + # AprioriLongitude = 238.24974021042 + AprioriY = -1666677.8600235 + + # AprioriRadius = 2440000.0 + AprioriZ = 1453284.5797592 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 689.24475097656 + Line = 570.14556884766 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 580.34973144531 + Line = 712.60461425781 + SampleResidual = -1.2667236328125 + LineResidual = 0.6793212890625 + GoodnessOfFit = 229.65338134766 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_709 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 36.276699171131 + AprioriX = -1105399.0382892 + + # AprioriLongitude = 235.80874617075 + AprioriY = -1627079.4991079 + + # AprioriRadius = 2440000.0 + AprioriZ = 1443712.3223593 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 380.96087646484 + Line = 789.92022705078 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 356.09768676758 + Line = 845.96942138672 + SampleResidual = -1.2247314453125 + LineResidual = -0.04815673828125 + GoodnessOfFit = 225.99531555176 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_710 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 38.584402630811 + AprioriX = -999106.49290772 + + # AprioriLongitude = 238.41074062484 + AprioriY = -1624706.783135 + + # AprioriRadius = 2440000.0 + AprioriZ = 1521747.050158 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 551.482421875 + Line = 192.82614135742 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 487.5573425293 + Line = 458.85165405273 + SampleResidual = -0.35400390625 + LineResidual = -1.4141235351562 + GoodnessOfFit = 231.1125793457 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_711 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 36.698631047539 + AprioriX = -964079.97248748 + + # AprioriLongitude = 240.47581788059 + AprioriY = -1702328.7746475 + + # AprioriRadius = 2440000.0 + AprioriZ = 1458158.6160825 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 956.25549316406 + Line = 391.30987548828 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 787.09100341797 + Line = 597.30554199219 + SampleResidual = 1.6298217773438 + LineResidual = -0.47119140625 + GoodnessOfFit = 257.86492919922 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_712 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 37.630496367397 + AprioriX = -1102524.6718648 + + # AprioriLongitude = 235.21151154141 + AprioriY = -1587005.3897987 + + # AprioriRadius = 2440000.0 + AprioriZ = 1489782.9508621 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 193.24293518066 + Line = 578.65533447266 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 232.18328857422 + Line = 704.98480224609 + SampleResidual = 0.18597412109375 + LineResidual = 0.79461669921875 + GoodnessOfFit = 224.38171386719 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_713 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 38.254794267848 + AprioriX = -974463.97456352 + + # AprioriLongitude = 239.43068037344 + AprioriY = -1649744.1329514 + + # AprioriRadius = 2440000.0 + AprioriZ = 1510749.5682841 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 707.06207275391 + Line = 186.40592956543 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 603.22381591797 + Line = 456.96762084961 + SampleResidual = 2.0230712890625 + LineResidual = 0.042510986328125 + GoodnessOfFit = 221.89225769043 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_714 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 35.850224785658 + AprioriX = -1031348.5348461 + + # AprioriLongitude = 238.56860071291 + AprioriY = -1687539.8562398 + + # AprioriRadius = 2440000.0 + AprioriZ = 1429030.9420278 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 783.12133789062 + Line = 672.99011230469 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 650.05981445312 + Line = 784.07476806641 + SampleResidual = 0.65069580078125 + LineResidual = 0.5711669921875 + GoodnessOfFit = 228.57919311523 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_715 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 35.964822374141 + AprioriX = -987247.68237447 + + # AprioriLongitude = 240.00647000563 + AprioriY = -1710409.164254 + + # AprioriRadius = 2440000.0 + AprioriZ = 1432983.7767687 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 954.50396728516 + Line = 551.31921386719 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 782.89691162109 + Line = 707.15466308594 + SampleResidual = 1.5128784179688 + LineResidual = 0.53045654296875 + GoodnessOfFit = 220.84091186523 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_716 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 37.470663207338 + AprioriX = -986072.12178367 + + # AprioriLongitude = 239.38996884313 + AprioriY = -1666690.8568472 + + # AprioriRadius = 2440000.0 + AprioriZ = 1484386.5259234 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 763.94616699219 + Line = 329.31408691406 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 641.55572509766 + Line = 554.35437011719 + SampleResidual = 0.62664794921875 + LineResidual = 1.508056640625 + GoodnessOfFit = 212.71566772461 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_717 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 37.481550255309 + AprioriX = -1012712.9851674 + + # AprioriLongitude = 238.46460351996 + AprioriY = -1650308.0229997 + + # AprioriRadius = 2440000.0 + AprioriZ = 1484754.470913 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 645.88677978516 + Line = 389.4280090332 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 552.95812988281 + Line = 590.81658935547 + SampleResidual = 0.03729248046875 + LineResidual = -0.199951171875 + GoodnessOfFit = 179.57398986816 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_718 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 38.495919484288 + AprioriX = -978904.02424286 + + # AprioriLongitude = 239.16261603297 + AprioriY = -1639693.3682614 + + # AprioriRadius = 2440000.0 + AprioriZ = 1518799.7133924 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 654.19818115234 + Line = 160.3851776123 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 564.9384765625 + Line = 439.44662475586 + SampleResidual = 2.0968627929688 + LineResidual = 0.060760498046875 + GoodnessOfFit = 181.98466491699 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_719 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 37.97531813155 + AprioriX = -1095698.7213848 + + # AprioriLongitude = 235.27280736258 + AprioriY = -1580786.4030093 + + # AprioriRadius = 2440000.0 + AprioriZ = 1501385.5800616 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 175.04655456543 + Line = 509.59423828125 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 220.92176818848 + Line = 658.98492431641 + SampleResidual = 0.062881469726562 + LineResidual = -0.75885009765625 + GoodnessOfFit = 235.09164428711 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_720 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 39.038007323712 + AprioriX = -996254.84787749 + + # AprioriLongitude = 238.28678163114 + AprioriY = -1612241.9856239 + + # AprioriRadius = 2440000.0 + AprioriZ = 1536799.2900415 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 498.69570922852 + Line = 117.63368225098 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 453.32992553711 + Line = 410.59866333008 + SampleResidual = 1.8853149414062 + LineResidual = -0.19873046875 + GoodnessOfFit = 183.45266723633 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_721 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 37.743215489989 + AprioriX = -1079551.4717162 + + # AprioriLongitude = 235.97809567969 + AprioriY = -1599181.7650835 + + # AprioriRadius = 2440000.0 + AprioriZ = 1493581.7025325 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 292.41772460938 + Line = 506.90808105469 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 299.99368286133 + Line = 660.47442626953 + SampleResidual = -0.75924682617188 + LineResidual = -0.17218017578125 + GoodnessOfFit = 240.97869873047 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_722 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 36.603177707465 + AprioriX = -1148236.055907 + + # AprioriLongitude = 234.11251362398 + AprioriY = -1586955.4830977 + + # AprioriRadius = 2440000.0 + AprioriZ = 1454897.334722 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 112.53661346436 + Line = 845.79370117188 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 174.18675231934 + Line = 870.29949951172 + SampleResidual = 0.75491333007812 + LineResidual = -1.09912109375 + GoodnessOfFit = 197.83462524414 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_723 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 36.22330314632 + AprioriX = -1060244.6459916 + + # AprioriLongitude = 237.40933150725 + AprioriY = -1658453.3762549 + + # AprioriRadius = 2440000.0 + AprioriZ = 1441878.5279749 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 603.81140136719 + Line = 688.17303466797 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 516.76263427734 + Line = 788.11572265625 + SampleResidual = -0.56097412109375 + LineResidual = 0.61065673828125 + GoodnessOfFit = 224.57885742188 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_724 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 37.984880921763 + AprioriX = -1017844.386698 + + # AprioriLongitude = 238.04446193876 + AprioriY = -1631707.7431629 + + # AprioriRadius = 2440000.0 + AprioriZ = 1501706.5776541 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 551.92681884766 + Line = 326.0817565918 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 485.89813232422 + Line = 547.18566894531 + SampleResidual = -0.09991455078125 + LineResidual = -0.61199951171875 + GoodnessOfFit = 290.81762695312 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_725 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 37.653926904232 + AprioriX = -1080087.5293899 + + # AprioriLongitude = 236.00546425503 + AprioriY = -1601625.0756949 + + # AprioriRadius = 2440000.0 + AprioriZ = 1490573.0595183 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 303.19540405273 + Line = 521.75982666016 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 307.01608276367 + Line = 670.48413085938 + SampleResidual = -0.90121459960938 + LineResidual = 0.03729248046875 + GoodnessOfFit = 203.57699584961 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_726 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 37.88110649021 + AprioriX = -1012817.9176505 + + # AprioriLongitude = 238.27085197328 + AprioriY = -1638027.4633119 + + # AprioriRadius = 2440000.0 + AprioriZ = 1498220.9099869 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 589.53686523438 + Line = 330.0364074707 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 512.61444091797 + Line = 551.16479492188 + SampleResidual = -0.4005126953125 + LineResidual = 0.2564697265625 + GoodnessOfFit = 256.20062255859 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_727 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 37.315009190916 + AprioriX = -1111466.517021 + + # AprioriLongitude = 235.05755948222 + AprioriY = -1590737.5386073 + + # AprioriRadius = 2440000.0 + AprioriZ = 1479120.0981687 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 195.65393066406 + Line = 648.21746826172 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 232.32778930664 + Line = 748.88500976562 + SampleResidual = -0.15101623535156 + LineResidual = 0.2562255859375 + GoodnessOfFit = 226.25054931641 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_728 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 38.221974167742 + AprioriX = -1031809.9306821 + + # AprioriLongitude = 237.43427495365 + AprioriY = -1615524.6181567 + + # AprioriRadius = 2440000.0 + AprioriZ = 1509651.7727859 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 452.78176879883 + Line = 322.57662963867 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 414.95626831055 + Line = 544.51959228516 + SampleResidual = -0.52944946289062 + LineResidual = 0.3194580078125 + GoodnessOfFit = 207.50839233398 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_729 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 36.171429199208 + AprioriX = -1037266.4412423 + + # AprioriLongitude = 238.22324308656 + AprioriY = -1674455.8504749 + + # AprioriRadius = 2440000.0 + AprioriZ = 1440095.8074666 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 714.72155761719 + Line = 640.50299072266 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 598.7333984375 + Line = 759.0390625 + SampleResidual = -0.454345703125 + LineResidual = -0.48858642578125 + GoodnessOfFit = 189.82177734375 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_730 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 36.304733589088 + AprioriX = -1155375.165654 + + # AprioriLongitude = 234.01490287924 + AprioriY = -1591107.6285469 + + # AprioriRadius = 2440000.0 + AprioriZ = 1444674.6142194 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 120.49707794189 + Line = 908.56176757812 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 179.30360412598 + Line = 912.18231201172 + SampleResidual = 1.5948486328125 + LineResidual = 0.6551513671875 + GoodnessOfFit = 216.26008605957 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_731 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 36.034024245231 + AprioriX = -1094657.0569675 + + # AprioriLongitude = 236.30467393568 + AprioriY = -1641659.1148558 + + # AprioriRadius = 2440000.0 + AprioriZ = 1435367.9940148 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 468.05941772461 + Line = 799.65698242188 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 418.12106323242 + Line = 855.32952880859 + SampleResidual = -0.19467163085938 + LineResidual = -0.39813232421875 + GoodnessOfFit = 198.39492797852 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_732 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 36.084638934347 + AprioriX = -1095897.8916563 + + # AprioriLongitude = 236.23673060782 + AprioriY = -1639305.1032788 + + # AprioriRadius = 2440000.0 + AprioriZ = 1437110.5000755 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 454.90414428711 + Line = 795.20831298828 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 408.27252197266 + Line = 851.73352050781 + SampleResidual = -0.82293701171875 + LineResidual = -0.5762939453125 + GoodnessOfFit = 225.00942993164 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_733 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 37.67634654756 + AprioriX = -1123496.1729996 + + # AprioriLongitude = 234.42555344493 + AprioriY = -1570762.4333186 + + # AprioriRadius = 2440000.0 + AprioriZ = 1491328.8461404 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 76.421226501465 + Line = 621.72912597656 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 153.00679016113 + Line = 728.52685546875 + SampleResidual = -0.1011962890625 + LineResidual = 0.1239013671875 + GoodnessOfFit = 183.55303955078 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_734 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 36.309114027213 + AprioriX = -1045870.6603457 + + # AprioriLongitude = 237.86504205251 + AprioriY = -1665003.1367729 + + # AprioriRadius = 2440000.0 + AprioriZ = 1444824.9431556 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 657.66326904297 + Line = 640.99060058594 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 556.01989746094 + Line = 758.27270507812 + SampleResidual = -1.2633056640625 + LineResidual = 0.229736328125 + GoodnessOfFit = 185.32962036133 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_735 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 37.332981535209 + AprioriX = -1111558.048808 + + # AprioriLongitude = 235.04468515973 + AprioriY = -1590107.4088584 + + # AprioriRadius = 2440000.0 + AprioriZ = 1479728.7360945 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 192.42599487305 + Line = 645.69860839844 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 230.21632385254 + Line = 747.33935546875 + SampleResidual = -0.12278747558594 + LineResidual = 0.41259765625 + GoodnessOfFit = 233.37326049805 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_736 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 36.015559077956 + AprioriX = -1120732.5991964 + + # AprioriLongitude = 235.39896270312 + AprioriY = -1624531.465005 + + # AprioriRadius = 2440000.0 + AprioriZ = 1434732.0168963 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 342.60958862305 + Line = 866.39123535156 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 329.19662475586 + Line = 894.33831787109 + SampleResidual = -0.20956420898438 + LineResidual = 0.3779296875 + GoodnessOfFit = 176.70016479492 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_737 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 35.475934329055 + AprioriX = -1049855.762214 + + # AprioriLongitude = 238.10579655214 + AprioriY = -1687044.2320431 + + # AprioriRadius = 2440000.0 + AprioriZ = 1416080.7313413 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 750.78588867188 + Line = 771.86151123047 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 624.30792236328 + Line = 847.83459472656 + SampleResidual = 0.6470947265625 + LineResidual = -0.69158935546875 + GoodnessOfFit = 192.44091796875 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_738 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 36.767180657779 + AprioriX = -994803.25732643 + + # AprioriLongitude = 239.40613018141 + AprioriY = -1682531.2720022 + + # AprioriRadius = 2440000.0 + AprioriZ = 1460498.2019666 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 820.208984375 + Line = 452.90667724609 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 681.32586669922 + Line = 636.8251953125 + SampleResidual = 0.40283203125 + LineResidual = 0.0828857421875 + GoodnessOfFit = 174.69290161133 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_739 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 38.475456954731 + AprioriX = -1065131.1452152 + + # AprioriLongitude = 236.11017490784 + AprioriY = -1585690.5747324 + + # AprioriRadius = 2440000.0 + AprioriZ = 1518117.5991001 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 252.93881225586 + Line = 361.10220336914 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 276.37445068359 + Line = 565.83941650391 + SampleResidual = 0.24203491210938 + LineResidual = -0.49664306640625 + GoodnessOfFit = 180.59561157227 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_740 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 37.387441359838 + AprioriX = -1073409.0405444 + + # AprioriLongitude = 236.38045427213 + AprioriY = -1614415.379824 + + # AprioriRadius = 2440000.0 + AprioriZ = 1481572.1423762 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 375.77951049805 + Line = 546.28289794922 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 356.61337280273 + Line = 688.75952148438 + SampleResidual = -1.15234375 + LineResidual = 0.7314453125 + GoodnessOfFit = 189.83660888672 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_741 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 35.644355535232 + AprioriX = -1018615.9174866 + + # AprioriLongitude = 239.08879913325 + AprioriY = -1701228.349862 + + # AprioriRadius = 2440000.0 + AprioriZ = 1421915.5088362 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 864.36676025391 + Line = 672.09393310547 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 712.09240722656 + Line = 785.56097412109 + SampleResidual = 1.5738525390625 + LineResidual = -0.12908935546875 + GoodnessOfFit = 216.35125732422 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_742 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 37.746436963417 + AprioriX = -1059092.1404182 + + # AprioriLongitude = 236.70635994767 + AprioriY = -1612703.7763982 + + # AprioriRadius = 2440000.0 + AprioriZ = 1493690.1846419 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 392.41311645508 + Line = 458.18325805664 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 370.50082397461 + Line = 630.95379638672 + SampleResidual = -0.33404541015625 + LineResidual = -0.37030029296875 + GoodnessOfFit = 178.30316162109 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_743 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 35.305625194628 + AprioriX = -1105390.2392997 + + # AprioriLongitude = 236.2805144685 + AprioriY = -1656242.2319161 + + # AprioriRadius = 2440000.0 + AprioriZ = 1410168.1063187 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 518.2265625 + Line = 932.99914550781 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 452.6247253418 + Line = 946.08306884766 + SampleResidual = 0.90704345703125 + LineResidual = 0.93670654296875 + GoodnessOfFit = 209.30297851562 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_744 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 37.519961253841 + AprioriX = -992869.21856632 + + # AprioriLongitude = 239.13342652211 + AprioriY = -1661162.1127364 + + # AprioriRadius = 2440000.0 + AprioriZ = 1486052.2029971 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 727.97058105469 + Line = 337.71673583984 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 614.09234619141 + Line = 558.25695800781 + SampleResidual = 0.0032958984375 + LineResidual = 0.3104248046875 + GoodnessOfFit = 228.20178222656 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_745 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 37.144250877014 + AprioriX = -1059222.1883929 + + # AprioriLongitude = 237.00291613592 + AprioriY = -1631240.8927818 + + # AprioriRadius = 2440000.0 + AprioriZ = 1473330.0734501 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 479.37994384766 + Line = 549.12799072266 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 431.24029541016 + Line = 691.88763427734 + SampleResidual = 0.72280883789062 + LineResidual = -0.60504150390625 + GoodnessOfFit = 196.5266418457 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_746 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 37.063156714644 + AprioriX = -1130696.2494294 + + # AprioriLongitude = 234.49862349206 + AprioriY = -1585097.1259 + + # AprioriRadius = 2440000.0 + AprioriZ = 1470575.7692108 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 134.23988342285 + Line = 733.03247070312 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 189.64993286133 + Line = 800.888671875 + SampleResidual = -0.13125610351562 + LineResidual = 0.2264404296875 + GoodnessOfFit = 161.01567077637 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_747 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 37.756907650772 + AprioriX = -1072346.9700061 + + # AprioriLongitude = 236.22874092069 + AprioriY = -1603592.2922149 + + # AprioriRadius = 2440000.0 + AprioriZ = 1494042.7491434 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 326.10235595703 + Line = 487.80917358398 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 323.28060913086 + Line = 649.18878173828 + SampleResidual = -0.9947509765625 + LineResidual = 0.09674072265625 + GoodnessOfFit = 241.85852050781 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_748 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 38.152695761331 + AprioriX = -1050209.6241519 + + # AprioriLongitude = 236.81497340345 + AprioriY = -1605804.2809235 + + # AprioriRadius = 2440000.0 + AprioriZ = 1507332.8619475 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 375.15344238281 + Line = 375.76040649414 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 360.1745300293 + Line = 578.85241699219 + SampleResidual = 0.00927734375 + LineResidual = 1.2293701171875 + GoodnessOfFit = 206.88282775879 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_749 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 35.56004876277 + AprioriX = -1010554.1128041 + + # AprioriLongitude = 239.39566002181 + AprioriY = -1708458.3184769 + + # AprioriRadius = 2440000.0 + AprioriZ = 1418996.3210388 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 908.96606445312 + Line = 664.84490966797 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 745.72418212891 + Line = 782.8359375 + SampleResidual = 1.174072265625 + LineResidual = 0.513671875 + GoodnessOfFit = 197.52560424805 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_750 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 37.443659375851 + AprioriX = -1011388.405628 + + # AprioriLongitude = 238.52835862959 + AprioriY = -1652270.9827887 + + # AprioriRadius = 2440000.0 + AprioriZ = 1483473.6574661 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 657.03314208984 + Line = 391.97677612305 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 560.92761230469 + Line = 592.77575683594 + SampleResidual = -0.08807373046875 + LineResidual = -0.1221923828125 + GoodnessOfFit = 208.42074584961 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_751 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 38.400613733152 + AprioriX = -1043083.1610802 + + # AprioriLongitude = 236.94186394445 + AprioriY = -1602644.783178 + + # AprioriRadius = 2440000.0 + AprioriZ = 1515621.0667654 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 372.59167480469 + Line = 321.47607421875 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 359.06753540039 + Line = 542.03717041016 + SampleResidual = -0.21588134765625 + LineResidual = -0.4193115234375 + GoodnessOfFit = 156.86315917969 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_752 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 36.847175286987 + AprioriX = -1122461.1075649 + + # AprioriLongitude = 234.9101458207 + AprioriY = -1597701.9230724 + + # AprioriRadius = 2440000.0 + AprioriZ = 1463225.7607816 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 210.26802062988 + Line = 745.84503173828 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 240.96798706055 + Line = 812.41046142578 + SampleResidual = 0.21163940429688 + LineResidual = 0.98370361328125 + GoodnessOfFit = 165.68789672852 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_753 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 37.522456702155 + AprioriX = -1109000.4540872 + + # AprioriLongitude = 235.03557791662 + AprioriY = -1585911.828205 + + # AprioriRadius = 2440000.0 + AprioriZ = 1486136.4896919 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 176.48994445801 + Line = 610.64227294922 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 219.78601074219 + Line = 724.36328125 + SampleResidual = -0.37947082519531 + LineResidual = 0.23382568359375 + GoodnessOfFit = 170.25228881836 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_754 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 37.40323044666 + AprioriX = -1073438.4696653 + + # AprioriLongitude = 236.37138330596 + AprioriY = -1613905.4066153 + + # AprioriRadius = 2440000.0 + AprioriZ = 1482106.3357062 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 373.30825805664 + Line = 543.96911621094 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 355.38461303711 + Line = 685.44146728516 + SampleResidual = -0.698486328125 + LineResidual = -1.0271606445312 + GoodnessOfFit = 159.37907409668 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_755 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 35.567129750327 + AprioriX = -1136058.7550212 + + # AprioriLongitude = 235.08328486032 + AprioriY = -1627490.0054235 + + # AprioriRadius = 2440000.0 + AprioriZ = 1419241.6240325 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 330.61386108398 + Line = 970.83728027344 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 319.97637939453 + Line = 961.2705078125 + SampleResidual = 0.60372924804688 + LineResidual = 0.3939208984375 + GoodnessOfFit = 199.11996459961 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_756 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 37.16892682983 + AprioriX = -1022243.6253415 + + # AprioriLongitude = 238.28088369393 + AprioriY = -1653918.9492075 + + # AprioriRadius = 2440000.0 + AprioriZ = 1474167.588811 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 646.43304443359 + Line = 458.12005615234 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 551.88012695312 + Line = 636.47174072266 + SampleResidual = -0.2833251953125 + LineResidual = -0.0552978515625 + GoodnessOfFit = 166.73336791992 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_757 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 38.929967346785 + AprioriX = -975259.17351597 + + # AprioriLongitude = 239.08238948538 + AprioriY = -1628403.2900405 + + # AprioriRadius = 2440000.0 + AprioriZ = 1533222.8375087 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 608.92663574219 + Line = 86.898361206055 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 533.08746337891 + Line = 390.64639282227 + SampleResidual = 1.9588623046875 + LineResidual = -0.058685302734375 + GoodnessOfFit = 177.64099121094 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_758 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 36.385872724297 + AprioriX = -1082630.2661938 + + # AprioriLongitude = 236.55379345514 + AprioriY = -1639017.2779336 + + # AprioriRadius = 2440000.0 + AprioriZ = 1447457.7953628 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 476.01815795898 + Line = 718.29901123047 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 424.92129516602 + Line = 802.92980957031 + SampleResidual = -0.38723754882812 + LineResidual = 0.036865234375 + GoodnessOfFit = 238.06986999512 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_759 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 38.539192248774 + AprioriX = -1005629.0722935 + + # AprioriLongitude = 238.20278869106 + AprioriY = -1622089.9344888 + + # AprioriRadius = 2440000.0 + AprioriZ = 1520241.5641563 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 528.26696777344 + Line = 214.4933013916 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 472.0234375 + Line = 473.8987121582 + SampleResidual = 1.1068725585938 + LineResidual = -0.43203735351562 + GoodnessOfFit = 146.96395874023 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_760 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 38.979417434957 + AprioriX = -1033582.0674829 + + # AprioriLongitude = 236.98135985866 + AprioriY = -1590443.7957307 + + # AprioriRadius = 2440000.0 + AprioriZ = 1534860.4634948 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 331.32745361328 + Line = 211.09182739258 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 333.97735595703 + Line = 470.17044067383 + SampleResidual = 1.4989013671875 + LineResidual = -0.59283447265625 + GoodnessOfFit = 227.33224487305 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_761 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 37.507636132488 + AprioriX = -999616.7656106 + + # AprioriLongitude = 238.90611762101 + AprioriY = -1657483.7540407 + + # AprioriRadius = 2440000.0 + AprioriZ = 1485635.8662207 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 700.23211669922 + Line = 355.14978027344 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 593.62017822266 + Line = 570.00671386719 + SampleResidual = 0.29705810546875 + LineResidual = 0.86065673828125 + GoodnessOfFit = 140.87506103516 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_762 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 37.6055968773 + AprioriX = -1124615.1505669 + + # AprioriLongitude = 234.42378548463 + AprioriY = -1572224.3492271 + + # AprioriRadius = 2440000.0 + AprioriZ = 1488943.034106 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 81.644157409668 + Line = 635.29998779297 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 156.39987182617 + Line = 737.24603271484 + SampleResidual = 0.051406860351562 + LineResidual = 0.1219482421875 + GoodnessOfFit = 175.18161010742 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_763 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 36.2780362357 + AprioriX = -1061099.8574433 + + # AprioriLongitude = 237.35408229116 + AprioriY = -1656269.6878761 + + # AprioriRadius = 2440000.0 + AprioriZ = 1443758.2254507 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 592.34289550781 + Line = 682.18615722656 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 508.02963256836 + Line = 782.59808349609 + SampleResidual = -1.1004028320312 + LineResidual = -0.56884765625 + GoodnessOfFit = 174.4995880127 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_764 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 36.2703483244 + AprioriX = -1038424.0925205 + + # AprioriLongitude = 238.13863159404 + AprioriY = -1670808.0889618 + + # AprioriRadius = 2440000.0 + AprioriZ = 1443494.2791479 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 696.32800292969 + Line = 628.82220458984 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 585.98400878906 + Line = 750.81079101562 + SampleResidual = 0.15008544921875 + LineResidual = -0.3582763671875 + GoodnessOfFit = 179.99710083008 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_765 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 36.124562896192 + AprioriX = -1005697.4443029 + + # AprioriLongitude = 239.31760559691 + AprioriY = -1694973.732254 + + # AprioriRadius = 2440000.0 + AprioriZ = 1438484.1665766 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 857.58923339844 + Line = 572.00274658203 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 706.94012451172 + Line = 719.52740478516 + SampleResidual = -0.149169921875 + LineResidual = 1.6220092773438 + GoodnessOfFit = 174.80462646484 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_766 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 37.20073865307 + AprioriX = -1139447.9810787 + + # AprioriLongitude = 234.10636475074 + AprioriY = -1574453.8399622 + + # AprioriRadius = 2440000.0 + AprioriZ = 1475246.8960293 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 66.28751373291 + Line = 733.23205566406 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 144.65090942383 + Line = 800.00323486328 + SampleResidual = 0.083908081054688 + LineResidual = 1.4929809570312 + GoodnessOfFit = 169.68560791016 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_767 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 39.081221556409 + AprioriX = -1036816.9787078 + + # AprioriLongitude = 236.81081737751 + AprioriY = -1585075.4872013 + + # AprioriRadius = 2440000.0 + AprioriZ = 1538228.2836227 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 300.04745483398 + Line = 202.80165100098 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 312.10180664062 + Line = 464.99887084961 + SampleResidual = 1.0648498535156 + LineResidual = -0.22540283203125 + GoodnessOfFit = 170.46321105957 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_768 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 38.057194988022 + AprioriX = -1053413.4026193 + + # AprioriLongitude = 236.74973654978 + AprioriY = -1606706.34532 + + # AprioriRadius = 2440000.0 + AprioriZ = 1504132.6148617 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 373.85974121094 + Line = 397.74697875977 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 358.59091186523 + Line = 592.76446533203 + SampleResidual = -0.30767822265625 + LineResidual = 0.9320068359375 + GoodnessOfFit = 132.19403076172 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_769 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 38.324203735356 + AprioriX = -1024166.2994073 + + # AprioriLongitude = 237.6539241823 + AprioriY = -1617190.0831335 + + # AprioriRadius = 2440000.0 + AprioriZ = 1513069.6038758 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 473.72250366211 + Line = 289.46606445312 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 431.34289550781 + Line = 523.32897949219 + SampleResidual = 0.49740600585938 + LineResidual = 0.46392822265625 + GoodnessOfFit = 144.34283447266 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_770 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 35.433396657991 + AprioriX = -1118533.7875156 + + # AprioriLongitude = 235.76295914433 + AprioriY = -1643585.8721601 + + # AprioriRadius = 2440000.0 + AprioriZ = 1414605.1205272 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 436.83190917969 + Line = 946.93676757812 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 394.50875854492 + Line = 950.42456054688 + SampleResidual = 0.68017578125 + LineResidual = 0.0068359375 + GoodnessOfFit = 134.68032836914 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_771 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 38.197903218591 + AprioriX = -1107826.2712197 + + # AprioriLongitude = 234.70887138308 + AprioriY = -1565152.9511717 + + # AprioriRadius = 2440000.0 + AprioriZ = 1508846.311668 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 76.784080505371 + Line = 503.92395019531 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 155.78887939453 + Line = 653.16729736328 + SampleResidual = 0.50669860839844 + LineResidual = -0.83221435546875 + GoodnessOfFit = 132.82667541504 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_772 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 35.719497286369 + AprioriX = -1124243.9958285 + + # AprioriLongitude = 235.42297622325 + AprioriY = -1631083.4275696 + + # AprioriRadius = 2440000.0 + AprioriZ = 1424514.7560314 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 367.88977050781 + Line = 918.96343994141 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 346.01602172852 + Line = 929.36437988281 + SampleResidual = -0.058868408203125 + LineResidual = 0.29681396484375 + GoodnessOfFit = 168.7684173584 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_773 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 37.15285889212 + AprioriX = -1009899.1537559 + + # AprioriLongitude = 238.71494995356 + AprioriY = -1661969.0486336 + + # AprioriRadius = 2440000.0 + AprioriZ = 1473622.2652455 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 703.46282958984 + Line = 431.5778503418 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 594.72448730469 + Line = 618.89587402344 + SampleResidual = 0.311279296875 + LineResidual = -1.1714477539062 + GoodnessOfFit = 184.57846069336 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_774 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 39.130092507794 + AprioriX = -1011124.8305457 + + # AprioriLongitude = 237.7095891952 + AprioriY = -1600034.1429248 + + # AprioriRadius = 2440000.0 + AprioriZ = 1539843.277262 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 415.95678710938 + Line = 137.0828704834 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 394.72775268555 + Line = 422.88375854492 + SampleResidual = 2.0651550292969 + LineResidual = -0.4002685546875 + GoodnessOfFit = 124.65586090088 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_775 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 36.730817063999 + AprioriX = -1132575.2708169 + + # AprioriLongitude = 234.60851312463 + AprioriY = -1594189.8121738 + + # AprioriRadius = 2440000.0 + AprioriZ = 1459257.3791814 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 175.47494506836 + Line = 788.10009765625 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 216.50244140625 + Line = 837.58679199219 + SampleResidual = -0.05279541015625 + LineResidual = 0.44903564453125 + GoodnessOfFit = 162.3137512207 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_776 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 35.451621620973 + AprioriX = -1114417.3244753 + + # AprioriLongitude = 235.89755587351 + AprioriY = -1645836.2739857 + + # AprioriRadius = 2440000.0 + AprioriZ = 1415237.4310137 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 454.36605834961 + Line = 934.04412841797 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 406.4508972168 + Line = 942.900390625 + SampleResidual = 0.053741455078125 + LineResidual = 0.0633544921875 + GoodnessOfFit = 134.6854095459 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_777 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 36.083356633608 + AprioriX = -989823.12710213 + + # AprioriLongitude = 239.87018346423 + AprioriY = -1705488.3260124 + + # AprioriRadius = 2440000.0 + AprioriZ = 1437066.3682966 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 929.04779052734 + Line = 540.36364746094 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 763.37951660156 + Line = 697.71514892578 + SampleResidual = 1.3533325195312 + LineResidual = -0.76251220703125 + GoodnessOfFit = 122.14611053467 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_778 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 38.180123074865 + AprioriX = -1055178.6938221 + + # AprioriLongitude = 236.62329691498 + AprioriY = -1601679.211161 + + # AprioriRadius = 2440000.0 + AprioriZ = 1508251.1822102 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 346.92059326172 + Line = 383.15203857422 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 339.52032470703 + Line = 580.96557617188 + SampleResidual = -0.900634765625 + LineResidual = -0.98907470703125 + GoodnessOfFit = 126.71391296387 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_779 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 35.214146291521 + AprioriX = -1037601.8546031 + + # AprioriLongitude = 238.63446361954 + AprioriY = -1702166.1888564 + + # AprioriRadius = 2440000.0 + AprioriZ = 1406987.0848157 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 837.99566650391 + Line = 779.68255615234 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 689.08782958984 + Line = 858.41326904297 + SampleResidual = 0.32122802734375 + LineResidual = 1.131103515625 + GoodnessOfFit = 137.4542388916 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_780 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 34.907284459217 + AprioriX = -1096932.9062631 + + # AprioriLongitude = 236.75678070009 + AprioriY = -1673532.6329208 + + # AprioriRadius = 2440000.0 + AprioriZ = 1396290.3443433 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 612.25244140625 + Line = 969.75445556641 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 518.93347167969 + Line = 973.32727050781 + SampleResidual = 0.2296142578125 + LineResidual = -0.58258056640625 + GoodnessOfFit = 135.64828491211 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_781 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 36.38663990899 + AprioriX = -999196.94530453 + + # AprioriLongitude = 239.42379098422 + AprioriY = -1691152.0491895 + + # AprioriRadius = 2440000.0 + AprioriZ = 1447484.0969822 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 851.21716308594 + Line = 518.64276123047 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 703.31719970703 + Line = 681.74700927734 + SampleResidual = 0.1395263671875 + LineResidual = 0.0103759765625 + GoodnessOfFit = 148.37860107422 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_782 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 36.11649716508 + AprioriX = -1057099.9950011 + + # AprioriLongitude = 237.56756950056 + AprioriY = -1663640.9093186 + + # AprioriRadius = 2440000.0 + AprioriZ = 1438206.7046882 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 632.82299804688 + Line = 696.25689697266 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 537.67431640625 + Line = 794.24877929688 + SampleResidual = -0.567626953125 + LineResidual = 0.4053955078125 + GoodnessOfFit = 138.38232421875 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_783 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 38.913526937984 + AprioriX = -986818.52666422 + + # AprioriLongitude = 238.68287771347 + AprioriY = -1621939.2529334 + + # AprioriRadius = 2440000.0 + AprioriZ = 1532678.1316461 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 559.66949462891 + Line = 115.30371856689 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 496.72479248047 + Line = 409.07012939453 + SampleResidual = 1.6334533691406 + LineResidual = -0.30007934570312 + GoodnessOfFit = 125.02230834961 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_784 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 37.520450171999 + AprioriX = -1102710.7696744 + + # AprioriLongitude = 235.26356624254 + AprioriY = -1590354.9059211 + + # AprioriRadius = 2440000.0 + AprioriZ = 1486068.7170036 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 209.19204711914 + Line = 595.91009521484 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 243.10960388184 + Line = 715.24841308594 + SampleResidual = 0.6060791015625 + LineResidual = -0.37457275390625 + GoodnessOfFit = 143.45315551758 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_785 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 35.261183857967 + AprioriX = -1086518.1970472 + + # AprioriLongitude = 236.95138886638 + AprioriY = -1669987.7046441 + + # AprioriRadius = 2440000.0 + AprioriZ = 1408623.1837588 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 613.16937255859 + Line = 892.76818847656 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 520.30859375 + Line = 922.85321044922 + SampleResidual = -0.354736328125 + LineResidual = -0.202392578125 + GoodnessOfFit = 115.39590454102 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_786 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 36.813049346501 + AprioriX = -1005784.8031396 + + # AprioriLongitude = 239.01085164891 + AprioriY = -1674625.3620606 + + # AprioriRadius = 2440000.0 + AprioriZ = 1462062.5248315 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 767.11383056641 + Line = 471.94055175781 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 641.33544921875 + Line = 648.96075439453 + SampleResidual = 0.4600830078125 + LineResidual = 0.6102294921875 + GoodnessOfFit = 144.85899353027 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_787 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 36.034615785191 + AprioriX = -1139937.0069347 + + # AprioriLongitude = 234.70903243681 + AprioriY = -1610529.0623883 + + # AprioriRadius = 2440000.0 + AprioriZ = 1435388.3653645 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 242.21775817871 + Line = 910.96575927734 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 260.79034423828 + Line = 919.55474853516 + SampleResidual = 1.0626831054688 + LineResidual = 1.2263793945312 + GoodnessOfFit = 127.09390258789 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_788 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 36.090784519243 + AprioriX = -1026408.3316418 + + # AprioriLongitude = 238.62996039873 + AprioriY = -1683505.6915292 + + # AprioriRadius = 2440000.0 + AprioriZ = 1437321.9970922 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 773.14123535156 + Line = 626.24786376953 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 642.54461669922 + Line = 752.00573730469 + SampleResidual = -0.21038818359375 + LineResidual = 0.1585693359375 + GoodnessOfFit = 109.97583007812 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_789 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 36.223560747184 + AprioriX = -1039000.341469 + + # AprioriLongitude = 238.14019534528 + AprioriY = -1671837.037529 + + # AprioriRadius = 2440000.0 + AprioriZ = 1441887.3778397 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 700.03509521484 + Line = 637.04455566406 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 588.23962402344 + Line = 757.92321777344 + SampleResidual = -0.1832275390625 + LineResidual = 1.1650390625 + GoodnessOfFit = 110.13914489746 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_790 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 35.416117605564 + AprioriX = -1105418.4033372 + + # AprioriLongitude = 236.22715531722 + AprioriY = -1652948.4598358 + + # AprioriRadius = 2440000.0 + AprioriZ = 1414005.49599 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 502.81262207031 + Line = 916.93811035156 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 441.60302734375 + Line = 934.31707763672 + SampleResidual = 0.59622192382812 + LineResidual = 0.41485595703125 + GoodnessOfFit = 122.78346252441 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_791 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 36.448976800723 + AprioriX = -1019542.8407385 + + # AprioriLongitude = 238.70405138728 + AprioriY = -1677120.5251675 + + # AprioriRadius = 2440000.0 + AprioriZ = 1449620.3433867 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 755.77099609375 + Line = 557.69946289062 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 630.88464355469 + Line = 705.58837890625 + SampleResidual = -0.10137939453125 + LineResidual = 0.13623046875 + GoodnessOfFit = 106.31216430664 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_792 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 36.805638530854 + AprioriX = -1138510.5468044 + + # AprioriLongitude = 234.3548497767 + AprioriY = -1587610.0610288 + + # AprioriRadius = 2440000.0 + AprioriZ = 1461809.847051 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 132.83335876465 + Line = 791.24029541016 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 188.46618652344 + Line = 839.12036132812 + SampleResidual = 0.5841064453125 + LineResidual = 1.5543823242188 + GoodnessOfFit = 116.58392333984 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_793 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 35.508348673478 + AprioriX = -1040914.9867662 + + # AprioriLongitude = 238.39472859559 + AprioriY = -1691634.4122001 + + # AprioriRadius = 2440000.0 + AprioriZ = 1417204.6449916 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 785.86120605469 + Line = 745.47448730469 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 650.59375 + Line = 832.07995605469 + SampleResidual = 0.3662109375 + LineResidual = -0.13946533203125 + GoodnessOfFit = 115.25352478027 + End_Group + End_Object + + Object = ControlPoint + PointType = Free + PointId = ff_test_794 + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + + # AprioriLatitude = 37.858906988967 + AprioriX = -996683.55698283 + + # AprioriLongitude = 238.84394790804 + AprioriY = -1648572.6144027 + + # AprioriRadius = 2440000.0 + AprioriZ = 1497474.6149039 + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0242463603:888000 + MeasureType = Candidate + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 664.76361083984 + Line = 296.1594543457 + Reference = True + End_Group + + Group = ControlMeasure + SerialNumber = MeSSEnGeR/MDIS-WAC/1/0211981114:916000 + MeasureType = RegisteredSubPixel + ChooserName = findfeatures + DateTime = 2016-03-10T11:24:22 + Sample = 568.86633300781 + Line = 529.80780029297 + SampleResidual = 0.5843505859375 + LineResidual = 0.33441162109375 + GoodnessOfFit = 115.04113769531 + End_Group + End_Object +End_Object +End diff --git a/recipe/meta.yaml b/recipe/meta.yaml index 5e08dc766a..d28c65e7eb 100644 --- a/recipe/meta.yaml +++ b/recipe/meta.yaml @@ -18,7 +18,7 @@ # A Public Release for ISIS3.6.1: {% set version = "3.6.1" %} # A Release Candidate for ISIS3.6.1: {% set version = "3.6.1_RC" %} # A custom build of ISIS3.6.1 for the CaSSIS mission: {% set version = "3.6.1_cassis" %} -{% set version = "8.0.1" %} +{% set version = "8.0.2" %} # This is the build number for the current version you are building. If this is the first build of # this version, the build number will be 0. It is incremented by 1 with every consecutive build of