3.
\ begingroup美元

我下载了ERA5 netCDF文件,以获得11年的月/日降水量。但是我意识到,没有选择我感兴趣的领域的选项。看来要处理的文件很大。

然而,我目前正在使用R语言,但仍处于基础水平。

我的问题是关于是否有办法提取某一区域的降水值?

\ endgroup美元
3.
  • \ begingroup美元 请编辑标题以反映实际问题。为了回答这个问题,在R中几乎肯定有一种方法可以读取netCDF文件的一部分——但我不是一个足够的R用户,不能告诉你它是什么。希望有人会来回答。 \ endgroup美元
    - - - - - -半日西蒙
    2019年8月28日20:37
  • \ begingroup美元 @SemidiurnalSimon我做了一个编辑,看起来怎么样? \ endgroup美元
    - - - - - -uhoh
    2019年8月28日20:58
  • \ begingroup美元 我建议类似于“如何在R中读取netCDF文件的一部分”或类似的内容。 \ endgroup美元
    - - - - - -半日西蒙
    2019年8月28日21:26

1回答1

2
\ begingroup美元

有两种方法可以做到:

1-下载文件时,您可以选择感兴趣的特定域。当您必须下载大量变量和年份时,这是非常可取的。ERA5 netCDF以两种不同的格式提供:按小时计算,或按月平均计算).如果您需要按次月计算时间步长,那么长时间内许多变量的全局文件在磁盘空间方面非常繁重。您可以设置一个python脚本,按照本文所建议的过程下载数据,只选择域Reto Stauffer的好文章(当然还有其他方法)。

2-你可以下载变量和年份的全局netCDF,使用软件提取你感兴趣的领域。要做到这一点,最有效的系统之一是使用气候数据操作员CDO。你可以使用sellonlatbox像这样的命令

cdo sellonlatbox,LON1,LON2,LAT1,LAT2 Input_file_Name。数控Output_file_Name.nc

或者你可以用R,就你的情况而言,你可以这样做:

library(raster) library(rgdal) #加载您感兴趣的区域setwd("path_domain_shapefile") domain_shp<-readOGR("shapefile.shp") #read netCDF setwd("path_to_ERA5_files_folder") pr_data<-stack("ERA5_file.nc") #提取您感兴趣的区域的数据pr_data_domain<-extract(pr_data, domain_shp) #然后您可以将其转换为数据帧并将其写入csv

为空间数据的基本运算提供参考R,我建议这样做介绍指南

希望这能有所帮助。

\ endgroup美元

    你的答案

    点击“张贴您的答案”,即表示您同意我们的服务条款隐私政策而且饼干的政策

    这不是你想要的答案?浏览带标签的其他问题问自己的问题