4. Simulating observations#

In this tutorial, you learn about simulating observations geometry.

from gfinder.datastore import DataStore
from gfinder.dataviewer import TimeSeriesViewer, MapViewer, PointingViewer
import spiceypy as spice

Simulate a Europa disk slew observation during Europa 7E1 flyby#

We previous found there were two opportunity windows to perform a Europa disk slew observation:

Start Time (UTC) : 2032-07-02 14:42:42.998 (-01:39:41.001)
Stop Time (UTC)  : 2032-07-02 15:44:59.653 (-00:37:24.346)
Duration         : 01:02:20.395

Start Time (UTC) : 2032-07-02 16:42:11.453 (+00:19:47.453)
Stop Time (UTC)  : 2032-07-02 18:01:58.579 (+01:39:34.579)
Duration         : 01:19:51.917

Compute and visualise#

!gfinder compute --odf-file=europa_disk_slew.json \
    --event-id=7E1_CA \
    --start-time=-03:30:00 \
    --n-steps=500 \
    --time-step=6.0 \
    --sim-sc-att \
    --sc-slew-angles='{"x_start": -3.0, "x_stop": 3.0, "y_start": 0.0, "y_stop": 0.0}' \
    --mission-scenario-id=CREMA50 \
    --overwrite
POINTING SIMULATOR

SC pointing simulator: ON
{
  "primary_axis": "Z",
  "primary_vector": {
    "name": "Target_Position",
    "parameters": {
      "target": "EUROPA"
    }
  },
  "secondary_axis": "Y",
  "secondary_vector": {
    "name": "SC_Velocity",
    "parameters": {
      "target": "EUROPA"
    }
  },
  "power_optimised": true,
  "offset_rotations": {
    "name": "SC_Slew_Angles",
    "parameters": {
      "x_start": -3.0,
      "x_stop": 3.0,
      "y_start": 0.0,
      "y_stop": 0.0
    }
  }
}

MAJIS scanner pointing simulator: OFF

OPPORTUNITY DEFINITION

  Europa Disk Slew observations
    Target_Angular_Size > 8.0
    Equatorial_Coverage > 30.0
    SC_In_Equatorial_Plane is True

INPUT TIMES

    Start Time (UTC) : 2032-07-02 12:52:23.999 (-03:30:00.000)
    Stop Time (UTC)  : 2032-07-02 13:42:23.999 (-02:40:00.000)

  Number of Steps : 500
  Time Step : 6.000
  Reference Time (UTC) : 2032-07-02 16:22:24.000 (7E1_CA)

SEARCH RESULT

  No search.

COMPUTATION RESULT

  #0001  2032-07-02 12:52:23.999 (-03:30:00.000)  00:50:00.000 (3000.000 s)

         Obs_SC_Slew_Parameters:
           x_start = -1.935852100965987 deg
           x_stop = 2.5193924976683206 deg
           x_rate = 0.001432394487827058 deg/s
           slew_duration = 3108.0 s
           n_lines = 518 

Opportunity ID : crema50_eur_europa_disk_slew_20320702_20320702
All results in /Users/nmanaud/workspace/majis/data/opportunities/CREMA50/crema50_eur_europa_disk_slew_20320702_20320702 directory.
opportunity_id = 'crema50_eur_europa_disk_slew_20320702_20320702'
opportunity = DataStore().loadOpportunity(opportunity_id)

TimeSeriesViewer(opportunity).show(time_format='utc')
PointingViewer(opportunity).show()
MapViewer([opportunity]).show(surface_only=True)

“commanded” full disk slew and MAJIS scan#

After a few iterative runs, SC slew “commanding” parameters converge to a solution:

 Obs_SC_Slew_Parameters:
   x_start = -1.935852100965987 deg
   x_stop = 2.5535754362025394 deg
   x_rate = 0.001432394487827058 deg/s
   slew_duration = 3132.0 s
   n_lines = 522
!gfinder compute --odf-file=europa_disk_slew.json \
    --event-id=7E1_CA \
    --start-time=-03:30:00 \
    --n-steps=522 \
    --time-step=6.0 \
    --sim-sc-att \
    --sc-slew-angles='{"x_start": -1.935852100965987, "x_stop": 2.5567300108778563, "x_rate": 0.001432394487827058}' \
    --suffix=full \
    --overwrite
POINTING SIMULATOR

SC pointing simulator: ON
{
  "primary_axis": "Z",
  "primary_vector": {
    "name": "Target_Position",
    "parameters": {
      "target": "EUROPA"
    }
  },
  "secondary_axis": "Y",
  "secondary_vector": {
    "name": "SC_Velocity",
    "parameters": {
      "target": "EUROPA"
    }
  },
  "power_optimised": true,
  "offset_rotations": {
    "name": "SC_Slew_Angles",
    "parameters": {
      "x_start": -1.935852100965987,
      "x_stop": 2.5567300108778563,
      "x_rate": 0.001432394487827058
    }
  }
}

MAJIS scanner pointing simulator: OFF

OPPORTUNITY DEFINITION

  Europa Disk Slew observations
    Target_Angular_Size > 8.0
    Equatorial_Coverage > 30.0
    SC_In_Equatorial_Plane is True

INPUT TIMES

    Start Time (UTC) : 2032-07-02 12:52:23.999 (-03:30:00.000)
    Stop Time (UTC)  : 2032-07-02 13:44:35.999 (-02:37:48.000)

  Number of Steps : 522
  Time Step : 6.000
  Reference Time (UTC) : 2032-07-02 16:22:24.000 (7E1_CA)

SEARCH RESULT

  No search.

COMPUTATION RESULT

  #0001  2032-07-02 12:52:23.999 (-03:30:00.000)  00:52:12.000 (3132.000 s)

         Obs_SC_Slew_Parameters:
           x_start = -1.935852100965987 deg
           x_stop = 2.5535754362025394 deg
           x_rate = 0.001432394487827058 deg/s
           slew_duration = 3132.0 s
           n_lines = 522 

Opportunity ID : crema50_eur_europa_disk_slew_20320702_20320702_full
All results in /Users/nmanaud/workspace/majis/data/opportunities/CREMA50/crema50_eur_europa_disk_slew_20320702_20320702_full directory.
!gfinder compute --odf-file=europa_disk_scan.json \
    --event-id=7E1_CA \
    --start-time=-03:30:00 \
    --n-steps=522 \
    --time-step=6.0 \
    --sim-sc-att \
    --sim-scanner \
    --majis-scan-angle='{"start_angle": -0.9683663504464286, "stop_angle": 1.279122488839286, \
    "start_scan_rate": 0.000716197243913529, "stop_scan_rate": 0.000716197243913529, "method": "discrete"}' \
    --suffix=full \
    --overwrite
POINTING SIMULATOR

SC pointing simulator: ON
{
  "primary_axis": "Z",
  "primary_vector": {
    "name": "Target_Position",
    "parameters": {
      "target": "EUROPA"
    }
  },
  "secondary_axis": "-X",
  "secondary_vector": {
    "name": "Target_Position",
    "parameters": {
      "target": "SUN"
    }
  },
  "offset_rotations": {
    "name": "SC_Slew_Angles",
    "parameters": {
      "x_start": 0.0,
      "y_start": 0.0
    }
  }
}

MAJIS scanner pointing simulator: ON
{
  "scan_zero": [
    0.0,
    0.0,
    0.0
  ],
  "scan_rotation_angle": {
    "name": "MAJIS_Scan_Angle",
    "parameters": {
      "start_angle": -0.9683663504464286,
      "stop_angle": 1.279122488839286,
      "start_scan_rate": 0.000716197243913529,
      "stop_scan_rate": 0.000716197243913529,
      "method": "discrete"
    }
  }
}

OPPORTUNITY DEFINITION

  Europa Disk Scan observations, NPO SC pointing.
    Target_Angular_Size > 3.4
    Target_Angular_Size < 8.0

INPUT TIMES

    Start Time (UTC) : 2032-07-02 12:52:23.999 (-03:30:00.000)
    Stop Time (UTC)  : 2032-07-02 13:44:35.999 (-02:37:48.000)

  Number of Steps : 522
  Time Step : 6.000
  Reference Time (UTC) : 2032-07-02 16:22:24.000 (7E1_CA)

SEARCH RESULT

  No search.

COMPUTATION RESULT

  #0001  2032-07-02 12:52:23.999 (-03:30:00.000)  00:52:12.000 (3132.000 s)

         Obs_SC_Slew_Parameters:
           x_start = -1.935852100965987 deg
           x_stop = 2.5535754362025394 deg
           x_rate = 0.001432394487827058 deg/s
           slew_duration = 3132.0 s
           n_lines = 522 

Opportunity ID : crema50_eur_europa_disk_scan_20320702_20320702_full
All results in /Users/nmanaud/workspace/majis/data/opportunities/CREMA50/crema50_eur_europa_disk_scan_20320702_20320702_full directory.
full_disc_slew = DataStore().loadOpportunity('crema50_eur_europa_disk_slew_20320702_20320702_full')
full_disc_scan = DataStore().loadOpportunity('crema50_eur_europa_disk_scan_20320702_20320702_full')

#TimeSeriesViewer(full_disc_slew).show(time_format='rel')
PointingViewer(full_disc_slew).show()
PointingViewer(full_disc_scan).show()
MapViewer([full_disc_slew, full_disc_scan]).show(surface_only=True, geometries=['Detector_FOV_Footprint'])

Simulate a Europa flyby limb scan observation during Europa 7E1 flyby#

We previously found there was one opportunity windows to perform a Europa limb scan observation:

Start Time (UTC) : 2032-07-02 16:53:08.648 (+00:30:44.648)
Stop Time (UTC)  : 2032-07-03 04:21:42.603 (+11:59:18.603)
Duration         : 11:29:15.310

Compute and visualise overview#

!gfinder compute \
    --odf-file=europa_limb_scan.json \
    --event-id=7E1_CA \
    --start-time=00:30:44.648 \
    --stop-time=11:59:18.603 \
    --n-steps=100 \
    --mission-scenario-id=CREMA50 \
    --overwrite
POINTING SIMULATOR

SC pointing simulator: OFF
MAJIS scanner pointing simulator: OFF

OPPORTUNITY DEFINITION

  Testing MAJIS limb scan observation simulations.
    Phase_Angle > 135
    Phase_Angle < 145

INPUT TIMES

    Start Time (UTC) : 2032-07-02 16:53:08.648 (+00:30:44.648)
    Stop Time (UTC)  : 2032-07-03 04:21:42.603 (+11:59:18.603)

  Number of Steps : 100
  Reference Time (UTC) : 2032-07-02 16:22:24.000 (7E1_CA)

SEARCH RESULT

  No search.

COMPUTATION RESULT

  #0001  2032-07-02 16:53:08.648 (+00:30:44.648)  11:28:29.739 (41309.740 s)

Opportunity ID : crema50_eur_europa_limb_scan_20320702_20320703
All results in /Users/nmanaud/workspace/majis/data/opportunities/CREMA50/crema50_eur_europa_limb_scan_20320702_20320703 directory.
opportunity_id = 'crema50_eur_europa_limb_scan_20320702_20320703'
opportunity = DataStore().loadOpportunity(opportunity_id)

TimeSeriesViewer(opportunity).show(time_format='rel')
PointingViewer(opportunity).show()
MapViewer([opportunity]).show()

Simulate and visualise#

time_step = 4 # repetition time, in sec.
ifov=0.00015*spice.dpr()
scan_rate=ifov/time_step
print(scan_rate)
0.002148591731740587
!gfinder compute \
    --odf-file=europa_limb_scan.json \
    --event-id=7E1_CA \
    --start-time='01:00:00' \
    --n-steps=300 \
    --time-step=4 \
    --sim-sc-att \
    --sim-scanner \
    --majis-scan-angle='{"start_angle":0.0, "scan_rate": 0.002148591731740587}' \
    --suffix=simu \
    --mission-scenario-id=CREMA50 \
    --overwrite
POINTING SIMULATOR

SC pointing simulator: ON
{
  "primary_axis": "Z",
  "primary_vector": {
    "name": "Limb_Point_Direction",
    "parameters": {
      "target": "EUROPA",
      "latitude": 0.0,
      "max_incidence_angle": 90.0
    }
  },
  "secondary_axis": "-X",
  "secondary_vector": {
    "name": "Limb_Point_Tangent_Direction",
    "parameters": {
      "target": "EUROPA",
      "latitude": 0.0,
      "max_incidence_angle": 90.0,
      "power_optimised": "True"
    }
  },
  "offset_rotations": {
    "name": "SC_Slew_Angles",
    "parameters": {
      "x_start": 0.0,
      "y_start": 0.0
    }
  }
}

MAJIS scanner pointing simulator: ON
{
  "scan_zero": [
    0.0,
    0.0,
    0.0
  ],
  "scan_rotation_angle": {
    "name": "MAJIS_Scan_Angle",
    "parameters": {
      "start_angle": 0.0,
      "scan_rate": 0.002148591731740587
    }
  }
}

OPPORTUNITY DEFINITION

  Testing MAJIS limb scan observation simulations.
    Phase_Angle > 135
    Phase_Angle < 145

INPUT TIMES

    Start Time (UTC) : 2032-07-02 17:22:24.000 (+01:00:00.000)
    Stop Time (UTC)  : 2032-07-02 17:42:24.000 (+01:20:00.000)

  Number of Steps : 300
  Time Step : 4.000
  Reference Time (UTC) : 2032-07-02 16:22:24.000 (7E1_CA)

SEARCH RESULT

  No search.

COMPUTATION RESULT

  #0001  2032-07-02 17:22:24.000 (+01:00:00.000)  00:20:00.000 (1200.000 s)

Opportunity ID : crema50_eur_europa_limb_scan_20320702_20320702_simu
All results in /Users/nmanaud/workspace/majis/data/opportunities/CREMA50/crema50_eur_europa_limb_scan_20320702_20320702_simu directory.
opportunity_id = 'crema50_eur_europa_limb_scan_20320702_20320702_simu'
opportunity = DataStore().loadOpportunity(opportunity_id)

TimeSeriesViewer(opportunity).show(time_format='utc')
PointingViewer(opportunity).show()
MapViewer([opportunity]).show(geometries=['Detector_Boresight_Target_Point'])

Simulate a Europa HR observation during Europa 7E1 flyby#

We previously found there was one opportunity windows to perform a Europa flyby HR observation:

Start Time (UTC) : 2032-07-02 15:47:19.821 (-00:35:04.178)
Stop Time (UTC)  : 2032-07-02 16:22:33.236 (+00:00:09.236)
Duration         : 00:35:15.529

Associated opportunity ID is crema50_eur_europa_flyby_hr_20320702_20320703.

Compute and visualise opportunity geometry#

No “dynamic” SC nor MAJIS scanner pointing simulation, based on baseline CKs.

!gfinder compute --odf-file=europa_flyby_hr.json --event-id=7E1_CA --start-time=-00:35:04.178 --stop-time=00:00:09.236 --mission-scenario-id=CREMA50 --overwrite
POINTING SIMULATOR

SC pointing simulator: OFF
MAJIS scanner pointing simulator: OFF

OPPORTUNITY DEFINITION

  Europa flyby HR observations
    Spatial_Resolution < 1.0
    Phase_Angle < 70

INPUT TIMES

    Start Time (UTC) : 2032-07-02 15:47:19.821 (-00:35:04.177)
    Stop Time (UTC)  : 2032-07-02 16:22:33.235 (+00:00:09.235)

  Number of Steps : 100
  Reference Time (UTC) : 2032-07-02 16:22:24.000 (7E1_CA)

SEARCH RESULT

  No search.

COMPUTATION RESULT

  #0001  2032-07-02 15:47:19.821 (-00:35:04.177)  00:35:13.198 (2113.198 s)

         Obs_Scanner_Motion_Parameters:
           start_angle = -1.99951171875 deg
           start_scan_rate = 0.00043098360186822823 deg/s
           stop_scan_rate = 0.024829580319389182 deg/s
           scan_duration = 1421.7585794474207 s
           scan_lines = 67 

Opportunity ID : crema50_eur_europa_flyby_hr_20320702_20320702
All results in /Users/nmanaud/workspace/majis/data/opportunities/CREMA50/crema50_eur_europa_flyby_hr_20320702_20320702 directory.

Using --opportunity-id

Alternatively you can use compute the geometry associated to an existing opportunity_id. In this case, crema50_eur_europa_flyby_hr_20320702_20320703 holds the Europa flyby HR observations opportunity windows resulting from a previous search.

#!gfinder compute --opportunity-id=crema50_eur_europa_flyby_hr_20320702_20320703
overview = DataStore().loadOpportunity('crema50_eur_europa_flyby_hr_20320702_20320702')
TimeSeriesViewer(overview).show(time_format='rel', ref=0.5)
MapViewer([overview]).show()

When scanner motion compensation is NOT required?#

Get times for which no scanner motion compensation is required for different integration time and binning combinaisons.

for t_int in [0.5, 1.0, 2.0]:
    for binning in [1,2,4]:
        times = overview.get_no_comp_times(t_int, binning=binning)
        print(f't_int={t_int}, binning={binning}: {times}')
    print()
t_int=0.5, binning=1: [['-00:15:41.918', '-00:14:59.654']]
t_int=0.5, binning=2: [['-00:12:10.599', '-00:11:28.335']]
t_int=0.5, binning=4: [['-00:09:00.411', '-00:08:39.279']]

t_int=1.0, binning=1: [['-00:19:55.502', '-00:18:52.106']]
t_int=1.0, binning=2: [['-00:15:41.918', '-00:14:59.654']]
t_int=1.0, binning=4: [['-00:12:10.599', '-00:11:28.335']]

t_int=2.0, binning=1: [['-00:25:12.482', '-00:23:47.954']]
t_int=2.0, binning=2: [['-00:19:55.502', '-00:18:52.106']]
t_int=2.0, binning=4: [['-00:15:41.918', '-00:14:59.654']]

Simulate HR observations with a “geometrically-compensated” MAJIS scanner motion#

We first simulate the MAJIS scanner motion based on computed “geometric” compensation angles (Motion_Compensation_Angle), using the --sim-scanner option.

This step allows you to compute MAJIS scanner motion commanding parameters to be used in the next simulation run.

We purposely set --n-steps (number of lines/repetitions) to a number higher than the required number of scan lines (|scan angle| > 4 degrees).

We run this simulation at two different start times:

  • at CA: 00:00:00

  • before CA: -00:06:00

 !gfinder compute \
    --odf-file=europa_flyby_hr.json \
    --event-id=7E1_CA \
    --start-time='00:00:00' \
    --time-step=0.5 \
    --n-steps=200 \
    --binning=1 \
    --sim-sc-att \
    --sim-scanner \
    --suffix=simu1 \
    --mission-scenario-id=CREMA50 \
    --overwrite

!gfinder compute \
    --odf-file=europa_flyby_hr.json \
    --event-id=7E1_CA \
    --start-time='-00:06:00' \
    --time-step=0.5 \
    --n-steps=200 \
    --binning=1 \
    --sim-sc-att \
    --sim-scanner \
    --suffix=simu2 \
    --mission-scenario-id=CREMA50 \
    --overwrite
POINTING SIMULATOR

SC pointing simulator: ON
{
  "primary_axis": "Z",
  "primary_vector": {
    "name": "Target_Position",
    "parameters": {
      "target": "EUROPA"
    }
  },
  "secondary_axis": "Y",
  "secondary_vector": {
    "name": "SC_Velocity",
    "parameters": {
      "target": "EUROPA"
    }
  },
  "power_optimised": true,
  "offset_rotations": {
    "name": "SC_Slew_Angles",
    "parameters": {
      "x_start": 0.0,
      "y_start": 0.0
    }
  }
}

MAJIS scanner pointing simulator: ON
{
  "scan_zero": [
    0.0,
    0.0,
    0.0
  ],
  "scan_rotation_angle": {
    "name": "Motion_Compensation_Angle",
    "parameters": {
      "target": "EUROPA",
      "detector": "JUICE_MAJIS_VISNIR"
    }
  }
}

OPPORTUNITY DEFINITION

  Europa flyby HR observations
    Spatial_Resolution < 1.0
    Phase_Angle < 70

INPUT TIMES

    Start Time (UTC) : 2032-07-02 16:22:24.000 (00:00:00.000)
    Stop Time (UTC)  : 2032-07-02 16:24:04.000 (+00:01:40.000)

  Number of Steps : 200
  Time Step : 0.500
  Reference Time (UTC) : 2032-07-02 16:22:24.000 (7E1_CA)

SEARCH RESULT

  No search.

COMPUTATION RESULT

  #0001  2032-07-02 16:22:24.000 (00:00:00.000)  00:01:40.000 (100.000 s)

         Obs_Scanner_Motion_Parameters:
           start_angle = -1.99951171875 deg
           start_scan_rate = 0.22192191832566388 deg/s
           stop_scan_rate = 0.22143097582715549 deg/s
           scan_duration = 18.054802549462373 s
           scan_lines = 36 

Opportunity ID : crema50_eur_europa_flyby_hr_20320702_20320702_simu1
All results in /Users/nmanaud/workspace/majis/data/opportunities/CREMA50/crema50_eur_europa_flyby_hr_20320702_20320702_simu1 directory.
POINTING SIMULATOR

SC pointing simulator: ON
{
  "primary_axis": "Z",
  "primary_vector": {
    "name": "Target_Position",
    "parameters": {
      "target": "EUROPA"
    }
  },
  "secondary_axis": "Y",
  "secondary_vector": {
    "name": "SC_Velocity",
    "parameters": {
      "target": "EUROPA"
    }
  },
  "power_optimised": true,
  "offset_rotations": {
    "name": "SC_Slew_Angles",
    "parameters": {
      "x_start": 0.0,
      "y_start": 0.0
    }
  }
}

MAJIS scanner pointing simulator: ON
{
  "scan_zero": [
    0.0,
    0.0,
    0.0
  ],
  "scan_rotation_angle": {
    "name": "Motion_Compensation_Angle",
    "parameters": {
      "target": "EUROPA",
      "detector": "JUICE_MAJIS_VISNIR"
    }
  }
}

OPPORTUNITY DEFINITION

  Europa flyby HR observations
    Spatial_Resolution < 1.0
    Phase_Angle < 70

INPUT TIMES

    Start Time (UTC) : 2032-07-02 16:16:23.999 (-00:06:00.000)
    Stop Time (UTC)  : 2032-07-02 16:18:04.000 (-00:04:20.000)

  Number of Steps : 200
  Time Step : 0.500
  Reference Time (UTC) : 2032-07-02 16:22:24.000 (7E1_CA)

SEARCH RESULT

  No search.

COMPUTATION RESULT

  #0001  2032-07-02 16:16:23.999 (-00:06:00.000)  00:01:40.000 (100.000 s)

         Obs_Scanner_Motion_Parameters:
           start_angle = -1.99951171875 deg
           start_scan_rate = 0.05873584947583111 deg/s
           stop_scan_rate = 0.08988589332261335 deg/s
           scan_duration = 54.739411901367674 s
           scan_lines = 109 

Opportunity ID : crema50_eur_europa_flyby_hr_20320702_20320702_simu2
All results in /Users/nmanaud/workspace/majis/data/opportunities/CREMA50/crema50_eur_europa_flyby_hr_20320702_20320702_simu2 directory.

Simulate observation with a “commanded” MAJIS scanner motion#

Simulating MAJIS scanner motion based on MAJIS_Scan_Angle computed from scanner commanding parameters from previous computation (Obs_Scanner_Motion_Parameters):

Obs_Scanner_Motion_Parameters:
  start_angle = -1.99951171875 deg
  start_scan_rate = 0.22192191832566388 deg/s
  stop_scan_rate = 0.22143097582715549 deg/s
  scan_duration = 18.054802549462373 s
  scan_lines = 36
Obs_Scanner_Motion_Parameters:
  start_angle = -1.99951171875 deg
  start_scan_rate = 0.05873584947583111 deg/s
  stop_scan_rate = 0.08988589332261335 deg/s
  scan_duration = 54.739411901367674 s
  scan_lines = 109 
!gfinder compute \
    --odf-file=europa_flyby_hr.json \
    --event-id=7E1_CA \
    --start-time='00:00:00' \
    --time-step=0.5 \
    --n-steps=36 \
    --binning=1 \
    --sim-sc-att \
    --sim-scanner \
    --majis-scan-angle='{"start_angle":-1.99951171875, "start_scan_rate":0.22192191832566388, "stop_scan_rate": 0.22143097582715549, "method":"discrete"}' \
    --suffix=simu1_scan \
    --mission-scenario-id=CREMA50 \
    --overwrite

!gfinder compute \
    --odf-file=europa_flyby_hr.json \
    --event-id=7E1_CA \
    --start-time='-00:06:00' \
    --time-step=0.5 \
    --n-steps=109 \
    --binning=1 \
    --sim-sc-att \
    --sim-scanner \
    --majis-scan-angle='{"start_angle":-1.99951171875, "start_scan_rate":0.05873584947583111, "stop_scan_rate": 0.08988589332261335, "method":"discrete"}' \
    --suffix=simu2_scan \
    --mission-scenario-id=CREMA50 \
    --overwrite
POINTING SIMULATOR

SC pointing simulator: ON
{
  "primary_axis": "Z",
  "primary_vector": {
    "name": "Target_Position",
    "parameters": {
      "target": "EUROPA"
    }
  },
  "secondary_axis": "Y",
  "secondary_vector": {
    "name": "SC_Velocity",
    "parameters": {
      "target": "EUROPA"
    }
  },
  "power_optimised": true,
  "offset_rotations": {
    "name": "SC_Slew_Angles",
    "parameters": {
      "x_start": 0.0,
      "y_start": 0.0
    }
  }
}

MAJIS scanner pointing simulator: ON
{
  "scan_zero": [
    0.0,
    0.0,
    0.0
  ],
  "scan_rotation_angle": {
    "name": "MAJIS_Scan_Angle",
    "parameters": {
      "start_angle": -1.99951171875,
      "start_scan_rate": 0.22192191832566388,
      "stop_scan_rate": 0.22143097582715549,
      "method": "discrete"
    }
  }
}

OPPORTUNITY DEFINITION

  Europa flyby HR observations
    Spatial_Resolution < 1.0
    Phase_Angle < 70

INPUT TIMES

    Start Time (UTC) : 2032-07-02 16:22:24.000 (00:00:00.000)
    Stop Time (UTC)  : 2032-07-02 16:22:42.000 (+00:00:18.000)

  Number of Steps : 36
  Time Step : 0.500
  Reference Time (UTC) : 2032-07-02 16:22:24.000 (7E1_CA)

SEARCH RESULT

  No search.

COMPUTATION RESULT

  #0001  2032-07-02 16:22:24.000 (00:00:00.000)  00:00:18.000 (18.000 s)

         Obs_Scanner_Motion_Parameters:
           start_angle = 0.0 deg
           start_scan_rate = 0.0 deg/s
           stop_scan_rate = 0.0 deg/s
           scan_duration = 0.0 s
           scan_lines = 0 

Opportunity ID : crema50_eur_europa_flyby_hr_20320702_20320702_simu1_scan
All results in /Users/nmanaud/workspace/majis/data/opportunities/CREMA50/crema50_eur_europa_flyby_hr_20320702_20320702_simu1_scan directory.
POINTING SIMULATOR

SC pointing simulator: ON
{
  "primary_axis": "Z",
  "primary_vector": {
    "name": "Target_Position",
    "parameters": {
      "target": "EUROPA"
    }
  },
  "secondary_axis": "Y",
  "secondary_vector": {
    "name": "SC_Velocity",
    "parameters": {
      "target": "EUROPA"
    }
  },
  "power_optimised": true,
  "offset_rotations": {
    "name": "SC_Slew_Angles",
    "parameters": {
      "x_start": 0.0,
      "y_start": 0.0
    }
  }
}

MAJIS scanner pointing simulator: ON
{
  "scan_zero": [
    0.0,
    0.0,
    0.0
  ],
  "scan_rotation_angle": {
    "name": "MAJIS_Scan_Angle",
    "parameters": {
      "start_angle": -1.99951171875,
      "start_scan_rate": 0.05873584947583111,
      "stop_scan_rate": 0.08988589332261335,
      "method": "discrete"
    }
  }
}

OPPORTUNITY DEFINITION

  Europa flyby HR observations
    Spatial_Resolution < 1.0
    Phase_Angle < 70

INPUT TIMES

    Start Time (UTC) : 2032-07-02 16:16:23.999 (-00:06:00.000)
    Stop Time (UTC)  : 2032-07-02 16:17:18.500 (-00:05:05.500)

  Number of Steps : 109
  Time Step : 0.500
  Reference Time (UTC) : 2032-07-02 16:22:24.000 (7E1_CA)

SEARCH RESULT

  No search.

COMPUTATION RESULT

  #0001  2032-07-02 16:16:23.999 (-00:06:00.000)  00:00:54.500 (54.500 s)

         Obs_Scanner_Motion_Parameters:
           start_angle = 0.0 deg
           start_scan_rate = 0.0 deg/s
           stop_scan_rate = 0.0 deg/s
           scan_duration = 0.0 s
           scan_lines = 0 

Opportunity ID : crema50_eur_europa_flyby_hr_20320702_20320702_simu2_scan
All results in /Users/nmanaud/workspace/majis/data/opportunities/CREMA50/crema50_eur_europa_flyby_hr_20320702_20320702_simu2_scan directory.
!gfinder compute \
    --odf-file=europa_flyby_hr.json \
    --event-id=7E1_CA \
    --start-time='00:00:00' \
    --time-step=0.5 \
    --n-steps=200 \
    --binning=1 \
    --sim-sc-att \
    --sim-scanner \
    --suffix=simu1 \
    --mission-scenario-id=CREMA50 \
    --overwrite

!gfinder compute \
    --odf-file=europa_flyby_hr.json \
    --event-id=7E1_CA \
    --start-time='-00:06:00' \
    --time-step=0.5 \
    --n-steps=200 \
    --binning=1 \
    --sim-sc-att \
    --sim-scanner \
    --suffix=simu2 \
    --mission-scenario-id=CREMA50 \
    --overwrite
POINTING SIMULATOR

SC pointing simulator: ON
{
  "primary_axis": "Z",
  "primary_vector": {
    "name": "Target_Position",
    "parameters": {
      "target": "EUROPA"
    }
  },
  "secondary_axis": "Y",
  "secondary_vector": {
    "name": "SC_Velocity",
    "parameters": {
      "target": "EUROPA"
    }
  },
  "power_optimised": true,
  "offset_rotations": {
    "name": "SC_Slew_Angles",
    "parameters": {
      "x_start": 0.0,
      "y_start": 0.0
    }
  }
}

MAJIS scanner pointing simulator: ON
{
  "scan_zero": [
    0.0,
    0.0,
    0.0
  ],
  "scan_rotation_angle": {
    "name": "Motion_Compensation_Angle",
    "parameters": {
      "target": "EUROPA",
      "detector": "JUICE_MAJIS_VISNIR"
    }
  }
}

OPPORTUNITY DEFINITION

  Europa flyby HR observations
    Spatial_Resolution < 1.0
    Phase_Angle < 70

INPUT TIMES

    Start Time (UTC) : 2032-07-02 16:22:24.000 (00:00:00.000)
    Stop Time (UTC)  : 2032-07-02 16:24:04.000 (+00:01:40.000)

  Number of Steps : 200
  Time Step : 0.500
  Reference Time (UTC) : 2032-07-02 16:22:24.000 (7E1_CA)

SEARCH RESULT

  No search.

COMPUTATION RESULT

  #0001  2032-07-02 16:22:24.000 (00:00:00.000)  00:01:40.000 (100.000 s)

         Obs_Scanner_Motion_Parameters:
           start_angle = -1.99951171875 deg
           start_scan_rate = 0.22192191832566388 deg/s
           stop_scan_rate = 0.22143097582715549 deg/s
           scan_duration = 18.054802549462373 s
           scan_lines = 36 

Opportunity ID : crema50_eur_europa_flyby_hr_20320702_20320702_simu1
All results in /Users/nmanaud/workspace/majis/data/opportunities/CREMA50/crema50_eur_europa_flyby_hr_20320702_20320702_simu1 directory.
POINTING SIMULATOR

SC pointing simulator: ON
{
  "primary_axis": "Z",
  "primary_vector": {
    "name": "Target_Position",
    "parameters": {
      "target": "EUROPA"
    }
  },
  "secondary_axis": "Y",
  "secondary_vector": {
    "name": "SC_Velocity",
    "parameters": {
      "target": "EUROPA"
    }
  },
  "power_optimised": true,
  "offset_rotations": {
    "name": "SC_Slew_Angles",
    "parameters": {
      "x_start": 0.0,
      "y_start": 0.0
    }
  }
}

MAJIS scanner pointing simulator: ON
{
  "scan_zero": [
    0.0,
    0.0,
    0.0
  ],
  "scan_rotation_angle": {
    "name": "Motion_Compensation_Angle",
    "parameters": {
      "target": "EUROPA",
      "detector": "JUICE_MAJIS_VISNIR"
    }
  }
}

OPPORTUNITY DEFINITION

  Europa flyby HR observations
    Spatial_Resolution < 1.0
    Phase_Angle < 70

INPUT TIMES

    Start Time (UTC) : 2032-07-02 16:16:23.999 (-00:06:00.000)
    Stop Time (UTC)  : 2032-07-02 16:18:04.000 (-00:04:20.000)

  Number of Steps : 200
  Time Step : 0.500
  Reference Time (UTC) : 2032-07-02 16:22:24.000 (7E1_CA)

SEARCH RESULT

  No search.

COMPUTATION RESULT

  #0001  2032-07-02 16:16:23.999 (-00:06:00.000)  00:01:40.000 (100.000 s)

         Obs_Scanner_Motion_Parameters:
           start_angle = -1.99951171875 deg
           start_scan_rate = 0.05873584947583111 deg/s
           stop_scan_rate = 0.08988589332261335 deg/s
           scan_duration = 54.739411901367674 s
           scan_lines = 109 

Opportunity ID : crema50_eur_europa_flyby_hr_20320702_20320702_simu2
All results in /Users/nmanaud/workspace/majis/data/opportunities/CREMA50/crema50_eur_europa_flyby_hr_20320702_20320702_simu2 directory.

Visualise simulation results#

simu1_scan = DataStore().loadOpportunity('crema50_eur_europa_flyby_hr_20320702_20320702_simu1_scan')
simu2_scan = DataStore().loadOpportunity('crema50_eur_europa_flyby_hr_20320702_20320702_simu2_scan')

TimeSeriesViewer(simu1_scan).show(time_format='rel')
TimeSeriesViewer(simu2_scan).show(time_format='rel')
MapViewer([overview, simu1_scan, simu2_scan ]).show(geometries=['Detector_FOV_Footprint'])