Source code for RCAIDE.Library.Mission.Common.Pre_Process.emissions

# RCAIDE/Library/Missions/Common/Pre_Process/emissions.py
# 
# 
# Created:  Jul 2023, M. Clarke

# ----------------------------------------------------------------------------------------------------------------------
#  emissions
# ----------------------------------------------------------------------------------------------------------------------  
[docs] def emissions(mission): """ Initializes and processes emissions models for mission segments Parameters ---------- mission : Mission The mission containing segments to be analyzed - analyses.emissions : Analysis Emissions analysis module - process.emissions : Process Emissions computation process - surrogates : Data Emissions surrogate models Returns ------- None Updates mission segment analyses directly Notes ----- This function prepares the emissions analysis for each mission segment. It manages emissions models and surrogate data across segments for computational efficiency by reusing previously computed data when possible. The function performs the following steps: 1. Identifies segments requiring emissions analysis 2. Reuses previous segment's emissions data when possible 3. Initializes new emissions analyses when needed **Process Flow** For each segment: 1. Check if emissions analysis exists 2. If previous segment exists with computed data: - Reuse process and surrogate data 3. Otherwise: - Initialize new emissions analysis - Store segment tag for future reference **Major Assumptions** * Compatible emissions models between segments * Valid initialization of first segment * Continuous emissions characteristics * Proper surrogate model compatibility See Also -------- RCAIDE.Framework.Mission.Segments """ last_tag = None for tag,segment in mission.segments.items(): if segment.analyses.emissions != None: if last_tag and 'compute' in mission.segments[last_tag].analyses.emissions.process: segment.analyses.emissions.process.emissions = mission.segments[last_tag].analyses.emissions.process.emissions segment.analyses.emissions.surrogates = mission.segments[last_tag].analyses.emissions.surrogates else: em = segment.analyses.emissions em.initialize() last_tag = tag return