[Isis-fish-users] Calibration avec différenctiation des métiers / charger une matrice 3D

Bastien PREUSS bastien.preuss at ifremer.fr
Jeu 18 Nov 15:30:48 CET 2010


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 at list.isis-fish.org
[mailto:isis-fish-users-bounces at list.isis-fish.org] De la part de Sigrid
LEHUTA
Envoyé : Thursday, November 18, 2010 3:27 PM
À : isis-fish-users at 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,
> 
>  
> 
>  
> 
> J’aimerais 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 j’ai 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 n’arrive pas à faire un import qui convienne pour fixer 
> « debarquementsObserves » avant, qui est créés comme suis à l’origine 
> 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 quelqu’un aurait déjà fait ça, ou saurait comment faire ?
> 
>  
> 
> Merci.
> 
>  
> 
> Bastien
> 
>  
> 
>  
> 
>  
> 
>  
> 
>  
> 
>  
> 
>  
> 
> 
> ------------------------------------------------------------------------
> 
> _______________________________________________
> Isis-fish-users mailing list
> Isis-fish-users at 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 at list.isis-fish.org
http://list.isis-fish.org/cgi-bin/mailman/listinfo/isis-fish-users





Plus d'informations sur la liste de diffusion Isis-fish-users