You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
## function to return data frame of ## fullname (file path)## date (date-time of the band in the file)## band (number of the band within this file)weather_files<-function(...) {
## the location of the files/s here is your job (as is caching this file list)files<-"weather_sample.nc"timefun<-function(file) RNetCDF::var.get.nc(RNetCDF::open.nc(file), "time")
## MDS I personally don't like to automate this step, the metadata is often## insufficient#ncmeta::nc_att(files[1], "time", "units")$value$units## [1] "hours since 1900-01-01 00:00:00.0"ltime<- lapply(files, timefun)
lens<- lengths(ltime) ## so we expand file name out for every bandtime<- unlist(ltime)
data.frame(date= as.POSIXct("1900-01-01 00:00:00", tz="UTC") +time*3600,
fullname= rep(normalizePath(files), lens),
band= unlist(lapply(lens, seq_len)), stringsAsFactors=FALSE)
}
## function to read from netcdf file for a given date-time## only finds the nearest, and will error if out of bounds## 12hourly is a hardcoded stringread_weather<-function(date, varname= c("mwp", "swh"), ..., time.resolution="12hourly", returnfiles=FALSE) {
files<- weather_files()
if (returnfiles) return(files)
var<- match.arg(varname)
if (missing(date)) date<-files$date[1]
date<- as.POSIXct(date)
stopifnot(length(date) ==1) ## makes life easier atmidx<- which.min(abs(files$date-date))
## here we need to stop() if the date isn't within the bounds of the filesif (date< min(files$date)) stop()
if (date> max(files$date)) stop()
raster::setZ(raster::setExtent(raster::raster(files$fullname[idx], varname=var, band=files$band[idx]),
raster::extent(0, 360, -90, 90)), files$date[idx])
}
## read the track dataais<-readr::read_csv("ais_sample.csv")
## query the read function with lon, lat, date-timeout<-raadtools::extract(read_weather, ais[c("LONGITUDE", "LATITUDE", "TIME")])
out is a vector of the mwp values at the right time and location (within the limits provided in the netcdf file)
The text was updated successfully, but these errors were encountered:
Example data set provided at appelmar/gdalcubes#26
out
is a vector of the mwp values at the right time and location (within the limits provided in the netcdf file)The text was updated successfully, but these errors were encountered: