GFINDER System Overview#

GFINDER is designed to fit into a single-user local computer environment, or into multi-user remote virtual machine (VM) environments. The following diagram shows the main user interactions, components, interfaces, and dependencies of GFINDER when deployed in its environment.

../_images/gf-architectural-design.png

GFINDER System Overview#

User interactions#

Users can interact, locally or remotely, with GFINDER through a shell terminal or a web browser to:

  • Define calculations

  • Run calculations

  • Visualise calculations results

  • Read documentation

  • Manage SPICE Kernels

  • Write and generate documentation (developer)

Components#

GFINDER CLI script

The GFINDER Command Line Interface (CLI), a shell script/program, is the main user interface to run calculations, and perform some other utility tasks. It can be used from a local or remote terminal (via ssh or JupiterLab), or from a local JupiterLab. See Using GFINDER CLI and GFINDER CLI for more information.

Jupyter Notebooks

Jupyter Notebooks, in a local or remote JupyterLab environment, constitute the main user interface to visualise calculations results. They are Python interactive programming documents containing a mix of Python code blocks and textual descriptions.

GFINDER users can write Jupyter Notebooks using the GFINDER Python API high-level objects, and the GFINDER CLI commands (like any other shell commands), to run calculations and visualise their results, as well as to capture information or notes useful for the identification of observations opportunities, and planning work in general.

use_cases Notebooks are provided as examples within the gfinder-python-cli package.

GFINDER Python API gfinder

The GFINDER Python API provides all the following geometrical computation, visualisation and data management functions/modules, which are used by the GFINDER CLI and user’s Jupyter Notebooks:

  • Config: configuration

  • Geometry: geometrical computation

  • DataStore: application data management

  • DataViewer: visualisation in Jupyter Notebooks

  • Opportunity: opportunity calculation definition

  • Utils: utilities (developer)

See ref_gfinder_python_api and Using GFINDER Python API.

GFINDER Web App (Viewer) gfinder_web/viewer

The GFINDER Web App is intended to provide all calculation, visualisation and data management functionalities through a single multi-user web interface. As a first step towards building this web application, a web Viewer application is being developed to visualise output opportunity data (GeoEvt files).

Warning

In development. Our strategy is to continue design and develop visualisation functionalities within the JupyterLab interface (via GFINDER Python API DataViewer module), that will conceptually be reused and implemented in the future GFINDER Web App. This will allow the consolidation of the data model used by the GFINDER REST API and GFINDER Python API.

GFINDER Docs docs

This online documentation, and its associated PDF document, are automatically generated from the GFINDER software package content at each new software release; this content includes the source code, text files (reST), notebooks, PDFs and images. Together they are intended to constitute the complete GFINDER documentation set.

GFINDER Data Store

The GFINDER Data Store contains input data required for the definition of any GFINDER calculations, as well as output from these calculations (Opportunity Data). It is provided as a separate gfinder-data package accessible from this Git repository.

  • Opportunity Definitions (ODF): opportunity geometrical conditions and geometry definition

  • Mission Scenarios: baseline trajectory and pointing scenario defined by SPICE meta-kernels, and associated mission events.

  • Mission Events: mission phases, planning segments, and time-based constraints defined for a given scenario

  • Regions of Interest (ROI): geospatial datasets definitions of ROIs.

  • Opportunity Data: opportunity calculation definition, sequence and observation geometry events data (GeoEvt files)

Note

Besides opportunity data, which are fully managed by GFINDER CLI and Python API, all the other input data are manually managed by GINDER users. Input data can locally or remotely be accessed and updated via the JupyterLab interface.

JUICE SPICE Kernels (SKD)

JUICE SPICE Kernels are required by GFINDER to perform of all types of geometrical calculations. They are fetched and updated from the ESS JUICE Bitbucket Repository.

GFINDER REST API gfinder_web/api

The GFINDER REST API is RESTful web service designed to retrieve opportunity data for visualisation in the GFINDER Web App. Build on top of the Python-based Django and Django REST Framework, it uses the same GFINDER Python API used by the GFINDER CLI, and within user’s Jupyter Notebooks.

Warning

In development. In later development stage, this API shall include calculation requests and additional data retrieval serviced to be used by the future GFINDER Web App.

GFINDER Map Tiles Server

The GFINDER Map Tiles Server is used by the GFINDER Web App to interactively visualise basemaps of planetary bodies, providing context to opportunity data (footprints).

Warning

In development. GFINDER Web App (Viewer) application server is currently used to host static tiles within gfinder_web/viewer/static/viewer/tiles directory structure.

External interfaces#

ESS JUICE Bitbucket Repository

This ESS Bitbucket repository contains a complete set of SPICE Kernels that cover the whole mission lifespan including reconstructed and long term predicted trajectory and orientation.

https://repos.cosmos.esa.int/socci/projects/SPICE_KERNELS/repos/juice

USGS Planetary Map Server

The USGS Planetary Map Server is used by the GFINDER Python API DataViewer module to interactively visualise basemaps of planetary bodies, providing context to opportunity data (footprints).

Dependencies#

  • Python dependencies (SpiceyPy, Click, Django, JupyterLab, Plotly, etc…)

  • JavaScript dependencies (VueJS, Tabulator, Plotly, Mapbox, etc…)

  • GFINDER Data Store (available as a separate gfinder-data package)

Note

MAJIS Resources and Radiometric Simulator Modules might become dependencies in a later development stage.