The moon-coverage: a Python tool for mission and instrument planning
Authors: Seignovert Benoît , Tobie Gabriel , Vallat Claire , Altobelli Nicolas , Belgacem Inès 
Published: September 2022

&lt;p align=&quot;justify&quot;&gt;&lt;strong&gt;&lt;span lang=&quot;en-US&quot;&gt;Abstract:&lt;/span&gt;&lt;/strong&gt;&lt;span lang=&quot;en-US&quot;&gt; The &lt;/span&gt;&lt;em&gt;&lt;span lang=&quot;en-US&quot;&gt;moon-coverage&lt;/span&gt;&lt;/em&gt;&lt;span lang=&quot;en-US&quot;&gt; tool is a Python package currently used by ESA-SOC for the JUICE mission to plan and visualize Jupiter&amp;#8217;s moons surface coverage. It supports instrument footprint projections and region of interest intersections.&lt;/span&gt;&lt;/p&gt;
&lt;p align=&quot;justify&quot;&gt;&lt;strong&gt;&lt;span lang=&quot;en-US&quot;&gt;Introduction:&lt;/span&gt;&lt;/strong&gt;&lt;span lang=&quot;en-US&quot;&gt; One of the key elements to assess the quality of an observation plan is to visualize its spatial coverage at different scales (global, regional and local). All the planetary missions, past, current and future use JPL/NAIF SPICE kernels to describe the position of the spacecraft and its orientation in space [1]. These files are usually produced by space agencies and require advanced users to interpret them to know when and how a given surface feature is visible on a planetary body.&lt;/span&gt;&lt;/p&gt;
&lt;p align=&quot;justify&quot;&gt;&lt;strong&gt;&lt;span lang=&quot;en-US&quot;&gt;A planning tool in Python:&lt;/span&gt;&lt;/strong&gt;&lt;span lang=&quot;en-US&quot;&gt; To simplify the identification of these opportunities, we developed the &lt;/span&gt;&lt;em&gt;&lt;span lang=&quot;en-US&quot;&gt;moon-coverage,&lt;/span&gt;&lt;/em&gt;&lt;span lang=&quot;en-US&quot;&gt; a Python package built on top of &lt;/span&gt;&lt;em&gt;&lt;span lang=&quot;en-US&quot;&gt;spiceypy&lt;/span&gt;&lt;/em&gt;&lt;span lang=&quot;en-US&quot;&gt; [2] that provides an object-oriented approach to perform spacecraft trajectory computations (&lt;/span&gt;&lt;strong&gt;&lt;span lang=&quot;en-US&quot;&gt;Fig. 1&lt;/span&gt;&lt;/strong&gt;&lt;span lang=&quot;en-US&quot;&gt;), instrument field of view projections (&lt;/span&gt;&lt;strong&gt;&lt;span lang=&quot;en-US&quot;&gt;Fig. 2&lt;/span&gt;&lt;/strong&gt;&lt;span lang=&quot;en-US&quot;&gt;) and region of interest intersections (&lt;/span&gt;&lt;strong&gt;&lt;span lang=&quot;en-US&quot;&gt;Fig. 3&lt;/span&gt;&lt;/strong&gt;&lt;span lang=&quot;en-US&quot;&gt;). Originally developed for the ESA-JUICE mission, the tool can now handle any space mission (Europa-Clipper, BepiColombo, EnVision, Juno&amp;#8230;).&lt;/span&gt;&lt;/p&gt;
&lt;p align=&quot;justify&quot;&gt;&lt;img src=&quot;&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;p align=&quot;justify&quot;&gt;&lt;strong&gt;&lt;span lang=&quot;en-US&quot;&gt;Figure 1:&lt;/span&gt;&lt;/strong&gt; &lt;em&gt;&lt;span lang=&quot;en-US&quot;&gt;JUICE temporal sequence of Europa flyby 7E1 (July 2&lt;/span&gt;&lt;/em&gt;&lt;em&gt;&lt;sup&gt;&lt;span lang=&quot;en-US&quot;&gt;nd&lt;/span&gt;&lt;/sup&gt;&lt;/em&gt;&lt;em&gt;&lt;span lang=&quot;en-US&quot;&gt; 2032 with crema 5.0b23.1). The top panel represents the altitude of the spacecraft and the bottom the local incident angle. The orange color corresponds to the segment when the local incidence is lower than 90&amp;#176; (day side).&lt;/span&gt;&lt;/em&gt;&lt;/p&gt;
&lt;p align=&quot;justify&quot;&gt;&lt;img src=&quot;&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;p align=&quot;justify&quot;&gt;&lt;strong&gt;&lt;span lang=&quot;en-US&quot;&gt;Figure 2: &lt;/span&gt;&lt;/strong&gt;&lt;em&gt;&lt;span lang=&quot;en-US&quot;&gt;JUICE/MAJIS IR slit footprint during 7E1 flyby below 5,000 km. The trajectory is color-coded as a function of altitude and pixel scale.&lt;/span&gt;&lt;/em&gt;&lt;/p&gt;
&lt;p align=&quot;justify&quot;&gt;&lt;em&gt;&lt;img src=&quot;&quot; alt=&quot;&quot; /&gt;&lt;br /&gt;&lt;/em&gt;&lt;/p&gt;
&lt;p align=&quot;justify&quot;&gt;&lt;strong&gt;&lt;span lang=&quot;en-GB&quot;&gt;Figure 3: &lt;/span&gt;&lt;/strong&gt;&lt;em&gt;&lt;span lang=&quot;en-US&quot;&gt;ESA/JUICE (red) and NASA/Europa Clipper (cyan) cumulative flybys over Callisto. The groundtrack below 750 km altitude are represented as solid lines. The large rectangles correspond to known regions of interest and are highlighted when the spacecraft groundtrack is intersecting them [3].&lt;/span&gt;&lt;/em&gt;&lt;/p&gt;
&lt;p align=&quot;justify&quot;&gt;&lt;strong&gt;&lt;span lang=&quot;en-US&quot;&gt;Resources:&lt;/span&gt;&lt;/strong&gt;&lt;span lang=&quot;en-US&quot;&gt; The source-code of the &lt;/span&gt;&lt;em&gt;&lt;span lang=&quot;en-US&quot;&gt;moon-coverage&lt;/span&gt;&lt;/em&gt;&lt;span lang=&quot;en-US&quot;&gt; is publicly available on the JUICE Gitlab and distributed under open-source BSD license (https://moon-coverage.univ-nantes.fr). It is continuously tested on Python 3.8+ version and regularly deployed on PyPI. An extensive documentation is also available online with many examples than can be reproduced in Jupyter environments locally or ESA DataLabs.&lt;/span&gt;&lt;/p&gt;
&lt;p align=&quot;justify&quot;&gt;&lt;strong&gt;&lt;span lang=&quot;en-US&quot;&gt;Future developments:&lt;/span&gt;&lt;/strong&gt;&lt;span lang=&quot;en-US&quot;&gt; Currently the spacecraft/instrument pointing is based on the default camera kernels (ck). In a future release, we will allow the user to provide a Planning Timeline Request file (PTR) to perform custom adjustment of the attitude. We will also support planetary projections to display the result in polar/orthographic/sinusoidal views.&lt;/span&gt;&lt;/p&gt;
&lt;p align=&quot;justify&quot;&gt;&lt;strong&gt;&lt;span lang=&quot;en-US&quot;&gt;Acknowledgments:&lt;/span&gt;&lt;/strong&gt;&lt;span lang=&quot;en-US&quot;&gt; The &lt;/span&gt;&lt;em&gt;&lt;span lang=&quot;en-US&quot;&gt;moon-coverage&lt;/span&gt;&lt;/em&gt;&lt;span lang=&quot;en-US&quot;&gt; is under active development at LPG (CNRS) and funded by ESA under &lt;/span&gt;&lt;em&gt;&lt;span lang=&quot;en-US&quot;&gt;4000127262/19/ES/CM&lt;/span&gt;&lt;/em&gt;&lt;span lang=&quot;en-US&quot;&gt; contract.&lt;/span&gt;&lt;/p&gt;
&lt;p align=&quot;justify&quot;&gt;&lt;strong&gt;&lt;span lang=&quot;en-US&quot;&gt;References: &lt;/span&gt;&lt;/strong&gt;&lt;span lang=&quot;en-US&quot;&gt;[1] Acton (1996) PSS, [2] Annex et al. (2020) JOSS, [3] Stephan et al. (2021) PSS&lt;/span&gt;&lt;/p&gt;