当前位置: 首页 > 知识库问答 >
问题:

将时间序列天气预报数据从Netcdf提取到csv

有宏峻
2023-03-14

我想使用R从每个位置(X和Y)的Netcdf数据集中提取时间序列数据并将其转换为csv文件。这是我第一次处理NetCDF数据。有人能告诉我使用R或Matlab的相关代码吗?

这是我的数据描述:

IRI FD季节性预测降水问题:Tercile概率数据

独立变量(网格):

Tercile Classes网格:/C(ids)无序[(低于正常)(正常)(高于正常)]:发布的网格月份预测

网格:/F(自1960-01-01以来的月数)订购[(1997年9月)(1997年12月)(1998年3月)…(2015年9月]N=187分:网格

预测提前时间以月为单位网格: /L(月)订购(1.0个月)到(4.0个月)按1.0 N=4点:网格经度

网格: /X(degree_east)周期性(178.75W)到(178.75E)乘2.5 N=144个点:网格纬度(纬度)

网格: /Y(degree_north)排序(88.75N)到(88.75S)2.5 N=72点:网格

共有1个答案

朱承载
2023-03-14

您可以使用netcdf4软件包

library(ncdf4)
setwd("E:\\KKIM_2017\\DES\\")

nc = nc_open("MTS_IR_201612010000.nc")       #open ncdf and read variables
lon = ncvar_get(nc,"longitude")              # Lon lat and time
lat = ncvar_get(nc,"latitude")
time = ncvar_get(nc, "time")
dname = "IR"  #variable
variabel = ncvar_get(nc,dname)
lonlat = as.matrix(expand.grid(lon,lat))
var_vektor = as.vector(variabel)
datanya = data.frame(cbind(lonlat,var_vektor))
names(datanya) = c("lon","lat",paste(dname,as.character(), sep="_"))
head(na.omit(datanya))
csvpath = "E:\\"  #directory to save file
csvname = "hasil_1v2.csv" #file_output
csvfile = paste(csvpath, csvname, sep="")
write.table(na.omit(datanya),csvfile, row.names=FALSE, sep=",")
 类似资料:
  • 更新:修改了这个问题,以更好地反映我目前的理解。 我有一个NetCDF 4.5版本的Grib2记录对象。给定一个(x,y)网格点和一个变量名,我想从对象中按预测时间提取该变量的所有预测数据(如果记录包含该变量的预测)。由于写入磁盘索引文件的默认行为,我不想使用更高级别的NetCDFFile接口。 我尝试过查看底层代码(Grib2Rectilyser,Grib2Customizer等)。)但是代码太

  • 21.1 注册免费API和阅读文档 本节通过一个API接口(和风天气预报)爬取天气信息,该接口为个人开发者提供了一个免费的预报数据(有次数限制)。 首先访问和风天气网,注册一个账户。注册地址:https://console.heweather.com/ 在登陆后的控制台中可以看到个人认证的key(密钥),这个key就是访问API接口的钥匙。 获取key之后阅读API文档:https://www.h

  • 一个与R有关的新手问题。如何使用R从netdcf文件中提取特定位置的时间序列数据。例如,下面的快照显示位置(1、2)的时间序列为13、28、43。 提前谢谢。

  • 你好:)我正在写一个电报机器人,显示今天和明天的天气。作为我正在使用的数据openweathermap.org. 现在,我使用了getTodaysWeather方法从JSON中获取有关Java对象的信息http://www.jsonschema2pojo.org并写道: 现在,我需要编写一个方法,从JSON数据中获取明天的天气数据http://api.openweathermap.org/data

  • 我在1998-01-01到1998-12-31期间使用TRMM_3B42_Daily产品创建了这个文件。这是我在R中使用的脚本: 通过这个链接,我试图提取值来绘制时间序列,但似乎我正在平均两个单元格的值,而不仅仅是提取单个单元格的值。我该如何解决这个问题?有没有办法创建一个循环,以便它提取不同单元格的值?(在这种情况下,它将是13 x 21=273) 我还发现了另外两个问题,即 excel 文件中

  • 此过程中的主要问题是下面的代码: 产生以下错误: 我有两个CSV文件,其中一个包含变量(降水量)的所有实际数据,每一列都是一个站点,它们的对应坐标在第二个单独的CSV文件中。我的示例数据在这里的谷歌驱动器中。 如果您想查看数据本身,但我的第一个 CSV 文件具有形状(39811、144),第二个 CSV 文件具有形状(171、10),但请注意;我仅将切片数据帧用作 (144, 2)。 这是代码: