1 / 35

Formation au logiciel SCILAB

Formation au logiciel SCILAB. 23 mars 2006. Programme. Notions de base Fonctionnement de SCILAB Entrer une commande QQ points importants Installer HYDROGR Importer / Exporter des données Lire / Ecrire dans des fichiers textes Lire dans des fichiers Excel Traiter des données

rex
Download Presentation

Formation au logiciel SCILAB

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Formation au logiciel SCILAB 23 mars 2006

  2. Programme • Notions de base • Fonctionnement de SCILAB • Entrer une commande • QQ points importants • Installer HYDROGR • Importer / Exporter des données • Lire / Ecrire dans des fichiers textes • Lire dans des fichiers Excel • Traiter des données • Fonctions utiles dans SCILAB • qq fonction de la boîte à outil HYDROGR >> Mise en pratique

  3. Programme • Faire des graphiques 2d • Graphiques simple 2d • Titres, légendes et style des courbes • Dates en abscisses • Graphiques « carrés » • Exporter au format GIF >> Mise en pratique • HYDROGR • GR4J • Réseaux de neurones

  4. Exemples

  5. Notions de base Nom de l’événement + date

  6. Fonctionnement de SCILAB • SCILAB = • Prompteur en ligne de commande • Editeur de Script • Des fonctions • Une aide pour chq fonctions • SCILAB est • Gratuit • Développé par l’INRIA • Comparable à MATLAB • Basé sur un langage interprété (proche du Cen bcp plus simple) • CASE SENSITIVE !

  7. Entrer une commande • Utiliser le prompteur • Taper la commande • Valider par entrée • Ecrire un script • Taper scipad() dans le prompteur >> éditeur de script • L’exécuter .. pour cela on peut • Soit taper [Ctrl] + l dans l’éditeur de script • Soit taper exec( [ Nom du fichier contenant le script ] ) dans le prompteur --> a = ones(10,5) • -> b = 10 * a’ • -> scipad( )

  8. Quelques points importants • Ajouter des commentaires  // • Lancer l’aide  help • Eviter un affichage sur le prompteur  ; • Transposée d’une matrice  ‘ • Génération de vecteurs  : • Fin de vecteur  $ • Matrice  [ ] --> // Commentaire • -> PasCommentaire = 1 • -> PasCommentaire = 1; • -> help plot2d • -> a = 1:100 • -> b = 1:0.01:100 • -> c = 100:-1:1 • -> a2= a’ • -> u = a($-10) • -> A = [[1 2];[3 4]]

  9. Installer HYDROGR • Télécharger le fichier HYDROGRv00.zip(http://lerat.julien.free.fr log=test pwd=essai) • Dezipper dans le répertoire C:\Program Files\Scilab 3.1.1\contrib\ • Supprimer le fichier loader.sce qui se trouve dans C:\Program Files\Scilab 3.1.1\contrib\ • Remplacer par le fichier loader.sce qui se trouve dans le répertoire HYDROGRv00 • Lancer SCILAB

  10. Installer HYDROGR Dans SCILAB, l’écran doit être le suivant

  11. Importer / Exporter des données Nom de l’événement + date

  12. Cas simple >> données numériques • Ouvrir un fichier texte et récupérer une matrice SCILAB = fscanfMat • Imprimer une matrice SCILAB dans un fichier texte = fprintfMat --> // Lire des donnees numeriques --> Chem = ‘C:\essai\’; --> D1 = fscanfMat(Chem + ‘DATA1.DAT’); • -> D1 • -> plot2d(D1(:,2),D1(:,3)) • -> // Ecrire dans un fichier texte • T = rand(200,5); --> fprintfMat(Chem + ‘T.txt’,T);

  13. Cas + complexe >> texte + numérique • Ouvrir le fichier avec mopen • Imprimer ou lire dans le fichier avec mfprintf et mfscanf et mgetl • Fermer le fichier avec mclose --> // Récupère les lignes --> fdat = mopen(Chem + 'DATA2.DAT','r'); --> Txt = mgetl(fdat); --> mclose(fdat); --> Txt=Txt(4:$); --> // Analyse des lignes --> [n,Code1,Sta,Jour,Q,Code2,Code3] = msscanf(-1,Txt,'%3s;%8s;%d;%f;%c;%d\n');

  14. Lire des données dans Excel • Instruction readxls --> Feuille = readxls(Chem + 'DATA1.xls'); --> Dxls = Feuille(1).value; --> Dxls = Dxls(2:$,:);

  15. Traiter des données Nom de l’événement + date

  16. Quelques instructions utiles • size : taille d’une matrice • for … end : boucle for • if .. then … else : condition • find : identifier des éléments dans une matrice • mean : moyenne par colonne ou par ligne • st_deviation : Ec. type par colonne ou par ligne • zeros : générer une matrice de zeros • ones : générer une matrice de 1 • diag : matrice carrée à partir d’une diagonale • rand : générer une matrice de nb aléatoires • execstr : évaluer une expression SCILAB • convol : convolution discrète (>> HU) • corr : auto-corrélation, corrélation croisée • gsort : trier les éléments d’une matrice • linear_interpn : Interpolation linéaire

  17. Exemples --> D1 = fscanfMat(Chem + ‘DATA1.DAT’); --> Nligne = size(D1,1); // Nb de lignes dans D1 --> // Trouver les forts débits --> Icrue = find(D1(:,3)>20); // Q > 20 mm • -> // Moyenne et écart type des forts débits et ETP • -> Stat = [mean(D1(Icrue,[3,4]),’r’) ; ... st_deviation(D1(Icrue,[3,4]),’r’) ] • -> // Normer les forts débits et les pluies • -> NORM = D1(:,[3,4]) - ones(Nligne,1)*Stat(1,:) • -> NORM = NORM * diag(Stat(2,:).^(-1))

  18. A vous de jouer …. Nom de l’événement + date

  19. Faire des graphiques Nom de l’événement + date

  20. Qq notions sur les graphiques SCILAB Légende (legend) Fenêtre graphique (figure) Graphique (axes) Courbe (polyline) Titres

  21. Les fonctions clefs • plot2d : Génération d’un graphique • plot2d2 : Génération d’un graphique « palier » • clf() : « Nettoyage » de la fenêtre active • xset(‘window’,N) : Ouvre une figure (n°=N) • get(‘current_figure’) : récupère les propriétés de la fenêtre active • gca() : récupère les propriétés du graphique actif • get(‘hdl’): récupère les prop. de la courbe active • xtitle : ajoute un titre général et sur chaque axe • legends : ajoute une légende • xs2gif : exporte une figure au format GIF • axes_properties : liste des propriétés des graphiques (dans l’aide) • polyline_properties : liste des propriétés des courbes (dans l’aide)

  22. Les options utiles de la fonction plot2d • rect : Définition de la fenêtre d’affichage • [minX, minY, maxX, maxY] • style : définition de l’allure des courbe • 1, 2,… Courbe en trait plein avec diff couleurs • -1,-2,… Représentation par point (diff. marqueurs) • logflag : échelle log ou non • nn Graph normal • nl X normal, Y log --> y = rand(100,1); --> x = (1:100)’; --> plot2d(x,y,rect=[30,-2,60,2],style=-9) --> plot2d(x,100*y,logflag=‘nl’)

  23. Graphiques simple 2d • Faire un graphique pluie / débit avec la pluie en axe inversé --> D1 = fscanfMat(Chem + ‘DATA1.DAT’); --> Id = 1000; If = 1300; // Limitation de la plage --> Q = D1(Id:If,3); P = D1(Id:If,5); --> plot2d (Id:If,Q, style=1,rect=[Id,0,If,100]) --> plot2d2(Id:If,100-P,style=2,rect=[Id,0,If,100]) Nom de l’événement + date

  24. Titres, légendes et style des courbes --> D1 = fscanfMat(Chem + ‘DATA1.DAT’); --> Id = 1000; If = 1300; // Limitation de la plage --> Q = D1(Id:If,3); P = D1(Id:If,5); --> plot2d (Id:If,Q, style=1,rect=[Id,0,If,100]) --> plot2d2(Id:If,100-P,style=2,rect=[Id,0,If,100]) --> xtitle (‘Hydrogramme’,’’,’Q (mm)’) --> legends([‘Q’;’P’],1:2,1) --> gr = gca(); --> gr.children(2).children.line_style=2; // Pointillés --> Nom de l’événement + date

  25. Dates en abscisses • Besoin fréquent = Ajouter une date en abscisse • >>>> Fonction de la boîte à outil HYDROGR • c_CONVDATE : Conversion date Excel numérique / format AAAAMMJJhhmm • SERIEDATE : Génére une série de date à pas constant --> // Conversion de 3/1/96 12:56 en nombre --> a = c_CONVDATE(0,199601031256); --> // Conversion de 31450.333 en date --> b = c_CONVDATE(1,31450.3333) --> Annee = int(b/10^8) // récupère l’année Nom de l’événement + date

  26. Dates en abscisses --> // Récupération des dates (Annee, Mois et Jour) --> DT = D1(Id:If,1); --> Jr=int(DT/10^6); Mo=int(DT/10^4)-Jr*100; --> An=DT-Mo*10^4-Jr*10^6; --> // Conversion --> DTx = c_CONVDATE(0,An*10^8+Mo*10^6+Jr*10^4); --> //Tracé du graph et ajout des dates en abscisse --> plot2d (DTx,Q) --> gr = gca(); --> [eq eqx]=SERIEDATE(DTx(1),DTx($),‘m',2,1); --> gr.auto_ticks=['off','on']; --> XTK=tlist(['ticks','locations','labels'],eq,eqx); --> gr.x_ticks=XTK; --> xgrid(2); Nom de l’événement + date

  27. Graphiques « carrés » + export en GIF • Propriété « isoview » du graphique --> plot2d (rand(100,1),rand(100,1),style=-9) --> plot2d ([0,1],[0,1],style=2); --> gr = gca(); --> gr.isoview=‘on’; --> fig = get(‘current_figure’); --> fig.figure_size = [500,500]; --> // Export --> xs2gif(0,Chem + ‘FIG_CARRE.gif’); Nom de l’événement + date

  28. Plusieurs graphiques par fenêtres • subplot : « Quadrillage » de la figure par plusieurs graphiques Nb de Grph ds la largeur N° du graph dessiné Nb de Grph ds la hauteur --> subplot(2,2,1) --> plot2d (rand(100,1),rand(100,1),style=-9) --> subplot(2,2,2) --> plot2d ([0,1],[0,1],style=2); --> subplot(2,2,3) --> plot2d (sin(1:100)); Nom de l’événement + date

  29. A vous de jouer …. Nom de l’événement + date

  30. La boîte à outil HYDROGR Nom de l’événement + date

  31. Calage de GR4J • De l’aide --> help HYDROGRv00 • c_GR4J : Simulation avec GR4J (codé en C) --> D1 = fscanfMat(‘C:\essai\DATA1.DAT’); --> Q = D1(:,3); P = D1(:,5); E = D1(:,4); --> // Définition des paramètres --> X = [500;0;60;1]; --> // Lancement de la simulation --> Qsim = c_GR4J(24,X,P,E); --> // Graph de résultat --> plot2d([Q Qsim]); Pluie Pas de temps ETP Paramètres Nom de l’événement + date

  32. Calage de GR4J • PasaPas : Méthode pas à pas • Etape 1 = Définir une fonction objectif • Etape 2 = Définir une valeur initiale des paramètres • Etape 3 = Lancer la fonction PasaPas Nom de l’événement + date

  33. Calage de GR4J Fction objectif • PasaPas : Méthode pas à pas --> D1 = fscanfMat(‘C:\essai\DATA1.DAT’); --> Q = D1(:,3); P = D1(:,5); E = D1(:,4); --> // Définition de la fonction objectif --> deff('C2M=FctObj(Xt)',... --> ‘X(1)=exp(Xt(1)); X(2)=sinh(Xt(2));’ + … --> ‘X(3)=exp(Xt(3)); X(4)=exp(Xt(4));’ + … --> ‘Qsim = c_GR4J(24,X,P,E);’ + … --> ‘t=CRIT(Q(365:$),Qsim(365:$)); C2M = -t(3);’) --> // Calage --> Xtini = [log(500);0;log(50);log(1)]; --> [Xt,RES] = PasaPas(‘FctObj’,X); --> X = [exp(Xt(1));sinh(Xt(2));exp(Xt(3));exp(Xt(4))]; Nom de l’événement + date

  34. Réseaux de neurones… • Un autre jour…. Nom de l’événement + date

  35. A vous de jouer …. Nom de l’événement + date

More Related