R-在lat和lon网格空间中绘制netcdf4数据

R-在lat和lon网格空间中绘制netcdf4数据,r,plot,grid,coordinates,netcdf4,R,Plot,Grid,Coordinates,Netcdf4,我是这种阴谋的新手,因此请原谅我缺乏经验 我想画出欧洲在给定的n天内的最高温度 可以在此处访问数据(258MB..抱歉) 这是一个具有3个维度和4个变量的netcdf文件 以下是我所做的: library(ncdf4) max_tmp_0_44_deg = "tx_0.44deg_rot_v16.0.nc" max_tmp_0_44_deg = nc_open(max_tmp_0_44_deg) # create variables temp = ncvar_get(max_tmp_0_44_

我是这种阴谋的新手,因此请原谅我缺乏经验

我想画出欧洲在给定的
n
天内的最高温度

可以在此处访问数据(258MB..抱歉)

这是一个具有3个维度和4个变量的netcdf文件

以下是我所做的:

library(ncdf4)
max_tmp_0_44_deg = "tx_0.44deg_rot_v16.0.nc"
max_tmp_0_44_deg = nc_open(max_tmp_0_44_deg)

# create variables
temp = ncvar_get(max_tmp_0_44_deg, 'tx')
lon = ncvar_get(max_tmp_0_44_deg, 'Actual_longitude')
lat = ncvar_get(max_tmp_0_44_deg, 'Actual_latitude')
time = ncvar_get(max_tmp_0_44_deg, 'time')
如何绘制给定一天内最高温度的网格(纬度和经度)

max_day = temp[,,30]   #subset max temp on the 30th day
那么我如何绘制
max_day

这应该很简单,但我还没有找到解决办法


谢谢

您可以使用
图像
功能:

temp_use <- temp[,,30]
temp_use <- round(temp_use)

n_colors <- length(table(temp_use))
image(temp_use,
    col = heat.colors(n_colors),
    xaxt = "n",
    yaxt = "n")
temp_max <- temp_use == max(temp_use, na.rm = T) & !is.na(temp_use)
temp_max[temp_max == F] <- NA
image(temp_max,
    add = T,
    col = "blue",
    xaxt = "n",
    yaxt = "n")

temp\u使用非常感谢。然而,颜色梯度似乎是颠倒的,即热=黄,红=冷。我怎样才能倒转?谢谢。使用
col=rev(heat.colors(n_colors))
而不是
col=heat.colors(n_colors)
顺便说一句,您可以使用类似
col=colorrmplete(c(“蓝色”、“灰色”、“红色”)(n_colors)的东西轻松定义自己的调色板(例如从蓝色到灰色到红色)
有什么简单的方法可以重叠欧洲地图的轮廓吗?我建议你提出一个新问题