Title: Diapositive 1
1Formation au logiciel SCILAB
23 mars 2006
2Programme
- 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
- gtgt Mise en pratique
3Programme
- Faire des graphiques 2d
- Graphiques simple 2d
- Titres, légendes et style des courbes
- Dates en abscisses
- Graphiques carrés
- Exporter au format GIF
- gtgt Mise en pratique
- HYDROGR
- GR4J
- Réseaux de neurones
4Exemples
5Notions de base
6Fonctionnement de SCILAB
- SCILAB
- Prompteur en ligne de commande
- Editeur de Script
- Des fonctions
- Une aide pour chq fonctions
- SCILAB est
- Gratuit
- Développé par lINRIA
- Comparable à MATLAB
- Basé sur un langage interprété (proche du Cen
bcp plus simple) - CASE SENSITIVE !
7Entrer une commande
- Utiliser le prompteur
- Taper la commande
- Valider par entrée
- Ecrire un script
- Taper scipad() dans le prompteur gtgt éditeur de
script - Lexé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
- --gt a ones(10,5)
- -gt b 10 a
- -gt scipad( )
8Quelques points importants
- Ajouter des commentaires ? //
- Lancer laide ? help
- Eviter un affichage sur le prompteur ?
- Transposée dune matrice ?
- Génération de vecteurs ?
- Fin de vecteur ?
- Matrice ?
- --gt // Commentaire
- -gt PasCommentaire 1
- -gt PasCommentaire 1
- -gt help plot2d
- -gt a 1100
- -gt b 10.01100
- -gt c 100-11
- -gt a2 a
- -gt u a(-10)
- -gt A 1 23 4
9Installer HYDROGR
- Télécharger le fichier HYDROGRv00.zip(http//lera
t.julien.free.fr logtest pwdessai) - 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
10Installer HYDROGR
- Dans SCILAB, lécran doit être le suivant
11Importer / Exporter des données
12Cas simple gtgt 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
- --gt // Lire des donnees numeriques
- --gt Chem C\essai\
- --gt D1 fscanfMat(Chem DATA1.DAT)
- -gt D1
- -gt plot2d(D1(,2),D1(,3))
- -gt // Ecrire dans un fichier texte
- T rand(200,5)
- --gt fprintfMat(Chem T.txt,T)
13Cas complexe gtgt 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
--gt // Récupère les lignes --gt fdat mopen(Chem
'DATA2.DAT','r') --gt Txt mgetl(fdat) --gt
mclose(fdat) --gt TxtTxt(4) --gt // Analyse
des lignes --gt n,Code1,Sta,Jour,Q,Code2,Code3
msscanf(-1,Txt,'3s8sdfcd\n')
14Lire des données dans Excel
--gt Feuille readxls(Chem 'DATA1.xls') --gt
Dxls Feuille(1).value --gt Dxls
Dxls(2,)
15Traiter des données
16Quelques instructions utiles
- size taille dune 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 dune diagonale
- rand générer une matrice de nb aléatoires
- execstr évaluer une expression SCILAB
- convol convolution discrète (gtgt HU)
- corr auto-corrélation, corrélation croisée
- gsort trier les éléments dune matrice
- linear_interpn Interpolation linéaire
17Exemples
- --gt D1 fscanfMat(Chem DATA1.DAT)
- --gt Nligne size(D1,1) // Nb de lignes dans D1
- --gt // Trouver les forts débits
- --gt Icrue find(D1(,3)gt20) // Q gt 20 mm
- -gt // Moyenne et écart type des forts débits et
ETP - -gt Stat mean(D1(Icrue,3,4),r) ...
st_deviation(D1(Icrue,3,4),r) - -gt // Normer les forts débits et les pluies
- -gt NORM D1(,3,4) - ones(Nligne,1)Stat(1,)
- -gt NORM NORM diag(Stat(2,).(-1))
18A vous de jouer .
19Faire des graphiques
20Qq notions sur les graphiques SCILAB
Légende (legend)
Fenêtre graphique (figure)
Graphique (axes)
Courbe (polyline)
Titres
21Les fonctions clefs
- plot2d Génération dun graphique
- plot2d2 Génération dun graphique palier
- clf() Nettoyage de la fenêtre active
- xset(window,N) Ouvre une figure (nN)
- 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 laide) - polyline_properties liste des propriétés des
courbes (dans laide)
22Les options utiles de la fonction plot2d
- rect Définition de la fenêtre daffichage
- minX, minY, maxX, maxY
- style définition de lallure 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
--gt y rand(100,1) --gt x (1100) --gt
plot2d(x,y,rect30,-2,60,2,style-9) --gt
plot2d(x,100y,logflagnl)
23Graphiques simple 2d
- Faire un graphique pluie / débit avec la pluie en
axe inversé
--gt D1 fscanfMat(Chem DATA1.DAT) --gt Id
1000 If 1300 // Limitation de la plage --gt Q
D1(IdIf,3) P D1(IdIf,5) --gt plot2d
(IdIf,Q, style1,rectId,0,If,100) --gt
plot2d2(IdIf,100-P,style2,rectId,0,If,100)
24Titres, légendes et style des courbes
--gt D1 fscanfMat(Chem DATA1.DAT) --gt Id
1000 If 1300 // Limitation de la plage --gt Q
D1(IdIf,3) P D1(IdIf,5) --gt plot2d
(IdIf,Q, style1,rectId,0,If,100) --gt
plot2d2(IdIf,100-P,style2,rectId,0,If,100) --
gt xtitle (Hydrogramme,,Q (mm)) --gt
legends(QP,12,1) --gt gr gca() --gt
gr.children(2).children.line_style2 //
Pointillés --gt
25Dates en abscisses
- Besoin fréquent Ajouter une date en abscisse
- gtgtgtgt 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
--gt // Conversion de 3/1/96 1256 en nombre --gt
a c_CONVDATE(0,199601031256) --gt //
Conversion de 31450.333 en date --gt b
c_CONVDATE(1,31450.3333) --gt Annee int(b/108)
// récupère lannée
26Dates en abscisses
--gt // Récupération des dates (Annee, Mois et
Jour) --gt DT D1(IdIf,1) --gt Jrint(DT/106)
Moint(DT/104)-Jr100 --gt AnDT-Mo104-Jr106
--gt // Conversion --gt DTx c_CONVDATE(0,An108
Mo106Jr104) --gt //Tracé du graph et ajout
des dates en abscisse --gt plot2d (DTx,Q) --gt gr
gca() --gt eq eqxSERIEDATE(DTx(1),DTx(),m',2,
1) --gt gr.auto_ticks'off','on' --gt
XTKtlist('ticks','locations','labels',eq,eqx)
--gt gr.x_ticksXTK --gt xgrid(2)
27Graphiques carrés export en GIF
- Propriété isoview du graphique
--gt plot2d (rand(100,1),rand(100,1),style-9) --gt
plot2d (0,1,0,1,style2) --gt gr gca() --gt
gr.isoviewon --gt fig get(current_figure)
--gt fig.figure_size 500,500 --gt //
Export --gt xs2gif(0,Chem FIG_CARRE.gif)
28Plusieurs 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
--gt subplot(2,2,1) --gt plot2d
(rand(100,1),rand(100,1),style-9) --gt
subplot(2,2,2) --gt plot2d (0,1,0,1,style2) -
-gt subplot(2,2,3) --gt plot2d (sin(1100))
29A vous de jouer .
30La boîte à outil HYDROGR
31Calage de GR4J
- De laide --gt help HYDROGRv00
- c_GR4J Simulation avec GR4J (codé en C)
--gt D1 fscanfMat(C\essai\DATA1.DAT) --gt Q
D1(,3) P D1(,5) E D1(,4) --gt //
Définition des paramètres --gt X
5000601 --gt // Lancement de la
simulation --gt Qsim c_GR4J(24,X,P,E) --gt //
Graph de résultat --gt plot2d(Q Qsim)
Pluie
Pas de temps
ETP
Paramètres
32Calage 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
33Calage de GR4J
Fction objectif
- PasaPas Méthode pas à pas
--gt D1 fscanfMat(C\essai\DATA1.DAT) --gt Q
D1(,3) P D1(,5) E D1(,4) --gt //
Définition de la fonction objectif --gt
deff('C2MFctObj(Xt)',... --gt X(1)exp(Xt(1))
X(2)sinh(Xt(2)) --gt X(3)exp(Xt(3))
X(4)exp(Xt(4)) --gt Qsim
c_GR4J(24,X,P,E) --gt tCRIT(Q(365),Qsim(3
65)) C2M -t(3)) --gt // Calage --gt Xtini
log(500)0log(50)log(1) --gt Xt,RES
PasaPas(FctObj,X) --gt X exp(Xt(1))sinh(Xt(
2))exp(Xt(3))exp(Xt(4))
34Réseaux de neurones
35A vous de jouer .