- 博客(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关注的人