extract
入力データの一部のみ必要な場合に,irisではcubeの一部を選んで新しいcubeを作ることができる.
import iris
import cf_units
import datetime
filename='/data/CMIP5/org_nc_xyzt/MIROC-ESM/tos_Omon_MIROC-ESM_historical_r1i1p1_185001-200512.nc'
cube_in = iris.load_cube(filename)
lonw=120
lone=280
lats=20
latn=70
dt_bgn = datetime.datetime(1955,1,1,0,0,0)
dt_end = datetime.datetime(2005,3,2,0,0,0)
u = cube_in.coord('time').units # u.calendar -> 360_day, 365_day, standard or proleptic_gregorian.
cftime_bgn = cf_units.date2num(dt_bgn, u.name, u.calendar).tolist()
cftime_end = cf_units.date2num(dt_end, u.name, u.calendar).tolist()
cube_cut = cube_in.extract(iris.Constraint(longitude=lambda cell: lonw < cell < lone))
cube_cut = cube_cut.extract(iris.Constraint(latitude=lambda cell: lats < cell < latn))
cube_cut = cube_cut.extract(iris.Constraint(time=lambda cell: cftime_bgn < cell < cftime_end))