130 lines
4.2 KiB
Plaintext
130 lines
4.2 KiB
Plaintext
# * Format of the rules is:
|
|
|
|
# [a1, a2, a3 ...[b1, b2, b3... [c1, c2, c3...]]]
|
|
|
|
# - The first level (a) defines which attributes are used to name the top level directory
|
|
# - The second level (b) defines which attributes are used to name the data files
|
|
# - The third level (c) defines which attributes are used as index keys
|
|
|
|
# * Rules can be grouped
|
|
|
|
# [a1, a2, a3 ...
|
|
# [b1, b2, b3... [c1, c2, c3...]]
|
|
# [B1, B2, B3... [C1, C2, C3...]]
|
|
# ]
|
|
|
|
# * A list of values can be given for an attribute
|
|
# [ ..., stream=enfo/efov, ... ]
|
|
# This will be used when matching rules.
|
|
|
|
# * Attributes can be typed
|
|
# Globally, at the begining of this file:
|
|
|
|
# refdate: Date;
|
|
|
|
# or in the context of a rule:
|
|
# [type=cl, ... [date:ClimateMonth, ...]]
|
|
|
|
# Typing attributes is done when the user's requests or the GRIB values need to be modified before directories, files and indexes are created. For example, ClimateMonth will transform 2010-04-01 to 'may' internally.
|
|
|
|
# * Attributes can be optional
|
|
# [ step, levelist?, param ]
|
|
# They will be replaced internally by an empty value. It is also posiible to provide a default subtitution value: e.g. [domain?g] will consider the domain to be 'g' if missing.
|
|
|
|
# * Attributes can be removed:
|
|
# [grid-]
|
|
# This is useful to remove attributes present in the GRIB that should not be ignored
|
|
|
|
# * Rules are matched:
|
|
|
|
# - If the attributes are present in the GRIB/Request, or marked optional or ignored
|
|
# - If a list of possible value is provided, one of them must match, for example
|
|
# [ class, expver, stream=enfo/efov, date, time, domain ]
|
|
# will match either stream=enfo or stream=efov, all other attributes will be matched if they exist in the GRIB or user's request
|
|
|
|
# * On archive:
|
|
# - Attributes are extracted from the GRIB (namespace 'mars'), possibly modified by the attribute type
|
|
# - Only the first rule is used, so order is important
|
|
# - All GRIB attributes must be used by the rules, otherwise an error is raised
|
|
|
|
# * On retrieve:
|
|
# - Attributes are extracted from the user's request, possibly modified by the attribute type (e.g. for handling of U/V)
|
|
# - All the matching rules are considered
|
|
# - Only attributes listed in the rules are used to extract values from the user's request
|
|
|
|
|
|
# Default types
|
|
|
|
param: Param;
|
|
step: Step;
|
|
date: Date;
|
|
hdate: Date;
|
|
refdate: Date;
|
|
latitude: Double;
|
|
longitude: Double;
|
|
levelist: Double;
|
|
grid: Grid;
|
|
expver: Expver;
|
|
|
|
time: Time;
|
|
fcmonth: Integer;
|
|
|
|
number: Integer;
|
|
frequency: Integer;
|
|
direction: Integer;
|
|
channel: Integer;
|
|
|
|
instrument: Integer;
|
|
ident: Integer;
|
|
|
|
diagnostic: Integer;
|
|
iteration: Integer;
|
|
system: Integer;
|
|
method: Integer;
|
|
|
|
|
|
########################################################
|
|
# These are the rules for the Climate DT
|
|
|
|
# clte/wave
|
|
[ class=d1, dataset=climate-dt, activity, experiment, generation, model, realization, expver, stream=clte/wave, date
|
|
[ resolution, type, levtype
|
|
[ time, levelist?, param, frequency?, direction? ]]
|
|
]
|
|
|
|
# clmn
|
|
[ class=d1, dataset=climate-dt, activity, experiment, generation, model, realization, expver, stream=clmn, year
|
|
[ month, resolution, type, levtype
|
|
[ levelist?, param ]]
|
|
]
|
|
|
|
########################################################
|
|
# These are the rules for the Extremes DT
|
|
# oper/wave/lwda/lwwv
|
|
[ class=d1, dataset=extremes-dt, expver, stream=oper/wave/lwda/lwwv, date, time
|
|
[ resolution?, type, levtype
|
|
[ step, levelist?, param, frequency?, direction? ]]
|
|
]
|
|
########################################################
|
|
# These are the rules for the On-Demand Extremes DT
|
|
# oper/wave
|
|
[ class=d1, dataset=on-demand-extremes-dt, expver, stream=oper/wave, date, time
|
|
[ type, levtype
|
|
[ step, levelist?, param, frequency?, direction? ]]
|
|
]
|
|
########################################################
|
|
|
|
|
|
########################################################
|
|
#
|
|
# These are the rules for rd
|
|
# oper/wave/lwda/lwwv
|
|
[ class=rd, expver, stream=oper/wave/lwda/lwwv/dcda/enfo, date, time, domain?
|
|
[ type, levtype
|
|
[ number?, step, levelist?, param, frequency?, direction? ]]
|
|
]
|
|
|
|
[ class=rd, expver, stream=mnth, domain?
|
|
[ type, levtype
|
|
[ date , time, step?, levelist?, param ]]
|
|
] |