From 9800a727848ccc6ca2a6895a751b48f948efd678 Mon Sep 17 00:00:00 2001 From: Jeannie Backer Date: Mon, 29 Aug 2016 20:03:55 +0000 Subject: [PATCH] Updated from trunk. git-svn-id: http://subversion.wr.usgs.gov/repos/prog/isis3/branches/ipce@7094 41f8697f-d340-4b68-9986-7bafba869bb8 --- isis/src/base/apps/campt/campt.cpp | 19 +- isis/src/base/apps/campt/campt.xml | 89 +++-- isis/src/base/apps/camstats/camstats.cpp | 21 +- isis/src/base/apps/camstats/camstats.xml | 30 +- isis/src/base/apps/mosrange/mosrange.cpp | 87 ++++- isis/src/base/apps/mosrange/mosrange.xml | 13 +- isis/src/base/apps/phocube/phocube.cpp | 8 + isis/src/base/apps/phocube/phocube.xml | 72 +++-- .../base/apps/phocube/tsts/allbands/Makefile | 1 + .../src/base/objs/Application/Application.cpp | 7 + isis/src/base/objs/Application/Application.h | 2 + isis/src/base/objs/Camera/Camera.cpp | 305 ++++++++++++++---- isis/src/base/objs/Camera/Camera.h | 25 +- isis/src/base/objs/Camera/Camera.truth | 4 + isis/src/base/objs/Camera/unitTest.cpp | 11 +- .../objs/CameraPointInfo/CameraPointInfo.cpp | 249 +++++++++----- .../objs/CameraPointInfo/CameraPointInfo.h | 22 +- .../CameraPointInfo/CameraPointInfo.truth | 8 + .../CameraStatistics/CameraStatistics.cpp | 74 ++++- .../objs/CameraStatistics/CameraStatistics.h | 50 ++- .../CameraStatistics/CameraStatistics.truth | 18 ++ isis/src/base/objs/Gui/Gui.cpp | 3 + isis/src/base/objs/Gui/Gui.h | 4 +- isis/src/base/objs/ProcessByTile/unitTest.cpp | 10 +- .../objs/RadarGroundMap/RadarGroundMap.cpp | 9 +- .../base/objs/RadarGroundMap/RadarGroundMap.h | 4 +- .../RadarSlantRangeMap/RadarSlantRangeMap.cpp | 91 +++++- .../RadarSlantRangeMap/RadarSlantRangeMap.h | 8 +- .../Chandrayaan1M3Camera.h | 2 + .../Chandrayaan1M3Camera.truth | 7 + .../objs/Chandrayaan1M3Camera/unitTest.cpp | 24 ++ isis/src/control/apps/cnettable/cnettable.cpp | 4 + isis/src/control/apps/cnettable/cnettable.xml | 8 +- .../docsys/Object/build/isisDoxyDefs.doxydef | 29 +- .../Schemas/Application/application.xsd | 4 + .../Application/documentation/index.html | 37 ++- .../docsys/documents/Glossary/Glossary.xml | 108 ++++++- .../Glossary/assets/carlini_craters.png | Bin 0 -> 288282 bytes .../documents/Glossary/assets/dufayx.png | Bin 0 -> 285610 bytes .../documents/Glossary/assets/nadir.png | Bin 0 -> 655481 bytes .../documents/Glossary/assets/nadir40pct.png | Bin 0 -> 174503 bytes .../documents/Glossary/assets/oblique.png | Bin 0 -> 294780 bytes .../Glossary/assets/oblique40pct.png | Bin 0 -> 96043 bytes isis/src/lro/objs/MiniRF/MiniRF.h | 2 + isis/src/lro/objs/MiniRF/MiniRF.truth | 8 + isis/src/lro/objs/MiniRF/unitTest.cpp | 68 +++- .../mex/apps/hrsc2isis/tsts/phobos/Makefile | 6 + isis/src/mro/apps/hicolormos/hicolormos.xml | 97 +++--- isis/version | 4 +- 49 files changed, 1292 insertions(+), 360 deletions(-) create mode 100644 isis/src/docsys/documents/Glossary/assets/carlini_craters.png create mode 100644 isis/src/docsys/documents/Glossary/assets/dufayx.png create mode 100644 isis/src/docsys/documents/Glossary/assets/nadir.png create mode 100644 isis/src/docsys/documents/Glossary/assets/nadir40pct.png create mode 100644 isis/src/docsys/documents/Glossary/assets/oblique.png create mode 100644 isis/src/docsys/documents/Glossary/assets/oblique40pct.png create mode 100644 isis/src/mex/apps/hrsc2isis/tsts/phobos/Makefile diff --git a/isis/src/base/apps/campt/campt.cpp b/isis/src/base/apps/campt/campt.cpp index 2d46a550c5..a442733ba7 100644 --- a/isis/src/base/apps/campt/campt.cpp +++ b/isis/src/base/apps/campt/campt.cpp @@ -7,10 +7,14 @@ #include "Camera.h" #include "CameraPointInfo.h" #include "CSVReader.h" +#include "Distance.h" #include "IException.h" #include "iTime.h" +#include "Longitude.h" #include "Progress.h" +#include "PvlGroup.h" #include "SpecialPixel.h" +#include "TProjection.h" using namespace std; using namespace Isis; @@ -21,17 +25,28 @@ QList getCameraPointInfo(const UserInterface &ui, CameraPointInfo &campt); void writePoints(const UserInterface &ui, QList camPoints); + + + void IsisMain() { UserInterface &ui = Application::GetUserInterface(); // Setup our input cube CameraPointInfo campt; + + QString fileFormat = ui.GetString("FORMAT"); + if(fileFormat=="PVL") + campt.SetCSVOutput(false); + else + campt.SetCSVOutput(true); + campt.SetCube(ui.GetFileName("FROM") + "+" + ui.GetInputAttribute("FROM").toString()); // Grab the provided points (coordinates) QList< QPair > points = getPoints(ui, ui.WasEntered("COORDLIST")); // Get the camera point info for coordiante + QList camPoints = getCameraPointInfo(ui, points, campt); writePoints(ui, camPoints); @@ -105,7 +120,7 @@ QList getCameraPointInfo(const UserInterface &ui, // Depending on what type is selected, set values accordingly for (int i = 0; i < points.size(); i++) { - + QPair pt = points[i]; if (type == "GROUND") { camPoint = campt.SetGround(pt.first, pt.second, allowOutside, usePointList); @@ -209,6 +224,8 @@ void writePoints(const UserInterface &ui, QList camPoints) { os << endl; } + + for (int i = 0; i < (*point).keywords(); i++) { if ((*point)[i].size() == 3) { os << (QString)(*point)[i][0] << "," diff --git a/isis/src/base/apps/campt/campt.xml b/isis/src/base/apps/campt/campt.xml index 87c9d167f8..78c4e27f53 100644 --- a/isis/src/base/apps/campt/campt.xml +++ b/isis/src/base/apps/campt/campt.xml @@ -1,6 +1,8 @@ - + Computes geometric and photometric information at a given pixel location @@ -35,8 +37,8 @@

The following is a partial list of coordinates computed in the campt application:

- Geometric Information: Latitude, Longitude, Resolution
+ Geometric Information: Latitude, Longitude, Oblique Detector Resolution, + Line Resolution, Oblique Line Resolution

Photometric Information: Phase, Emission, and PixelValue = 0.0607816 - RightAscension = 65.749350916052 <DEGREE> - Declination = -18.390093214966 <DEGREE> - PlanetocentricLatitude = 34.444196777763 <DEGREE> - PlanetographicLatitude = 34.760399604837 <DEGREE> - PositiveEastLongitude = 223.84999971299 <DEGREE> - PositiveWestLongitude = 136.15000028701 <DEGREE> - BodyFixedCoordinate = (-2015.9595225544, -1936.6155808127, 1917.2574858384) <KM> - LocalRadius = 3389756.4767145 <M> - SampleResolution = 536.05556350077 <M> - LineResolution = 536.05556350077 <M> - + RightAscension = 65.749350916052 + Declination = -18.390093214966 + PlanetocentricLatitude = 34.444196777763 + PlanetographicLatitude = 34.760399604837 + PositiveEastLongitude = 223.84999971299 + PositiveWestLongitude = 136.15000028701 + BodyFixedCoordinate = (-2015.9595225544, -1936.6155808127, 1917.2574858384) <km> + LocalRadius = 3389756.4767145 <m> + SampleResolution = 536.05556350077 <m/pixel> + LineResolution = 536.05556350077 <m/pixel> + ObliqueDetectorResolution = 151.26661909292 <m/pixel> + ObliquePixelResolution = 605.06647637166 <m/pixel> + ObliqueLineResolution = 605.06647637166 <m/pixel> + ObliqueSampleResolution = 605.06647637166 <m/pixel> # Spacecraft Information - SpacecraftPosition = (-2025.6211429076, -2130.1417975758, 2009.318879871) <KM> - SpacecraftAzimuth = 0.006855593033889 <DEGREE> - SlantDistance = 214.52515878961 <KM> - TargetCenterDistance = 3560.6189705415 <KM> - SubSpacecraftLatitude = 34.354896748841 <DEGREE> - SubSpacecraftLongitude = 226.44072947174 <DEGREE> - SpacecraftAltitude = 170.83335389965 <KM> - OffNadirAngle = 36.149255932304 <DEGREE> - SubSpacecraftGroundAzimuth = 91.64525294858 <DEGREE> + SpacecraftPosition = (-2025.6211429076, -2130.1417975758, 2009.318879871) <km> + SpacecraftAzimuth = 0.006855593033889 + SlantDistance = 214.52515878961 <km> + TargetCenterDistance = 3560.6189705415 <km> + SubSpacecraftLatitude = 34.354896748841 + SubSpacecraftLongitude = 226.44072947174 + SpacecraftAltitude = 170.83335389965 <km> + OffNadirAngle = 36.149255932304 + SubSpacecraftGroundAzimuth = 91.64525294858 # Sun Information - SunPosition = (-177337948.13839, 112957442.69098, -33704752.205292) <KM> - SubSolarAzimuth = 172.30460990873 <DEGREE> + SunPosition = (-177337948.13839, 112957442.69098, -33704752.205292) <km> + SubSolarAzimuth = 172.30460990873 SolarDistance = 1.4234246174889 <AU> - SubSolarLatitude = -9.1071705738361 <DEGREE> - SubSolarLongitude = 147.50443340123 <DEGREE> - SubSolarGroundAzimuth = 254.69139701227 <DEGREE> + SubSolarLatitude = -9.1071705738361 + SubSolarLongitude = 147.50443340123 + SubSolarGroundAzimuth = 254.69139701227 # Illumination and Other - Phase = 120.59515694473 <DEGREE> - Incidence = 84.106289446623 <DEGREE> - Emission = 38.288719431206 <DEGREE> - NorthAzimuth = 261.46910874636 <DEGREE> + Phase = 120.59515694473 + Incidence = 84.106289446623 + Emission = 38.288719431206 + NorthAzimuth = 261.46910874636 # Time EphemerisTime = -69382819.160519 <seconds> UTC = 1997-10-20T10:58:37.6570806 LocalSolarTime = 17.089704420784 <hour> - SolarLongitude = 201.83159041209 <DEGREE> + SolarLongitude = 201.83159041209 Error = NULL - - # Look Direction Unit Vectors in Body Fixed, J2000, and Camera Coordinate Systems. - LookDirectionBodyFixed = (0.95457395414683, 0.074906840825054, - -0.28840515124058) <DEGREE> - LookDirectionJ2000 = (0.5482662642052, -0.25280984110143, - -0.797177074292) <DEGREE> - LookDirectionCamera = (0.0040987946596217, -0.6021663586021, - 0.79836011702128) <DEGREE> End_Group @@ -208,11 +205,11 @@ End_Group Updated documentation. References #1449. - - Added units to many of the outputs of the PVL. Fixes #3979. - - - Added spacecraft look direction unit vectors in Body Fixed, J200, and Camera Coordinate Systems. Fixes #4180. + + Checked in new test data, and added support for changes made to the CameraPointInfo + and Camera classes that incorporate new estimates for Pixel/Line/Sample/Detetctor resolution + and now allow a developer to control the order in which fields are output in both PVL and + CSV format. References #476, #4100. diff --git a/isis/src/base/apps/camstats/camstats.cpp b/isis/src/base/apps/camstats/camstats.cpp index a95f41c04a..dbdb39781b 100644 --- a/isis/src/base/apps/camstats/camstats.cpp +++ b/isis/src/base/apps/camstats/camstats.cpp @@ -112,7 +112,21 @@ void IsisMain() { "NorthAzimuthMinimum," << "NorthAzimuthMaximum," << "NorthAzimuthAverage," << - "NorthAzimuthStandardDeviation," << endl; + "NorthAzimuthStandardDeviation," << + "ObliqueResolutionMinimum," << + "ObliqueResolutionMaximum," << + "ObliqueResolutionAverage," << + "ObliqueResolutionStandardDeviation," << + "ObliqueLineResolutionMinimum," << + "ObliqueLineResolutionMaximum," << + "ObliqueLineResolutionAverage," << + "ObliqueLineResolutionStandardDeviation," << + "ObliqueSampleResolutionMinimum," << + "ObliqueSampleResolutionMaximum," << + "ObliqueSampleResolutionAverage," << + "ObliqueSampleResolutionStandardDeviation," << endl; + + } os << FileName(from).expanded() << ","; //call the function to write out the values for each group @@ -128,6 +142,9 @@ void IsisMain() { writeFlat(os, camStats.getLocalSolarTimeStat()); writeFlat(os, camStats.getLocalRaduisStat()); writeFlat(os, camStats.getNorthAzimuthStat()); + writeFlat(os,camStats.getObliqueResStat()); + writeFlat(os,camStats.getObliqueLineResStat()); + writeFlat(os,camStats.getObliqueSampleResStat()); os << endl; } } @@ -137,7 +154,7 @@ void IsisMain() { QString cam_name = "CameraStatistics"; //Creates new CameraStatistics Table - TableField fname("Name", Isis::TableField::Text, 20); + TableField fname("Name", Isis::TableField::Text, 45); TableField fmin("Minimum", Isis::TableField::Double); TableField fmax("Maximum", Isis::TableField::Double); TableField favg("Average", Isis::TableField::Double); diff --git a/isis/src/base/apps/camstats/camstats.xml b/isis/src/base/apps/camstats/camstats.xml index 0286991099..9cefe31595 100644 --- a/isis/src/base/apps/camstats/camstats.xml +++ b/isis/src/base/apps/camstats/camstats.xml @@ -1,6 +1,7 @@ - + Generates and outputs camera statistics for a cube in raw camera geometry @@ -15,17 +16,20 @@ average, and standard deviation values. The output groups are listed below:

    -
  • Latitude
  • -
  • Longitude
  • -
  • Sample Resolution
  • -
  • Line Resolution
  • -
  • Resolution
  • +
  • Latitude
  • +
  • Longitude
  • +
  • Sample Resolution
  • +
  • Line Resolution
  • +
  • Pixel Resolution
  • +
  • Oblique Line Resolution
  • +
  • Oblique Sample Resolution
  • +
  • Oblique Pixel Resolution
  • Aspect Ratio
  • -
  • Phase Angle
  • -
  • Emission Angle
  • -
  • Incidence Angle
  • -
  • Local Solar Time
  • -
  • North Azimuth
  • +
  • Phase Angle
  • +
  • EmissionAngle
  • +
  • Incidence Angle
  • +
  • Local Solar Time
  • +
  • North Azimuth

@@ -96,6 +100,10 @@ documentation to clarify the existence and functioning of a few quirks. Addresses redmine ticket #175. + + Added statistics for ObliqueLineResolution/ObliqueSampleResolution, + and Oblique Pixel Resolution. References #476, #4100. + diff --git a/isis/src/base/apps/mosrange/mosrange.cpp b/isis/src/base/apps/mosrange/mosrange.cpp index 9e19a5c526..9364175dd1 100644 --- a/isis/src/base/apps/mosrange/mosrange.cpp +++ b/isis/src/base/apps/mosrange/mosrange.cpp @@ -97,6 +97,10 @@ void IsisMain() { prog.CheckStatus(); Statistics scaleStat; + + + Statistics obliqueScaleStat; + Statistics longitudeStat; Statistics latitudeStat; Statistics equiRadStat; @@ -147,15 +151,51 @@ void IsisMain() { // Get resolution double lowres = cam->LowestImageResolution(); double hires = cam->HighestImageResolution(); - scaleStat.AddData(&lowres, 1); + + + double lowObliqueRes = cam->LowestObliqueImageResolution(); + + + + double hiObliqueRes= cam->HighestObliqueImageResolution(); + + scaleStat.AddData(&hires, 1); + scaleStat.AddData(&lowres, 1); + + + obliqueScaleStat.AddData(&hiObliqueRes,1); + obliqueScaleStat.AddData(&lowObliqueRes,1); + double pixres = (lowres + hires) / 2.0; + + + //double obliquePixRes = (lowObliqueRes+hiObliqueRes)/2.0; + double scale = Scale(pixres, poleRad, eqRad); + + + //double obliqueScale = Scale(obliquePixRes,poleRad,eqRad); + + mapgrp.addKeyword(PvlKeyword("PixelResolution", toString(pixres)), Pvl::Replace); + + + //mapgrp.addKeyword(PvlKeyword("ObliquePixelResolution", toString(obliquePixRes)), + // Pvl::Replace); + mapgrp.addKeyword(PvlKeyword("Scale", toString(scale), "pixels/degree"), Pvl::Replace); - mapgrp += PvlKeyword("MinPixelResolution", toString(lowres), "meters"); - mapgrp += PvlKeyword("MaxPixelResolution", toString(hires), "meters"); + + + //mapgrp.addKeyword(PvlKeyword("ObliqueScale", toString(obliqueScale), "pixels/degree"), + // Pvl::Replace); + mapgrp += PvlKeyword("MinPixelResolution", toString(lowres), "meters/pixel"); + mapgrp += PvlKeyword("MaxPixelResolution", toString(hires), "meters/pixel"); + + + mapgrp += PvlKeyword("MinObliquePixelResolution", toString(lowObliqueRes), "meters/pixel"); + mapgrp += PvlKeyword("MaxObliquePixelResolution", toString(hiObliqueRes), "meters/pixel"); // Get the universal ground range double minlat, maxlat, minlon, maxlon; @@ -185,12 +225,17 @@ void IsisMain() { // Construct the output mapping group with statistics PvlGroup mapping("Mapping"); - double avgPixRes((scaleStat.Minimum() + scaleStat.Maximum()) / 2.0); + double avgPixRes( (scaleStat.Minimum() + scaleStat.Maximum() ) / 2.0); + + + //double avgObliquePixRes( (obliqueScaleStat.Minimum() + obliqueScaleStat.Maximum() ) / 2.0); + double avgLat((latitudeStat.Minimum() + latitudeStat.Maximum()) / 2.0); double avgLon((longitudeStat.Minimum() + longitudeStat.Maximum()) / 2.0); double avgEqRad((equiRadStat.Minimum() + equiRadStat.Maximum()) / 2.0); double avgPoleRad((poleRadStat.Minimum() + poleRadStat.Maximum()) / 2.0); double scale = Scale(avgPixRes, avgPoleRad, avgEqRad); + //double obliqueScale = Scale(avgObliquePixRes,avgPoleRad,avgEqRad); mapping += PvlKeyword("ProjectionName", projection); mapping += PvlKeyword("TargetName", target); @@ -200,15 +245,37 @@ void IsisMain() { mapping += PvlKeyword("LongitudeDirection", londir); mapping += PvlKeyword("LongitudeDomain", londom); mapping += PvlKeyword("PixelResolution", toString(SetRound(avgPixRes, digits)), "meters/pixel"); + + + //mapping += PvlKeyword("ObliquePixelResolution", toString(SetRound(avgObliquePixRes, digits)), + // "meters/pixel"); + + mapping += PvlKeyword("Scale", toString(SetRound(scale, digits)), "pixels/degree"); - mapping += PvlKeyword("MinPixelResolution", toString(scaleStat.Minimum()), "meters"); - mapping += PvlKeyword("MaxPixelResolution", toString(scaleStat.Maximum()), "meters"); + + + //mapping += PvlKeyword("ObliqueScale", toString(SetRound(obliqueScale, digits)), "pixels/degree"); + + + mapping += PvlKeyword("MinPixelResolution", toString(scaleStat.Minimum()), "meters/pixel"); + mapping += PvlKeyword("MaxPixelResolution", toString(scaleStat.Maximum()), "meters/pixel"); + + + mapping += PvlKeyword("MinObliquePixelResolution", toString(obliqueScaleStat.Minimum()), + "meters/pixel"); + mapping += PvlKeyword("MaxObliquePixelResolution", toString(obliqueScaleStat.Maximum()), + "meters/pixel"); + mapping += PvlKeyword("CenterLongitude", toString(SetRound(avgLon, digits))); mapping += PvlKeyword("CenterLatitude", toString(SetRound(avgLat, digits))); - mapping += PvlKeyword("MinimumLatitude", toString(MAX(SetFloor(latitudeStat.Minimum(), digits), -90.0))); - mapping += PvlKeyword("MaximumLatitude", toString(MIN(SetCeil(latitudeStat.Maximum(), digits), 90.0))); - mapping += PvlKeyword("MinimumLongitude", toString(MAX(SetFloor(longitudeStat.Minimum(), digits), -180.0))); - mapping += PvlKeyword("MaximumLongitude", toString(MIN(SetCeil(longitudeStat.Maximum(), digits), 360.0))); + mapping += PvlKeyword("MinimumLatitude", toString(MAX(SetFloor(latitudeStat.Minimum(), + digits), -90.0))); + mapping += PvlKeyword("MaximumLatitude", toString(MIN(SetCeil(latitudeStat.Maximum(), + digits), 90.0))); + mapping += PvlKeyword("MinimumLongitude", toString(MAX(SetFloor(longitudeStat.Minimum(), + digits), -180.0))); + mapping += PvlKeyword("MaximumLongitude", toString(MIN(SetCeil(longitudeStat.Maximum(), + digits), 360.0))); PvlKeyword clat("PreciseCenterLongitude", toString(avgLon)); clat.addComment("Actual Parameters without precision applied"); diff --git a/isis/src/base/apps/mosrange/mosrange.xml b/isis/src/base/apps/mosrange/mosrange.xml index 046a4adfc4..6d05637f2e 100644 --- a/isis/src/base/apps/mosrange/mosrange.xml +++ b/isis/src/base/apps/mosrange/mosrange.xml @@ -1,6 +1,8 @@ - + Compute the lat/lon range of a set camera images for mosaicking @@ -10,7 +12,8 @@ This program computes and outputs the latitude/longitude range of a set of images in camera space, as well as the - pixel resolution. It creates a cam2map ready map file with + pixel resolution and the + oblique pixel resolution.. It creates a cam2map ready map file with the extents of the latitude/longitude ranges of the image set.

@@ -47,6 +50,7 @@ Group = Mapping LongitudeDirection = PositiveEast LongitudeDomain = 360 PixelResolution = 505.3668 <meters/pixel> + ObliquePixelResolution = 791.251 <meters/pixel> Scale = 84.2676 <pixels/degree> MinPixelResolution = 483.45317995544 <meters> MaxPixelResolution = 527.28051834369 <meters> @@ -106,6 +110,11 @@ End Updated to use new Target class. References Mantis tickets #775 and #1114. + + Updated to use upated Camera/CameraPointInfo classes which include improved approximations + to Pixel/Detector/Line/Sample resolutions, as well as providing the ability for developers + to order the fields in CSV/Pvl output. References #476" + diff --git a/isis/src/base/apps/phocube/phocube.cpp b/isis/src/base/apps/phocube/phocube.cpp index 5a4e691f22..8d26d05d2f 100644 --- a/isis/src/base/apps/phocube/phocube.cpp +++ b/isis/src/base/apps/phocube/phocube.cpp @@ -34,6 +34,7 @@ bool pixelResolution; bool lineResolution; bool sampleResolution; bool detectorResolution; +bool obliqueDetectorResolution; bool northAzimuth; bool sunAzimuth; bool spacecraftAzimuth; @@ -119,6 +120,7 @@ void IsisMain() { lineResolution = false; sampleResolution = false; detectorResolution = false; + obliqueDetectorResolution = false; sunAzimuth = false; spacecraftAzimuth = false; offnadirAngle = false; @@ -141,6 +143,7 @@ void IsisMain() { if ((lineResolution = ui.GetBoolean("LINERESOLUTION"))) nbands++; if ((sampleResolution = ui.GetBoolean("SAMPLERESOLUTION"))) nbands++; if ((detectorResolution = ui.GetBoolean("DETECTORRESOLUTION"))) nbands++; + if ((obliqueDetectorResolution = ui.GetBoolean("OBLIQUEDETECTORRESOLUTION"))) nbands++; if ((sunAzimuth = ui.GetBoolean("SUNAZIMUTH"))) nbands++; if ((spacecraftAzimuth = ui.GetBoolean("SPACECRAFTAZIMUTH"))) nbands++; if ((offnadirAngle = ui.GetBoolean("OFFNADIRANGLE"))) nbands++; @@ -193,6 +196,7 @@ void IsisMain() { if (lineResolution) name += "Line Resolution"; if (sampleResolution) name += "Sample Resolution"; if (detectorResolution) name += "Detector Resolution"; + if (obliqueDetectorResolution) name += "Oblique Detector Resolution"; if (northAzimuth) name += "North Azimuth"; if (sunAzimuth) name += "Sun Azimuth"; if (spacecraftAzimuth) name += "Spacecraft Azimuth"; @@ -365,6 +369,10 @@ void phocube(Buffer &out) { out[index] = cam->DetectorResolution(); index += 64 * 64; } + if(obliqueDetectorResolution) { + out[index] = cam->ObliqueDetectorResolution(); + index += 64 * 64; + } if(northAzimuth) { out[index] = cam->NorthAzimuth(); index += 64 * 64; diff --git a/isis/src/base/apps/phocube/phocube.xml b/isis/src/base/apps/phocube/phocube.xml index 64bef127a6..c11aef79d3 100644 --- a/isis/src/base/apps/phocube/phocube.xml +++ b/isis/src/base/apps/phocube/phocube.xml @@ -1,6 +1,8 @@ - + Creates photometric and geometric information bands for an image cube @@ -80,28 +82,32 @@ The following options are available for Level1 images that contain a camera model:
    -
  • DN
  • -
  • PHASE
  • -
  • EMISSION
  • -
  • INCIDENCE
  • -
  • LOCALEMISSION
  • -
  • LOCALINCIDENCE
  • -
  • LATITUDE
  • -
  • LONGITUDE
  • -
  • PIXELRESOLUTION
  • -
  • LINERESOLUTION
  • -
  • SAMPLERESOLUTION
  • -
  • DETECTORRESOLUTION
  • -
  • NORTHAZIMUTH
  • -
  • SUNAZIMUTH
  • -
  • SPACECRAFTAZIMUTH
  • -
  • OFFNADIRANGLE
  • -
  • SUBSPACECRAFTGROUNDAZIMUTH
  • -
  • SUBSOLARGROUNDAZIMUTH
  • + +
  • DN
  • +
  • EMISSION
  • +
  • INCIDENCE
  • +
  • PHASE
  • +
  • OFFNADIRANGLE
  • + +
  • LOCALEMISSION
  • +
  • LOCALINCIDENCE
  • + +
  • LATITUDE
  • +
  • LONGITUDE
  • +
  • DETECTORRESOLUTION
  • +
  • OBLIQUEDETECTORRESOLUTION
  • +
  • PIXELRESOLUTION
  • +
  • LINERESOLUTION
  • +
  • SAMPLERESOLUTION
  • +
  • NORTHAZIMUTH
  • +
  • SUNAZIMUTH
  • +
  • SPACECRAFTAZIMUTH
  • +
  • SUBSPACECRAFTGROUNDAZIMUTH
  • +
  • SUBSOLARGROUNDAZIMUTH
  • MORPHOLOGY
  • -
  • ALBEDO
  • -
  • RADEC
  • -
  • BODYFIXED
  • +
  • ALBEDO
  • +
  • RADEC (Right Ascension, Declination )
  • +
  • BODYFIXED
The following options are available for Level2 images: