RFC7 Redesign of Import Export Programs #4751
Locked
jessemapel
started this conversation in
Ideas
Replies: 1 comment
-
This was copied over from our Wiki and follows the old RFC format. It is being duplicated over here so that all RFCs can be archived in a single location. |
Beta Was this translation helpful? Give feedback.
0 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
-
Summary
ISIS has individual programs for importing and exporting images. Some programs are
very specific for example, lronac2isis will convert a PDS3 formatted LRO NAC image
into an ISIS cube with all the required labels to instantiate the nac camer model,
hirdrgen will convert a processed HiRISE ISIS cube to a PDS3 formatted image.
There are approximately 70 specialized import/export programs.
This RFC proposes a redesign of most of those applications into a single import and a single export
application.
Motivation
Many users of the ISIS software have expressed frustration identifying which ISIS program to use
to import or export image data to/from ISIS. This issue is further complicated with generic ISIS
programs (e.g., pds2isis and isis2pds) that are available to convert the image data and some
label information (e.g., projection information), but do not convert instrument
specific information such as timing or SPICE information necessary to work with an instruments camera
model. For import, pds2isis allows generalized image processing applications to run such as qview and lowpass.
The individual import/export programs encapsulate most of the instrument specific software, and the
generalized ISIS library contains the image data IO software. Most of the instrument specific software
is used to add and modify information in the cube label.
Proposed Solution / Explanation
Since cube labels in ISIS are PVL text, PDS3 image labels are PVL text, and PDS4 labels are XML text, we
propose to have a single application that uses a template engine library to convert PDS4 and PDS3
labels to ISIS labels (import) and another single application to convert ISIS labels to
PDS3 and PDS4 labels (export) and continue to use the existing I/O functionality in ISIS to read and write
the image data.
Prof of Concept
We have identified a reasonably mature C++ template engine library called Inja.
Using Inja we have successfully reproduced the TGO CaSSIS import and export programs. There are two new programs in ISIS
"isisimport" and "isisexport" that use Inja templates to convert labels. These programs require an input template that conforms to the desired output
(i.e., ISIS cube, PDS3 PVL, PDS4 XML) with embedded Inja syntax to handle the logic that currently exists in the instrument specific programs.
Benifits
Drawbacks
Alternatives
Unresolved issues
Design
Use Cases
Considerations
Formats to be considered
Import program flow
Export program flow
Beta Was this translation helpful? Give feedback.
All reactions