diff --git a/CHANGELOG.md b/CHANGELOG.md index e092d62e40..6448367370 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -47,6 +47,7 @@ release. ### Fixed - Fixed a bug in isisminer in which bad (e.g. self-intersecting) polygon geometries were not treated properly. Added pertinent unit tests to GisGeometry and Strategy classes. Issue: [5612](https://github.com/DOI-USGS/ISIS3/issues/5612) - Fixed a bug in kaguyasp2isis that doesn't work for data with a detached label. +- Fixed FunctionalTestCamstatsDefaultParameters test by increasing the runtime speed [#5459](https://github.com/DOI-USGS/ISIS3/issues/5459) ## [8.3.0] - 2024-09-30 diff --git a/isis/tests/FunctionalTestsCamstats.cpp b/isis/tests/FunctionalTestsCamstats.cpp index e92852f9fb..8cbe906c30 100644 --- a/isis/tests/FunctionalTestsCamstats.cpp +++ b/isis/tests/FunctionalTestsCamstats.cpp @@ -13,64 +13,64 @@ using namespace Isis; static QString APP_XML = FileName("$ISISROOT/bin/xml/camstats.xml").expanded(); -TEST_F(DefaultCube, FunctionalTestCamstatsDefaultParameters) { - QVector args = {}; +TEST(CamStats, FunctionalTestCamstatsDefaultParameters) { + QVector args = {"from=data/camstats/camstats-default.cub"}; UserInterface options(APP_XML, args); Pvl appLog; - camstats(testCube, options, &appLog); + camstats(options, &appLog); PvlGroup group = appLog.findGroup("User Parameters"); EXPECT_DOUBLE_EQ((double) group.findKeyword("Linc"), 1.0); EXPECT_DOUBLE_EQ((double) group.findKeyword("Sinc"), 1.0); group = appLog.findGroup("Latitude"); - EXPECT_NEAR( (double) group.findKeyword("LatitudeMinimum"), 9.928647861, 1e-8); - EXPECT_NEAR( (double) group.findKeyword("LatitudeMaximum"), 10.434709879, 1e-8); - EXPECT_NEAR( (double) group.findKeyword("LatitudeAverage"), 10.181983206, 1e-8); - EXPECT_NEAR( (double) group.findKeyword("LatitudeStandardDeviation"), 0.110841083, 1e-8); + EXPECT_NEAR( (double) group.findKeyword("LatitudeMinimum"), 10.071886160496, 1e-8); + EXPECT_NEAR( (double) group.findKeyword("LatitudeMaximum"), 10.115114798772, 1e-8); + EXPECT_NEAR( (double) group.findKeyword("LatitudeAverage"), 10.093481303136, 1e-8); + EXPECT_NEAR( (double) group.findKeyword("LatitudeStandardDeviation"), 0.0093294485296208998, 1e-8); group = appLog.findGroup("Longitude"); - EXPECT_NEAR( (double) group.findKeyword("LongitudeMinimum"), 255.645548596, 1e-8); - EXPECT_NEAR( (double) group.findKeyword("LongitudeMaximum"), 256.146069653, 1e-8); - EXPECT_NEAR( (double) group.findKeyword("LongitudeAverage"), 255.893904910, 1e-8); - EXPECT_NEAR( (double) group.findKeyword("LongitudeStandardDeviation"), 0.106583406, 1e-8); + EXPECT_NEAR( (double) group.findKeyword("LongitudeMinimum"), 255.64553280449999, 1e-8); + EXPECT_NEAR( (double) group.findKeyword("LongitudeMaximum"), 255.68944338700999, 1e-8); + EXPECT_NEAR( (double) group.findKeyword("LongitudeAverage"), 255.66752361025999, 1e-8); + EXPECT_NEAR( (double) group.findKeyword("LongitudeStandardDeviation"), 0.0096378907096538995, 1e-8); group = appLog.findGroup("SampleResolution"); - EXPECT_NEAR( (double) group.findKeyword("SampleResolutionMinimum"), 18.840683397, 1e-8); - EXPECT_NEAR( (double) group.findKeyword("SampleResolutionMaximum"), 18.985953926, 1e-8); - EXPECT_NEAR( (double) group.findKeyword("SampleResolutionAverage"), 18.908165593, 1e-8); - EXPECT_NEAR( (double) group.findKeyword("SampleResolutionStandardDeviation"), 0.038060025, 1e-8); + EXPECT_NEAR( (double) group.findKeyword("SampleResolutionMinimum"), 18.840689155126, 1e-8); + EXPECT_NEAR( (double) group.findKeyword("SampleResolutionMaximum"), 18.851286623334001, 1e-8); + EXPECT_NEAR( (double) group.findKeyword("SampleResolutionAverage"), 18.846056043836999, 1e-8); + EXPECT_NEAR( (double) group.findKeyword("SampleResolutionStandardDeviation"), 0.003012465806427, 1e-8); group = appLog.findGroup("LineResolution"); - EXPECT_NEAR( (double) group.findKeyword("LineResolutionMinimum"), 18.840683397, 1e-8); - EXPECT_NEAR( (double) group.findKeyword("LineResolutionMaximum"), 18.985953926, 1e-8); - EXPECT_NEAR( (double) group.findKeyword("LineResolutionAverage"), 18.908165593, 1e-8); - EXPECT_NEAR( (double) group.findKeyword("LineResolutionStandardDeviation"), 0.038060025, 1e-8); + EXPECT_NEAR( (double) group.findKeyword("LineResolutionMinimum"), 18.840689155126, 1e-8); + EXPECT_NEAR( (double) group.findKeyword("LineResolutionMaximum"), 18.851286623334001, 1e-8); + EXPECT_NEAR( (double) group.findKeyword("LineResolutionAverage"), 18.846056043836999, 1e-8); + EXPECT_NEAR( (double) group.findKeyword("LineResolutionStandardDeviation"), 0.003012465806427, 1e-8); group = appLog.findGroup("Resolution"); - EXPECT_NEAR( (double) group.findKeyword("ResolutionMinimum"), 18.840683397, 1e-8); - EXPECT_NEAR( (double) group.findKeyword("ResolutionMaximum"), 18.985953926, 1e-8); - EXPECT_NEAR( (double) group.findKeyword("ResolutionAverage"), 18.908165593, 1e-8); - EXPECT_NEAR( (double) group.findKeyword("ResolutionStandardDeviation"), 0.038060025, 1e-8); + EXPECT_NEAR( (double) group.findKeyword("ResolutionMinimum"), 18.840689155126, 1e-8); + EXPECT_NEAR( (double) group.findKeyword("ResolutionMaximum"), 18.851286623334001, 1e-8); + EXPECT_NEAR( (double) group.findKeyword("ResolutionAverage"), 18.846056043836999, 1e-8); + EXPECT_NEAR( (double) group.findKeyword("ResolutionStandardDeviation"), 0.003012465806427, 1e-8); group = appLog.findGroup("ObliqueSampleResolution"); - EXPECT_NEAR( (double) group.findKeyword("ObliqueSampleResolutionMinimum"), 18.967773792077001, 1e-8); - EXPECT_NEAR( (double) group.findKeyword("ObliqueSampleResolutionMaximum"), 21.179427868487998, 1e-8); - EXPECT_NEAR( (double) group.findKeyword("ObliqueSampleResolutionAverage"), 19.550786868806998, 1e-8); - EXPECT_NEAR( (double) group.findKeyword("ObliqueSampleResolutionStandardDeviation"), 0.21126193741980, 1e-8); + EXPECT_NEAR( (double) group.findKeyword("ObliqueSampleResolutionMinimum"), 19.155188929324002, 1e-8); + EXPECT_NEAR( (double) group.findKeyword("ObliqueSampleResolutionMaximum"), 19.367224440177999, 1e-8); + EXPECT_NEAR( (double) group.findKeyword("ObliqueSampleResolutionAverage"), 19.275477210727999, 1e-8); + EXPECT_NEAR( (double) group.findKeyword("ObliqueSampleResolutionStandardDeviation"), 0.033844349179675999, 1e-8); group = appLog.findGroup("ObliqueLineResolution"); - EXPECT_NEAR( (double) group.findKeyword("ObliqueLineResolutionMinimum"), 18.967773792077001, 1e-8); - EXPECT_NEAR( (double) group.findKeyword("ObliqueLineResolutionMaximum"), 21.179427868487998, 1e-8); - EXPECT_NEAR( (double) group.findKeyword("ObliqueLineResolutionAverage"), 19.550786868806998, 1e-8); - EXPECT_NEAR( (double) group.findKeyword("ObliqueLineResolutionStandardDeviation"), 0.21126193741980, 1e-8); + EXPECT_NEAR( (double) group.findKeyword("ObliqueLineResolutionMinimum"), 19.155188929324002, 1e-8); + EXPECT_NEAR( (double) group.findKeyword("ObliqueLineResolutionMaximum"), 19.367224440177999, 1e-8); + EXPECT_NEAR( (double) group.findKeyword("ObliqueLineResolutionAverage"), 19.275477210727999, 1e-8); + EXPECT_NEAR( (double) group.findKeyword("ObliqueLineResolutionStandardDeviation"), 0.033844349179675999, 1e-8); group = appLog.findGroup("ObliqueResolution"); - EXPECT_NEAR( (double) group.findKeyword("ObliqueResolutionMinimum"), 18.967773792077001, 1e-8); - EXPECT_NEAR( (double) group.findKeyword("ObliqueResolutionMaximum"), 21.179427868487998, 1e-8); - EXPECT_NEAR( (double) group.findKeyword("ObliqueResolutionAverage"), 19.550786868806998, 1e-8); - EXPECT_NEAR( (double) group.findKeyword("ObliqueResolutionStandardDeviation"), 0.21126193741980, 1e-8); + EXPECT_NEAR( (double) group.findKeyword("ObliqueResolutionMinimum"), 19.155188929324002, 1e-8); + EXPECT_NEAR( (double) group.findKeyword("ObliqueResolutionMaximum"), 19.367224440177999, 1e-8); + EXPECT_NEAR( (double) group.findKeyword("ObliqueResolutionAverage"), 19.275477210727999, 1e-8); + EXPECT_NEAR( (double) group.findKeyword("ObliqueResolutionStandardDeviation"), 0.033844349179675999, 1e-8); group = appLog.findGroup("AspectRatio"); EXPECT_DOUBLE_EQ( (double) group.findKeyword("AspectRatioMinimum"), 1.0); @@ -80,40 +80,40 @@ TEST_F(DefaultCube, FunctionalTestCamstatsDefaultParameters) { EXPECT_DOUBLE_EQ( (double) group.findKeyword("AspectRatioStandardDeviation"), 0.0); group = appLog.findGroup("PhaseAngle"); - EXPECT_NEAR( (double) group.findKeyword("PhaseMinimum"), 79.756143202, 1e-8); - EXPECT_NEAR( (double) group.findKeyword("PhaseMaximum"), 81.304900705, 1e-8); - EXPECT_NEAR( (double) group.findKeyword("PhaseAverage"), 80.529097153, 1e-8); - EXPECT_NEAR( (double) group.findKeyword("PhaseStandardDeviation"), 0.444208835, 1e-8); + EXPECT_NEAR( (double) group.findKeyword("PhaseMinimum"), 79.765542221500993, 1e-8); + EXPECT_NEAR( (double) group.findKeyword("PhaseMaximum"), 79.913103465944999, 1e-8); + EXPECT_NEAR( (double) group.findKeyword("PhaseAverage"), 79.839125602796003, 1e-8); + EXPECT_NEAR( (double) group.findKeyword("PhaseStandardDeviation"), 0.042323277540651003, 1e-8); group = appLog.findGroup("EmissionAngle"); - EXPECT_NEAR( (double) group.findKeyword("EmissionMinimum"), 10.79846217733, 1e-8); - EXPECT_NEAR( (double) group.findKeyword("EmissionMaximum"), 13.502631152501, 1e-8); - EXPECT_NEAR( (double) group.findKeyword("EmissionAverage"), 12.151486966752, 1e-8); - EXPECT_NEAR( (double) group.findKeyword("EmissionStandardDeviation"), 0.56543820137524, 1e-8); + EXPECT_NEAR( (double) group.findKeyword("EmissionMinimum"), 10.79844564701, 1e-8); + EXPECT_NEAR( (double) group.findKeyword("EmissionMaximum"), 11.034510484207001, 1e-8); + EXPECT_NEAR( (double) group.findKeyword("EmissionAverage"), 10.916733851338, 1e-8); + EXPECT_NEAR( (double) group.findKeyword("EmissionStandardDeviation"), 0.051256401936749997, 1e-8); group = appLog.findGroup("IncidenceAngle"); - EXPECT_NEAR( (double) group.findKeyword("IncidenceMinimum"), 69.941096029946, 1e-8); - EXPECT_NEAR( (double) group.findKeyword("IncidenceMaximum"), 70.311945067319, 1e-8); - EXPECT_NEAR( (double) group.findKeyword("IncidenceAverage"), 70.127459134001, 1e-8); - EXPECT_NEAR( (double) group.findKeyword("IncidenceStandardDeviation"), 0.10249044009735, 1e-8); + EXPECT_NEAR( (double) group.findKeyword("IncidenceMinimum"), 70.261909633600993, 1e-8); + EXPECT_NEAR( (double) group.findKeyword("IncidenceMaximum"), 70.296704005951, 1e-8); + EXPECT_NEAR( (double) group.findKeyword("IncidenceAverage"), 70.279320858073007, 1e-8); + EXPECT_NEAR( (double) group.findKeyword("IncidenceStandardDeviation"), 0.0096632244052295996, 1e-8); group = appLog.findGroup("LocalSolarTime"); - EXPECT_NEAR( (double) group.findKeyword("LocalSolarTimeMinimum"), 7.7698055422, 1e-8); - EXPECT_NEAR( (double) group.findKeyword("LocalSolarTimeMaximum"), 7.8031735959, 1e-8); - EXPECT_NEAR( (double) group.findKeyword("LocalSolarTimeAverage"), 7.7863626216, 1e-8); - EXPECT_NEAR( (double) group.findKeyword("LocalSolarTimeStandardDeviation"), 0.007105554, 1e-8); + EXPECT_NEAR( (double) group.findKeyword("LocalSolarTimeMinimum"), 7.7698044038522998, 1e-8); + EXPECT_NEAR( (double) group.findKeyword("LocalSolarTimeMaximum"), 7.7727317760194001, 1e-8); + EXPECT_NEAR( (double) group.findKeyword("LocalSolarTimeAverage"), 7.7712704575698996, 1e-8); + EXPECT_NEAR( (double) group.findKeyword("LocalSolarTimeStandardDeviation"), 0.00064252695695377895, 1e-8); group = appLog.findGroup("LocalRadius"); - EXPECT_NEAR( (double) group.findKeyword("LocalRadiusMinimum"), 3410663.3367893999, 1e-8); - EXPECT_NEAR( (double) group.findKeyword("LocalRadiusMaximum"), 3413492.0667552999, 1e-8); - EXPECT_NEAR( (double) group.findKeyword("LocalRadiusAverage"), 3412205.8144263001, 1e-8); - EXPECT_NEAR( (double) group.findKeyword("LocalRadiusStandardDeviation"), 648.5771376704, 1e-5); + EXPECT_NEAR( (double) group.findKeyword("LocalRadiusMinimum"), 3411855.0366011998, 1e-8); + EXPECT_NEAR( (double) group.findKeyword("LocalRadiusMaximum"), 3412097.9756964999, 1e-8); + EXPECT_NEAR( (double) group.findKeyword("LocalRadiusAverage"), 3411965.1948032002, 1e-8); + EXPECT_NEAR( (double) group.findKeyword("LocalRadiusStandardDeviation"), 54.219727730480997, 1e-5); group = appLog.findGroup("NorthAzimuth"); - EXPECT_NEAR( (double) group.findKeyword("NorthAzimuthMinimum"), 312.352230087, 1e-8); - EXPECT_NEAR( (double) group.findKeyword("NorthAzimuthMaximum"), 350.579004313, 1e-8); - EXPECT_NEAR( (double) group.findKeyword("NorthAzimuthAverage"), 332.967715780, 1e-8); - EXPECT_NEAR( (double) group.findKeyword("NorthAzimuthStandardDeviation"), 0.670379770, 1e-8); + EXPECT_NEAR( (double) group.findKeyword("NorthAzimuthMinimum"), 332.91681144925002, 1e-8); + EXPECT_NEAR( (double) group.findKeyword("NorthAzimuthMaximum"), 338.21827790755998, 1e-8); + EXPECT_NEAR( (double) group.findKeyword("NorthAzimuthAverage"), 333.98488155281001, 1e-8); + EXPECT_NEAR( (double) group.findKeyword("NorthAzimuthStandardDeviation"), 0.48452163466794002, 1e-8); } TEST_F(DefaultCube, FunctionalTestCamstatsAttach) { diff --git a/isis/tests/data/camstats/camstats-default.cub b/isis/tests/data/camstats/camstats-default.cub new file mode 100644 index 0000000000..b7dfcbbe7a --- /dev/null +++ b/isis/tests/data/camstats/camstats-default.cub @@ -0,0 +1,602 @@ +Object = IsisCube + Object = Core + StartByte = 65537 + Format = Tile + TileSamples = 100 + TileLines = 100 + + Group = Dimensions + Samples = 100 + Lines = 100 + Bands = 1 + End_Group + + Group = Pixels + Type = UnsignedByte + ByteOrder = Lsb + Base = 0.0 + Multiplier = 1.0 + End_Group + End_Object + + Group = Instrument + SpacecraftName = VIKING_ORBITER_1 + InstrumentId = VISUAL_IMAGING_SUBSYSTEM_CAMERA_B + TargetName = MARS + StartTime = 1977-07-09T20:05:51 + ExposureDuration = 0.008480 + SpacecraftClockCount = 33322515 + FloodModeId = ON + GainModeId = HIGH + OffsetModeId = ON + End_Group + + Group = Archive + DataSetId = VO1/VO2-M-VIS-2-EDR-V2.0 + ProductId = 387A06 + MissonPhaseName = EXTENDED_MISSION + ImageNumber = 33322515 + OrbitNumber = 387 + End_Group + + Group = BandBin + FilterName = CLEAR + FilterId = 4 + End_Group + + Group = Kernels + NaifFrameCode = -27002 + LeapSecond = $base/kernels/lsk/naif0012.tls + TargetAttitudeShape = $base/kernels/pck/pck00009.tpc + TargetPosition = (Table, $base/kernels/spk/de430.bsp, + $base/kernels/spk/mar097.bsp) + InstrumentPointing = (Table, $viking1/kernels/ck/vo1_sedr_ck2.bc, + $viking1/kernels/fk/vo1_v10.tf) + Instrument = Null + SpacecraftClock = ($viking1/kernels/sclk/vo1_fict.tsc, + $viking1/kernels/sclk/vo1_fsc.tsc) + InstrumentPosition = (Table, $viking1/kernels/spk/viking1a.bsp) + InstrumentAddendum = $viking1/kernels/iak/vikingAddendum003.ti + ShapeModel = $base/dems/molaMarsPlanetaryRadius0005.cub + InstrumentPositionQuality = Reconstructed + InstrumentPointingQuality = Reconstructed + CameraVersion = 1 + End_Group + + Group = AlphaCube + AlphaSamples = 1204 + AlphaLines = 1056 + AlphaStartingSample = 0.5 + AlphaStartingLine = 0.5 + AlphaEndingSample = 100.5 + AlphaEndingLine = 100.5 + BetaSamples = 100 + BetaLines = 100 + End_Group + + Group = Reseaus + Line = (5, 6, 8, 9, 10, 11, 12, 13, 14, 14, 15, 133, 134, 135, 137, + 138, 139, 140, 141, 141, 142, 143, 144, 263, 264, 266, 267, + 268, 269, 269, 270, 271, 272, 273, 393, 393, 395, 396, 397, + 398, 399, 399, 400, 401, 402, 403, 523, 524, 525, 526, 527, + 527, 528, 529, 530, 530, 532, 652, 652, 654, 655, 656, 657, + 657, 658, 659, 660, 661, 662, 781, 783, 784, 785, 786, 787, + 788, 788, 789, 790, 791, 911, 912, 913, 914, 915, 916, 917, + 918, 918, 919, 920, 921, 1040, 1041, 1043, 1044, 1045, 1045, + 1046, 1047, 1047, 1048, 1050) + Sample = (24, 142, 259, 375, 491, 607, 723, 839, 954, 1070, 1185, 24, + 84, 201, 317, 433, 549, 665, 780, 896, 1011, 1127, 1183, 25, + 142, 259, 375, 492, 607, 722, 838, 953, 1068, 1183, 25, 84, + 201, 317, 433, 549, 665, 779, 895, 1010, 1125, 1182, 25, 143, + 259, 375, 491, 607, 722, 837, 952, 1067, 1182, 25, 84, 201, + 317, 433, 548, 664, 779, 894, 1009, 1124, 1181, 25, 142, 258, + 374, 490, 605, 720, 835, 951, 1066, 1180, 24, 83, 200, 316, + 431, 547, 662, 776, 892, 1007, 1122, 1179, 23, 140, 257, 373, + 488, 603, 718, 833, 948, 1063, 1179) + Type = (1, 5, 5, 5, 5, 5, 5, 5, 5, 5, 6, 4, 5, 5, 5, 5, 5, 5, 5, 5, 5, + 5, 6, 4, 5, 5, 5, 5, 5, 5, 5, 5, 5, 6, 4, 5, 5, 5, 5, 5, 5, 5, + 5, 5, 5, 6, 4, 5, 5, 5, 5, 5, 5, 5, 5, 5, 6, 4, 5, 5, 5, 5, 5, + 5, 5, 5, 5, 5, 6, 4, 5, 5, 5, 5, 5, 5, 5, 5, 5, 6, 4, 5, 5, 5, + 5, 5, 5, 5, 5, 5, 5, 6, 4, 5, 5, 5, 5, 5, 5, 5, 5, 5, 6) + Valid = (0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0) + Template = $viking1/reseaus/vo1.visb.template.cub + Status = Nominal + End_Group +End_Object + +Object = Label + Bytes = 65536 +End_Object + +Object = Table + Name = InstrumentPointing + StartByte = 75537 + Bytes = 64 + Records = 1 + ByteOrder = Lsb + TimeDependentFrames = (-27000, 2, 1) + ConstantFrames = (-27002, -27000) + ConstantRotation = (-3.97934996888727e-04, 0.99992928417985, + -0.011885633652183, -0.99999976485974, + -4.04545016849889e-04, -5.53736215647129e-04, + -5.58505331602586e-04, 0.011885410506373, + 0.99992921003884) + CkTableStartTime = -709401200.26143 + CkTableEndTime = -709401200.26143 + CkTableOriginalSize = 1 + FrameTypeCode = 3 + Description = "Created by spiceinit" + Kernels = ($viking1/kernels/ck/vo1_sedr_ck2.bc, + $viking1/kernels/fk/vo1_v10.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 = 75601 + Bytes = 56 + Records = 1 + ByteOrder = Lsb + CacheType = Linear + SpkTableStartTime = -709401200.26143 + SpkTableEndTime = -709401200.26143 + SpkTableOriginalSize = 1.0 + Description = "Created by spiceinit" + Kernels = $viking1/kernels/spk/viking1a.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 = 75657 + Bytes = 64 + Records = 1 + ByteOrder = Lsb + TimeDependentFrames = (10014, 1) + CkTableStartTime = -709401200.26143 + CkTableEndTime = -709401200.26143 + CkTableOriginalSize = 1 + FrameTypeCode = 3 + Description = "Created by spiceinit" + Kernels = ($base/kernels/spk/de430.bsp, + $base/kernels/spk/mar097.bsp, + $base/kernels/pck/pck00009.tpc) + SolarLongitude = 294.73518830394 + + 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 = 75721 + Bytes = 56 + Records = 1 + ByteOrder = Lsb + CacheType = Linear + SpkTableStartTime = -709401200.26143 + SpkTableEndTime = -709401200.26143 + SpkTableOriginalSize = 1.0 + Description = "Created by spiceinit" + Kernels = ($base/kernels/spk/de430.bsp, + $base/kernels/spk/mar097.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 = 75777 + Bytes = 5109 +End_Object + +Object = NaifKeywords + BODY499_PM = (176.63, 350.89198226, 0) + BODY499_POLE_DEC = (52.8865, -0.0609, 0) + BODY499_POLE_RA = (317.68143, -0.1061, 0) + BODY499_RADII = (3396.19, 3396.19, 3376.2) + BODY_CODE = 499 + BODY_FRAME_CODE = 10014 + FRAME_-27002_CENTER = -27 + FRAME_-27002_CLASS = 4 + FRAME_-27002_CLASS_ID = -27002 + FRAME_-27002_NAME = VO1_VISB + INS-27002_CK_FRAME_ID = -27000 + INS-27002_CK_REFERENCE_ID = 2 + INS-27002_ITRANSL = (0, 0, 85) + INS-27002_ITRANSS = (0, 85, 0) + INS-27002_TRANSX = (0, 0.0117647058823529, 0) + INS-27002_TRANSY = (0, 0, 0.0117647058823529) + TKFRAME_-27002_ANGLES = (0.681, 0.032, -90.0228) + TKFRAME_-27002_AXES = (1, 2, 3) + TKFRAME_-27002_RELATIVE = VO1_PLATFORM + TKFRAME_-27002_SPEC = ANGLES + TKFRAME_-27002_UNITS = DEGREES + CLOCK_ET_-27999_33322515_COMPUTED = d5b9203a4d24c5c1 +End_Object +End + +  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcd + rstuvwxyz{|}~+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ +  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopq +  !"#$%&'()*89:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ +  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRST + bcdefghijklmnopqrstuvwxyz{|}~ !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ +  !"#$%&'()*+,-./01234567EFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ +  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`a + opqrstuvwxyz{|}~()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ +  !"#$%&'()*+,-./0123456789:;<=>?@ABCDRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmn +  !"#$%&'|}~56789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ +  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQ +_`abcdefghijklmnopqrstuvwxyz{|}~ !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{ +  !"#$%&'()*+,-./01234BCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ +  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^ + lmnopqrstuvwxyz{|}~%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ +  !"#$%&'()*+,-./0123456789:;<=>?@AOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ +  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijk +  !"#$yz{|}~23456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ +  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMN\]^_`abcdefghijklmnopqrstuvwxyz{|}~ !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwx +  !"#$%&'()*+,-./01?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ +  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[ + ijklmnopqrstuvwxyz{|}~"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ +  !"#$%&'()*+,-./0123456789:;<=>LMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ +  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefgh +  !vwxyz{|}~/0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ +  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstu +  !"#$%&'()*+,-.<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ +  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWX + fghijklmnopqrstuvwxyz{|}~ !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ +  !"#$%&'()*+,-./0123456789:;IJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ +  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcde + stuvwxyz{|}~,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ +  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqr +  !"#$%&'()*+9:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ +  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTU + cdefghijklmnopqrstuvwxyz{|}~ !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ +  !"#$%&'()*+,-./012345678FGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ +  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`ab + pqrstuvwxyz{|}~ӧ-^,?г 3UvkGĿѐ ȿv!8M$?+[e_@qK9Ƨ@Xt܅j:D:쿔v!8M$&6}&?1?VHbӿ]?dݔ?bh+ ?v!8M$=MZ75ɆT _|hKxZl,@^y4:6v%v!8M$Object = spiceinit + IsisVersion = "7.2.0 | 2024-03-18" + ProgramVersion = 2021-08-10 + ProgramPath = /Users/astamile/ISIS3/build/bin + ExecutionDateTime = 2024-03-18T12:39:41 + HostName = x86_64-apple-darwin13.4.0 + UserName = astamile + Description = "Update SPICE data (kernels, pointing, and position) for + a camera cube" + + Group = UserParameters + FROM = /Users/astamile/testData/default.cub + WEB = true + ATTACH = TRUE + CKSMITHED = FALSE + CKRECON = TRUE + CKPREDICTED = FALSE + CKNADIR = FALSE + SPKSMITHED = FALSE + SPKRECON = TRUE + SPKPREDICTED = FALSE + SHAPE = SYSTEM + STARTPAD = 0.0 + ENDPAD = 0.0 + URL = https://services.isis.astrogeology.usgs.gov/cgi-bin/spicei- + nit.cgi + PORT = 443 + End_Group +End_Object + +Object = spiceinit + IsisVersion = "7.2.0 | 2024-03-18" + ProgramVersion = 2021-08-10 + ProgramPath = /Users/astamile/ISIS3/build/bin + ExecutionDateTime = 2024-03-18T12:42:28 + HostName = x86_64-apple-darwin13.4.0 + UserName = astamile + Description = "Update SPICE data (kernels, pointing, and position) for + a camera cube" + + Group = UserParameters + FROM = /Users/astamile/testData/default.cub + WEB = true + ATTACH = TRUE + CKSMITHED = FALSE + CKRECON = TRUE + CKPREDICTED = FALSE + CKNADIR = FALSE + SPKSMITHED = FALSE + SPKRECON = TRUE + SPKPREDICTED = FALSE + SHAPE = SYSTEM + STARTPAD = 0.0 + ENDPAD = 0.0 + URL = https://services.isis.astrogeology.usgs.gov/cgi-bin/spicei- + nit.cgi + PORT = 443 + End_Group +End_Object + +Object = spiceinit + IsisVersion = "7.2.0 | 2023-03-15" + ProgramVersion = 2021-08-10 + ProgramPath = /Users/astamile/opt/anaconda3/envs/isis-prod/bin + ExecutionDateTime = 2024-08-27T18:10:36 + HostName = Unknown + UserName = astamile + Description = "Update SPICE data (kernels, pointing, and position) for + a camera cube" + + Group = UserParameters + FROM = /Users/astamile/testData/default.cub + WEB = YES + ATTACH = TRUE + CKSMITHED = FALSE + CKRECON = TRUE + CKPREDICTED = FALSE + CKNADIR = FALSE + SPKSMITHED = FALSE + SPKRECON = TRUE + SPKPREDICTED = FALSE + SHAPE = SYSTEM + STARTPAD = 0.0 + ENDPAD = 0.0 + URL = https://astrogeology.usgs.gov/apis/ale/v0.9.1/spiceserver/ + PORT = 443 + End_Group +End_Object + +Object = spiceinit + IsisVersion = "7.2.0 | 2023-03-15" + ProgramVersion = 2021-08-10 + ProgramPath = /Users/astamile/opt/anaconda3/envs/isis-prod/bin + ExecutionDateTime = 2024-08-27T18:12:27 + HostName = Unknown + UserName = astamile + Description = "Update SPICE data (kernels, pointing, and position) for + a camera cube" + + Group = UserParameters + FROM = /Users/astamile/testData/default.cub + WEB = YES + ATTACH = TRUE + CKSMITHED = FALSE + CKRECON = TRUE + CKPREDICTED = FALSE + CKNADIR = FALSE + SPKSMITHED = FALSE + SPKRECON = TRUE + SPKPREDICTED = FALSE + SHAPE = SYSTEM + STARTPAD = 0.0 + ENDPAD = 0.0 + URL = https://astrogeology.usgs.gov/apis/ale/v0.9.1/spiceserver/ + PORT = 443 + End_Group +End_Object + +Object = spiceinit + IsisVersion = "7.2.0 | 2023-03-15" + ProgramVersion = 2021-08-10 + ProgramPath = /Users/astamile/opt/anaconda3/envs/isis-prod/bin + ExecutionDateTime = 2024-08-27T18:15:35 + HostName = Unknown + UserName = astamile + Description = "Update SPICE data (kernels, pointing, and position) for + a camera cube" + + Group = UserParameters + FROM = /Users/astamile/testData/default.cub + WEB = YES + ATTACH = TRUE + CKSMITHED = FALSE + CKRECON = TRUE + CKPREDICTED = FALSE + CKNADIR = FALSE + SPKSMITHED = FALSE + SPKRECON = TRUE + SPKPREDICTED = FALSE + SHAPE = SYSTEM + STARTPAD = 0.0 + ENDPAD = 0.0 + URL = https://astrogeology.usgs.gov/apis/ale/v0.9.1/spiceserver/ + PORT = 443 + End_Group +End_Object + +Object = crop + IsisVersion = "8.3.0 | 2024-10-25" + ProgramVersion = 2015-01-15 + ProgramPath = /Users/astamile/ISIS3/build/bin + ExecutionDateTime = 2024-10-28T08:28:24 + HostName = x86_64-apple-darwin13.4.0 + UserName = astamile + Description = "Extracts a sub-area from a cube" + + Group = UserParameters + FROM = /Users/astamile/testData/default.cub + TO = /Users/astamile/testData/camstats-default.cub + SAMPLE = 1 + NSAMPLES = 100 + SINC = 1 + LINE = 1 + NLINES = 100 + LINC = 1 + PROPSPICE = true + End_Group +End_Object