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

Mariner10 driver and test #547

Merged
merged 5 commits into from
Jul 18, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
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
5 changes: 4 additions & 1 deletion CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,9 @@ release.

## [Unreleased]

### Added
- Mariner10 IsisLabelNaifSpice driver, tests, and test data [#547](https://github.com/DOI-USGS/ale/pull/547)

## [0.9.1] - 2023-06-05

### Changed
Expand Down Expand Up @@ -62,4 +65,4 @@ release.
- MGS MOC WAC IsisLabelNaifSpice driver, tests, and test data [#516](https://github.com/DOI-USGS/ale/pull/516)
- Chandrayaan1_mrffr IsisLabelNaifSpice driver, tests and test data [#519](https://github.com/DOI-USGS/ale/pull/519)
- MGS MOC Narrow Angle IsisLabelNaifSpice driver, tests, and test data [#517](https://github.com/DOI-USGS/ale/pull/517)
- Hayabusa NIRS IsisLabelNaifSpice driver, tests and test data [#532](https://github.com/DOI-USGS/ale/pull/532)
- Hayabusa NIRS IsisLabelNaifSpice driver, tests and test data [#532](https://github.com/DOI-USGS/ale/pull/532)
100 changes: 100 additions & 0 deletions ale/drivers/mariner_drivers.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,100 @@
import spiceypy as spice
from ale.base.data_naif import NaifSpice
from ale.base.label_isis import IsisLabel
from ale.base.type_sensor import Framer
from ale.base.type_distortion import NoDistortion
from ale.base.base import Driver

class Mariner10IsisLabelNaifSpiceDriver(Framer, IsisLabel, NaifSpice, NoDistortion, Driver):

@property
def instrument_id(self):
"""
Returns the ID of the instrument

Returns
-------
: str
Name of the instrument
"""
inst_id_lookup = {
"M10_VIDICON_A": "M10_SPACECRAFT",
"M10_VIDICON_B": "M10_SPACECRAFT"
}
return inst_id_lookup[super().instrument_id]

@property
def sensor_model_version(self):
"""
The ISIS Sensor model number for HiRise in ISIS. This is likely just 1.

Returns
-------
: int
ISIS sensor model version
"""
return 1

@property
def sensor_name(self):
"""
Returns the name of the instrument

Returns
-------
: str
Name of the sensor
"""
return super().instrument_id

@property
def sensor_frame_id(self):
"""
Hard coded sensor_frame_id based on the Isis Mariner10 camera model.

Returns
-------
: int
The sensor frame id
"""
return -76000

@property
def ikid(self):
"""
Returns the ikid/frame code from the ISIS label.

Returns
-------
: int
Naif ID used to for identifying the instrument in Spice kernels
"""
return self.label['IsisCube']['Kernels']['NaifFrameCode']

@property
def ephemeris_start_time(self):
"""
Returns the start ephemeris time for the image.

Returns
-------
: float
start time
"""
return spice.str2et(self.utc_start_time.strftime("%Y-%m-%d %H:%M:%S.%f")) - (self.exposure_duration / 2.0)

@property
def light_time_correction(self):
"""
Returns the type of light time correction and abberation correction to
use in NAIF calls.

Returns
-------
: str
The light time and abberation correction string for use in NAIF calls.
See https://naif.jpl.nasa.gov/pub/naif/toolkit_docs/C/req/abcorr.html
for the different options available.
"""
return 'NONE'

226 changes: 226 additions & 0 deletions tests/pytests/data/27265/27265-output.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,226 @@
{
"isis_camera_version": 1,
"image_lines": 700,
"image_samples": 832,
"name_platform": "Mariner_10",
"name_sensor": "M10_VIDICON_A",
"reference_height": {
"maxheight": 1000,
"minheight": -1000,
"unit": "m"
},
"name_model": "USGS_ASTRO_FRAME_SENSOR_MODEL",
"center_ephemeris_time": -812916168.4183488,
"radii": {
"semimajor": 2439.7,
"semiminor": 2439.7,
"unit": "km"
},
"body_rotation": {
"time_dependent_frames": [
10011,
1
],
"ck_table_start_time": -812916168.4183488,
"ck_table_end_time": -812916168.4183488,
"ck_table_original_size": 1,
"ephemeris_times": [
-812916168.4183488
],
"quaternions": [
[
-0.041589464253201175,
-0.036695469453297484,
0.24381936260450102,
-0.9682333796166442
]
],
"angular_velocities": [
[
1.1326300442450132e-07,
-5.816846505242454e-07,
1.0892405863919202e-06
]
],
"reference_frame": 1
},
"instrument_pointing": {
"time_dependent_frames": [
-76000,
1
],
"ck_table_start_time": -812916168.4183488,
"ck_table_end_time": -812916168.4183488,
"ck_table_original_size": 1,
"ephemeris_times": [
-812916168.4183488
],
"quaternions": [
[
-0.4151219005736828,
0.5204702103512857,
0.2881986100016333,
0.6882776539988121
]
],
"angular_velocities": [
[
-0.0,
-0.0,
-0.0
]
],
"reference_frame": 1,
"constant_frames": [
-76000
],
"constant_rotation": [
1.0,
0.0,
0.0,
0.0,
1.0,
0.0,
0.0,
0.0,
1.0
]
},
"naif_keywords": {
"BODY199_RADII": [
2439.7,
2439.7,
2439.7
],
"BODY_FRAME_CODE": 10011,
"BODY_CODE": 199,
"INS-76110_FOCAL_LENGTH": 1493.6,
"INS-76110_BORESIGHT_LINE": 400.0,
"INS-76110_CK_FRAME_ID": -76000.0,
"INS-76110_ITRANSL": [
0.0,
0.0,
75.0
],
"INS-76110_ITRANSS": [
0.0,
75.0,
0.0
],
"INS-76110_CK_REFERENCE_ID": 1.0,
"FRAME_-76110_CLASS": 3.0,
"INS-76110_CK_TIME_TOLERANCE": 1.0,
"CK_-76110_SPK": -76.0,
"INS-76110_PLATFORM_ID": -76.0,
"FRAME_-76110_CENTER": -76.0,
"FRAME_-76110_NAME": "VIDICON_A",
"FRAME_-76110_CLASS_ID": -76110.0,
"INS-76110_CK_TIME_BIAS": 0.0,
"INS-76110_BORESIGHT_SAMPLE": 475.0,
"CK_-76110_SCLK": -76.0,
"INS-76110_PIXEL_PITCH": 0.013333333,
"INS-76110_SPK_TIME_BIAS": 0.0,
"INS-76110_TRANSX": [
0.0,
0.013333333,
0.0
],
"INS-76110_TRANSY": [
0.0,
0.0,
0.013333333
],
"BODY199_PM": [
329.548,
6.1385025,
0.0
],
"BODY199_POLE_RA": [
281.01,
-0.033,
0.0
],
"BODY199_LONG_AXIS": 0.0,
"BODY199_POLE_DEC": [
61.45,
-0.005,
0.0
]
},
"detector_sample_summing": 1,
"detector_line_summing": 1,
"focal_length_model": {
"focal_length": 1493.6
},
"detector_center": {
"line": 400.0,
"sample": 475.0
},
"focal2pixel_lines": [
0.0,
0.0,
75.0
],
"focal2pixel_samples": [
0.0,
75.0,
0.0
],
"optical_distortion": {
"radial": {
"coefficients": [
0.0,
0.0,
0.0
]
}
},
"starting_detector_line": 0,
"starting_detector_sample": 0,
"instrument_position": {
"spk_table_start_time": -812916168.4183488,
"spk_table_end_time": -812916168.4183488,
"spk_table_original_size": 1,
"ephemeris_times": [
-812916168.4183488
],
"positions": [
[
-102988.65244940185,
3813.6761044064274,
-31476.7258130999
]
],
"velocities": [
[
10.073083917183162,
-0.6608509235485678,
2.9052260072869664
]
],
"reference_frame": 1
},
"sun_position": {
"spk_table_start_time": -812916168.4183488,
"spk_table_end_time": -812916168.4183488,
"spk_table_original_size": 1,
"ephemeris_times": [
-812916168.4183488
],
"positions": [
[
6487626.304499695,
61459556.251802824,
32153267.064496163
]
],
"velocities": [
[
-38.73233838516926,
0.39826024551668027,
4.232611805855759
]
],
"reference_frame": 1
}
}
9 changes: 9 additions & 0 deletions tests/pytests/data/27265/27265.isis_0.conf
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
LEAPSECONDS_KERNEL = /isis_data/base/kernels/lsk/naif0012.tls
SPK_KERNEL = /testdata/mariner10-driver/generated-kernels/27265.isis_0.bsp
BODIES = 0, 1, 199, 10, -76
BEGIN_TIME = 1974 MAR 29 17:50:22.619
END_TIME = 1974 MAR 29 17:58:37.796
SOURCE_SPK_KERNEL = /isis_data/mariner10/kernels/spk/MARINER_10_A_gem.bsp
INCLUDE_COMMENTS = no
SOURCE_SPK_KERNEL = /isis_data/base/kernels/spk/de430.bsp
INCLUDE_COMMENTS = no
Loading
Loading