尝试使用Ncdf数据放置全局地图时出现问题

时间:2019-02-16 17:02:02

标签: python r ncdf4

我正在尝试用降水量的ncdf数据覆盖全球地图, 特定位置(使用特定坐标)。该文件为ncdf格式 (通常用于存储气候数据),而我目前正在尝试 在绘制的降水值上放置全球地图。但是,我有 难以在该图上放置全局地图,并且遇到错误。一世 会告诉你我做了什么:

const res = [{sakti: "23"},{Baim: "20"},{Jaka: "18"}]
const arrayConv = Array.from(res, obj => { return {"name":Object.keys(obj)[0], "y":Object.values(obj)[0] } });
console.log(arrayConv);

错误:美学的长度必须为1或与数据(128)相同:x, y,颜色

为什么不起作用?可能是我没有包括“时间” ggplot函数中的尺寸?问题是,当我尝试 获得“时间”维度,就像我对纬度和经度所做的一样, 收到以下错误:

#To create a plot of precipitation data using the following ncdf file - the
following code works fine and provides the distributions global precipitation
values (Land+Water values):

>library(ncdf4)
>Can<-"MaxPrecCCCMACanESM2rcp45.nc"


>Model<-nc_open(Can)
>print(Model)
>attributes(Model$var)
>$names
>dat<-ncvar_get(Model, "onedaymax")
>dat[128,50,1] #View onedaymax for selected latitude, longitude and Year
>nc_lat<-ncvar_get(Model,attributes(Model$dim)$names[2]) #Retrieve latitude
>nc_lon<-ncvar_get(Model,attributes(Model$dim)$names[3]) #Retrieve longitude
>print(paste(dim(nc_lat), "latitudes and", dim(nc_lon), "longitudes"))
>library(maptools)
>map<-dat[,,5] #Precipitation for all longitudes, latitudes, and Year 5
>grid<-expand.grid(nc_lon=nc_lon, nc_lat=nc_lat)
>image(nc_lon,nc_lat,map, ylab="Latitude", xlab="Longitude", main="One-day
maximum precipitation")
>levelplot(map~nc_lon*nc_lat, data=grid, at=cutpoints, cuts=11,
ylab="Latitude", xlab="Longitude", >main="Year 5 one-day maximum
precipitation (mm/day) for CanESM2 under RCP4.5", pretty=T,
col.regions=(rev(brewer.pal(10, "Spectral"))))

#To place a global map on the map that map that returns using the above
code. *This is where errors begin:

>ggplot()+geom_point(aes(x=nc_lon,y=nc_lat,color="onedaymax"),
size=0.8)+borders("world", colour="black")+scale_color_viridis(name="onedaymax")+theme_void()+coord_quickmap()

nc $ dim [[idobj $ list_index]]中的错误:   尝试选择多个元素

如果有帮助,这就是ncdf中的变量和尺寸 文件:

/文件MaxPrecCCCMACanESM2rcp45.nc(NC_FORMAT_NETCDF4):

>t<-ncvar_get(Model,"time")

任何帮助将不胜感激!!!!

谢谢

0 个答案:

没有答案