script calibration un seul paramètre
Hello Voici un script de calibration de la capturabilité quand il n y a qu un seul paramètre qui semble assez efficace (précision = 1/32 du pas initial en 11 simulations). A adapter aux fonctions objectif de chacun (ici captures mensuelles en poids) mais la partie algo (le before simulation) est générique. (déposé aussi sur le wiki). A+ Sigrid -- 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) package analyseplans; import static org.nuiton.i18n.I18n._; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import scripts.ResultName; import java.io.*; import java.util.*; import org.nuiton.math.matrix.*; import org.nuiton.topia.*;// pour pouvoir utiliser la methode StringUtil.toDouble() import org.nuiton.util.*;// pour pouvoir utiliser la methode StringUtil.toDouble() import fr.ifremer.isisfish.*; import fr.ifremer.isisfish.types.*; import fr.ifremer.isisfish.simulator.SimulationContext; import fr.ifremer.isisfish.types.Date; import fr.ifremer.isisfish.entities.*; import fr.ifremer.isisfish.simulator.AnalysePlan; import fr.ifremer.isisfish.simulator.AnalysePlanContext; import fr.ifremer.isisfish.simulator.SimulationParameter; import fr.ifremer.isisfish.datastore.SimulationStorage; import fr.ifremer.isisfish.datastore.ResultStorage; /** * Calibration_1parameter.java * this program computes successive values for the catchability parameter in order to minimise the sum of squarres difference between observed and simulated catches. * not generic ! comments indicate where the code must be adaptated to each fishery * * Created: 07/06/10 * * @author <> * @version $Revision: 3.2 $ * * Last update: $Date: 2007/05/24 09:29:18 $ * by : $Author: bpoussin $ */ public class Calibration_1param implements AnalysePlan { /** to use log facility, just put in your code: log.info("..."); */ static private Log log = LogFactory.getLog(Calibration_1param.class); @Doc("path and name of the file where parameter values and performance criteria are saved") public String param_nomFileHisto = "Inputs_Anchois/CalibrationSardine/histo.csv"; File exportHistoric = new File (param_nomFileHisto); protected String exportHisto = ""; @Doc("population concerned") public Population param_Population = null; @Doc("values for the 5 initial experiments in increasing order with a constant increment") public Double param_M1 = 0.98e-4;// devient un parametre du plan d analyse public Double param_M2 = 1.0e-4;// devient un parametre du plan d analyse public Double param_M3 = 1.02e-4;// devient un parametre du plan d analyse public Double param_M4 = 1.04e-4;// devient un parametre du plan d analyse public Double param_M5 = 1.06e-4;// devient un parametre du plan d analyse @Doc("path for the file that contains observed values used for calibration") public String param_nomfichier_debarquements = "Inputs_Anchois/CalibrationSardine/DebarquementsSardine.csv"; protected File debarquementsObserves; protected MatrixND matrixDebarquement; protected String[] strNomsNous; protected List<Strategy> strNous; protected List<Double> q; protected List<Double> Fobj = new ArrayList<Double>(); // TO DO : matrix containing simulated values to compare to observed values public String [] necessaryResult = { ResultName.MATRIX_CATCH_WEIGHT_PER_STRATEGY_MET_PER_ZONE_POP, }; public String[] getNecessaryResult() { return this.necessaryResult; } /** * Permet d'afficher a l'utilisateur une aide sur le plan. * @return L'aide ou la description du plan */ public String getDescription() throws Exception { return _("Single Factor Optimization from Walters et al., 1991"); } /** * Appele au demarrage de la simulation, cette methode permet d'initialiser * des valeurs * @param simulation La simulation pour lequel on utilise cette regle */ public void init(AnalysePlanContext context) throws Exception { // chargement de la matrice de valeurs observées if (param_nomfichier_debarquements==null || "".equals(param_nomfichier_debarquements)){ debarquementsObserves = FileUtil.getFile(".*.csv", "fichier csv"); } else { debarquementsObserves = new File(param_nomfichier_debarquements); } // creation of the vector of catchability values q = new ArrayList<Double>(); q.add(param_M1); q.add(param_M2); q.add(param_M3); q.add(param_M4); q.add(param_M5); // Creation of the matrix of observed values : TO DO // Here the observed values are landings (weight) per strategy per month int nbYear = context.getParam().getNumberOfYear(); List<Strategy> allStrategies = context.getParam().getStrategies(); // TO DO : names of strategies in apparition order in the file of observed landings // also used to keep only certain strategies if necessary strNomsNous = new String[]{"PelProfil1","PelProfil2","BolBasques","BolBretons"}; strNous = new ArrayList<Strategy>(); for(String strNomCurrent : strNomsNous){ for (Strategy s : allStrategies){ if(s.getName().equals(strNomCurrent)){ strNous.add(s); } } } // create the vector of dates at which catches are observed int dateFin = nbYear*12; List<Date> dates = new ArrayList<Date>(); for(int i=0; i<dateFin;i++){ dates.add(new Date(i)); } TopiaContext db = context.getParam().getRegion().getStorage().beginTransaction(); Population pop = (Population)db.findByTopiaId(param_Population.getTopiaId()); // create the matrix of observed values which correspondant dimension matrixDebarquement = MatrixFactory.getInstance().create( "matDebarq", new List[]{dates,strNous}, new String[]{"Dates","strategies"}); matrixDebarquement.importCSV(new FileReader(debarquementsObserves),new int []{0,0}); db.closeContext(); } /** * Call before each simulation * @param context plan context * @param nextSimulation storage used for next simulation * @return true if we must do next simulation, false to stop plan * @throws Exception */ public boolean beforeSimulation(AnalysePlanContext context, SimulationStorage nextSimulation) throws Exception { boolean doNext = true; int number = nextSimulation.getParameter().getAnalysePlanNumber(); log.info("before simulation" + number); // TO DO : limit the number of experiments if(number <31){ /** the rest of the code is generic, after the 5 first experiments were run, two new experiments are generated with values of q at intervals equal to one-half the original interval on either side of the best value found in the initial set. The procedure is repeted, the interval beeing halved each time. **/ double pasInitial = q.get(1)-q.get(0); if (number <5) { log.info("number<5"); changeDB(q.get(number), nextSimulation); }else if(number == 5){ int min = compareTo(Fobj); double newq = q.get(min); double pas = pasInitial/2; newq = newq - pas; q.add(newq); }else { if(!isPair(number)){ int min = compareTo(Fobj); double newq = q.get(min); int puiss = (number-3)/2; double pas = pasInitial/Math.pow(2.0,puiss); newq = newq - pas; q.add(newq); }else{ int min = compareTo(Fobj.subList(0,number-1)); double newq = q.get(min); int puiss = (number - 4)/2; double pas = pasInitial/Math.pow(2.0,puiss); newq = newq + pas; q.add(newq); } } changeDB(q.get(number), nextSimulation); }else doNext = false; return doNext; }// fin du before simulation /** * Call after each simulation, compute criteria for last simulation * @param context plan context * @param nextSimulation storage used for next simulation * @return true if we must do next simulation, false to stop plan * @throws Exception */ public boolean afterSimulation(AnalysePlanContext context, SimulationStorage lastSimulation) throws Exception { int number = lastSimulation.getParameter().getAnalysePlanNumber(); //int number = context.getNumber(); System.out.println("after simulation" + number); ResultStorage result = lastSimulation.getResultStorage(); // Pour sommer sur certaines classes les resultats : MatrixND L2 = result.getMatrix(param_Population, ResultName.MATRIX_CATCH_WEIGHT_PER_STRATEGY_MET_PER_ZONE_POP); List<Strategy> str = (List<Strategy>)L2.getSemantic(1); System.out.println("import de la matrice des debarquements"); //pour reccuperer les index des strategies francaises int comptSt = 0; int comptTab = 0; int[] elem = new int[strNous.size()]; for(Strategy st : str){ if (strNous.contains(st)){ elem[comptTab] = comptSt; comptTab +=1; } comptSt += 1; } MatrixND L = L2.getSubMatrix(1,elem).copy(); L = L.sumOverDim(3);// sum sur les groupes L = L.sumOverDim(2);// sum sur les metiers L = L.sumOverDim(4);// sum sur les zones L = L.reduce(); // supprime les dimensions de taille 0 ///////////////////Calcul de la fonction objectif////////////////// log.info("calcul de la fobj"); System.out.println("dim de L" + " " + Arrays.toString(L.getDim())); System.out.println("matrice de debarquements : "+ L); double crit = 0; for ( MatrixIterator g = L.iterator(); g.hasNext();){ g.next(); //boucle sur les dates et les flottilles Strategy s = (Strategy)g.getSemanticsCoordinates()[1]; Date dat = (Date)g.getSemanticsCoordinates()[0]; // int [] dim = g.getCoordinates(); double obs = matrixDebarquement.getValue(dat,s); double simules = g.getValue(); double sum_pond = obs-simules; crit += Math.pow(sum_pond, 2); // crit = crit + (obs-simules)^2 }// fin du for System.out.println("critere " + number + " = " + crit ); Fobj.add(crit); //ecriture de la table historic exportHisto += q.get(number) +";"+ Fobj.get(number) + "\n"; org.nuiton.util.FileUtil.writeString(exportHistoric, exportHisto); return true; }// fin du after simulation /** * Modify nextSimulation database with q1 and q2 in exp. * @param exp * @param nextSimulation * @throws Exception */ protected void changeDB(Double q, SimulationStorage nextSimulation) throws Exception { //methode appelee dans before simualtion TopiaContext db = nextSimulation.getStorage().beginTransaction();//ouvrir un context pour modifier les donnees Population pop = (Population)db.findByTopiaId(param_Population.getTopiaId()); //reccupere la pop ciblee MatrixND c = pop.getCapturability(); // reccupere la matrice de capturabilità for (MatrixIterator i = c.iterator(); i.hasNext();){ i.next(); i.setValue(q); }//fin du for db.commitTransaction(); // effectue la modification db.closeContext(); // ferme le context } public int compareTo(List<Double> listCrit) { int N = listCrit.size(); System.out.println("taille de la liste :"+N); int minimum=0; for(int i=0; i<N; i++) { System.out.println("i = "+i); if (listCrit.get(i)<listCrit.get(minimum)){minimum = i;} } return minimum; } public int compare2(Double f1,Double f2){ int minimum=0; if (f2<f1) minimum = 1; return minimum; } public boolean isPair(int nombre){ return (nombre%2 == 0) ; } }
Merci Sigrid! Mais est-ce normal que plusieurs liens sur le site d'ISIS ne fonctionnent plus, dont le lien Wiki? A + 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, June 17, 2010 4:38 PM À : isis-user Objet : [Isis-fish-users] script calibration un seul paramètre Hello Voici un script de calibration de la capturabilité quand il n y a qu un seul paramètre qui semble assez efficace (précision = 1/32 du pas initial en 11 simulations). A adapter aux fonctions objectif de chacun (ici captures mensuelles en poids) mais la partie algo (le before simulation) est générique. (déposé aussi sur le wiki). A+ Sigrid -- 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)
Salut j'ai adapté ton script à mon cas, et tenté de calibrer pour une espèce donc. J'ai la même fonction objectif, captures mensuelles en poids / strategies. Le plan modifié compile bien, et je lance donc une simulation en utilisant le plan de simulation. (que mettre alors dans le nombre d'années, autant d'années que le fichier de données ?). En ce qui concerne les données de population, j'imagine qu'on prend les effectifs initiaux correspondant à nos données. Bref j'ai testé avec un seule année, donc un fichier Historique de 12 lignes, en mettant donc une seule année dans la durée de la simulation. Je lance le plan de simulation et celui ci apparait "en haut", avec un numéro de plan. Une simulation "fille" se lance et se termine. Puis plus rien. La simulation mêre reste en haut. Je m'attendais à ce que une nouvelle simulation se lance etc etc. Les résultats de la simulation terminée sont accessibles. J'ai comparé et c'est bien la capturabilité contenue dans le script du plan d'expérience qui est utilisée. J'ai regardé le débug de la "simulation fille" et je trouve beaucoup de warnings dans ce style : WARN|14:44:41,428|MatrixType.java|227|splitObjects|Continuing but can't convert object in matrix Proportion from String: 'org.nuiton.topia.persistence.TopiaEntity(fr.ifremer.isisfish.entities.Metier#1275487264090#0.7497405236507816)' Je trouve aussi ces warnings lorsque je fais une simulation simple sans utiliser de plan d'experiences, donc ce n'est peut être pas lié. C'est la première fois que je touche aux plans de simulations donc je dois oublier un truc :) Merci, Benoit 2010/6/17 Sigrid LEHUTA <Sigrid.Lehuta@ifremer.fr>
Hello Voici un script de calibration de la capturabilité quand il n y a qu un seul paramètre qui semble assez efficace (précision = 1/32 du pas initial en 11 simulations). A adapter aux fonctions objectif de chacun (ici captures mensuelles en poids) mais la partie algo (le before simulation) est générique. (déposé aussi sur le wiki). A+ Sigrid
--
Hello, j ai le meme warn que toi Eric dit de ne pas regarder, c est un truc de lutin... sinon c est bien ca tu mets autant d annees de simus que de données et les effectifs initiaux au debut de ton jeu de données. c est bisarre qu il stop apres la premiere simu car les 5 premieres sont normalement independantes et ne doivent pas poser de problemes. Alors plusieurs hyp : - le nombre de simu est limité à 30 dans le before simu au debut if number < 31 as tu changé cette valeur ? - as tu bien rentré une valeur initiale de q pour les 5 premieres simus ? - y a t il un caused by dans le debug a la fin ? - a t il cree le fichier historic.csv (a cote du .bat) ? , il doit contenir la valeur de q et la valeur de la fonction objectif correspondante. Si ca n est pas le cas c est peut etre un pb dans le calcul de la fonction objectif. - Quel est le format de tes données ? 12 lignes * 1 colonne ? les captures sont sommées sur les strategies et metier ? il faut que ton tableau de donnees ait le meme format que le tableau dans isis (moi je ne sommais pas sur les strategies) et soit presenté pareil. j ai du mal a imaginer d'autres raisons ... une possibilité est de commenter regulierement le script de calibration pour savoir ou ca bug : tu ajoutes "System.out.println("il passe la ligne 5");" etc un peu partout ou tu y affiches des objets par exemple les dimentions de la matrice de captures (Arrays.toString(L.getDim())) et tu verifie dans le debug quelles etapes il a apasse et lesquelles il a ratées. il y a deja quelques commentaires notamment "critere" regarde si il te l a affiché. sinon envois ton debug. A++ courage ! Benoit Archambault <benarcha@gmail.com> a écrit :
Salut
j'ai adapté ton script à mon cas, et tenté de calibrer pour une espèce donc. J'ai la même fonction objectif, captures mensuelles en poids / strategies. Le plan modifié compile bien, et je lance donc une simulation en utilisant le plan de simulation. (que mettre alors dans le nombre d'années, autant d'années que le fichier de données ?). En ce qui concerne les données de population, j'imagine qu'on prend les effectifs initiaux correspondant à nos données.
Bref j'ai testé avec un seule année, donc un fichier Historique de 12 lignes, en mettant donc une seule année dans la durée de la simulation.
Je lance le plan de simulation et celui ci apparait "en haut", avec un numéro de plan. Une simulation "fille" se lance et se termine. Puis plus rien. La simulation mêre reste en haut. Je m'attendais à ce que une nouvelle simulation se lance etc etc. Les résultats de la simulation terminée sont accessibles. J'ai comparé et c'est bien la capturabilité contenue dans le script du plan d'expérience qui est utilisée.
J'ai regardé le débug de la "simulation fille" et je trouve beaucoup de warnings dans ce style :
WARN|14:44:41,428|MatrixType.java|227|splitObjects|Continuing but can't convert object in matrix Proportion from String: 'org.nuiton.topia.persistence.TopiaEntity(fr.ifremer.isisfish.entities.Metier#1275487264090#0.7497405236507816)'
Je trouve aussi ces warnings lorsque je fais une simulation simple sans utiliser de plan d'experiences, donc ce n'est peut être pas lié.
C'est la première fois que je touche aux plans de simulations donc je dois oublier un truc :)
Merci, Benoit
2010/6/17 Sigrid LEHUTA <Sigrid.Lehuta@ifremer.fr>
Hello Voici un script de calibration de la capturabilité quand il n y a qu un seul paramètre qui semble assez efficace (précision = 1/32 du pas initial en 11 simulations). A adapter aux fonctions objectif de chacun (ici captures mensuelles en poids) mais la partie algo (le before simulation) est générique. (déposé aussi sur le wiki). A+ Sigrid
--
Je viens de retester et il a fait deux simus cette fois-ci, et créer un fichier histo.csv ce qui n'était pas le cas la première fois. Par contre il s'arrete et la simu mère également apres ceci. J'ai jeté un coup d'oeil au fichier histo et les valeurs sont : 9.80E-05 2.68E+11 Il part donc du M1 que j'avais laissé à 0.000098. 2010/7/8 <Sigrid.Lehuta@ifremer.fr>
Hello,
j ai le meme warn que toi Eric dit de ne pas regarder, c est un truc de lutin...
*Ah on ne peut pas comprendre alors.. *
sinon c est bien ca tu mets autant d annees de simus que de données et les effectifs initiaux au debut de ton jeu de données. c est bisarre qu il stop apres la premiere simu car les 5 premieres sont normalement independantes et ne doivent pas poser de problemes. Alors plusieurs hyp : - le nombre de simu est limité à 30 dans le before simu au debut if number < 31 as tu changé cette valeur ?
*non* - as tu bien rentré une valeur initiale de q pour les 5 premieres simus ?
*laissé tes valeurs, niveau ordre de grandeur ca me parait coherent* - y a t il un caused by dans le debug a la fin ?
*non* - a t il cree le fichier historic.csv (a cote du .bat) ? , il doit contenir
la valeur de q et la valeur de la fonction objectif correspondante. Si ca n est pas le cas c est peut etre un pb dans le calcul de la fonction objectif.
*Il y a les deux, objectif = 2.68E+11* - Quel est le format de tes données ? 12 lignes * 1 colonne ? les captures
sont sommées sur les strategies et metier ? il faut que ton tableau de donnees ait le meme format que le tableau dans isis (moi je ne sommais pas sur les strategies) et soit presenté pareil.
*J'ai essayé de faire attention à ca, peut être tu peux m'envoyer ton fichier de débarquements au bon format pour que je compare.*
En tout cas j'ai 12 lignes * 23 colonnes (mes strats), je fais un test avec une seul strategie pour voir.
j ai du mal a imaginer d'autres raisons ... une possibilité est de commenter regulierement le script de calibration pour savoir ou ca bug : tu ajoutes "System.out.println("il passe la ligne 5");" etc un peu partout ou tu y affiches des objets par exemple les dimentions de la matrice de captures (Arrays.toString(L.getDim())) et tu verifie dans le debug quelles etapes il a apasse et lesquelles il a ratées. il y a deja quelques commentaires notamment "critere" regarde si il te l a affiché.
*Ce serait où ?? Car il n'y a pas de debug pour la simulation "mere", right ?*
sinon envois ton debug.
*Humm j'arrive pas à selectionner tout le debug, ctrl+a ne selectionne que les elements visibles.. bizarre*
A++ courage !
Merci, j'espère que ca va bien de ton coté
Humm avec les même paras cette fois ci il ne fait qu'une simulation sans mettre à jour histo.csv. En gros les même paras ne conduisent pas au même résultats à chaque fois, bizarre !
Benoit Archambault <benarcha@gmail.com> a écrit :
Je viens de retester et il a fait deux simus cette fois-ci,
OK on progresse ;-) il a donc bugué dans la deuxieme simu c est bisarre ...
- y a t il un caused by dans le debug a la fin ?
il faudrait que tu ouvres debug.txt dans le meme dossier que le bat, il contiendra les log de la "simu mere" comme tu l appelles ;-) tu peux l envoyer.
- Quel est le format de tes données ? 12 lignes * 1 colonne ? les captures
sont sommées sur les strategies et metier ? il faut que ton tableau de donnees ait le meme format que le tableau dans isis (moi je ne sommais pas sur les strategies) et soit presenté pareil.
*J'ai essayé de faire attention à ca, peut être tu peux m'envoyer ton fichier de débarquements au bon format pour que je compare.*
le voilà. c est un csv separé par des points virgules et sans nom de lignes ou de colonnes. je pense a une chose : dans quel ordre as tu mis tes strategies ? car c est pas evident de savoir dans quel ordre isis les range c est pour ca que j ai creee strNous dans lequel l ordre des str est le meme que dans ma table de debarquements observés (l ordre de tes 23 colonnes).
*Ce serait où ?? Car il n'y a pas de debug pour la simulation "mere", right ?*
justement dans le debug.txt a cote du go.bat, file direct a la fin du fichier. reste que c est tres etrange qu il arrive a en faire 1 et pas 2. attention a ne pas ouvrir le histo.csv avant la fin sinon ca le bug... a+
2010/7/8 <Sigrid.Lehuta@ifremer.fr>
Benoit Archambault <benarcha@gmail.com> a écrit :
Je viens de retester et il a fait deux simus cette fois-ci,
OK on progresse ;-)
*J'arrive plus à recreer cette situation, avec exactement la même configuration. Le fichier histo.csv n'a pas été modifié depuis la fois ou ca a fait deux simus (checké heure de derniere modif)*
il a donc bugué dans la deuxieme simu c est bisarre ...
- y a t il un caused by dans le debug a la fin ?
il faudrait que tu ouvres debug.txt dans le meme dossier que le bat, il contiendra les log de la "simu mere" comme tu l appelles ;-) tu peux l envoyer.
*C'est mignon simu mère, debug en PJ*, apparemment y'a pas mal de lecture, :)
- Quel est le format de tes données ? 12 lignes * 1 colonne ? les captures
sont sommées sur les strategies et metier ? il faut que ton tableau de donnees ait le meme format que le tableau dans isis (moi je ne sommais pas sur les strategies) et soit presenté pareil.
*J'ai essayé de faire attention à ca, peut être tu peux m'envoyer ton
fichier de débarquements au bon format pour que je compare.*
le voilà. c est un csv separé par des points virgules et sans nom de lignes ou de colonnes. je pense a une chose : dans quel ordre as tu mis tes strategies ? car c est pas evident de savoir dans quel ordre isis les range c est pour ca que j ai creee strNous dans lequel l ordre des str est le meme que dans ma table de debarquements observés (l ordre de tes 23 colonnes).
*Ouais j'ai modifié le strNous pour que ce soit dans le même ordre*
*Ce serait où ?? Car il n'y a pas de debug pour la simulation "mere", right ?*
justement dans le debug.txt a cote du go.bat, file direct a la fin du fichier.
reste que c est tres etrange qu il arrive a en faire 1 et pas 2. attention a ne pas ouvrir le histo.csv avant la fin sinon ca le bug...
*Yep j'ai fait gaffe à ca.*
a+
_______________________________________________ Isis-fish-users mailing list Isis-fish-users@list.isis-fish.org http://list.isis-fish.org/cgi-bin/mailman/listinfo/isis-fish-users
Caused by: org.h2.jdbc.JdbcSQLException: Database may be already in use: "Locked by another process". Possible solutions: close all other connection(s); use the server mode [90020-128] Bon on y est je pense !! Maintenant je ne comprend pas trop ce qui peut être à l'origine de ca. 2010/7/8 Benoit Archambault <benarcha@gmail.com>
2010/7/8 <Sigrid.Lehuta@ifremer.fr>
Benoit Archambault <benarcha@gmail.com> a écrit :
Je viens de retester et il a fait deux simus cette fois-ci,
OK on progresse ;-)
*J'arrive plus à recreer cette situation, avec exactement la même configuration. Le fichier histo.csv n'a pas été modifié depuis la fois ou ca a fait deux simus (checké heure de derniere modif)*
il a donc bugué dans la deuxieme simu c est bisarre ...
- y a t il un caused by dans le debug a la fin ?
il faudrait que tu ouvres debug.txt dans le meme dossier que le bat, il contiendra les log de la "simu mere" comme tu l appelles ;-) tu peux l envoyer.
*C'est mignon simu mère, debug en PJ*, apparemment y'a pas mal de lecture, :)
- Quel est le format de tes données ? 12 lignes * 1 colonne ? les
captures
sont sommées sur les strategies et metier ? il faut que ton tableau de donnees ait le meme format que le tableau dans isis (moi je ne sommais pas sur les strategies) et soit presenté pareil.
*J'ai essayé de faire attention à ca, peut être tu peux m'envoyer ton
fichier de débarquements au bon format pour que je compare.*
le voilà. c est un csv separé par des points virgules et sans nom de lignes ou de colonnes. je pense a une chose : dans quel ordre as tu mis tes strategies ? car c est pas evident de savoir dans quel ordre isis les range c est pour ca que j ai creee strNous dans lequel l ordre des str est le meme que dans ma table de debarquements observés (l ordre de tes 23 colonnes).
*Ouais j'ai modifié le strNous pour que ce soit dans le même ordre*
*Ce serait où ?? Car il n'y a pas de debug pour la simulation "mere", right ?*
justement dans le debug.txt a cote du go.bat, file direct a la fin du fichier.
reste que c est tres etrange qu il arrive a en faire 1 et pas 2. attention a ne pas ouvrir le histo.csv avant la fin sinon ca le bug...
*Yep j'ai fait gaffe à ca.*
a+
_______________________________________________ Isis-fish-users mailing list Isis-fish-users@list.isis-fish.org http://list.isis-fish.org/cgi-bin/mailman/listinfo/isis-fish-users
Ca me rappelle qqch... de compliqué ! je crois que c est quand on fais des set sur les objets de la database alors qu on a pas le droit... (demande pas a clarifier ca j y comprends pas grand chose de plus !! ) j espere que je me trompe ! il te donne la ligne qui pose probleme (c est tjs comme ca il y a un caused by et dans les ligne d en dessous il dit toutes les methodes qui ont foiré celle qui est vraiment en cause c est celle que tu as ecrit ;-) donc calibration...): at analyseplans.CalibrationSimplexe1para.afterSimulation(CalibrationSimplexe1para.java:207) qu est ce que c est la ligne 207 dans le after simu ??? essaie de commenter autour de cette ligne pour voir ce qui ne va pas . Benoit Archambault <benarcha@gmail.com> a écrit :
Caused by: org.h2.jdbc.JdbcSQLException: Database may be already in use: "Locked by another process". Possible solutions: close all other connection(s); use the server mode [90020-128]
Bon on y est je pense !! Maintenant je ne comprend pas trop ce qui peut être à l'origine de ca.
2010/7/8 Benoit Archambault <benarcha@gmail.com>
2010/7/8 <Sigrid.Lehuta@ifremer.fr>
Benoit Archambault <benarcha@gmail.com> a écrit :
Je viens de retester et il a fait deux simus cette fois-ci,
OK on progresse ;-)
*J'arrive plus à recreer cette situation, avec exactement la même configuration. Le fichier histo.csv n'a pas été modifié depuis la fois ou ca a fait deux simus (checké heure de derniere modif)*
il a donc bugué dans la deuxieme simu c est bisarre ...
- y a t il un caused by dans le debug a la fin ?
il faudrait que tu ouvres debug.txt dans le meme dossier que le bat, il contiendra les log de la "simu mere" comme tu l appelles ;-) tu peux l envoyer.
*C'est mignon simu mère, debug en PJ*, apparemment y'a pas mal de lecture, :)
- Quel est le format de tes données ? 12 lignes * 1 colonne ? les
captures
sont sommées sur les strategies et metier ? il faut que ton tableau de donnees ait le meme format que le tableau dans isis (moi je ne sommais pas sur les strategies) et soit presenté pareil.
*J'ai essayé de faire attention à ca, peut être tu peux m'envoyer ton
fichier de débarquements au bon format pour que je compare.*
le voilà. c est un csv separé par des points virgules et sans nom de lignes ou de colonnes. je pense a une chose : dans quel ordre as tu mis tes strategies ? car c est pas evident de savoir dans quel ordre isis les range c est pour ca que j ai creee strNous dans lequel l ordre des str est le meme que dans ma table de debarquements observés (l ordre de tes 23 colonnes).
*Ouais j'ai modifié le strNous pour que ce soit dans le même ordre*
*Ce serait où ?? Car il n'y a pas de debug pour la simulation "mere", right ?*
justement dans le debug.txt a cote du go.bat, file direct a la fin du fichier.
reste que c est tres etrange qu il arrive a en faire 1 et pas 2. attention a ne pas ouvrir le histo.csv avant la fin sinon ca le bug...
*Yep j'ai fait gaffe à ca.*
a+
_______________________________________________ Isis-fish-users mailing list Isis-fish-users@list.isis-fish.org http://list.isis-fish.org/cgi-bin/mailman/listinfo/isis-fish-users
MatrixND L2 = result.getMatrix(param_Population, ResultName.MATRIX_CATCH_WEIGHT_PER_STRATEGY_MET_PER_ZONE_POP); 2010/7/8 <Sigrid.Lehuta@ifremer.fr>
Ca me rappelle qqch... de compliqué !
je crois que c est quand on fais des set sur les objets de la database alors qu on a pas le droit... (demande pas a clarifier ca j y comprends pas grand chose de plus !! ) j espere que je me trompe !
il te donne la ligne qui pose probleme (c est tjs comme ca il y a un caused by et dans les ligne d en dessous il dit toutes les methodes qui ont foiré celle qui est vraiment en cause c est celle que tu as ecrit ;-) donc calibration...): at analyseplans.CalibrationSimplexe1para.afterSimulation(CalibrationSimplexe1para.java:207)
qu est ce que c est la ligne 207 dans le after simu ???
essaie de commenter autour de cette ligne pour voir ce qui ne va pas .
Benoit Archambault <benarcha@gmail.com> a écrit :
Caused by: org.h2.jdbc.JdbcSQLException: Database may be already in use:
"Locked by another process". Possible solutions: close all other connection(s); use the server mode [90020-128]
Bon on y est je pense !! Maintenant je ne comprend pas trop ce qui peut être à l'origine de ca.
2010/7/8 Benoit Archambault <benarcha@gmail.com>
2010/7/8 <Sigrid.Lehuta@ifremer.fr>
Benoit Archambault <benarcha@gmail.com> a écrit :
Je viens de retester et il a fait deux simus cette fois-ci,
OK on progresse ;-)
*J'arrive plus à recreer cette situation, avec exactement la même configuration. Le fichier histo.csv n'a pas été modifié depuis la fois ou ca a fait deux simus (checké heure de derniere modif)*
il a donc bugué dans la deuxieme simu c est bisarre ...
- y a t il un caused by dans le debug a la fin ?
il faudrait que tu ouvres debug.txt dans le meme dossier que le bat, il contiendra les log de la "simu mere" comme tu l appelles ;-) tu peux l envoyer.
*C'est mignon simu mère, debug en PJ*, apparemment y'a pas mal de
lecture, :)
- Quel est le format de tes données ? 12 lignes * 1 colonne ? les
captures
sont sommées sur les strategies et metier ? il faut que ton tableau de
donnees ait le meme format que le tableau dans isis (moi je ne sommais pas sur les strategies) et soit presenté pareil.
*J'ai essayé de faire attention à ca, peut être tu peux m'envoyer ton
fichier de débarquements au bon format pour que je compare.*
le voilà. c est un csv separé par des points virgules et sans nom de lignes ou de colonnes. je pense a une chose : dans quel ordre as tu mis tes strategies ? car c est pas evident de savoir dans quel ordre isis les range c est pour ca que j ai creee strNous dans lequel l ordre des str est le meme que dans ma table de debarquements observés (l ordre de tes 23 colonnes).
*Ouais j'ai modifié le strNous pour que ce soit dans le même ordre*
*Ce serait où ?? Car il n'y a pas de debug pour la simulation "mere",
right ?*
justement dans le debug.txt a cote du go.bat, file direct a la fin du fichier.
reste que c est tres etrange qu il arrive a en faire 1 et pas 2. attention a ne pas ouvrir le histo.csv avant la fin sinon ca le bug...
*Yep j'ai fait gaffe à ca.*
a+
_______________________________________________ Isis-fish-users mailing list Isis-fish-users@list.isis-fish.org http://list.isis-fish.org/cgi-bin/mailman/listinfo/isis-fish-users
_______________________________________________ Isis-fish-users mailing list Isis-fish-users@list.isis-fish.org http://list.isis-fish.org/cgi-bin/mailman/listinfo/isis-fish-users
questions betes (te vexes pas ;-)) : t'as selectionné ce resultat dans l interface de lancement de simu ? tu as bien selectionne la population dans l interface de plan d analyse ? est ce que dans le script de calibration elle est bien mentionnée dans les necessaryResults au debut ? heu sinon j aurais du y penser avant tu utilises quelle version ? telecharge la isis-fish-3.3.0.4-SNAPSHOT qui n est pas la version stable mais je crois qu elle a ete faite pour corriger specifiquement ce probleme ... Benoit Archambault <benarcha@gmail.com> a écrit :
MatrixND L2 = result.getMatrix(param_Population, ResultName.MATRIX_CATCH_WEIGHT_PER_STRATEGY_MET_PER_ZONE_POP);
2010/7/8 <Sigrid.Lehuta@ifremer.fr>
Ca me rappelle qqch... de compliqué !
je crois que c est quand on fais des set sur les objets de la database alors qu on a pas le droit... (demande pas a clarifier ca j y comprends pas grand chose de plus !! ) j espere que je me trompe !
il te donne la ligne qui pose probleme (c est tjs comme ca il y a un caused by et dans les ligne d en dessous il dit toutes les methodes qui ont foiré celle qui est vraiment en cause c est celle que tu as ecrit ;-) donc calibration...): at analyseplans.CalibrationSimplexe1para.afterSimulation(CalibrationSimplexe1para.java:207)
qu est ce que c est la ligne 207 dans le after simu ???
essaie de commenter autour de cette ligne pour voir ce qui ne va pas .
Benoit Archambault <benarcha@gmail.com> a écrit :
Caused by: org.h2.jdbc.JdbcSQLException: Database may be already in use:
"Locked by another process". Possible solutions: close all other connection(s); use the server mode [90020-128]
Bon on y est je pense !! Maintenant je ne comprend pas trop ce qui peut être à l'origine de ca.
2010/7/8 Benoit Archambault <benarcha@gmail.com>
2010/7/8 <Sigrid.Lehuta@ifremer.fr>
Benoit Archambault <benarcha@gmail.com> a écrit :
Je viens de retester et il a fait deux simus cette fois-ci,
OK on progresse ;-)
*J'arrive plus à recreer cette situation, avec exactement la même configuration. Le fichier histo.csv n'a pas été modifié depuis la fois ou ca a fait deux simus (checké heure de derniere modif)*
il a donc bugué dans la deuxieme simu c est bisarre ...
- y a t il un caused by dans le debug a la fin ?
il faudrait que tu ouvres debug.txt dans le meme dossier que le bat, il contiendra les log de la "simu mere" comme tu l appelles ;-) tu peux l envoyer.
*C'est mignon simu mère, debug en PJ*, apparemment y'a pas mal de
lecture, :)
- Quel est le format de tes données ? 12 lignes * 1 colonne ? les
captures
sont sommées sur les strategies et metier ? il faut que ton tableau de > donnees ait le meme format que le tableau dans isis (moi je ne sommais > pas > sur les strategies) et soit presenté pareil. > > *J'ai essayé de faire attention à ca, peut être tu peux m'envoyer ton > > fichier de débarquements au bon format pour que je compare.*
le voilà. c est un csv separé par des points virgules et sans nom de lignes ou de colonnes. je pense a une chose : dans quel ordre as tu mis tes strategies ? car c est pas evident de savoir dans quel ordre isis les range c est pour ca que j ai creee strNous dans lequel l ordre des str est le meme que dans ma table de debarquements observés (l ordre de tes 23 colonnes).
*Ouais j'ai modifié le strNous pour que ce soit dans le même ordre*
*Ce serait où ?? Car il n'y a pas de debug pour la simulation "mere",
> right ?*
justement dans le debug.txt a cote du go.bat, file direct a la fin du fichier.
reste que c est tres etrange qu il arrive a en faire 1 et pas 2. attention a ne pas ouvrir le histo.csv avant la fin sinon ca le bug...
*Yep j'ai fait gaffe à ca.*
a+
_______________________________________________ Isis-fish-users mailing list Isis-fish-users@list.isis-fish.org http://list.isis-fish.org/cgi-bin/mailman/listinfo/isis-fish-users
_______________________________________________ Isis-fish-users mailing list Isis-fish-users@list.isis-fish.org http://list.isis-fish.org/cgi-bin/mailman/listinfo/isis-fish-users
2010/7/8 <Sigrid.Lehuta@ifremer.fr>
questions betes (te vexes pas ;-)) :
*T'as bien raison de vérifier*
t'as selectionné ce resultat dans l interface de lancement de simu ?
*Oui*
tu as bien selectionne la population dans l interface de plan d analyse ?
*Oui* est ce que dans le script de calibration elle est bien mentionnée dans les
necessaryResults au debut ?
*Oui* heu sinon j aurais du y penser avant tu utilises quelle version ?
*3.3.0.3* tiens d'ailleurs faudrait nommer les versions comme pour Ubuntu, Acrobatic herring tout ca... bref j'arrete le HS
telecharge la isis-fish-3.3.0.4-SNAPSHOT qui n est pas la version stable mais je crois qu elle a ete faite pour corriger specifiquement ce probleme ...
*Test en cours, stay tuned.*
Benoit Archambault <benarcha@gmail.com> a écrit :
MatrixND L2 = result.getMatrix(param_Population,
ResultName.MATRIX_CATCH_WEIGHT_PER_STRATEGY_MET_PER_ZONE_POP);
2010/7/8 <Sigrid.Lehuta@ifremer.fr>
Ca me rappelle qqch... de compliqué !
je crois que c est quand on fais des set sur les objets de la database alors qu on a pas le droit... (demande pas a clarifier ca j y comprends pas grand chose de plus !! ) j espere que je me trompe !
il te donne la ligne qui pose probleme (c est tjs comme ca il y a un caused by et dans les ligne d en dessous il dit toutes les methodes qui ont foiré celle qui est vraiment en cause c est celle que tu as ecrit ;-) donc calibration...): at
analyseplans.CalibrationSimplexe1para.afterSimulation(CalibrationSimplexe1para.java:207)
qu est ce que c est la ligne 207 dans le after simu ???
essaie de commenter autour de cette ligne pour voir ce qui ne va pas .
Benoit Archambault <benarcha@gmail.com> a écrit :
Caused by: org.h2.jdbc.JdbcSQLException: Database may be already in use:
"Locked by another process". Possible solutions: close all other connection(s); use the server mode [90020-128]
Bon on y est je pense !! Maintenant je ne comprend pas trop ce qui peut être à l'origine de ca.
2010/7/8 Benoit Archambault <benarcha@gmail.com>
2010/7/8 <Sigrid.Lehuta@ifremer.fr>
Benoit Archambault <benarcha@gmail.com> a écrit :
Je viens de retester et il a fait deux simus cette fois-ci,
> > OK on progresse ;-)
*J'arrive plus à recreer cette situation, avec exactement la même configuration. Le fichier histo.csv n'a pas été modifié depuis la fois ou ca a fait deux simus (checké heure de derniere modif)*
il a donc bugué dans la deuxieme simu c est bisarre ...
- y a t il un caused by dans le debug a la fin ?
> > il faudrait que tu ouvres debug.txt dans le meme dossier que le bat, il contiendra les log de la "simu mere" comme tu l appelles ;-) tu peux l envoyer.
*C'est mignon simu mère, debug en PJ*, apparemment y'a pas mal de
lecture, :)
- Quel est le format de tes données ? 12 lignes * 1 colonne ? les
captures > > sont sommées sur les strategies et metier ? il faut que ton tableau > de > >> donnees ait le meme format que le tableau dans isis (moi je ne >> sommais >> pas >> sur les strategies) et soit presenté pareil. >> >> *J'ai essayé de faire attention à ca, peut être tu peux m'envoyer >> ton >> >> fichier de débarquements au bon format pour que je compare.* >> > > > le voilà. c est un csv separé par des points virgules et sans nom de lignes ou de colonnes. je pense a une chose : dans quel ordre as tu mis tes strategies ? car c est pas evident de savoir dans quel ordre isis les range c est pour ca que j ai creee strNous dans lequel l ordre des str est le meme que dans ma table de debarquements observés (l ordre de tes 23 colonnes).
*Ouais j'ai modifié le strNous pour que ce soit dans le même ordre*
*Ce serait où ?? Car il n'y a pas de debug pour la simulation "mere",
> >> right > ?* > > > justement dans le debug.txt a cote du go.bat, file direct a la fin du fichier.
reste que c est tres etrange qu il arrive a en faire 1 et pas 2. attention a ne pas ouvrir le histo.csv avant la fin sinon ca le bug...
*Yep j'ai fait gaffe à ca.*
a+
_______________________________________________ Isis-fish-users mailing list Isis-fish-users@list.isis-fish.org http://list.isis-fish.org/cgi-bin/mailman/listinfo/isis-fish-users
_______________________________________________ Isis-fish-users mailing list Isis-fish-users@list.isis-fish.org http://list.isis-fish.org/cgi-bin/mailman/listinfo/isis-fish-users
_______________________________________________ Isis-fish-users mailing list Isis-fish-users@list.isis-fish.org http://list.isis-fish.org/cgi-bin/mailman/listinfo/isis-fish-users
Ca tourne ! Merci beaucoup !! j'attend la fin et je donne des news. Je pense que vu la vitesse, ma prochaine question concernera caparmor.. sauf si l'ifremer veut bien faire hotel.
telecharge la isis-fish-3.3.0.4-SNAPSHOT qui n est pas la version stable
mais je crois qu elle a ete faite pour corriger specifiquement ce probleme ...
*Test en cours, stay tuned.*
participants (4)
-
Bastien Preuss -
Benoit Archambault -
Sigrid LEHUTA -
Sigrid.Lehuta@ifremer.fr