Commit dbc13a23 authored by Austin Sanders's avatar Austin Sanders
Browse files

Merge branch 'dev' of https://github.com/USGS-Astrogeology/ISIS3 into bundle_lidar

parents c86a6093 d8092c11
Loading
Loading
Loading
Loading
+4 −0
Original line number Diff line number Diff line
@@ -54,6 +54,10 @@ install/
!isis/src/docsys/Object/build
!isis/src/docsys/Application/build

# Unignore msi2isis label files in data area as input files require these
!isis/tests/data/near/msi2isis/*.lbl
!isis/tests/data/near/msicamera/*.cub

# Ignore vs code
.vscode

+7 −0
Original line number Diff line number Diff line
@@ -51,6 +51,9 @@
    {
      "name": "Barrett, Janet"
    },
    {
      "name": "Bauck, Kirsten"
    },
    {
      "name": "Bauers, Joni"
    },
@@ -304,6 +307,10 @@
      "affiliation": "University of California, Los Angeles",
      "name": "Mehlman, Bob"
    },
    {
      "affiliation": "Arizona State University",
      "name": "Michaud, Cordell"
    },
    {
      "name": "Milazzo, Moses"
    },

APIdefinition.md

0 → 100644
+103 −0
Original line number Diff line number Diff line
# ISIS Project public API

The public API is considered to be all the interfaces that the ISIS
project provides to the community from which the ISIS user base can
build more complex tools. This API therefore includes code-level
structures accessible via software calls to libraries, but also
more user-facing structures like command-line programs and graphical
user interface (GUI) programs. Any "interface" via which a user can
reasonably interact with components of the ISIS project should be
considered part of the "ISIS Project public API" for the purposes
of [Semantic Versioning](https://semver.org).

Examples are provided below, but are not meant to be exhaustive or
complete. The above philosophy should guide our thinking in what
the public API is.  The above API definition should be used with Semantic
Versioning policies to determine when and how the ISIS version
number changes. A FAQ and some examples can be found on the [Semantic
Versioning website](https://semver.org/).


## General Guidance

The public API consists of the following.

**Code-level structures**: Public function, member, and class names,
argument signatures, and their return signatures.  Where "public"
is defined as those elements that are typically provided for use external
to a library or module, dependent on the language.

Some examples are:

- C++ public structures are those that can be access by including
  the distributed header files for libraries.
- Python public structures are those that do not begin with an underbar
  ("_"), as described in PEP 8.


**User-facing command-line and GUI programs**: program name, argument
list, argument defaults, configuration or preference names and their
defaults, and for those programs with structured output files, the
structure of those output files are analogous to the return signatures
of code-level structures.


This guidance may be more straightforward to understand and apply
for code-level structures which have more formalized argument and
return signatures.  User-facing command-line and GUI programs should
include verbose information in their documentation that describes what
a user can expect as far as the structure of the output.


## More Specific Examples

Adding new arguments to code level structures does not violate the
existing public API as long as they provide a default value. For
example changing a function *doThing(int a, double b)* to *doThing(int
a, double b, double c=1.0)* does not violate the existing API for
the *doThing* function as code that calls the *doThing* function will
still compile without modification.

Adding new optional arguments or arguments with default values to
command line programs does not violate the existing public API. For
example, adding a new argument called "check" that has a default
value of "false" to a command line program does not violate the
program's public API as scripts and commands that were valid
previously are still valid after the addition.


### Unstructured text files

For anything of an inherently unstructured file-type, like .txt;
there is no guarantee of its contents; just that it will exist.
For example, no guarantee of the contents of the bundleout.txt files
generated by jigsaw is expected. They are purely human-readable
output and not designed to be parsed programmatically. So sections
can be added, removed, spacings on tables can be changed, etc.


### CSV output files

Column names and data types are part of the API.

For example, a program that writes out a CSV should clearly describe
the output columns which include the fieldname, data type, and
whether non-data-type values can be present (e.g. a column of
floating point numbers named "minimum" that could contain the string
"NULL" instead of a floating point value).

New columns can be added (feature), but if a column's characteristics are 
changed or removed, that's a breaking change.


### PVL files

Object, group, and keyword names are a part of the API.

For example, the "minimum" keyword will exist in the "statistics"
group. This also applies to the PVL labels in Cube files.

New aggregates or keywords can be added (feature), but if any are changed
or removed, that's a breaking change.  PVL text does have data types, and
changing something from `MIN = 5` to `MIN = "5"` is changing the data type
of the keyword MIN from an integer to a string.
+31 −3
Original line number Diff line number Diff line
@@ -34,15 +34,25 @@ release.
-->

## [Unreleased]

- Added check to determine if poles were a valid projection point in ImagePolygon when generating footprint for a map projected image. [#4390](https://github.com/USGS-Astrogeology/ISIS3/issues/4390)
- Updated the LRO photometry application Lronacpho, to use by default the current 2019 photometric model (LROC_Empirical). The model's coefficients are found in the PVL file that exists in the LRO data/mission/calibration directory. If the old parameter file is provided, the old algorithm(2014) will be used. This functionality is desired for calculation comparisons. Issue: [#4512](https://github.com/USGS-Astrogeology/ISIS3/issues/4512), PR: [#4519](https://github.com/USGS-Astrogeology/ISIS3/pull/4519)
- Added a new application, framestitch, for stitching even and odd push frame images back together prior to processing in other applications. [4924](https://github.com/USGS-Astrogeology/ISIS3/issues/4924)
- Added changes to lronaccal to use time-dependent dark files for dark correction and use of specific dark files for images with exp code of zero. Also added GTests for lronaccal and refactored code to make callable. Added 3 truth cubes to testing directory.  PR[#4520](https://github.com/USGS-Astrogeology/ISIS3/pull/4520)
### Changed
- Updated the LRO calibration application Lrowaccal to add a units label to the RadiometricType keyword of the Radiometry group in the output cube label if the RadiometricType parameter is Radiance. No functionality is changed if the RadiometricType parameter is IOF. Lrowaccal has also been refactored to be callable for testing purposes. Issue: [#4939](https://github.com/USGS-Astrogeology/ISIS3/issues/4939), PR: [#4940](https://github.com/USGS-Astrogeology/ISIS3/pull/4940)

### Added
- Improved functionality of msi2isis and MsiCamera model to support new Eros dataset, including support for Gaskell's SUMSPICE files that adjust timing, pointing and spacecraft position ephemeris. [#4886](https://github.com/USGS-Astrogeology/ISIS3/issues/4886)
- Re-added and refactored the LRO photometry application lrowacphomap to be callable for testing purposes. Issue: [#4960](https://github.com/USGS-Astrogeology/ISIS3/issues/4960), PR: [#4961](https://github.com/USGS-Astrogeology/ISIS3/pull/4961)

### Deprecated

### Fixed
- Modified cnetcheck noLatLonCheck logic to correctly exclude ignored measures. [#4649](https://github.com/USGS-Astrogeology/ISIS3/issues/4649)
- Added check to determine if poles were a valid projection point in ImagePolygon when generating footprint for a map projected image. [#4390](https://github.com/USGS-Astrogeology/ISIS3/issues/4390)
- Fixed the Mars Express HRSC SRC camera and serial number to use the StartTime instead of the StartClockCount  [#4803](https://github.com/USGS-Astrogeology/ISIS3/issues/4803)
- Fixed algorithm for applying rolling shutter jitter. Matches implementation in USGSCSM.
- Fixed isis2std incorrectly outputing signed 16 bit tiff files. [#4897](https://github.com/USGS-Astrogeology/ISIS3/issues/4897)
- Fixed CNetCombinePt logging functionality such that only merged points are included in the log. [#4973](https://github.com/USGS-Astrogeology/ISIS3/issues/4973)


## [7.0.0] - 2022-02-11
@@ -56,6 +66,16 @@ but passing in footprintinit. [#4651](https://github.com/USGS-Astrogeology/ISIS3
- Changed the internal logic of ObliqueDataResolution() to use LocalEmission angle rather than Emission angle.
This will cause differences in output; new values will be more accurate because they use DEM rather than
ellipsoid. The cost to compute the local emissoin will increase by approximately x1.5. [#3600](https://github.com/USGS-Astrogeology/ISIS3/issues/3600)
- Changed website layout to better surface relevant documents.
[#4839](https://github.com/USGS-Astrogeology/ISIS3/pull/4839)
[#4847](https://github.com/USGS-Astrogeology/ISIS3/pull/4847)
[#4851](https://github.com/USGS-Astrogeology/ISIS3/pull/4851)
[#4852](https://github.com/USGS-Astrogeology/ISIS3/pull/4852)
[#4856](https://github.com/USGS-Astrogeology/ISIS3/pull/4856)
[#4865](https://github.com/USGS-Astrogeology/ISIS3/pull/4865)
[#4859](https://github.com/USGS-Astrogeology/ISIS3/pull/4859)
[#4872](https://github.com/USGS-Astrogeology/ISIS3/pull/4872)
[#4871](https://github.com/USGS-Astrogeology/ISIS3/pull/4871)

### Added
- Added the USECAMSTATSTBL option to caminfo. This allows caminfo to extract existing
@@ -71,6 +91,12 @@ Keywords when running CAMSTATS. [#3605](https://github.com/USGS-Astrogeology/IS
- Added import templates for isisimport, Cassini ISS, Cassini Vims, Kaguya TC Kaguya MI, Dawn FC, Dawn VIR, LROC NAC, LO HRC, MGS MOC, MER MI, MRO CTX, Rosetta Osiris, Viking VIS [#4606](https://github.com/USGS-Astrogeology/ISIS3/issues/4606)
- Added export templates for isisexport, LROC NAC EDR [#4606](https://github.com/USGS-Astrogeology/ISIS3/issues/4606)
- Added optional JSON data output parameter, DATA, for debugging template engine failures [#4606](https://github.com/USGS-Astrogeology/ISIS3/issues/4606)
- Added new documentatin for contributing code.
[#4859](https://github.com/USGS-Astrogeology/ISIS3/pull/4859)
[#4871](https://github.com/USGS-Astrogeology/ISIS3/pull/4871)
- Added versioning to website documentation.
[#4852](https://github.com/USGS-Astrogeology/ISIS3/pull/4852)
[#4872](https://github.com/USGS-Astrogeology/ISIS3/pull/4872)

### Deprecated
- Deprecated edrget as discussed in [#3313](https://github.com/USGS-Astrogeology/ISIS3/issues/3313).
@@ -82,6 +108,9 @@ Keywords when running CAMSTATS. [#3605](https://github.com/USGS-Astrogeology/IS
- Fixed 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)
- Fixed slow runs of automos when the priority was BAND. [#4793](https://github.com/USGS-Astrogeology/ISIS3/pull/4793)
- Fixed qview crashing when attempting to load image DNs. [4818](https://github.com/USGS-Astrogeology/ISIS3/issues/4818)
- Fixed qnet crashing when entering an invalid image name in the measure selection box. [#4581](https://github.com/USGS-Astrogeology/ISIS3/issues/4581)
- Modified cnetcheck noLatLonCheck logic to correctly exclude ignored measures. [#4649](https://github.com/USGS-Astrogeology/ISIS3/issues/4649)
- Fixed bug where the original label was not attached to stereo HRSC images on import [#4816](https://github.com/USGS-Astrogeology/ISIS3/issues/4816)

## [6.0.0] - 2021-08-27

@@ -136,7 +165,6 @@ Keywords when running CAMSTATS. [#3605](https://github.com/USGS-Astrogeology/IS
- Fixed issue where serial numbers for Kaguya TC and MI image could not be generated. [4235](https://github.com/USGS-Astrogeology/ISIS3/issues/4235)
- Fixed hardcoded file naming in the hijitter app dealing with output from pipeline. [#4372](https://github.com/USGS-Astrogeology/ISIS3/pull/4372)
- Fixed "About Qview" to point to website documentation. [4333](https://github.com/USGS-Astrogeology/ISIS3/issues/4333)
- Fixed bug where the time bias was not being added to the ephemeris times in ckwriter. [4129](https://github.com/USGS-Astrogeology/ISIS3/issues/4129)

### Changed

+2 −15
Original line number Diff line number Diff line
@@ -55,17 +55,11 @@ This installation guide is for ISIS users interested in installing ISIS (3.6.0)+

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

    #Activate the environment
    #Depending on your version of Anaconda use one of the following:

    #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
@@ -88,14 +82,7 @@ This installation guide is for ISIS users interested in installing ISIS (3.6.0)+
1. The environment is now ready to download ISIS and its dependencies:

    ```bash
    conda install -c usgs-astrogeology isis=6.0.0
    ```
    
    If you would like to work with our latest ISIS version 3, rather than updating
    to ISIS 4, instead run:

    ```bash
    conda install -c usgs-astrogeology isis=3.10.0
    conda install -c usgs-astrogeology isis=7.0.0
    ```

1. Finally, setup the environment variables:
Loading