Commit e9e48f20 authored by pfreon's avatar pfreon
Browse files

Medium changes: Addition of 1) "Special Warning" regarding the use of the...

Medium changes: Addition of 1) "Special Warning" regarding the use of the double-click; 2) Tabs-window for jackknife plots when small screen

Addition of a "Special Warning" regarding the use of the double-click
Addition of the display of a Tabs-window for jackknife plots when small screen, in addition to the single multi-graph windows.
Increase in the size of characters tables Statistics and Correlation and change in the title (Rank Correlation) of the latter table.
Additional removal of the double naming of the jackknife R² (Global.r_jk instead of Global.jackknife).
File Configuration.java deleted (no more used, replaced by code in CadreMain.java, lines starting from 918 private void readConfig().
Minor changes on the display of message text.
parent ef7452b2
......@@ -405,14 +405,14 @@ public class CadreMain extends JFrame {
jPanData.setVisible(false);
jPanData.setBorder(new TitledBorder(BorderFactory.createEtchedBorder(Color.white, new Color(142, 142, 142)), "Data and statistical tables"));
jTableStat.setFont(new java.awt.Font("Dialog", 0, 10)); // Avant 0, 10. Modif. 2020.
jTableStat.setFont(new java.awt.Font("Dialog", 0, 12)); // Avant 0, 10. Modif. 2020.
// Premier argument type de police de charactere du tableau stat menu principal.
// Avant-dernier chiffre controle type de charactere (0= normal, 1 = gras, 2 = italique)
// Dernier chiffre controle taille caractères
jTableStat.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);
jTableStat.setCellSelectionEnabled(true);
jTableStat.setRowSelectionAllowed(false);
jTableCorrelation.setFont(new java.awt.Font("Dialog", 0, 10)); // Avant 0, 10. Modif. 2020.
jTableCorrelation.setFont(new java.awt.Font("Dialog", 0, 12)); // Avant 0, 10. Modif. 2020.
jTableCorrelation.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);
jTableCorrelation.setCellSelectionEnabled(true);
jTableCorrelation.setRowSelectionAllowed(false);
......@@ -680,7 +680,7 @@ public class CadreMain extends JFrame {
if (Global.CadreJackniffePlots == null) {
Cadre_Plot dlg;
dlg = new Cadre_Plot(Global.jackknifePlot);
dlg.setTitle("Climprod : Jackknife plots");
dlg.setTitle("Climprod: Jackknife plots");
dlg.setVisible(true);
Global.CadreJackniffePlots = dlg;
} else {
......@@ -878,10 +878,10 @@ public class CadreMain extends JFrame {
if (Global.test_jackknife)
{faits = faits + s + "Overall T_Jackknife on parameters: good" + s;}
else {faits = faits + s + "Overall T_Jackknife on parameters: bad" + s;}
if(Global.jackknife != 0.00)
faits = faits + s + "Jackknife coefficient of determination R²: " + nf.format(Global.jackknife) + s;
if(Global.r_jk != 0.00)
faits = faits + s + "Jackknife coefficient of determination R²: " + nf.format(Global.r_jk) + s;
else {
faits = faits + s + "Jackknife coefficient of determination R²***: " + nf.format(Global.jackknife) + s;
faits = faits + s + "Jackknife coefficient of determination R²***: " + nf.format(Global.r_jk) + s;
faits=faits+s+"***Jackknife R² estimate was negative and consequently set to zero.\nThis result is due to a poor fitting by the Marquart algorithm\nand it is commonly observed when the model does not include\nan intercept parameter or when the model includes a non-linear function.\nConsequently the display of the jackknife R² graph is not available.";
}
}
......@@ -919,6 +919,7 @@ public class CadreMain extends JFrame {
String fileSep = "";
String fileName = "";
Global.double_click = "ShowWarningDoubleClick"; // Rajout 2020.
vLastFile.clear();
fileSep = System.getProperty("file.separator");
if (fileSep.equals("/")) {
......@@ -950,6 +951,7 @@ public class CadreMain extends JFrame {
userHome = (String) ht.get("userHome");
workingDirectory = (String) ht.get("workingDirectory");
lastPathSource = (String) ht.get("lastPathSource");
Global.double_click = (String) ht.get("double_click"); // Rajout 2020.
String $key = (String) ht.get("file1");
//System.out.println("key " +$key);
int i = 1;
......@@ -1002,6 +1004,7 @@ public class CadreMain extends JFrame {
//System.out.println("configFile " +configFile);
PrintWriter out = new PrintWriter(new FileWriter(configFile));
out.println("lastPathSource|" + Global.datafilePath);
out.println("double_click|" + Global.double_click); // Rajout 2020.
out.println("workingDirectory|" + workingDirectory);
out.println("userDir|" + userDir);
out.println("userHome|" + userHome);
......
/**
* Titre : Climprod<p>
*
* Classe statique utilitaire qui g�re l'ensemble des pr�f�rences de
* l'utilisateur quant � l'emplacement de ses r�pertoires de travail.
*/
package fr.ird.climprod;
import java.io.*;
import java.util.StringTokenizer;
import java.util.Hashtable;
import java.util.HashMap;
public class Configuration {
static String workingDirectory = "";
static String applicationPathName = "";
static String reglePathName = "";
static String arbrePathName = "";
static String commentPathName = "";
static String modelePathName = "";
static String TableFisher_p_01PathName = "";
static String TableFisher_p_05PathName = "";
static String helpPathName = "";
static String userDir = "";
static String userHome = "";
static String userName = "";
static String fileSep = "";
static String lastPathSource = "";
static String fileName = "";
static {
fileSep = System.getProperty("file.separator");
if (fileSep.equals("/")) {
fileSep = "//";
}
userName = System.getProperty("user.name");
fileName = "Climprod" + userName.replace(' ', '_') + ".txt";
File pref = new File(fileName);
if (pref.exists()) {
try {
ReadFileText fl = new ReadFileText(fileName);
String[] fldat = fl.getLines();
HashMap<String, String> ht = new HashMap<String, String>();
for (int i = 0; i < fldat.length; i++) {
String key = "";
String value = "";
StringTokenizer d = new StringTokenizer(fldat[i], "|");
//System.out.println(d.countTokens());
if (d.countTokens() == 2) {
ht.put(d.nextToken(), d.nextToken());
} else {
ht.put(d.nextToken(), " ");
}
}
workingDirectory = (String) ht.get("workingDirectory");
applicationPathName = (String) ht.get("applicationPathName");
reglePathName = (String) ht.get("reglePathName");
arbrePathName = (String) ht.get("arbrePathName");
commentPathName = (String) ht.get("commentPathName");
lastPathSource = (String) ht.get("lastPathSource");
modelePathName = (String) ht.get("modelePathName");
helpPathName = (String) ht.get("helpPathName");
userDir = (String) ht.get("userDir");
userHome = (String) ht.get("userHome");
} catch (Exception e) {
System.out.println(e.getMessage());
}
} else //n'existe pas on le renseigne et on le cr�e
{
//Recherche directory application
StringTokenizer d = new StringTokenizer(System.getProperty("java.class.path"), System.getProperty("path.separator"));
String dd = d.nextToken();
int pos = dd.lastIndexOf("Climprod");
applicationPathName = dd.substring(0, pos + 8);
System.out.println("path " + applicationPathName);
reglePathName = applicationPathName + fileSep + "Regles.csv";
arbrePathName = applicationPathName + fileSep + "Arbre_decisions.csv";
commentPathName = applicationPathName + fileSep + "Comment.csv";
modelePathName = applicationPathName + fileSep + "ListeModele.csv";
TableFisher_p_01PathName = applicationPathName + fileSep + "TableFisherSnedecor_p_0.01.csv";
TableFisher_p_05PathName = applicationPathName + fileSep + "TableFisherSnedecor_p_0.05.csv";
helpPathName = applicationPathName + fileSep + "help";
File hd = new File(helpPathName);
hd.mkdir();
userDir = System.getProperty("user.dir");
userHome = System.getProperty("user.home");
workingDirectory = userHome + fileSep + ".climprod";
File wd = new File(workingDirectory);
wd.mkdir();
lastPathSource = workingDirectory;
try {
SaveConfig();
} catch (Exception ew) {
}
}
}
static public void SaveConfig() throws IOException {
PrintWriter out = new PrintWriter(new FileWriter(fileName));
out.println("workingDirectory|" + workingDirectory);
out.println("applicationPathName|" + applicationPathName);
out.println("reglePathName|" + reglePathName);
out.println("arbrePathName|" + arbrePathName);
out.println("modelePathName|" + modelePathName);
out.println("TableFisher_p_0.01PathName|" + TableFisher_p_01PathName);
out.println("TableFisher_p_0.05PathName|" + TableFisher_p_05PathName);
out.println("lastPathSource|" + lastPathSource);
out.println("userDir|" + userDir);
out.println("userHome|" + userHome);
out.println("commentPathName|" + commentPathName);
out.println("helpPathName|" + helpPathName);
out.close();
}
}
......@@ -10,6 +10,7 @@ import java.util.Vector;
import java.io.InputStream;
public class QuestionReponse {
private static int FlagDoubleClick = 0;
private static int nbData = 0;
private static int[] rTrue;
private static int[] rFalse;
......@@ -30,6 +31,18 @@ public class QuestionReponse {
private static Vector<Integer> raisonnement = new Vector<Integer>();
//private static int etapeEnCours=0;
/*
Affiche avertissement sur usage double click. Addition 2020.
*/
public static void ClickWarning() {
MsgDialogBox msg;
if (Global.double_click == null) Global.double_click = "ShowWarningDoubleClick";
if (Global.double_click.compareTo("ShowWarningDoubleClick") != 0)
Global.dbl_click = 2;
else Global.dbl_click = 1;
if(Global.dbl_click == 1)
msg = new MsgDialogBox(0, "Please note that this version of CLIMPROD allows the use of the double click \non 'Yes', 'No', 'Don't know' and numbers to answer questions with no need\n to use the 'Next' button. But before doing this please make a simple click on \nthe selected answer button to make sure that you will not skip a message that \nmay pop up in the 'Message' box located at the bottom of the window. \n\nAlternatively you can still ignore the double click option and use the 'Next' button \nas in the earlier version of CLIMPROD.", 0, Global.CadreQuestion);
}
/*
Assure la lecture du fichier des questions et initialise l'ensemble des variables de l'arbre de décision.
......@@ -109,6 +122,11 @@ public class QuestionReponse {
*/
public static void loadQuestion() {
//numEnCours=Integer.parseInt((String)htNum.get(number));
if (FlagDoubleClick == 0) {
System.out.println("Flag1 ClickWarning in QR" + "FlagDoubleClick = " + FlagDoubleClick);
QuestionReponse.ClickWarning();
FlagDoubleClick = 1;
}
if (numEnCours >= 0) {
scriptEnCours = script[indexEnCours];
......@@ -213,7 +231,6 @@ public class QuestionReponse {
selectedItem[indexEnCours] = 1;
}
}
/*
Validate the answer number to the current question and the potential corresponding rule
@param int index which represents the selected answer item number to the question
......@@ -222,8 +239,7 @@ public class QuestionReponse {
MsgDialogBox msg; // Addition 2020.
selectedItem[indexEnCours] = index;
index = index + 1;
System.out.println("In QuestionReponse. java Answer to rule " + regle[indexEnCours] + " given to question " + numEnCours + " is " + index);
//System.out.println("In QuestionReponse. java Answer to rule " + regle[indexEnCours] + " given to question " + numEnCours + " is " + index);
// build list questions for html
//System.out.println("AAA question number : "+numEnCours);
//System.out.println("AAA question : "+questxt);
......@@ -233,8 +249,21 @@ public class QuestionReponse {
//System.out.println("Dans QuestionReponse.java ligne 232, numEnCours: " + numEnCours + " questxt: " + questxt + " reptxt: " + reptxt + " commentTxt: " + commentTxt);
Global.warningDic.put(numEnCours, commentTxt);
//System.out.println("Dans QuestionReponse.java ligne 234, Global.warningDic: " + Global.warningDic + " commentTxt: " + commentTxt);
try {
switch (numEnCours) {
case 0:
System.out.println("Case 0 Global.double_click = " + Global.double_click);
if(Global.double_click == "ShowWarningDoubleClick")
throw new OnError("SPECIAL WARNING: \nPlease not that you can use the double click on 'Yes', 'No', 'Don't know'\nand other buttons to answer questions,\nbut before doing this please make a simple click on the button\nto make sure that you will not skip a message that\nmay pop up in the 'Message' box located at the bottom\nof the window.");
break;
case 105:
System.out.println("Case 103 Global.double_click = " + Global.double_click);
if (index == 1) Global.double_click = "ShowWarningDoubleClick"; // Boolean variable not use because string requested to read and write the configuration text file. Modif. 2020.
else Global.double_click = "DontShowWarningDoubleClick";
if(index == 3)
throw new OnError("It is NOT compulsory to know the answer to this question,\nbut please have a look at the help file using the 'Help (H)' button\nby using the 'Next(N)' button. \nBy default CLIMPROD will consider that the answer is 'Yes'");
break;
case 2: // Suite à réorganisation ordre des questions posées. Modif. 2020.
Global.changement_exploitation = index;
if(Global.changement_exploitation==3)
......@@ -477,7 +506,7 @@ public class QuestionReponse {
throw new OnError("It is compulsory to know the answer to this question. \nPlease have a look at the help file using the 'Help (H)' button if necessary.");
}
break;
case 98:
case 97:
Global.coeff_determination_instable = index;
if(Global.coeff_determination_instable==3) {
Global.coeff_determination_instable = 2;
......@@ -492,7 +521,8 @@ public class QuestionReponse {
}
break;
}
}catch (Exception e) {
}
catch (Exception e) {
new MsgDialogBox(0, e.getMessage(), 0, Global.CadreMain);
}
if (regle[indexEnCours] != -1) {
......@@ -523,7 +553,7 @@ public class QuestionReponse {
indexEnCours = -1;
}
System.out.println("IndexEnCours in QuestionReponse.java: " + indexEnCours);
//System.out.println("IndexEnCours in QuestionReponse.java: " + indexEnCours);
}
/*
......
......@@ -9,6 +9,8 @@ import java.util.StringTokenizer;
import java.util.Hashtable;
import java.util.HashMap;
import java.text.DecimalFormat;
import java.awt.*;
import javax.swing.*;
public class TexteRegles {
private static String [] script;
......@@ -22,7 +24,7 @@ public class TexteRegles {
private static int Flag_Modele_Lineaire_deja_recherche;
private static int Flag_Modele_Exponentiel_deja_recherche;
private static int Flag_Modele_General_deja_recherche=0;
private static int param_m_generalise;
private static int param_m_generalise;
private static String scriptEnCours;
private static String[] itemEnCours;
private static String commentaireEnCours="";
......@@ -145,9 +147,15 @@ public static void initRegles()
public static boolean isTrue(){
boolean result=false;
commentaireEnCours="";
DecimalFormat nf= new DecimalFormat(" 0.00");
DecimalFormat nf= new DecimalFormat(" 0.00");
switch(numEnCours)
{
case 30: // Averstissement usage double click. Rajout 2020.
if (Global.double_click.compareTo("ShowWarningDoubleClick") != 0) Global.dbl_click = 2;
else Global.dbl_click = 1;
//System.out.println(" TexteRegles case 30: Global.double_click = " + Global.double_click + "; dbl_click = " + dbl_click);
result = (Global.dbl_click == 1);
break;
case 41:
result = Data.getNbYears()<12;
// result=true;
......@@ -190,10 +198,7 @@ public static boolean isTrue(){
commentaireEnCours="Your case is a borderline one either because you deal only with a sub-stock or with a full metapopulation \n(and the lower is the connectivity between sub-stocks, the more borderline you are).\nYou must not extrapolate your results beyond the interval of observation of the different variables (effort and/orenvironment), ;when using the model for predictions.\nMoreover, any surplus production model using effort will implicitly make the assumption that \nno variation in recruitment due to other sub-stocks will occur.";
}
break;
/* case 34:
result = (Global.stock_unique!=1 && Global.metapopulation==1 && Global.sous_stock_isole==1); // Pas trouvé de solution pour afficher un message associé à cette règle lorsque result = true. Modif. 2020
break;
*/ case 35:
case 35:
result = (Global.under_and_over_exploited!=1);// Avant Global.under_and_over_exploited!=1 && Global.under_and_optimaly==1). Modif 2020.
break;
case 49:
......@@ -413,21 +418,27 @@ public static boolean isTrue(){
result=(Global.linear_relationship!=1);
if(result)
{
commentaireEnCours="There is no available empirical model CPUE = f(E,V) fully appropriate to your case in CLIMPROD\n";
commentaireEnCours=commentaireEnCours+"because you declared that the stock may present large fluctuations in CPUE when overexploited,\n";
commentaireEnCours=commentaireEnCours+"and that the relationship CPUE residuals = f(V) is not linear. In this particular case, the ideal model\n";
commentaireEnCours=commentaireEnCours+"CPUE = f(E,V) should be an exponential additive model with more that four parameters. This option\n";
commentaireEnCours=commentaireEnCours+"is not considered in CLIMPROD in order to avoid over-parameterized models.\n\n";
commentaireEnCours=commentaireEnCours+"Please make sure that your answer to the question 'May the stock present large fluctuations in CPUE when overexploited?'\n";
commentaireEnCours=commentaireEnCours+"was the correct one. If so, you can try to fit a model CPUE = f(E,V) where the the effect of fishing effort (E)\n";
commentaireEnCours=commentaireEnCours+"is linear which would provide a pessimistic response of the stock to overexploitation.\n";
commentaireEnCours="There is no available model CPUE = f(E,V) fully appropriate to your case\n";
commentaireEnCours=commentaireEnCours+"because you declared that the stock may present large fluctuations in abundance\n";
commentaireEnCours=commentaireEnCours+"when overexploited and that there is only one model available in CLIMPROD to\n";
commentaireEnCours=commentaireEnCours+"covers this case because other models would be overparameterized.\n";
commentaireEnCours=commentaireEnCours+"Since the available model is additive and of exponential form for CPUE = f(E)\n";
commentaireEnCours=commentaireEnCours+" and of linear form for CPUE = f(V) it was not selected because\n";
commentaireEnCours=commentaireEnCours+"from your answers to the questions related to the shape of the\n";
commentaireEnCours=commentaireEnCours+"graphical relationship between CPUE residuals and environmental values\n";
commentaireEnCours=commentaireEnCours+"CLIMPROD deduced that the relationship CPUE = f(V) is not linear.\n\n";
commentaireEnCours=commentaireEnCours+"Please make sure that your answer to the question: 'May the stock present\n";
commentaireEnCours=commentaireEnCours+"large fluctuations in CPUE when overexploited?' was the correct one.\n";
commentaireEnCours=commentaireEnCours+"If so, you can try to fit a model CPUE = f(E,V) where the the effect of\n";
commentaireEnCours=commentaireEnCours+"fishing effort (E) is linear which would provide a pessimistic response\n";
commentaireEnCours=commentaireEnCours+"of the stock to overexploitation.\n";
}
break;
case 58:
result=(((Global.numero_modele > 5) || (Global.numero_modele < 2)) && (Global.numero_modele != 20)); // Exclusion modèles CPUE=f(V) et modèle exponentiel additif
if(!result)
{
commentaireEnCours="There is no possibility of drawing MSY and MS-E graphs for the selected model\n";
commentaireEnCours="There is no possibility of drawing MSY and MS-E graphs for the selected model.\n";
}
break;
case 59:
......@@ -489,30 +500,37 @@ public static boolean isTrue(){
if(result)
commentaireEnCours="From the current rule the model " + RechercheModele.getEquation()+ " is convenient.";
break;
/* case 2:
result=(Global.test_jackknife==false);
//System.out.println("La valeur de test_jackknife est "+Global.test_jackknife);
if(result){
commentaireEnCours="The Student's test on jackknife is not acceptable.\nAt least one of the regression coefficients is not significant as you can see in the jackknife plots.\nFrom the current rule the model " + RechercheModele.getEquation()+ " is not validated";
if (Global.CadreJackniffePlots == null)
{
Cadre_Plot dlg;
dlg = new Cadre_Plot(Global.jackknifePlot);
dlg.setTitle("Climprod: Jackknife plots");
dlg.setVisible(true);
Global.CadreJackniffePlots = dlg;
}
else {Global.CadreJackniffePlots.setVisible(true);}
break;
}
else
commentaireEnCours="The Student's test on jackknife regression coefficients is acceptable";
commentaireEnCours=commentaireEnCours+"\n\nDue to usual autocorrelation in time series and non independance between CPUE and E, \nconventional statistics are usually provide too optimistic results";
break;*/
case 1:
case 1: // Rajout 2020.
result=(Global.coeff_determination_instable!=1);
GraphicsDevice gd = Global.CadreMain.getGraphicsConfiguration().getDevice();
int xscr = gd.getDisplayMode().getWidth(); // Obtient la résolution en largeur de l'écran de l'ordi utilisé.
if (xscr < 1800) {
commentaireEnCours="If the size of your screen is too small to display \ncorrectly the graphs and their full title, please";
commentaireEnCours=commentaireEnCours+"\nclose the graph window and you will access to a \nmulti-tab window showing separately all graphs.\n\n";
}
if(result)
commentaireEnCours="From the current rule the model " + RechercheModele.getEquation()+ " is not validated";
commentaireEnCours=commentaireEnCours+"From the current rule the model " + RechercheModele.getEquation()+ " is not validated";
else {
if (Global.fFsignif$ == " p>0.05") {
commentaireEnCours=commentaireEnCours+"Warning: You validated the model although the p-value\n";
commentaireEnCours=commentaireEnCours+"of the Fisher test on R² value is larger than 0.05,\n";
commentaireEnCours=commentaireEnCours+"which is not recommended.\n\n";
}
if (Global.test_jackknife == false) {
commentaireEnCours=commentaireEnCours+"Warning: You validated the model although one of the p values\n";
commentaireEnCours=commentaireEnCours+"of t-ratios of the parameters was higher thant 0.05).\n";
commentaireEnCours=commentaireEnCours+"This is not recommended except if it concerns\n";
commentaireEnCours=commentaireEnCours+"only the intercept of the equation (usually 'a').\n\n";
}
if (Global.r_jk < 0.6) {
commentaireEnCours=commentaireEnCours+"Warning: You validated the model although the jackknife R² value is\n";
commentaireEnCours=commentaireEnCours+"lower than 0.60, which is not recommended.\n\n";
}
if (Global.corrected_R2 < 0.65) {
commentaireEnCours=commentaireEnCours+"Warning: You validated the model although the correcte R² value is\n";
commentaireEnCours=commentaireEnCours+"lower than 0.65, which is not recommended.\n\n";
}
}
break;
case 0:
result=(Global.good_results!=1);
......@@ -536,7 +554,7 @@ public static boolean isTrue(){
if (result && commentaireEnCours.equals(""))
{ commentaireEnCours=(String)htComment.get(Integer.toString(numEnCours));
// System.out.println("On teste la règle (dans TexteRegles.java ligne 529) " + numEnCours + " elle est "+ result );
//System.out.println("On teste la règle (dans TexteRegles.java ligne 529) " + numEnCours + " elle est "+ result );
if (commentaireEnCours == null) commentaireEnCours = ""; // Patch 2020 pour empêcher plantage écriture questions/réponses dans fichier html
}
return result;
......
0;-1;1;41;1;;;;
1;-1;2;47;1;;;;
2;-1;3;42;1;changement_exploitation; Have there been changes in the fishing pattern during the period (effort allocation quota mesh-size ...)?;changes.hlp ;
3;4;-1;43;1;unite_standardisee;Is the fishing effort unit standardized and is the CPUE proportional to abundance?;standard.hlp ;
4;5;-1;44;1;effet_delais_abundance_negligeable;Do time-lags and deviations from the stable age structure have negligible effects on production rate?; lageffe1.hlp ;
5;9;6;-1;1;stock_unique;Does the data-set apply to a unit stock? (A "Don't know" answer will be interpreted as a conservative "No"); singlest.hlp ;
6;7;-1;46;1;metapopulation;Does the data-set applies to a metapopulation?; metapopulation.hlp ;
7;9;-1;45;1;sous_stock_isole;Does the data applies to the full metapopulation or at least to only one of its sub-stock with limited connectivity?; isostock.hlp ;
8;9;-1;34;1;;;;
9;11;10;35;1;under_and_over_exploited;Do you think that the data-set covers periods of both overexploitation and of underexploitation?; undover.hlp ;
10;11;-1;49;1;under_and_optimaly;Do you think that the data-set cover periods of both underexploitation and optimal exploitation?; undopt.hlp ;
11;12;12;37;1;statistiques_anormales;Do you see any abnormal statistics in the statistical data table?(see the second table in the Climprod frame); abnormal.hlp ;
12;13;13;36;1;unstability;Is interannual variability too large?; unstabil.hlp ;
13;14;14;38;1;abnormal_points_dist;Do you see abnormal yearly values in the histograms?; outlier.hlp ;
14;15;15;39;1;abnormal_points_scatt;Do you see outlier points?; outlier.hlp ;
15;16;16;50;1;effort_increasing;Constantly increasing effort?; increasf.hlp ;
0;-1;103;41;1;;;;;;;;;;;;;;
103;105;1;30;1;;;;;;;;;;;;;;
105;1;1;-1;1;double_click;Do you wish to see again this special warning about the double click use in CLIMPROD when you will re-open the software?;click.hlp;;;;;;;;;;;;;
1;-1;2;47;1;;;;;;;;;;;;;;
2;-1;3;42;1;changement_exploitation; Have there been changes in the fishing pattern during the period (effort allocation quota mesh-size ...)?;changes.hlp ;;;;;;;;;;;
3;4;-1;43;1;unite_standardisee;Is the fishing effort unit standardized and is the CPUE proportional to abundance?;standard.hlp ;;;;;;;;;;;
4;5;-1;44;1;effet_delais_abundance_negligeable;Do time-lags and deviations from the stable age structure have negligible effects on production rate?; lageffe1.hlp ;;;;;;;;;;;
5;9;6;-1;1;stock_unique;Does the data-set apply to a unit stock? (A 'Don't know' answer will be interpreted as a conservative 'No'); singlest.hlp ;;;;;;;;;;;
6;7;-1;46;1;metapopulation;Does the data-set applies to a metapopulation?; metapopulation.hlp ;;;;;;;;;;;
7;9;-1;45;1;sous_stock_isole;Does the data applies to the full metapopulation or at least to only one of its sub-stock with limited connectivity?; isostock.hlp ;;;;;;;;;;;
8;9;-1;34;1;;;;;;;;;;;;;;
9;11;10;35;1;under_and_over_exploited;Do you think that the data-set covers periods of both overexploitation and of underexploitation?; undover.hlp ;;;;;;;;;;;
10;11;-1;49;1;under_and_optimaly;Do you think that the data-set cover periods of both underexploitation and optimal exploitation?; undopt.hlp ;;;;;;;;;;;
11;12;12;37;1;statistiques_anormales;Do you see any abnormal statistics in the statistical data table?(see the second table in the Climprod frame); abnormal.hlp ;;;;;;;;;;;
12;13;13;36;1;unstability;Is interannual variability too large?; unstabil.hlp ;;;;;;;;;;;
13;14;14;38;1;abnormal_points_dist;Do you see abnormal yearly values in the histograms?; outlier.hlp ;;;;;;;;;;;
14;15;15;39;1;abnormal_points_scatt;Do you see outlier points?; outlier.hlp ;;;;;;;;;;;
15;16;16;50;1;effort_increasing;Constantly increasing effort?; increasf.hlp ;;;;;;;;;;;
16;17;17;40;1;independance;Are the two variables dependent?; independ.hlp ;;;;;;;;;;;
17;18;18;-1;1;nb_classes_exploitees;Number of significantly exploited year-classes; nbclass.hlp ;1;2;3;4;5;6;7;8;>8;;;
17;18;18;-1;1;nb_classes_exploitees;Number of significantly exploited year-classes; nbclass.hlp ;1;2;3;4;5;6;7;8;>8;;
18;56;19;-1;1;effort_preponderant;Is the influence of the environment on CPUE more important than the influence of fishing effort?; fishmore.hlp ;;;;;;;;;;;
19;20;-1;48;1;decreasing_relationship;Does this plot appear to be decreasing?; decreas.hlp ;;;;;;;;;;;
20;39;21;17;1;obviously;Does this plot look obviously linear?; obvious.hlp ;;;;;;;;;;;
......@@ -25,49 +27,49 @@
24;25;25;-1;1;rapport_vie_exploitee_inferieur_deux;Is the ratio (lifespan/number of exploited year-classes) lower than 2?; ratio.hlp ;;;;;;;;;;;
25;26;26;-1;1;reserves_naturelles;Are there natural protected areas for the stock or constantly inacessible adult biomass?; protect.hlp ;;;;;;;;;;;
26;27;27;-1;1;premiere_reproduction_avant_recrutement;Are there one or several non negligible spawnings before recruitment?; firstspa.hlp ;;;;;;;;;;;
27;28;28;-1;1;fecondite_faible;Is the fecundity of the species very low (sharks mammals etc.)?; fecundit.hlp ;;;;;;;;;;;;;;;;;;;;;
27;28;28;-1;1;fecondite_faible;Is the fecundity of the species very low (sharks mammals etc.)?; fecundit.hlp ;;;;;;;;;;;
28;29;29;-1;1;cpue_unstable;Is there a strong instability in the cpue time series?; pueunsta.hlp ;;;;;;;;;;;
29;41;30;10;1;;;;;;;;;;;;;;
30;41;31;11;1;;;;;;;;;;;;;;
31;41;32;12;1;;;;;;
32;41;33;13;1;;;;;;
33;41;34;14;1;;;;;;
34;41;35;16;1;;;;;;
35;39;36;20;1;;;;;;
36;39;37;22;1;;;;;;
37;39;38;21;1;;;;;;
38;43;43;23;1;;;;;;
39;40;45;24;2;;;;;;
40;101;42;51;2;;;;;;
41;42;45;25;2;;;;;;
42;101;101;52;2;;;;;;
43;101;44;51;2;;;;;;
44;101;101;52;2;;;;;;
45;95;46;6;2;;;;;;
46;102;48;-1;1;environmental_influence;Does the environment influence:; Influenc.hlp ;abundance;catchability;both
102;47;48;56;1;;;;;;
47;50;48;-1;1;cpue_sous_sur_production;May the stock present large fluctuations in CPUE when overexploited?; additif.hlp ;;;;;;;;;;;;
48;104;49;17;1;linear_relationship;Does this plot look linear; linear.hlp ;;;;;;;;;;;;
49;104;104;-1;1;monotonic_relationship;Does this plot look monotonic?; monotoni.hlp ;;;;;;;;;;;;
50;104;-1;57;1;linear_relationship;Does this plot look linear?; linear.hlp ;;;;;;;;;;;;
104;54;51;59;1;;;;;;
51;52;52;-1;1;recruitment_age;Age at recruitment; Agerec.hlp ;1;2;3;4;5;6;7;8;>8;;;;
52;53;53;-1;1;begin_influence_period;Age at the begining of environmental influence; begin.hlp ;0;1;2;3;4;5;6;7;8;>8;;;;
53;54;54;-1;1;end_influence_period;Age at the end of environmental influence; end.hlp ;0;1;2;3;4;5;6;7;8;>8;;;;
54;95;55;4;2;;;;;;;;;;;;;;;
55;95;-2;5;2;;;;;;;;;;;;;;;
56;57;57;-1;1;recruitment_age;Age at recruitment; Agerec.hlp ;1;2;3;4;5;6;7;8;9;10;>10;
57;58;58;-1;1;begin_influence_period;Age at the begining of environmental influence; begin.hlp ;0;1;2;3;4;5;6;7;8;>8;;;;
58;59;59;-1;1;end_influence_period;Age at the end of environmental influence; end.hlp ;0;1;2;3;4;5;6;7;8;>8;;;;
59;62;60;-1;1;linear_relationship;Does_this_plot_look_linear?; linear.hlp ;;;;;;;;;;;;
60;62;63;-1;1;monotonic_relationship;Does this plot look monotonic?; monotoni.hlp ;;;;;;;;;;;;
61;64;62;26;1;;;;;;;;;;;;;;;
62;64;63;28;1;;;;;;;;;;;;;;;
31;41;32;12;1;;;;;;;;;;;;;;
32;41;33;13;1;;;;;;;;;;;;;;
33;41;34;14;1;;;;;;;;;;;;;;
34;41;35;16;1;;;;;;;;;;;;;;
35;39;36;20;1;;;;;;;;;;;;;;
36;39;37;22;1;;;;;;;;;;;;;;
37;39;38;21;1;;;;;;;;;;;;;;
38;43;43;23;1;;;;;;;;;;;;;;
39;40;45;24;2;;;;;;;;;;;;;;
40;101;42;51;2;;;;;;;;;;;;;;
41;42;45;25;2;;;;;;;;;;;;;;
42;101;101;52;2;;;;;;;;;;;;;;
43;101;44;51;2;;;;;;;;;;;;;;
44;101;101;52;2;;;;;;;;;;;;;;
45;95;46;6;2;;;;;;;;;;;;;;
46;102;48;-1;1;environmental_influence;Does the environment influence:; Influenc.hlp ;abundance;catchability;both;;;;;;;;
102;47;48;56;1;;;;;;;;;;;;;;
47;50;48;-1;1;cpue_sous_sur_production;May the stock present large fluctuations in abundance when overexploited?; additif.hlp ;;;;;;;;;;;
48;104;49;17;1;linear_relationship;Does this plot look linear; linear.hlp ;;;;;;;;;;;
49;104;104;-1;1;monotonic_relationship;Does this plot look monotonic?; monotoni.hlp ;;;;;;;;;;;
50;104;-1;57;1;linear_relationship;Does this plot look linear?; linear.hlp ;;;;;;;;;;;
104;54;51;59;1;;;;;;;;;;;;;;
51;52;52;-1;1;recruitment_age;Age at recruitment; Agerec.hlp ;1;2;3;4;5;6;7;8;>8;;
52;53;53;-1;1;begin_influence_period;Age at the begining of environmental influence; begin.hlp ;0;1;2;3;4;5;6;7;8;>8;
53;54;54;-1;1;end_influence_period;Age at the end of environmental influence; end.hlp ;0;1;2;3;4;5;6;7;8;>8;
54;95;55;4;2;;;;;;;;;;;;;;
55;95;-2;5;2;;;;;;;;;;;;;;
56;57;57;-1;1;recruitment_age;Age at recruitment; Agerec.hlp ;1;2;3;4;5;6;7;8;9;10;>10
57;58;58;-1;1;begin_influence_period;Age at the begining of environmental influence; begin.hlp ;0;1;2;3;4;5;6;7;8;>8;
58;59;59;-1;1;end_influence_period;Age at the end of environmental influence; end.hlp ;0;1;2;3;4;5;6;7;8;>8;
59;62;60;-1;1;linear_relationship;Does_this_plot_look_linear?; linear.hlp ;;;;;;;;;;;
60;62;63;-1;1;monotonic_relationship;Does this plot look monotonic?; monotoni.hlp ;;;;;;;;;;;
61;64;62;26;1;;;;;;;;;;;;;;
62;64;63;28;1;;;;;;;;;;;;;;
63;64;64;29;1;;;;;;;;;;;;;;
64;95;65;9;2;;;;;;;;;;;;;;
65;-2;66;53;2;;;;;;;;;;;;;;
66;67;68;-1;1;environmental_influence;Does the environment influence:; Influenc.hlp ;abundance;catchability;both;;;;;;;;
67;68;68;-1;1;cpue_sous_sur_production;May the stock present large fluctuations in CPUE when overexploited?; additif.hlp;;;;;;;;;;;
67;68;68;-1;1;cpue_sous_sur_production;May the stock present large fluctuations in abundance when overexploited?; additif.hlp;;;;;;;;;;;
68;87;69;17;1;obviously;Does this plot look obviously linear?; obvious.hlp ;;;;;;;;;;;
69;87;70;18;1;pessimiste;Do you have any (additional) reason to expect highly unstable behaviour or collapse of the stock?; pessimis.hlp ;;;;;;;;;;;
70;87;71;19;1;stock_deja_effondre;Did the stock already collapse or exhibit drastic decrease(s) in catches?; collapse.hlp ;;;;;;;;;;;
......@@ -75,30 +77,30 @@
72;73;73;-1;1;rapport_vie_exploitee_inferieur_deux;Is the ratio (lifespan/number of exploited year-classes) lower than 2?; ratio.hlp ;;;;;;;;;;;
73;74;74;-1;1;reserves_naturelles;Are there natural protected areas for the stock or constantly inacessible adult biomass?; protect.hlp ;;;;;;;;;;;
74;75;75;-1;1;premiere_reproduction_avant_recrutement;Are there one or several non negligible spawnings before recruitment?; firstspa.hlp ;;;;;;;;;;;
75;76;76;-1;1;fecondite_faible;Is the fecundity of the species very low (sharks mammals etc.)?; fecundit.hlp ;;;;;;;;;;;;;;;;;;;;;
75;76;76;-1;1;fecondite_faible;Is the fecundity of the species very low (sharks mammals etc.)?; fecundit.hlp ;;;;;;;;;;;
76;77;77;-1;1;cpue_unstable;Is there a strong instability in the cpue time series?; unstabil.hlp ;;;;;;;;;;;
77;89;78;10;1;;;;;;;;;;;;;;
78;89;79;11;1
79;89;80;12;1
80;89;81;13;1
81;89;82;14;1
82;89;83;16;1
83;87;84;20;1
84;87;85;22;1
85;87;86;21;1
86;91;91;23;1
87;88;93;24;2
88;90;90;51;2
89;90;93;25;2
90;93;93;52;2
91;95;92;51;2
92;93;93;52;2
93;95;94;7;2
94;95;-2;8;2;;;;
95;96;-3;0;2;good_results;Is this an acceptable model?; acceptab.hlp ;
96;98;-3;15;3;trend_residuals;Are there a good fit and no trend or strong autocorrelation in residuals?; fitresid.hlp ;
98;103;-3;1;3;coeff_determination_instable;Do you validate the model from the graphical and statistical results that appear in the Jackknife plots window (p values of t-ratios of the parameters, R² values, p value of F)? (See help file for suggestions); valide.hlp ;;;;;;;
103;99;100;58;2
99;100;-3;55;3;acceptable_graphs;Are the shapes of the MSY and MS-E graphs acceptable?; MSY_MSE_graphs.hlp;
100;-4;-4;3;3;;;;
101;-2;45;54;2
78;89;79;11;1;;;;;;;;;;;;;;
79;89;80;12;1;;;;;;;;;;;;;;
80;89;81;13;1;;;;;;;;;;;;;;
81;89;82;14;1;;;;;;;;;;;;;;