7
\ begingroup美元

这是来自一个新人,所以请。

当我深入研究的世界流星数据和再分析第一次,我发现获取天气数据是一个漫长的过程,所以我喊了一些帮助我开始使用它。

  1. 获取推荐的工作流程是什么ERA5数据感兴趣的区域(ROI)表面几个变量(降雨、soilmoisutre tempmin,太阳能rad) ?

    • 有一个API连接我(R, Python, Curl) ERA5数据库?
    • 我需要下载整个(全球)文件,即使我的ROI总是在同一个国家吗?如果是这样,我们谈论的是100 gb, 1000 gb或10000 gb的数据变量,整个历史吗?
  2. 似乎有很多工具来提取ROI来自一种文件格式的数据文件。2019年推荐的学习工具是什么?

    • CDO是最适合这份工作的工具吗?

    • 任何Python / R包,可以有效地提取和绘制这些数据?

谢谢,让我知道如何补充上面的信息

\ endgroup美元
7
  • 1
    \ begingroup美元 你需要自动化流程吗?或者你满意在线界面手动选择、可视化和下载数据? \ endgroup美元
    - - - - - -卡米洛·Rada
    2019年3月26日17:16
  • 4
    \ begingroup美元 如果只是几层为一个特定的区域,您可以简单地遵循这里描述的过程(confluence.ecmwf.int /显示/ CKB /如何+ + + ERA5下载),并使用内置的API。 \ endgroup美元
    - - - - - -Nemesi
    2019年3月26日,在十七19
  • \ begingroup美元 @CamiloRada、数据采集自动化。我发现手动界面< < <confluence.ecmwf.int /显示/ CKB /如何+ + + ERA5下载> >现在就和学习。问题是在这个数据聚合的最佳工具roi。你会建议ClimateDataOperators (cdo)在Windows上的人? \ endgroup美元
    - - - - - -
    2019年3月27日17:44
  • 1
    \ begingroup美元 @Dan,对不起,我没读所有的教程,没有意识到该设施仍在发展。如果您熟悉Python,可以适应这个脚本(confluence.ecmwf.int /页面/ viewpage.action ? pageId = 73016800为你的ROI提取数据。与ERA5文件我没有没有工作,但是我认为文件的结构应该类似于一个用于ERA-Interim他们。 \ endgroup美元
    - - - - - -Nemesi
    2019年3月28日,在36
  • 1
    \ begingroup美元 回答你的问题,根据我的经验,CDO和甲是最有效的工具来调整和从NetCDF获得信息,HDF5,或一种文件格式文件,但有时你想使用脚本(我通常使用R,但Python可能是更有效)提取和气候数据和准备过程输出的格式,您可以使用为目的。例如,我经常使用R脚本从.nc文件中提取气候预测和准备地表模型的输入文件。因此,没有一种标准的方式进行,这取决于你需要做什么。 \ endgroup美元
    - - - - - -Nemesi
    在9点40 3月28日,2019年

2答案2

5
\ begingroup美元

我不明白为什么我子集的选择不应该使用python脚本。据我这工作。下面是一个示例脚本。

进口cdsapi c = cdsapi.Client c ()。检索(reanalysis-era5-single-levels,{“变量”:“total_precipitation”,“product_type”:“重新分析”,“年”:“2010”,“月”:“04”,“天”:“07年”,“区域”:“60/0/0/100”,“时间”:[‘0’,‘01:00’,‘02:00’,‘03:00’,‘内’,“凌晨”、“06:00时”,07:00,喂饲,上午9点,10点,11点,12点,“13”,“已”,“维基”,“点”,17点,18:00,‘点’,20:00,21:00,22:00,'这样'],“格式”:“netcdf”},“precip.nc”)

更新针对提出的一些评论@Nemesi——这个cd Python API没有必要使用CDO或区域的数据子集。API本身负责为您使用关键字区域。一旦你指定边界框的数据得到下载您所指定的边界框的边界。也没有编程构造子集的全球数据。现在CDS web接口不允许你做构造子集(问题是被固定在我写根据哥白尼支持)。但这并不是一个问题。自从OP的要求是一个自动化过程的CDS Python Web API填充的目的。在这种背景下子集是一样的ROI或地区的利益。

这就是我要做得到这个工作。我必须安装对python cdsapi。一个可以使用脉冲(我通常做- python3.6设置。py安装以来我没有conda)。然后创建一个.cdsapirc(在Linux和其他UNIX风格应该是主要的主目录下。创建这个文件无论你有$ HOME变量定义),应该是这样

url: https://cds.climate.copernicus。欧盟/ api / v2键:{UID}: {api密匙}验证:0

UID和API键的值应该会得到当你注册新的cd web界面。

然后运行它。

这里的关键参数区域

和前两个值开始纬度和经度结局纬度和经度紧随其后。当我查看下载使用ncdump netCDF文件那样有正确的边界框的值。现在你可以改变格丽格式如果你希望但我认为脚本的基本格式不会改变。

这是一个阴谋的沉淀为一个特定的子集即时在24小时内。

这是块(我使用的代码matplotlibcartopy)

从netCDF4导入数据集,num2date cartopy进口。crs cartopy.mpl ccr自己。股票行情自动收录器进口LongitudeFormatter LatitudeFormatter cartopy。util进口add_cyclic_point进口matplotlib mpl mpl.rcParams [' mathtext.default '] =进口matplotlib“常规”。pyplot一样plt进口numpy np文件= "降雨。数控”nc_pvFile =数据集(文件,“r”)背阔肌= nc_pvFile。变量(“纬度”][:]#朗= nc_pvFile提取/复制数据。变量(经度的][:]背阔肌=背阔肌[:].squeeze()朗=朗[:].squeeze () preciPlot = nc_pvFile。变量(tp的][:]页= preciPlot [0::] ax₁= plt.axes(投影= ccrs.PlateCarree (central_longitude = 180) clevs = np.arange (min (pp.flatten()),马克斯(pp.flatten ()) * 1000, 1) shear_fill = ax₁。contourf(经度,背阔肌,页* 1000、clevs变换= ccrs.PlateCarree(),提出= plt.get_cmap (hsv),线宽=(10)= 100水平,延长=‘都’)ax1.coastlines () ax1.gridlines ax₁()。set_xticks([0, 10年,20年,30、40、50、60、70、80、90100],crs = ccrs.PlateCarree ()) ax₁。set_yticks([0, 10年,20年,30、40、50、60),crs = ccrs.PlateCarree ()) lon_formatter = LongitudeFormatter (zero_direction_label = True, number_format = .0f) lat_formatter = LatitudeFormatter () ax1.xaxis.set_major_formatter (lon_formatter) ax1.yaxis.set_major_formatter cbar = plt (lat_formatter)。colorbar (shear_fill取向=“水平”)plt。标题(总降水,字形大小= 16)plt.savefig (“precip_era.png”)

降雨

\ endgroup美元
7
  • 1
    \ begingroup美元 嗨@gansub,没有人说Python(或者R或Matlab)不能格丽或NetCDF子集(实际上我用R每一次这样做),我只是说,NCO和CDO是更有效率的。 \ endgroup美元
    - - - - - -Nemesi
    2019年4月2日7:28
  • 2
    \ begingroup美元 @Nemesi——没有。请再读的问题。时代过渡的cd web界面下载数据不做目前的一个子集(问题是固定根据ECMWF支持)。它只允许完整的全局数据下载。我回答说不,这是不正确的。使用关键字你可以使用自动化的子集的过程。如果这个前提是错误的,我将删除我的答案。我将让OP澄清,在评论或一个编辑他的问题。 \ endgroup美元
    - - - - - -gansub
    2019年4月2日8时
  • \ begingroup美元 @Nemesi它不是关于Python或R构造子集。CDS API允许您不使用编程式功能子集。 \ endgroup美元
    - - - - - -gansub
    2019年4月2日,32
  • \ begingroup美元 别误会我的意思,你是一个好的答案,我up-voted它。我不熟悉CDS API,和我还没有使用ERA5数据。很高兴听到,现在工作。谢谢你解决这个问题。 \ endgroup美元
    - - - - - -Nemesi
    2019年4月2日,在55
  • 2
    \ begingroup美元 @Dan没有本地数据的提取。它完全是远程的。请安装cd python API和自己得出结论。 \ endgroup美元
    - - - - - -gansub
    2019年4月2日,58
1
\ begingroup美元

任何Python / R包,可以有效地提取和绘制这些数据?

我可以强烈推荐使用Python包xarray虹膜数据分析和Cartopy策划。

\ endgroup美元

    你的答案

    通过点击“发布你的答案”,你同意我们服务条款并承认您已阅读并理解我们的隐私政策的行为准则

    不是你要找的答案?浏览其他问题标记问你自己的问题