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

[ldd-img] Proposal for Time_Delay_Integration (TDI) section in IMG #304

Open
rgdeen opened this issue Nov 8, 2024 · 0 comments
Open

[ldd-img] Proposal for Time_Delay_Integration (TDI) section in IMG #304

rgdeen opened this issue Nov 8, 2024 · 0 comments
Assignees
Labels
ldd-img Issue for ldd-img repo

Comments

@rgdeen
Copy link

rgdeen commented Nov 8, 2024

Issue Type
Enhancement

Describe the issue identified (if applicable)
Time Delay Integration (TDI) is a feature of many cameras. It is currently not part of IMG. We want to rectify that by providing a TDI class to describe these cameras.

Describe the solution you'd like

New class: Time_Delay_Integration
    Contains parameters describing Time_Delay_Integration, which is where the detector is shifted by rows in synchronization with the motion of the image across the detector, in order to increase integration time.

Class should be a child of both Imaging and Commanded_Parameters, with a cardinality of 0:any in both.
Class should inherit from Data_Processing

Attributes:

tdi_detector_id - string, card 0-1
    Identifies the detector for which this TDI parameter set applies.  Detector IDs are mission specific.
tdi_rows - int, card 0-1.  This is the same as tdi_stage_count for junocam, TDI in hirise edr
    Specifies the number of detector rows that are integrated together for TDI
tdi_direction - string, card 0-1
    Specifies the direction of TDI integration in a mission-specific manner
tdi_line_rate - float, unit of time, card 0-1
    Specifies the time interval from readout of one row to readout of the next
tdi_line_rate_code - string, card 0-1
    Mission-specific identifier or commanded value for line_rate

Attribute set is designed to meet the needs of currently-known cameras (see examples below). As with everything in IMG, the attributes can and should be extended as cameras with different capabilities or metadata come along.

Describe alternatives you've considered
Currently, missions are rolling their own keywords in the MISSION LDD's, which is antithetical to good LDD design practice.

LDD Dictionary Version
Next version

PDS4 IM Version
All of the currently-built ones

Need-by Date
ASAP. We want to refit Clipper to use these but the window for that will not be open for long. Juno also uses these and is in active PDS3->4 migration now.

Additional context
Here is how this would look in various current or planned missions. Note that some of these missions are already in production. We are not suggesting that they change to use this mechanism (although we welcome it if they want). Just showing how the class definition meets the needs of existing TDI cameras.

Juno-SRU

<img:Time_Delay_Integration>
    <img:active_flag>true</>
</>

Junocam

<img:Time_Delay_Integration>
    <img:active_flag>true</>
    <img:tdi_rows> value of tdi_stages_count </>
</>

Clipper

<img:Time_Delay_Integration>
    <img:active_flag>false</>        -- I think rows=1 means false?
    <img:tdi_rows>1</>
</>

ShadowCam

<img:Time_Delay_Integration>
    <img:active_flag>true</>
    <img:tdi_direction>A</>        -- A or B for shadowcam
    <img:tdi_line_rate unit="ms"> line_rate_ms value </>
    <img:tdi_line_rate_code> line_rate_code value </>
</>

HiRISE EDR

<img:Time_Delay_Integration>
    <img:active_flag>true</>
    <img:detector_id>red5</>      -- optional for EDR
    <img:tdi_rows> TDI value </>
</>

HiRISE RDR

<img:Time_Delay_Integration>
    <img:active_flag>true</>
    <img:sequence_id>1</>
    <img:tdi_detector_id>red0</>
    <img:tdi_rows>128</>
</>
...
<img:Time_Delay_Integration>
    <img:active_flag>false</>
    <img:sequence_id>10</>
    <img:tdi_detector_id>red9</>
</>

MVIC on New Horizons/Lucy

<img:Time_Delay_Integration>
    <img:active_flag>true</>
    <img:sequence_id>1</>
    <img:tdi_detector_id>ccd1</>
    <img:tdi_rows>8</>          -- from actual_ccd1_tdi_configuration
    <img:tdi_line_rate unit="us">7200.0</>
</>
...
<img:Time_Delay_Integration>
    <img:active_flag>true</>
    <img:sequence_id>6</>
    <img:tdi_detector_id>ccd6</>
    <img:tdi_rows>8</>          -- from actual_ccd6_tdi_configuration
    <img:tdi_line_rate unit="us">7200.0</>
</>

with a similar section under Commanded_Parameters, but without tdi_line_rate:

<img:Time_Delay_Integration>
    <img:active_flag>true</>
    <img:sequence_id>1</>
    <img:tdi_detector_id>ccd1</>
    <img:tdi_rows>8</>          -- from planned_ccd1_tdi_configuration
</>
...
<img:Time_Delay_Integration>
    <img:active_flag>true</>
    <img:sequence_id>6</>
    <img:tdi_detector_id>ccd6</>
    <img:tdi_rows>8</>          -- from planned_ccd6_tdi_configuration
</>
@rgdeen rgdeen added the ldd-img Issue for ldd-img repo label Nov 8, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
ldd-img Issue for ldd-img repo
Projects
Status: No status
Development

No branches or pull requests

2 participants