Class ResultStorageCSV

java.lang.Object
fr.ifremer.isisfish.datastore.ResultStorageAbstract
fr.ifremer.isisfish.datastore.ResultStorageCSV
All Implemented Interfaces:
ResultStorage, SimulationListener, SimulationResultGetter, SimulationResultListener

public class ResultStorageCSV extends ResultStorageAbstract
Ecrit les resultats dans des fichiers au format pseudo csv compresse (gz) Seules les valeurs differentes de 0 sont ecrites dans le fichier. Il est possible de modifier via la configuration: - le nombre de TimeStep en cache - de definir le nombre de TimeStep a conserver sur disque Format d'une matrice:
 # commentaire
 [nom]
 [nom dimension1]:[semantique1];[semantique2];...
 [nom dimension2]:[semantique1];[semantique2];...
 ...
 [ligne blanche]
 [coordonnee1];[coordonnee2];...;[valeur]
 [coordonnee1];[coordonnee2];...;[valeur]
 [coordonnee1];[coordonnee2];...;[valeur]
 ...
 
Exemple
 MaMatrice
 Mois:Janvier;Fevrier;Mars
 Ville:Nantes;Paris;Nice
 
 1;1;2;13.5
 0;2;1;4.2
 
Version:
$Revision$ Last update: $Date$ by : $Author$
Author:
poussin
  • Field Details

    • storeOnDiskStep

      protected int storeOnDiskStep
      number of step result to store on disk. 0 for none, negative for all result
    • cacheStep

      protected int cacheStep
      number of step in cache
    • startDiskStep

      protected TimeStep startDiskStep
      Le pas de temps a partir duquel il faut sauver les resultats sur disque
    • numberOfResult

      protected int numberOfResult
      nombre total de resultat
    • numberOfResultOnDisk

      protected int numberOfResultOnDisk
      nombre de resultat reellement stocke sur disque
    • numberOfResultAsked

      protected int numberOfResultAsked
      le nombre de resultat demande
    • numberOfResultReadInCache

      protected int numberOfResultReadInCache
      le nombre de resultat lu dans le cache
    • numberOfResultReadOnDisk

      protected int numberOfResultReadOnDisk
      le nombre de resultat lu sur le disque
    • bytesWritten

      protected long bytesWritten
      le nombre d'octet ecris sur le disque
    • maxGapWithCurrentStepReadOnDisk

      protected int maxGapWithCurrentStepReadOnDisk
      le plus vieux pas de temps demande par rapport au pas de temps courant lu sur le disque
    • matrixCSVHelper

      protected MatrixCSVHelper matrixCSVHelper
    • fileExistCache

      protected HashSet<String> fileExistCache
  • Constructor Details

  • Method Details

    • getMatrixCSVHelper

      protected MatrixCSVHelper getMatrixCSVHelper()
    • getInfo

      public String getInfo()
      Description copied from class: ResultStorageAbstract
      Return some information on result storage. Information depend on result storage type
      Specified by:
      getInfo in interface ResultStorage
      Overrides:
      getInfo in class ResultStorageAbstract
      Returns:
    • getDirectory

      protected File getDirectory()
      donne le repertoire de stockage des resultats
      Returns:
    • getMatrixDirectory

      protected File getMatrixDirectory(String name)
      Donne le repertoire de stockage pour un certain type de resultat matriciel
      Parameters:
      name -
      Returns:
    • getMatrixFile

      protected File getMatrixFile(TimeStep step, String name)
    • getFileExistCache

      protected HashSet<String> getFileExistCache()
    • fileExist

      protected boolean fileExist(File f)
      Method used to know if file result exist. Usage of File.exists take to long time during simulation
      Parameters:
      f -
      Returns:
    • addFileExist

      protected void addFileExist(File f)
    • readMatrix

      protected org.nuiton.math.matrix.MatrixND readMatrix(String file) throws IOException
      Throws:
      IOException
    • getTimeStep

      protected TimeStep getTimeStep(String file)
      Extract and create TimeStep from file name. If file name doesn't contains TimeStep null is returned
      Parameters:
      file -
      Returns:
    • delete

      public void delete()
      Description copied from interface: ResultStorage
      Delete all result for this result storage. In case of sensitivity analysis, after export, result are no longer needed and can be deleted to save disk space.
      Specified by:
      delete in interface ResultStorage
      Overrides:
      delete in class ResultStorageAbstract
    • readResult

      protected org.nuiton.math.matrix.MatrixND readResult(TimeStep step, String name)
      Description copied from class: ResultStorageAbstract
      Return one result for step and name. Matrix returned must be undecorated (semantics must be string representation of object)
      Specified by:
      readResult in class ResultStorageAbstract
      Returns:
    • isDiskResult

      protected boolean isDiskResult(TimeStep step)
      Indique s'il faut sauver sur disque les resultats
      Parameters:
      step -
      Returns:
    • getCacheForStep

      protected Map<String,org.nuiton.math.matrix.MatrixND> getCacheForStep(TimeStep step)
    • writeResult

      protected void writeResult(TimeStep step, String name, org.nuiton.math.matrix.MatrixND mat)
      Description copied from class: ResultStorageAbstract
      write result
      Specified by:
      writeResult in class ResultStorageAbstract
    • writeActiveRule

      protected void writeActiveRule(TimeStep step, String name, String params)
      Description copied from class: ResultStorageAbstract
      Write active rule
      Specified by:
      writeActiveRule in class ResultStorageAbstract
    • getResultName

      public List<String> getResultName()
      Description copied from class: ResultStorageAbstract
      return list of all result name available
      Specified by:
      getResultName in interface ResultStorage
      Specified by:
      getResultName in class ResultStorageAbstract
    • getBytesWritten

      public long getBytesWritten()