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))