Loading isis/src/base/objs/ProcessImportFits/ProcessImportFits.cpp +23 −6 Original line number Diff line number Diff line Loading @@ -47,6 +47,7 @@ namespace Isis { ProcessImportFits::ProcessImportFits() { m_fitsLabels = NULL; m_headerSizes = NULL; m_dataStarts = NULL; } Loading @@ -56,6 +57,7 @@ namespace Isis { ProcessImportFits::~ProcessImportFits() { delete m_fitsLabels; delete m_headerSizes; delete m_dataStarts; m_file.close(); } Loading @@ -69,6 +71,7 @@ namespace Isis { m_fitsLabels = new QList< PvlGroup * >; m_headerSizes = new QList < int >; m_dataStarts = new QList < int >; // Process each FITS label area. Storing each in its own PvlGroup char readBuf[81]; Loading Loading @@ -146,14 +149,16 @@ namespace Isis { m_headerSizes->push_back((int)ceil(place / 2880.0)); // The file pointer should be pointing at the end of the record that contained "END" // Move the file pointer past the padding after the "END" // Move the file pointer past the padding after the "END" (i.e., points to start of data) std::streamoff jump; jump = m_headerSizes->last() * 2880 - place; m_file.seekg(jump, std::ios_base::cur); m_dataStarts->push_back(m_file.tellg()); // NOTE: For now we only handle image data (i.e., keywords BITPIX & NAXIS & NAXISx must exist) // Does this look like a label for a FITS image? Stop after the first label that does not // because we don't know how to move the file pointer past a non-image data. // because we don't know how to move the file pointer past a non-image data extension. if (fitsLabel->hasKeyword("BITPIX") && fitsLabel->hasKeyword("NAXIS") && fitsLabel->hasKeyword("NAXIS1")) { Loading Loading @@ -183,6 +188,7 @@ namespace Isis { else if (m_fitsLabels->size() > 1) { m_fitsLabels->pop_back(); m_headerSizes->pop_back(); m_dataStarts->pop_back(); break; } else { Loading @@ -201,6 +207,14 @@ namespace Isis { * @return PvlGroup version of a FITS label corrisponding to requested label number */ PvlGroup ProcessImportFits::fitsLabel(int labelNumber) const { if (labelNumber >= m_fitsLabels->size()) { QString msg = QObject::tr("The requested label number [%1], from file [%2] is " "past the last image in this FITS file. Image count is [%3]").arg(labelNumber). arg(m_name.expanded()).arg(m_fitsLabels->size()-1); throw IException(IException::User, msg, _FILEINFO_); } if (!m_fitsLabels) { QString msg = QObject::tr("The FITS label has not been initialized, call setFitsFile first"); throw IException(IException::Programmer, msg, _FILEINFO_); Loading Loading @@ -249,6 +263,8 @@ namespace Isis { * @param fitsFile Name of the FITS file to open */ void ProcessImportFits::setFitsFile(FileName fitsFile) { m_name = fitsFile; SetInputFile(fitsFile.toString()); // Make sure the file exists m_file.open(fitsFile.expanded().toLocal8Bit().constData(), std::ios::in | std::ios::binary); Loading Loading @@ -285,17 +301,18 @@ namespace Isis { void ProcessImportFits::setProcessFileStructure(int labelNumber) { if (labelNumber >= m_fitsLabels->size()) { QString msg = QObject::tr("The requested label number, [%1], from file [%2] is " QString msg = QObject::tr("The requested label number [%1], from file [%2] is " "past the last image in this FITS file [%3]").arg(labelNumber). arg(InputFile()).arg(m_fitsLabels->size()-1); throw IException(IException::User, msg, _FILEINFO_); } PvlGroup label = *(*m_fitsLabels)[labelNumber]; // std::cout << label << std::endl; SetFileHeaderBytes((*m_headerSizes)[labelNumber] * 2880); SaveFileHeader(); // Set the ProcessImport to skip over all the previous images and their labels and the label for // this image. Don't save this info (think memory) SetFileHeaderBytes((*m_dataStarts)[labelNumber]); //SaveFileHeader(); // Find pixel type. NOTE: There are several unsupported possiblites Isis::PixelType type; Loading isis/src/base/objs/ProcessImportFits/ProcessImportFits.h +4 −1 Original line number Diff line number Diff line Loading @@ -66,8 +66,11 @@ namespace Isis { //! The stream used to read the FITS file std::ifstream m_file; //! The number of 2880 byte header records before each data section //! The number/count of 2880 byte header records for each header section QList<int> *m_headerSizes; //! The starting byte of the data for each image QList<int> *m_dataStarts; }; }; Loading isis/src/docsys/Object/build/isisDoxyDefs.doxydef +23 −1 Original line number Diff line number Diff line Loading @@ -24,24 +24,28 @@ * object or application. * */ /** * \namespace Galileo * * Namespace for all %Isis Galileo mission objects * */ /** * \namespace Isis::Mgs * * Namespace for all %Isis Mars Global Surveyor mission objects * */ /** * \namespace Isis::Mro * * Namespace for all %Isis Mars Reconnaissance Orbiter mission objects * */ /** * \namespace Isis::Odyssey * Loading @@ -55,6 +59,7 @@ * Namespace for all %Isis Lunar Orbiter mission objects * */ /** * \namespace Isis::Lro * Loading @@ -62,13 +67,13 @@ * */ /** * \namespace Qisis * * Namespace for the %Isis visualazation objects * */ /** * \namespace std * Loading Loading @@ -434,6 +439,23 @@ * */ // New Horizons /** * \defgroup NewHorizons New Horizons * * These objects provide functionality for manipulating data from the * New Horizons mission. New Horizons is part of NASA's New Frontiers * Program. * New Horizons launced January 19, 2006 and is expected to spend five months studying * Pluto durring the summer of 2015. * * Mission site: http://www.nasa.gov/mission_pages/newhorizons/main/#.VA4QY8NuH4I * * */ // VIKING /** * \defgroup Viking Viking Loading isis/src/docsys/build/doctoc.xml +44 −44 Original line number Diff line number Diff line Loading @@ -177,6 +177,26 @@ </files> </document> <document> <title>Installing ISIS</title> <brief>Downloading and installing ISIS 3</brief> <description> This document describes how to download and install a binary version of ISIS. </description> <category> <categoryItem>technicaldoc</categoryItem> </category> <audience> <target>administrator</target> </audience> <files> <file hidden="" primary="true"> <type>HTML</type> <source>../documents/InstallGuide/index.html</source> </file> </files> </document> <document> <title>ISIS 2 User Documentation</title> <brief>Links to ISIS 2 User Documents</brief> <description>List of links to documents covering general topics for users of ISIS 2.1</description> Loading Loading @@ -218,6 +238,30 @@ </files> </document> <document> <title>ISIS 3 Coding Standards and Style Guide</title> <brief>Coding standards for ISIS 3 developers (effective February 1, 2012).</brief> <description> This document will describe the coding standards for maintaining ISIS 3 source code. It was created to ensure that the ISIS 3 package is programmed for consistency, readability and ease of future maintenance. This document does not attempt to address every possible issue. However, the guidelines that have been outlined should not be deviated from, except under special situations. </description> <category> <categoryItem>reference</categoryItem> </category> <audience> <target>intermediate</target> </audience> <files> <file hidden="" primary=""> <type>HTML</type> <source>../documents/CodingStandards/CodingStandards.html</source> </file> </files> </document> <document> <title>Conversion from ISIS 2 to ISIS 3</title> <brief>Reasons and considerations to upgrade from ISIS 2 to ISIS 3</brief> <description>The reasons, considerations, and major design changes related to the upgrade from ISIS 2 to ISIS 3</description> Loading Loading @@ -417,26 +461,6 @@ </files> </document> <document> <title>Installing ISIS</title> <brief>Downloading and installing ISIS 3</brief> <description> This document describes how to download and install a binary version of ISIS. </description> <category> <categoryItem>technicaldoc</categoryItem> </category> <audience> <target>administrator</target> </audience> <files> <file hidden="" primary="true"> <type>HTML</type> <source>../documents/InstallGuide/index.html</source> </file> </files> </document> <document> <title>ISIS 2 Tutorials</title> <brief>Links to ISIS 2 tutorials, procedures, and how-to's</brief> <description>List of links to ISIS 2 tutorials, procedures, and how-to's.</description> Loading Loading @@ -526,30 +550,6 @@ </files> </document> <document> <title>ISIS 3 Coding Standards and Style Guide</title> <brief>Coding standards for ISIS 3 developers (effective February 1, 2012).</brief> <description> This document will describe the coding standards for maintaining ISIS 3 source code. It was created to ensure that the ISIS 3 package is programmed for consistency, readability and ease of future maintenance. This document does not attempt to address every possible issue. However, the guidelines that have been outlined should not be deviated from, except under special situations. </description> <category> <categoryItem>reference</categoryItem> </category> <audience> <target>intermediate</target> </audience> <files> <file hidden="" primary=""> <type>HTML</type> <source>../documents/CodingStandards/CodingStandards.html</source> </file> </files> </document> <document> <title>Logical Cube Format Guide</title> <brief>Guide to core ISIS labels and a conceptual file structure for a cube</brief> <description> Loading isis/src/docsys/documents/InstallGuide/InstallGuide.xml +7 −1 Original line number Diff line number Diff line Loading @@ -498,11 +498,17 @@ you must <em>not</em> upgrade the ISIS Data Files!!! rsync -azv --delete --partial isisdist.astrogeology.usgs.gov::isis3data/data/mro data/ </pre> <p> Odyssey Mission (kernels can be excluded): Mars Odyssey Mission (kernels can be excluded): </p> <pre> rsync -azv --delete --partial isisdist.astrogeology.usgs.gov::isis3data/data/odyssey data/ </pre> <p> New Horizons Mission (kernels can be excluded): </p> <pre> rsync -azv --delete --partial isisdist.astrogeology.usgs.gov::isis3data/data/newhorizons data/ </pre> <p> Rolo Mission (kernels can be excluded): </p> Loading Loading
isis/src/base/objs/ProcessImportFits/ProcessImportFits.cpp +23 −6 Original line number Diff line number Diff line Loading @@ -47,6 +47,7 @@ namespace Isis { ProcessImportFits::ProcessImportFits() { m_fitsLabels = NULL; m_headerSizes = NULL; m_dataStarts = NULL; } Loading @@ -56,6 +57,7 @@ namespace Isis { ProcessImportFits::~ProcessImportFits() { delete m_fitsLabels; delete m_headerSizes; delete m_dataStarts; m_file.close(); } Loading @@ -69,6 +71,7 @@ namespace Isis { m_fitsLabels = new QList< PvlGroup * >; m_headerSizes = new QList < int >; m_dataStarts = new QList < int >; // Process each FITS label area. Storing each in its own PvlGroup char readBuf[81]; Loading Loading @@ -146,14 +149,16 @@ namespace Isis { m_headerSizes->push_back((int)ceil(place / 2880.0)); // The file pointer should be pointing at the end of the record that contained "END" // Move the file pointer past the padding after the "END" // Move the file pointer past the padding after the "END" (i.e., points to start of data) std::streamoff jump; jump = m_headerSizes->last() * 2880 - place; m_file.seekg(jump, std::ios_base::cur); m_dataStarts->push_back(m_file.tellg()); // NOTE: For now we only handle image data (i.e., keywords BITPIX & NAXIS & NAXISx must exist) // Does this look like a label for a FITS image? Stop after the first label that does not // because we don't know how to move the file pointer past a non-image data. // because we don't know how to move the file pointer past a non-image data extension. if (fitsLabel->hasKeyword("BITPIX") && fitsLabel->hasKeyword("NAXIS") && fitsLabel->hasKeyword("NAXIS1")) { Loading Loading @@ -183,6 +188,7 @@ namespace Isis { else if (m_fitsLabels->size() > 1) { m_fitsLabels->pop_back(); m_headerSizes->pop_back(); m_dataStarts->pop_back(); break; } else { Loading @@ -201,6 +207,14 @@ namespace Isis { * @return PvlGroup version of a FITS label corrisponding to requested label number */ PvlGroup ProcessImportFits::fitsLabel(int labelNumber) const { if (labelNumber >= m_fitsLabels->size()) { QString msg = QObject::tr("The requested label number [%1], from file [%2] is " "past the last image in this FITS file. Image count is [%3]").arg(labelNumber). arg(m_name.expanded()).arg(m_fitsLabels->size()-1); throw IException(IException::User, msg, _FILEINFO_); } if (!m_fitsLabels) { QString msg = QObject::tr("The FITS label has not been initialized, call setFitsFile first"); throw IException(IException::Programmer, msg, _FILEINFO_); Loading Loading @@ -249,6 +263,8 @@ namespace Isis { * @param fitsFile Name of the FITS file to open */ void ProcessImportFits::setFitsFile(FileName fitsFile) { m_name = fitsFile; SetInputFile(fitsFile.toString()); // Make sure the file exists m_file.open(fitsFile.expanded().toLocal8Bit().constData(), std::ios::in | std::ios::binary); Loading Loading @@ -285,17 +301,18 @@ namespace Isis { void ProcessImportFits::setProcessFileStructure(int labelNumber) { if (labelNumber >= m_fitsLabels->size()) { QString msg = QObject::tr("The requested label number, [%1], from file [%2] is " QString msg = QObject::tr("The requested label number [%1], from file [%2] is " "past the last image in this FITS file [%3]").arg(labelNumber). arg(InputFile()).arg(m_fitsLabels->size()-1); throw IException(IException::User, msg, _FILEINFO_); } PvlGroup label = *(*m_fitsLabels)[labelNumber]; // std::cout << label << std::endl; SetFileHeaderBytes((*m_headerSizes)[labelNumber] * 2880); SaveFileHeader(); // Set the ProcessImport to skip over all the previous images and their labels and the label for // this image. Don't save this info (think memory) SetFileHeaderBytes((*m_dataStarts)[labelNumber]); //SaveFileHeader(); // Find pixel type. NOTE: There are several unsupported possiblites Isis::PixelType type; Loading
isis/src/base/objs/ProcessImportFits/ProcessImportFits.h +4 −1 Original line number Diff line number Diff line Loading @@ -66,8 +66,11 @@ namespace Isis { //! The stream used to read the FITS file std::ifstream m_file; //! The number of 2880 byte header records before each data section //! The number/count of 2880 byte header records for each header section QList<int> *m_headerSizes; //! The starting byte of the data for each image QList<int> *m_dataStarts; }; }; Loading
isis/src/docsys/Object/build/isisDoxyDefs.doxydef +23 −1 Original line number Diff line number Diff line Loading @@ -24,24 +24,28 @@ * object or application. * */ /** * \namespace Galileo * * Namespace for all %Isis Galileo mission objects * */ /** * \namespace Isis::Mgs * * Namespace for all %Isis Mars Global Surveyor mission objects * */ /** * \namespace Isis::Mro * * Namespace for all %Isis Mars Reconnaissance Orbiter mission objects * */ /** * \namespace Isis::Odyssey * Loading @@ -55,6 +59,7 @@ * Namespace for all %Isis Lunar Orbiter mission objects * */ /** * \namespace Isis::Lro * Loading @@ -62,13 +67,13 @@ * */ /** * \namespace Qisis * * Namespace for the %Isis visualazation objects * */ /** * \namespace std * Loading Loading @@ -434,6 +439,23 @@ * */ // New Horizons /** * \defgroup NewHorizons New Horizons * * These objects provide functionality for manipulating data from the * New Horizons mission. New Horizons is part of NASA's New Frontiers * Program. * New Horizons launced January 19, 2006 and is expected to spend five months studying * Pluto durring the summer of 2015. * * Mission site: http://www.nasa.gov/mission_pages/newhorizons/main/#.VA4QY8NuH4I * * */ // VIKING /** * \defgroup Viking Viking Loading
isis/src/docsys/build/doctoc.xml +44 −44 Original line number Diff line number Diff line Loading @@ -177,6 +177,26 @@ </files> </document> <document> <title>Installing ISIS</title> <brief>Downloading and installing ISIS 3</brief> <description> This document describes how to download and install a binary version of ISIS. </description> <category> <categoryItem>technicaldoc</categoryItem> </category> <audience> <target>administrator</target> </audience> <files> <file hidden="" primary="true"> <type>HTML</type> <source>../documents/InstallGuide/index.html</source> </file> </files> </document> <document> <title>ISIS 2 User Documentation</title> <brief>Links to ISIS 2 User Documents</brief> <description>List of links to documents covering general topics for users of ISIS 2.1</description> Loading Loading @@ -218,6 +238,30 @@ </files> </document> <document> <title>ISIS 3 Coding Standards and Style Guide</title> <brief>Coding standards for ISIS 3 developers (effective February 1, 2012).</brief> <description> This document will describe the coding standards for maintaining ISIS 3 source code. It was created to ensure that the ISIS 3 package is programmed for consistency, readability and ease of future maintenance. This document does not attempt to address every possible issue. However, the guidelines that have been outlined should not be deviated from, except under special situations. </description> <category> <categoryItem>reference</categoryItem> </category> <audience> <target>intermediate</target> </audience> <files> <file hidden="" primary=""> <type>HTML</type> <source>../documents/CodingStandards/CodingStandards.html</source> </file> </files> </document> <document> <title>Conversion from ISIS 2 to ISIS 3</title> <brief>Reasons and considerations to upgrade from ISIS 2 to ISIS 3</brief> <description>The reasons, considerations, and major design changes related to the upgrade from ISIS 2 to ISIS 3</description> Loading Loading @@ -417,26 +461,6 @@ </files> </document> <document> <title>Installing ISIS</title> <brief>Downloading and installing ISIS 3</brief> <description> This document describes how to download and install a binary version of ISIS. </description> <category> <categoryItem>technicaldoc</categoryItem> </category> <audience> <target>administrator</target> </audience> <files> <file hidden="" primary="true"> <type>HTML</type> <source>../documents/InstallGuide/index.html</source> </file> </files> </document> <document> <title>ISIS 2 Tutorials</title> <brief>Links to ISIS 2 tutorials, procedures, and how-to's</brief> <description>List of links to ISIS 2 tutorials, procedures, and how-to's.</description> Loading Loading @@ -526,30 +550,6 @@ </files> </document> <document> <title>ISIS 3 Coding Standards and Style Guide</title> <brief>Coding standards for ISIS 3 developers (effective February 1, 2012).</brief> <description> This document will describe the coding standards for maintaining ISIS 3 source code. It was created to ensure that the ISIS 3 package is programmed for consistency, readability and ease of future maintenance. This document does not attempt to address every possible issue. However, the guidelines that have been outlined should not be deviated from, except under special situations. </description> <category> <categoryItem>reference</categoryItem> </category> <audience> <target>intermediate</target> </audience> <files> <file hidden="" primary=""> <type>HTML</type> <source>../documents/CodingStandards/CodingStandards.html</source> </file> </files> </document> <document> <title>Logical Cube Format Guide</title> <brief>Guide to core ISIS labels and a conceptual file structure for a cube</brief> <description> Loading
isis/src/docsys/documents/InstallGuide/InstallGuide.xml +7 −1 Original line number Diff line number Diff line Loading @@ -498,11 +498,17 @@ you must <em>not</em> upgrade the ISIS Data Files!!! rsync -azv --delete --partial isisdist.astrogeology.usgs.gov::isis3data/data/mro data/ </pre> <p> Odyssey Mission (kernels can be excluded): Mars Odyssey Mission (kernels can be excluded): </p> <pre> rsync -azv --delete --partial isisdist.astrogeology.usgs.gov::isis3data/data/odyssey data/ </pre> <p> New Horizons Mission (kernels can be excluded): </p> <pre> rsync -azv --delete --partial isisdist.astrogeology.usgs.gov::isis3data/data/newhorizons data/ </pre> <p> Rolo Mission (kernels can be excluded): </p> Loading