From bd4f56d0a3c7e91682d6bf449a828e5e605daac8 Mon Sep 17 00:00:00 2001 From: Jean-Philippe ARGAUD Date: Tue, 1 Oct 2013 14:53:29 +0200 Subject: [PATCH] Updating copyright and tests information --- src/daComposant/daCore/AssimilationStudy.py | 66 --- src/daComposant/daCore/Logging.py | 22 - src/daComposant/daCore/Persistence.py | 519 ------------------ src/daComposant/daCore/PlatformInfo.py | 39 -- src/daComposant/daCore/version.py | 4 +- .../daNumerics/ApproximatedDerivatives.py | 133 +---- src/daComposant/daNumerics/mmqr.py | 36 +- 7 files changed, 37 insertions(+), 782 deletions(-) diff --git a/src/daComposant/daCore/AssimilationStudy.py b/src/daComposant/daCore/AssimilationStudy.py index 7640288..25f9593 100644 --- a/src/daComposant/daCore/AssimilationStudy.py +++ b/src/daComposant/daCore/AssimilationStudy.py @@ -1008,69 +1008,3 @@ class AssimilationStudy: # ============================================================================== if __name__ == "__main__": print '\n AUTODIAGNOSTIC \n' - - ADD = AssimilationStudy("Ma premiere etude BLUE") - - ADD.setBackground (asVector = [0, 1, 2]) - ADD.setBackgroundError (asCovariance = "1 0 0;0 1 0;0 0 1") - ADD.setObservation (asVector = [0.5, 1.5, 2.5]) - ADD.setObservationError (asCovariance = "1 0 0;0 1 0;0 0 1") - ADD.setObservationOperator(asMatrix = "1 0 0;0 1 0;0 0 1") - - ADD.setAlgorithm(choice="Blue") - - ADD.analyze() - - print "Nombre d'analyses :", ADD.get("Analysis").stepnumber() - print "Ebauche :", [0, 1, 2] - print "Observation :", [0.5, 1.5, 2.5] - print "Demi-somme :", list((numpy.array([0, 1, 2])+numpy.array([0.5, 1.5, 2.5]))/2) - print " qui doit être identique à :" - print "Analyse résultante :", ADD.get("Analysis")[0] - print - - print "Algorithmes disponibles.......................:", ADD.get_available_algorithms() - # print " Chemin des algorithmes.....................:", ADD.get_algorithms_main_path() - print "Diagnostics types disponibles.................:", ADD.get_available_diagnostics() - # print " Chemin des diagnostics.....................:", ADD.get_diagnostics_main_path() - print "Variables disponibles.........................:", ADD.get_available_variables() - print - - print "Paramètres requis par algorithme :" - for algo in ADD.get_available_algorithms(): - tmpADD = AssimilationStudy("Un algorithme") - tmpADD.setAlgorithm(choice=algo) - print " %25s : %s"%(algo,tmpADD.getAlgorithmParameters()) - del tmpADD - print - - ADD.setDiagnostic("RMS", "Ma RMS") - - liste = ADD.get().keys() - liste.sort() - print "Variables et diagnostics nommés disponibles...:", liste - - print - print "Exemple de mise en place d'un observeur :" - def obs(var=None,info=None): - print " ---> Mise en oeuvre de l'observer" - print " var =",var[-1] - print " info =",info - ADD.setDataObserver( 'Analysis', HookFunction=obs, Scheduler = [2, 4], HookParameters = "Second observer") - # Attention, il faut décaler le stockage de 1 pour suivre le pas interne - # car le pas 0 correspond à l'analyse ci-dessus. - for i in range(1,6): - print - print "Action sur la variable observée, étape :",i - ADD.get('Analysis').store( [i, i, i] ) - print - - print "Mise en debug et hors debug" - print "Nombre d'analyses :", ADD.get("Analysis").stepnumber() - ADD.setDebug() - ADD.analyze() - ADD.unsetDebug() - print "Nombre d'analyses :", ADD.get("Analysis").stepnumber() - ADD.analyze() - print "Nombre d'analyses :", ADD.get("Analysis").stepnumber() - print diff --git a/src/daComposant/daCore/Logging.py b/src/daComposant/daCore/Logging.py index d96eea0..860f77b 100644 --- a/src/daComposant/daCore/Logging.py +++ b/src/daComposant/daCore/Logging.py @@ -141,25 +141,3 @@ class Logging: # ============================================================================== if __name__ == "__main__": print '\n AUTODIAGNOSTIC \n' - import os.path - - l = Logging(level = logging.NOTSET) - - logging.info("Message numéro 1 uniquement disponible sur console") - - l.setLogfile(level = logging.WARNING) - if not os.path.isfile(LOGFILE): - raise ValueError("Le fichier de log \"%s\" n'a pas pu être créé."%LOGFILE) - - logging.info("Message numéro 2 uniquement disponible sur console") - logging.warning("Message numéro 3 conjointement disponible sur console et fichier") - - l.setLogfileLevel(logging.INFO) - - logging.info("Message numéro 4 conjointement disponible sur console et fichier") - - print - print " Le logging a été correctement initialisé. Le fichier suivant" - print " %s"%os.path.basename(LOGFILE) - print " a été correctement créé, et peut être effacé après vérification." - print diff --git a/src/daComposant/daCore/Persistence.py b/src/daComposant/daCore/Persistence.py index 1ddd4f6..403214d 100644 --- a/src/daComposant/daCore/Persistence.py +++ b/src/daComposant/daCore/Persistence.py @@ -878,522 +878,3 @@ class CompositePersistence: # ============================================================================== if __name__ == "__main__": print '\n AUTODIAGNOSTIC \n' - - OBJ = Persistence() - OBJ.store( 2) - OBJ.store( 3, Campagne="GR514") - OBJ.store( 4, Campagne="GR514") - OBJ.store( 5, Campagne="GR514") - OBJ.store( 6, Campagne="CA206", CDF="c020") - OBJ.store( 7, Campagne="GR514") - OBJ.store( 8, Campagne="GR514", CDF="c020") - OBJ.store( 9, Campagne="GR514", CDF="c020", BU=100.5) - print - print OBJ - print - print "Nombre d'items stockés..........................:", len(OBJ) - print - print "Mots-clé utilisés...............................:", OBJ.tagkeys() - print - print "Obtention de valeurs, clefs, items en fonction du filtrage" - print """ OBJ.values()................................:""", OBJ.values() - print """ OBJ.values(Campagne="GR514")................:""", OBJ.values(Campagne="GR514") - print """ OBJ.values(Campagne="c020").................:""", OBJ.values(Campagne="c020") - print """ OBJ.values(CDF="c020")......................:""", OBJ.values(CDF="c020") - print """ OBJ.values(Campagne="GR514",CDF="c020").....:""", OBJ.values(Campagne="GR514",CDF="c020") - print """ OBJ.values(Campagne=("GR514","CA206").......:""", OBJ.values(Campagne=("GR514","CA206")) - print - print """ OBJ.keys()..................................:""", OBJ.keys() - print """ OBJ.keys(Campagne="GR514")..................:""", OBJ.keys(Campagne="GR514") - print """ OBJ.keys(Campagne="c020")...................:""", OBJ.keys(Campagne="c020") - print """ OBJ.keys(CDF="c020")........................:""", OBJ.keys(CDF="c020") - print """ OBJ.keys(Campagne="GR514",CDF="c020").......:""", OBJ.keys(Campagne="GR514",CDF="c020") - print """ OBJ.keys(Campagne=("GR514","CA206").........:""", OBJ.keys(Campagne=("GR514","CA206")) - print - print """ OBJ.items().................................:""", OBJ.items() - print """ OBJ.items(Campagne="GR514").................:""", OBJ.items(Campagne="GR514") - print """ OBJ.items(Campagne="c020")..................:""", OBJ.items(Campagne="c020") - print """ OBJ.items(CDF="c020").......................:""", OBJ.items(CDF="c020") - print """ OBJ.items(Campagne="GR514",CDF="c020")......:""", OBJ.items(Campagne="GR514",CDF="c020") - print """ OBJ.items(Campagne=("GR514","CA206")........:""", OBJ.items(Campagne=("GR514","CA206")) - print - print "Obtention de valeurs de clefs particulières en fonction du filtrage" - print """ OBJ.keys("Campagne")........................:""", OBJ.keys("Campagne") - print """ OBJ.keys("CDF").............................:""", OBJ.keys("CDF") - print """ OBJ.keys("CDF",Campagne="GR514")............:""", OBJ.keys("CDF",Campagne="GR514") - print """ OBJ.keys("Campagne",CDF="c020").............:""", OBJ.keys("Campagne",CDF="c020") - print """ OBJ.keys("CDF",CDF="c020")..................:""", OBJ.keys("CDF",CDF="c020") - print """ OBJ.keys("BU")..............................:""", OBJ.keys("BU") - print """ OBJ.keys("CDF",Campagne=("GR514","CA206")...:""", OBJ.keys("CDF",Campagne=("GR514","CA206")) - print - print """ OBJ.items("Campagne").......................:""", OBJ.items("Campagne") - print """ OBJ.items("CDF")............................:""", OBJ.items("CDF") - print """ OBJ.items("CDF",Campagne="GR514")...........:""", OBJ.items("CDF",Campagne="GR514") - print """ OBJ.items("Campagne",CDF="c020")............:""", OBJ.items("Campagne",CDF="c020") - print """ OBJ.items("CDF",CDF="c020").................:""", OBJ.items("CDF",CDF="c020") - print """ OBJ.items("BU").............................:""", OBJ.items("BU") - print """ OBJ.items("CDF",Campagne=("GR514","CA206")..:""", OBJ.items("CDF",Campagne=("GR514","CA206")) - print - print "Obtention de valeurs comme dans une liste" - print """ OBJ[0]......................................:""", OBJ[0] - print """ OBJ[1]......................................:""", OBJ[1] - print """ OBJ[-1].....................................:""", OBJ[-1] - print """ OBJ[2:4]....................................:""", OBJ[2:4] - print """ OBJ[:]......................................:""", OBJ[:] - print """ len(OBJ)....................................:""", len(OBJ) - print """ OBJ.count(4)................................:""", OBJ.count("4") - print """ OBJ.index(4)................................:""", OBJ.index("4") - print """ OBJ.index(9)................................:""", OBJ.index("9") - print - - print "======> Un flottant" - OBJET_DE_TEST = OneScalar("My float", unit="cm") - OBJET_DE_TEST.store( 5.) - OBJET_DE_TEST.store(-5.) - OBJET_DE_TEST.store( 1.) - print "Les pas de stockage :", OBJET_DE_TEST.stepserie() - print "Les valeurs :", OBJET_DE_TEST[:] - print "La 2ème valeur :", OBJET_DE_TEST[1] - print "La dernière valeur :", OBJET_DE_TEST[-1] - print "Valeurs par pas :" - print " La moyenne :", OBJET_DE_TEST.means() - print " L'écart-type :", OBJET_DE_TEST.stds() - print " La somme :", OBJET_DE_TEST.sums() - print " Le minimum :", OBJET_DE_TEST.mins() - print " Le maximum :", OBJET_DE_TEST.maxs() - print "Valeurs globales :" - print " La moyenne :", OBJET_DE_TEST.mean() - print " L'écart-type :", OBJET_DE_TEST.std() - print " La somme :", OBJET_DE_TEST.sum() - print " Le minimum :", OBJET_DE_TEST.min() - print " Le maximum :", OBJET_DE_TEST.max() - print " La somme cumulée :", OBJET_DE_TEST.cumsum() - print "Taille \"shape\" :", OBJET_DE_TEST.shape() - print "Taille \"len\" :", len(OBJET_DE_TEST) - del OBJET_DE_TEST - print - - print "======> Un flottant" - OBJET_DE_TEST = OneScalar("My float", unit="cm") - OBJET_DE_TEST.store( 5., step="azerty") - OBJET_DE_TEST.store(-5., step="poiuyt") - OBJET_DE_TEST.store( 1., step="azerty") - OBJET_DE_TEST.store( 0., step="xxxxxx") - OBJET_DE_TEST.store( 5., step="poiuyt") - OBJET_DE_TEST.store(-5., step="azerty") - OBJET_DE_TEST.store( 1., step="poiuyt") - print "Les noms de pas :", OBJET_DE_TEST.keys("step") - print "Les valeurs :", OBJET_DE_TEST[:] - print "La 2ème valeur :", OBJET_DE_TEST[1] - print "La dernière valeur :", OBJET_DE_TEST[-1] - print "Valeurs identiques :", OBJET_DE_TEST.values( step = "azerty" ) - print "Valeurs identiques :", OBJET_DE_TEST.values( step = "poiuyt" ) - del OBJET_DE_TEST - print - - print "======> Un entier" - OBJET_DE_TEST = OneScalar("My int", unit="cm", basetype=int) - OBJET_DE_TEST.store( 5 ) - OBJET_DE_TEST.store(-5 ) - OBJET_DE_TEST.store( 1.) - print "Les pas de stockage :", OBJET_DE_TEST.stepserie() - print "Les valeurs :", OBJET_DE_TEST[:] - print "La 2ème valeur :", OBJET_DE_TEST[1] - print "La dernière valeur :", OBJET_DE_TEST[-1] - print "Valeurs par pas :" - print " La moyenne :", OBJET_DE_TEST.means() - print " L'écart-type :", OBJET_DE_TEST.stds() - print " La somme :", OBJET_DE_TEST.sums() - print " Le minimum :", OBJET_DE_TEST.mins() - print " Le maximum :", OBJET_DE_TEST.maxs() - print "Valeurs globales :" - print " La moyenne :", OBJET_DE_TEST.mean() - print " L'écart-type :", OBJET_DE_TEST.std() - print " La somme :", OBJET_DE_TEST.sum() - print " Le minimum :", OBJET_DE_TEST.min() - print " Le maximum :", OBJET_DE_TEST.max() - print " La somme cumulée :", OBJET_DE_TEST.cumsum() - print "Taille \"shape\" :", OBJET_DE_TEST.shape() - print "Taille \"len\" :", len(OBJET_DE_TEST) - del OBJET_DE_TEST - print - - print "======> Un booléen" - OBJET_DE_TEST = OneScalar("My bool", unit="", basetype=bool) - OBJET_DE_TEST.store( True ) - OBJET_DE_TEST.store( False ) - OBJET_DE_TEST.store( True ) - print "Les pas de stockage :", OBJET_DE_TEST.stepserie() - print "Les valeurs :", OBJET_DE_TEST[:] - print "La 2ème valeur :", OBJET_DE_TEST[1] - print "La dernière valeur :", OBJET_DE_TEST[-1] - print "Taille \"shape\" :", OBJET_DE_TEST.shape() - print "Taille \"len\" :", len(OBJET_DE_TEST) - del OBJET_DE_TEST - print - - print "======> Un vecteur de flottants" - OBJET_DE_TEST = OneVector("My float vector", unit="cm") - OBJET_DE_TEST.store( (5 , -5) ) - OBJET_DE_TEST.store( (-5, 5 ) ) - OBJET_DE_TEST.store( (1., 1.) ) - print "Les pas de stockage :", OBJET_DE_TEST.stepserie() - print "Les valeurs :", OBJET_DE_TEST[:] - print "La 2ème valeur :", OBJET_DE_TEST[1] - print "La dernière valeur :", OBJET_DE_TEST[-1] - print "Valeurs par pas :" - print " La moyenne :", OBJET_DE_TEST.means() - print " L'écart-type :", OBJET_DE_TEST.stds() - print " La somme :", OBJET_DE_TEST.sums() - print " Le minimum :", OBJET_DE_TEST.mins() - print " Le maximum :", OBJET_DE_TEST.maxs() - print "Valeurs globales :" - print " La moyenne :", OBJET_DE_TEST.mean() - print " L'écart-type :", OBJET_DE_TEST.std() - print " La somme :", OBJET_DE_TEST.sum() - print " Le minimum :", OBJET_DE_TEST.min() - print " Le maximum :", OBJET_DE_TEST.max() - print " La somme cumulée :", OBJET_DE_TEST.cumsum() - print "Taille \"shape\" :", OBJET_DE_TEST.shape() - print "Taille \"len\" :", len(OBJET_DE_TEST) - del OBJET_DE_TEST - print - - print "======> Une liste hétérogène" - OBJET_DE_TEST = OneList("My list", unit="bool/cm") - OBJET_DE_TEST.store( (True , -5) ) - OBJET_DE_TEST.store( (False, 5 ) ) - OBJET_DE_TEST.store( (True , 1.) ) - print "Les pas de stockage :", OBJET_DE_TEST.stepserie() - print "Les valeurs :", OBJET_DE_TEST[:] - print "La 2ème valeur :", OBJET_DE_TEST[1] - print "La dernière valeur :", OBJET_DE_TEST[-1] - print "Valeurs par pas : attention, on peut les calculer car True=1, False=0, mais cela n'a pas de sens" - print " La moyenne :", OBJET_DE_TEST.means() - print " L'écart-type :", OBJET_DE_TEST.stds() - print " La somme :", OBJET_DE_TEST.sums() - print " Le minimum :", OBJET_DE_TEST.mins() - print " Le maximum :", OBJET_DE_TEST.maxs() - print "Valeurs globales : attention, on peut les calculer car True=1, False=0, mais cela n'a pas de sens" - print " La moyenne :", OBJET_DE_TEST.mean() - print " L'écart-type :", OBJET_DE_TEST.std() - print " La somme :", OBJET_DE_TEST.sum() - print " Le minimum :", OBJET_DE_TEST.min() - print " Le maximum :", OBJET_DE_TEST.max() - print " La somme cumulée :", OBJET_DE_TEST.cumsum() - print "Taille \"shape\" :", OBJET_DE_TEST.shape() - print "Taille \"len\" :", len(OBJET_DE_TEST) - del OBJET_DE_TEST - print - - print "======> Utilisation directe de la classe Persistence" - OBJET_DE_TEST = Persistence("My object", unit="", basetype=int ) - OBJET_DE_TEST.store( 1 ) - OBJET_DE_TEST.store( 3 ) - OBJET_DE_TEST.store( 7 ) - print "Les pas de stockage :", OBJET_DE_TEST.stepserie() - print "Les valeurs :", OBJET_DE_TEST[:] - print "La 2ème valeur :", OBJET_DE_TEST[1] - print "La dernière valeur :", OBJET_DE_TEST[-1] - print "Taille \"shape\" :", OBJET_DE_TEST.shape() - print "Taille \"len\" :", len(OBJET_DE_TEST) - del OBJET_DE_TEST - print - - print "======> Utilisation des méthodes d'accès de type dictionnaire" - OBJET_DE_TEST = OneScalar("My int", unit="cm", basetype=int) - for i in range(5): - OBJET_DE_TEST.store( 7+i ) - print "Taille \"len\" :", len(OBJET_DE_TEST) - print "Les clés absentes :", OBJET_DE_TEST.keys() - print "Les valeurs :", OBJET_DE_TEST.values() - print "Les paires :", OBJET_DE_TEST.items() - OBJET_DE_TEST.pop(1) - print "Les valeurs sans la 1:", OBJET_DE_TEST.values() - OBJET_DE_TEST.pop(item=2) - print "Les valeurs sans la 2:", OBJET_DE_TEST.values() - del OBJET_DE_TEST - print - - print "======> Persistence composite" - OBJET_DE_TEST = CompositePersistence("My CompositePersistence") - print "Objets stockables :", OBJET_DE_TEST.get_stored_objects() - print "Objets actifs :", OBJET_DE_TEST.get_stored_objects( hideVoidObjects = True ) - print "--> Stockage d'une valeur de Background" - OBJET_DE_TEST.store("Background",numpy.zeros(5)) - print "Objets actifs :", OBJET_DE_TEST.get_stored_objects( hideVoidObjects = True ) - print "--> Ajout d'un objet nouveau par defaut, de type vecteur numpy par pas" - OBJET_DE_TEST.add_object("ValeursVectorielles") - OBJET_DE_TEST.store("ValeursVectorielles",numpy.zeros(5)) - print "Objets actifs :", OBJET_DE_TEST.get_stored_objects( hideVoidObjects = True ) - print "--> Ajout d'un objet nouveau de type liste par pas" - OBJET_DE_TEST.add_object("ValeursList", persistenceType=OneList ) - OBJET_DE_TEST.store("ValeursList",range(5)) - print "Objets actifs :", OBJET_DE_TEST.get_stored_objects( hideVoidObjects = True ) - print "--> Ajout d'un objet nouveau, de type vecteur string par pas" - OBJET_DE_TEST.add_object("ValeursStr", persistenceType=Persistence, basetype=str ) - OBJET_DE_TEST.store("ValeursStr","IGN3") - OBJET_DE_TEST.store("ValeursStr","c021") - print "Les valeurs :", OBJET_DE_TEST.get_object("ValeursStr")[:] - print "Acces comme dict :", OBJET_DE_TEST["ValeursStr"].stepserie() - print "Acces comme dict :", OBJET_DE_TEST["ValeursStr"][:] - print "Objets actifs :", OBJET_DE_TEST.get_stored_objects( hideVoidObjects = True ) - print "--> Suppression d'un objet" - OBJET_DE_TEST.del_object("ValeursVectorielles") - print "Objets actifs :", OBJET_DE_TEST.get_stored_objects( hideVoidObjects = True ) - print "--> Enregistrement de l'objet complet de Persistence composite" - OBJET_DE_TEST.save_composite("composite.pkl", compress="None") - print - - print "======> Affichage graphique d'objets stockés" - OBJET_DE_TEST = Persistence("My object", unit="", basetype=numpy.array) - D = OBJET_DE_TEST - vect1 = [1, 2, 1, 2, 1] - vect2 = [-3, -3, 0, -3, -3] - vect3 = [-1, 1, -5, 1, -1] - vect4 = 100*[0.29, 0.97, 0.73, 0.01, 0.20] - print "Stockage de 3 vecteurs de longueur identique" - D.store(vect1) - D.store(vect2) - D.store(vect3) - print "Affichage graphique de l'ensemble du stockage sur une même image" - D.plot( - title = "Tous les vecteurs", - filename="vecteurs.ps", - xlabel = "Axe X", - ylabel = "Axe Y", - pause = False ) - print "Stockage d'un quatrième vecteur de longueur différente" - D.store(vect4) - print "Affichage graphique séparé du dernier stockage" - D.plots( - item = 3, - title = "Vecteurs", - filename = "vecteur", - xlabel = "Axe X", - ylabel = "Axe Y", - pause = False ) - print "Les images ont été stockées en fichiers Postscript" - print "Taille \"shape\" du dernier objet stocké",OBJET_DE_TEST.shape() - print "Taille \"len\" du dernier objet stocké",len(OBJET_DE_TEST) - del OBJET_DE_TEST - print - - print "======> Affichage graphique dynamique d'objets" - OBJET_DE_TEST = Persistence("My object", unit="", basetype=float) - D = OBJET_DE_TEST - D.plots( - dynamic = True, - title = "Valeur suivie", - xlabel = "Pas", - ylabel = "Valeur", - pause = False, - ) - for i in range(1,11): - D.store( i*i ) - print "Taille \"shape\" du dernier objet stocké",OBJET_DE_TEST.shape() - print "Nombre d'objets stockés",len(OBJET_DE_TEST) - del OBJET_DE_TEST - print - - print "======> Affectation simple d'observateurs dynamiques" - def obs(var=None,info=None): - print " ---> Mise en oeuvre de l'observer" - print " var =",var[-1] - print " info =",info - OBJET_DE_TEST = Persistence("My object", unit="", basetype=list) - D = OBJET_DE_TEST - D.setDataObserver( HookFunction = obs ) - for i in range(5): - # print - print "Action de 1 observer sur la variable observée, étape :",i - D.store( [i, i, i] ) - del OBJET_DE_TEST - print - - print "======> Affectation multiple d'observateurs dynamiques" - def obs(var=None,info=None): - print " ---> Mise en oeuvre de l'observer" - print " var =",var[-1] - print " info =",info - def obs_bis(var=None,info=None): - print " ---> Mise en oeuvre de l'observer" - print " var =",var[-1] - print " info =",info - OBJET_DE_TEST = Persistence("My object", unit="", basetype=list) - D = OBJET_DE_TEST - D.setDataObserver( - HookFunction = obs, - Scheduler = [2, 4], - HookParameters = "Premier observer", - ) - D.setDataObserver( - HookFunction = obs, - Scheduler = xrange(1,3), - HookParameters = "Second observer", - ) - D.setDataObserver( - HookFunction = obs_bis, - Scheduler = range(1,3)+range(7,9), - HookParameters = "Troisième observer", - ) - for i in range(5): - print "Action de 3 observers sur la variable observée, étape :",i - D.store( [i, i, i] ) - D.removeDataObserver( - HookFunction = obs, - ) - for i in range(5,10): - print "Action d'un seul observer sur la variable observée, étape :",i - D.store( [i, i, i] ) - del OBJET_DE_TEST - print - - print "======> Utilisation des tags/attributs et stockage puis récupération de l'ensemble" - OBJET_DE_TEST = CompositePersistence("My CompositePersistence", defaults=False) - OBJET_DE_TEST.add_object("My ecarts", basetype = numpy.array) - - OBJET_DE_TEST.store( "My ecarts", numpy.arange(1,5), Camp="Base", Carte="IGN3", Niveau=1024, Palier="Premier" ) - OBJET_DE_TEST.store( "My ecarts", numpy.arange(1,5)+1, Camp="Base", Carte="IGN4", Niveau= 210, Palier="Premier" ) - OBJET_DE_TEST.store( "My ecarts", numpy.arange(1,5)+2, Camp="Base", Carte="IGN1", Niveau=1024 ) - OBJET_DE_TEST.store( "My ecarts", numpy.arange(1,5)+3, Camp="Sommet", Carte="IGN2", Niveau=4024, Palier="Second", FullMap=True ) - - print "Les pas de stockage :", OBJET_DE_TEST["My ecarts"].stepserie() - print "Les valeurs :", OBJET_DE_TEST["My ecarts"][:] - print "La 2ème valeur :", OBJET_DE_TEST["My ecarts"][1] - print "La dernière valeur :", OBJET_DE_TEST["My ecarts"][-1] - print "Liste des attributs :", OBJET_DE_TEST["My ecarts"].tagserie() - print "Taille \"shape\" :", OBJET_DE_TEST["My ecarts"].shape() - print "Taille \"len\" :", len(OBJET_DE_TEST["My ecarts"]) - print - - print "Pas pour tag :", OBJET_DE_TEST["My ecarts"].stepserie( Palier="Premier" ) - print "Valeurs pour tag :", OBJET_DE_TEST["My ecarts"].values( Palier="Premier" ) - print - print "Pas pour tag :", OBJET_DE_TEST["My ecarts"].stepserie( Carte="IGN1" ) - print "Pas pour tag :", OBJET_DE_TEST["My ecarts"].stepserie( Niveau=1024 ) - print "Pas pour tag :", OBJET_DE_TEST["My ecarts"].stepserie( Camp="Base" ) - print "Pas pour tag :", OBJET_DE_TEST["My ecarts"].stepserie( Camp="TOTO" ) - print "Pas pour tag :", OBJET_DE_TEST["My ecarts"].stepserie( Toto="Premier" ) - print "Pas pour tag :", OBJET_DE_TEST["My ecarts"].stepserie( Carte="IGN1" ) - print - - print "Combinaison 'ET' de plusieurs Tags" - print "Attendu : [0, 1], trouvé :",OBJET_DE_TEST["My ecarts"].stepserie( Camp="Base", Palier="Premier" ) - print "Attendu : [], trouvé :",OBJET_DE_TEST["My ecarts"].stepserie( Camp="Sommet", Palier="Premier" ) - print "Attendu : [3], trouvé :",OBJET_DE_TEST["My ecarts"].stepserie( Camp="Sommet" ) - print "Attendu : [2], trouvé :",OBJET_DE_TEST["My ecarts"].stepserie( Carte="IGN1", Niveau=1024 ) - print - - print "Liste des tags pour le pas (item) 1 :",OBJET_DE_TEST["My ecarts"].tagserie(item = 1) - print "Liste des tags pour le pas (item) 2 :",OBJET_DE_TEST["My ecarts"].tagserie(item = 2) - print - print "Liste des tags/valeurs pour le pas 1 :",OBJET_DE_TEST["My ecarts"].tagserie(item = 1, withValues=True) - print "Liste des tags/valeurs pour le pas 2 :",OBJET_DE_TEST["My ecarts"].tagserie(item = 2, withValues=True) - print - - print "Liste des valeurs possibles pour 1 tag donné 'Camp' :",OBJET_DE_TEST["My ecarts"].tagserie(outputTag="Camp") - print "Liste des valeurs possibles pour 1 tag donné 'Toto' :",OBJET_DE_TEST["My ecarts"].tagserie(outputTag="Toto") - print "Liste des valeurs possibles pour 1 tag donné 'Niveau' :",OBJET_DE_TEST["My ecarts"].tagserie(outputTag="Niveau") - print - - OBJET_DE_TEST.add_object("My other ecarts", basetype = numpy.array) - OBJET_DE_TEST.store( "My other ecarts", numpy.arange(-1,5), Camp="Base", Carte="IGN3",Niveau=1024,Palier="Premier" ) - OBJET_DE_TEST.store( "My other ecarts", numpy.arange(-1,5)+1, Camp="Base", Carte="IGN4",Niveau= 210,Palier="Premier" ) - OBJET_DE_TEST.store( "My other ecarts", numpy.arange(-1,5)+2, Camp="Base", Carte="IGN1",Niveau=1024 ) - OBJET_DE_TEST.store( "My other ecarts", numpy.arange(-1,5)+3, Camp="Sommet",Carte="IGN2",Niveau=4024,Palier="Second" ) - - print "Objets présents dans le composite :",OBJET_DE_TEST.get_stored_objects() - fichier = "composite.pkl.gz" - print "Sauvegarde sur \"%s\"..."%fichier - OBJET_DE_TEST.save_composite( fichier ) - print "Effacement de l'objet en memoire" - del OBJET_DE_TEST - print - - print "Relecture de l'objet sur \"%s\"..."%fichier - OBJET_DE_TEST = CompositePersistence("My CompositePersistence bis", defaults=False) - OBJET_DE_TEST.load_composite( fichier ) - print "Objets présents dans le composite :",OBJET_DE_TEST.get_stored_objects() - print "Taille des objets contenus :" - for name in OBJET_DE_TEST.get_stored_objects(): - print " Objet \"%s\" : taille unitaire de %i"%(name,len(OBJET_DE_TEST[name][-1])) - - print - print "Les pas de stockage :", OBJET_DE_TEST["My ecarts"].stepserie() - print "Les valeurs :", OBJET_DE_TEST["My ecarts"][:] - print "La 2ème valeur :", OBJET_DE_TEST["My ecarts"][1] - print "La dernière valeur :", OBJET_DE_TEST["My ecarts"][-1] - print "Liste des attributs :", OBJET_DE_TEST["My ecarts"].tagserie() - print "Taille \"shape\" :", OBJET_DE_TEST["My ecarts"].shape() - print "Taille \"len\" :", len(OBJET_DE_TEST["My ecarts"]) - print - - print "Pas pour tag :", OBJET_DE_TEST["My ecarts"].stepserie( Palier="Premier" ) - print "Valeurs pour tag :", OBJET_DE_TEST["My ecarts"].values( Palier="Premier" ) - print - print "Pas pour tag :", OBJET_DE_TEST["My ecarts"].stepserie( Carte="IGN1" ) - print "Pas pour tag :", OBJET_DE_TEST["My ecarts"].stepserie( Niveau=1024 ) - print "Pas pour tag :", OBJET_DE_TEST["My ecarts"].stepserie( Camp="Base" ) - print "Pas pour tag :", OBJET_DE_TEST["My ecarts"].stepserie( Camp="TOTO" ) - print "Pas pour tag :", OBJET_DE_TEST["My ecarts"].stepserie( Toto="Premier" ) - print "Pas pour tag :", OBJET_DE_TEST["My ecarts"].stepserie( Carte="IGN1" ) - print - #import sys ; sys.exit() - print "Attributs :", OBJET_DE_TEST["My ecarts"].tagserie() - print "Attributs pour tag filtré :", OBJET_DE_TEST["My ecarts"].tagserie( Camp="Base" ) - print "Attributs pour tag filtré :", OBJET_DE_TEST["My ecarts"].tagserie( Niveau=4024 ) - print - print "Attributs et valeurs :", OBJET_DE_TEST["My ecarts"].tagserie( withValues=True ) - print "Attributs et valeurs pour tag filtré :", OBJET_DE_TEST["My ecarts"].tagserie( withValues=True, Camp="Base" ) - print "Attributs et valeurs pour tag filtré :", OBJET_DE_TEST["My ecarts"].tagserie( withValues=True, Niveau=4024 ) - print - print "Valeur d'attribut pour un tag donné 'BU' :", OBJET_DE_TEST["My ecarts"].tagserie( outputTag = "Niveau" ) - print "Valeur d'attribut pour un tag donné 'BU' filtré :", OBJET_DE_TEST["My ecarts"].tagserie( outputTag = "Niveau", Camp="Base" ) - print "Valeur d'attribut pour un tag donné 'BU' filtré :", OBJET_DE_TEST["My ecarts"].tagserie( outputTag = "Niveau", Palier="Second" ) - print "Valeur d'attribut pour un tag donné 'Camp' filtré :", OBJET_DE_TEST["My ecarts"].tagserie( outputTag = "Camp", Palier="Premier" ) - print "Valeur d'attribut pour un tag donné 'Carte' filtré :", OBJET_DE_TEST["My ecarts"].tagserie( outputTag = "Carte", Palier="Premier" ) - print "Valeur d'attribut pour un tag donné 'Carte' filtré :", OBJET_DE_TEST["My ecarts"].tagserie( outputTag = "Carte", Palier="Premier", Niveau=4024 ) - print "Valeur d'attribut pour un tag donné 'Carte' filtré :", OBJET_DE_TEST["My ecarts"].tagserie( outputTag = "Carte", Palier="Premier", Niveau=210 ) - print - - print "======> Cas d'erreur" - OBJET_DE_TEST = OneScalar("My float", unit="cm") - OBJET_DE_TEST.store( 5., step="azerty") - OBJET_DE_TEST.store(-5., step="poiuyt") - OBJET_DE_TEST.store( 1., step="azerty") - OBJET_DE_TEST.store( 0., step="xxxxxx") - OBJET_DE_TEST.store( 5., step="poiuyt") - OBJET_DE_TEST.store(-5., step="azerty") - OBJET_DE_TEST.store( 1., step="poiuyt") - print "Les pas de stockage :", OBJET_DE_TEST.stepserie() - print "Les valeurs :", OBJET_DE_TEST[:] - print "La 2ème valeur :", OBJET_DE_TEST[1] - print "La dernière valeur :", OBJET_DE_TEST[-1] - print "Valeurs 'azerty' :", OBJET_DE_TEST.values( step = "azerty" ) - print "Valeurs 'poiuyt' :", OBJET_DE_TEST.values( step = "poiuyt" ) - print - print "Nombre de valeurs :", len(OBJET_DE_TEST) - try: - x = OBJET_DE_TEST[7] - print "La 8ème valeur :", x - except IndexError, e: - print "Erreur correcte :",e - try: - x = OBJET_DE_TEST[7] - print "La 8ème valeur :", x - except IndexError, e: - print "Erreur correcte :",e - print - - print "======> Impression d'objet Persistence" - OBJET_DE_TEST = OneScalar("My float", unit="cm") - OBJET_DE_TEST.store( 5., step="azerty") - OBJET_DE_TEST.store(-5., step="poiuyt") - OBJET_DE_TEST.store( 1., step="azerty") - OBJET_DE_TEST.store( 0., step="xxxxxx") - OBJET_DE_TEST.store( 5., step="poiuyt") - OBJET_DE_TEST.store(-5., step="azerty") - OBJET_DE_TEST.store( 1., step="poiuyt") - print OBJET_DE_TEST - print diff --git a/src/daComposant/daCore/PlatformInfo.py b/src/daComposant/daCore/PlatformInfo.py index d392991..3288934 100644 --- a/src/daComposant/daCore/PlatformInfo.py +++ b/src/daComposant/daCore/PlatformInfo.py @@ -209,42 +209,3 @@ class SystemUsage: # ============================================================================== if __name__ == "__main__": print '\n AUTODIAGNOSTIC \n' - - print PlatformInfo() - print - p = PlatformInfo() - print "Les caractéristiques détaillées des applications et outils sont :" - print " - Application.......:",p.getName() - print " - Version...........:",p.getVersion() - print " - Date Application..:",p.getDate() - print " - Python............:",p.getPythonVersion() - print " - Numpy.............:",p.getNumpyVersion() - print " - Scipy.............:",p.getScipyVersion() - print - - p = PathManagement() - print "Les chemins ajoutés au système pour des outils :" - for k,v in p.getpaths().items(): - print " %12s : %s"%(k,os.path.basename(v)) - print - - m = SystemUsage() - print "La mémoire disponible est la suivante :" - print " - mémoire totale....: %4.1f Mo"%m.getAvailableMemory("Mo") - print " - mémoire physique..: %4.1f Mo"%m.getAvailablePhysicalMemory("Mo") - print " - mémoire swap......: %4.1f Mo"%m.getAvailableSwapMemory("Mo") - print " - utilisable........: %4.1f Mo"%m.getUsableMemory("Mo") - print "L'usage mémoire de cette exécution est le suivant :" - print " - mémoire résidente.: %4.1f Mo"%m.getUsedMemory("Mo") - print " - mémoire virtuelle.: %4.1f Mo"%m.getVirtualMemory("Mo") - print " - taille de stack...: %4.1f Mo"%m.getUsedStacksize("Mo") - print "Création d'un objet range(1000000) et mesure mémoire" - x = range(1000000) - print " - mémoire totale....: %4.1f Mo"%m.getUsedMemory("Mo") - print "Destruction de l'objet et mesure mémoire" - del x - print " - mémoire totale....: %4.1f Mo"%m.getUsedMemory("Mo") - print "L'usage mémoire maximal de cette exécution est le suivant :" - print " - mémoire résidente.: %4.1f Mo"%m.getMaxUsedMemory("Mo") - print " - mémoire virtuelle.: %4.1f Mo"%m.getMaxVirtualMemory("Mo") - print diff --git a/src/daComposant/daCore/version.py b/src/daComposant/daCore/version.py index 9bbd88c..e3f6a93 100644 --- a/src/daComposant/daCore/version.py +++ b/src/daComposant/daCore/version.py @@ -21,5 +21,5 @@ # Author: Jean-Philippe Argaud, jean-philippe.argaud@edf.fr, EDF R&D name = "Data Assimilation Package" -version = "0.7.0" -date = "mardi 30 avril 2013, 12:12:12 (UTC+0100)" +version = "0.8.0" +date = "jeudi 31 octobre 2013, 12:12:12 (UTC+0100)" diff --git a/src/daComposant/daNumerics/ApproximatedDerivatives.py b/src/daComposant/daNumerics/ApproximatedDerivatives.py index 35a96d0..bdf9d86 100644 --- a/src/daComposant/daNumerics/ApproximatedDerivatives.py +++ b/src/daComposant/daNumerics/ApproximatedDerivatives.py @@ -1,24 +1,24 @@ #-*-coding:iso-8859-1-*- # -# Copyright (C) 2008-2013 EDF R&D +# Copyright (C) 2008-2013 EDF R&D # -# This library is free software; you can redistribute it and/or -# modify it under the terms of the GNU Lesser General Public -# License as published by the Free Software Foundation; either -# version 2.1 of the License. +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License. # -# This library is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -# Lesser General Public License for more details. +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. # -# You should have received a copy of the GNU Lesser General Public -# License along with this library; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # -# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # -# Author: Jean-Philippe Argaud, jean-philippe.argaud@edf.fr, EDF R&D +# Author: Jean-Philippe Argaud, jean-philippe.argaud@edf.fr, EDF R&D __doc__ = """ Définit les versions approximées des opérateurs tangents et adjoints. @@ -265,109 +265,6 @@ class FDApproximation: _HaY = numpy.dot(_JacobienneT, _Y) return _HaY.A1 -# ============================================================================== -# -def test1( XX ): - """ Direct non-linear simulation operator """ - # - # NEED TO BE COMPLETED - # NEED TO BE COMPLETED - # NEED TO BE COMPLETED - # - # --------------------------------------> # EXAMPLE TO BE REMOVED - # Example of Identity operator # EXAMPLE TO BE REMOVED - if type(XX) is type(numpy.matrix([])): # EXAMPLE TO BE REMOVED - HX = XX.A1.tolist() # EXAMPLE TO BE REMOVED - elif type(XX) is type(numpy.array([])): # EXAMPLE TO BE REMOVED - HX = numpy.matrix(XX).A1.tolist() # EXAMPLE TO BE REMOVED - else: # EXAMPLE TO BE REMOVED - HX = XX # EXAMPLE TO BE REMOVED - # # EXAMPLE TO BE REMOVED - HHX = [] # EXAMPLE TO BE REMOVED - HHX.extend( HX ) # EXAMPLE TO BE REMOVED - HHX.extend( HX ) # EXAMPLE TO BE REMOVED - # --------------------------------------> # EXAMPLE TO BE REMOVED - # - return numpy.array( HHX ) - # ============================================================================== if __name__ == "__main__": - - print - print "AUTODIAGNOSTIC" - print "==============" - - X0 = [1, 2, 3] - - FDA = FDApproximation( test1 ) - print "H(X) =", FDA.DirectOperator( X0 ) - print "Tg matrice =\n", FDA.TangentMatrix( X0 ) - print "Tg(X) =", FDA.TangentOperator( (X0, X0) ) - print "Ad((X,Y)) =", FDA.AdjointOperator( (X0,range(3,3+2*len(X0))) ) - print - del FDA - FDA = FDApproximation( test1, centeredDF=True ) - print "H(X) =", FDA.DirectOperator( X0 ) - print "Tg matrice =\n", FDA.TangentMatrix( X0 ) - print "Tg(X) =", FDA.TangentOperator( (X0, X0) ) - print "Ad((X,Y)) =", FDA.AdjointOperator( (X0,range(3,3+2*len(X0))) ) - print - del FDA - - print "==============" - print - X0 = range(5) - - FDA = FDApproximation( test1 ) - print "H(X) =", FDA.DirectOperator( X0 ) - print "Tg matrice =\n", FDA.TangentMatrix( X0 ) - print "Tg(X) =", FDA.TangentOperator( (X0, X0) ) - print "Ad((X,Y)) =", FDA.AdjointOperator( (X0,range(7,7+2*len(X0))) ) - print - del FDA - FDA = FDApproximation( test1, centeredDF=True ) - print "H(X) =", FDA.DirectOperator( X0 ) - print "Tg matrice =\n", FDA.TangentMatrix( X0 ) - print "Tg(X) =", FDA.TangentOperator( (X0, X0) ) - print "Ad((X,Y)) =", FDA.AdjointOperator( (X0,range(7,7+2*len(X0))) ) - print - del FDA - - print "==============" - print - X0 = numpy.arange(3) - - FDA = FDApproximation( test1 ) - print "H(X) =", FDA.DirectOperator( X0 ) - print "Tg matrice =\n", FDA.TangentMatrix( X0 ) - print "Tg(X) =", FDA.TangentOperator( (X0, X0) ) - print "Ad((X,Y)) =", FDA.AdjointOperator( (X0,range(7,7+2*len(X0))) ) - print - del FDA - FDA = FDApproximation( test1, centeredDF=True ) - print "H(X) =", FDA.DirectOperator( X0 ) - print "Tg matrice =\n", FDA.TangentMatrix( X0 ) - print "Tg(X) =", FDA.TangentOperator( (X0, X0) ) - print "Ad((X,Y)) =", FDA.AdjointOperator( (X0,range(7,7+2*len(X0))) ) - print - del FDA - - print "==============" - print - X0 = numpy.asmatrix(numpy.arange(4)).T - - FDA = FDApproximation( test1 ) - print "H(X) =", FDA.DirectOperator( X0 ) - print "Tg matrice =\n", FDA.TangentMatrix( X0 ) - print "Tg(X) =", FDA.TangentOperator( (X0, X0) ) - print "Ad((X,Y)) =", FDA.AdjointOperator( (X0,range(7,7+2*len(X0))) ) - print - del FDA - FDA = FDApproximation( test1, centeredDF=True ) - print "H(X) =", FDA.DirectOperator( X0 ) - print "Tg matrice =\n", FDA.TangentMatrix( X0 ) - print "Tg(X) =", FDA.TangentOperator( (X0, X0) ) - print "Ad((X,Y)) =", FDA.AdjointOperator( (X0,range(7,7+2*len(X0))) ) - print - del FDA - + print '\n AUTODIAGNOSTIC \n' diff --git a/src/daComposant/daNumerics/mmqr.py b/src/daComposant/daNumerics/mmqr.py index 1395fcb..8ba175c 100644 --- a/src/daComposant/daNumerics/mmqr.py +++ b/src/daComposant/daNumerics/mmqr.py @@ -1,27 +1,31 @@ #-*-coding:iso-8859-1-*- # -# Copyright (C) 2008-2013 EDF R&D +# Copyright (C) 2008-2013 EDF R&D # -# This library is free software; you can redistribute it and/or -# modify it under the terms of the GNU Lesser General Public -# License as published by the Free Software Foundation; either -# version 2.1 of the License. +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License. # -# This library is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -# Lesser General Public License for more details. +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. # -# You should have received a copy of the GNU Lesser General Public -# License along with this library; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # -# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # +# Author: Jean-Philippe Argaud, jean-philippe.argaud@edf.fr, EDF R&D -# L'algorithme est base sur la publication : David R. Hunter, Kenneth Lange, -# "Quantile Regression via an MM Algorithm", Journal of Computational and -# Graphical Statistics, 9, 1, pp.60-77, 2000 +__doc__ = """ + Implémentation informatique de l'algorithme MMQR, basée sur la publication : + David R. Hunter, Kenneth Lange, "Quantile Regression via an MM Algorithm", + Journal of Computational and Graphical Statistics, 9, 1, pp.60-77, 2000. +""" +__author__ = "Jean-Philippe ARGAUD" import sys, math from numpy import sum, array, matrix, dot, linalg, asarray, asmatrix, ravel -- 2.39.2