GFINDER System Overview
Contents
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.
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.