From 6bdf2888b4c52c107aa711683618123675b15c85 Mon Sep 17 00:00:00 2001 From: Kristin Date: Mon, 6 Apr 2020 08:48:57 -0700 Subject: [PATCH] Adds support for JAXA archive Level 2B2 images to Kaguya MI in ISIS. (#3823) * Get kaguyami2isis working with l2b2 images from Jaxa archive and update unittest to includes images of this type. * Updated documentation to include level 2B2 support. * Added NIR image to unit test Co-authored-by: Kaitlyn Lee --- .../apps/kaguyami2isis/KaguyaMiInstrument.trn | 3 + .../apps/kaguyami2isis/kaguyami2isis.xml | 10 +-- .../apps/kaguyami2isis/tsts/level2b2/Makefile | 18 +++++ .../objs/KaguyaMiCamera/KaguyaMiCamera.cpp | 1 - .../objs/KaguyaMiCamera/KaguyaMiCamera.h | 2 +- .../objs/KaguyaMiCamera/KaguyaMiCamera.truth | 70 +++++++++++++++++++ .../kaguya/objs/KaguyaMiCamera/unitTest.cpp | 12 ++-- 7 files changed, 106 insertions(+), 10 deletions(-) create mode 100644 isis/src/kaguya/apps/kaguyami2isis/tsts/level2b2/Makefile diff --git a/isis/src/kaguya/apps/kaguyami2isis/KaguyaMiInstrument.trn b/isis/src/kaguya/apps/kaguyami2isis/KaguyaMiInstrument.trn index 718906c3be..7ca46de7c2 100644 --- a/isis/src/kaguya/apps/kaguyami2isis/KaguyaMiInstrument.trn +++ b/isis/src/kaguya/apps/kaguyami2isis/KaguyaMiInstrument.trn @@ -33,11 +33,13 @@ End_Group Group = SpacecraftName Auto InputKey = SPACECRAFT_NAME + InputKey = INSTRUMENT_HOST_NAME InputGroup = ROOT InputPosition = ROOT OutputName = SpacecraftName OutputPosition = (Object, IsisCube, Group, Instrument) Translation = (KAGUYA, SELENE-M) + Translation = (KAGUYA, "SELENE MAIN ORBITER") End_Group Group = InstrumentName @@ -513,6 +515,7 @@ End_Group Group = FirstDetectorElementPosition Auto InputKey = FIRST_DETECTOR_ELEMENT_POSITION + InputKey = FIRST_DETECTOR_ELEM_POSITION InputGroup = ROOT InputPosition = ROOT OutputName = FirstDetectorElementPosition diff --git a/isis/src/kaguya/apps/kaguyami2isis/kaguyami2isis.xml b/isis/src/kaguya/apps/kaguyami2isis/kaguyami2isis.xml index 93bac1e34f..bb0d739ae4 100644 --- a/isis/src/kaguya/apps/kaguyami2isis/kaguyami2isis.xml +++ b/isis/src/kaguya/apps/kaguyami2isis/kaguyami2isis.xml @@ -6,7 +6,7 @@

- This program will import a PDS formatted Kaguya MI VIS and NIR level 1 (EDR) + This program will import a PDS formatted Kaguya MI VIS and NIR level 1 (EDR) or level 2B2 image into an Isis cube.

@@ -78,6 +78,9 @@ Added a new error message informing the user that the file they are using is not compatible with kaguyami2isis. Fixes #2358. + + Updated documentation to include level 2B2 support. + @@ -94,11 +97,10 @@ Use this parameter to select the Kaguya MI VIS or - NIR EDR filename. This file must contain the PDS - labels. + NIR level 1 or level 2B2 filename. This file must contain the PDS labels. - *.img *.IMG + *.img *.IMG *.lbl *.LBL diff --git a/isis/src/kaguya/apps/kaguyami2isis/tsts/level2b2/Makefile b/isis/src/kaguya/apps/kaguyami2isis/tsts/level2b2/Makefile new file mode 100644 index 0000000000..73abf3b6ed --- /dev/null +++ b/isis/src/kaguya/apps/kaguyami2isis/tsts/level2b2/Makefile @@ -0,0 +1,18 @@ +APPNAME = kaguyami2isis + +include $(ISISROOT)/make/isismake.tsts + +commands: + # Visible + $(APPNAME) from=$(INPUT)/MNA_2B2_01_01228N602E1354.lbl \ + to=$(OUTPUT)/MNA_2B2_01_01228N602E1354.cub > /dev/null; + catlab from=$(OUTPUT)/MNA_2B2_01_01228N602E1354.cub \ + to=$(OUTPUT)/MNA_2B2_01_01228N602E1354.pvl > /dev/null; + + # IR + $(APPNAME) from=$(INPUT)/MVA_2B2_01_01228N608E1354.lbl \ + to=$(OUTPUT)/MVA_2B2_01_01228N608E1354.cub > /dev/null; + catlab from=$(OUTPUT)/MVA_2B2_01_01228N608E1354.cub \ + to=$(OUTPUT)/MVA_2B2_01_01228N608E1354.pvl > /dev/null; + + diff --git a/isis/src/kaguya/objs/KaguyaMiCamera/KaguyaMiCamera.cpp b/isis/src/kaguya/objs/KaguyaMiCamera/KaguyaMiCamera.cpp index 449594da10..62a3849d7c 100644 --- a/isis/src/kaguya/objs/KaguyaMiCamera/KaguyaMiCamera.cpp +++ b/isis/src/kaguya/objs/KaguyaMiCamera/KaguyaMiCamera.cpp @@ -112,7 +112,6 @@ namespace Isis { KaguyaMiCameraDistortionMap *distMap = new KaguyaMiCameraDistortionMap(this); - //LroNarrowAngleDistortionMap *distMap = new LroNarrowAngleDistortionMap(this); distMap->SetDistortion(naifIkCode()); // Setup the ground and sky map diff --git a/isis/src/kaguya/objs/KaguyaMiCamera/KaguyaMiCamera.h b/isis/src/kaguya/objs/KaguyaMiCamera/KaguyaMiCamera.h index f8ea389fb8..2de86700e4 100644 --- a/isis/src/kaguya/objs/KaguyaMiCamera/KaguyaMiCamera.h +++ b/isis/src/kaguya/objs/KaguyaMiCamera/KaguyaMiCamera.h @@ -24,7 +24,7 @@ namespace Isis { /** - * @brief LRO Narrow Angle Camera Model + * @brief Kaguya MI Camera Model * * This is the camera model for the Kaguya Multiband pushbroom imagers (VIR and NIR) * diff --git a/isis/src/kaguya/objs/KaguyaMiCamera/KaguyaMiCamera.truth b/isis/src/kaguya/objs/KaguyaMiCamera/KaguyaMiCamera.truth index 8d059f2ce8..212a210671 100644 --- a/isis/src/kaguya/objs/KaguyaMiCamera/KaguyaMiCamera.truth +++ b/isis/src/kaguya/objs/KaguyaMiCamera/KaguyaMiCamera.truth @@ -68,6 +68,76 @@ For center pixel position ... Latitude OK Longitude OK +-------------------------------------------- +FileName: MVA_2B2_01_01228N608E1354.cub +CK Frame: -131330 + +Kernel IDs: +CK Frame ID = -131000 +CK Reference ID = 1 +SPK Target ID = -131 +SPK Reference ID = 1 + +Spacecraft Name Long: Kaguya +Spacecraft Name Short: Kaguya +Instrument Name Long: Multi Band Imager Visible +Instrument Name Short: MI-VIS + +For upper left corner ... +DeltaSample = 0.000000000 +DeltaLine = 0.000000000 + +For upper right corner ... +DeltaSample = 0.000000000 +DeltaLine = 0.000000000 + +For lower left corner ... +DeltaSample = 0.000000000 +DeltaLine = 0.000000000 + +For lower right corner ... +DeltaSample = 0.000000000 +DeltaLine = 0.000000000 + +For center pixel position ... +Latitude OK +Longitude OK + +-------------------------------------------- +FileName: MNA_2B2_01_01228N602E1354.cub +CK Frame: -131340 + +Kernel IDs: +CK Frame ID = -131000 +CK Reference ID = 1 +SPK Target ID = -131 +SPK Reference ID = 1 + +Spacecraft Name Long: Kaguya +Spacecraft Name Short: Kaguya +Instrument Name Long: Multi Band Imager Infrared +Instrument Name Short: MI-NIR + +For upper left corner ... +DeltaSample = 0.000000000 +DeltaLine = 0.000000000 + +For upper right corner ... +DeltaSample = 0.000000000 +DeltaLine = 0.000000000 + +For lower left corner ... +DeltaSample = 0.000000000 +DeltaLine = 0.000000000 + +For lower right corner ... +DeltaSample = 0.000000000 +DeltaLine = 0.000000000 + +For center pixel position ... +Latitude OK +Longitude OK + -------------------------------------------- Testing exceptions: diff --git a/isis/src/kaguya/objs/KaguyaMiCamera/unitTest.cpp b/isis/src/kaguya/objs/KaguyaMiCamera/unitTest.cpp index e5726d6018..81b71043af 100644 --- a/isis/src/kaguya/objs/KaguyaMiCamera/unitTest.cpp +++ b/isis/src/kaguya/objs/KaguyaMiCamera/unitTest.cpp @@ -44,10 +44,14 @@ int main(int argc, char *argv[]) { // These should be lat/lon at center of image. To obtain these numbers for a new cube/camera, // set both the known lat and known lon to zero and copy the unit test output "Latitude off by: " // and "Longitude off by: " values directly into these variables. - double knownLat[2] = { -12.0400820752276996, 47.7445483329470406 }; - double knownLon[2] = { 355.7272261079595523, 42.9611485167199660 }; - - char files[2][1024] = { "$kaguya/testData/MI_VIS.cub", "$kaguya/testData/MI_NIR.cub" }; + double knownLat[4] = { -12.0400820752276996, 47.7445483329470406, + 60.8041933170744215, 60.1567063916710580}; + double knownLon[4] = { 355.7272261079595523, 42.9611485167199660, + 135.3886983694549713, 135.3809757236753057}; + + char files[4][1024] = { "$kaguya/testData/MI_VIS.cub", "$kaguya/testData/MI_NIR.cub", + "$kaguya/testData/MVA_2B2_01_01228N608E1354.cub", + "$kaguya/testData/MNA_2B2_01_01228N602E1354.cub"}; for (unsigned int i = 0; i < sizeof(knownLat) / sizeof(double); i++) { Cube c(files[i], "r"); -- GitLab