# MI - Fimex: Configuration files for felt reader

# Configuration files for felt reader

The xml configuration files are defined by the felt2nc_variables.dtd definition. Since part of this configuration are quite stable, e.g. the axes (time, level, lat, lon, x, y), other parts change, e.g. the variables to translate change very often. It is therefore useful to split the variables from the rest of the configuration via xinclude

When writing a new configuration for a new set of felt-files, usually from a new model, it is wise to group the configuration by

1. time resolution, i.e. one config for 3hourly files, one config for hourly files
2. spatial resolution: fimex doesn't allow different spatial resolutions, but some models use coarser resoluton for higher levels
3. vertical levels: it is difficult to have the same parameter with sigma levels and with height in m

Grouping can be done in two ways, the first one being faster in operation, the second is easier to configure/change consistently:

1. write different configuration-files for each group of parameter, stating the parameter as well as possible.
2. write one configuration-file for all parameter, keeping the parameters as variable as possible. Use a preprocess-step to extract each group. Use e.g. nyfelt or felt2felt as preprocessor

By default, all data is read as type="short" data with a scaling factor. While felt allows for one scaling factor for each timestep, height and parameter, the CDM allows only for one scaling factor per parameter. When the scaling factor changes withing height or timestep, fimex will fail to read the data as short. It is therefore useful to read data as type="float", which will automatically expand the scaling factor. If the resulting file is to big, it is possible to convert to short with one scaling factor and offset using the netcdfWriter Configuration.

Before running fimex with a new felt configuration, make sure the file is valid, e.g. with

    xmllint --valid --noout felt2nc_config.xml

Unfortuneatly, xinclude and validation don't play well together, since usual validation happens before the inclusion of external parts. xmllint uses special options to fix those problem:

    xmllint --xinclude --postvalid --noout felt2nc_config.xml

Below follows a complete felt-configuration.