Merci Sigrid, Pour le moment j'étais plutôt parti sur la première méthode, c'est ce qui m'a paru le plus naturel, mais j'ai coincé sur le remplissage de la matrice. Je vais essayer avec la boucle! Bastien -----Message d'origine----- De : isis-fish-users-bounces@list.isis-fish.org [mailto:isis-fish-users-bounces@list.isis-fish.org] De la part de Sigrid LEHUTA Envoyé : Thursday, November 18, 2010 3:27 PM À : isis-fish-users@list.isis-fish.org Objet : Re: [Isis-fish-users] Calibration avec différenctiation des métiers / charger une matrice 3D Salut Bastien, oui bien sur c est possible ! mais la methode que je connais est un peu laborieuse accroche toi ! 1) tu crees et charges tes 3 matrices 2D matMetier0, matMetier1, matMetier2 2) tu crees une matrice 3D vide : (je mets metier en dim 2 comme dans L) int [] dimMatrix = {12,3,10}; matrixDebarquement =MatrixFactory.getInstance().create(dimMatrix); et ensuite je pense que la seule methode c est de la remplir valeur par valeur par une boucle en allant chercher les valeurs dans les 3 matrices. for( MatrixIterator i=matrixDebarquement.iterator(); i.hasNext();){ i.next(); int [] coco = i.getCoordinates(); if (coco[1] == 0){ i.setValue(matMetier0.getValue(coco[0],coco[2])) }else if (coco[1] == 1){ etc. Ca ca marche mais attention car l ordre des metiers 0, 1 et 2 doit etre le meme que dans la matrice L. Donc soit tu fais auparavent une boucle sur L et tu fais afficher le nom du metier et les coordonnées pour connaitre l ordre soit tu construis la matrice debarquement avec des semantics : MatrixFactory.getInstance().create( "matrixDebarquement",new List[]{dates, metiers, groups}, new String[]{"Dates","Metiers","Groups"}); où dates, metiers et groups sont des list des objets. On en reparle si tu choisis cette option ! A++ Bastien PREUSS a écrit :
Bonjour,
Jaimerais réaliser une calibration en prenant en compte les différents métiers, c'est-à-dire sans sommer les captures sur les métiers.
Pour la matrice L des captures simulées il ne semble pas problématique de conserver la dimension correspondante aux métiers et de ne pas faire la somme sur cette dimension (ligne 340 du script), mais concernant la matrice des observations qui est importée au départ, comment peut ont importer une matrice à plus de 2 dimensions ? ou à la limite importer plusieurs matrices à 2 dimensions ?
Dans mon script jai créé la matrice de la façon suivante :
/////*** specify dimention of the matrix containning observations (observed landings for instance)
/////*** numbers of group/columns : could be equal to your number of classes in ISIS but may also be different if your had only aggregated data
int nbGroup = 10;
/////*** enter number of observation per year (if you have observation by quarter put 4) / lines of the observations file
int nbTrim = nbYear * 12;
/////*** enter the number of métiers
int nbMet = 3;
int[] dimMatrix = {nbMet, nbTrim, nbGroup };
matrixDebarquement = MatrixFactory.getInstance().create(dimMatrix);
//matrixDebarquement = MatrixFactory.getInstance().create(new int[]{nbGroup});
// List<PopulationGroup> groups = pop.getPopulationGroup();
// matrixDebarquement = MatrixFactory.getInstance().create(new List[]{groups});
matrixDebarquement.importCSV(new FileReader(debarquementsObserves), new int[] {0, 0, 0 });
log.info("MatrixDebarquement : " + matrixDebarquement);
//db.closeContext();
}
Mais je narrive pas à faire un import qui convienne pour fixer « debarquementsObserves » avant, qui est créés comme suis à lorigine dans le script :
public String param_nomfichier_debarquements = "C:/Documents and
Settings/bpreuss/Desktop/These_ISIS_Noumea/Parametrage/Calibration/obsMet.cs v";//in
row : time ; in columns : age or length group
protected File debarquementsObserves;
protected MatrixND matrixDebarquement;
Est-ce que quelquun aurait déjà fait ça, ou saurait comment faire ?
Merci.
Bastien
------------------------------------------------------------------------
_______________________________________________ Isis-fish-users mailing list Isis-fish-users@list.isis-fish.org http://list.isis-fish.org/cgi-bin/mailman/listinfo/isis-fish-users
-- Sigrid LEHUTA ~ ><> ~ Doctorante Département Ecologie et Modèles pour l'Halieutique IFREMER, rue de l'ile d'Yeu BP 21105 44311 Nantes Cedex 03 Tél : +33 (0)2 40 37 41 23 (interne : 8123) _______________________________________________ Isis-fish-users mailing list Isis-fish-users@list.isis-fish.org http://list.isis-fish.org/cgi-bin/mailman/listinfo/isis-fish-users