Skip to content

Add support for Chandrayaan2TMC #5767

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

Open
wants to merge 7 commits into
base: dev
Choose a base branch
from

Conversation

acpaquette
Copy link
Collaborator

@acpaquette acpaquette commented Apr 10, 2025

Description

Adds support for chandrayaan2 TMC

Related Issue

IAA

How Has This Been Validated?

Adds new tests and validated through hands on testing

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.

Copy link

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

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

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.

@tckb
Copy link

tckb commented Apr 15, 2025

thanks for working on this @acpaquette as someone who worked on Ch2 data its a shame I can't use the isis tools, instead I had to work on my own tooling. Is this PR funtional? I would like to see if its possible also to add OHRC support?

@acpaquette
Copy link
Collaborator Author

@tckb We currently do not plan on adding support for OHRC but its something we can look into. The PR itself is functional but there are issues surrounding the release of chandrayaan2 kernels from our side. Mainly the chandrayaan2 team requires an account to access the spice kernels and we are not sure if the USGS is allowed to mirror and host those ourselves. There is also a custom kernel with data required to use the chandrayaan2 TMC in ISIS.

We could likely just release that kernel and then expect users to get all other spice data from the chandrayaan2 team

@tckb
Copy link

tckb commented Apr 18, 2025

Great! @acpaquette I keep these kernels locally to work with Ch2 data. If you can allow PRs, I could
potentially look at your implementation perhaps have an implementation of OHRC, if someone can help me guide.

Ch2 team isn’t known to respond on queries, will there be any documentation on the implementation?

Thanks for the efforts!

@@ -2501,23 +2500,23 @@ namespace Isis {
rotationMatrix[3], rotationMatrix[4], rotationMatrix[5],
rotationMatrix[6], rotationMatrix[7], rotationMatrix[8]
};
m2q_c(CJ, quats[r]);
m2q_c(CJ, &quats[r * 4]);
Copy link
Collaborator

Choose a reason for hiding this comment

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

why multiply the index?

Copy link
Collaborator Author

Choose a reason for hiding this comment

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

In the old code quats was a 2d array, here we changed it to a 1d vector so we have to jump over four elements each time to read the quaternion. I think this largely had to do with 2d vectors not being contiguious

@@ -0,0 +1 @@
include $(ISISROOT)/make/isismake.cat
Copy link
Collaborator

Choose a reason for hiding this comment

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

is this used for anything other than cat tests?

@@ -0,0 +1 @@
include $(ISISROOT)/make/isismake.objstree
Copy link
Collaborator

Choose a reason for hiding this comment

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

similar here, are they used as part of CMake?

@acpaquette
Copy link
Collaborator Author

@tckb The ISIS camera creation isn't documented well but looking at any camera in ISIS will give you an idea of what you need. Cameras in ISIS consist of a few components:

  • A Base camera class to derive from (in Chandrayaan2TMC's case that is a LineScanCamera)
  • A detector map
  • A focal plane map
  • A ground map
  • A sky map

The trickier part is getting all of the camera intrinsic settings right which is usually found in a Software Interface Specification (SIS) for the camera. The Chandrayaan 2 team provides a SIS on this page, https://pradan.issdc.gov.in/ch2/protected/miscDownloads.xhtml but you will need to setup an account to access it. If you are able to get an initial camera model up as a PR we can help with issues/trouble shooting.

Alternatively, and something that might be a bit easier, you can make an Abstraction Library for Ephemerids (ALE) driver for Chandrayaan 2 OHRC. The documentation for doing so is fairly well defined and is generally easier to do instead of creating an ISIS camera model.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants