Generating boundary condition files from raw data

Generating boundary condition files from raw data#

The inicond, latcond and topcond components are characterized by their comp_type; otherwise, their specifications follow the same principles as flux, as described previously.

Good practices#

If you are a new CIF user or are using a raw data type for the first time, follow these steps:

  1. Prepare a YAML for generating boundary conditions only (as shown above).

  2. Run the system with this YAML.

  3. Check the generated inputs, as explained in Checking the input files:.

Principles#

Supported raw inputs are those handled by the available plugins for boundary conditions, found under datastreams of type Field (see also the cheat-sheet).

To specify different input sources for different boundary species, list these species as parameters of inicond, latcond, and topcond (three independent datastreams), with names matching those in ACTIVE_SPECIES. Each parameter inherits the component plugin settings by default, but all settings, including the plugin, can be overridden individually, as shown in the examples below.

The required information is:

  1. The name, type, and version of the plugin used to read the raw files, along with any plugin-specific arguments found in the plugin’s documentation.

  2. Up to four pieces of information for the component as expected by datavect (see CHIMERE usual inputs and datavect). Note that varname is almost always needed, since raw external files rarely use the same species names as CHIMERE.

  3. Recipes for building the transformations from raw data to CHIMERE inputs — i.e. the spatial and temporal interpolations and the unit conversion. Each recipe is a keyword with arguments that the CIF internally maps to plugins (this is why the documentation links point to plugins, even though users do not reference them directly in the YAML).

    1. the regrid recipe for spatial interpolation. If regrid is not specified, the CIF applies bilinear regridding by default.

    2. if required, the vertical_interpolation recipe for vertical interpolation. If not specified, linear interpolation is used by default.

    3. the time_interpolation recipe for temporal interpolation. (No options available yet; under construction.)

    4. the unit_conversion recipe for unit conversion.

Examples#

Only one species, taken from various raw fields#

datavect:
  plugin:
    name: standard
    version: std
  components:
    inicond:
      parameters:
       CH4:
        plugin:
          name: ECMWF
          version: grib2
          type: field
        dir: /home/comdata1/Meteo/1280franceArgonaut/%Y/%m/
        file: macc.1280franceArgonaut.%Y%m%d0000%H.grb2
        file_2d: 2dmacc.1280franceArgonaut.%Y%m%d0000%H.grb2
        file_freq: 3H
        varname: ch4
        unit_conversion: # Conversion from kg/kg to ppb
          scale: 1810375000.0

    latcond:
      parameters:
        CH4:
         plugin:
           name: CAMS
           version: netcdf
           type: field
         is_lbc: True
         dir: /home/chimereicos/ipison/grib_CAMS_N2O_chimere_cif/
         file: z_cams_l_nilu_%Y%m_v17r1_ra_ml_3h_n2o.nc
         file_freq: 3H
         varname: CH4
         time_interpolation:
           methode: linear

    topcond:
      parameters:
        CH4:
          plugin:
            name: ECMWF
            version: grib2
            type: field
          is_top: True
          dir: /home/comdata1/Meteo/1280franceArgonaut/%Y/%m/
          file: macc.1280franceArgonaut.%Y%m%d0000%H.grb2
          file_2d: 2dmacc.1280franceArgonaut.%Y%m%d0000%H.grb2
          file_freq: 3H
          varname: ch4
          unit_conversion: # Conversion from kg/kg to ppb
            scale: 1810375000.0
          time_interpolation:
            methode: linear