:widths: 20, 10, 10
Python, 3.6.5, 3.10.8
- Numpy, 1.14.3, 1.23.5
- Scipy, 1.1.0, 1.9.3
+ Numpy, 1.14.3, 1.24.1
+ Scipy, 1.1.0, 1.10.0
MatplotLib, 2.2.2, 3.6.2
- GnuplotPy, 1.8, 1.8
+ GnuplotPy, 1.8, 1.8
NLopt, 2.4.2, 2.7.1
:widths: 20, 10, 10
Python, 3.6.5, 3.10.8
- Numpy, 1.14.3, 1.23.5
- Scipy, 1.1.0, 1.9.3
+ Numpy, 1.14.3, 1.24.1
+ Scipy, 1.1.0, 1.10.0
MatplotLib, 2.2.2, 3.6.2
- GnuplotPy, 1.8, 1.8
+ GnuplotPy, 1.8, 1.8
NLopt, 2.4.2, 2.7.1
__author__ = "Jean-Philippe ARGAUD"
import numpy, scipy, scipy.optimize, scipy.version
+from daCore.PlatformInfo import vt
# ==============================================================================
def ecwnlls(selfA, Xb, Y, U, HO, CM, R, B, __storeState = False):
nbPreviousSteps = selfA.StoredVariables["CostFunctionJ"].stepnumber()
#
if selfA._parameters["Minimizer"] == "LBFGSB":
- if "0.19" <= scipy.version.version <= "1.4.99":
+ if vt("0.19") <= vt(scipy.version.version) <= vt("1.4.99"):
import daAlgorithms.Atoms.lbfgsb14hlt as optimiseur
- elif "1.5.0" <= scipy.version.version <= "1.7.99":
+ elif vt("1.5.0") <= vt(scipy.version.version) <= vt("1.7.99"):
import daAlgorithms.Atoms.lbfgsb17hlt as optimiseur
- elif "1.8.0" <= scipy.version.version <= "1.8.99":
+ elif vt("1.8.0") <= vt(scipy.version.version) <= vt("1.8.99"):
import daAlgorithms.Atoms.lbfgsb18hlt as optimiseur
- elif "1.9.0" <= scipy.version.version <= "1.9.99":
+ elif vt("1.9.0") <= vt(scipy.version.version) <= vt("1.10.99"):
import daAlgorithms.Atoms.lbfgsb19hlt as optimiseur
else:
import scipy.optimize as optimiseur
import numpy, scipy, scipy.optimize, scipy.version
from daCore.NumericObjects import HessienneEstimation, QuantilesEstimations
from daCore.NumericObjects import RecentredBounds
-from daCore.PlatformInfo import PlatformInfo
+from daCore.PlatformInfo import PlatformInfo, vt
mpr = PlatformInfo().MachinePrecision()
# ==============================================================================
#
if selfA._parameters["Minimizer"] == "LBFGSB":
# Minimum, J_optimal, Informations = scipy.optimize.fmin_l_bfgs_b(
- if "0.19" <= scipy.version.version <= "1.4.99":
+ if vt("0.19") <= vt(scipy.version.version) <= vt("1.4.99"):
import daAlgorithms.Atoms.lbfgsb14hlt as optimiseur
- elif "1.5.0" <= scipy.version.version <= "1.7.99":
+ elif vt("1.5.0") <= vt(scipy.version.version) <= vt("1.7.99"):
import daAlgorithms.Atoms.lbfgsb17hlt as optimiseur
- elif "1.8.0" <= scipy.version.version <= "1.8.99":
+ elif vt("1.8.0") <= vt(scipy.version.version) <= vt("1.8.99"):
import daAlgorithms.Atoms.lbfgsb18hlt as optimiseur
- elif "1.9.0" <= scipy.version.version <= "1.9.99":
+ elif vt("1.9.0") <= vt(scipy.version.version) <= vt("1.10.99"):
import daAlgorithms.Atoms.lbfgsb19hlt as optimiseur
else:
import scipy.optimize as optimiseur
import numpy, scipy, scipy.optimize, scipy.version
from daCore.NumericObjects import HessienneEstimation, QuantilesEstimations
+from daCore.PlatformInfo import vt
# ==============================================================================
def psas3dvar(selfA, Xb, Y, U, HO, CM, R, B, __storeState = False):
nbPreviousSteps = selfA.StoredVariables["CostFunctionJ"].stepnumber()
#
if selfA._parameters["Minimizer"] == "LBFGSB":
- if "0.19" <= scipy.version.version <= "1.4.99":
+ if vt("0.19") <= vt(scipy.version.version) <= vt("1.4.99"):
import daAlgorithms.Atoms.lbfgsb14hlt as optimiseur
- elif "1.5.0" <= scipy.version.version <= "1.7.99":
+ elif vt("1.5.0") <= vt(scipy.version.version) <= vt("1.7.99"):
import daAlgorithms.Atoms.lbfgsb17hlt as optimiseur
- elif "1.8.0" <= scipy.version.version <= "1.8.99":
+ elif vt("1.8.0") <= vt(scipy.version.version) <= vt("1.8.99"):
import daAlgorithms.Atoms.lbfgsb18hlt as optimiseur
- elif "1.9.0" <= scipy.version.version <= "1.9.99":
+ elif vt("1.9.0") <= vt(scipy.version.version) <= vt("1.10.99"):
import daAlgorithms.Atoms.lbfgsb19hlt as optimiseur
else:
import scipy.optimize as optimiseur
import numpy, scipy, scipy.optimize, scipy.version
from daCore.NumericObjects import HessienneEstimation, QuantilesEstimations
+from daCore.PlatformInfo import vt
# ==============================================================================
def std3dvar(selfA, Xb, Y, U, HO, CM, R, B, __storeState = False):
nbPreviousSteps = selfA.StoredVariables["CostFunctionJ"].stepnumber()
#
if selfA._parameters["Minimizer"] == "LBFGSB":
- if "0.19" <= scipy.version.version <= "1.4.99":
+ if vt("0.19") <= vt(scipy.version.version) <= vt("1.4.99"):
import daAlgorithms.Atoms.lbfgsb14hlt as optimiseur
- elif "1.5.0" <= scipy.version.version <= "1.7.99":
+ elif vt("1.5.0") <= vt(scipy.version.version) <= vt("1.7.99"):
import daAlgorithms.Atoms.lbfgsb17hlt as optimiseur
- elif "1.8.0" <= scipy.version.version <= "1.8.99":
+ elif vt("1.8.0") <= vt(scipy.version.version) <= vt("1.8.99"):
import daAlgorithms.Atoms.lbfgsb18hlt as optimiseur
- elif "1.9.0" <= scipy.version.version <= "1.9.99":
+ elif vt("1.9.0") <= vt(scipy.version.version) <= vt("1.10.99"):
import daAlgorithms.Atoms.lbfgsb19hlt as optimiseur
else:
import scipy.optimize as optimiseur
import numpy, scipy, scipy.optimize, scipy.version
from daCore.NumericObjects import ForceNumericBounds, ApplyBounds
-from daCore.PlatformInfo import PlatformInfo
+from daCore.PlatformInfo import PlatformInfo, vt
mpr = PlatformInfo().MachinePrecision()
mfp = PlatformInfo().MaximumPrecision()
nbPreviousSteps = selfA.StoredVariables["CostFunctionJ"].stepnumber()
#
if selfA._parameters["Minimizer"] == "LBFGSB":
- if "0.19" <= scipy.version.version <= "1.4.99":
+ if vt("0.19") <= vt(scipy.version.version) <= vt("1.4.99"):
import daAlgorithms.Atoms.lbfgsb14hlt as optimiseur
- elif "1.5.0" <= scipy.version.version <= "1.7.99":
+ elif vt("1.5.0") <= vt(scipy.version.version) <= vt("1.7.99"):
import daAlgorithms.Atoms.lbfgsb17hlt as optimiseur
- elif "1.8.0" <= scipy.version.version <= "1.8.99":
+ elif vt("1.8.0") <= vt(scipy.version.version) <= vt("1.8.99"):
import daAlgorithms.Atoms.lbfgsb18hlt as optimiseur
- elif "1.9.0" <= scipy.version.version <= "1.9.99":
+ elif vt("1.9.0") <= vt(scipy.version.version) <= vt("1.10.99"):
import daAlgorithms.Atoms.lbfgsb19hlt as optimiseur
else:
import scipy.optimize as optimiseur
import numpy, scipy, scipy.optimize, scipy.version
from daCore.NumericObjects import HessienneEstimation, QuantilesEstimations
from daCore.NumericObjects import RecentredBounds
-from daCore.PlatformInfo import PlatformInfo
+from daCore.PlatformInfo import PlatformInfo, vt
mpr = PlatformInfo().MachinePrecision()
# ==============================================================================
nbPreviousSteps = selfA.StoredVariables["CostFunctionJ"].stepnumber()
#
if selfA._parameters["Minimizer"] == "LBFGSB":
- if "0.19" <= scipy.version.version <= "1.4.99":
+ if vt("0.19") <= vt(scipy.version.version) <= vt("1.4.99"):
import daAlgorithms.Atoms.lbfgsb14hlt as optimiseur
- elif "1.5.0" <= scipy.version.version <= "1.7.99":
+ elif vt("1.5.0") <= vt(scipy.version.version) <= vt("1.7.99"):
import daAlgorithms.Atoms.lbfgsb17hlt as optimiseur
- elif "1.8.0" <= scipy.version.version <= "1.8.99":
+ elif vt("1.8.0") <= vt(scipy.version.version) <= vt("1.8.99"):
import daAlgorithms.Atoms.lbfgsb18hlt as optimiseur
- elif "1.9.0" <= scipy.version.version <= "1.9.99":
+ elif vt("1.9.0") <= vt(scipy.version.version) <= vt("1.10.99"):
import daAlgorithms.Atoms.lbfgsb19hlt as optimiseur
else:
import scipy.optimize as optimiseur
Vector = None,
VectorSerie = None,
):
- "Interface unique de definition de variables d'entrees par argument"
+ "Interface unique de définition de variables d'entrées par argument"
self.__case.register("set",dir(),locals(),None,True)
try:
if Concept in ("Background", "CheckingPoint", "ControlInput", "Observation"):
Stored = False,
Scheduler = None,
Checked = False):
- "Definition d'un concept de calcul"
+ "Définition d'un concept de calcul"
Concept = "Background"
self.__case.register("set"+Concept, dir(), locals())
self.__adaoObject[Concept] = State(
Stored = False,
Scheduler = None,
Checked = False):
- "Definition d'un concept de calcul"
+ "Définition d'un concept de calcul"
Concept = "CheckingPoint"
self.__case.register("set"+Concept, dir(), locals())
self.__adaoObject[Concept] = State(
Stored = False,
Scheduler = None,
Checked = False):
- "Definition d'un concept de calcul"
+ "Définition d'un concept de calcul"
Concept = "ControlInput"
self.__case.register("set"+Concept, dir(), locals())
self.__adaoObject[Concept] = State(
Stored = False,
Scheduler = None,
Checked = False):
- "Definition d'un concept de calcul"
+ "Définition d'un concept de calcul"
Concept = "Observation"
self.__case.register("set"+Concept, dir(), locals())
self.__adaoObject[Concept] = State(
Stored = False,
ObjectMatrix = None,
Checked = False):
- "Definition d'un concept de calcul"
+ "Définition d'un concept de calcul"
Concept = "BackgroundError"
self.__case.register("set"+Concept, dir(), locals())
self.__adaoObject[Concept] = Covariance(
Stored = False,
ObjectMatrix = None,
Checked = False):
- "Definition d'un concept de calcul"
+ "Définition d'un concept de calcul"
Concept = "ObservationError"
self.__case.register("set"+Concept, dir(), locals())
self.__adaoObject[Concept] = Covariance(
Stored = False,
ObjectMatrix = None,
Checked = False):
- "Definition d'un concept de calcul"
+ "Définition d'un concept de calcul"
Concept = "EvolutionError"
self.__case.register("set"+Concept, dir(), locals())
self.__adaoObject[Concept] = Covariance(
PerformanceProfile = None,
InputFunctionAsMulti = False,
Checked = False):
- "Definition d'un concept de calcul"
+ "Définition d'un concept de calcul"
Concept = "ObservationOperator"
self.__case.register("set"+Concept, dir(), locals())
self.__adaoObject[Concept] = FullOperator(
PerformanceProfile = None,
InputFunctionAsMulti = False,
Checked = False):
- "Definition d'un concept de calcul"
+ "Définition d'un concept de calcul"
Concept = "EvolutionModel"
self.__case.register("set"+Concept, dir(), locals())
self.__adaoObject[Concept] = FullOperator(
PerformanceProfile = None,
InputFunctionAsMulti = False,
Checked = False):
- "Definition d'un concept de calcul"
+ "Définition d'un concept de calcul"
Concept = "ControlModel"
self.__case.register("set"+Concept, dir(), locals())
self.__adaoObject[Concept] = FullOperator(
return 0
def setName(self, String=None):
- "Definition d'un concept de calcul"
+ "Définition d'un concept de calcul"
self.__case.register("setName",dir(),locals())
if String is not None:
self.__name = str(String)
self.__StoredInputs["Name"] = self.__name
def setDirectory(self, String=None):
- "Definition d'un concept de calcul"
+ "Définition d'un concept de calcul"
self.__case.register("setDirectory",dir(),locals())
if os.path.isdir(os.path.abspath(str(String))):
self.__directory = os.path.abspath(str(String))
Algorithm = None,
Parameters = None,
Script = None):
- "Definition d'un concept de calcul"
+ "Définition d'un concept de calcul"
Concept = "AlgorithmParameters"
self.__case.register("set"+Concept, dir(), locals())
self.__adaoObject[Concept] = AlgorithmAndParameters(
def updateAlgorithmParameters(self,
Parameters = None,
Script = None):
- "Mise a jour d'un concept de calcul"
+ "Mise à jour d'un concept de calcul"
Concept = "AlgorithmParameters"
if Concept not in self.__adaoObject or self.__adaoObject[Concept] is None:
raise ValueError("\n\nNo algorithm registred, set one before updating parameters or executing\n")
Algorithm = None,
Parameters = None,
Script = None):
- "Definition d'un concept de calcul"
+ "Définition d'un concept de calcul"
Concept = "RegulationParameters"
self.__case.register("set"+Concept, dir(), locals())
self.__adaoObject[Concept] = RegulationAndParameters(
def setSupplementaryParameters(self,
Parameters = None,
Script = None):
- "Definition d'un concept de calcul"
+ "Définition d'un concept de calcul"
Concept = "SupplementaryParameters"
self.__case.register("set"+Concept, dir(), locals())
self.__adaoObject[Concept] = ExternalParameters(
def updateSupplementaryParameters(self,
Parameters = None,
Script = None):
- "Mise a jour d'un concept de calcul"
+ "Mise à jour d'un concept de calcul"
Concept = "SupplementaryParameters"
if Concept not in self.__adaoObject or self.__adaoObject[Concept] is None:
self.__adaoObject[Concept] = ExternalParameters(name = Concept)
Info = None,
ObjectFunction = None,
Scheduler = None):
- "Definition d'un concept de calcul"
+ "Définition d'un concept de calcul"
Concept = "Observer"
self.__case.register("set"+Concept, dir(), locals())
self.__adaoObject[Concept].append( DataObserver(
Variable = None,
ObjectFunction = None,
):
- "Permet de retirer un observer à une ou des variable nommée"
+ "Permet de retirer un observer à une ou des variable nommées"
if "AlgorithmParameters" not in self.__adaoObject:
raise ValueError("No algorithm registred, ask for one before removing observers")
#
Template = None,
String = None,
Script = None):
- "Definition d'un concept de calcul"
+ "Définition d'un concept de calcul"
Concept = "UserPostAnalysis"
self.__case.register("set"+Concept, dir(), locals())
self.__adaoObject[Concept].append( repr(UserScript(
# -----------------------------------------------------------
def get(self, Concept=None, noDetails=True ):
- "Recuperation d'une sortie du calcul"
+ "Récupération d'une sortie du calcul"
if Concept is not None:
try:
self.__case.register("get", dir(), locals(), Concept) # Break pickle in Python 2
logging.debug("%s Taille mémoire utilisée de %.0f Mio"%(self._name, self._m.getUsedMemory("Mio")))
self._getTimeState(reset=True)
#
- # Mise a jour des paramètres internes avec le contenu de Parameters, en
+ # Mise à jour des paramètres internes avec le contenu de Parameters, en
# reprenant les valeurs par défauts pour toutes celles non définies
self.__setParameters(Parameters, reset=True)
for k, v in self.__variable_names_not_public.items():
def run(self, Xb=None, Y=None, H=None, M=None, R=None, B=None, Q=None, Parameters=None):
"""
- Doit implémenter l'opération élémentaire de calcul d'assimilation sous
- sa forme mathématique la plus naturelle possible.
+ Doit implémenter l'opération élémentaire de calcul algorithmique.
"""
- raise NotImplementedError("Mathematical assimilation calculation has not been implemented!")
+ raise NotImplementedError("Mathematical algorithmic calculation has not been implemented!")
def defineRequiredParameter(self,
name = None,
asDict = None,
asScript = None,
):
- "Mise a jour des parametres"
+ "Mise à jour des paramètres"
if asDict is None and asScript is not None:
__Dict = Interfaces.ImportFromScript(asScript).getvalue( self.__name, "Parameters" )
else:
# ==============================================================================
class ExternalParameters(object):
"""
- Classe générale d'interface de type texte de script utilisateur
+ Classe générale d'interface pour le stockage des paramètres externes
"""
def __init__(self,
name = "GenericExternalParameters",
asDict = None,
asScript = None,
):
- "Mise a jour des parametres"
+ "Mise à jour des paramètres"
if asDict is None and asScript is not None:
__Dict = Interfaces.ImportFromScript(asScript).getvalue( self.__name, "ExternalParameters" )
else:
__seen = set()
return [x for x in __sequence if x not in __seen and not __seen.add(x)]
+def vt( __version ):
+ "Version transformée pour comparaison robuste, obtenue comme un tuple"
+ serie = []
+ for sv in re.split("[_.+-]", __version):
+ serie.append(sv.zfill(6))
+ return tuple(serie)
+
def isIterable( __sequence, __check = False, __header = "" ):
"""
Vérification que l'argument est un itérable interne.