Ignore:
Timestamp:
08/25/15 16:52:45 (9 years ago)
Author:
rlacroix
Message:

Add support for indexed output.

If the new field attribute "indexed_output" is set to true and a mask is defined (either at grid, domain or axis level), the indexed data will be outputed instead of the full data with missing values.

See http://cfconventions.org/Data/cf-conventions/cf-conventions-1.5/build/cf-conventions.html#compression-by-gathering for more information.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • XIOS/trunk/src/node/context.cpp

    r655 r676  
    745745      // Find all inheritance in xml structure 
    746746      this->solveAllInheritance(); 
     747 
     748      // Check if some axis, domains or grids are eligible to for compressed indexed output. 
     749      // Warning: This must be done after solving the inheritance and before the rest of post-processing 
     750      checkAxisDomainsGridsEligibilityForCompressedOutput(); 
    747751 
    748752      //Initialisation du vecteur 'enabledFiles' contenant la liste des fichiers à sortir. 
     
    851855   } 
    852856 
     857   //! Client side: Check if the defined axis, domains and grids are eligible for compressed indexed output 
     858   void CContext::checkAxisDomainsGridsEligibilityForCompressedOutput() 
     859   { 
     860     if (!hasClient) return; 
     861 
     862     const vector<CAxis*> allAxis = CAxis::getAll(); 
     863     for (vector<CAxis*>::const_iterator it = allAxis.begin(); it != allAxis.end(); it++) 
     864       (*it)->checkEligibilityForCompressedOutput(); 
     865 
     866     const vector<CDomain*> allDomains = CDomain::getAll(); 
     867     for (vector<CDomain*>::const_iterator it = allDomains.begin(); it != allDomains.end(); it++) 
     868       (*it)->checkEligibilityForCompressedOutput(); 
     869 
     870     const vector<CGrid*> allGrids = CGrid::getAll(); 
     871     for (vector<CGrid*>::const_iterator it = allGrids.begin(); it != allGrids.end(); it++) 
     872       (*it)->checkEligibilityForCompressedOutput(); 
     873   } 
     874 
    853875   //! Client side: Send information of reference grid of active fields 
    854876   void CContext::sendRefGrid() 
Note: See TracChangeset for help on using the changeset viewer.