In [1]:
import iris
import iris.tests.stock as stock
In [2]:
cube = stock.realistic_4d()
In [3]:
sub_cubes = (cube[0, 0, ...], cube[1, 0, ...])
In [4]:
sub_cubes
Out[4]:
In [5]:
potential = iris.cube.CubeList(sub_cubes)
print potential.merge()
In [6]:
!rm merge_exercise.*.nc
In [7]:
potential[0].attributes['History'] = 'unknown'
iris.save(potential[0], 'merge_exercise.1.f1.nc')
iris.save(potential[1], 'merge_exercise.1.f2.nc')
potential[0].attributes.pop('History')
Out[7]:
In [9]:
cubes = iris.load('merge_exercise.1.*.nc')
print len(cubes)
#print cubes.describe_merge()
cubes[0].attributes.pop('History')
print cubes.merge()
In [10]:
task = 6
potential[1].coord('grid_latitude').bounds = None
potential[1].coord('grid_longitude').bounds = None
iris.save(potential[0], 'merge_exercise.6.f1.nc')
iris.save(potential[1], 'merge_exercise.6.f2.nc')
potential[1].coord('grid_latitude').bounds = potential[0].coord('grid_latitude').bounds
potential[1].coord('grid_longitude').bounds = potential[0].coord('grid_longitude').bounds
In [11]:
cubes = iris.load('merge_exercise.6.*.nc')
cubes[1].coord('grid_latitude').bounds = cubes[0].coord('grid_latitude').bounds
cubes[1].coord('grid_longitude').bounds = cubes[0].coord('grid_longitude').bounds
print len(cubes)
print cubes.merge()
In [12]:
c = potential[1].coord('time')
print c.units
c.convert_units('days since 1970-01-01 00:00:00')
iris.save(potential[0], 'merge_exercise.3.f1.nc')
iris.save(potential[1], 'merge_exercise.3.f2.nc')
c.convert_units('hours since 1970-01-01 00:00:00')
In [13]:
import iris
reload(iris)
Out[13]:
In [14]:
cubes = iris.load('merge_exercise.3.*.nc')
cubes[1].coord('time').convert_units(cubes[0].coord('time').units)
print len(cubes)
print cubes.merge()
In [15]:
potential[1].data = potential[1].data.astype('float64')
iris.save(potential[0], 'merge_exercise.4.f1.nc')
iris.save(potential[1], 'merge_exercise.4.f2.nc')
potential[1].data = potential[1].data.astype('float32')
In [16]:
cubes = iris.load('merge_exercise.4.*.nc')
for cube in cubes:
cube.data = cube.data.astype('float64')
print len(cubes)
print cubes.merge()
In [17]:
!rm -rf merge_exercise.5.??.nc
potential[0].long_name = 'The first timestep'
potential[1].long_name = 'The second timestep'
iris.save(potential[0], 'merge_exercise.2.f1.nc')
iris.save(potential[1], 'merge_exercise.2.f2.nc')
potential[0].long_name = potential[1].long_name = None
In [18]:
cubes = iris.load('merge_exercise.2.*.nc')
for cube in cubes:
cube.long_name = None
print len(cubes)
print cubes.merge()
In [19]:
iris.save(potential[0], 'merge_exercise.5.f1.nc')
iris.save(stock.realistic_4d()[1:2, 0, ...], 'merge_exercise.5.f2.nc')
In [21]:
cubes = iris.load('merge_exercise.5.??.nc')
print len(cubes)
cubes[1] = cubes[1][0, ...]
for cube in cubes:
print cube.coord('time')
cube.data
for coord1, coord2 in zip(cubes[0].coords(), cubes[1].coords()):
print coord1 == coord2, coord1.name()
if not coord1 == coord2:
print `coord1`
print `coord2`
print '---'
#cubes.describe_merge()
print cubes.merge()
In [ ]: