Bonjour à tous, Afin de la dynamiser un peu, je relance sur la liste cette discussion qui avait été commencée en /off/ (j'y synthétise les réponses à quelques questions que cette proposition avait déjà soulevées). Un petit mot de contexte pour ceux qui ne sont pas au courant : dans le cadre de mon postdoc, j'ai pour mission de faire un couplage entre une approche de planification spatiale de conservation (utilisant Marxan with Zones, qui permet d'optimiser le /design/ d'aires marines protégées) avec un modèle ISIS-Fish en Manche Est. La première étape est d'utiliser dans ISIS des zones de réduction d'effort définies par engin à l'aide de Marxan. Après discussion avec Stéphanie et Sigrid, il apparait que l'utilisation du simulateur par cellule est /(//i//)/ plus simple (inutile de redéfinir autant de métiers et zones métiers que de pourcentage de réduction d'effort par engin, comme ce serait le cas avec le simulateur par défaut) et /(ii)/ bien plus à même de retranscrire les effets d'une gestion spatialisée à une échelle fine. Il a donc été choisi de s'inspirer de l'actuel simulateur par cellule et de modifier les scripts afin d'introduire dans l'équation de mortalité par pêche un terme de limitation d'effort (dans SiMatrix) estimé, le cas échéant, à l'échelle de la cellule par évaluation d'intersection avec des zones de réduction d'effort pour l'engin courant. La limitation d'effort serait bien entendu fixée à zéro en l'absence de zones de limitation d'effort. J'ai donc codé, en m'inspirant d'un premier travail de préparation fait avec Éric, quelques modifications qui devraient permettre de réaliser ce couplage. Et je souhaiterais les soumettre à vos critiques et éventuelle approbation. Le code que vous trouverez ci-joint, adapté de la *version 4.2.1.2*, aspire à être le plus générique possible et se caractérise par : * un nouveau simulateur, SimulatorEffortByCellMarxanWithZones.java qui, comme le script du simulateur par cellule, ne fait que définir un tag dans le context : "effortByCellMarxanWithZones" = "true". * une modification de la fonction isEffortByCell() (lignes 342+ de DefaultSimulator.java) afin d'entrer en mode simulation par cellule également lorsque ce nouveau tag est défini. À noter que pour éviter cette modification il devrait être possible - et sûrement souhaitable - de définir deux tags effortMarxanWithZones et effortByCell distincts à l'aide du nouveau simulateur. Je vous l'envoie toutefois en l'état, en attendant d'avoir pu tester cette solution. * une nouvelle règle de gestion (ReductionEffortMwZPreSimu.java) qui définit en présimulation les zones de réduction d'effort et le paramètre (proportion) de réduction associé pour chaque engin, à partir d'un fichier de sorties Marxan (fichier joint effortRedISIS_3.csv, une ligne par zone : <engin>;<proportion réduction>;<Cell1>,<Cell2>,...). De plus, si la proportion de réduction d'effort est 1.0 sur une zone, celle-ci est ajoutée à la table NoActivity de l'engin. * une modification de SiMatrix.java qui se décline en deux parties : 1. ajout d'une fonction locale qui permet de tester si on est dans une simu Marxan (lignes 82+ ; teste le tag définit par le nouveau simulateur). 2. modification (lignes 885-912) de la fonction qui calcule la mortalité par pêche au niveau de la cellule (matrixFishingMortalityPerCell) : * ajout d'un facteur de réduction d'effort, à 0.0 par défaut, utilisé dans l'équation de mortalité. * modulation de ce facteur en fonction de l'intersection avec les zones de réduction d'effort de l'engin, uniquement si on est dans une simu Marxan (reste 0.0 sinon). Du coup le script reste parfaitement utilisable avec les autres simulateurs : * simulateur par défaut : cette fonction modifiée n'est simplement pas utilisée. * simulateur par cellule simple : l'effort est multiplié par (1.0 - 0.0) dans tous les cas. Les modifications apportées au code des fonctions fondamentales d'ISIS (hors règle) sont donc relativement légère et - à mon avis - faciles à maintenir : toute amélioration/correction de bug apporté(e) au simulateur par cellule bénéficierait systématiquement au simulateur "Marxan". Ces scripts ont été testés et donnent des sorties qui paraissent cohérentes avec la base Manche Est, datée du 21/10/2013, de Sigrid. Toutes vos remarques et suggestions seront les bienvenues. N'hésitez pas a demander des précisions si quelque chose ne semble pas clair. Yves -- ------------------------------------------------------------ Yves REECHT Laboratoire Ressources Halieutiques IFREMER - Centre Manche Mer du Nord 150, Quai Gambetta 62200 Boulogne-sur-Mer FRANCE tel. +33 (0)3 21 99 56 09 --------------------------------------------------)><))))°>