Преобразовать файл CSV в файл Netcdf с несколькими переменными, используя r - PullRequest
0 голосов
/ 18 марта 2020

Я хочу создать файл Netcdf из данных, содержащих несколько переменных, сохраненных в файле CSV. Я использовал эти коды, но все еще не могу создать файл Netcdf:

library("ncdf4")
data <- read.csv(file.choose())
xvals <- unique(data$long)
xvals <- xvals[order(xvals)]
yvals <- unique(data$lat)
yvals <- yvals[order(unique(data$lat))] 
lon1 <- ncdim_def("longitude", "degrees_east", xvals)
lat2 <- ncdim_def("latitude", "degrees_north", yvals)
data$time<-as.numeric(data$time)
time <- data$time
time_d <- ncdim_def("time","YMD",unique(time))
mv <- -999 #missing value to use
var_temp <- ncvar_def("temperatura", "celsius", 
                      list(lon1, lat2, time_d), 
                      longname="Temperature", mv) 
var_sal <- ncvar_def("salinity", "PPT", 
                    list(lon1, lat2, time_d), 
                    longname = "Salinity", mv )
var_dep <- ncvar_def("depth", "m", 
                    list(lon1, lat2, time_d), 
                    longname = "Depth", mv )
ncnew <- nc_create("df", list(var_temp, var_sal,var_dep))
data$idx_lon <- match(data$long,xvals)
data$idx_lat <- match(data$lat,yvals)
data$idx_time <- match(data$time,unique(time))
m <- array(mv,dim = c(length(yvals),length(xvals),length(unique(time))))
ncvar_put(ncnew, var_temp,m)

мои данные выглядят так:

salinity    temperature pressure    depth   lat long    time2
36.56900024 29.41500092 4.400000095 4.364237353 16.538  60.274  4/23/2019 9:31
36.56800079 29.41399956 6   5.951209529 16.538  60.274  4/23/2019 9:31
36.57099915 29.40500069 8   7.934907545 16.538  60.274  4/23/2019 9:31
36.57699966 29.38599968 10  9.918586317 16.538  60.274  4/23/2019 9:31
36.58200073 29.33499908 12  11.90224585 16.538  60.274  4/23/2019 9:31
36.5870018  29.29599953 14  13.88588613 16.538  60.274  4/23/2019 9:31
36.5929985  29.29100037 16  15.86950718 16.538  60.274  4/23/2019 9:31
36.5909996  29.27199936 18  17.85310898 16.538  60.274  4/23/2019 9:31
36.57600021 29.22299957 20  19.83669155 16.538  60.274  4/23/2019 9:31
36.52000046 29.02700043 22  21.82025487 16.538  60.274  4/23/2019 9:31
36.4109993  28.42099953 24  23.80379896 16.538  60.274  4/23/2019 9:31
36.34899902 27.87100029 26  25.78732382 16.538  60.274  4/23/2019 9:31
36.33000183 27.56399918 27.89999962 27.67165424 16.538  60.274  4/23/2019 9:31
36.4070015  27.49200058 30  29.75431583 16.538  60.274  4/23/2019 9:31
36.41999817 27.39500046 32  31.73778298 16.538  60.274  4/23/2019 9:31
36.42499924 27.21699905 34  33.72123091 16.538  60.274  4/23/2019 9:31
36.43500137 26.7859993  36  35.7046596  16.538  60.274  4/23/2019 9:31
36.39699936 26.21999931 38  37.68806906 16.538  60.274  4/23/2019 9:31
36.38000107 25.74200058 40  39.6714593  16.538  60.274  4/23/2019 9:31
36.38800049 25.54000092 42.09999847 41.75399684 16.538  60.274  4/23/2019 9:31
36.38399887 25.43700027 44  43.6381821  16.538  60.274  4/23/2019 9:31
36.37900162 25.25799942 46  45.62151466 16.538  60.274  4/23/2019 9:31

Пожалуйста, любой может помочь мне создать файл netcdf, содержащий эти данные.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...