scieee AI-readable full text Open interactive document viewer

Optimization heuristics for scheduling observations in remote sensing missions: single-instrument case

Di Sarno, Pietro

Abstract

The planning and scheduling of scientific observations in space missions present complex challenges due to operational constraints, including limited resources, stringent time windows, and the need to maximize scientific return. This thesis focuses on developing optimization heuristics, specifically leveraging Genetic Algorithms (GAs), to address these challenges. The study utilizes the ESA’s JUICE mission as a reference, with particular emphasis on the JANUS multispectral camera tasked with observing 141 Regions of Interest (ROIs) on Ganymede during multiple flybys. The research integrates advanced methodologies such as the "Online Frontier Repair" mosaicing algorithm to improve the accuracy of observation scheduling and quality assessments. This algorithm is combined with Python-based optimization frameworks and NASA's SPICE toolkit to ensure robust handling of mission data and constraints. Multi-agent logic is further employed to enhance computational efficiency and solution quality. The methodology was validated through a two-step approach: initial tests on single ROIs to verify algorithm functionality, followed by comprehensive scheduling across all Ganymede ROIs. Results demonstrated the effectiveness of the proposed tools in generating optimized observation schedules that respect geometric and temporal constraints. Comparisons with previous approximations revealed improvements in observation quality and scheduling accuracy. This work highlights the potential of Genetic Algorithms to streamline and enhance space mission planning, providing mission planners with efficient tools for optimizing complex scheduling problems. The findings underscore the importance of integrating advanced computational techniques to maximize scientific output while adhering to mission constraints.

Full text

MASTER FINAL THESIS Optimization Heuristics for Scheduling Observations in Remote Sensing Missions: Single-Instrument case Author: Pietro Di Sarno Director / Co-director: Manel Soria Guerrero / David de la Torre Sangrà Degree: Master in Space and Aeronautical Engineering Examination session: Autumn 2024 Document: Report i Optimization Heuristics for Scheduling Observations in Remote Sensing Missions: Single-Instrument case ii Abstract The planning and scheduling of scientific observations in space missions present complex challenges due to operational constraints, including limited resources, stringent time windows, and the need to maximize scientific return. This thesis focuses on developing optimization heuristics, specifically leveraging Genetic Algorithms (GAs), to address these challenges. The study utilizes the ESA’s JUICE mission as a reference, with particular emphasis on the JANUS multispectral camera tasked with observing 141 Regions of Interest (ROIs) on Ganymede during multiple flybys. The research integrates advanced methodologies such as the "Online Frontier Repair" mosaicing algorithm to improve the accuracy of observation scheduling and quality assessments. This algorithm is combined with Python-based optimization frameworks and NASA's SPICE toolkit to ensure robust handling of mission data and constraints. Multi-agent logic is further employed to enhance computational efficiency and solution quality. The methodology was validated through a two-step approach: initial tests on single ROIs to verify algorithm functionality, followed by comprehensive scheduling across all Ganymede ROIs. Results demonstrated the effectiveness of the proposed tools in generating optimized observation schedules that respect geometric and temporal constraints. Comparisons with previous approximations revealed improvements in observation quality and scheduling accuracy. This work highlights the potential of Genetic Algorithms to streamline and enhance space mission planning, providing mission planners with efficient tools for optimizing complex scheduling problems. The findings underscore the importance of integrating advanced computational techniques to maximize scientific output while adhering to mission constraints. iii Resumen La planificación y programación de observaciones científicas en misiones espaciales presentan desafíos complejos debido a las restricciones operativas, como recursos limitados, ventanas de tiempo estrictas y la necesidad de maximizar el retorno científico. Esta tesis se centra en desarrollar heurísticas de optimización, específicamente utilizando Algoritmos Genéticos (AG), para abordar estos desafíos. El estudio utiliza como referencia la misión JUICE de la ESA, con un enfoque particular en la cámara multiespectral JANUS, encargada de observar 141 Regiones de Interés (ROIs) en Ganímedes durante múltiples sobrevuelos. La investigación integra metodologías avanzadas, como el algoritmo de mosaico "Online Frontier Repair", para mejorar la precisión en la programación de observaciones y en la evaluación de la calidad. Este algoritmo se combina con marcos de optimización basados en Python y el kit de herramientas SPICE de la NASA para garantizar un manejo robusto de los datos y las restricciones de la misión. Además, se emplea lógica multiagente para mejorar la eficiencia computacional y la calidad de las soluciones. La metodología fue validada mediante un enfoque de dos pasos: pruebas iniciales en ROIs individuales para verificar la funcionalidad del algoritmo, seguidas de una programación integral de todas las ROIs de Ganímedes. Los resultados demostraron la eficacia de las herramientas propuestas para generar programas optimizados que respetan las restricciones geométricas y temporales. Las comparaciones con aproximaciones previas revelaron mejoras en la calidad de las observaciones y en la precisión de la programación. Este trabajo destaca el potencial de los Algoritmos Genéticos para simplificar y mejorar la planificación de misiones espaciales, proporcionando a los planificadores herramientas eficientes para optimizar problemas complejos de programación. Los hallazgos subrayan la importancia de integrar técnicas computacionales avanzadas para maximizar los resultados científicos cumpliendo con las restricciones de la misión. Optimization Heuristics for Scheduling Observations in Remote Sensing Missions: Single-Instrument case iv v Table of contents Abstract ................................................................................................................. ii Resumen .............................................................................................................. iii Table of contents .................................................................................................. v List of tables ....................................................................................................... vii List of figures ..................................................................................................... viii List of abbreviations / Glossary ......................................................................... ix 1. Introduction ................................................................................................. 1 1.1 Object ................................................................................................................. 3 1.2 Scope ................................................................................................................. 3 1.3 Requirements ..................................................................................................... 4 1.4 Justification ......................................................................................................... 4 2 Background .................................................................................................... 6 2.1 State of the Art of Mission Scheduling................................................................. 6 2.1.1 Opportunity Analysis and Spacecraft Constraints Checking ......................... 6 2.1.2 Observation Scheduling ............................................................................... 6 2.1.3 Schedule Optimization ................................................................................. 7 2.1.4 Advances in Automation and Autonomy ....................................................... 7 2.1.5 Challenges and Future Directions ................................................................ 7 2.2 The JUICE mission ............................................................................................. 8 2.2.1 Main scientific objectives ............................................................................. 8 2.2.2 Mission profile .............................................................................................. 9 2.2.3 JANUS........................................................................................................ 11 3 Methodology ................................................................................................ 13 3.1 Mosaic heuristics ...............................................................................................13 3.1.1 Area Coverage Planning Problem (ACPP) ..................................................13 3.1.2 Online Frontier Repair ................................................................................15 3.2 Genetic Algorithms .............................................................................................17 3.2.1 Genotype and Phenotype ...........................................................................18 3.2.2 Genetic operators .......................................................................................19 4 The Scheduling Problem ............................................................................. 21 4.1 The Science Opportunity Analysis .....................................................................21 4.1.1 Problem inputs ............................................................................................21 4.1.2 Logical flow and classes .............................................................................22 4.1.3 The oPlanRoi class and the Online Frontier Repair implementation ...........26 4.2 Genetic Algorithm ..............................................................................................35 4.2.1 oplan class .................................................................................................35 4.2.2 aga class ....................................................................................................39 4.2.3 Considerations on benchmarking ................................................................40 4.2.4 The multi-agent toolbox ..............................................................................40 5 Results and discussion ............................................................................... 41 5.1 Validation: GA with a single ROI ........................................................................41 Optimization Heuristics for Scheduling Observations in Remote Sensing Missions: Single-Instrument case vi 5.2 Single-Agent and Multi-Agent: results and discussion ........................................45 6 Budget summary ......................................................................................... 52 7 Analysis and assessment of environmental and social implications ..... 53 7.1 Environmental implications ................................................................................53 7.2 Social Implications .............................................................................................53 7.3 Ethical Considerations .......................................................................................54 8 Conclusions ................................................................................................. 55 8.1 Main Results ......................................................................................................55 8.2 Contributions and Implications ...........................................................................55 8.3 Limitations and Future Perspectives ..................................................................56 9 References ................................................................................................... 57 vii List of tables Table 2.1: JUICE's main mission phases .........................................................................10 Table 2.2: JANUS's key features ......................................................................................12 Table 4.1: Official start and end times of JUICE flybys around Ganymede aimed at JANUS experiments [33] .........................................................................................................22 Table 4.2: Angle parameters and relative constraints to get the compliant time window ...23 Table 4.3: Values of the Instrument class object initialized for JANUS..............................26 Table 4.4: GA parameters' values based on benchmarking ..............................................40 Table 5.1: JUICE schedule (part 1) ..................................................................................47 Table 5.2: JUICE schedule (part 2) ..................................................................................48 Table 5.3: JUICE schedule (part 3) ..................................................................................49 Table 5.4: JUICE schedule (part 4) ..................................................................................50 Table 6.1: Budget summary .............................................................................................52 Optimization Heuristics for Scheduling Observations in Remote Sensing Missions: Single-Instrument case 4 1.3 Requirements The requirements for this project define the constraints that the program must adhere to. Specifically:  The code should be developed in Python, chosen for its user-friendliness, flexibility, and open-source nature. The code should be clear, well-structured, straightforward to follow and code must include output print options to clearly display the final schedule and the quality of the observation plan.  The code must be uploaded to GitHub, not only to ensure accessibility for all users but also to facilitate collaboration among multiple individuals, given the complexity of the problem.  Whenever possible, the code should follow an object-oriented approach. Using Python classes makes the code easier to understand and modify, facilitating the addition of new features through method and class overriding.  The implementation must support running multiple instances simultaneously, enabling the use of multiple agents to enhance the optimization process.  It should be adaptable and designed to handle various ROIs, planets, targets, or missions. 1.4 Justification Based on the trajectory data from version 3 of the mission’s Consolidated Report on Mission Analysis (CReMA), scientists had initially calculated the surface areas where images could be captured at the highest resolution with the aim of determining which regions around Ganymede would be observable during the upcoming flybys. As the study progressed, the mission profile was updated to CReMA 4.2b, and later to CReMA 5 (the current version is CReMA 5.1) [5]. These new models introduced significant changes to the flyby conditions, in particular, the illumination conditions worsened, and the regions covered by the flybys were altered, which made observations at latitudes above 40º, already challenging in CReMA 3, even more difficult [5]. This presents a unique opportunity, as it allows the use of the developed tools to assess which regions are now observable, the specific TW (Time Window) when they are visible and which ROIs will be included in the optimal schedule with the updated trajectory, based on the real mission parameters. This will provide valuable insight into the performance of the algorithm in addressing practical, real-world problems. Additionally, the large number of observable ROIs for the JUICE mission at Ganymede makes it an excellent test case for evaluating the algorithms. The diversity and complexity of these regions will offer critical insights into the strengths and weaknesses of applying genetic algorithms to this task. 5 Figure 1.2: JANUS coverage (nadir looking only) during the Ganymede flybys based on CReMA 3.0: a) incidence angle, b) phase angle and c)spatial resolution overlaid on the global base map by [6]. Optimization Heuristics for Scheduling Observations in Remote Sensing Missions: Single-Instrument case 6 2 Background 2.1 State of the Art of Mission Scheduling The approach used in this thesis to solve the mission scheduling problem has been investigated by numerous researchers. For example, among the topics studied during her PhD, Paula Betriu Rore [7] analyzed the use of genetic algorithms and mentioned their possible combined use with simulated annealing to solve the mission scheduling problem. In the same line of research, at UPC, Jorge Simon Aznar [8] worked on studying the case with multiple instruments, and Diengo Andia [9], whose work included functions to select the best regions to observe and an algorithm for coverage analysis and image mosaicing of these regions. Mission scheduling is a crucial aspect of space exploration, ensuring that scientific objectives are achieved within the operational and resource constraints of spacecraft. It typically involves four main activities: opportunity analysis, spacecraft constraints checking, observation scheduling and schedule optimization. These activities collectively ensure that missions maximize scientific output while adhering to technical and logistical limitations. Over the years, space agencies and research organizations have developed advanced tools and methodologies to address these challenges, enhancing both efficiency and autonomy in mission operations. 2.1.1 Opportunity Analysis and Spacecraft Constraints Checking Opportunity analysis focuses on identifying favorable time windows for observations. This process involves analyzing spacecraft trajectories, orbital parameters, and visibility conditions to determine when specific instruments can conduct observations under optimal conditions. Tools like CLASP (Compressed Large-scale Activity Scheduling and Planning) have been used in missions such as NISAR (formerly DESDynI), leveraging geometric constraints and temporal parameters to develop feasible observation schedules. CLASP enables the rapid generation of high-level operational plans while accounting for resource availability and scientific priorities [10]. Spacecraft constraints checking ensures that plans adhere to spacecraft capabilities, such as power consumption, memory storage, and data transmission bandwidth. For instance, CASPER (Continuous Activity Scheduling, Planning, Execution, and Replanning) dynamically verifies and adjusts schedules in response to real-time updates on spacecraft status. This tool has proven effective in Earth-observing missions and planetary exploration scenarios, enabling spacecraft to autonomously adapt to unexpected changes in conditions or mission parameters [11][12]. 2.1.2 Observation Scheduling The scheduling of observations involves allocating specific tasks to time slots while ensuring the optimal utilization of spacecraft instruments and resources. Due to the limited operational windows and competing objectives, observation scheduling is often a complex, multi-objective problem. Tools like Eagle Eye have been instrumental in improving scheduling efficiency by analyzing coverage and mosaicing opportunities. For instance, Eagle Eye's algorithms enable autonomous selection of observation targets based on predefined scientific priorities, ensuring comprehensive coverage of regions of interest during planetary flybys [13]. 7 In missions such as Galileo and JUICE, observation scheduling has also benefited from tools like the Observation Planning Tool for Instrument and Mission Analysis (OPTIMA). OPTIMA employs heuristic algorithms to balance competing objectives, such as maximizing scientific output and minimizing resource consumption. This tool has been validated in scenarios involving Europa and Ganymede flybys, where it successfully optimized observation timelines to enhance resolution and coverage [7]. 2.1.3 Schedule Optimization Schedule optimization focuses on refining mission schedules to achieve maximum scientific returns. Various methodologies, including heuristic algorithms, genetic algorithms, and constraint programming, have been applied to this end. For example, tools like SciBox streamline the optimization process by automating the ranking and selection of observation opportunities based on criteria such as resolution, illumination, and data transmission capacity. SciBox was successfully deployed in the MESSENGER mission, where it reduced planning time significantly while maximizing observation efficiency [14]. CLASP further illustrates the potential of optimization tools by employing iterative repair algorithms to address scheduling conflicts. In missions requiring multi-satellite coordination, these algorithms dynamically adapt schedules to accommodate changes in operational conditions or scientific priorities, ensuring robust and conflict-free timelines [10]. 2.1.4 Advances in Automation and Autonomy Automation has played a pivotal role in advancing mission scheduling, reducing manual interventions and enabling spacecraft to respond dynamically to evolving mission requirements. Tools like CASPER exemplify this progress, allowing spacecraft to autonomously re-plan activities in response to real-time data, thereby enhancing mission flexibility and efficiency [11]. Similarly, the integration of machine learning algorithms into scheduling systems is an emerging trend, enabling predictive prioritization of tasks based on historical data and real-time constraints [15]. Another noteworthy innovation is Earth Observing Autonomy (EOA), which combines onboard data analysis with real-time scheduling. By autonomously analyzing collected data and re-prioritizing observations, EOA enables spacecraft to adapt their activities within minutes, significantly reducing reliance on ground-based planning and increasing the scientific return of missions [12]. 2.1.5 Challenges and Future Directions Despite these advancements, mission scheduling remains a challenging domain. The dynamic nature of task arrivals, limited spacecraft resources, and uncertainties in environmental conditions demand innovative solutions. Hybrid models that integrate optimization algorithms with onboard processing are being explored to address these challenges. Additionally, the adoption of distributed scheduling approaches for multisatellite constellations is expected to improve coordination and resource sharing across missions [16]. In conclusion, mission scheduling has evolved from manual processes to highly automated systems capable of addressing complex constraints and objectives. Tools like CLASP, CASPER, SciBox, and Eagle Eye demonstrate the transformative impact of Optimization Heuristics for Scheduling Observations in Remote Sensing Missions: Single-Instrument case 8 advanced scheduling technologies on space exploration. As missions become increasingly complex, these tools will be indispensable in ensuring the success and efficiency of future endeavors. 2.2 The JUICE mission 2.2.1 Main scientific objectives The JUICE mission, led by ESA, is dedicated to exploring the Jupiter system with a particular focus on its icy moons: Ganymede, Europa, and Callisto. These moons are believed to harbor subsurface oceans, making them prime candidates for studying potential habitability beyond Earth (either past or present) [17]. Figure 2.1: JUICE spacecraft [19] Launched in April 14th 2023, JUICE’s scientific objectives include: 1. Characterizing Ganymede: this involves mapping its magnetic field, surface features, and subsurface ocean to understand its potential as a habitable environment. Scientists are particularly interested in Ganymede, the only natural satellite in the Solar System known to have an intensive magnetic field. This unique characteristic makes it a natural laboratory for studying magnetospheric phenomena and plasma interactions with Jupiter [18]. 2. Europa’s Surface Chemistry: investigating Europa's surface composition and searching for evidence of biosignatures. 3. Comparative Analysis: studying the similarities and differences among the Galilean moons, focusing on their geology and interactions with Jupiter's magnetosphere 9 2.2.2 Mission profile The Jupiter Icy Moons Explorer (JUICE) follows a meticulously designed mission profile aimed at maximizing its scientific return while navigating the complexities of interplanetary travel. Launched on April 14, 2023, from Kourou, French Guiana, aboard an Ariane 5, JUICE embarks on an eight-year journey that leverages multiple gravity-assist maneuvers to reach Jupiter in July 2031 [20]. The key mission phases are: 1. Launch and Early Operations Phase (LEOP) Following its successful launch, JUICE entered its early operations phase, during which the spacecraft's health was verified, and critical systems were commissioned. With its 85 square meters of solar panels fully deployed, JUICE began generating the power needed for its long journey, even in the dim environment of the outer Solar System. 2. Interplanetary Cruise (2023-2031) During this eight-year phase, JUICE performs four gravity-assist maneuvers to conserve fuel and adjust its trajectory. These include: o Lunar-Earth Flyby #1 (August 2024): Provides the first velocity boost through a combined Earth-Moon gravity assist. o Venus Flyby (August 2025): The closest approach at 9500 km provides a major trajectory correction o Earth Flyby #2 (September 2026): A mid-course adjustment to fine-tune JUICE's trajectory. o Earth Flyby #3 (January 2029): The final flyby delivers a critical boost, increasing JUICE's velocity to the escape velocity required for its journey to Jupiter. 3. Jupiter Arrival and Orbit Insertion (July 2031) Upon arrival at Jupiter, JUICE will execute a precise Jupiter Orbit Insertion (JOI) maneuver, reducing its velocity by approximately 900 m/s an establishing an initial orbit with a periapsis at 200,000 km from Jupiter’s centre. 4. Jupiter System Tour (2031-2034) JUICE will undertake a series of flybys of the Jovian moons to collect critical data: o Europa Flybys (July 2032): Two close flybys, at altitudes of approximately 400 km. o Callisto Flybys (2032-2034): Multiple flybys, which will also adjust JUICE’s orbital inclination to 29° for polar observations of Jupiter. A sequence of Ganymede and Callisto flybys will adjust JUICE’s orbit so that it can enter orbit around Ganymede in December 2024. 5. Ganymede Orbital Phase (December 2034 - End of Mission) The mission’s highlight will be JUICE’s transition to orbit Ganymede, the largest moon in the Solar System, and the first time a spacecraft will orbit a moon of another planet. 6. End of Mission (2035) After completing its scientific objectives, JUICE will execute a controlled descent onto Ganymede’s surface, ensuring compliance with planetary protection protocols. This final maneuver marks the end of over a decade of groundbreaking exploration and data collection. Optimization Heuristics for Scheduling Observations in Remote Sensing Missions: Single-Instrument case 10 Table 2.1: JUICE's main mission phases Phase Detail Date Launch and LEOP Successful launch aboard Ariane 5 from Kourou, Guiana. Initial checks and solar panel deployment. April 14, 2023 Interplanetary Cruise Eight-year phase with gravity assists to adjust trajectory: 2023-2031 Lunar-Earth Flyby #1: First velocity boost. August 2024 Venus Flyby: Closest approach at 9500 km for trajectory correction. August 2025 Earth Flyby #2: Midcourse adjustment. September 2026 Earth Flyby #3: Final boost to escape velocity toward Jupiter. January 2029 Jupiter arrival Jupiter Orbit Insertion (JOI), 900 m/s deceleration, periapsis at 200,000 km. July 2031 Jupiter System Tour Flybys of Europa (400 km altitude in July 2032) and Callisto (multiple flybys to 29° inclination). 2031-2034 Ganymede Orbital Phase Orbital insertion around Ganymede. December 2034-2035 End of Mission Controlled descent onto Ganymede’s surface. 2035 11 Figure 2.2: JUICE's trajectory [21] 2.2.3 JANUS As explained in the Section 1, this thesis will focus solely on the scheduling of a single instrument. Regarding the real-world case, the JANUS instrument has been selected. JANUS is an optical camera system onboard JUICE designed to perform high-resolution imaging of Jupiter’s moons in the visible and near-infrared spectrum. It is a telescope coupled with a CMOS framing detector. Its primary scientific goals include studying geological structures, tectonic processes, cryovolcanism, and surface composition, as well as determining the relative ages of the Galilean moons [22][23]. Figure 2.3: JANUS [24] Optimization Heuristics for Scheduling Observations in Remote Sensing Missions: Single-Instrument case 12 The instrument has been specifically designed to operate in the harsh radiation environment of the Jovian system. It supports both nadir-pointing and tilted observation modes, with a spatial resolution ranging from 400 m/pixel to less than 10 m/pixel, depending on the distance to the observed target [22]. JANUS’s key features are: Table 2.2: JANUS's key features Detector Format 2000 pixel × 1504 pixel Field Of View (FOV) 1.72° × 1.79° Spectral Coverage Visible to near-infrared wavelengths (13 filters) JANUS is equipped with 13 spectral filters, allowing it to study the chemical composition of Jupiter’s moons in detail. The system enables stereo imaging to create 3D models of the surfaces [25]. 13 3 Methodology This chapter aims to provide a more detailed explanation of the concepts and tools required to address the mission scheduling problem. The code described in Chapter 4Error! Reference source not found., that was developed during the thesis work, is divided into two parts: in the first part, the Online Frontier Repair algorithm calculates the data that will be input to the genetic algorithm, which will give the optimal or near-optimal schedule as output. First, what the Online Frontier Repair algorithm does will be described, then the focus will be on the genetic algorithm, understanding why it is suitable for the mission scheduling problem and justifying why the algorithm’s parameters were taken from Torres’s [2] benchmarking. 3.1 Mosaic heuristics 3.1.1 Area Coverage Planning Problem (ACPP) Prior to implementing a comprehensive observation plan for all ROIs, it is necessary to initially address the observation of a single ROI utilizing the payload instruments. In particular, the focus will be on framing instruments, i.e. optical cameras, as JANUS. The apparent size of the ROI often exceeds the field of view (FOV) of the camera onboard the spacecraft. This discrepancy necessitates the implementation of sophisticated area coverage planning algoritms to ensure complete and efficient observation of the ROI. Among these, mosaic heuristics play a pivotal role, particularly in adapting to the dynamic constraints of spacecraft motion and the evolving footprint of onboard instruments. Mosaic heuristics break the ROI into smaller, fixed-size tiles, creating a uniform grid. The spacecraft’s camera then targets the centroid of each tile sequentially, getting a mosaic as final result, i.e., a composite picture created by merging multiple individual images. This systematic approach allows for efficient coverage while managing the constraints of overlap and resolution. The overlap is crucial to maintain continuity and alignment bewteen adjacent images, ensuring high scientific value of the resulting mosaic. Conversely, excessive overlap can result in wasted operational resources and increased mission costs. Given a spacecraft’s trajectory, instrument observation geometry and requirements, and a designated ROI, the Area Coverage Planning Problem (ACPP) consists of determining the observation path that maximizes the ROI coverage while ensuring a reasonable mission duration; specifically [7], being P the ROI on a target body’s surface and [t0,tf] a time interval (in this problem, it is one interval within the ROI is visible from the spacecraft) the objective is to identify a set of footprints whose union will collectively cover P: 𝑃 ⊆ 󰇌 𝑓    (3.1) where 𝑓 is the instantaneous instrument fooprint and N is the total number of footprints in the plan. Optimization Heuristics for Scheduling Observations in Remote Sensing Missions: Single-Instrument case 20 which expands the search to unexplored areas, while selection and crossover tend to promote exploitation, which refines existing promising solution.  Exploration is driven by mutation, as it introduces new genetic material and prevents premature convergence  Exploitation is facilitated by selection and crossover as they enhance and combine the traits of well-adapted individuals to focus on the best-performing regions of the search space The selection operator is the mechanism by which individuals in the population are chosen to contribute to the next generation. Inspired by natural selection, this operator favors individuals with higher fitness scores, ensuring that beneficial traits are preserved and amplified, while ensuring diversity is maintained to avoid premature convergence. Better-quality selection strategies encourage exploitation of high-fitness individuals in the population, without losing diversity in the population too quickly. A wide variety of selection strategies have been designed for the GA, among which the fitness-based selection is one of the most common approaches: often called roulette wheel selection or proportional selection, it assigns selection probabilities based on an individual’s fitness score relative to the population. Individual with higher fitness have a greater chance of being selected. This method can be biased towards dominant individuals, potentially reducing genetic diversity early in the search, which can be mitigated by fitness scaling or using alternative selection methods. Other common selection strategies area tournament selection [30], rank-based selection and random selection [29]. Mutation introduces random changes to individuals’ genetic representations, imitating the random errors or alterations that occur in DNA replication. This operator is crucial for exploration, as it prevents the population from stagnating at local optima and ensures continuous discovery of new areas in the solution space. It basically alters the genes of offspring by introducing random changes; various mutation operators, such as bit-flipping, random, directed or adaptive mutation are tailored to address specific challenges and improve performance by balancing exploration and exploitation . Crossover combines the genetic material of two or more parent solutions to create offspring, emulating genetic recombination observed in biological reproduction. Techniques like single-point crossover (splitting parent genomes at one point) and uniform crossover (swapping genes randomly) determine how genetic material is exchanged. The effectiveness of crossover depends heavily on the solution representation and the compatibility of parental genotypes. When paired with a well-chosen selection strategy, crossover acts as a powerful mechanism for refining solutions and driving convergence. 21 4 The Scheduling Problem The code explained in this chapter, which constitutes the central part of this thesis, is available on GitHub under an open-source license [32]. To summarize, given a specific set of Regions of Interest (ROIs) on Ganymede and the time intervals of JUICE flybys around Ganymede, the aim is to find the optimal observation schedule. The code is divided into two sequential parts:  Science Opportunity Analysis (precomputation): given the input data related to the mission, such as flyby time intervals, the ROIs, the spacecraft and the celestial body of interest, the time intervals within these flybys during which the ROIs can be observed (according to some geometrical constraints), as well as the quality of these observations (specifically, resolution and coverage), are calculated. These data will be then used by the Genetic Algorithm.  Genetic Algorithm: starting from the data computed in the SOA (Science Opportunity Analysis), a genetic algorithm is executed, which generates populations of individuals over successive generations. Each individual represents a schedule and is characterized by a unique fitness value taking into account resolution and coverage. The algorithm aims to find the minimum fitness value and terminates after a specified number of iterations or when the fitness falls below a certain threshold. It is worth noting that running the genetic algorithm does not necessitate executing the Science Opportunity Analysis (SOA) every time. The data are saved in files within the repository and the necessary information is subsequently loaded by the objects in the second part of the code whenever the algorithm is run. 4.1 The Science Opportunity Analysis The script JUICE_Observability.py [32] follows the main logic explained in this paragraph and is the one that must be run to perform the operations described herein. Given the computationally intensive nature of the calculations performed in this script, it was executed on the JUNO supercomputing cluster at ESEIAAT, Universitat Politècnica de Catalunya [33]: it is a high-performance computing cluster, enabling advanced simulations and data processing for research in mechanical and aerospace engineering. 4.1.1 Problem inputs The celestial body on whose surface the ROIs to be observed are located is specified as GANYMEDE. Furthermore, it is assumed that the spacecraft is JUICE. The roi_info folder (in data) contains a text file, ganymede_roi_info.txt, specifying the details of the ROIs to be observed. Specifically, each line in the file will contain:  ROI_key: an identification for each ROI, defined by ESA. For instance, considering JUICE_ROI_GAN_1_0_14, GAN is the moon where the ROI is located, while the numerical code X_X_XX denotes the type of region;  ROI_name;  ROI_latitudes: the latitudinal coordinates of the four vertices of each ROI are provided. The ROIs have a square or rectangular shape.  ROI_longitudes: the longitudinal coordinates of the four vertices The official dates for JUICE’s flybys around Ganymede have already been inserted, as obtained from [33]. These time intervals, which constitute the initial search space time frame, do not account for any spacecraft attitude constraints or geometric limitations. By imposing these, it will be possible to discard any time intervals during the flybys where, despite Optimization Heuristics for Scheduling Observations in Remote Sensing Missions: Single-Instrument case 22 potential science opportunities due to good resolution, the spacecraft cannot take advantage of them due to factors such as excessive or insufficient illumination, the need for extreme tilting of the spacecraft, and so on. The user selects which constraints apply to the problem, such as the acceptable range of values for both, thereby obtaining multiple compliant time windows – one per ROI – stored in a Python list. The time windows are represented as objects of class SPICEDOUBLE_CELL from the SPICE’s library. Table 4.1: Official start and end times of JUICE flybys around Ganymede aimed at JANUS experiments [33] Flyby # Start date End date 0 2033 NOV 26 18:22:11 2033 NOV 27 18:22:11 1 2034 JAN 14 06:38:51 2034 JAN 15 06:38:51 2 2034 JUN 05 18:53:51 2034 JUN 06 18:53:51 3 2034 JUL 11 19:50:31 2034 JUL 12 19:50:31 4 2034 SEP 07 06:03:51 2034 SEP 08 06:03:51 5 2034 SEP 28 18:48:51 2034 SEP 29 18:48:51 6 2034 NOV 18 09:58:51 2034 NOV 19 09:58:51 4.1.2 Logical flow and classes A kernelFetch class object downloads the mission-related information in the form of SPICE kernels. A SPICE kernel is a data file where information about the position and orientation of spacecraft, as well as the position, orientation, shape, and size of solar system bodies, is stored. These data are essential for the execution of the code, for example, when using the functions of the SPICE library to calculate times and distances. Next, a ROIDataBase class object is instantiated. It takes as input the path to the text file containing the ROIs’ data and the name of the target body. This object cleans and stores the ROIs information as a list, named _ROIs, of Python dictionaries (a Python dictionary stores data in key-value pairs). Each dictionary, relative to one ROI, has 6 keys and is structured as follows:  #roi_key: the string with the ROI’s identification  body: the string specifying the celestial body  lat and lon: two vectors containing latitudinal and longitudinal coordinates of the ROI’s vertices  roi_name: the string of the ROI’s name  vertices: vertices’ coordinates arranged as an ndarray This class also keeps a separate list of dictionaries called indices. These dictionaries store the position of each ROI within the _ROIs list. This approach allows for quicker retrieval of ROI details from outside the class, avoiding the need to scan through the entire list. A block diagram representing the class is shown (Figure 4.1). 23 Figure 4.1: Block diagram of ROIDataBase class For each ROI, the checkOneROI.py script is called, which identifies the opportunity windows for each ROI. Specifically, the following constraints must be met to get the compliant time windows within the initial search space. Table 4.2: Angle parameters and relative constraints to get the compliant time window Parameter min max Emission angle 0° 75° Illumination-zenith angle 0° 180° Phase angle 0° 180° The functions that calculate the values of these angles were written by Paula Betriu and translated from MATLAB to Python by Jorge Simon, whose thesis work focuses on the same topic; they can be found in the GitHub repository Python Science Opportunity Analysis Tool (PSOA) [35]. An explanation and pseudo-code for each of these functions are presented in the following pages, while the angles are shown in Figure 4.2. Optimization Heuristics for Scheduling Observations in Remote Sensing Missions: Single-Instrument case 24 Figure 4.2: Observation geometry [7] The emissionang function returns the phase angle between the ROI’s surface normal in its centroid and the vector joining the observer and the ROI’s centroid. Algorithm 2: emissionang Input: surface point coordinates, ET, target, observer Output: off-nadir angle in degrees 1: targetframe ← Returns the target frame ID as known by SPICE; 2: obsvec ← Gets the observer position relative to the studied surface point within the targets frame using trgobsvec 3: if srfpoint is as vector with dimension 2 then 4: srfpoint ← Transform from degrees to radians 5: srfpoint ← Convert from planetocentric coordinates to rectangular coordinates using SPICE’s srfrec 6: end if 7: if t contains more than one timestep then 8: nrmvec ← Initialize a normal vector for each timestep: size(t) × 3 matrix 9: for i ← 0 to length(t) do 10: nrmvec[i] ← Compute the surface normal within the target frame using SPICE’s Srfnrm 11: end for 12: angle ← Initialize the angle for each timestep 13: for i ← 0 to length(t) do 14: angle[i] ← Compute the emission angle using SPICE’s vsep and transform to degrees 15: end for 16: else 17: nrmvec ← Compute the surface normal within the target frame using SPICE’s srfnrm, just one time 18: angle ← Compute the emission angle using SPICE’s vsep and transform to degrees, just one time 19: end if 20: return angle 25 The illzenithang calculates the angle formed by the vector from the illumination source to the centroid of the ROI and the surface normal at that point. This can be done by using the same logic behind the emission angle subroutine. Algorithm 3: illzenithang Input: surface point coordinates, ET, target Output: illumination-surface normal angle 1: observer ← ‘SUN’ 2: angle ← emissionang (srfpoint, t, target, observer) 3: return angle The phaseang function computes the angle between the direction to the Sun and the direction to the observer as seen from the ROI’s centroid. Algorithm 4: phaseang Input: surface point coordinates, ET, target, observer Output: phase angle 1: if srfpoint is as vector with dimension 2 then 2: srfpoint ← Transform from degrees to radians 3: srfpoint ← Convert from planetocentric coordinates to rectangular coordinates using SPICE’s srfrec 4: end if 5: obsvec ← Compute the observer’s position vector referred to the surface point using SPICE’s trgobsvec script 6: if t contains more then one timestep then 7: angle ← Initialize an angle for each timestep 8: for i ← 0 to length(ET) do 9: angle[i] ← Compute the phase angle using SPICE’s vsep routine 10: end for 11: else 12: angle ← Compute the phase angle using SPICE’s vsep routine, just once. 13: end if 1 4 : return angle The information about the constraints is provided as input to the mytwfinderlist function, contained in the pySPICElib library developed by Manel Soria [36]. This function applies Bolzano’s theorem to find the compliant time window in the initial search space. Each time window for a given ROI can have none, one, or multiple intervals; furthermore, the initial interval(s) of the unconstrained time window are divided into smaller segments. As a result, the general search space is no longer utilized. The new time windows consist of a subset of n intervals derived from the original search space. An object of the Instrument class is defined, with the following attributes set through the constructor method __init__:  ifov - Definition: denotes the Instantaneous FOV - Data type: float Optimization Heuristics for Scheduling Observations in Remote Sensing Missions: Single-Instrument case 26  npix - Definition: indicates the number of pixels in the camera’s sensor array. It has been assumed that the image sensor has a square shape derived from the square root of the real area of JANUS - Data type: int  imageRate - Definition: indicates the number of images the camera captures per second - Data type: float  fs - Definition: provides a margin of sagety to accomodate potential uncertainties - Data type: float In this object, the characteristics of JANUS have been included, as it is the instrument used in the current problem: Table 4.3: Values of the Instrument class object initialized for JANUS ifov 15 × 10-6 rad npix 1735 pixels imageRate 0.1 s-1 fs 20 The ROIDataBase class object contains a method, called getROIs, which outputs one or more objects of the oplanROI class, depending on the input. In each checkOneROI.py script, which is called for each ROI, the method is invoked by providing as input the string containing the name of the specific ROI, thereby generating an object of the OplanROI class. The oPlanRoi class is not only used to consolidate all the data regarding the ROI collected so far but also includes attributes and methods that allow the calculation of the fitness of an observation, so, through this, coverage and resolution are computed. The oPlanRoi class object contains the method initializeObservationDataBase, which saves information about the compliant time windows of the ROI, evaluates and saves coverage, resolution and duration of observations within these compliant time windows using the Online Frontier Repair algorithm. The oPlanRoi class is explained in greater detail in the Section 4.1.3. These data are also saved in two sets of files (located in data/roi_files) within the repository: for a given ROI, there will be as many .txt files as there are flybys during which it is observable, and one .cfg file for all the flybys in which it is observable. The information from the .cfg files is then used to initialize the oPlanRoi class objects in the genetic algorithm. 4.1.3 The oPlanRoi class and the Online Frontier Repair implementation The oPlanRoi class calculates and saves data through its methods into its attributes, which are all defined in the constructor method __init__. It is structured as follows:  Attribute/ROI_TW - Definition: Variable where the compliant time window for the selected ROI is saved. - Data type: Spice Time Window (i.e., SPICEDOUBLE_CELL). 27  Attribute/ROI_ObsET - Definition: From the compliant time window contained in the ROI_TW attribute, the intervals are extracted and stored in this variable. Each interval is discretized into a thousand points. - Data type: Array list.  Attribute(s)/ROI_ObsLen, ROI_ObsImg, ROI_ObsRes, ROI_ObsCov - Definition: Variables that save, respectively, the duration, the number of images, the average resolution and the coverage of the observations that start at the time instants contained in the attribute ObsET_. - Data type: Array list  Attribute/ROI.mosaic - Definition: Variable that determines whether the method for calculating the values of observation duration, average resolution and coverage should be the Online Frontier Repair or an approximated method developed by Pablo Torres [2]. In this text, the use of Online Frontier Repair has been studied. - Data type: Boolean  Method/initializeObservationDataBase - Definition: This function assigns data to the class attributes and makes calls to other methods as necessary. If these data are provided as input, the function saves them directly; otherwise, it is necessary to first calculate them before they are inserted. Additionally, in the inputs, it is possible to specify the boolean value of ROI.mosaic.  Method/computeObservationET - Definition: This method discretizes the intervals within the time windows of the ROI’s TW, creating a linear space of 1000 points between the start and end times of the interval.  Method/computeObservationData - Definition: This method calculates the length, the number of images, the average resolution and the coverage of the observations, taking each time in ROI_ObsET as the starting time for the observation.  Method/interpolateObservationData Definition: Given a time t within a valid time window, this method computes the length, number of images, average resolution and coverage of an observation at time t using ROI_ObsET, ROI_ObsLen, ROI_ObsImg, ROI_ObsRes and ROI_ObsCov. If the given input time value t does not coincide with one of the thousand points of discretization, the desired value will be found through interpolation. Plotting the values obtained from the precomputation reveals no anomalies or irregular trends; therefore, interpolation can be used as an appropriate method to model the function. In the computeObservationData method, called by initializeObservationDataBase, the values for observation duration, number of images, average resolution and coverage starting at time instant t are pre-computed. In the case under consideration, within a for loop iterating over all the compliant intervals of the ROI, the mosaicOnlineFrontier function is called. This function receives as input: o compliantInterval: array of 1000 points in which the compliant interval has been discretized. Optimization Heuristics for Scheduling Observations in Remote Sensing Missions: Single-Instrument case 28 o inst: string specifying the instrument o sc: string specifycing the spacecraft (the observer) o ROIob: current oPlanRoi class object o instrument: Instrument class object o int: integer number specifycing the number of the interval in the ROI’s compliant TW The mosaicOnlineFrontier function performs the mosaicing algorithm using the frontierRepair function for each of the thousand points that constitute the time interval of the ROI. Focusing on the frontierRepair function (fixed observation’s starting instant and ROI) it is assumed that the observation of a grid point lasts 8.5 seconds and that the slew rate (the rate at which the spacecraft’s or the instrument platform’s pointing direction slews between grid points, in [º/s]) is 3 × 10⁻³ s. At the end of the process, a list called fpList is generated. This is a Python list of dictionaries, where each dictionary contains the information related to a single footprint. The union of all the footprints will be used to create the complete image of the ROI (Figure 4.3). Figure 4.3: Example of Online Frontier Repair algorithm with Galileo Regio (JUICE_ROI_GAN_5_0_09), observation started on 2034 JAN 14 18:22:31 UTC In particular, the fpList will not be empty since the ROI is observable, respecting the previously imposed constraints. mosaicOnlineFrontier outputs the lists makespan, nimg, resROI and cov. They are specific to each interval, for this reason, each will contain 1000 values; it must be emphasized that the information used below (such as the start time of the observation of the first point in the grid) to calculate the values of the following lists is taken form the fpList corresponding to the specific observation, bearing in mind that each fpList corresponds to one of the 1000 observations.  makespan: Contains all the observation durations. Each duration is obtained by adding the observation time to the starting instant of the last grid point’s observation and subtracting the starting observation instant of the first grid point. 29  nimg: The numbers of images captured during the observation and is simply equal to the number of dictionaries in fpList (i.e., the number of footprints).  resROI: Average resolutions for each observation. Specifically, the average resolution is calculated by calling the computeResMosaic function, which takes fpList and instrument.ifov as inputs, then calls the pointres function [35] to compute the resolution using the following formula: 𝑅 = 𝑖𝑓𝑜𝑣 × 𝑑  sin ( 90° − 𝜃 ) (4.1) This formula is specific to each grid point. The ifov is given as input, d represents the distance from the grid point and 𝜃 is the emission angle calculated by the function explained in the Algorithm 2. Additionally, there is a condition on the maximum resolution to avoid singularities (in cases where 𝜃 is equal to 90°). Subsequently, in computeResMosaic, the arithmetic mean of all the resolutions of the observation is computed, resulting in the average resolution of the observation.  cov: The coverages (in percentage) of the ROI when observed from each instant within the interval, where coverage refers to how much of the ROI’s area is effectively covered by all the footprints. The coverage is calculated using the roicoverage function (from the folder area_coverage_planning_python), which takes as input the name of the target celestial body, the vertices of the ROI and the relative fpList. Specifically, a threshold has been set: if the coverage is greater than 95%, it is automatically set to 100%. After completing the pre-computation, that is, after running the JUICE_Observability.py script, it is possible to find the minimum resolution values for each ROI in each flyby (precisely, within the flyby intervals where the ROI is visible, if visible); these are shown in Figure 4.4 and Figure 4.5. Moreover, it is possible to display 7 graphs representing the spacecraft’s ground track and the visible ROIs for the 7 flybys. Considering that each ROI has minimum resolution values for each flyby in which it is visible, as shown in the previously described heat map matrix, it is possible to specify in each of the 7 graphs which ROIs, among those visible during that flyby, can be observed with the minimum resolution among all the minimum resolution values for the flybys in which they are visible. In other words, it is possible to indicate whether that flyby contains the best possible moment to observe that ROI: in this case, the ROI polygon is green, otherwise it is light brown; the ground track is red. Optimization Heuristics for Scheduling Observations in Remote Sensing Missions: Single-Instrument case 36 - Data type: List of 2 integer numbers The oplan class contains the following methods:  Method(s)/getObsLength, getObsNumImg: - Definition: These functions take as input a ROI (oPlanRoi object) and a specific time instant, et. After identifying the time interval of the compliant TW where the instant et is located (by calling the method findIntervalInTw), these functions output, respectively, the duration and the number of images of the observation of this ROI starting from et. In this specific case, since the mosaic attribute is set to True, these values are obtained by interpolating with the thousand duration and image number values computed for the relevant interval using the Online Frontier Repair.  Method/ranFun: - Definition: Given the roiL list, it randomly assigns a start time for the observation of each ROI in the list and the duration of the observation for that ROI starting from the assigned time. The start time and duration values for each ROI are provided by the uniformRandomInTw method and are stored in the attributes stol and obsLength.  Method/uniformRandomInTw: - Definition: Given a ROI, this method randomly selects one of the intervals within the compliant time window, with the probability of selecting an interval equal to: 𝑃  = 𝛿  ∆  (4.2) where, with 𝑡, and 𝑡, being the start and end times of the i-th interval and N the total number of intervals in the TW: 𝛿  = 𝑡  ,  − 𝑡  ,  (4.3) ∆  =  𝛿    (4.4) In this way, a higher probability is assigned to larger intervals. Within the selected interval, the method randomly extracts a point following a uniform distribution, ensuring that if the observation begins at this point, it concludes within the selected interval. If this condition is not satisfied, another point in the interval that meets the requirement is searched.  Method/mutFun: - Definition: This method performs the mutation, implementing a slight modification to each observation starting instant, which in turn affects the corresponding observation duration. The new values are generated calling the randomSmallChangeInTw method and are updated in the stol and obsLength attributes. 37  Method/randomSmallChangeInTw: - Definition: Given a ROI and the initial observation time 𝑡 of the ROI, this method identifies the interval of the compliant time window containing 𝑡. It then samples, from the interval, a new observation time from a Gaussian distribution centered at 𝑡, with a standard deviation 𝜎 equal to the smaller of the two values: 𝜎  = min ( 𝑡  − 𝑡  , 𝑡  − 𝑡  ) (4.5) Where the first one is the distance of the start of the interval from 𝑡 and the second one is the distance from 𝑡 of the end of the interval. If the new observation lies within the interval, 𝑡 is updated in the correspondant position for the ROI in stol. Otherwise, if the condition is not satisfied after 50 attempts, 𝜎 is halved at each subsequent iteration, up to a maximum of 500 attempts. If the condition remains unmet, the process terminates, and the execution is halted.  Method/repFun: - Definition: This method performs the crossover and takes as input an individual, p1. Let p2, for example, be the object of class oplan from which the method repFun is called. Here, p1 and p2 represent the parents. From these, an individual is generated such thata, for each ROI, the initial observation time is set as the midpoint between the initial observation times of the two parents: 𝑡  ,    = 𝑡  ,   + 𝑡  ,   2 (4.6) If the resulting time falls within an interval of the compliant time window for the given ROI, the observation length is computed using the getObsLength method. Otherwise, a random initial instant for the ROI is assigned using the uniformRandomInTw method and the makespan is evaluated. At the end of the process, two lists are obtained: one for the initial times and one for the observation lengths. These lists are stored in stol and obsLength attributes of the current individual. Consequently, p2, which initially represented a parent, now represents the offspring.  Method/evalResPlan: - Definition: This method calculates the resolutions of observations starting at the instants specified in stol. For each ROI, the function evalResRoi is called to compute the resolution value as output. These resolutions are average values, as explained in Section 4.1.3.  Method/evalResRoi: - Definition: It takes as input the index associated with the ROI in the roiL list and the instant at which the observation of that ROI begins. It returns the resolution value of the observation as output. The resolution is determined via interpolation using the interpolateObservationData method of the ROI. Specifically, since the mosaic Optimization Heuristics for Scheduling Observations in Remote Sensing Missions: Single-Instrument case 38 attribute of the ROI is set to True in this problem, the interpolation is performed using the data provided by the Online Frontier Repair.  Method/evalCovPlan: - Definition: It computes the coverages of all observations within the plane, storing the resulting values in the croi attribute. To evaluate the coverage of each observed ROI, the evalCovRoi method is invoked.  Method/evalCovRoi: - Definition: This method takes as input the initial observation instant et of a ROI and the roiL index corresponding to that ROI. It subsequently calls the interpolateObservationData method of the oPlanRoi class object, assessing the coverage at the given epoch by means of interpolation.  Method/getTotalOverlapTime: - Definition: It computes and outputs the total overlap time, defined as the sum of overlaps between consecutive observations. Overlaps involving more than two observations are not considered. The method first sorts all the times contained in stol. Then, for each time in this sorted vector, starting from the second (included) to the last (included), it checks that the time does not occur before the end of the previous observation, which is determined by adding the duration of the previous observation to its start time. Finally, all the durations during which one observation overlaps with the previous one are summed, resulting in the total overlap time.  Method/fitFun: - Definition: The fitness of an individual is computed. Since the current problem involves single-objective optimization, meaning only one fitness value is evaluated for each individual, a single-objective function is used. Specifically, as simultaneous observations are not allowed, individuals with observations overlapping for a certain duration are excluded. First the total overlap time is calculated by calling the getTotalOverlapTime function: if the overlap time is greater than 0, the individual is assigned an extremely high fitness value, ensuring it is not favored by the selection mechanism, which in this problem favors individuals with the lowest fitness values. Otherwise, with 𝑅,𝑅,𝑅 representing, respectively, the resolution value of the observation of the i-th ROI in the schedule, the maximum and the minimum resolution values possible across all observations of all ROIs, 𝐶 the coverage value of the observation of the i-th ROI in the schedule and n the number of ROIs observed in the plan, the fitness of the individual f is given by: 𝑓 = 𝑤  ∑ 𝑅      𝑛 − 𝑅  𝑅  − 𝑅  + 𝑤  󰇧 1 − 1 100 ∑ 𝐶      𝑛 󰇨 (4.7) This is a weighted average that takes into account resolution and coverage to define the single-value fitness of an individual. Regarding resolution, the average resolution of the entire plan is first calculated and it is then normalized between 0 and 1.Similarly, for the coverage, the average coverage is first computed and also expressed between 0 and 1. 𝐶 is, in fact, expressed as a percentage ranging from 0 to 100. 39 Since resolution is better when lower and coverage is better when higher, and given that in this problem the fitness is minimized, the complement of coverage with respect to 1 is used, thereby minimizing it and maximizing coverage. Both resolution and coverage values are normalized between 0 and 1 due to their different orders of magnitude. This normalization ensures that their relative and not absolute variations are accounted for. In the current problem, the weights w1 and w2 are set to 0.5, meaning that resolution and coverage have equal importance in the final fitness value. 4.2.2 aga class The aga class (“A Genetic Algorithm”) performs the operations of the genetic algorithm. This class was entirely developed by Manel Soria [3]. Specifically, in this problem, after randomly generating an initial population of 1000 individuals (with the ranFun method of the oplan class), the algorithm iterates through successive populations for ng (500) generations. Each population consists of:  ne best individuals (with the lowest fitnesses) from the previous population. These are the elites.  nd individuals obtained through reproduction from parents in the previous population. These are the descendants.  nm individuals obtained by mutating individuals from the previous population. These are the mutants. If the combined count of descendants, mutants and elites does not match the total population size, the algorithm fills any remaining slots with newcomers, which are randomly generated individuals. Moreover, the following parameters are significant:  nCanMutate: The number of individuals eligible to serve as the source for mutants. These are the Mutant candidates.  nCanProcerate: The number of individuals that are selected as parents for reproduction. These are the Parent candidates. The parameters mentioned above can be modified by the user. The algorithm class aga is problem-independent, consequently, the class defining the individual – oplan in this case – must include a method to compute the fitness. aga is also independent of the function for generating random individuals, reproduction and mutation, which must also be implemented within the individual class. The selection mechanism, on the other hand, is included within the aga class. The aga class has an attribute, pop, where the individuals are stored and sorted based on their fitness values, from the lowest to the highest, so the individuals with the lowest fitness (the best ones) are at the front.The pop attribute is updated each time with the population corresponding to the current generation. Considering this, the selection mechanism is as follows:  The first ne individuals of pop are preserved in the next generation  Among the first nCanProcreate individuals of pop, nd times, two parents are randomly selected to generate nd child individuals  Among the first nCanMutate individuals of pop, nm times, a random individual is selected to undeergo mutation  As just mentioned, newcomers could be added. Optimization Heuristics for Scheduling Observations in Remote Sensing Missions: Single-Instrument case 40 At the end of the last generation, the best individual will represent the best schedule and it will be the output of the code. 4.2.3 Considerations on benchmarking The goal of benchmarking the algorithm is to test how useful it is for solving complex problems and to determine the optimal set of parameters or improvements that can be made to achieve better solutions. A benchmarking study has already been conducted by Pablo Torres [2]; despite the modifications between the two codes, the benchmarking work that could be performed here would be identical and would produce the same results. In the present work, the combination of parameters that, as shown by his benchmarking, yields the best final fitness is chosen. As written in the previous section, 1000 individuals and 500 generations were chosen. A high number of individuals helps maintain genetic diversity, reduces the risk of premature convergence and improves the quality of the final solution, especially in complex problem domain, while it was observed that after the chosen number of generations the fitness does not decrease further. The following table contains the parameters chosen based on benchmarking: Table 4.4: GA parameters' values based on benchmarking Parameter Value Percentage of population ne 50 5% nd 750 75% nm 150 15% nCanMutate 200 20% nCanProcreate 300 30% 4.2.4 The multi-agent toolbox Starting from the Python modules that come from PMOT [3], the script JUICE_runMany.py has been developed in the repository, which implements multi-threading: it is possible to run the same script multiple times in parallel, creating different instances or agents that execute the genetic algorithm independently from each other. The advantage is that, from a certain generation onwards, these instances communicate with each other, allowing the good individuals to propagate among the various instances and using these individuals to obtain better results. In the same computational time, better results are achieved. The following classes are used:  spawnAgents one sets up and runs the agents.  agentDataSharing allows the data sharing between the agents. 41 5 Results and discussion The current chapter presents and discusses the results obtained by running the algorithm explained in the previous section. Specifically, the results of a simple case, with known solution, will first be shown to verify the validity of the algorithm. Subsequently, the results obtained for the problem of interest will be presented in both single-agent and multi-agent scenarios. Finally, these results will be compared with those obtained without the Online Frontier Repair [2], highlighting any differences and similarities. 5.1 Validation: GA with a single ROI A first example to verify the effectiveness of the algorithm just developed should consist of the following:  Considering the resolution value as the fitness of each individual; thus, the objective function is the resolution formula (4.1).  Selecting only one of the flybys that JUICE performs around Ganymede. In this case, the chosen flyby begins on 2034 JUN 05 18:53:51 UTC and ends on 2034 JUN 06 18:53:51 UTC.  For each ROI on Ganymede, the emission angle and distance from the ROI’s centroid during the selected flyby can be plotted.  After analyzing the plots, a ROI visible during the flyby is selected, preferably one exhibiting highly variable resolution values. For example, the minimum emission angle (<90° to satisfy the visibility condition) should be near to the minimum distance and increase as the distance increases. The best resolution in the flyby, according to the proposed formula (4.1), will occur near the two minima, while resolution will worsen, along with the individual’s fitness, as both emission angle and distance increase. Additionally, a check is performed using the precomputed files to ensure that the two minima are within a compliant interval of the flyby (also constraints on illumination zenith and phase angles must be respected).  Determining the optimal schedule for observing only the selected ROI within the compliant interval of the flyby that has the minimum resolution value. The chosen ROI is JUICE_ROI_GAN_5_0_09, which exhibits the emission angle and distance values during the flyby as shown: Figure 5.1: Plot of emission angle (values on the left) and distance (values on the right) from the JUICE_ROI_GAN_5_0_09's centroid for the first validation case Optimization Heuristics for Scheduling Observations in Remote Sensing Missions: Single-Instrument case 42 This ROI indeed adheres to the emission angle and distance trends described above. The resolution trend over time is such that it reaches a minimum value and then continuously increases over time: Figure 5.2: Resolution over JUICE_ROI_GAN_5_0_09 in the flyby from 2034 JUN 05 18:53:51 to 2034 JUN 06 18:53:51 In this case, each oplan class object will contain a single element in the lists stol, qroi and obsLength. Assuming that it will definitely be possible to observe the ROI starting from the instant of minimum resolution without the end of the observation falling outside the interval – and knowing there are no other ROIs to observe – the best individual will be the one where the element in stol coincides with the instant of minimum resolution. However, the optimal solution in this case is already reached in the second generation, making the scenario too simple to be of interest for validation purposes. To make the problem more challenging for the algorithm, all the flybys in which JUICE_ROI_GAN_5_0_09 is visible are considered. Furthermore, to find the compliant intervals, it is assumed that the only constraint to be respected in the precomputation is that the emission angle < 90°, in order to have more intervals in which to search for the minimum.The precomputation was therefore performed again for this case, but only for the ROI of interest and with the emission angle constraint only. For the selected ROI there are 8 compliant time intervals during the flybys (Table 4.1). As can be seen from the analysis of the graphs in Figure 5.3 and Figure 5.4, the instant of minimum resolution lies within the compliant interval of the first flyby and, again, in absence of other ROIs and observation carried out entirely within the interval, this instant is the optimal one to start the observation. The starting observation instant provided by the GA coincides with the actually optimal one, thus validating the algorithm just developed. It is worth noting that, as shown in Figure 5.5 the best result is achieved around generation number 5 (therefore, 500 generations are not required to achieve the optimal result and only 20 will be inserted), which makes it a case that is not overly simple for the algorithm. 43 Figure 5.3: Resolution trend in the first 4 compliant intervals of the ROI JUICE_ROI_GAN_5_0_09. Optimization Heuristics for Scheduling Observations in Remote Sensing Missions: Single-Instrument case 44 Figure 5.4: Resolution trend in the last 4 compliant intervals of the ROI JUICE_ROI_GAN_5_0_09. 45 Figure 5.5: Evolution of best fitness (resolution) in the case of the test where only JUICE_ROI_GAN_5_0_09 is observed in all the compliant intervals obtained by considering emission angle as the only constraint 5.2 Single-Agent and Multi-Agent: results and discussion After performing the precomputation to obtain the compliant intervals that respect the constraints on emission angle, illumination zenith angle and phase angle (Table 4.2), the GA was executed first for a single agent and then with multiple agents in parallel, with the parameters specified in Section 4.2.3. The fitness (which, as a reminder, is a weighted average of coverage and resolution) of the best individual of each generation for the single agent are shown: Figure 5.6: Fitness with generation, single agent The final best individual’s fitness is 0.986. Optimization Heuristics for Scheduling Observations in Remote Sensing Missions: Single-Instrument case 52 6 Budget summary In Table 6.1 the estimated budget for the Master’s Thesis, comprising professional fees and electricity cost, is summarized. The Staff cost was determined using the annual salary of a junior aerospace engineer with no prior experience, calculated as 2299 € [37]. The hourly rate was derived based on a typical work schedule, assuming 12 months in a year, 4 weeks per month, and 40 working hours per week. Electricity costs were estimated using data from [38]. The calculations consider a laptop consuming 130 W over 300 hours and the JUNO server operating at 500 W for 336 hours. These assumptions form the basis for the values provided in Table 6.1. Table 6.1: Budget summary Category Value Unit cost Cost Staff cost 300 hours 12.0 € / hour 3594.0 € Electricity - Laptop 39 kWh 0.119 € / kWh 4.64 € Electricity - JUNO server 168 kWh 0.119 € / kWh 19.99 € Total estimated budget 3.618,63 € 53 7 Analysis and assessment of environmental and social implications Space missions represent a pivotal step in humanity's quest to expand the boundaries of scientific knowledge. However, these endeavors carry significant environmental and social implications that must be critically analyzed to ensure sustainable development and responsible exploration. This chapter discusses the key considerations associated with the scheduling of remote sensing observations, focusing on the environmental impact and societal contributions of space exploration. 7.1 Environmental implications The environmental footprint of space missions primarily stems from the manufacturing, launch, and operation phases. The launch process, involving the combustion of rocket propellants, releases substantial quantities of greenhouse gases and particulate matter into the atmosphere, potentially affecting the ozone layer and contributing to climate change. For instance, the Falcon 9 launch by SpaceX in 2018 burned approximately 112,184 kilograms of kerosene, releasing about 336,552 kilograms of carbon dioxide into the Earth's atmosphere [40]. Moreover, the increasing accumulation of space debris in Earth's orbit poses long-term risks to both active satellites and future missions. Space junk, comprising remnants of rockets and spacecraft, threatens operational satellites and can plummet towards Earth, potentially harming the environment and human populations. Despite guidelines from the United Nations Office for Outer Space Affairs [41], only about 40% of space missions adhere to voluntary space debris mitigation practices. In the context of planetary exploration missions, adherence to planetary protection protocols is critical. Preventing contamination of celestial bodies with Earth-based biological material is essential to preserve the integrity of future scientific investigations. The optimization of observation schedules, as explored in this thesis, indirectly supports these goals by maximizing the scientific return per mission and reducing the need for redundant operations, thereby minimizing resource usage. Data transmission in Space missions has notable environmental implications. Ground stations, such as the Deep Space Network (DSN), require significant energy to maintain contact with spacecraft, while onboard systems must balance power consumption with limited energy resources like solar panels or nuclear generators. Inefficient data management can deplete these resources, risking mission objectives and increasing the environmental footprint. Optimizing transmission schedules mitigates these impacts by reducing the frequency and volume of data transfers. Prioritizing high-value data and using compression techniques minimizes energy usage both onboard and on the ground, aligning with sustainability goals 7.2 Social Implications The societal impact of space missions extends beyond scientific advancements, influencing education, technology, and global cooperation. By enhancing our understanding of planetary systems, these missions inspire future generations to pursue careers in Science, Technology, Engineering, and Mathematics (STEM). Additionally, technologies developed Optimization Heuristics for Scheduling Observations in Remote Sensing Missions: Single-Instrument case 54 for Space exploration often find applications in various industries, from healthcare to environmental monitoring, driving innovation and economic growth. However, the rapid increase in space activities, particularly by private companies, has raised concerns about equity and environmental justice. The localized environmental damage caused by frequent launches disproportionately affects nearby communities and ecosystems. For instance, SpaceX's operations in Boca Chica, Texas, have reportedly disrupted the habitats of endangered species, such as birds and sea turtles, while also affecting local residents [42]. These cases highlight the need for a balanced approach to space exploration that considers both technological ambitions and the well-being of affected populations. The optimization techniques discussed in this thesis have the potential to democratize access to space by improving the efficiency and cost-effectiveness of mission planning. By reducing the computational resources required for scheduling, smaller institutions and nations could participate in planetary exploration, fostering inclusivity and collaboration. 7.3 Ethical Considerations The ethical dimensions of Space exploration, particularly regarding resource utilization and potential colonization, warrant careful deliberation. As humanity explores new frontiers, it is crucial to balance the pursuit of scientific discovery with a respect for the intrinsic value and preservation of celestial bodies. Space is not merely a resource to exploit but a shared heritage that holds cultural, scientific, and philosophical significance. One key consideration is the potential contamination of extraterrestrial environments. Introducing Earth-based microorganisms or materials to other planets could disrupt native ecosystems—if they exist—and compromise the integrity of future scientific investigations. Adhering to strict planetary protection protocols is essential to minimize these risks while maintaining the scientific reliability of missions. Resource extraction also raises significant ethical questions. The utilization of extraterrestrial materials, such as mining asteroids or the Moon, may provide substantial benefits for space missions and industries on Earth. However, such activities must be governed by international agreements to ensure equitable access and avoid monopolization by a few powerful entities. The tools and methodologies developed in this thesis align with these ethical imperatives by promoting the efficient use of resources and minimizing unnecessary interventions. This approach not only enhances mission sustainability but also reflects a broader commitment to responsible and inclusive exploration. 55 8 Conclusions This thesis has explored the use of genetic algorithms (GAs) to optimize the planning of scientific observations in Space missions, focusing specifically on the application to a single instrument scenario. The main objective was to demonstrate the effectiveness of these computational techniques in addressing the challenges posed by operational constraints while maximizing scientific return. The work emphasizes the potential of GAs as a robust and adaptable solution for single-instrument scheduling problems. The study began with the identification of a key issue in space mission planning: the need for efficient scheduling of observations to ensure compliance with strict mission constraints. Unlike traditional manual planning approaches, which are time-intensive and prone to suboptimal solutions, the proposed method leverages advanced computational tools to automate and optimize the process. To tackle this challenge, a model was developed that integrates NASA's SPICE toolkit for mission data management and Pythonbased libraries for optimization. The genetic algorithm was carefully tailored to identify feasible and optimal observation schedules for a single instrument, considering factors such as observation windows and scientific priorities. 8.1 Main Results The case study centred on the Ganymede flybys of the JUICE mission, aiming to optimize the observation schedule for the JANUS instrument. These flybys presented unique challenges due to the limited time available for high-resolution observations and the need to align with scientific objectives. The results demonstrated the algorithm’s ability to: 1. Generate feasible schedules: The GA successfully identified observation windows that complied with the mission’s geometric and temporal constraints. This ensured that all observations adhered to the predefined parameters without conflict. 2. Optimize observation quality: The algorithm effectively prioritized observation opportunities, selecting those that maximized image resolution and scientific value. This resulted in a significant improvement in the quality of the observation plan compared to baseline methods. 3. Efficiently allocate resources: The model effectively balanced the trade-offs between operational constraints and scientific objectives, ensuring optimal resource utilization. This was particularly evident in the avoidance of overlapping tasks. 8.2 Contributions and Implications This thesis contributes to the ongoing development of computational tools for space mission planning, showcasing the potential of genetic algorithms to optimize single-instrument observation schedules. The research underscores the importance of leveraging advanced computational techniques to address complex operational challenges. Key implications include:  Practical relevance: The developed model offers a scalable and adaptable approach that can be applied to other single-instrument scenarios in various space missions. Its modular design facilitates integration with existing mission planning frameworks, providing a practical tool for mission designers.  Enhanced mission efficiency: By automating the scheduling process, the methodology reduces the reliance on manual planning, thereby improving Optimization Heuristics for Scheduling Observations in Remote Sensing Missions: Single-Instrument case 56 operational efficiency and decision-making. This approach also minimizes the risk of human error, which can have significant implications for mission success. 8.3 Limitations and Future Perspectives While the results are promising, the scope of this study is limited to a single-instrument application. This problem has been the starting point to adapt the algorithm for multiinstrument missions, addressing more complex scheduling scenarios, including conflicting objectives among instruments. Future research could expand by: 1. Incorporating other optimization techniques: Other algorithms, such as Simulated Annealing, could be used to address the mission scheduling problem. One method could involve assigning different heuristics to each agent in a multiagent system. 2. Validating on additional missions: Testing the model on different mission profiles and instruments to evaluate its generalizability and robustness. Comparative studies with existing planning tools could also provide valuable insights into its relative performance. 3. Exploring additional heuristics: Introducing alternative heuristic algorithms such as Sidewinder or Replanning Sidewinder to compare their performance and effectiveness in optimizing observation schedules. These methods could complement the GA approach by providing alternative solutions or enhancing specific aspects of the planning process. 4. Enhancing real-time adaptability: Developing extensions to enable real-time replanning capabilities, allowing the model to respond to dynamic mission environments and unforeseen constraints. The approach developed here represents a valuable step forward in advancing space mission planning, providing a foundation for future research and applications in the field of computational optimization. By addressing the limitations and exploring new directions, this work opens the door to more sophisticated and efficient planning tools, ensuring that future Space missions achieve their scientific goals with maximum efficiency and precision. 57 9 References [1] PATERNA, S.; SANTONI, M.; BRUZZONE, L.: An Approach Based on Multiobjective Genetic Algorithms to Schedule Observations in Planetary Remote Sensing Missions. IEEE Journal of Selected Topics in Applied Earth Observations and Remote Sensing [online]. 2020, vol. 13 [visited on 2025-01-04]. [2] TORRES RUBIO, P.: Genetic algorithms to schedule observations in planetary remote sensing missions [online]. Bachelor’s Thesis, UPC, Escola Superior d'Enginyeries Industrial, Aeroespacial i Audiovisual de Terrassa, Departament de Física, 2024. Available at: https://upcommons.upc.edu/handle/2117/416191 [3] SORIA GUERRERO, M.: Python Multiheuristic Optimization Tools [online]. Available at: https://github.com/ManelSoria/PMOT. [N.d.]. [visited on 2025-01-07]. [4] ACTON, C.: An overview of SPICE. Jet Propulsion Laboratory: Oak Grove, KY, USA, 1998. [5] STEPHAN, K. et al. Regions of Interest on Ganymede’s and Callisto’s surfaces as potential targets for ESA’s JUICE mission. Planetary and Space Science [online]. 2021, vol. 208, p.105324 [visited on 2025-01-05]. ISSNN 0032-0633. Available at DOI: 10.1016/j.pss.2021.105324 [6] KERSTEN, E.; ZUBAREV, A.E.; ROATSCH, Th.; MATZ, K.-D.: Controlled Global Ganymede mosaic from Voyager and Galileo images. Planetary and Space Science [online].2021, vol. 206, p.105310 [visited on 2025-01-05]. ISSN 0032-0633. Available at DOI: 10.1016/j.pss.2021.105310 [7] BETRIU, P.: Optimization Techniques in Science Planning for Planetary Exploration missions [online]. PhD Thesis, UPC, Escola Superior d'Enginyeries Industrial, Aeroespacial i Audiovisual de Terrassa, Departament d'Enginyeria Mecànica, 2024. Available at: https://upcommons.upc.edu/handle/2117/420573 [8] SIMÓN AZNAR, J.: Genetic algorithms to schedule observations in planetary remote sensing missions [online]. Master’s Thesis, UPC, Escola Superior d'Enginyeries Industrial, Aeroespacial i Audiovisual de Terrassa, Departament de Física, 2024. Available at: https://upcommons.upc.edu/handle/2117/418588. [9] ANDÍA VON LIGNAU, Diego. A new set of observations of Europa for the Galileo spacecraft [online]. 2022. [visited on 2025-01-05]. Available at: https://upcommons.upc.edu/handle/2117/374159. Bachelor’s Thesis. Universitat Politècnica de Catalunya. Accepted: 2022-10-07T10:40:11Z. [10] DOUBLEDAY, Joshua; KNIGHT, Russell: Science Mission Planning for DESDynI with CLASP. 2014. ISBN 978-1-62410-221-9. Available at DOI: 10.2514/6.20141757. [11] KNIGHT, S.; RABIDEAU, G.; CHIEN, S.; ENGELHARDT, B.; SHERWOOD, R. Casper: space exploration through continuous planning. IEEE Intelligent Systems. 2001, vol. 16, no. 5, pp. 70–75. Available at DOI: 10.1109/MIS.2001.956084. [12] KNIGHT, R.; HU, S.: Compressed Large-scale Activity Scheduling and Planning (CLASP) Applied to DESDynI. Jet Propulsion Laboratory, California Institute of Technology. Available at: smcit.ecs.baylor.edu. Optimization Heuristics for Scheduling Observations in Remote Sensing Missions: Single-Instrument case 58 [13] SHAO, E.; BYON, A.; DAVIES, C.; DAVIS, E.; KNIGHT, R.; LEWELLEN, G.; TROWBRIDGE, M.; CHIEN, S.: Area Coverage Planning with 3-axis Steerable, 2D Framing Sensors. [N.d.]. [14] CHOO, T.; STEELE, R.; LUCKS, M.; NGUYEN, L.; ANDERSON, B.; BEDINI, P. MESSENGER SciBox, An Automated Closed-loop Science Planning and Commanding System. In: AIAA SPACE 2011 Conference & Exposition [online]. Long Beach, California: American Institute of Aeronautics and Astronautics, 2011 [visited on 2025-01-05]. ISBN 978-1-60086-953-2. Available at DOI: 10.2514/6.2011-7339 [15] GALUZIN, V.; KUTOMANOV, A. Yu.; MATYUSHIN, M. M.; SKOBELEV, P. : A review of modern methods for planning and scheduling of the operations in advanced space systems. In: Mekhatronika Avtomatizatsiya Upravlenie [online]. Available at DOI: 10.17587/mau.21.639-650 [16] KONAK, A.; COIT, D.W.; SMITH, A. E.: Multi-objective optimization using genetic algorithms: a tutorial. Reliability Engineering & System Safety. Volume 91, Issue 9, Pages 992-1007. 2006. ISSN 0951-8320. Available at DOI: 10.1016/j.ress.2005.11.018. [17] JUICE Science Study Team: JUICE Exploring the emergence of habitable worlds around gas giants. ESA(SRE)(2011)18, Issue 1, December 2011. European Space Agency [online] [18] European Space Agency (ESA): The science: JUICE's key objectives at Jupiter. In: ESA Science & Exploration [online]. Available at: https://www.esa.int/Science_Exploration/Space_Science/Juice/The_science_Juice _s_key_objectives_at_Jupiter [19] European Space Agency (ESA). Segment Visualisation and Coverage Tool [online]. [N.d.]. [visited on 2024-06-12]. Available from: https://juicesoc.esac.esa.int/event_tool/segment/segment_catalogue_crema_5_1_ 150lb_ 23_1 [20] European Space Agency (ESA): Juice: Jupiter Icy Moons Explorer [online]. [visited on 2025-01-06]. Available at: https://www.esa.int/Science_Exploration /Space_Science/Juice [21] SARRI,G.; WITASSE, O.; CAVEL, C. : The JUICE Mission to Jupiter and its Icy Moons. 9th EUROPEAN CONFERENCE FOR AERONAUTICS AND SPACE SCIENCES (EUCASS). Available at DOI: 10.13009/EUCASS2022-7148 [22] SCHMITZ, N. et al.:JANUS on JUICE: A Camera to Investigate Ganymede, Europa, Callisto and the Jovian System. Deutsches Zentrum für Luftund Raumfahrt e.V. (DLR). September 2013. [23] JUICE Science Study Team: JUICE Exploring the emergence of habitable worlds around gas giants. ESA(SRE)(2014)1, Issue 1, September 2014. European Space Agency [online] [24] HARUYAMA, J. : ONBOARD JUICE: JANUS. Japan Aerospace Exploration Agency (JAXA) / Institute of Space and Astronautical Science (ISAS).April 2023 Available at: https://cosmos.isas.jaxa.jp/onboard-juice-janus/ 59 [25] LARA, L. : JANUS, the optical camera on ESA's JUICE probe, captures stunning images during its first lunar and terrestrial flyby. Instituto de Astrofísica de Andalucía (IAA-CSIC). August 2024. Available at: https://www.iaa.csic.es/en/news/janusoptical-camera-esas-juice-probe-captures-stunning-images-during-its-first-lunarand [26] SHAO, E.; BYON, A.; DAVIS, E.; KNIGHT, R.; LEWELLEN, G.; TROWBRIDGE, M.; CHIEN, S. : Area coverage planning with 3-axis steerable, 2D framing sensors. International Conference on Automated Planning and Scheduling (ICAPS), 2018. [27] BETRIU, P.: Area Coverage Planning, GitHub repository. [visited on 2025-01-06]. Available at: GitHub - PauBet/area-coverage-planning [28] HOLLAND, J.H.: Genetic Algorithms, Scientific American, Vol. 267, N. 1. July 1992, pp. 67-73. [29] BRABAZON, A.; O’NEILL, M.; MCGARRAGHY, S.: Natural Computing Algorithms. Natural Computing Series, Springer, 2015. ISSN 1619-7127. Available at DOI: 10.1007/978-3-662-43631-8 [30] RAZALI, N. M.; GERAGHTY, J. : Genetic Algorithm Performance with Different Selection Strategies in Solving TSP. International Conference of Computational Intelligence and Intelligent Systems (ICCIIS'11). 2011. Available at: https://www.iaeng.org/publication/WCE2011/WCE2011_pp1134-1139.pdf [31] KARIMI-MAMAGHAN, M.; MOHAMMADI, M.; MEYER, P.; KARIMI-MAMAGHAN, A. M.; TALBI, G. : Machine learning at the service of meta-heuristics for solving combinatorial optimization problems: A state-of-the-art. European Journal of Operational Research. Volume 296, Issue 2, 2022, Pages 393-422. ISSN 03772217. Available at DOI: 10.1016/j.ejor.2021.04.032. [32] DI SARNO, P.; FIENGO, I.F.: TFM_Naples_SingleInst. GitHub repository[online], 2024. [visited on 2025-01-08]. Available at https://github.com/ PietrooDiSarno/TFM_Naples_SingleInst [33] Investigación y tecnología de la UPC en Terrassa, TUAREG. Available at: https://recercaterrassa.upc.edu/es/equipamientos-cientificotecnicos/tuareg [34] European Space Agency (ESA), JUICE SOC Event Catalogue. Available at: https://juicesoc.esac.esa.int/event_tool/event/event_catalogue_5_1_150lb_23_1_b 2. 2024. Available also at: https://juicesoc.esac.esa.int/event_tool /event/event_catalogue_5_1_150lb_23_1_b2. [35] BETRIU, P. : Python Science Opportunity Analysis Tool. GitHub repository [online], 2024. [visited on 2025-01-08]. Available at https://github.com/PauBet/PSOA [36] SORIA, Manel. pySPICElib, GitHub repository [online]. [N.d.]. Available at: https://github.com/ManelSoria/pySPICElib. [N.d.]. Accessed: 2025-01-08. [37] Stipendi per Junior Engineer. 2024. [online]. Available at: https://www.glassdoor.it/Stipendi/barcelona-junior-engineer-stipendioSRCH_IL.0,9_IC2547194_KO10,25.htm. [visited on 2025-01-12] Optimization Heuristics for Scheduling Observations in Remote Sensing Missions: Single-Instrument case 60 [38] Precio de la luz en Barcelona HOY. 12-01-2025. [online]. Available at: https://www.menosdeluz.com/precio-luz-barcelona. [visited on 2025-01-12] [39] TORRES RUBIO, P.: oplan. GitHub repository [online], 2025. [visited on 2025-0112]. Available at: https://github.com/Pablo-TR/oplan [40] SPACE X: FALCON 9, FIRST ORBITAL CLASS ROCKET CAPABLE OF REFLIGHT [online]. Available at: https://www.spacex.com/vehicles/falcon-9/ [visited on 2025-01-12]. [41] UNITED NATIONS, Office for Outer Space Affairs [online]. Available at: https://www.unoosa.org/ [visited on 2025-01-12] [42] DEFENDERS OF WILDLIFE, The Terrible Irony of Destroying Earth in Search of Plan(et) B: SpaceX’s Impacts to Boca Chica, Texas. Available at: https://defenders.org/blog/2024/10/terrible-irony-of-destroying-earth-search-ofplanet-b-spacexs-impacts-boca-chica-0 [visited on 2025-01-12]