Skip to content

Commit

Permalink
7.0 (#4795)
Browse files Browse the repository at this point in the history
* Add a list of browse records to the output rdr if they exist on the cube (#4774)

* Converted TGO IngestReingest Category Test. (#4789)

* Fixed disk trashing on input cube reads (#4793)

* Prepwork for 7.0.0 RC1

* Cleaning up the Markdown a bit

I saw that some sections had wrong section numbers as they were hardcoded instead of making use of Markdown's auto-numbering.
I repaired the indents for auto-numbering to work in the first half of the document and didn't touch the 2nd half where things looked okay.

* Fixed jigsaw observation mode (#4791)

* Test modification

* Added changelog

* Revert "added custom target to copy over camera.plugin files on ninja install solves #3834 (#4769)"

This reverts commit 2681ffe.

* updates for conda build of 7.0 (#4783)

* xalan is required for ISIS, see cmakelists.txt (#4785)

* Mac OS 11.6 local build fixes (#4788)

* xalan is required for ISIS, see cmakelists.txt

* Fix conda build for Mac 11.6

Co-authored-by: acpaquette <[email protected]>
Co-authored-by: Amy Stamile <[email protected]>
Co-authored-by: Michael Aye <[email protected]>
Co-authored-by: Jesse Mapel <[email protected]>
Co-authored-by: Jesse Mapel <[email protected]>
  • Loading branch information
6 people authored Feb 11, 2022
1 parent 447603d commit 8d4b96e
Show file tree
Hide file tree
Showing 10 changed files with 296 additions and 251 deletions.
1 change: 1 addition & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -67,6 +67,7 @@ Keywords when running CAMSTATS. [#3605](https://github.com/USGS-Astrogeology/IS
- Fixed Maptrim failures when mode=both for PositiveWest longitude direction. [#4646](https://github.com/USGS-Astrogeology/ISIS3/issues/4646)
- Fixed the Vesta target name not being translated properly in dawnfc2isis. [#4638](https://github.com/USGS-Astrogeology/ISIS3/issues/4638)
- Fixed a bug where the measure residuals reported in the bundleout.txt file were incorrect. [#4655](https://github.com/USGS-Astrogeology/ISIS3/issues/4655)
- Fuxed a bug where jigsaw would raise an error when solving for framing camera pointing in observation mode. [#4686](https://github.com/USGS-Astrogeology/ISIS3/issues/4686)

## [6.0.0] - 2021-08-27

Expand Down
141 changes: 73 additions & 68 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -40,64 +40,70 @@ This installation guide is for ISIS users interested in installing ISIS (3.6.0)+

### ISIS Installation With Conda

1. Download either the Anaconda or Miniconda installation script for your OS platform. Anaconda is a much larger distribtion of packages supporting scientific python, while Miniconda is a minimal installation and not as large: [Anaconda installer](https://www.anaconda.com/download), [Miniconda installer](https://conda.io/miniconda.html)
2. If you are running on some variant of Linux, open a terminal window in the directory where you downloaded the script, and run the following commands. In this example, we chose to do a full install of Anaconda, and our OS is Linux-based. Your file name may be different depending on your environment.

chmod +x Anaconda3-5.3.0-Linux-x86_64.sh
./Anaconda3-5.3.0-Linux-x86_64.sh


1. Download either the Anaconda or Miniconda installation script for your OS platform. Anaconda is a much larger distribtion of packages supporting scientific python, while Miniconda is a minimal installation and not as large: [Anaconda installer](https://www.anaconda.com/download), [Miniconda installer](https://conda.io/miniconda.html)
1. If you are running on some variant of Linux, open a terminal window in the directory where you downloaded the script, and run the following commands. In this example, we chose to do a full install of Anaconda, and our OS is Linux-based. Your file name may be different depending on your environment.
```bash
chmod +x Anaconda3-5.3.0-Linux-x86_64.sh
./Anaconda3-5.3.0-Linux-x86_64.sh
```
This will start the Anaconda installer which will guide you through the installation process.

3. If you are running Mac OS X, a pkg file (which looks similar to Anaconda3-5.3.0-MacOSX-x86\_64.pkg) will be downloaded. Double-click on the file to start the installation process.
4. After the installation has finished, open up a bash prompt in your terminal window.
5. Next setup your Anaconda environment for ISIS. In the bash prompt, run the following commands:

#Create a new conda environment to install ISIS in
conda create -n isis python=3.6

#Activate the environment
#Depending on your version of Anaconda use one of the following:
1. If you are running Mac OS X, a pkg file (which looks similar to Anaconda3-5.3.0-MacOSX-x86\_64.pkg) will be downloaded. Double-click on the file to start the installation process.
1. After the installation has finished, open up a bash prompt in your terminal window.
1. Next setup your Anaconda environment for ISIS. In the bash prompt, run the following commands:

#Anaconda 3.4 and up:
conda activate isis

#Prior to Anaconda 3.4:
source activate isis

#Add the following channels to the environment
conda config --env --add channels conda-forge
conda config --env --add channels usgs-astrogeology
```bash
#Create a new conda environment to install ISIS in
conda create -n isis python=3.6
#Verify you have the correct channels:
conda config --show channels
#Activate the environment
#Depending on your version of Anaconda use one of the following:
#You should see:
#Anaconda 3.4 and up:
conda activate isis
channels:
- usgs-astrogeology
- conda-forge
- defaults
#Prior to Anaconda 3.4:
source activate isis
#The order is important. If conda-forge is before usgs-astrogeology, you will need to run:
#Add the following channels to the environment
conda config --env --add channels conda-forge
conda config --env --add channels usgs-astrogeology
conda config --env --add channels usgs-astrogeology
#Verify you have the correct channels:
conda config --show channels
6. Download [Mamba](https://github.com/mamba-org/mamba). The ISIS environment is quite large and the Conda solver can take hours to resolve it. Instead, we recommend you use the much faster [Mamba](https://github.com/mamba-org/mamba) solver:
#You should see:
conda install -n base -c conda-forge mamba
channels:
- usgs-astrogeology
- conda-forge
- defaults
7. The environment is now ready to download ISIS and its dependencies:
#The order is important. If conda-forge is before usgs-astrogeology, you will need to run:
mamba install -c usgs-astrogeology isis
conda config --env --add channels usgs-astrogeology
```

1. Download [Mamba](https://github.com/mamba-org/mamba). The ISIS environment is quite large and the Conda solver can take hours to resolve it. Instead, we recommend you use the much faster [Mamba](https://github.com/mamba-org/mamba) solver:

```bash
conda install -n base -c conda-forge mamba
```
1. The environment is now ready to download ISIS and its dependencies:

```bash
mamba install -c usgs-astrogeology isis
```

If you would like to work with our latest ISIS version 3, rather than updating
to ISIS 4, instead run:

mamba install -c usgs-astrogeology isis=3.10.0
```bash
mamba install -c usgs-astrogeology isis=3.10.0
```


8. Finally, setup the environment variables:
1. Finally, setup the environment variables:

ISIS requires several environment variables to be set in order to run correctly.
The variables include: ISISROOT and ISISDATA.
Expand All @@ -109,55 +115,54 @@ This installation guide is for ISIS users interested in installing ISIS (3.6.0)+

There are two methods to configure the environment variables for ISIS:

7.1 Using `conda env config vars` *preferred*

Conda has a built in method for configuring environment variables that are specific to a conda environment since version 4.8.
This version number applies only to the conda package, not to the version of miniconda or anaconda that was installed.
1. Using `conda env config vars` *preferred*

To determine if your version of conda is recent enough run:
Conda has a built in method for configuring environment variables that are specific to a conda environment since version 4.8.
This version number applies only to the conda package, not to the version of miniconda or anaconda that was installed.

conda --version
To determine if your version of conda is recent enough run:

If the version number is less than 4.8, update conda to a newer version by running:
conda --version

conda update -n base conda
If the version number is less than 4.8, update conda to a newer version by running:

The version number should now be greater than 4.8.
conda update -n base conda

To use the built in environment variable configuration feature, first activate the environment by first running:
The version number should now be greater than 4.8.

conda activate isis
To use the built in environment variable configuration feature, first activate the environment by first running:

After activation, the environment variables can be set using the syntax: `conda config vars set KEY=VALUE`.
To set all the environment variables ISIS requires, run the following command, updating the path to `ISISDATA` as needed:
conda activate isis

conda env config vars set ISISROOT=$CONDA_PREFIX ISISDATA=[path to data directory]
After activation, the environment variables can be set using the syntax: `conda config vars set KEY=VALUE`.
To set all the environment variables ISIS requires, run the following command, updating the path to `ISISDATA` as needed:

To make these changes take effect, re-activate the isis environment by running:
conda env config vars set ISISROOT=$CONDA_PREFIX ISISDATA=[path to data directory]

conda activate isis
To make these changes take effect, re-activate the isis environment by running:

The environment variables are now set and ISIS is ready for use every time the isis environment is activated.
conda activate isis

**Note** This method will not enable tab completion for arguments in C-Shell.
The environment variables are now set and ISIS is ready for use every time the isis environment is activated.

**Note** This method will not enable tab completion for arguments in C-Shell.

7.2 Using the provided isisVarInit.py script:

To use the default values for: `$ISISROOT` and `$ISISDATA`, run the ISIS variable initialization script with default arguments:
1. Using the provided isisVarInit.py script:

python $CONDA_PREFIX/scripts/isisVarInit.py
To use the default values for: `$ISISROOT` and `$ISISDATA`, run the ISIS variable initialization script with default arguments:

Executing this script with no arguments will result in $ISISROOT=$CONDA\_PREFIX and $ISISDATA=$CONDA\_PREFIX/data. The user can specify different directories for `$ISISDATA` using the optional value:
python $CONDA_PREFIX/scripts/isisVarInit.py

python $CONDA_PREFIX/scripts/isisVarInit.py --data-dir=[path to data directory]
Executing this script with no arguments will result in $ISISROOT=$CONDA\_PREFIX and $ISISDATA=$CONDA\_PREFIX/data. The user can specify different directories for `$ISISDATA` using the optional value:

Now every time the isis environment is activated, $ISISROOT and $ISISDATA will be set to the values passed to isisVarInit.py.
This does not happen retroactively, so re-activate the isis environment with one of the following commands:
python $CONDA_PREFIX/scripts/isisVarInit.py --data-dir=[path to data directory]

for Anaconda 3.4 and up - conda activate isis
prior to Anaconda 3.4 - source activate isis
Now every time the isis environment is activated, $ISISROOT and $ISISDATA will be set to the values passed to isisVarInit.py.
This does not happen retroactively, so re-activate the isis environment with one of the following commands:

for Anaconda 3.4 and up - conda activate isis
prior to Anaconda 3.4 - source activate isis


### Installation with Docker
Expand Down
8 changes: 0 additions & 8 deletions isis/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -574,13 +574,6 @@ add_custom_target(export ALL COMMAND ${CMAKE_COMMAND} -E copy_if_different
${CMAKE_SOURCE_DIR}/appdata/export/* ${CMAKE_BINARY_DIR}/appdata/export)
add_dependencies(isis export)

# Create the updateBuildPlugins.sh.in file
configure_file(${CMAKE_SOURCE_DIR}/cmake/updateBuildPlugins.sh.in ${CMAKE_BINARY_DIR}/scripts/updateBuildPlugins.sh)

# Add custom build target to copy modified Camera.plugin files to the build/lib/Camera.plugin file
add_custom_target(cameraPlugins ALL COMMAND ${CMAKE_BINARY_DIR}/scripts/updateBuildPlugins.sh)
add_dependencies(isis cameraPlugins)

# Add a custom build target to clean out everything that gets added to the source
# directory during the build process.
# - Only a few things are added in order to make the tests work properly so
Expand All @@ -600,7 +593,6 @@ install(FILES ${CMAKE_SOURCE_DIR}/../AUTHORS.rst DESTINATION ${CMAKE_INSTA
install(FILES ${CMAKE_SOURCE_DIR}/../CHANGELOG.md DESTINATION ${CMAKE_INSTALL_PREFIX})
install(FILES ${CMAKE_BINARY_DIR}/version DESTINATION ${CMAKE_INSTALL_PREFIX})
install(DIRECTORY ${CMAKE_SOURCE_DIR}/scripts DESTINATION ${CMAKE_INSTALL_PREFIX})
install(PROGRAMS ${CMAKE_BINARY_DIR}/lib/Camera.plugin DESTINATION ${CMAKE_INSTALL_PREFIX}/lib/)

# Trigger all post-install behavior.
# - The only way to run commands post-install in CMake is to add a subdirectory at
Expand Down
3 changes: 3 additions & 0 deletions isis/cmake/AddIsisModule.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -178,6 +178,9 @@ function(add_isis_obj folder reqLibs)
# Append the plugin file to a single file in the build directory
# where the .so files will be created. During installation copy these
# plugin files to the installation library folder.
set(pluginPath ${CMAKE_BINARY_DIR}/lib/${pluginName})
cat(${plugins} ${pluginPath})
install(PROGRAMS ${pluginPath} DESTINATION ${CMAKE_INSTALL_PREFIX}/lib/)
# Record this library name for the caller
set(newPluginLib ${libName} PARENT_SCOPE)
endif()
Expand Down
7 changes: 0 additions & 7 deletions isis/cmake/updateBuildPlugins.sh.in

This file was deleted.

1 change: 1 addition & 0 deletions isis/src/base/objs/ProcessMapMosaic/ProcessMapMosaic.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -63,6 +63,7 @@ namespace Isis {

CubeAttributeInput inAtt(inputFile);
Cube *inCube = ProcessMosaic::SetInputCube(inputFile, inAtt);
inCube->addCachingAlgorithm(new UniqueIOCachingAlgorithm(2));

Cube *mosaicCube = OutputCubes[0];
Projection *iproj = inCube->projection();
Expand Down
21 changes: 11 additions & 10 deletions isis/src/control/objs/BundleUtilities/BundleObservationVector.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -110,6 +110,8 @@ namespace Isis {
addToExisting = true;
}

bool isIsisObservation = bundleImage->camera()->GetCameraType() != Camera::Csm;

if (addToExisting) {
// if we have already added a BundleObservation with this number, we have to add the new
// BundleImage to this observation
Expand All @@ -126,8 +128,6 @@ namespace Isis {
else {
// create new BundleObservation and append to this vector

bool isIsisObservation = bundleImage->camera()->GetCameraType() != Camera::Csm;

if (isIsisObservation) {
bundleObservation.reset(new IsisBundleObservation(bundleImage,
observationNumber,
Expand Down Expand Up @@ -167,14 +167,6 @@ namespace Isis {

append(bundleObservation);

if (isIsisObservation) {
QSharedPointer<IsisBundleObservation> isisObs = qSharedPointerDynamicCast<IsisBundleObservation>(bundleObservation);
isisObs->initializeExteriorOrientation();
if (bundleSettings->solveTargetBody()) {
isisObs->initializeBodyRotation();
}
}

// update observation number to observation ptr map
m_observationNumberToObservationMap.insertMulti(observationNumber, bundleObservation);

Expand All @@ -191,6 +183,15 @@ namespace Isis {
}

}

// If it's an ISIS observation, setup the camera based on the solve settings
if (isIsisObservation) {
QSharedPointer<IsisBundleObservation> isisObs = qSharedPointerDynamicCast<IsisBundleObservation>(bundleObservation);
isisObs->initializeExteriorOrientation();
if (bundleSettings->solveTargetBody()) {
isisObs->initializeBodyRotation();
}
}
return bundleObservation;
}

Expand Down
26 changes: 25 additions & 1 deletion isis/src/tgo/apps/tgocassisrdrgen/tgocassisrdrgen.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -241,9 +241,33 @@ namespace Isis {
footprintNode.parentNode().removeChild(footprintNode);
}

if(label->findObject("IsisCube").hasGroup("Archive")) {
PvlGroup archiveGroup = label->findObject("IsisCube").findGroup("Archive");

if (archiveGroup.hasKeyword("Browse")) {
PvlKeyword browseKeyword = archiveGroup.findKeyword("Browse");

QDomElement referenceListNode = pdsLabelNext.documentElement().firstChildElement("Reference_List");
QDomElement browseNode = pdsLabel.createElement("Browse");

for (int i = 0; i < browseKeyword.size(); i++) {
QString browseFile = browseKeyword[i];
QStringList browseComponentList = browseFile.split(QLatin1Char('_'));

QDomElement browseItem = pdsLabel.createElement("browse_record");
browseItem.setAttribute("record_num", i);
browseItem.setAttribute("filterType", browseComponentList[4]);

QDomText browseText = pdsLabel.createTextNode(browseFile);
browseItem.appendChild(browseText);
browseNode.appendChild(browseItem);
}
referenceListNode.appendChild(browseNode);
}
}

QString outFile = ui.GetFileName("TO");

process.WritePds4(outFile);
}
}

57 changes: 0 additions & 57 deletions isis/src/tgo/tsts/ingestReingest/Makefile

This file was deleted.

Loading

0 comments on commit 8d4b96e

Please sign in to comment.