自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(10)
  • 收藏
  • 关注

原创 cube数据画柱状图

Iris中居然没有柱状图的例子,也是奇了。网上查画柱状图基本是以列表形式列出所有元素再画图,这对有三个、四个坐标的cube数据太不友好了,尤其是cube有时包含几十个,甚至几百个数据,无法一一列出,参考了matplotlib网站的例子,将cube数据画柱状图的例子补上。import irisimport iris as ipltimport matplotlibe as mplimport matplotlib.pyplot as pltfrom matplotlib.ticker import

2020-06-03 02:10:14 189

原创 用iris选取某些月或者某些天数据

模式资料有时几十年打包在一起,如果需要挑出某些月份或者某些日期数据做分析,可以用iris命令取出,比找时间戳再选择日期简单。import iriscube=iris.load_cube('/文件路径/test.nc')# 选择5、6、7、8月数据,如果只取一个月,需去掉中括号sub_cube=cube.extract(iris.Constraint(time=lambda cell:cell.point.month in [5,6,7,8]))# 选择每个月的20日、21日、22日sub_cu

2020-06-02 04:33:59 225

原创 含有多个变量的cube合成

有时cube包含多个变量,无法用iris.load_cube加载和slice命令切片再append。可以用iris中的equalise_attributes来代替append命令再合成一个cube。from iris.experimental.equalise_cubes import equalise_attributescube=iris.load('/路径/通用文件名')equalise_attributes(cube)cube=cube.concatenate_cube()注意:需合成

2020-05-25 02:31:21 162

原创 利用points计算有效时间

模式cube中包含四个坐标:forecast_reference_time、forecast_period、latitude、longitude,有效时间valid time需要利用forecast_reference_time 和 forecast_period 进行计算。import iris.......# 计算valid time的pointsnewpoints=cube.coord('forecast_reference_time').points+int(period)# 加入时间

2020-05-15 03:45:41 218

转载 利用zfill凑文件名

使用循环凑文件名时经常在int和str以及缺位数中纠结,直到看到一位大神用zfill命令凑位数,茅塞顿开。例如凑月、日、时的文件名:months=[str(x).zfill(2) for x in range(5,9)]hours=[str(x).zfill(3) for x in range(0,169,3)]for month in months: if month=='06': days=[str(x).zfill(2) for x in range(1,31)] else: da

2020-05-15 03:07:09 218

原创 iris选取特定高度

有些物理量包含多个高度场,若想选取特定高度进行分析计算,用constraint命令。import iris#以选取850hPa数据为例cube_850=cube.extract(iris.Constraint(pressure=850))注:本例中cube高度坐标名为pressure,但是有些数据如ERA5高度坐标名为pressure_level,需要先查看坐标名再取值。...

2020-05-15 02:24:35 125

原创 iris根据经纬度选取特定区域

根据经纬度获取特定区域形成新的cube:例如:import iris# Extract the areace=iris.coords.CoordExtent('latitude',10.0,55.0)ce1=iris.coords.CoordExtent('longitude',80.0,140.0)cube=cube.intersection(ce,ce1)

2020-05-15 02:17:51 291

翻译 iris升级和降级cube坐标

有时需要改变cube的主副坐标以便于下一步计算,先降级主坐标再升级副坐标。import irisiris.util.demote_dim_coord_to_aux_coord(cube,'time')iris.util.promote_aux_coord_to_dim_coord(cube,'new_time')

2020-05-15 02:07:18 172

原创 Duplicate cube的问题

使用iris的merge命令时,有时会出现由于两个或多个cube的坐标完全一样,Python无法区别,因此会认为是同一个cube重复append而无法合并的问题。这时需要在append之后给每个cube加一个index再合并。import iris......all_cubes.append(cube)cube_list=iris.cube.CubeList(all_cubes)for index,cube in enumerate(cube_list): cube.add_aux_coord(

2020-05-15 00:36:03 113

原创 Iris开坑(slices和merge)

Iris 开坑 (slices 和 merge)Iris 可用于分析和可视化地球科学数据,功能强大。而我仅仅是因为总是记不住命令,需要写下来方便查找。新手新手新手!先说说我最常用的slice命令。cube 不同于array和list,包括多维坐标,一般包含时间、经度、纬度或其他坐标(模式数据常包含forecast reference time 和 forecast period),slice命令能将加载的多个cube文件根据不同的坐标进行‘切片’处理,slice后的subcubes方便挑选需要的数

2020-05-14 01:53:52 286

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除