Skip to content

Creating time bounds - differing time units causes uncaptured error when collapsing #417

@dlrhodson

Description

@dlrhodson

Hi Both!

Another minor issue - it arose when working with some datasets that use an auxiliary time axis, I have a work-around but I thought it was worth highlighting as it causes errors in collapse that are not captured.

If I create a field with 2 time points, but no bounds, then I create month-wide bounds using cf.M() and then add these to the field.
I get a cf.field that has a time coordinate that looks like this:

Dimension coordinate: time
    calendar = '360_day'
    long_name = 'Time axis'
    standard_name = 'time'
    time_origin = '1900-01-01 00:00:00'
    units = 'seconds since 1900-01-01 00:00:00'
    Data(time(2)) = [1851-06-01 00:00:00, 1852-06-01 00:00:00] 360_day
    Bounds:calendar = '360_day'
    Bounds:units = 'days since 1851-6-1'
    Bounds:Data(time(2), 2) = [[1851-06-01 00:00:00, ..., 1852-07-01 00:00:00]] 360_day

As you can see, the time dimension has units of seconds, but the bounds has units of days.

If I do field.collapse('time: mean') I get:

Dimension coordinate: time
    calendar = '360_day'
    long_name = 'Time axis'
    standard_name = 'time'
    time_origin = '1900-01-01 00:00:00'
    units = 'seconds since 1900-01-01 00:00:00'
    Data(time(1)) = [1900-01-01 00:03:15] 360_day
    Bounds:calendar = '360_day'
    Bounds:units = 'seconds since 1900-01-01 00:00:00'
    Bounds:Data(time(1), 2) = [[1900-01-01 00:00:00, 1900-01-01 00:06:30]] 360_day

Clearly something has gone wrong here!

It seems that the bounds data (in days) has been used, but the time units (seconds) have been retained:

time_mean.coord('time').array
array([195.])

The attached code reproduces this behaviour.
time_bounds_bug2.py.gz

This is probably not a major bug, most people are not going to create bounds like this! But I thought I'd draw it to you attention, just in case it might cause other problems.

Cheers,
Dan

Metadata

Metadata

Assignees

Labels

bugSomething isn't working

Type

No type

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions