# Functions of the `cf` module

## Reading and writing

`cf.read` | Read fields from netCDF, PP or UM fields files.
`cf.read_field` | Read a single field from netCDF, PP or UM fields files.
`cf.write` | Write fields to a netCDF file.

## Aggregation

`cf.aggregate` | Aggregate fields into as few fields as possible.

## Mathematical operations

`cf.relative_vorticity` | Calculate the relative vorticity using centred finite differences.

## Comparison

`cf.equals` | True if and only if two objects are logically equal.
`cf.equivalent` | True if and only if two objects are logically equivalent.

The following functions generate `cf.Query` instances for evaluating objects against given criteria. For example, `cf.wi(3, 5)` generates a query for testing whether, or where, an object is in the range [3, 5].

`cf.contain` | Return a `cf.Query` object for cells of a variable for containing a value.
`cf.eq` | Return a `cf.Query` object for a variable for being equal to a value.
`cf.ge` | Return a `cf.Query` object for a variable for being greater than or equal to a value.
`cf.gt` | Return a `cf.Query` object for a variable for being strictly greater than a value.
`cf.le` | Return a `cf.Query` object for a variable for being less than or equal to a value.
`cf.lt` | Return a `cf.Query` object for a variable for being strictly less than a value.
`cf.ne` | Return a `cf.Query` object for a variable for being equal to a value.
`cf.set` | Return a `cf.Query` object for a variable for being equal to any member of a collection.
`cf.wi` | Return a `cf.Query` object for a variable being within a range.
`cf.wo` | Return a `cf.Query` object for a variable for being without a range.

Climatological seasons

The following functions generate `cf.Query` instances for evaluating objects against given criteria. For example, `cf.djf()` generates a query for testing whether, or where, a date-time object is in a December–February season.

`cf.djf` | Return a `cf.Query` object for the month of December, January or February.
`cf.mam` | Return a `cf.Query` object for the month of March, April or May.
`cf.jja` | Return a `cf.Query` object for month of June, July or August.
`cf.son` | Return a `cf.Query` object for month of September, October or November.
`cf.seasons` | Return a list `cf.Query` objects corresponding to seasons in a year.

Date-time

`cf.dteq` | Return a `cf.Query` object for a variable being equal to a date-time.
`cf.dtge` | Return a `cf.Query` object for a variable being not earlier than a date-time.
`cf.dtgt` | Return a `cf.Query` object for a variable being later than a date-time.
`cf.dtle` | Return a `cf.Query` object for a variable being not later than a date-time.
`cf.dtlt` | Return a `cf.Query` object for a variable being earlier than a date-time.
`cf.dtne` | Return a `cf.Query` object for a variable being not equal to a date-time.
`cf.year` | Return a `cf.Query` object for date-time years.
`cf.month` | Return a `cf.Query` object for date-time months.
`cf.day` | Return a `cf.Query` object for date-time days.
`cf.hour` | Return a `cf.Query` object for date-time hours.
`cf.minute` | Return a `cf.Query` object for date-time minutes.
`cf.second` | Return a `cf.Query` object for date-time seconds.

Coordinate cell bounds

`cf.cellgt` | Return a `cf.Query` object for coordinate cell bounds being strictly greater than a value.
`cf.cellge` | Return a `cf.Query` object for coordinate cell bounds being greater than or equal to a value.
`cf.cellle` | Return a `cf.Query` object for coordinate cell bounds being less than or equal to a value.
`cf.celllt` | Return a `cf.Query` object for coordinate cell bounds being strictly less than a value.
`cf.cellwi` | Return a `cf.Query` object for coordinate cell bounds being within a range.
`cf.cellwo` | Return a `cf.Query` object for coordinate cell bounds being outside a range.
`cf.cellsize` | Return a `cf.Query` object for the cell size of a coordinate object.

## Date-time

`cf.dt` | Return a date-time variable for a given date and time.
`cf.Y` | Return a time duration of calendar years in a `cf.TimeDuration` object.
`cf.M` | Return a time duration of calendar months in a `cf.TimeDuration` object.
`cf.D` | Return a time duration of days in a `cf.TimeDuration` object.
`cf.h` | Return a time duration of hours in a `cf.TimeDuration` object.
`cf.m` | Return a time duration of minutes in a `cf.TimeDuration` object.
`cf.s` | Return a time duration of seconds in a `cf.TimeDuration` object.

## Retrieval and setting of constants

`cf.ATOL` | The value of absolute tolerance for testing numerically tolerant equality.
`cf.CHUNKSIZE` | The memory chunk size in bytes for data storage and processing.
`cf.FM_THRESHOLD` | The amount of memory which is kept free as a temporary work space.
`cf.MINNCFM` | The number of chunks of memory to be kept free as a temporary work space.
`cf.OF_FRACTION` | The amount of concurrently open files above which files containing data arrays may be automatically closed.
`cf.REGRID_LOGGING` | Whether or not to enable ESMPy logging.
`cf.RTOL` | The value of relative tolerance for testing numerically tolerant equality.
`cf.TEMPDIR` | The directory for internally generated temporary files.

## Miscellaneous

`cf.abspath` | Return a normalized absolute version of a file name.
`cf.close_files` | Close open files containing sub-arrays of data arrays.
`cf.close_one_file` | Close an arbitrary open file containing a sub-array of a data array.
`cf.dirname` | Return the directory name of a file.
`cf.dump` | Print a description of an object.
`cf.environment` | Return the names and versions of cf-python dependencies.
`cf.flat` | Return an iterator over an arbitrarily nested sequence.
`cf.open_files` | Return the open files containing sub-arrays of master data arrays.
`cf.open_files_threshold_exceeded` | Return True if the total number of open files is greater than the current threshold.
`cf.pathjoin` | Join two file path components intelligently.
`cf.pickle` | Write a binary pickled representation of an object to a file.
`cf.relpath` | Return a relative filepath to a file.
`cf.unpickle` | Return the reconstituted (unpickled) object from a binary pickle file.