+ # Create Assimilation study
+ if sys.version_info.major > 2: import adao
+ from daYacsIntegration.daStudy import *
+ assim_study = daStudy(Name, Algorithm, Debug)
+
+ logging.debug("CREATE YI Data entered are:")
+
+ # Algorithm parameters
+ if "AlgorithmParameters" in locals():
+ logging.debug("CREATE YI AlgorithmParameters is %s"%AlgorithmParameters)
+ assim_study.setYIAlgorithmParameters(AlgorithmParameters)
+
+ # Background
+ if "Background" in locals():
+ logging.debug("CREATE YI Background is set")
+ logging.debug("CREATE YI BackgroundType is %s"%BackgroundType)
+ logging.debug("CREATE YI BackgroundStored is %s"%BackgroundStored)
+ assim_study.setYIBackgroundType(BackgroundType)
+ assim_study.setYIBackgroundStored(BackgroundStored)
+ assim_study.setYIBackground(Background)
+
+ # CheckingPoint
+ if "CheckingPoint" in locals():
+ logging.debug("CREATE YI CheckingPoint is set")
+ logging.debug("CREATE YI CheckingPointType is %s"%CheckingPointType)
+ logging.debug("CREATE YI CheckingPointStored is %s"%CheckingPointStored)
+ assim_study.setYICheckingPointType(CheckingPointType)
+ assim_study.setYICheckingPointStored(CheckingPointStored)
+ assim_study.setYICheckingPoint(CheckingPoint)
+
+ # ControlInput
+ if "ControlInput" in locals():
+ logging.debug("CREATE YI ControlInput is set")
+ logging.debug("CREATE YI ControlInputType is %s"%ControlInputType)
+ logging.debug("CREATE YI ControlInputStored is %s"%ControlInputStored)
+ assim_study.setYIControlInputType(ControlInputType)
+ assim_study.setYIControlInputStored(ControlInputStored)
+ assim_study.setYIControlInput(ControlInput)
+
+ # Observation
+ if "Observation" in locals():
+ logging.debug("CREATE YI Observation is set")
+ logging.debug("CREATE YI ObservationType is %s"%ObservationType)
+ logging.debug("CREATE YI ObservationStored is %s"%ObservationStored)
+ assim_study.setYIObservationType(ObservationType)
+ assim_study.setYIObservationStored(ObservationStored)
+ assim_study.setYIObservation(Observation)
+
+ # BackgroundError
+ if "BackgroundError" in locals():
+ logging.debug("CREATE YI BackgroundError is set")
+ logging.debug("CREATE YI BackgroundErrorType is %s"%BackgroundErrorType)
+ logging.debug("CREATE YI BackgroundErrorStored is %s"%BackgroundErrorStored)
+ assim_study.setYIBackgroundErrorType(BackgroundErrorType)
+ assim_study.setYIBackgroundErrorStored(BackgroundErrorStored)
+ assim_study.setYIBackgroundError(BackgroundError)
+
+ # ObservationError
+ if "ObservationError" in locals():
+ logging.debug("CREATE YI ObservationError is set")
+ logging.debug("CREATE YI ObservationErrorType is %s"%ObservationErrorType)
+ logging.debug("CREATE YI ObservationErrorStored is %s"%ObservationErrorStored)
+ assim_study.setYIObservationErrorType(ObservationErrorType)
+ assim_study.setYIObservationErrorStored(ObservationErrorStored)
+ assim_study.setYIObservationError(ObservationError)
+
+ # EvolutionError
+ if "EvolutionError" in locals():
+ logging.debug("CREATE YI EvolutionError is set")
+ logging.debug("CREATE YI EvolutionErrorType is %s"%EvolutionErrorType)
+ logging.debug("CREATE YI EvolutionErrorStored is %s"%EvolutionErrorStored)
+ assim_study.setYIEvolutionErrorType(EvolutionErrorType)
+ assim_study.setYIEvolutionErrorStored(EvolutionErrorStored)
+ assim_study.setYIEvolutionError(EvolutionError)
+
+ # ObservationOperator
+ ObservationOperatorOk = 0
+ if "ObservationOperator" in locals():
+ logging.debug("CREATE YI ObservationOperator is set")
+ logging.debug("CREATE YI ObservationOperatorType is %s"%ObservationOperatorType)
+ assim_study.setYIObservationOperatorType("Matrix", ObservationOperatorType)
+ assim_study.setYIObservationOperator("Matrix", ObservationOperator)
+ ObservationOperatorOk = 1
+
+ if ObservationOperatorOk == 0:
+ if "ObservationOperatorDirect" in locals():
+ logging.debug("CREATE YI ObservationOperatorDirect is %s"%ObservationOperatorDirect)
+ assim_study.setYIObservationOperatorType("Direct", "Function")
+ assim_study.setYIObservationOperator("Direct", ObservationOperatorDirect)
+ if "ObservationOperatorTangent" in locals():
+ logging.debug("CREATE YI ObservationOperatorTangent is %s"%ObservationOperatorTangent)
+ assim_study.setYIObservationOperatorType("Tangent", "Function")
+ assim_study.setYIObservationOperator("Tangent", ObservationOperatorTangent)
+ if "ObservationOperatorAdjoint" in locals():
+ logging.debug("CREATE YI ObservationOperatorAdjoint is %s"%ObservationOperatorAdjoint)
+ assim_study.setYIObservationOperatorType("Adjoint", "Function")
+ assim_study.setYIObservationOperator("Adjoint", ObservationOperatorAdjoint)
+
+ # EvolutionModel
+ EvolutionModelOk = 0
+ if "EvolutionModel" in locals():
+ logging.debug("CREATE YI EvolutionModel is set")
+ logging.debug("CREATE YI EvolutionModelType is %s"%EvolutionModelType)
+ assim_study.setYIEvolutionModelType("Matrix", EvolutionModelType)
+ assim_study.setYIEvolutionModel("Matrix", EvolutionModel)
+ EvolutionModelOk = 1
+
+ if EvolutionModelOk == 0:
+ if "EvolutionModelDirect" in locals():
+ logging.debug("CREATE YI EvolutionModelDirect is %s"%EvolutionModelDirect)
+ assim_study.setYIEvolutionModelType("Direct", "Function")
+ assim_study.setYIEvolutionModel("Direct", EvolutionModelDirect)
+ if "EvolutionModelTangent" in locals():
+ logging.debug("CREATE YI EvolutionModelTangent is %s"%EvolutionModelTangent)
+ assim_study.setYIEvolutionModelType("Tangent", "Function")
+ assim_study.setYIEvolutionModel("Tangent", EvolutionModelTangent)
+ if "EvolutionModelAdjoint" in locals():
+ logging.debug("CREATE YI EvolutionModelAdjoint is %s"%EvolutionModelAdjoint)
+ assim_study.setYIEvolutionModelType("Adjoint", "Function")
+ assim_study.setYIEvolutionModel("Adjoint", EvolutionModelAdjoint)
+
+ # Variables
+ for name, size in zip(InputVariablesNames, InputVariablesSizes):
+ assim_study.setYIInputVariable(name, size)
+ for name, size in zip(OutputVariablesNames, OutputVariablesSizes):
+ assim_study.setYIOutputVariable(name, size)
+
+ if has_observers:
+ logging.debug("CREATE YI Observers keys are %s"%observers.keys())
+ # Adding observers to the study
+ for observer_name in observers.keys():
+ scheduler = ""
+ info = ""
+ number = str(observers[observer_name]["number"])
+ if "scheduler" in observers[observer_name].keys():
+ scheduler = observers[observer_name]["scheduler"]
+ if "info" in observers[observer_name].keys():
+ info = observers[observer_name]["info"]
+ assim_study.addYIObserver(observer_name, scheduler, info, number)
+
+except Exception as e:
+ if isinstance(e, SyntaxError): msg = "at %s: %s"%(e.offset, e.text)
+ else: msg = ""
+ raise ValueError("during execution, the following error occurs:\n\n%s %s\n\nSee also the potential messages, which can show the origin of the above error, in the launching terminal."%(str(e),msg))