Usage: pycmor Using auxiliary files

Usage: pycmor Using auxiliary files#

At times, your post-processing will require additional files beyond the actual data. For example, say your are analyzing FESOM output, and need to know the computational mesh in order to calculate transport across a particular edge. In Python, the common way to do this is to use the pyfesom2 library to load the mesh. For a Rule to be aware of the mesh, you can use auxiliary files.

You can add additional files to your Rule objects by specifying them in the aux element of the rule. These files are loaded when the Rule object is initialized, and can be accessed in your steps.

For example, consider the following YAML configuration:

rules:
  - name: My First Rule
    aux:
      - name: My Aux Data
        path: /path/to/aux/data.csv

You can then access this in a step like so:

def my_step(data, rule):
  aux_data = rule.aux["My Aux Data"]
  print(aux_data)
  return data

By default, the program assumes you just have a text file which you can read in. However, you may also want to use something else. Here is how you can include a FESOM mesh object representation in pyfesom2:

rules:
  - name: My Other Rule
    aux:
      - name: mesh
        path: /some/path/to/a/mesh
        loader: pyfesom2.read_mesh_data.load_mesh

In Python, you get back the already loaded mesh object.