Hello, je vais me remettre au test de la V3.4 et je commence par comparer les anciens et nouveaux scripts. J'ai 2 questions pour SiMatrix : - J'ai remarqué que toutes les methodes "PerCell" avaient disparues du nouveau SiMatrix, elles sont désormais dans un si matrix per cell qui est appelé qd le simulateur par cellule est selectionné. Il me semble que siMatrixEffortByCell ne contient pas toutes les méthodes mais uniquement celles qui diffèrent de l'autre SiMatrix, exact ? cela veut dire que SiMatrix est toujours utilisé mais avec en plus siMatrixEffortByCell pour le remplace à certains endroits, c'est ça ? - J'avais ajouté quelques méthodes à SiMatrix directement dans le code. Je prefererais avoir un script à part qui contiendrait mes méthodes et serait utilisé mais me permettrait de conserver le même SiMatrix que le serveur. Puis je le faire de la même manière que pour effort by cell, en creant un SiMatrixSid qui n aurait que les méthodes modifiées et qui serait appelé si on selectionne le simulateurSid ? - comment avoir un SiMatrixEffortByCellSid ? en creant un simulateurEffortByCellSid qui retournerait SiMatrixEffortByCell et SiMatrixSid ? ou dois je mixer siMatrixEffortByCell et SiMatrixSid pour n avoir qu'un SiMatrix ? Merci !
Hello,
je vais me remettre au test de la V3.4 et je commence par comparer les anciens et nouveaux scripts.
J'ai 2 questions pour SiMatrix : - J'ai remarqué que toutes les methodes "PerCell" avaient disparues du nouveau SiMatrix, elles sont désormais dans un si matrix per cell qui est appelé qd le simulateur par cellule est selectionné. Il me semble que siMatrixEffortByCell ne contient pas toutes les méthodes mais uniquement celles qui diffèrent de l'autre SiMatrix, exact ? cela veut dire que SiMatrix est toujours utilisé mais avec en plus siMatrixEffortByCell pour le remplace à certains endroits, c'est ça ? Avant, il n'y avait qu'un SiMatrix disponible, et on était obligé d'ajouter
Le 09/06/2015 11:23, Sigrid Lehuta a écrit : parfois du code personnel dedans. Maintenant, il est possible d’étendre SiMatrix et d'ajouter ses propres fonctions et de choisir le SiMatrix que l'on veux utiliser dans un Simulateur. SiMatrixEffortByCell est un exemple fonctionnel (utilisé dans SimulatorEffortByCell).
- J'avais ajouté quelques méthodes à SiMatrix directement dans le code. Je prefererais avoir un script à part qui contiendrait mes méthodes et serait utilisé mais me permettrait de conserver le même SiMatrix que le serveur. Puis je le faire de la même manière que pour effort by cell, en creant un SiMatrixSid qui n aurait que les méthodes modifiées et qui serait appelé si on selectionne le simulateurSid ?
Oui, tu pourrais même le mettre dans le dépot "communauté" et le committer.
- comment avoir un SiMatrixEffortByCellSid ? en creant un simulateurEffortByCellSid qui retournerait SiMatrixEffortByCell et SiMatrixSid ? ou dois je mixer siMatrixEffortByCell et SiMatrixSid pour n avoir qu'un SiMatrix ?
Du peut étendre SiMatrixEffortByCell au lieu de SiMatrix. Tu aura un SiMatrix avec le code par default, les extensions par cell, et ton propre code. -- Éric Chatellier - www.codelutin.com - 02.40.50.29.28
Super J'essaie ! Le 9 juin 2015 14:59, Eric Chatellier <chatellier@codelutin.com> a écrit :
Hello,
je vais me remettre au test de la V3.4 et je commence par comparer les anciens et nouveaux scripts.
J'ai 2 questions pour SiMatrix : - J'ai remarqué que toutes les methodes "PerCell" avaient disparues du nouveau SiMatrix, elles sont désormais dans un si matrix per cell qui est appelé qd le simulateur par cellule est selectionné. Il me semble que siMatrixEffortByCell ne contient pas toutes les méthodes mais uniquement celles qui diffèrent de l'autre SiMatrix, exact ? cela veut dire que SiMatrix est toujours utilisé mais avec en plus siMatrixEffortByCell pour le remplace à certains endroits, c'est ça ? Avant, il n'y avait qu'un SiMatrix disponible, et on était obligé d'ajouter
Le 09/06/2015 11:23, Sigrid Lehuta a écrit : parfois du code personnel dedans.
Maintenant, il est possible d’étendre SiMatrix et d'ajouter ses propres fonctions et de choisir le SiMatrix que l'on veux utiliser dans un Simulateur.
SiMatrixEffortByCell est un exemple fonctionnel (utilisé dans SimulatorEffortByCell).
- J'avais ajouté quelques méthodes à SiMatrix directement dans le code.
prefererais avoir un script à part qui contiendrait mes méthodes et serait utilisé mais me permettrait de conserver le même SiMatrix que le serveur. Puis je le faire de la même manière que pour effort by cell, en creant un SiMatrixSid qui n aurait que les méthodes modifiées et qui serait appelé si on selectionne le simulateurSid ? Oui, tu pourrais même le mettre dans le dépot "communauté" et le committer.
- comment avoir un SiMatrixEffortByCellSid ? en creant un simulateurEffortByCellSid qui retournerait SiMatrixEffortByCell et SiMatrixSid ? ou dois je mixer siMatrixEffortByCell et SiMatrixSid pour n avoir qu'un SiMatrix ? Du peut étendre SiMatrixEffortByCell au lieu de SiMatrix. Tu aura un SiMatrix avec le code par default, les extensions par cell, et ton
Je propre code.
-- Éric Chatellier - www.codelutin.com - 02.40.50.29.28
_______________________________________________ Isis-fish-devel mailing list Isis-fish-devel@list.isis-fish.org http://list.isis-fish.org/cgi-bin/mailman/listinfo/isis-fish-devel
Question Annexe : Comment faire de même pour ResultName ? (il m arrive de creer des resultats qui n interessent que moi...) Le 9 juin 2015 15:37, Sigrid Lehuta <sigridlehuta@gmail.com> a écrit :
Super J'essaie !
Le 9 juin 2015 14:59, Eric Chatellier <chatellier@codelutin.com> a écrit :
Hello,
je vais me remettre au test de la V3.4 et je commence par comparer les anciens et nouveaux scripts.
J'ai 2 questions pour SiMatrix : - J'ai remarqué que toutes les methodes "PerCell" avaient disparues du nouveau SiMatrix, elles sont désormais dans un si matrix per cell qui est appelé qd le simulateur par cellule est selectionné. Il me semble que siMatrixEffortByCell ne contient pas toutes les méthodes mais uniquement celles qui diffèrent de l'autre SiMatrix, exact ? cela veut dire que SiMatrix est toujours utilisé mais avec en plus siMatrixEffortByCell pour le remplace à certains endroits, c'est ça ? Avant, il n'y avait qu'un SiMatrix disponible, et on était obligé d'ajouter
Le 09/06/2015 11:23, Sigrid Lehuta a écrit : parfois du code personnel dedans.
Maintenant, il est possible d’étendre SiMatrix et d'ajouter ses propres fonctions et de choisir le SiMatrix que l'on veux utiliser dans un Simulateur.
SiMatrixEffortByCell est un exemple fonctionnel (utilisé dans SimulatorEffortByCell).
- J'avais ajouté quelques méthodes à SiMatrix directement dans le code.
prefererais avoir un script à part qui contiendrait mes méthodes et serait utilisé mais me permettrait de conserver le même SiMatrix que le serveur. Puis je le faire de la même manière que pour effort by cell, en creant un SiMatrixSid qui n aurait que les méthodes modifiées et qui serait appelé si on selectionne le simulateurSid ? Oui, tu pourrais même le mettre dans le dépot "communauté" et le committer.
- comment avoir un SiMatrixEffortByCellSid ? en creant un simulateurEffortByCellSid qui retournerait SiMatrixEffortByCell et SiMatrixSid ? ou dois je mixer siMatrixEffortByCell et SiMatrixSid pour n avoir qu'un SiMatrix ? Du peut étendre SiMatrixEffortByCell au lieu de SiMatrix. Tu aura un SiMatrix avec le code par default, les extensions par cell, et ton
Je propre code.
-- Éric Chatellier - www.codelutin.com - 02.40.50.29.28
_______________________________________________ Isis-fish-devel mailing list Isis-fish-devel@list.isis-fish.org http://list.isis-fish.org/cgi-bin/mailman/listinfo/isis-fish-devel
Le 09/06/2015 16:35, Sigrid Lehuta a écrit :
Question Annexe : Comment faire de même pour ResultName ? (il m arrive de creer des resultats qui n interessent que moi...) Je me suis posé la question récemment, mais c'est moins évident. ResultName.java est utilisé par l'interface graphique pour afficher la liste des résultats à activer pour la simulation.
Cela me parait compliqué pour l'interface d'aller lire plusieurs fichiers. Il faudrait que l'on réfléchissent à un autre mécanisme en y incluant les dépendances entres les résultats (abondance nécessaire pour calculer F par exemple). -- Éric Chatellier - www.codelutin.com - 02.40.50.29.28
ok ca ne pose pas trop de problemes generalement car lors du chargement d une nouvelle version isis conserve les modifs de l utilisateur. A nous de bien commenter les additions faites a ResultName et peut etre les grouper au debut... On en reparle ! Le 9 juin 2015 17:05, Eric Chatellier <chatellier@codelutin.com> a écrit :
Question Annexe : Comment faire de même pour ResultName ? (il m arrive de creer des resultats qui n interessent que moi...) Je me suis posé la question récemment, mais c'est moins évident. ResultName.java est utilisé par l'interface graphique pour afficher la
Le 09/06/2015 16:35, Sigrid Lehuta a écrit : liste des résultats à activer pour la simulation.
Cela me parait compliqué pour l'interface d'aller lire plusieurs fichiers.
Il faudrait que l'on réfléchissent à un autre mécanisme en y incluant les dépendances entres les résultats (abondance nécessaire pour calculer F par exemple).
-- Éric Chatellier - www.codelutin.com - 02.40.50.29.28
_______________________________________________ Isis-fish-devel mailing list Isis-fish-devel@list.isis-fish.org http://list.isis-fish.org/cgi-bin/mailman/listinfo/isis-fish-devel
Bien sûr ça ne pouvait pas marcher du premier coup... en fait je n'ai pas modifié que SiMatrix, mais je voulais aussi modifier la methode computeMonth du simulator. du coup j'ai bêtement ajouté une nouvelle methode computeMonth au simulateur mais je crois que ca marche pas... cf simulateur en pj. Ca veut dire qu on ne peut modifier que les methodes de SiMatrix ? Le 9 juin 2015 14:59, Eric Chatellier <chatellier@codelutin.com> a écrit :
Hello,
je vais me remettre au test de la V3.4 et je commence par comparer les anciens et nouveaux scripts.
J'ai 2 questions pour SiMatrix : - J'ai remarqué que toutes les methodes "PerCell" avaient disparues du nouveau SiMatrix, elles sont désormais dans un si matrix per cell qui est appelé qd le simulateur par cellule est selectionné. Il me semble que siMatrixEffortByCell ne contient pas toutes les méthodes mais uniquement celles qui diffèrent de l'autre SiMatrix, exact ? cela veut dire que SiMatrix est toujours utilisé mais avec en plus siMatrixEffortByCell pour le remplace à certains endroits, c'est ça ? Avant, il n'y avait qu'un SiMatrix disponible, et on était obligé d'ajouter
Le 09/06/2015 11:23, Sigrid Lehuta a écrit : parfois du code personnel dedans.
Maintenant, il est possible d’étendre SiMatrix et d'ajouter ses propres fonctions et de choisir le SiMatrix que l'on veux utiliser dans un Simulateur.
SiMatrixEffortByCell est un exemple fonctionnel (utilisé dans SimulatorEffortByCell).
- J'avais ajouté quelques méthodes à SiMatrix directement dans le code.
prefererais avoir un script à part qui contiendrait mes méthodes et serait utilisé mais me permettrait de conserver le même SiMatrix que le serveur. Puis je le faire de la même manière que pour effort by cell, en creant un SiMatrixSid qui n aurait que les méthodes modifiées et qui serait appelé si on selectionne le simulateurSid ? Oui, tu pourrais même le mettre dans le dépot "communauté" et le committer.
- comment avoir un SiMatrixEffortByCellSid ? en creant un simulateurEffortByCellSid qui retournerait SiMatrixEffortByCell et SiMatrixSid ? ou dois je mixer siMatrixEffortByCell et SiMatrixSid pour n avoir qu'un SiMatrix ? Du peut étendre SiMatrixEffortByCell au lieu de SiMatrix. Tu aura un SiMatrix avec le code par default, les extensions par cell, et ton
Je propre code.
-- Éric Chatellier - www.codelutin.com - 02.40.50.29.28
_______________________________________________ Isis-fish-devel mailing list Isis-fish-devel@list.isis-fish.org http://list.isis-fish.org/cgi-bin/mailman/listinfo/isis-fish-devel
Le 09/06/2015 17:33, Sigrid Lehuta a écrit :
Bien sûr ça ne pouvait pas marcher du premier coup...
en fait je n'ai pas modifié que SiMatrix, mais je voulais aussi modifier la methode computeMonth du simulator. du coup j'ai bêtement ajouté une nouvelle methode computeMonth au simulateur mais je crois que ca marche pas... cf simulateur en pj. En pj, c'est ton SiMatrix, pas le simulateur.
Ca veut dire qu on ne peut modifier que les methodes de SiMatrix ?
Dans ton simulateur, tu peux redéfinir ta methode computeMonth: @Override protected void computeMonth(SimulationContext context, SiMatrix siMatrix, TimeStep step, Population pop) throws IsisFishException, TopiaException { } -- Éric Chatellier - www.codelutin.com - 02.40.50.29.28
oui pardon le voici j avais bien redefini compute Month il me semble ... c est peut etre juste une histoire de packages ? voici les erreurs : ---------- 1. ERROR in C:\Users\slehuta\isis-fish-4-rc\isis-community-database\simulators\SimulatorEffortByCell_Sid.java (at line 84) ResultStorage resManager = context.getSimulationStorage() ^^^^^^^^^^^^^ ResultStorage cannot be resolved to a type ---------- 2. ERROR in C:\Users\slehuta\isis-fish-4-rc\isis-community-database\simulators\SimulatorEffortByCell_Sid.java (at line 153) popMon.setReproduction(step, pop, R); ^^^^^^^^^^^^^^^ The method setReproduction(TimeStep, Population, MatrixND, MatrixND, MatrixND) in the type PopulationMonitor is not applicable for the arguments (TimeStep, Population, MatrixND) ---------- 3. ERROR in C:\Users\slehuta\isis-fish-4-rc\isis-community-database\simulators\SimulatorEffortByCell_Sid.java (at line 188) .matrixCatchPerStrategyMetPerZonePop(N, pop, step); ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ The method matrixCatchPerStrategyMetPerZonePop(MatrixND, Population, TimeStep) is undefined for the type SiMatrix ---------- 4. ERROR in C:\Users\slehuta\isis-fish-4-rc\isis-community-database\simulators\SimulatorEffortByCell_Sid.java (at line 194) abundance = siMatrix.matrixAbundance(N, pop, step, ^^^^^^^^^^^^^^^ The method matrixAbundance(MatrixND, Population, TimeStep) in the type SiMatrix is not applicable for the arguments (MatrixND, Population, TimeStep, MatrixND) ---------- 5. ERROR in C:\Users\slehuta\isis-fish-4-rc\isis-community-database\simulators\SimulatorEffortByCell_Sid.java (at line 199) .matrixCatchRatePerStrategyMetPerZone(pop, step, ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ The method matrixCatchRatePerStrategyMetPerZone(Population, TimeStep) in the type SiMatrix is not applicable for the arguments (Population, TimeStep, MatrixND) ---------- 6. ERROR in C:\Users\slehuta\isis-fish-4-rc\isis-community-database\simulators\SimulatorEffortByCell_Sid.java (at line 204) .matrixCatchPerStrategyMetPerZone(N, pop, step, ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ The method matrixCatchPerStrategyMetPerZone(MatrixND, Population, TimeStep) in the type SiMatrix is not applicable for the arguments (MatrixND, Population, TimeStep, MatrixND) ---------- 7. ERROR in C:\Users\slehuta\isis-fish-4-rc\isis-community-database\simulators\SimulatorEffortByCell_Sid.java (at line 222) .matrixCatchPerStrategyMetPerZoneMet(N, pop, step); ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ The method matrixCatchPerStrategyMetPerZoneMet(MatrixND, Population, TimeStep) is undefined for the type SiMatrix ---------- 8. ERROR in C:\Users\slehuta\isis-fish-4-rc\isis-community-database\simulators\SimulatorEffortByCell_Sid.java (at line 228) .matrixCatchWeightPerStrategyMetPerZoneMet(step, ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ The method matrixCatchWeightPerStrategyMetPerZoneMet(TimeStep, Population, MatrixND) is undefined for the type SiMatrix ---------- 9. ERROR in C:\Users\slehuta\isis-fish-4-rc\isis-community-database\simulators\SimulatorEffortByCell_Sid.java (at line 236) MatrixND fishingMortalityPerGroup = siMatrix.fishingMortalityPerGroup(step, ^^^^^^^^^^^^^^^^^^^^^^^^ The method fishingMortalityPerGroup(TimeStep, Population, ResultManager) in the type SiMatrix is not applicable for the arguments (TimeStep, Population, ResultStorage) ---------- 10. ERROR in C:\Users\slehuta\isis-fish-4-rc\isis-community-database\simulators\SimulatorEffortByCell_Sid.java (at line 257) MatrixND abondanceEM = siMatrix.matrixAbondanceEndMonth(abundance, pop, ^^^^^^^^^^^^^^^^^^^^^^^ The method matrixAbondanceEndMonth(MatrixND, Population, TimeStep) is undefined for the type SiMatrix ---------- 11. ERROR in C:\Users\slehuta\isis-fish-4-rc\isis-community-database\simulators\SimulatorEffortByCell_Sid.java (at line 262) MatrixND biomassEM = siMatrix.matrixBiomassEndMonth(abundance, pop, step); ^^^^^^^^^^^^^^^^^^^^^ The method matrixBiomassEndMonth(MatrixND, Population, TimeStep) is undefined for the type SiMatrix ---------- 11 problems (11 errors) Le 9 juin 2015 17:45, Eric Chatellier <chatellier@codelutin.com> a écrit :
Le 09/06/2015 17:33, Sigrid Lehuta a écrit :
Bien sûr ça ne pouvait pas marcher du premier coup...
en fait je n'ai pas modifié que SiMatrix, mais je voulais aussi modifier la methode computeMonth du simulator. du coup j'ai bêtement ajouté une nouvelle methode computeMonth au simulateur mais je crois que ca marche pas... cf simulateur en pj. En pj, c'est ton SiMatrix, pas le simulateur.
Ca veut dire qu on ne peut modifier que les methodes de SiMatrix ?
Dans ton simulateur, tu peux redéfinir ta methode computeMonth:
@Override protected void computeMonth(SimulationContext context, SiMatrix siMatrix, TimeStep step, Population pop) throws IsisFishException, TopiaException {
}
-- Éric Chatellier - www.codelutin.com - 02.40.50.29.28
_______________________________________________ Isis-fish-devel mailing list Isis-fish-devel@list.isis-fish.org http://list.isis-fish.org/cgi-bin/mailman/listinfo/isis-fish-devel
Le 09/06/2015 17:47, Sigrid Lehuta a écrit :
oui pardon le voici j avais bien redefini compute Month il me semble ... c est peut etre juste une histoire de packages ? Je l'ai modifié comme j'ai pu, et le reste semble porter sur des modifications en cours.
Il y a aussi une astuce pour utiliser ton simatrix (et non celui de la methode computeMonth). Ca ne me plait pas vraiment, mais c'est un cas non prévu je pense. Je vais voir ca demain avec Benjamin. -- Éric Chatellier - www.codelutin.com - 02.40.50.29.28
merci. évidement il a fallu que je commence par une exception... alors si je pige bien, la methode compute month telle que je l ai reecrite ds mon simulateur prend le simatrix par defaut comme argument, et il faut la forcer à utiliser mon simatrix. et c est quoi le coup du "_siMatrix" ? pourquoi pas simplement siMatrix ? Le 9 juin 2015 18:11, Eric Chatellier <chatellier@codelutin.com> a écrit :
Le 09/06/2015 17:47, Sigrid Lehuta a écrit :
oui pardon le voici j avais bien redefini compute Month il me semble ... c est peut etre juste une histoire de packages ? Je l'ai modifié comme j'ai pu, et le reste semble porter sur des modifications en cours.
Il y a aussi une astuce pour utiliser ton simatrix (et non celui de la methode computeMonth). Ca ne me plait pas vraiment, mais c'est un cas non prévu je pense.
Je vais voir ca demain avec Benjamin.
-- Éric Chatellier - www.codelutin.com - 02.40.50.29.28
_______________________________________________ Isis-fish-devel mailing list Isis-fish-devel@list.isis-fish.org http://list.isis-fish.org/cgi-bin/mailman/listinfo/isis-fish-devel
Le 09/06/2015 18:28, Sigrid Lehuta a écrit :
merci. évidement il a fallu que je commence par une exception...
alors si je pige bien, la methode compute month telle que je l ai reecrite ds mon simulateur prend le simatrix par defaut comme argument, et il faut la forcer à utiliser mon simatrix. et c est quoi le coup du "_siMatrix" ? pourquoi pas simplement siMatrix ? _siMatrix est le _siMatrix que le simulateur te donne dans la méthode computeMonth, mais il est de type "SiMatrix" donc tes methodes personnelles ne sont pas utilisable.
Au debut de ta classe, il y a un autre objet "siMatrix" qui lui est de type SiMatrixEffortByCell_Sid et sur lequel tu peux appeler tes methodes. J'ai renommé, un des deux siMatrix et _siMatrix pour ne pas avoir deux fois le même nom. En fait, j'aurais du en appeler un siMatrixSid plutot ;) PS: C'est temporaire tout ca, c'est pas top et très dur à comprendre. -- Éric Chatellier - www.codelutin.com - 02.40.50.29.28
Merci pour les explications (et pour le PS rassurant car en effet je suis pas sure de tout comprendre). J'essaie déjà de faire fonctionner ça. Il y a peut etre un moyen de faire la même chose en ne modifiant que SiMatrix et pas ComputeMonth ca serait ideal. Je vais y reflechir. Le 10 juin 2015 09:49, Eric Chatellier <chatellier@codelutin.com> a écrit :
merci. évidement il a fallu que je commence par une exception...
alors si je pige bien, la methode compute month telle que je l ai reecrite ds mon simulateur prend le simatrix par defaut comme argument, et il faut la forcer à utiliser mon simatrix. et c est quoi le coup du "_siMatrix" ? pourquoi pas simplement siMatrix ? _siMatrix est le _siMatrix que le simulateur te donne dans la méthode computeMonth, mais il est de type "SiMatrix" donc tes methodes
Le 09/06/2015 18:28, Sigrid Lehuta a écrit : personnelles ne sont pas utilisable.
Au debut de ta classe, il y a un autre objet "siMatrix" qui lui est de type SiMatrixEffortByCell_Sid et sur lequel tu peux appeler tes methodes. J'ai renommé, un des deux siMatrix et _siMatrix pour ne pas avoir deux fois le même nom.
En fait, j'aurais du en appeler un siMatrixSid plutot ;)
PS: C'est temporaire tout ca, c'est pas top et très dur à comprendre.
-- Éric Chatellier - www.codelutin.com - 02.40.50.29.28
_______________________________________________ Isis-fish-devel mailing list Isis-fish-devel@list.isis-fish.org http://list.isis-fish.org/cgi-bin/mailman/listinfo/isis-fish-devel
Ouille ça ne fonctionne pas. Le script de simulator ne compile pas et quand je tente quand même de lancer une simu (on sait jamais...), le log dit ça : il ne reconnait pas mon simulator ? java.lang.ClassNotFoundException: simulators.SimulatorEffortByCell_Sid at org.aspectj.weaver.bcel.ExtensibleURLClassLoader.findClass(ExtensibleURLClassLoader.java:54) ~[aspectjweaver-1.8.5.jar:1.8.5] at java.lang.ClassLoader.loadClass(Unknown Source) ~[?:1.7.0_45] at java.lang.ClassLoader.loadClass(Unknown Source) ~[?:1.7.0_45] at fr.ifremer.isisfish.util.CompileHelper.loadClass(CompileHelper.java:103) [isis-fish-4.4.0.0-SNAPSHOT.jar:?] at fr.ifremer.isisfish.datastore.JavaSourceStorage.getCodeClass(JavaSourceStorage.java:153) [isis-fish-4.4.0.0-SNAPSHOT.jar:?] at fr.ifremer.isisfish.datastore.JavaSourceStorage.getNewInstance(JavaSourceStorage.java:167) [isis-fish-4.4.0.0-SNAPSHOT.jar:?] at fr.ifremer.isisfish.simulator.launcher.InProcessSimulatorLauncher.localSimulateSameThread(InProcessSimulatorLauncher.java:411) [isis-fish-4.4.0.0-SNAPSHOT.jar:?] at fr.ifremer.isisfish.simulator.launcher.InProcessSimulatorLauncher$SimThread.run(InProcessSimulatorLauncher.java:266) [isis-fish-4.4.0.0-SNAPSHOT.jar:?] ERROR|11:04:09,273|InProcessSimulatorLauncher.java|479|localSimulateSameThread|Error during simulation fr.ifremer.isisfish.IsisFishException: Can't load class: simulators.SimulatorEffortByCell_Sid at fr.ifremer.isisfish.datastore.JavaSourceStorage.getCodeClass(JavaSourceStorage.java:155) ~[isis-fish-4.4.0.0-SNAPSHOT.jar:?] at fr.ifremer.isisfish.datastore.JavaSourceStorage.getNewInstance(JavaSourceStorage.java:167) ~[isis-fish-4.4.0.0-SNAPSHOT.jar:?] at fr.ifremer.isisfish.simulator.launcher.InProcessSimulatorLauncher.localSimulateSameThread(InProcessSimulatorLauncher.java:411) [isis-fish-4.4.0.0-SNAPSHOT.jar:?] at fr.ifremer.isisfish.simulator.launcher.InProcessSimulatorLauncher$SimThread.run(InProcessSimulatorLauncher.java:266) [isis-fish-4.4.0.0-SNAPSHOT.jar:?] INFO|11:04:09,275|InProcessSimulatorLauncher.java|508|localSimulateSameThread|Simulation time: 1.104 INFO|11:04:09,297|IsisCacheBackendOnGuava.java|239|adjustedCache|Cache size ajusted to 200Mo (equivalent to 0 step need) INFO|11:04:09,298|IsisCacheBackendOnGuava.java|217|adjustedCache|Cache size not ajusted because 0 is not acceptable amount INFO|11:04:09,301|InProcessSimulatorLauncher.java|205|message|Simulation terminée NFO|11:04:09,302|SimulationControl.java|206|setText|Simulation terminée Le 10 juin 2015 10:55, Sigrid Lehuta <sigridlehuta@gmail.com> a écrit :
Merci pour les explications (et pour le PS rassurant car en effet je suis pas sure de tout comprendre). J'essaie déjà de faire fonctionner ça. Il y a peut etre un moyen de faire la même chose en ne modifiant que SiMatrix et pas ComputeMonth ca serait ideal. Je vais y reflechir.
Le 10 juin 2015 09:49, Eric Chatellier <chatellier@codelutin.com> a écrit :
merci. évidement il a fallu que je commence par une exception...
alors si je pige bien, la methode compute month telle que je l ai reecrite ds mon simulateur prend le simatrix par defaut comme argument, et il faut la forcer à utiliser mon simatrix. et c est quoi le coup du "_siMatrix" ? pourquoi pas simplement siMatrix ? _siMatrix est le _siMatrix que le simulateur te donne dans la méthode computeMonth, mais il est de type "SiMatrix" donc tes methodes
Le 09/06/2015 18:28, Sigrid Lehuta a écrit : personnelles ne sont pas utilisable.
Au debut de ta classe, il y a un autre objet "siMatrix" qui lui est de type SiMatrixEffortByCell_Sid et sur lequel tu peux appeler tes methodes. J'ai renommé, un des deux siMatrix et _siMatrix pour ne pas avoir deux fois le même nom.
En fait, j'aurais du en appeler un siMatrixSid plutot ;)
PS: C'est temporaire tout ca, c'est pas top et très dur à comprendre.
-- Éric Chatellier - www.codelutin.com - 02.40.50.29.28
_______________________________________________ Isis-fish-devel mailing list Isis-fish-devel@list.isis-fish.org http://list.isis-fish.org/cgi-bin/mailman/listinfo/isis-fish-devel
Le 10/06/2015 11:45, Sigrid Lehuta a écrit :
Ouille ça ne fonctionne pas. Le script de simulator ne compile pas et quand je tente quand même de lancer une simu (on sait jamais...), le log dit ça : Heu, bah si ca compile pas, Isis ne risque pas de pouvoir utiliser ton simulateur :D
En tout cas, l'erreur est normale. -- Éric Chatellier - www.codelutin.com - 02.40.50.29.28
OK et tu vois pourquoi ça compile pas ? ---------- 1. ERROR in C:\Users\slehuta\isis-fish-4-rc\isis-community-database\simulators\SimulatorEffortByCell_Sid.java (at line 192) .matrixCatchPerStrategyMetPerZonePop(N, pop, step); ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ The method matrixCatchPerStrategyMetPerZonePop(MatrixND, Population, TimeStep) is undefined for the type SiMatrixEffortByCell_Sid ---------- 2. ERROR in C:\Users\slehuta\isis-fish-4-rc\isis-community-database\simulators\SimulatorEffortByCell_Sid.java (at line 198) abundance = siMatrix.matrixAbundance(N, pop, step, ^^^^^^^^^^^^^^^ The method matrixAbundance(MatrixND, Population, TimeStep) in the type SiMatrixEffortByCell is not applicable for the arguments (MatrixND, Population, TimeStep, MatrixND) ---------- 3. ERROR in C:\Users\slehuta\isis-fish-4-rc\isis-community-database\simulators\SimulatorEffortByCell_Sid.java (at line 203) .matrixCatchRatePerStrategyMetPerZone(pop, step, ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ The method matrixCatchRatePerStrategyMetPerZone(Population, TimeStep) in the type SiMatrix is not applicable for the arguments (Population, TimeStep, MatrixND) ---------- 4. ERROR in C:\Users\slehuta\isis-fish-4-rc\isis-community-database\simulators\SimulatorEffortByCell_Sid.java (at line 208) .matrixCatchPerStrategyMetPerZone(N, pop, step, ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ The method matrixCatchPerStrategyMetPerZone(MatrixND, Population, TimeStep) in the type SiMatrixEffortByCell is not applicable for the arguments (MatrixND, Population, TimeStep, MatrixND) ---------- 5. ERROR in C:\Users\slehuta\isis-fish-4-rc\isis-community-database\simulators\SimulatorEffortByCell_Sid.java (at line 226) .matrixCatchPerStrategyMetPerZoneMet(N, pop, step); ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ The method matrixCatchPerStrategyMetPerZoneMet(MatrixND, Population, TimeStep) from the type SiMatrixEffortByCell is not visible ---------- 6. ERROR in C:\Users\slehuta\isis-fish-4-rc\isis-community-database\simulators\SimulatorEffortByCell_Sid.java (at line 232) .matrixCatchWeightPerStrategyMetPerZoneMet(step, ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ The method matrixCatchWeightPerStrategyMetPerZoneMet(TimeStep, Population, MatrixND) from the type SiMatrixEffortByCell is not visible ---------- 7. ERROR in C:\Users\slehuta\isis-fish-4-rc\isis-community-database\simulators\SimulatorEffortByCell_Sid.java (at line 240) MatrixND fishingMortalityPerGroup = siMatrix.fishingMortalityPerGroup(step, ^^^^^^^^^^^^^^^^^^^^^^^^ The method fishingMortalityPerGroup(TimeStep, Population, ResultManager) in the type SiMatrix is not applicable for the arguments (TimeStep, Population, ResultStorage) ---------- 7 problems (7 errors) Le 10 juin 2015 12:03, Eric Chatellier <chatellier@codelutin.com> a écrit :
Le 10/06/2015 11:45, Sigrid Lehuta a écrit :
Ouille ça ne fonctionne pas. Le script de simulator ne compile pas et quand je tente quand même de lancer une simu (on sait jamais...), le log dit ça : Heu, bah si ca compile pas, Isis ne risque pas de pouvoir utiliser ton simulateur :D
En tout cas, l'erreur est normale.
-- Éric Chatellier - www.codelutin.com - 02.40.50.29.28
_______________________________________________ Isis-fish-devel mailing list Isis-fish-devel@list.isis-fish.org http://list.isis-fish.org/cgi-bin/mailman/listinfo/isis-fish-devel
Merci pour les explications (et pour le PS rassurant car en effet je suis pas sure de tout comprendre). J'essaie déjà de faire fonctionner ça. Il y a peut etre un moyen de faire la même chose en ne modifiant que SiMatrix et pas ComputeMonth ca serait ideal. Je vais y reflechir. La solution le moins compliqué est la suivante :
@Override protected SiMatrix newSiMatrix(SimulationContext context) throws TopiaException { return new SiMatrixEffortByCell_Sid(context); } /** * Use custom "siMatrix" instead of provided _siMatrix. */ @Override protected void computeMonth(SimulationContext context, SiMatrix siMatrixParent, TimeStep step, Population pop) throws IsisFishException, TopiaException { // to add result SiMatrixEffortByCell_Sid siMatrix = (SiMatrixEffortByCell_Sid)siMatrixParent; } Donc dans computeMonth(), on "cast" le siMatrixParent pour changer son type et pouvoir disposer des nouvelles méthodes. Car ici, on sais qu'il est du type SiMatrixEffortByCell_Sid et pas seulement du type SiMatrix. Le 10/06/2015 12:05, Sigrid Lehuta a écrit :
OK et tu vois pourquoi ça compile pas ? ---------- 1. ERROR in C:\Users\slehuta\isis-fish-4-rc\isis-community-database\simulators\SimulatorEffortByCell_Sid.java (at line 192) .matrixCatchPerStrategyMetPerZonePop(N, pop, step); ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ The method matrixCatchPerStrategyMetPerZonePop(MatrixND, Population, TimeStep) is undefined for the type SiMatrixEffortByCell_Sid
Il indique le probleme: la matrixCatchPerStrategyMetPerZonePop(MatrixND, Population, TimeStep) n'existe pas dans la classe : SiMatrixEffortByCell_Sid
---------- 2. ERROR in C:\Users\slehuta\isis-fish-4-rc\isis-community-database\simulators\SimulatorEffortByCell_Sid.java (at line 198) abundance = siMatrix.matrixAbundance(N, pop, step, ^^^^^^^^^^^^^^^ The method matrixAbundance(MatrixND, Population, TimeStep) in the type SiMatrixEffortByCell is not applicable for the arguments (MatrixND, Population, TimeStep, MatrixND)
Un peu pareil, sauf que la methode matrixAbundance existe mais elle ne prend pas les mêmes parametres. Les autres erreurs sont similaires. PS: Tu peux téléphoner si c'est plus rapide à debugger que par mail... -- Éric Chatellier - www.codelutin.com - 02.40.50.29.28
participants (2)
-
Eric Chatellier -
Sigrid Lehuta