Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

8.0.4 LTS Release Prep #5686

Merged
merged 29 commits into from
Nov 27, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
29 commits
Select commit Hold shift + click to select a range
0d0a019
Adds HRSC support in socetlinescankeywords (#5669)
amystamile-usgs Nov 18, 2024
974c3ad
Converted skypt to a callable app. Converted existing Makefile tests …
artmathgirl Apr 1, 2024
71243c6
Noseam has been refactored to be callable. Makefile test has been con…
kledmundson Oct 4, 2024
b85276b
The explode application has been refactored to be callable and Makefi…
kledmundson Sep 11, 2024
61ab3e7
Isisminer has been refactored to be callable and Makefile tests conve…
kledmundson Sep 11, 2024
9ec93dc
Algebra has been refactored to be callable; old Makefile tests have b…
kledmundson Sep 11, 2024
55b8b24
Photrim has been refactored to be callable; old Makefile tests have b…
kledmundson Aug 16, 2024
8535ea3
Bandtrim has been refactored to be callable; old Makefile tests have …
kledmundson Aug 5, 2024
ca4a0fa
Updated kaguyasp2ascii to support newer (detached) data (#5568)
AustinSanders Jul 31, 2024
85e06d4
Jigsaw csm error message (#5562)
AustinSanders Jul 26, 2024
73a5035
Bug fix in noproj to remove persistent temporary lbl file (#5578)
kledmundson Aug 13, 2024
66e650d
Remove restrictive validity check in caminfo (#5553)
AustinSanders Jul 22, 2024
459f9d4
Qview command line Fix (#5505)
acpaquette Jun 4, 2024
4c242a4
Change qt to qt-main
chkim-usgs Nov 27, 2024
adfd054
Update deps and pcl cmake
chkim-usgs Nov 27, 2024
795a3a9
Add float.h
chkim-usgs Nov 27, 2024
aba3780
CsmSerialNumber.trn - typo and PVL compilant fix (#5561)
amystamile-usgs Jul 30, 2024
c8cf261
hrsc2isis support for level 3 images (#5560)
amystamile-usgs Jul 30, 2024
19f3ad4
Fixed gllssi2isis to support V1.1 data (#5570)
amystamile-usgs Jul 31, 2024
dc3997e
Removed a debug output statement inadvertently left in noseam.cpp. Ad…
kledmundson Nov 7, 2024
ea55b9e
Bug fixes to address incorrect handling of RADIUS in the jigsaw GUI a…
kledmundson Oct 25, 2024
5397b32
Updated kaguyasp2ascii to support newer (detached) data (#5568)
murashinln Aug 30, 2024
fbe8d52
Speeds up FunctionalTestCamstatsDefaultParameters (#5647)
amystamile-usgs Oct 30, 2024
0d3e1f9
fixes photomet not accepting backplanes (#5658)
amystamile-usgs Nov 12, 2024
2b9fd34
Convert dstripe to gtests (#5665)
amystamile-usgs Nov 13, 2024
431f8ff
trigger build
chkim-usgs Nov 27, 2024
3022c83
trigger build
chkim-usgs Nov 27, 2024
2473b9d
Merge branch '8.0' into 8.0
chkim-usgs Nov 27, 2024
9174f31
Update docs
chkim-usgs Nov 27, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 8 additions & 0 deletions .zenodo.json
Original file line number Diff line number Diff line change
Expand Up @@ -336,6 +336,10 @@
{
"name": "Miller-Ribelin, Elizabeth"
},
{
"affiliation": "Japan Aerospace Exploration Agency, Institute of Space and Astronautical Science",
"name": "Murakami, Shin-ya",
"orcid": "0000-0002-7137-4849"
{
"affiliation": "United States Geological Survey, Astro Geology Science Center",
"name": "Nelson, Gavin"
Expand Down Expand Up @@ -437,6 +441,10 @@
{
"name": "Sucharski, Tracie"
},
{
"affiliation": "University of Arizona, Lunar and Planetary Laboratory",
"name": "Sutton, Sarah S."
},
{
"name": "Takir, Driss"
},
Expand Down
32 changes: 32 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -35,11 +35,43 @@ release.

## [Unreleased]

## [8.0.4] - 2024-11-27

### Added
- Added HRSC support in socetlinescankeywords [#5465](https://github.com/DOI-USGS/ISIS3/issues/5465)

### Changed
- Skypt has been refactored to be callable; old Makefile tests have been removed and replaced by gtests. Issue: [#5443](https://github.com/USGS-Astrogeology/ISIS3/issues/5443)
- Noseam has been refactored to be callable; old Makefile test has been removed and replaced by a gtest. Issue: [#5599](https://github.com/USGS-Astrogeology/ISIS3/issues/5599)
- Explode has been refactored to be callable; old Makefile test has been removed and replaced by a gtest. Issue: [#5557](https://github.com/USGS-Astrogeology/ISIS3/issues/5557)
- Isisminer has been refactored to be callable; old Makefile tests have been removed and replaced by gtests. Issue: [#5516](https://github.com/USGS-Astrogeology/ISIS3/issues/5516)
- Algebra has been refactored to be callable; old Makefile tests have been removed and replaced by gtests. Issue: [#5594](https://github.com/USGS-Astrogeology/ISIS3/issues/5594)
- Photrim has been refactored to be callable; old Makefile tests have been removed and replaced by gtests. Issue: [#5581](https://github.com/USGS-Astrogeology/ISIS3/issues/5581)
- Bandtrim has been refactored to be callable; old Makefile tests have been removed and replaced by gtests. Issue: [#5571](https://github.com/USGS-Astrogeology/ISIS3/issues/5571)
- Modified kaguyasp2isis to work with new (detached) data [#5436](https://github.com/DOI-USGS/ISIS3/issues/5436)
- Added jigsaw error message for csminit'd images without csm parameters[#5486](https://github.com/DOI-USGS/ISIS3/issues/5486)

### Fixed
- Fixed a bug in noproj.cpp which left a persisent lbl file after running noproj. [#5577](https://github.com/DOI-USGS/ISIS3/issues/5577)
- Fixed a bug in PolygonTools in which the program exited before attempting to fix an invalid Polygon [#5520](https://github.com/DOI-USGS/ISIS3/issues/5520)
- Fixed a bug in QVIEW where images would double load if loaded from the commandline [#5505](https://github.com/DOI-USGS/ISIS3/pull/5505)
- Fixed CSMSerialNumber.trn typo [#5485](https://github.com/DOI-USGS/ISIS3/issues/5485)
- Fixed CSMSerialNumber.trn to be PVL compliant [#5484](https://github.com/DOI-USGS/ISIS3/issues/5484)
- Fixed hrsc2isis to support level 3 hrsc images [#5497](https://github.com/DOI-USGS/ISIS3/issues/5497)
- Fixed gllssi2isis to support V1.1 data [#5396](https://github.com/DOI-USGS/ISIS3/issues/5396)
- Fixed noseam bug where a debugging output statement was inadvertently left in noseam.cpp. Issue: [5660](https://github.com/DOI-USGS/ISIS3/issues/5660)
- Fixed jigsaw bugs in which RADIUS is handled incorrectly in the jigsaw gui and in the bundleout.txt file. Slightly modified the FunctionalTestJigsawBundleXYZ ctest accordingly. Issue: [5642](https://github.com/DOI-USGS/ISIS3/issues/5642)
- Fixed a bug in kaguyasp2isis that doesn't work for data with a detached label. [#5568](https://github.com/DOI-USGS/ISIS3/pull/5568)
- Fixed FunctionalTestCamstatsDefaultParameters test by increasing the runtime speed [#5459](https://github.com/DOI-USGS/ISIS3/issues/5459)
- Fixed PHOTOMET not accepting backplanes [#5281](https://github.com/DOI-USGS/ISIS3/issues/5281)
- Fixed dstripe parallel test failing by converting tests to gtests [#5613](https://github.com/DOI-USGS/ISIS3/issues/5613)

## [8.0.3] - 2023-04-18

### Changed
- Disabled option to use web=true when running spiceinit with HRSC images. [#5223](https://github.com/DOI-USGS/ISIS3/issues/5223)
- Changed the default spiceinit url to https://astrogeology.usgs.gov/apis/ale/v0.9.1/spiceserver/ and added deprecation warning for use of https://services.isis.astrogeology.usgs.gov/cgi-bin/spiceinit.cgi url. [#5327](https://github.com/USGS-Astrogeology/ISIS3/issues/5327)
- Skypt has been refactored to be callable; old Makefile tests have been removed and replaced by gtests. Issue: [#5443](https://github.com/USGS-Astrogeology/ISIS3/issues/5443)

### Fixed
- Fixed a bug in which capital E was problematic for OSX / Ubuntu [#5466](https://github.com/DOI-USGS/ISIS3/pull/5466)
Expand Down
37 changes: 37 additions & 0 deletions code.json
Original file line number Diff line number Diff line change
Expand Up @@ -43,6 +43,43 @@
"date": {
"metadataLastUpdated": "2023-02-27"
}
}, {
"name": "ISIS3",
"organization": "U.S. Geological Survey",
"description": "GitHub code repository for the Integrated Software for Imagers and Spectrometers (ISIS)",
"version": "8.0.4",
"status": "Production",
"permissions": {
"usageType": "openSource",
"licenses": [
{
"name": "Public Domain, CC0-1.0",
"URL": "https://code.usgs.gov/astrogeology/isis/-/raw/8.0.4/LICENSE.md"
}
]
},
"homepageURL": "https://isis.astrogeology.usgs.gov",
"downloadURL": "https://code.usgs.gov/astrogeology/isis/-/archive/8.0.4/isis-8.0.4.zip",
"disclaimerURL": "https://code.usgs.gov/astrogeology/isis/-/raw/8.0.4/DISCLAIMER.md",
"repositoryURL": "https://code.usgs.gov/astrogeology/isis.git",
"vcs": "git",
"laborHours": 0,
"tags": [
"Planetary",
"Remote Sensing",
"Photogrammetry",
"Data Processing"
],
"languages": [
"C++"
],
"contact": {
"name": "Christine Kim",
"email": "[email protected]"
},
"date": {
"metadataLastUpdated": "2024-11-27"
}
}, {
"name": "ISIS3",
"organization": "U.S. Geological Survey",
Expand Down
25 changes: 13 additions & 12 deletions environment.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,10 +3,10 @@ channels:
- defaults

dependencies:
- ale=0.9.1
- ale =0.10.0,<1
- armadillo
- boost=1.72
- boost-cpp=1.72
- boost >=1.78.0,<1.79
- boost-cpp >=1.78.0,<1.79
- blas
- usgs-astrogeology::bullet
- bz2file
Expand All @@ -32,9 +32,9 @@ dependencies:
- jpeg
- usgs-astrogeology::kakadu==1
- krb5
- libopencv>=4.5.2
- libopencv >=4.7,<4.8
- libpng>=1.6.34
- libprotobuf<3.20
- libprotobuf
- libtiff>=4.0
- libxml2
- make
Expand All @@ -47,16 +47,17 @@ dependencies:
- nn
- opencv>=4.5.2
- openssl>=1.1.1k
- pcl >= 1.10.0
- protobuf<3.20
- python>=3.7.11
- pcl >=1.13,<1.14
- protobuf
- python >=3.10
- python_abi >=3.10
- pytest
- rclone
- qhull
- qt>=5.9.6,<5.15.0
- qwt
- sqlite
- suitesparse
- qt-main >=5.15.8, <5.16
- qwt <6.3.0
- sqlite >=3.46.0,<3.47
- suitesparse<7.7.0
- superlu
- swig
- texlive-core
Expand Down
2 changes: 1 addition & 1 deletion isis/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@ set(PACKAGE "ISIS")
set(PACKAGE_NAME "USGS ISIS")

# Version number
set(VERSION "8.0.3")
set(VERSION "8.0.4")
string(REPLACE "." ";" VERSION_LIST ${VERSION})
list(GET VERSION_LIST 0 VERSION_MAJOR)
list(GET VERSION_LIST 1 VERSION_MINOR)
Expand Down
8 changes: 4 additions & 4 deletions isis/appdata/serialnumbers/CsmSerialNumber.trn
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
Group = Keyword1
Auto
InputKey = CSMPlatformId
Auto = 1
InputKey = CSMPlatformID
InputGroup = "IsisCube,CsmInfo"
InputPosition = (IsisCube, CsmInfo)
OutputName = Keyword1
Expand All @@ -9,7 +9,7 @@ Group = Keyword1
End_Group

Group = Keyword2
Auto
Auto = 1
InputKey = CSMInstrumentId
InputGroup = "IsisCube,CsmInfo"
InputPosition = (IsisCube, CsmInfo)
Expand All @@ -19,7 +19,7 @@ Group = Keyword2
End_Group

Group = Keyword3
Auto
Auto = 1
InputKey = ReferenceTime
InputGroup = "IsisCube,CsmInfo"
InputPosition = (IsisCube, CsmInfo)
Expand Down
2 changes: 1 addition & 1 deletion isis/cmake/FindPCL.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@

find_path(PCL_INCLUDE_DIR
NAME pcl_base.h
PATH_SUFFIXES "pcl-1.8/pcl" "pcl-1.9/pcl" "pcl-1.11/pcl" "pcl-1.13/pcl"
PATH_SUFFIXES "pcl-1.8/pcl" "pcl-1.9/pcl" "pcl-1.11/pcl" "pcl-1.12/pcl" "pcl-1.13/pcl" "pcl-1.14/pcl"
)

find_library(PCL_COMMON_LIBRARY NAMES pcl_common)
Expand Down
178 changes: 178 additions & 0 deletions isis/src/base/apps/algebra/algebra.cpp
Original file line number Diff line number Diff line change
@@ -0,0 +1,178 @@
/** This is free and unencumbered software released into the public domain.

The authors of ISIS do not claim copyright on the contents of this file.
For more details about the LICENSE terms and the AUTHORS, you will
find files of those names at the top level of this repository. **/

/* SPDX-License-Identifier: CC0-1.0 */

#include "algebra.h"

#include "Cube.h"
#include "FileName.h"
#include "ProcessByLine.h"
#include "SpecialPixel.h"

namespace Isis {

/*
* Algebra
*
* This program performs simple algebra on either one or two
* cubes. The two cubes may be added, subtracted, multiplied or divided.
*
* The following equations are used:
* UNARY: out = (A * from1) + C
* ADD: out = ((from1 - D) * A) + ((from2 - E) * B) + C
* SUBTRACT: out = ((from1 - D) * A) - ((from2 - E) * B) + C
* MULTIPLY: out = ((from1 - D) * A) * ((from2 - E) * B) + C
* DIVIDE: out = ((from1 - D) * A) / ((from2 - E) * B) + C
*
* The FROM2 cube must have either one band or the same number of bands
* as the FROM cube. If the FROM2 cube has one band, then the algebraic
* formula will be applied to all bands in FROM using that single band
* in FROM2. If FROM2 is a multi-band cube, the algebra will be performed
* between corresponding bands from FROM and FROM2.
*
* @param ui UserInterface object containing parameters
*/
void algebra(UserInterface &ui) {
Cube* icube1 = new Cube();
icube1->open(ui.GetCubeName("FROM"));

Cube* icube2 = nullptr;
if(ui.WasEntered("FROM2")) {
icube2 = new Cube();
icube2->open(ui.GetCubeName("FROM2"));
}

algebra(icube1, ui, icube2);
}


/*
* Algebra
*
* This program performs simple algebra on either one or two
* cubes. The two cubes may be added, subtracted, multiplied or divided.
*
* The following equations are used:
* UNARY: out = (A * from1) + C
* ADD: out = ((from1 - D) * A) + ((from2 - E) * B) + C
* SUBTRACT: out = ((from1 - D) * A) - ((from2 - E) * B) + C
* MULTIPLY: out = ((from1 - D) * A) * ((from2 - E) * B) + C
* DIVIDE: out = ((from1 - D) * A) / ((from2 - E) * B) + C
*
* The FROM2 cube must have either one band or the same number of bands
* as the FROM cube. If the FROM2 cube has one band, then the algebraic
* formula will be applied to all bands in FROM using that single band
* in FROM2. If FROM2 is a multi-band cube, the algebra will be performed
* between corresponding bands from FROM and FROM2.
*
* @param icube1 Cube* input cube1
* @param ui UserInterface object containing parameters
* @param icube2 Cube* input cube2; optional second input cube
*/
void algebra(Cube* icube1, UserInterface &ui, Cube* icube2) {

// Processing by line
ProcessByLine p;

// Set input cubes and attributes into ProcessByLine p
CubeAttributeInput inatts1 = ui.GetInputAttribute("FROM");
CubeAttributeInput inatts2;
p.SetInputCube(icube1->fileName(), inatts1);
if(icube2 != nullptr) {
inatts2 = ui.GetInputAttribute("FROM2");
p.SetInputCube(icube2->fileName(), inatts2);
}

// Set output cube and attributes into ProcessByLine p
QString outCubeFname = ui.GetCubeName("TO");
CubeAttributeOutput &outatts = ui.GetOutputAttribute("TO");
p.SetOutputCube(outCubeFname, outatts);

// Get the coefficients
double Isisa = ui.GetDouble("A");
double Isisb = ui.GetDouble("B");
double Isisc = ui.GetDouble("C");
double Isisd = ui.GetDouble("D");
double Isise = ui.GetDouble("E");

QString op = ui.GetString("OPERATOR");

//*****************************************
// Lambda functions to perform operations *
//*****************************************

// operatorProcess for add, subtract, multiply, divide
auto operatorProcess = [&](std::vector<Buffer *> &in, std::vector<Buffer *> &out)->void {
Buffer &inp1 = *in[0];
Buffer &inp2 = *in[1];
Buffer &outp = *out[0];

// Loop for each pixel in the line
// Special pixel propagation:
// 1) special pixels in inp1 propagate to output cube unchanged
// 2) if inp1 is not special and inp2 is, the output pixel is set to Null
for(int i = 0; i < inp1.size(); i++) {
if(IsSpecial(inp1[i])) {
outp[i] = inp1[i];
}
else if(IsSpecial(inp2[i])) {
outp[i] = NULL8;
}
else {
double operand1 = (inp1[i] - Isisd) * Isisa;
double operand2 = (inp2[i] - Isise) * Isisb;
if(op == "ADD") {
outp[i] = (operand1 + operand2) + Isisc;
}
if(op == "SUBTRACT") {
outp[i] = (operand1 - operand2) + Isisc;
}
if(op == "MULTIPLY") {
outp[i] = (operand1 * operand2) + Isisc;
}
if(op == "DIVIDE") {
if((inp2[i] - Isise) * Isisb == 0.0) {
outp[i] = NULL8;
}
else {
outp[i] = (operand1 / operand2) + Isisc;
}
}
}
}
};

// Unary process
auto unaryProcess = [&](Buffer &in, Buffer &out)->void {
// Loop for each pixel in the line.
// Special pixels propagate directly to output
for(int i = 0; i < in.size(); i++) {
if(IsSpecial(in[i])) {
out[i] = in[i];
}
else {
out[i] = in[i] * Isisa + Isisc;
}
}
};

//*****************************************
// End Lambda functions *
//*****************************************

// Start processing based on the operator
if(op == "UNARY") {
p.ProcessCube(unaryProcess);
}
else {
p.ProcessCubes(operatorProcess); // add, subtract, multiply, divide
}

p.EndProcess();
}
}

Loading