Author: tchemit Date: 2014-06-04 15:08:08 +0200 (Wed, 04 Jun 2014) New Revision: 1179 Url: http://forge.codelutin.com/projects/coser/repository/revisions/1179 Log: refs-80 #4651: Utiliser des r?\195?\169sultats de type EchoBase dans le site des indicateurs refs-80 #4705: Fournir les textes ?\195?\160 modifier pour les diff?\195?\169rents ?\195?\169crans Added: trunk/coser-business/src/main/java/fr/ifremer/coser/result/repository/echobase/command/GetMatchingRepositoryTypeForMapResultCommand.java trunk/coser-business/src/main/java/fr/ifremer/coser/result/repository/legacy/command/GetMatchingRepositoryTypeForMapResultCommand.java trunk/coser-business/src/main/java/fr/ifremer/coser/result/request/GetMatchingRepositoryTypeForMapResultRequest.java Modified: trunk/coser-business/src/main/java/fr/ifremer/coser/result/CoserRequestExecutor.java trunk/coser-business/src/main/java/fr/ifremer/coser/result/repository/echobase/EchoBaseResultRepositoryType.java trunk/coser-business/src/main/java/fr/ifremer/coser/result/repository/legacy/LegacyResultRepositoryType.java trunk/coser-web/src/main/java/fr/ifremer/coser/web/ServiceHelper.java trunk/coser-web/src/main/java/fr/ifremer/coser/web/actions/map/MapAction.java trunk/coser-web/src/main/resources/i18n/coser-web_en_GB.properties trunk/coser-web/src/main/resources/i18n/coser-web_fr_FR.properties trunk/coser-web/src/main/webapp/WEB-INF/content/map/facade.jsp trunk/coser-web/src/main/webapp/WEB-INF/content/map/map.jsp Modified: trunk/coser-business/src/main/java/fr/ifremer/coser/result/CoserRequestExecutor.java =================================================================== --- trunk/coser-business/src/main/java/fr/ifremer/coser/result/CoserRequestExecutor.java 2014-06-04 11:07:11 UTC (rev 1178) +++ trunk/coser-business/src/main/java/fr/ifremer/coser/result/CoserRequestExecutor.java 2014-06-04 13:08:08 UTC (rev 1179) @@ -23,6 +23,7 @@ */ import com.google.common.base.Preconditions; +import com.google.common.collect.ImmutableList; import com.google.common.collect.Lists; import com.google.common.collect.Maps; import fr.ifremer.coser.CoserApplicationContext; @@ -72,6 +73,8 @@ protected VoidResult voidResult; + protected List<ResultRepository> matchingRepositories; + public CoserRequestExecutor(CoserApplicationContext applicationContext, CoserMainRepositoryProvider repositoryProvider) { Preconditions.checkNotNull(applicationContext); @@ -140,6 +143,8 @@ repositories.toArray(new ResultRepository[repositories.size()])); } + matchingRepositories = ImmutableList.copyOf(repositories); + ResultRepository repository = repositories.get(0); // execute @@ -184,6 +189,8 @@ List<ResultRepository> repositories = getMatchingRepositories(context, request); + matchingRepositories = ImmutableList.copyOf(repositories); + for (ResultRepository repository : repositories) { CoserResult repositoryResult = execute(context, repository, request); @@ -235,6 +242,14 @@ return resultAsMap; } + public List<ResultRepository> getMatchingRepositories() { + return matchingRepositories; + } + + public ResultRepository getUniqueMatchingRepository() { + return matchingRepositories.get(0); + } + // --------------------------------------------------------------------- // // --- Internal Methods ------------------------------------------------ // // --------------------------------------------------------------------- // Modified: trunk/coser-business/src/main/java/fr/ifremer/coser/result/repository/echobase/EchoBaseResultRepositoryType.java =================================================================== --- trunk/coser-business/src/main/java/fr/ifremer/coser/result/repository/echobase/EchoBaseResultRepositoryType.java 2014-06-04 11:07:11 UTC (rev 1178) +++ trunk/coser-business/src/main/java/fr/ifremer/coser/result/repository/echobase/EchoBaseResultRepositoryType.java 2014-06-04 13:08:08 UTC (rev 1179) @@ -39,6 +39,7 @@ import fr.ifremer.coser.result.repository.echobase.command.GetIndicatorsForExtractRawDataAndResultsCommand; import fr.ifremer.coser.result.repository.echobase.command.GetIndicatorsForPopulationIndicatorResultCommand; import fr.ifremer.coser.result.repository.echobase.command.GetMapResultCommand; +import fr.ifremer.coser.result.repository.echobase.command.GetMatchingRepositoryTypeForMapResultCommand; import fr.ifremer.coser.result.repository.echobase.command.GetPopulationIndicatorResultDataCommand; import fr.ifremer.coser.result.repository.echobase.command.GetPopulationIndicatorResultGraphCommand; import fr.ifremer.coser.result.repository.echobase.command.GetResultNameCommand; @@ -62,6 +63,7 @@ import fr.ifremer.coser.result.request.GetIndicatorsForExtractRawDataAndResultsRequest; import fr.ifremer.coser.result.request.GetIndicatorsForPopulationIndicatorResultRequest; import fr.ifremer.coser.result.request.GetMapResultRequest; +import fr.ifremer.coser.result.request.GetMatchingRepositoryTypeForMapResultRequest; import fr.ifremer.coser.result.request.GetPopulationIndicatorResultDataRequest; import fr.ifremer.coser.result.request.GetPopulationIndicatorResultGraphRequest; import fr.ifremer.coser.result.request.GetResultNameRequest; @@ -154,6 +156,7 @@ // add results result.put(GetResultNameRequest.class, GetResultNameCommand.class); result.put(CopyRepositoryRequest.class, CopyRepositoryCommand.class); + result.put(GetMatchingRepositoryTypeForMapResultRequest.class, GetMatchingRepositoryTypeForMapResultCommand.class); return result; } Added: trunk/coser-business/src/main/java/fr/ifremer/coser/result/repository/echobase/command/GetMatchingRepositoryTypeForMapResultCommand.java =================================================================== --- trunk/coser-business/src/main/java/fr/ifremer/coser/result/repository/echobase/command/GetMatchingRepositoryTypeForMapResultCommand.java (rev 0) +++ trunk/coser-business/src/main/java/fr/ifremer/coser/result/repository/echobase/command/GetMatchingRepositoryTypeForMapResultCommand.java 2014-06-04 13:08:08 UTC (rev 1179) @@ -0,0 +1,32 @@ +package fr.ifremer.coser.result.repository.echobase.command; + +import fr.ifremer.coser.result.request.GetMatchingRepositoryTypeForMapResultRequest; +import fr.ifremer.coser.result.result.VoidResult; + +import java.io.File; + +/** + * Created on 6/4/14. + * + * @author Tony Chemit <chemit@codelutin.com> + * @since 1.5 + */ +public class GetMatchingRepositoryTypeForMapResultCommand extends AbstractEchoBaseCommand<GetMatchingRepositoryTypeForMapResultRequest> { + + @Override + public boolean accept(GetMatchingRepositoryTypeForMapResultRequest request) { + boolean result = repository.matchFacade(request) && + repository.matchZone(request); + if (result) { + File file = repository.getMapSpeciesFile(request.getSpecies()); + result = file != null; + } + return result; + } + + @Override + public VoidResult execute(GetMatchingRepositoryTypeForMapResultRequest request) { + return newVoidResult(); + } + +} \ No newline at end of file Property changes on: trunk/coser-business/src/main/java/fr/ifremer/coser/result/repository/echobase/command/GetMatchingRepositoryTypeForMapResultCommand.java ___________________________________________________________________ Added: svn:eol-style + native Added: svn:keywords + Author Date Id Revision Modified: trunk/coser-business/src/main/java/fr/ifremer/coser/result/repository/legacy/LegacyResultRepositoryType.java =================================================================== --- trunk/coser-business/src/main/java/fr/ifremer/coser/result/repository/legacy/LegacyResultRepositoryType.java 2014-06-04 11:07:11 UTC (rev 1178) +++ trunk/coser-business/src/main/java/fr/ifremer/coser/result/repository/legacy/LegacyResultRepositoryType.java 2014-06-04 13:08:08 UTC (rev 1179) @@ -38,6 +38,7 @@ import fr.ifremer.coser.result.repository.legacy.command.GetIndicatorsForExtractRawDataAndResultsCommand; import fr.ifremer.coser.result.repository.legacy.command.GetIndicatorsForPopulationIndicatorResultCommand; import fr.ifremer.coser.result.repository.legacy.command.GetMapResultCommand; +import fr.ifremer.coser.result.repository.legacy.command.GetMatchingRepositoryTypeForMapResultCommand; import fr.ifremer.coser.result.repository.legacy.command.GetPopulationIndicatorResultDataCommand; import fr.ifremer.coser.result.repository.legacy.command.GetPopulationIndicatorResultGraphCommand; import fr.ifremer.coser.result.repository.legacy.command.GetResultNameCommand; @@ -60,6 +61,7 @@ import fr.ifremer.coser.result.request.GetIndicatorsForExtractRawDataAndResultsRequest; import fr.ifremer.coser.result.request.GetIndicatorsForPopulationIndicatorResultRequest; import fr.ifremer.coser.result.request.GetMapResultRequest; +import fr.ifremer.coser.result.request.GetMatchingRepositoryTypeForMapResultRequest; import fr.ifremer.coser.result.request.GetPopulationIndicatorResultDataRequest; import fr.ifremer.coser.result.request.GetPopulationIndicatorResultGraphRequest; import fr.ifremer.coser.result.request.GetResultNameRequest; @@ -154,7 +156,7 @@ // add results result.put(GetResultNameRequest.class, GetResultNameCommand.class); - + result.put(GetMatchingRepositoryTypeForMapResultRequest.class, GetMatchingRepositoryTypeForMapResultCommand.class); return result; } } Added: trunk/coser-business/src/main/java/fr/ifremer/coser/result/repository/legacy/command/GetMatchingRepositoryTypeForMapResultCommand.java =================================================================== --- trunk/coser-business/src/main/java/fr/ifremer/coser/result/repository/legacy/command/GetMatchingRepositoryTypeForMapResultCommand.java (rev 0) +++ trunk/coser-business/src/main/java/fr/ifremer/coser/result/repository/legacy/command/GetMatchingRepositoryTypeForMapResultCommand.java 2014-06-04 13:08:08 UTC (rev 1179) @@ -0,0 +1,32 @@ +package fr.ifremer.coser.result.repository.legacy.command; + +import fr.ifremer.coser.result.request.GetMatchingRepositoryTypeForMapResultRequest; +import fr.ifremer.coser.result.result.VoidResult; + +import java.io.File; + +/** + * Created on 6/4/14. + * + * @author Tony Chemit <chemit@codelutin.com> + * @since 1.5 + */ +public class GetMatchingRepositoryTypeForMapResultCommand extends AbstractLegacyCommand<GetMatchingRepositoryTypeForMapResultRequest> { + + @Override + public boolean accept(GetMatchingRepositoryTypeForMapResultRequest request) { + boolean result = repository.matchFacade(request) && + repository.matchZone(request); + if (result) { + File file = repository.getMapSpeciesFile(request.getSpecies()); + result = file != null; + } + return result; + } + + @Override + public VoidResult execute(GetMatchingRepositoryTypeForMapResultRequest request) { + return newVoidResult(); + } + +} \ No newline at end of file Property changes on: trunk/coser-business/src/main/java/fr/ifremer/coser/result/repository/legacy/command/GetMatchingRepositoryTypeForMapResultCommand.java ___________________________________________________________________ Added: svn:eol-style + native Added: svn:keywords + Author Date Id Revision Added: trunk/coser-business/src/main/java/fr/ifremer/coser/result/request/GetMatchingRepositoryTypeForMapResultRequest.java =================================================================== --- trunk/coser-business/src/main/java/fr/ifremer/coser/result/request/GetMatchingRepositoryTypeForMapResultRequest.java (rev 0) +++ trunk/coser-business/src/main/java/fr/ifremer/coser/result/request/GetMatchingRepositoryTypeForMapResultRequest.java 2014-06-04 13:08:08 UTC (rev 1179) @@ -0,0 +1,61 @@ +package fr.ifremer.coser.result.request; + +import com.google.common.base.Preconditions; +import fr.ifremer.coser.result.CoserRequest; + +/** + * To find out whihc repository type matchs this request. + * + * Created on 6/4/14. + * + * @author Tony Chemit <chemit@codelutin.com> + * @since 1.5 + */ +public class GetMatchingRepositoryTypeForMapResultRequest implements CoserRequest, CoserRequestFacadeAware, CoserRequestZoneAware, CoserRequestSpeciesAware { + + private static final long serialVersionUID = 1L; + + protected String facade; + + protected String zone; + + protected String species; + + @Override + public boolean isFilled() { + return !(facade == null || zone == null && species == null); + } + + @Override + public String getFacade() { + return facade; + } + + @Override + public void setFacade(String facade) { + Preconditions.checkNotNull(facade); + this.facade = facade; + } + + @Override + public String getZone() { + return zone; + } + + @Override + public void setZone(String zone) { + Preconditions.checkNotNull(zone); + this.zone = zone; + } + + @Override + public String getSpecies() { + return species; + } + + @Override + public void setSpecies(String species) { + Preconditions.checkNotNull(species); + this.species = species; + } +} Property changes on: trunk/coser-business/src/main/java/fr/ifremer/coser/result/request/GetMatchingRepositoryTypeForMapResultRequest.java ___________________________________________________________________ Added: svn:eol-style + native Added: svn:keywords + Author Date Id Revision Modified: trunk/coser-web/src/main/java/fr/ifremer/coser/web/ServiceHelper.java =================================================================== --- trunk/coser-web/src/main/java/fr/ifremer/coser/web/ServiceHelper.java 2014-06-04 11:07:11 UTC (rev 1178) +++ trunk/coser-web/src/main/java/fr/ifremer/coser/web/ServiceHelper.java 2014-06-04 13:08:08 UTC (rev 1179) @@ -27,6 +27,8 @@ import fr.ifremer.coser.bean.ZoneMap; import fr.ifremer.coser.result.CoserRequest; import fr.ifremer.coser.result.CoserRequestContext; +import fr.ifremer.coser.result.CoserRequestExecutor; +import fr.ifremer.coser.result.repository.ResultRepository; import fr.ifremer.coser.result.repository.ResultRepositoryType; import fr.ifremer.coser.result.request.DeleteResultsRequest; import fr.ifremer.coser.result.request.ExtractRawDataAndResultsRequest; @@ -194,6 +196,14 @@ return result; } + public ResultRepositoryType getMatchingRepositoryType(CoserRequest request) { + CoserRequestContext context = newRequestContext(); + CoserRequestExecutor coserRequestExecutor = webResultService.executeAll(context, request); + //FIXME We tak the first repository... + ResultRepository matchingRepository = coserRequestExecutor.getUniqueMatchingRepository(); + return matchingRepository.getResultRepositoryType(); + } + // --------------------------------------------------------------------- // // --- Internal methods ------------------------------------------------ // // --------------------------------------------------------------------- // Modified: trunk/coser-web/src/main/java/fr/ifremer/coser/web/actions/map/MapAction.java =================================================================== --- trunk/coser-web/src/main/java/fr/ifremer/coser/web/actions/map/MapAction.java 2014-06-04 11:07:11 UTC (rev 1178) +++ trunk/coser-web/src/main/java/fr/ifremer/coser/web/actions/map/MapAction.java 2014-06-04 13:08:08 UTC (rev 1179) @@ -21,6 +21,9 @@ package fr.ifremer.coser.web.actions.map; +import fr.ifremer.coser.result.repository.ResultRepositoryType; +import fr.ifremer.coser.result.repository.echobase.EchoBaseResultRepositoryType; +import fr.ifremer.coser.result.request.GetMatchingRepositoryTypeForMapResultRequest; import fr.ifremer.coser.result.request.GetSpeciesForMapResultRequest; import fr.ifremer.coser.result.request.GetZonesForMapResultRequest; import fr.ifremer.coser.web.actions.common.AbstractCoserJspAction; @@ -45,6 +48,8 @@ protected String species; + protected ResultRepositoryType matchingrepositoryType; + public void setFacade(String facade) { this.facade = facade; } @@ -90,12 +95,33 @@ return getService().getSpeciesDisplayName(request, species); } -// public String getFacadeDisplayName() { + public boolean isEchobaseResult() { + return getMatchingrepositoryType().getId().equals(EchoBaseResultRepositoryType.ID); + } + + protected ResultRepositoryType getMatchingrepositoryType() { + if (matchingrepositoryType == null) { + GetMatchingRepositoryTypeForMapResultRequest request = + requestBuilder(GetMatchingRepositoryTypeForMapResultRequest.class). + addFacade(facade). + addZone(zone). + addSpecies(species). + toRequest(); + try { + matchingrepositoryType = getService().getMatchingRepositoryType(request); + } catch (Exception e) { + e.printStackTrace(); + } + } + return matchingrepositoryType; + } + + // public String getFacadeDisplayName() { // WebService webService = ServiceFactory.getWebService(); // String displayName = null; // try { // displayName = webService.getFacades().get(facade); -// } catch (CoserBusinessException ex) { +// } catch (CoserBusinessException ex) {sm // throw new CoserWebException("Can't get species display name", ex); // } // return displayName; Modified: trunk/coser-web/src/main/resources/i18n/coser-web_en_GB.properties =================================================================== --- trunk/coser-web/src/main/resources/i18n/coser-web_en_GB.properties 2014-06-04 11:07:11 UTC (rev 1178) +++ trunk/coser-web/src/main/resources/i18n/coser-web_en_GB.properties 2014-06-04 13:08:08 UTC (rev 1179) @@ -75,7 +75,7 @@ message.index.paragraph3=Each survey is carried out using a specific sampling design. Data analyses and interpretation of each time series must therefore take into account the sampling designs. The data are presented by survey series on the web site. message.index.paragraph4=The species codes used in the data tables are those of the taxinomic reference file of the Système d'informations halieutiques de l'Ifremer (%1s). message.index.paragraph5=The link below allows you to extract the elements of the site (graphics and data) in the form of a .zip file (containing a pdf document and data) -message.index.partnerparagraph1=The results presented on this web site are the fruit of an internal Ifremer working group which has been active since 2001 with the objective of developing population and community indicators for the survey data collected since the end of the 1970s along the French coasts. The main group members are (by Ifremer location and in alphabetical order)\: Florence Sanchez (Anglet), Franck Coppin, Sandrine Vaz and Yves Vérin (Boulogne-sur-mer), André Battaglia and Jean-Pierre Léauté (L'Houmeau), Jean-Claude Mahé and Michèle Salaun (Lorient), Jacques Bertrand, Anik Brind'Amour, Yves Désaunay, Pascal Laffargue, Olivier Le Pape, Jérémy Lobry, Pascal Lorance, Jean-Charles Poulard, Marie-Joëlle Rochet and Verena Trenkel (Nantes), Marie-Laure Cochard, Jocelyne Morin and Ivan Schlaich (Port-en-Bessin), Angélique Jadaud and Arnaud Souplet (Sète). The quality process is managed by Vincent Badts. The data-processing is supported by Olivier Berthelé. +message.index.partnerparagraph1=The results presented on this web site are the fruit of an internal Ifremer working group which has been active since 2001 with the objective of developing population and community indicators for the survey data collected since the end of the 1970s along the French coasts. The main group members are (by Ifremer location and in alphabetical order)\: Florence Sanchez (Anglet), Franck Coppin, Sandrine Vaz and Yves Vérin (Boulogne-sur-mer), André Battaglia and Jean-Pierre Léauté (L'Houmeau), Erwan Duhamel, Jean-Claude Mahé and Michèle Salaun (Lorient), Jacques Bertrand, Anik Brind'Amour, Yves Désaunay, Mathieu Doray, Pascal Laffargue, Olivier Le Pape, Jérémy Lobry, Pascal Lorance, Jean-Charles Poulard, Marie-Joëlle Rochet and Verena Trenkel (Nantes), Marie-Laure Cochard, Jocelyne Morin and Ivan Schlaich (Port-en-Bessin), Angélique Jadaud and Arnaud Souplet (Sète). The quality process is managed by Vincent Badts. The data-processing is supported by Olivier Berthelé. message.index.partnertitle=Group members message.index.qualitymessage=Quality warning message.index.qualitytitle=Quality warning @@ -83,7 +83,7 @@ message.index.quotetitle=How to cite this web site message.index.surveyparagraph=Survey protocol handbooks for each survey time series. message.index.surveytitle=Survey description -message.index.thanksparagraph1=All surveys presented on this web site were conducted by Ifremer and have received financial support from a variety of sources. After initially having been funded by Ifremer three of the surveys are now part of the European Data Collection Framework (DCF); this concerns IBTS, Evhoe and Medits. Two other surveys remain entirely funded by Ifremer\: NourVil and CGFS (discussions to include this survey in the DCF are underway). For NourSein, the last three surveys were funded by GIP-Seine Aval. Finally, Crustaflam and NourSomme are entirely funded by EDF within a program of coastal monitoring of nuclear power plants and carried out by Ifremer. This web site has received the financial support of the French ministry for ecology, sustainable development, transport and housing (MEEDDM) (contract Ifremer-MEEDDM 2010). Pour calculating indices for the North Sea the data from all contributing nations was used; it is available in the Datras data base held by ICES (http\://datras.ices.dk). +message.index.thanksparagraph1=All surveys presented on this web site were conducted by Ifremer and have received financial support from a variety of sources. After initially having been funded by Ifremer three of the surveys are now part of the European Data Collection Framework (DCF); this concerns IBTS, Evhoe, Medits and PELGAS. Two other surveys remain entirely funded by Ifremer\: NourVil and CGFS (discussions to include this survey in the DCF are underway). For NourSein, the last three surveys were funded by GIP-Seine Aval. Finally, Crustaflam and NourSomme are entirely funded by EDF within a program of coastal monitoring of nuclear power plants and carried out by Ifremer. This web site has received the financial support of the French ministry for ecology, sustainable development, transport and housing (MEEDDM) (contract Ifremer-MEEDDM 2010). Pour calculating indices for the North Sea the data from all contributing nations was used; it is available in the Datras data base held by ICES (http\://datras.ices.dk). message.index.thankstitle=Acknowledgements message.index.title=Home message.layout.oceanicdata1=le Système d'informations scientifiques pour la mer de l'Ifremer (SISMER) @@ -92,9 +92,12 @@ message.layout.title=Population and community indices derived from scientific surveys carried out by Ifremer. message.map.citation=Trenkel V.M., O. Berthelé, P. Lorance, J.A. Bertrand, A. Brind'Amour, M.L. Cochard, F. Coppin, J.P. Leauté, J.C. Mahé, J. Morin, M.J. Rochet, M. Salaun, A. Souplet & Y. Vérin, 2009. Grands invertébrés et poissons observés par les campagnes scientifiques. Atlas de distribution. Bilan 2008. Ifremer, Nantes. EMH \: 09-003. %1s. 100 p. message.map.citationtitle=Citation +message.map.facade.echobase=<strong>TODO Translate me\! Dans le cas des campagnes pélagiques (PELGAS...), un quadrillage systématique de 0.25° de côté a été défini sur l'ensemble de la zone. Pour chaque année de la série, la biomasse moyenne par km² a été calculée 200 fois dans chaque cellule du quadrillage à partir des estimations de biomasse annuelles, en changeant légèrement l'origine du quadrillage à chaque fois. La biomasse moyenne annuelle par cellule a ensuite été obtenue en moyennant les 200 estimations obtenues dans chaque cellule, afin de produire une carte des biomasses moyennes par année. Cette méthode permet de limiter les effets de bord à la limite des cellules. La carte représentée est la moyenne par cellule des cartes moyennes par année sur toute la série. L'échelle de couleurs à gauche donne la biomasse en tonnes par cellule. Les zones de plus forte biomasse sont représentées en rouge, les biomasses faibles sont en bleu.</strong> +message.map.facade.rsufi=<strong>TODO Translate me\! Dans le cas des campagnes de chalutage démersal, pour chaque zone un quadrillage systématique a été défini, puis la densité moyenne par km² dans chaque cellule a été calculée en utilisant les observations de toute la période. Pour la représentation cartographique, les cellules avec des densités moyenne correspondant aux quartiles de densité ont reçu la même couleur \: bleu \: espèce jamais observée, jaune clair \: densité moyenne entre [0 et 25 %[; jaune foncé \: [25-50 %[, orange \: [50-75 %[ et rouge \: [75-100 %]. Donc, les zones où se trouvent les densités les plus élevées en moyenne sont représentées en rouge.</strong> message.map.linkarchimer=Access atlas \: %1s message.map.paragraph1=The objectif of these maps is to provide a rough indication of the spatial distribution of certain fish and shelfish species as provided by scientific surveys. -message.map.paragraph2=For each area a systematic grid was defined and the simple average density across years and hauls was calculated in numbers per km2. For mapping purposes, grid cells were coloured using a percentile scale\: blue\: species never observed, light yellow\: average density between [0- 25 %[; dark yellow\: [25-50 %[, orange \: [50-75 %[ and red \: [75-100 %]. Thus, cells with the highest average density are in red. +message.map.paragraph2.echobase=<strong>TODO Translate me\! Un quadrillage systématique de 0.25° de côté a été défini pour le Golfe de Gasgcogne. Pour chaque année de la série PELGAS, la biomasse moyenne par km² a été calculée 200 fois dans chaque cellule du quadrillage à partir des estimations de biomasse annuelles, en changeant légèrement l'origine du quadrillage à chaque fois. La biomasse moyenne annuelle par cellule a ensuite été obtenue en moyennant les 200 estimations obtenues dans chaque cellule, afin de produire une carte des biomasses moyennes par année. Cette méthode permet de limiter les effets de bord à la limite des cellules. La carte représentée est la moyenne par cellule des cartes moyennes par année sur toute la série.<br/>L'échelle de couleurs à gauche donne la biomasse en tonnes par cellule. Les zones de plus forte biomasse sont représentées en rouge, les biomasses faibles sont en bleu.</strong> +message.map.paragraph2.rsufi=For each area a systematic grid was defined and the simple average density across years and hauls was calculated in numbers per km2. For mapping purposes, grid cells were coloured using a percentile scale\: blue\: species never observed, light yellow\: average density between [0- 25 %[; dark yellow\: [25-50 %[, orange \: [50-75 %[ and red \: [75-100 %]. Thus, cells with the highest average density are in red. message.map.title=Distribution maps message.map.warning=Warning message.map.warningcontent=The maps should not be interpreted as biological distribution maps but as the areas where the species are caught during the scientific surveys. As the different surveys use different samplin gear and are carried out at different times of the year, there can be differences in catchability among surveys and consequently among areas. Modified: trunk/coser-web/src/main/resources/i18n/coser-web_fr_FR.properties =================================================================== --- trunk/coser-web/src/main/resources/i18n/coser-web_fr_FR.properties 2014-06-04 11:07:11 UTC (rev 1178) +++ trunk/coser-web/src/main/resources/i18n/coser-web_fr_FR.properties 2014-06-04 13:08:08 UTC (rev 1179) @@ -75,7 +75,7 @@ message.index.paragraph3=Chaque série de campagnes est conduite selon une stratégie d'échantillonnage spécifique. Sauf cas particuliers, les analyses et interprétations doivent être conduites par série, en prenant en compte les stratégies d'échantillonnage propres à chacune de ces séries. Sur le site, les données sont présentées par série. message.index.paragraph4=Dans les tables de données, toutes les espèces sont identifiées selon le référentiel taxinomique du Système d'informations halieutiques de l'Ifremer (%1$s). message.index.paragraph5=Les liens ci-dessous vous permet d'extraire les éléments du site (graphique et données) sous la forme d'un fichier .zip (contenant un document pdf et les données) -message.index.partnerparagraph1=Les résultats présentés sur ce site sont le produit de l'activité d'un groupe de travail de l'Ifremer qui se réunit chaque année depuis 2001 pour développer des indicateurs de populations et de peuplements à partir des données des séries de campagnes halieutiques standardisées conduites depuis la fin des années 1970 par l'Ifremer le long des côtes de France métropolitaine. Les principaux membres du groupe sont (par ordre alphabétique de site et de patronyme) \: Florence Sanchez (Anglet), Franck Coppin, Sandrine Vaz et Yves Vérin (Boulogne-sur-mer), André Battaglia et Jean-Pierre Léauté (L'Houmeau), Jean-Claude Mahé et Michèle Salaun (Lorient), Jacques Bertrand, Anik Brind'Amour, Yves Désaunay, Pascal Laffargue, Olivier Le Pape, Jérémy Lobry, Pascal Lorance, Jean-Charles Poulard, Marie-Joëlle Rochet et Verena Trenkel (Nantes), Marie-Laure Cochard, Jocelyne Morin et Ivan Schlaich (Port-en-Bessin), Angélique Jadaud et Arnaud Souplet (Sète). La démarche qualité est gérée par Vincent Badts. Le support informatique de gestion des données est assuré par Olivier Berthelé. +message.index.partnerparagraph1=Les résultats présentés sur ce site sont le produit de l'activité d'un groupe de travail de l'Ifremer qui se réunit chaque année depuis 2001 pour développer des indicateurs de populations et de peuplements à partir des données des séries de campagnes halieutiques standardisées conduites depuis la fin des années 1970 par l'Ifremer le long des côtes de France métropolitaine. Les principaux membres du groupe sont (par ordre alphabétique de site et de patronyme) \: Florence Sanchez (Anglet), Franck Coppin, Sandrine Vaz et Yves Vérin (Boulogne-sur-mer), André Battaglia et Jean-Pierre Léauté (L'Houmeau), Erwan Duhamel , Jean-Claude Mahé et Michèle Salaun (Lorient), Jacques Bertrand, Anik Brind'Amour, Yves Désaunay, Mathieu Doray, Pascal Laffargue, Olivier Le Pape, Jérémy Lobry, Pascal Lorance, Jean-Charles Poulard, Marie-Joëlle Rochet et Verena Trenkel (Nantes), Marie-Laure Cochard, Jocelyne Morin et Ivan Schlaich (Port-en-Bessin), Angélique Jadaud et Arnaud Souplet (Sète). La démarche qualité est gérée par Vincent Badts. Le support informatique de gestion des données est assuré par Olivier Berthelé. message.index.partnertitle=Membres du groupe message.index.qualitymessage=Avertissement qualité message.index.qualitytitle=Avertissement qualité @@ -83,7 +83,7 @@ message.index.quotetitle=Pour citer ce site message.index.surveyparagraph=Des manuels des protocoles décrivent les modalités techniques de réalisation de chaque série de campagnes. message.index.surveytitle=Description des campagnes -message.index.thanksparagraph1=Bien que toutes les séries de campagnes dont des résultats sont présentés sur ce site aient été conduites par l'Ifremer, elles ont fait l'objet de financements variés. Certaines, après une phase éventuelle de financement unique par l'Ifremer font l'objet de cofinancements, comme les séries IBTS, Evhoe et Medits retenues au titre du règlement européen sur la collecte des données halieutiques (DCF). D'autres sont prises en charge en totalité par l'Ifremer, comme les séries NourVil et CGFS (cette dernière étant en cours d'évaluation pour une reconnaissance au titre du règlement européen sur la collecte des données halieutiques - DCF). Pour la série NourSein, les campagnes ont été co-financées par le conseil régional de Haute Normandie, le GPMH, le programme Liteau, le programme Seine Aval et le GIP-Seine Aval, selon les années. Enfin, les séries Crustaflam et NourSomme sont financées en totalité par EDF au titre de la surveillance de centrales nucléaires littorales, dans le cadre de contrats entre Ifremer et EDF. Le présent site a été créé grâce à un soutien du MEEDDM (contrat Ifremer-MEEDDM 2010). Pour l'établissement des indices en mer du Nord, les données sources utilisées sont celles mises à disposition par les différents pays partenaires de la série IBTS dans la base Datras du CIEM (http\://datras.ices.dk). +message.index.thanksparagraph1=Bien que toutes les séries de campagnes dont des résultats sont présentés sur ce site aient été conduites par l'Ifremer, elles ont fait l'objet de financements variés. Certaines, après une phase éventuelle de financement unique par l'Ifremer font l'objet de cofinancements, comme les séries IBTS, Evhoe, Medits et PELGAS retenues au titre du règlement européen sur la collecte des données halieutiques (DCF). D'autres sont prises en charge en totalité par l'Ifremer, comme les séries NourVil et CGFS (cette dernière étant en cours d'évaluation pour une reconnaissance au titre du règlement européen sur la collecte des données halieutiques - DCF). Pour la série NourSein, les campagnes ont été co-financées par le conseil régional de Haute Normandie, le GPMH, le programme Liteau, le programme Seine Aval et le GIP-Seine Aval, selon les années. Enfin, les séries Crustaflam et NourSomme sont financées en totalité par EDF au titre de la surveillance de centrales nucléaires littorales, dans le cadre de contrats entre Ifremer et EDF. Le présent site a été créé grâce à un soutien du MEEDDM (contrat Ifremer-MEEDDM 2010). Pour l'établissement des indices en mer du Nord, les données sources utilisées sont celles mises à disposition par les différents pays partenaires de la série IBTS dans la base Datras du CIEM (http\://datras.ices.dk). message.index.thankstitle=Remerciements message.index.title=Accueil message.layout.oceanicdata1=le Système d'informations scientifiques pour la mer de l'Ifremer (SISMER) @@ -92,12 +92,15 @@ message.layout.title=Indices de populations et de communautés issus des campagnes de surveillance halieutique auxquelles participe l'Ifremer message.map.citation=Trenkel V.M., O. Berthelé, P. Lorance, J.A. Bertrand, A. Brind'Amour, M.L. Cochard, F. Coppin, J.P. Leauté, J.C. Mahé, J. Morin, M.J. Rochet, M. Salaun, A. Souplet & Y. Vérin, 2009. Grands invertébrés et poissons observés par les campagnes scientifiques. Atlas de distribution. Bilan 2008. Ifremer, Nantes. EMH \: 09-003. %1$s. 100 p. message.map.citationtitle=Citation +message.map.facade.echobase=Dans le cas des campagnes pélagiques (PELGAS...), un quadrillage systématique de 0.25° de côté a été défini sur l'ensemble de la zone. Pour chaque année de la série, la biomasse moyenne par km² a été calculée 200 fois dans chaque cellule du quadrillage à partir des estimations de biomasse annuelles, en changeant légèrement l'origine du quadrillage à chaque fois. La biomasse moyenne annuelle par cellule a ensuite été obtenue en moyennant les 200 estimations obtenues dans chaque cellule, afin de produire une carte des biomasses moyennes par année. Cette méthode permet de limiter les effets de bord à la limite des cellules. La carte représentée est la moyenne par cellule des cartes moyennes par année sur toute la série. L'échelle de couleurs à gauche donne la biomasse en tonnes par cellule. Les zones de plus forte biomasse sont représentées en rouge, les biomasses faibles sont en bleu. +message.map.facade.rsufi=Dans le cas des campagnes de chalutage démersal, pour chaque zone un quadrillage systématique a été défini, puis la densité moyenne par km² dans chaque cellule a été calculée en utilisant les observations de toute la période. Pour la représentation cartographique, les cellules avec des densités moyenne correspondant aux quartiles de densité ont reçu la même couleur \: bleu \: espèce jamais observée, jaune clair \: densité moyenne entre [0 et 25 %[; jaune foncé \: [25-50 %[, orange \: [50-75 %[ et rouge \: [75-100 %]. Donc, les zones où se trouvent les densités les plus élevées en moyenne sont représentées en rouge. message.map.linkarchimer=Accès à l'atlas \: %1$s message.map.paragraph1=L'objectif de cet atlas est de donner un aperçu de la distribution spatiale des espèces de poissons et de certains invertébrés marins à partir des observations des campagnes de pêche scientifiques. -message.map.paragraph2=Pour chaque zone un quadrillage systématique a été défini, puis la densité moyenne par km² dans chaque cellule a été calculée en utilisant les observations de toute la période. Pour la représentation cartographique, les cellules avec des densités moyenne correspondant aux quartiles de densité ont reçu la même couleur \: bleu \: espèce jamais observée, jaune clair \: densité moyenne entre [0 et 25 %[; jaune foncé \: [25-50 %[, orange \: [50-75 %[ et rouge \: [75-100 %]. Donc, les zones où se trouvent les densités les plus élevées en moyenne sont représentées en rouge. +message.map.paragraph2.echobase=Un quadrillage systématique de 0.25° de côté a été défini pour le Golfe de Gasgcogne. Pour chaque année de la série PELGAS, la biomasse moyenne par km² a été calculée 200 fois dans chaque cellule du quadrillage à partir des estimations de biomasse annuelles, en changeant légèrement l'origine du quadrillage à chaque fois. La biomasse moyenne annuelle par cellule a ensuite été obtenue en moyennant les 200 estimations obtenues dans chaque cellule, afin de produire une carte des biomasses moyennes par année. Cette méthode permet de limiter les effets de bord à la limite des cellules. La carte représentée est la moyenne par cellule des cartes moyennes par année sur toute la série.<br/>L'échelle de couleurs à gauche donne la biomasse en tonnes par cellule. Les zones de plus forte biomasse sont représentées en rouge, les biomasses faibles sont en bleu. +message.map.paragraph2.rsufi=Pour chaque zone un quadrillage systématique a été défini, puis la densité moyenne par km² dans chaque cellule a été calculée en utilisant les observations de toute la période. Pour la représentation cartographique, les cellules avec des densités moyenne correspondant aux quartiles de densité ont reçu la même couleur \: bleu \: espèce jamais observée, jaune clair \: densité moyenne entre [0 et 25 %[; jaune foncé \: [25-50 %[, orange \: [50-75 %[ et rouge \: [75-100 %]. Donc, les zones où se trouvent les densités les plus élevées en moyenne sont représentées en rouge. message.map.title=Cartes de distribution message.map.warning=Avertissement -message.map.warningcontent=Les cartes présentées ne doivent pas être interprétées comme des cartes de distribution des espèces mais comme celle des zones où elles sont capturées lors des campagnes scientifiques. Les campagnes étant réalisées avec des chaluts différents et à différentes saisons, les espèces peuvent avoir des capturabilités très différentes entre les séries de campagnes, donc d'une zone à l'autre. +message.map.warningcontent=Dans le cas des campagnes de chalutage démersal, les cartes présentées ne doivent pas être interprétées comme des cartes de distribution des espèces mais comme celle des zones où elles sont capturées lors des campagnes scientifiques. Les campagnes étant réalisées avec des chaluts différents et à différentes saisons, les espèces peuvent avoir des capturabilités très différentes entre les séries de campagnes, donc d'une zone à l'autre.<br/>Dans le cas des campagnes pélagiques (PELGAS...), les cartes représentent la biomasse des espèces estimée à partir des données acoustiques et des chalutages d'identification, selon une méthodologie standard. Ces données ont été collectées sur un plan d'échantillonnage homogène dans l'espace et peuvent donc être interprétées comme des cartes de distribution des espèces. message.pop.moredetailspdf=Plus d'informations sur les indices calculés des populations message.pop.paragraph1=Les indices présentés ont été sélectionnés en référence à leur aptitude à renseigner sur l'impact de la pêche, en vue de leur intégration dans des tableaux de bord d'indicateurs d'évolution d'écosystèmes exploités par la pêche. message.pop.paragraph2=Les données disponibles sur le site sont les valeurs de chaque indice. Les informations ont été validées par un groupe de travail dans une approche intégrative d'indicateurs de populations et de communautés. Les résultats sont donnés par zone géographique et par espèce pour l'ensemble de la série de données disponible. L'utilisateur peut sélectionner la zone géographique, la saison (dans le cas de séries saisonnières), l'espèce et l'indice. Pour les sélections pour lesquelles une information est disponible, le système produit un graphe présentant la distribution temporelle de l'indice, avec une représentation de l'écart-type. Il fournit la possibilité d'extraire la table des données correspondantes, incluant la valeur de l'indice par année, ainsi que son écart-type et son coefficient de variation. @@ -123,7 +126,7 @@ message.source.paragraph1=Les données de base sont présentées selon quatre tables fournissant des informations de base élevées à l'opération d'échantillonnage (en général un trait de chalut) et organisées selon des unités géographiques définies en relation avec le plan d'échantillonnage. Une table supplémentaire présente le référentiel taxinomique associé aux données. Il s'agit des données utilisées pour réaliser les calculs des indicateurs présentés. Ces données ont fait l'objet de filtrages et de regroupements éventuels par rapport aux données de base de chaque série, afin d'assurer la cohérence des jeux de données en vue du calcul des indicateurs. Ainsi, pour certaines séries, des groupes entiers (e.g. les amphihalins) ont pu être retirés. Pour certaines séries, certaines années ou certaines strates ont été retirées afin de préserver l'homogénéité de la série. Dans des cas d'évolution du niveau de détermination au cours de la série, plusieurs taxons ont été regroupés à un niveau supérieur. message.source.paragraph2=Les données IBTS (données françaises et données des autres pays) issues de la base Datras du CIEM (http\://datras.ices.dk) ont fait l'objet des mêmes contrôles de qualité que les autres séries de données utilisées, ainsi que de filtrages et de regroupements taxinomiques pour en préserver la cohérence vis-à-vis du présent objectif de production d'indicateurs de tendances. message.source.paragraph3=Le site ne contient des données de base que pour une partie des séries de campagnes pour lesquelles des indices de populations et de communautés sont présentés, selon les modalités d'accès à ces données. Pour un accès aux séries de données source, il convient de contacter l'administrateur du Système d'informations halieutiques de l'Ifremer (%1$s) pour les données françaises, et le site Datras du CIEM (http\://datras.ices.dk) pour les données IBTS des autres pays. -message.source.paragraph4=Les données de campagnes halieutiques sont constituées à partir de stations d'échantillonnage réparties dans l'espace selon le principe de tirage stratifié. La densité de l'échantillonnage conditionne la partition géographique selon laquelle les indices de population et de communauté peuvent être établis. +message.source.paragraph4=Les données des campagnes de chalutage démersal sont constituées à partir de stations d'échantillonnage réparties dans l'espace selon le principe de tirage stratifié. La densité de l'échantillonnage conditionne la partition géographique selon laquelle les indices de population et de communauté peuvent être établis. Les plans de zonage proposés incluent le plan de référence correspondant au plan d'échantillonnage, ainsi que des adaptations pour tenir compte des limites des sous-régions définies par la stratégie marine européenne. Ils ont été validés par un groupe de travail de l'Ifremer, après exploration de la sensibilité de divers indices aux ajustements proposés.<br/>Les données de capture des campagnes pélagiques (PELGAS...) proviennent des chalutages d'identification des échos de bancs de poissons détectés par acoustique. Les positions de ces chalutages ne sont pas définies à partir d'un tirage aléatoire, mais de façon adaptative au cours de la campagne, en fonction de la distribution spatiale des espèces cibles. Ces données de capture ne sont donc pas représentatives de la biomasse des espèces échantillonnées. Les compositions spécifiques relatives et les distributions en taille issues de ces données sont combinées aux données acoustiques pour fournir les indicateurs de biomasse valides disponibles dans la section "indicateurs de population". message.source.paragraph5=Les plans de zonage proposés incluent le plan de référence correspondant au plan d'échantillonnage, ainsi que des adaptations pour tenir compte des limites des sous-régions définies par la stratégie marine européenne. Ils ont été validés par un groupe de travail de l'Ifremer, après exploration de la sensibilité de divers indices aux ajustements proposés. message.source.title=Données de base message.survey.atlantique=Façade Atlantique Modified: trunk/coser-web/src/main/webapp/WEB-INF/content/map/facade.jsp =================================================================== --- trunk/coser-web/src/main/webapp/WEB-INF/content/map/facade.jsp 2014-06-04 11:07:11 UTC (rev 1178) +++ trunk/coser-web/src/main/webapp/WEB-INF/content/map/facade.jsp 2014-06-04 13:08:08 UTC (rev 1179) @@ -47,7 +47,8 @@ <hr /> <p><s:text name="message.map.paragraph1" /></p> - <p><s:text name="message.map.paragraph2" /></p> + <p><s:text name="message.map.facade.rsufi" /></p> + <p><s:text name="message.map.facade.echobase" /></p> <p style="border: 1px solid black"> <span style="font-weight:bold"><s:text name="message.map.warning" /></span><br /> Modified: trunk/coser-web/src/main/webapp/WEB-INF/content/map/map.jsp =================================================================== --- trunk/coser-web/src/main/webapp/WEB-INF/content/map/map.jsp 2014-06-04 11:07:11 UTC (rev 1178) +++ trunk/coser-web/src/main/webapp/WEB-INF/content/map/map.jsp 2014-06-04 13:08:08 UTC (rev 1179) @@ -66,7 +66,10 @@ <h3><s:property value='facadeDisplayName' /> - <s:property value='zoneDisplayName' /> - <s:property value='speciesDisplayName' /></h3> - <p><s:text name="message.map.paragraph2" /></p> + <p> + <s:if test="echobaseResult"><s:text name="message.map.paragraph2.echobase" /></s:if> + <s:else><s:text name="message.map.paragraph2.rsufi" /></s:else> + </p> </body> </html>