The subfilter module.

This module implements overall filtering.

The main functions are:

Before use, two files have to be created, using:

Detailed Module Contents

The entire module is documented below.

subfilter.py - This is the “subfilter module” - Defines many useful routines for the subfilter calculations. - examples of their use are present in subfilter_file.py

Created on Tue Oct 23 11:07:05 2018

@author: Peter Clark

subfilter.subfilter.subfilter_options(config_file: Optional[str] = None)

Set default options for filtering.

Parameters:

config_file (str) – Path to configuration .yaml file. The default is None.

Returns:

  • options (dict) – Options including optional updates

  • update_config (dict) – Updates from config_file

subfilter.subfilter.filter_variable_list(source_dataset, ref_dataset, derived_dataset, filtered_dataset, options, filter_def, var_list=None, grid='p')

Create filtered versions of input variables on required grid.

Stored in derived_dataset.

Parameters:
  • source_dataset (NetCDF dataset for input) –

  • ref_dataset (NetCDF dataset for input containing reference) – profiles. Can be None

  • derived_dataset (NetCDF dataset for derived data) –

  • filtered_dataset (NetCDF dataset for derived data) –

  • options (General options e.g. FFT method used.) –

  • filter_def (1 or 2D filter) –

  • var_list=None (List of variable names.) –

  • get_default_variable_list() (default provided by) –

  • grid='p' (Grid - 'u','v','w' or 'p') –

Returns:

list

Return type:

list of strings representing variable names.

subfilter.subfilter.filter_variable_pair_list(source_dataset, ref_dataset, derived_dataset, filtered_dataset, options, filter_def, var_list=None, grid='p')

Create filtered versions of pairs input variables on A grid.

Stored in derived_dataset.

Parameters:
  • source_dataset – NetCDF dataset for input

  • ref_dataset – NetCDF dataset for input containing reference profiles. Can be None

  • derived_dataset – NetCDF dataset for derived data

  • filtered_dataset – NetCDF dataset for derived data

  • options – General options e.g. FFT method used.

  • filter_def – 1 or 2D filter

  • var_list=None – List of variable names.

  • get_default_variable_pair_list() (default provided by) –

Returns:

var_list

Return type:

list of lists of pairs strings representing variable names.

subfilter.subfilter.convolve(field, options, filter_def, dims)

Convolve field filter using fftconvolve using padding.

Parameters:
  • field – field array

  • options – General options e.g. FFT method used.

  • filter_def – 1 or 2D filter array

Returns:

ndarray

Return type:

field convolved with filter_def

subfilter.subfilter.pad_to_len(field, newlen, mode='constant')

Pad array to required size on each dimension.

Parameters:
  • field (numpy array) – Input field.

  • newlen (int) – Length of each dimension.

  • mode (str or function, optional) – Detrmines values to pad with. See numpy.pad. The default is ‘constant’.

Returns:

padfield – Input field padded as required..

Return type:

numpy array

subfilter.subfilter.filtered_field_calc(var, options, filter_def)

Split field into resolved f(field)_r and subfilter f(field)_s.

Note: this routine has a deliberate side effect, to store the fft or rfft of the filter in filter_def for subsequent re-use.

Parameters:
  • var – dict cantaining variable info

  • options – General options e.g. FFT method used.

  • filter_def – 1 or 2D filter

Returns:

dicts containing variable info

Return type:

[var_r, var_s]

subfilter.subfilter.setup_derived_data_file(source_file, destdir, fname, options, override=False)

Create NetCDF dataset for derived data in destdir.

File name is original file name concatenated with filter_def.id.

Parameters:
  • source_file – NetCDF file name.

  • destdir – Directory for derived data.

  • override=False – if True force creation of file

Return type:

derived_dataset_name, derived_dataset

subfilter.subfilter.setup_filtered_data_file(source_file, destdir, fname, options, filter_def, override=False)

Create NetCDF dataset for filtered data in destdir.

File name is original file name concatenated with filter_def.id.

Parameters:
  • source_file – NetCDF file name.

  • destdir – Directory for derived data.

  • options – General options e.g. FFT method used.

  • filter_def – Filter

  • options – General options e.g. FFT method used.

  • override=False – if True force creation of file

Return type:

filtered_dataset_name, filtered_dataset

@author: Peter Clark

subfilter.subfilter.filter_field(var, filtered_dataset, options, filter_def)

Create filtered versions of input variable, stored in filtered_dataset.

Parameters:
  • var – dict cantaining variable info

  • filtered_dataset – NetCDF dataset for derived data.

  • options – General options e.g. FFT method used.

  • filter_def – 1 or 2D filter.

  • get_default_variable_list() (default provided by) –

Returns:

ncvar_r, ncvar_s – filtered_dataset.

Return type:

Resolved and subfilter fields as netcf variables in

subfilter.subfilter.filtered_deformation(source_dataset, ref_dataset, derived_dataset, filtered_dataset, options, filter_def, grid='p')

Create filtered versions of deformation field.

Parameters:
  • source_dataset – NetCDF input dataset

  • ref_dataset – NetCDF dataset for input containing reference profiles. Can be None

  • derived_dataset – NetCDF dataset for derived data.

  • filtered_dataset – NetCDF dataset for derived data

  • options – General options e.g. FFT method used.

  • filter_def – 1 or 2D filter.

  • grid='p' – Grid - ‘u’,’v’,’w’ or ‘p’

Returns:

  • ncvar_r, ncvar_s (Resolved and subfilter fields as netcf variables)

  • in filtered_dataset.

subfilter.subfilter.quadratic_subfilter(source_dataset, ref_dataset, derived_dataset, filtered_dataset, options, filter_def, v1_name, v2_name, grid='p')

Create filtered versions of pair of input variables on required grid.

Stored in derived_dataset. Computes s(\phi,\psi) = (\phi\psi)^r - \phi^r\psi^r.

Parameters:
  • source_dataset – NetCDF dataset for input

  • ref_dataset – NetCDF dataset for input containing reference profiles. Can be None

  • derived_dataset – NetCDF dataset for derived data

  • filtered_dataset – NetCDF dataset for derived data

  • options – General options e.g. FFT method used.

  • filter_def – 1 or 2D filter

  • v1_name – Variable names.

  • v2_name – Variable names.

Returns:

  • s(var1,var2) data array.

  • vdims dimensions of var1