首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用ERA5操作每小时的ERA5数据?

如何使用ERA5操作每小时的ERA5数据?
EN

Stack Overflow用户
提问于 2019-11-15 16:42:21
回答 2查看 2.3K关注 0票数 3

我最近开始使用ERA5每小时一次的数据和python代码。

我将使用全年(2017年)的2个变量(总降水量和2米温度)的数据。

下载的数据采用GRIB或netCDF格式。

我想做的是:

1)转换单元。在以下情况下:

  • 总降水量-将"m“转换为"mm”
  • 2米温度-将“开尔文”转换为“摄氏”

2)每小时转换为每日值

我从ECMWF的官方站点中找到了以下代码:https://confluence.ecmwf.int/display/CKB/ERA5%3A+How+to+calculate+daily+total+precipitation,不幸的是,该代码仅用于编译一天的每日值(2017年1月1日)。

我想把所有的价值都转换成一年。我知道(如果我是对的):

  • 总降水量呈累积值。所以每天的价值是24小时的总和。
  • 温度表示平均值。所以每天的价值是24小时的平均值。

3)从数据文件中提取特定信息

为了进行分析,我只想保留以下方面的资料:

  • 纬度
  • 经度
  • 时间

这两个变量(总降水量和2米温度)

4)将GRIB或netCDF文件转换为Stata软件可以读取的某种格式

我真的很感激任何帮助的姿态

EN

回答 2

Stack Overflow用户

发布于 2019-11-19 09:55:41

如果使用X阵列,这些任务中的大多数都很容易完成。

1)单位转换:

代码语言:javascript
复制
import xarray as xr 
ds = xr.open_dataset(path/to/netcdf/file)

# converting total precipitation from m to mm
ds.tp = ds.tp * 1000

# converting t2m from K to C
ds.t2m = ds.t2m - 273.15

2)每小时至每日数据:

xarray .resample方法可以在这里帮助您。

代码语言:javascript
复制
# daily temperature mean from hourly values
ds.t2m.resample(time='1D').mean()
# daily precipitation sum from hourly values
ds.tp.resample(time='1D').sum()

你的观点应该得到更好的解释,以增加你获得适当帮助的机会。

票数 2
EN

Stack Overflow用户

发布于 2021-04-25 21:47:07

ERA5 -陆地逐时降水和ERA5再分析时降水量存在差异。请参阅https://confluence.ecmwf.int/pages/viewpage.action?pageId=197702790,并参考水文参数表。ERA5再分析时和ERA5-每小时土地有相当不同的规格,如何提取每日总数。

对于ERA5-土地每小时的降水量是从每天开始的总和。ERA5再分析每小时降水量为小时的总和。这意味着来自ERA5-土地小时的每日总量不是每小时降水量的总和,而是第二天的00小时的降水量值。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58881320

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档