cf.Constructs.filter_by_property¶

Constructs.filter_by_property(*mode, **properties)[source]

New in version 1.7.0.

Parameters
mode: optional

Define the behaviour when multiple properties are provided.

By default (or if the mode parameter is 'and') a construct is selected if it matches all of the given properties, but if the mode parameter is 'or' then a construct will be selected when at least one of its properties matches.

properties: optional

Select constructs that have properties with the given values.

By default a construct is selected if it matches all of the given properties, but it may alternatively be selected when at least one of its properties matches (see the mode positional parameter).

A property value is given by a keyword parameter of the property name. The value may be a scalar or vector (e.g. 'latitude', 4, ['foo', 'bar']); or a compiled regular expression (e.g. re.compile('^ocean')), for which all constructs whose methods match (via re.search) are selected.

If no properties are provided then all constructs that do or could have properties, with any values, are selected.

Returns
Constructs

The selected constructs and their construct keys.

Examples:

Select constructs that have a standard_name of ‘latitude’:

>>> d = c.filter_by_property(standard_name='latitude')


Select constructs that have a long_name of ‘height’ and units of ‘m’:

>>> d = c.filter_by_property(long_name='height', units='m')


Select constructs that have a long_name of ‘height’ or a foo of ‘bar’:

>>> d = c.filter_by_property('or', long_name='height', foo='bar')


Select constructs that have a standard_name which contains start with the string ‘air’:

>>> import re
>>> d = c.filter_by_property(standard_name=re.compile('^air'))