如何解决用虹膜计算一些季节性气候指标
我有一个新项目,正在计算一些季节性气候指标。作为其中的一部分,我需要在一组气候月度数据中确定例如最湿的季度:
print(pr_cube)
Precipitation / (mm) (time: 12; latitude: 125; longitude: 211)
Dimension coordinates:
time x - -
latitude - x -
longitude - - x
每个月的时间,平均30年,coord('time)=
DimCoord([2030-01-01 00:00:00,2030-02-01 00:00:00,2030-03-01 00:00:00,2030-04-01 00:00:00,2030-05-01 00:00:00,2030-06-01 00:00:00,2030-07-01 00:00:00,2030-08-01 00:00:00,2030-09-01 00:00:00,2030-10-01 00:00:00,2030-11-01 00:00:00,2030-12-01 00:00:00]
我想知道是否可以为连续3个月的所有集合添加一个季节坐标,包括“环绕”,诸如此类:
iris.coord_categorisation.add_season(cube,coord,name='season',seasons=(''jfm','fma','mam','amj','mjj','jja','jas','aso','son','ond','ndj','djf'))
或
season = ('jfm','djf')
iris.coord_categorisation.add_season_membership(cube,season,name='all_quarters')
还没有测试,只是想知道是建议还是建议?
然后,获得最大降雨的季节吗?
Qtr_max_rain = pr_cube.collapsed('season',iris.analysis.MAX)
可以正常工作吗?
解决方法
也许有一种方法可以使用coord_categorisation
来实现,但是我认为最简单的方法是改为使用iris.cube.Cube.rolling_window()
。没有原生方法可以根据需要进行包装,因此可以通过在现有数据的末尾复制Jan和Feb来破解它。
我已经测试了以下内容,它似乎可以正常工作。希望它对您有用。
# Create extra cube based on Jan and Feb from pr_cube.
extra_months_cube = pr_cube[:2,...]
# Replace time coordinate with another that is advanced by a year - ensures correct sorting.
# Adjust addition depending on the unit of the time coordinate.
extra_months_coord = extra_months_cube.coord("time") + (24 * 365)
extra_months_cube.remove_coord("time")
extra_months_cube.add_dim_coord(extra_months_coord,0)
# Combine original cube with extra cube.
both_cubes = iris.cube.CubeList([pr_cube,extra_months_cube])
fourteen_month_cube = both_cubes.concatenate_cube()
# Generate cube of 3-month MAX aggregations.
rolling_cube = fourteen_month_cube.rolling_window("time",iris.analysis.MAX,3)
完成后,您当然可以使用iris.cube.Cube.add_aux_coord()
添加建议的三个月标签。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。