Skip to content

Invalid units are treated inconsistently after saving and re-loading cubes #3359

@schlunma

Description

@schlunma

Hey, I think I found a bug regarding invalid units (of coordinates).

Consider this example

import iris
from netCDF4 import Dataset

ds = Dataset('iris-sample-data/iris_sample_data/sample_data/A1B_north_america.nc', mode='a')

# Create file with invalid latitude units
ds.variables['latitude'].units = 'invalid units'
ds.close()

# Load file with iris
cube = iris.load_cube('iris-sample-data/iris_sample_data/sample_data/A1B_north_america.nc')
print(cube.coord('latitude').units)  # gives 'unknown'

# Save it and load it again
iris.save(cube, 'test.nc')
cube_new = iris.load_cube('test.nc')
print(cube_new.coord('latitude').units)  # gives '1'

That means after saving and re-loading a file with invalid coordinate units, iris changes the units. Is this behavior desired? This is not very intuitive and may prevent concatenation of newly created cubes with saved ones.

Metadata

Metadata

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions