代码之家  ›  专栏  ›  技术社区  ›  aaaaa

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

  •  0
  • aaaaa  · 技术社区  · 7 年前

    我不熟悉这种阴谋,因此请原谅我缺乏经验。

    我想在给定的时间内绘制欧洲的最高温度 n 白天

    可以在此处访问数据 http://www.ecad.eu/download/ensembles/data/Grid_0.44deg_rot/tx_0.44deg_rot_v16.0.nc.gz (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 ?

    谢谢

    1 回复  |  直到 7 年前
        1
  •  1
  •   tobiasegli_te    7 年前

    您可以使用 image 功能:

    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")
    

    enter image description here