Skip to content

QApps Add Projection Selection#6000

Merged
amystamile-usgs merged 9 commits intoDOI-USGS:devfrom
acpaquette:truely_fix_ugm
Mar 27, 2026
Merged

QApps Add Projection Selection#6000
amystamile-usgs merged 9 commits intoDOI-USGS:devfrom
acpaquette:truely_fix_ugm

Conversation

@acpaquette
Copy link
Copy Markdown
Collaborator

@acpaquette acpaquette commented Mar 25, 2026

Description

Issues arise when comparing cameras to map projected images in qview, and likely other ISIS QApps. As noted in issues in the related issues sections. Projected images where scaling differently when compared to the associated images with just a camera model. This is due to the distancePerPixel method in the FindTool.

There are two situations to consider with this problem:

  1. Comparing an image with camera information to a projected image with the same camera information
  2. Comparing a projected image with no camera information to a the same projected image with camera information

The FindTool requests the radii from either the camera or the projection depending on what is present. The old behavior always used the camera which is fine for situation 1.

There are instances in ISIS where one can create an identical projected product but remove the old camera information (automos, and other mosaic apps where only one image is used). In these cases comparing a camera to the projection in the old code resulted in scale disparities, see the UniversalGroundMap class and the FindTool classes distancePerPixel function. This issue arose in situation 2.

If we fix situation 2 by forcing to use the projection as the priority we introduce the same bug/issues into situation 1.

This PR allows users to select the projection priority so that both situations can be accessed by users.

Related Issue

#5896
#5508

How Has This Been Validated?

Validated locally

Types of changes

  • Bug fix (non-breaking change which fixes an issue)
  • New feature (non-breaking change which adds functionality)
  • Documentation change (update to the documentation; no code change)
  • Breaking change (fix or feature that would cause existing functionality to change)
  • Infrastructure change (changes to things like CI or the build system that do not impact users)

Checklist:

  • I have read and agree to abide by the Code of Conduct
  • I have read the CONTRIBUTING document.
  • My change requires a change to the documentation and I have updated the documentation accordingly.
  • I have added tests to cover my changes.
  • I have added myself to the .zenodo.json document.
  • I have added my user impacting change to the CHANGELOG.md document.

Licensing

This project is mostly composed of free and unencumbered software released into the public domain, and we are unlikely to accept contributions that are not also released into the public domain. Somewhere near the top of each file should have these words:

This work is free and unencumbered software released into the public domain. In jurisdictions that recognize copyright laws, the author or authors of this software dedicate any and all copyright interest in the software to the public domain.

  • I dedicate any and all copyright interest in this software to the public domain. I make this dedication for the benefit of the public at large and to the detriment of my heirs and successors. I intend this dedication to be an overt act of relinquishment in perpetuity of all present and future rights to this software under copyright law.

@github-actions
Copy link
Copy Markdown

The build and test suite have started for your pull request.

To view your build log, please reference the build with source version: "PR_6000".

Additionally, check the latest "dev" source version to identify existing test failures. Please note that you are not responsible for the test failures that exist on both your PR and the dev branch.

Copy link
Copy Markdown
Contributor

@amystamile-usgs amystamile-usgs left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Needs changelog entry as well.

@github-actions
Copy link
Copy Markdown

The build and test suite have started for your pull request.

To view your build log, please reference the build with source version: "PR_6000".

Additionally, check the latest "dev" source version to identify existing test failures. Please note that you are not responsible for the test failures that exist on both your PR and the dev branch.

@KrisBecker
Copy link
Copy Markdown
Contributor

Is there a dialog box (continuously) shown somewhere that indicates whether the geometry source is the camera model or projection? I think that would be nice to have if there isn't one (e.g, qview).

@acpaquette
Copy link
Copy Markdown
Collaborator Author

acpaquette commented Mar 26, 2026

@KrisBecker Yes, I was meaning to include some screenshots since this is a gui change
Screenshot 2026-03-26 at 1 08 00 PM
This is what the FindTool now shows. Left is an uneditable box showing that both a camera and a projection are available for the given image, and right is the one selected to use
Screenshot 2026-03-26 at 1 09 31 PM
For images with only one, the left box shows that only a projection is available. The right box can still be changed but won't change anything for the image selected

@github-actions
Copy link
Copy Markdown

The build and test suite have started for your pull request.

To view your build log, please reference the build with source version: "PR_6000".

Additionally, check the latest "dev" source version to identify existing test failures. Please note that you are not responsible for the test failures that exist on both your PR and the dev branch.

@amystamile-usgs amystamile-usgs merged commit 7d98c2f into DOI-USGS:dev Mar 27, 2026
3 checks passed
@github-actions github-actions bot added the bug Something isn't working label Mar 27, 2026
amystamile-usgs pushed a commit that referenced this pull request Mar 30, 2026
* Add check for ugm pointer validity before accessing the camera

* Add the ability to select either the camera or projection to use in findtool

* Remove leftover couts from UGM class

* Addressed wording for function description

* Change UGM::Radius to UGM::LocalRadius and fix doc string

* Fix typo in new combobox function string

* Fix GroundGrid to properly handle new UGM priority

* Fix SpatialPlotTool to handle new UGM priority

* Small fix to UGM test
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

bug Something isn't working

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants