Ignore:
Timestamp:
06/10/15 15:11:22 (9 years ago)
Author:
rlacroix
Message:

Improve CF compliance: Write the "cell_methods" metadata.

Also try to use the time units defined by the UDUnits specification.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • XIOS/trunk/src/output/nc4_data_output.cpp

    r611 r612  
    816816           { 
    817817              CDuration duration = field->freq_op.getValue(); 
    818               duration.solveTimeStep(*(context->calendar)); 
    819               SuperClassWriter::addAttribute("interval_operation", duration.toString(), &fieldid); 
     818              duration.solveTimeStep(*context->calendar); 
     819              StdString freqOpStr = duration.toStringUDUnits(); 
     820              SuperClassWriter::addAttribute("interval_operation", freqOpStr, &fieldid); 
    820821 
    821822              duration = field->getRelFile()->output_freq.getValue(); 
    822               duration.solveTimeStep(*(context->calendar)); 
    823               SuperClassWriter::addAttribute("interval_write", duration.toString(), &fieldid); 
     823              duration.solveTimeStep(*context->calendar); 
     824              SuperClassWriter::addAttribute("interval_write", duration.toStringUDUnits(), &fieldid); 
     825 
     826              StdString cellMethods = coodinates.front() + ": "; 
     827              if (field->operation.getValue() == "instant") cellMethods += "point"; 
     828              else if (field->operation.getValue() == "average") cellMethods += "mean"; 
     829              else if (field->operation.getValue() == "accumulate") cellMethods += "sum"; 
     830              else cellMethods += field->operation; 
     831              cellMethods += " (interval: " + freqOpStr + ")"; 
     832              SuperClassWriter::addAttribute("cell_methods", cellMethods, &fieldid); 
    824833           } 
    825834 
     
    10251034//              CDuration duration = field->freq_op.getValue(); 
    10261035//              duration.solveTimeStep(*(context->calendar)); 
    1027 //              SuperClassWriter::addAttribute("interval_operation", duration.toString(), &fieldid); 
     1036//              SuperClassWriter::addAttribute("interval_operation", duration.toStringUDUnits(), &fieldid); 
    10281037// 
    10291038//              duration = field->getRelFile()->output_freq.getValue(); 
    10301039//              duration.solveTimeStep(*(context->calendar)); 
    1031 //              SuperClassWriter::addAttribute("interval_write", duration.toString(), &fieldid); 
     1040//              SuperClassWriter::addAttribute("interval_write", duration.toStringUDUnits(), &fieldid); 
    10321041//           } 
    10331042// 
Note: See TracChangeset for help on using the changeset viewer.