Opening 4 dimensional NetCDF to extract mean values from multiple depths / dates

Hello,

I have copernicus marine netcdf data with 4 dimensions: lat, lon, depth (32 levels) and time (5 days). I would like to be able to do 3 things:

  1. read in the "no3" (or any other variable) from the netcdf for individual days but including all depth layers (in this case daily raster bricks of 32 depth levels)
  2. calculate the mean of the no3 values for a subset of depths (e.g. mean between 0-10m, 10-20m etc) for individual days
  3. extract the mean of the values using spatial data points

I have used raster calc on a brick before but that was to get the mean of multiple days with only a single value of depth, I cannot for the life of me get raster to read in all the depth layers together for a single day.

I have tried following this and the ncdf4 documentation but I don't understand how to extract a spatial point from the arrays produced as there is no crs (which as it is a 1/4 degree grid i think is WGS84).

I do not mind how this is achieved, but an understanding of how to make it work would be hugely appreciated. Apologies if this is too long, I wanted to show where I was falling down.

Thank you

library(raster)
#> Loading required package: sp
library(ncdf4)

# Time and Location data that I would like to extract values from  --------

mDate <- c(20160306, 20160307, 20160308, 20160309, 20160310)
mLat <- c(50.32, 51.0, 51.5, 51.7, 51.8)
mLon <- c(-33.2, -33.6, -33.8, -33.9, -33.2)
mDat <- as.data.frame(cbind(mDate, mLat, mLon))
mDat
#>      mDate  mLat  mLon
#> 1 20160306 50.32 -33.2
#> 2 20160307 51.00 -33.6
#> 3 20160308 51.50 -33.8
#> 4 20160309 51.70 -33.9
#> 5 20160310 51.80 -33.2

# convert to spatial points data frame
locations <- mDat
coordinates(locations) <- ~mLon + mLat # save lat and lon as spatial points


# open a NetCDF file ------------------------------------------------------

ncfile <- "D:/cmems_mod_glo_bgc_my_0.25_P1D-m_TESTFILE.nc"
ncin <- nc_open(ncfile)


# Check contents and structure of nc file ---------------------------------

#Some basic information can be obtained using the print() function, more verbose information can be gotten with the str() function.
print(ncin)
#> File D:/cmems_mod_glo_bgc_my_0.25_P1D-m_TESTFILE.nc (NC_FORMAT_CLASSIC):
#> 
#>      6 variables (excluding dimension variables):
#>         float no3[longitude,latitude,depth,time]   
#>             long_name: Nitrate
#>             standard_name: mole_concentration_of_nitrate_in_sea_water
#>             units: mmol m-3
#>             unit_long: millimoles of Nitrate per cubic meter
#>             _FillValue: 9.96920996838687e+36
#>             _ChunkSizes: 1
#>              _ChunkSizes: 15
#>              _ChunkSizes: 137
#>              _ChunkSizes: 288
#>         float o2[longitude,latitude,depth,time]   
#>             long_name: Dissolved Oxygen
#>             standard_name: mole_concentration_of_dissolved_molecular_oxygen_in_sea_water
#>             units: mmol m-3
#>             unit_long: millimoles of Oxygen per cubic meter
#>             _FillValue: 9.96920996838687e+36
#>             _ChunkSizes: 1
#>              _ChunkSizes: 15
#>              _ChunkSizes: 137
#>              _ChunkSizes: 288
#>         float po4[longitude,latitude,depth,time]   
#>             long_name: Phosphate
#>             standard_name: mole_concentration_of_phosphate_in_sea_water
#>             units: mmol m-3
#>             unit_long: millimoles of Phosphate per cubic meter
#>             _FillValue: 9.96920996838687e+36
#>             _ChunkSizes: 1
#>              _ChunkSizes: 15
#>              _ChunkSizes: 137
#>              _ChunkSizes: 288
#>         float chl[longitude,latitude,depth,time]   
#>             long_name: Total Chlorophyll
#>             standard_name: mass_concentration_of_chlorophyll_a_in_sea_water
#>             units: mg m-3
#>             unit_long: milligram of Chlorophyll per cubic meter
#>             _FillValue: 9.96920996838687e+36
#>             _ChunkSizes: 1
#>              _ChunkSizes: 15
#>              _ChunkSizes: 137
#>              _ChunkSizes: 288
#>         float si[longitude,latitude,depth,time]   
#>             long_name: Dissolved Silicate
#>             standard_name: mole_concentration_of_silicate_in_sea_water
#>             units: mmol m-3
#>             unit_long: millimoles of Silicate per cubic meter
#>             _FillValue: 9.96920996838687e+36
#>             _ChunkSizes: 1
#>              _ChunkSizes: 15
#>              _ChunkSizes: 137
#>              _ChunkSizes: 288
#>         float nppv[longitude,latitude,depth,time]   
#>             long_name: Total Primary Production of Phyto
#>             standard_name: net_primary_production_of_biomass_expressed_as_carbon_per_unit_volume_in_sea_water
#>             units: mg m-3 day-1
#>             unit_long: milligrams of Carbon per cubic meter per day
#>             _FillValue: 9.96920996838687e+36
#>             _ChunkSizes: 1
#>              _ChunkSizes: 15
#>              _ChunkSizes: 137
#>              _ChunkSizes: 288
#> 
#>      4 dimensions:
#>         time  Size:5 
#>             long_name: Time (hours since 1950-01-01)
#>             standard_name: time
#>             calendar: gregorian
#>             units: hours since 1950-01-01 00:00:00
#>             axis: T
#>             _ChunkSizes: 1024
#>             _CoordinateAxisType: Time
#>             valid_min: 580116
#>             valid_max: 580212
#>         depth  Size:32 
#>             valid_min: 0.505760014057159
#>             valid_max: 221.141204833984
#>             units: m
#>             positive: down
#>             unit_long: Meters
#>             long_name: Depth
#>             standard_name: depth
#>             axis: Z
#>             _ChunkSizes: 75
#>             _CoordinateAxisType: Height
#>             _CoordinateZisPositive: down
#>         latitude  Size:9 
#>             valid_min: 50
#>             valid_max: 52
#>             step: 0.25
#>             units: degrees_north
#>             unit_long: Degrees North
#>             long_name: Latitude
#>             standard_name: latitude
#>             axis: Y
#>             _ChunkSizes: 681
#>             _CoordinateAxisType: Lat
#>         longitude  Size:5 
#>             valid_min: -34
#>             valid_max: -33
#>             step: 0.25
#>             units: degrees_east
#>             unit_long: Degrees East
#>             long_name: Longitude
#>             standard_name: longitude
#>             axis: X
#>             _ChunkSizes: 1440
#>             _CoordinateAxisType: Lon
#> 
#>     17 global attributes:
#>         product: GLOBAL_REANALYSIS_BIO_001_029
#>         producer: CMEMS - Global Monitoring and Forecasting Centre
#>         title: Daily mean fields for product GLOBAL_REANALYSIS_BIO_001_029
#>         area: GLOBAL
#>         quality_information_document: http://marine.copernicus.eu/documents/QUID/CMEMS-GLO-QUID-001-029.pdf
#>         Conventions: CF-1.6
#>         credit: E.U. Copernicus Marine Service Information (CMEMS)
#>         contact: servicedesk.cmems@mercator-ocean.eu
#>         references: http://marine.copernicus.eu
#>         source: MERCATOR FREEBIORYS2V4
#>         licence: http://marine.copernicus.eu/services-portfolio/service-commitments-and-licence/
#>         dataset: global-reanalysis-bio-001-029-daily
#>         institution: Mercator Ocean
#>         product_user_manual: http://marine.copernicus.eu/documents/PUM/CMEMS-GLO-PUM-001-029.pdf
#>         _CoordSysBuilder: ucar.nc2.dataset.conv.CF1Convention
#>         comment: 
#>         history: Data extracted from dataset http://localhost:8080/thredds/dodsC/cmems_mod_glo_bgc_my_0.25_P1D-m

# structure of nc file
names(ncin) 
#>  [1] "filename"    "writable"    "id"          "error"       "safemode"   
#>  [6] "format"      "is_GMT"      "groups"      "fqgn2Rindex" "ndims"      
#> [11] "natts"       "dim"         "unlimdimid"  "nvars"       "var"
# Names of the variables
ncvars <- names(ncin$var)
ncvars
#> [1] "no3"  "o2"   "po4"  "chl"  "si"   "nppv"
# Names of the dimensions
ncdims <- names(ncin$dim)
ncdims
#> [1] "time"      "depth"     "latitude"  "longitude"

# 2.2 Get coordinate (and time depth) variables ---------------------------

#how many latitude dimensions are there?
lat <- ncvar_get(ncin, "latitude")
nlat <- dim(lat)
head(lat)
#> [1] 50.00 50.25 50.50 50.75 51.00 51.25

#how many longitude dimensions are there?
lon <- ncvar_get(ncin, "longitude")
nlon <- dim(lon)
head(lon)
#> [1] -34.00 -33.75 -33.50 -33.25 -33.00

# how many lon and lat 
print(c(nlon,nlat))
#> [1] 5 9


# Time dimension (with aim of naming and selecting files) 

t <- ncvar_get(ncin, "time")
tunits <- ncatt_get(ncin, "time", "units")
tunits$value # [1] "hours since 1950-01-01"
#> [1] "hours since 1950-01-01 00:00:00"
nctime_origin <- substr(tunits$value,13,22)
nt <- dim(t)
nt
#> [1] 5

# Convert 't' vector to human readable time vector
th <- as.POSIXct(nctime_origin, tz="UTC") + as.difftime(t, units="hours")
th
#> [1] "2016-03-06 12:00:00 UTC" "2016-03-07 12:00:00 UTC"
#> [3] "2016-03-08 12:00:00 UTC" "2016-03-09 12:00:00 UTC"
#> [5] "2016-03-10 12:00:00 UTC"

# Depth dimension as a vector 

d <- ncvar_get(ncin, "depth")
d
#>  [1]   0.505760   1.555855   2.667682   3.856280   5.140361   6.543034
#>  [7]   8.092519   9.822750  11.773680  13.991040  16.525320  19.429800
#> [13]  22.757620  26.558300  30.874559  35.740200  41.180019  47.211891
#> [19]  53.850639  61.112839  69.021683  77.611160  86.929428  97.041313
#> [25] 108.030296 120.000000 133.075806 147.406204 163.164505 180.549896
#> [31] 199.789993 221.141205
dunits <- ncatt_get(ncin, "depth", "units")

# Attempts to read data from a netCDF file ----------------------------------

# I can open this with ncvar_get NOT RUN
#ncvar_get(nc = ncin, varid = "no3") 

# From ncdf4 documentation...This illustrates how to read all the data from a variable
v1 <- ncin$var$no3  #[[1]]
data1 <- ncvar_get( ncin, v1 ) # by default, reads ALL the data
print(paste("Data for var ",v1$name,":",sep=""))
#> [1] "Data for var no3:"
#print(data1)

# I can get a all depth slices of the first time slice using
data1[-1,-1,-1, 1]
#> , , 1
#> 
#>          [,1]     [,2]     [,3]     [,4]     [,5]     [,6]     [,7]     [,8]
#> [1,] 5.537858 7.385007 7.124174 6.365521 6.583226 6.622046 7.529742 9.653507
#> [2,] 5.182127 6.329475 7.077748 6.622588 6.720418 6.650584 6.753753 8.555264
#> [3,] 5.217476 5.690938 6.834893 6.722522 6.753973 6.809534 6.821626 7.735375
#> [4,] 5.843135 5.774103 6.703818 6.791099 6.769490 6.902397 6.894868 7.256358
#> 
#> , , 2
#> 
#>          [,1]     [,2]     [,3]     [,4]     [,5]     [,6]     [,7]     [,8]
#> [1,] 5.537708 7.385419 7.123945 6.365561 6.583287 6.622006 7.529591 9.653629
#> [2,] 5.182104 6.329701 7.077746 6.622582 6.720424 6.650621 6.753653 8.555366
#> [3,] 5.217511 5.691038 6.835037 6.722512 6.753935 6.809577 6.821671 7.735439
#> [4,] 5.843380 5.774163 6.704104 6.791114 6.769437 6.902456 6.894872 7.256376
#> 
#> , , 3
#> 
#>          [,1]     [,2]     [,3]     [,4]     [,5]     [,6]     [,7]     [,8]
#> [1,] 5.537557 7.385956 7.123747 6.365649 6.583399 6.621993 7.529432 9.653808
#> [2,] 5.182114 6.329998 7.077790 6.622617 6.720466 6.650699 6.753555 8.555505
#> [3,] 5.217595 5.691183 6.835248 6.722539 6.753923 6.809659 6.821767 7.735534
#> [4,] 5.843729 5.774275 6.704478 6.791172 6.769410 6.902560 6.894917 7.256421
#> 
#> , , 4
#> 
#>          [,1]     [,2]     [,3]     [,4]     [,5]     [,6]     [,7]     [,8]
#> [1,] 5.537396 7.386602 7.123594 6.365782 6.583556 6.622006 7.529261 9.654034
#> [2,] 5.182153 6.330349 7.077879 6.622689 6.720538 6.650815 6.753456 8.555668
#> [3,] 5.217719 5.691356 6.835517 6.722599 6.753933 6.809778 6.821908 7.735655
#> [4,] 5.844169 5.774432 6.704923 6.791265 6.769403 6.902703 6.895001 7.256488
#> 
#> , , 5
#> 
#>          [,1]     [,2]     [,3]     [,4]     [,5]     [,6]     [,7]     [,8]
#> [1,] 5.537228 7.387390 7.123505 6.365962 6.583760 6.622050 7.529076 9.654309
#> [2,] 5.182220 6.330781 7.078017 6.622799 6.720643 6.650969 6.753354 8.555852
#> [3,] 5.217882 5.691551 6.835843 6.722693 6.753965 6.809928 6.822100 7.735794
#> [4,] 5.844700 5.774632 6.705432 6.791394 6.769416 6.902884 6.895128 7.256571
#> 
#> , , 6
#> 
#>          [,1]     [,2]     [,3]     [,4]     [,5]     [,6]     [,7]     [,8]
#> [1,] 5.537048 7.388340 7.123498 6.366193 6.584018 6.622127 7.528873 9.654641
#> [2,] 5.182318 6.331288 7.078229 6.622953 6.720783 6.651165 6.753245 8.556055
#> [3,] 5.218088 5.691764 6.836229 6.722825 6.754022 6.810116 6.822350 7.735952
#> [4,] 5.845335 5.774876 6.706008 6.791562 6.769454 6.903108 6.895303 7.256673
#> 
#> , , 7
#> 
#>          [,1]     [,2]     [,3]     [,4]     [,5]     [,6]     [,7]     [,8]
#> [1,] 5.536855 7.389500 7.123608 6.366485 6.584337 6.622248 7.528648 9.655033
#> [2,] 5.182450 6.331876 7.078543 6.623161 6.720964 6.651413 6.753129 8.556273
#> [3,] 5.218342 5.691991 6.836684 6.723002 6.754107 6.810345 6.822668 7.736127
#> [4,] 5.846085 5.775171 6.706655 6.791776 6.769518 6.903380 6.895537 7.256793
#> 
#> , , 8
#> 
#>          [,1]     [,2]     [,3]     [,4]     [,5]     [,6]     [,7]     [,8]
#> [1,] 5.536653 7.390971 7.123881 6.366853 6.584734 6.622427 7.528398 9.655499
#> [2,] 5.182629 6.332572 7.079002 6.623433 6.721198 6.651722 6.753006 8.556505
#> [3,] 5.218655 5.692225 6.837228 6.723235 6.754227 6.810625 6.823074 7.736321
#> [4,] 5.846972 5.775525 6.707380 6.792046 6.769617 6.903710 6.895846 7.256937
#> 
#> , , 9
#> 
#>          [,1]     [,2]     [,3]     [,4]     [,5]     [,6]     [,7]     [,8]
#> [1,] 5.536456 7.393010 7.124430 6.367314 6.585225 6.622681 7.528116 9.656059
#> [2,] 5.182863 6.333460 7.079681 6.623789 6.721495 6.652108 6.752872 8.556747
#> [3,] 5.219041 5.692443 6.837960 6.723540 6.754391 6.810966 6.823588 7.736533
#> [4,] 5.848033 5.775949 6.708247 6.792385 6.769761 6.904113 6.896247 7.257102
#> 
#> , , 10
#> 
#>          [,1]     [,2]     [,3]     [,4]     [,5]     [,6]     [,7]     [,8]
#> [1,] 5.536233 7.396149 7.125557 6.367893 6.585837 6.623040 7.527782 9.656774
#> [2,] 5.183168 6.334797 7.080752 6.624255 6.721875 6.652588 6.752730 8.556979
#> [3,] 5.219525 5.692552 6.838966 6.723941 6.754614 6.811381 6.824241 7.736759
#> [4,] 5.849310 5.776473 6.709414 6.792816 6.769962 6.904604 6.896767 7.257296
#> 
#> , , 11
#> 
#>          [,1]     [,2]     [,3]     [,4]     [,5]     [,6]     [,7]     [,8]
#> [1,] 5.535914 7.400987 7.127911 6.368625 6.586599 6.623538 7.527323 9.657896
#> [2,] 5.183563 6.336471 7.082694 6.624879 6.722359 6.653189 6.752584 8.557208
#> [3,] 5.220135 5.692365 6.840495 6.724474 6.754913 6.811891 6.825073 7.737038
#> [4,] 5.850865 5.777122 6.710917 6.793370 6.770242 6.905211 6.897440 7.257529
#> 
#> , , 12
#> 
#>          [,1]     [,2]     [,3]     [,4]     [,5]     [,6]     [,7]     [,8]
#> [1,] 5.535058 7.408381 7.134305 6.369604 6.587550 6.624232 7.526636 9.659605
#> [2,] 5.184054 6.338331 7.086840 6.625784 6.722982 6.653942 6.752441 8.557432
#> [3,] 5.220963 5.691564 6.842882 6.725286 6.755316 6.812520 6.826135 7.737363
#> [4,] 5.853173 5.778005 6.713002 6.794160 6.770628 6.905960 6.898318 7.257803
#> 
#> , , 13
#> 
#>          [,1]     [,2]     [,3]     [,4]     [,5]     [,6]     [,7]     [,8]
#> [1,] 5.531797 7.419363 7.151794 6.371070 6.588737 6.625192 7.525599 9.662155
#> [2,] 5.184586 6.339219 7.100399 6.627372 6.723788 6.654891 6.752322 8.557556
#> [3,] 5.222327 5.689807 6.847124 6.726920 6.755887 6.813298 6.827496 7.737730
#> [4,] 5.857250 5.779326 6.716148 6.795473 6.771183 6.906924 6.899456 7.258118
#> 
#> , , 14
#> 
#>          [,1]     [,2]     [,3]     [,4]     [,5]     [,6]     [,7]     [,8]
#> [1,] 5.529997 7.436108 7.209074 6.374372 6.590222 6.626506 7.524268 9.665998
#> [2,] 5.185203 6.333445 7.132703 6.632392 6.724926 6.656121 6.752221 8.557279
#> [3,] 5.224974 5.684684 6.857147 6.731411 6.756835 6.814383 6.829249 7.738061
#> [4,] 5.866986 5.781398 6.722245 6.798242 6.772132 6.908312 6.900959 7.258431
#> 
#> , , 15
#> 
#>          [,1]     [,2]     [,3]     [,4]     [,5]     [,6]     [,7]     [,8]
#> [1,] 5.554494 7.466051 7.351361 6.388132 6.592422 6.628341 7.521213 9.672402
#> [2,] 5.187208 6.326368 7.254426 6.656094 6.727005 6.658017 6.752189 8.556262
#> [3,] 5.232346 5.668646 6.889036 6.758810 6.758759 6.816113 6.831533 7.738291
#> [4,] 5.932396 5.785263 6.742760 6.808209 6.774099 6.910548 6.903152 7.258680
#> 
#> , , 16
#> 
#>          [,1]     [,2]     [,3]     [,4]     [,5]     [,6]     [,7]     [,8]
#> [1,] 5.606419 7.541318 7.605372 6.450253 6.596392 6.631625 7.516473 9.680396
#> [2,] 5.191053 6.351455 7.490788 6.739729 6.731248 6.661407 6.752644 8.555297
#> [3,] 5.290118 5.652750 7.027818 6.911483 6.764748 6.819309 6.835104 7.739204
#> [4,] 6.059621 5.799773 6.822146 6.864705 6.779816 6.915273 6.906723 7.259074
#> 
#> , , 17
#> 
#>          [,1]     [,2]     [,3]     [,4]     [,5]     [,6]     [,7]     [,8]
#> [1,] 5.688033 7.642356 7.795830 6.549219 6.605046 6.638019 7.526621 9.692660
#> [2,] 5.197749 6.430327 7.715649 6.922288 6.743720 6.668456 6.756556 8.548975
#> [3,] 5.370011 5.664723 7.249207 7.208117 6.804768 6.827123 6.841456 7.737175
#> [4,] 6.254987 5.862231 7.001184 7.154300 6.820748 6.930408 6.913535 7.260852
#> 
#> , , 18
#> 
#>          [,1]     [,2]     [,3]     [,4]     [,5]     [,6]     [,7]     [,8]
#> [1,] 5.836965 7.753840 7.941538 6.678096 6.639621 6.653740 7.659627 9.742351
#> [2,] 5.210543 6.572223 7.947402 7.210479 6.891279 6.697385 6.830579 8.600058
#> [3,] 5.473782 5.735885 7.464224 7.546286 7.029748 6.908837 6.855376 7.777232
#> [4,] 6.400558 5.937618 7.161097 7.551988 7.065963 7.015792 6.926563 7.284251
#> 
#> , , 19
#> 
#>          [,1]     [,2]     [,3]     [,4]     [,5]     [,6]     [,7]     [,8]
#> [1,] 6.082744 7.882689 8.229897 6.992640 6.954281 6.754431 8.128786 9.897555
#> [2,] 5.245006 6.811812 8.198073 7.550408 7.379888 6.996148 7.231012 8.865812
#> [3,] 5.663528 5.980302 7.703638 7.853531 7.443019 7.235085 6.891505 8.012424
#> [4,] 6.489862 6.114655 7.387437 7.871540 7.434508 7.298419 6.965369 7.436274
#> 
#> , , 20
#> 
#>          [,1]     [,2]     [,3]     [,4]     [,5]     [,6]     [,7]      [,8]
#> [1,] 6.548213 8.170833 8.584800 7.400650 7.623310 7.579662 8.975219 10.130879
#> [2,] 5.422270 7.306713 8.500136 7.916377 7.779827 7.411973 7.918584  9.286650
#> [3,] 5.779960 6.526395 8.029119 8.230431 7.840356 7.560517 7.502019  8.542720
#> [4,] 6.600040 6.642671 7.914129 8.232358 7.735358 7.580765 7.432014  8.023662
#> 
#> , , 21
#> 
#>          [,1]     [,2]     [,3]     [,4]     [,5]     [,6]     [,7]      [,8]
#> [1,] 7.582483 8.794374 9.095807 8.304485 8.205111 8.667540 9.835347 10.438334
#> [2,] 6.358978 8.401130 8.958692 8.514236 8.118491 7.897240 8.825016  9.828945
#> [3,] 6.240623 7.682381 8.740997 8.829941 8.164195 7.989731 8.139261  9.278415
#> [4,] 6.923604 7.663139 8.776236 8.789913 8.119610 8.055780 8.149194  8.932666
#> 
#> , , 22
#> 
#>          [,1]      [,2]      [,3]     [,4]     [,5]     [,6]      [,7]     [,8]
#> [1,] 9.420479 10.033402  9.941433 9.303304 9.127620 9.866754 10.660896 10.73081
#> [2,] 8.446654 10.007237  9.752114 9.287206 8.822512 8.853776 10.166334 10.41151
#> [3,] 8.198873  9.647979  9.880665 9.621028 8.769080 8.751328  9.215031 10.18184
#> [4,] 7.923913  9.206560 10.023355 9.534043 8.782295 8.815980  8.772234 10.00866
#> 
#> , , 23
#> 
#>           [,1]     [,2]     [,3]     [,4]      [,5]      [,6]      [,7]
#> [1,] 11.454479 11.63573 10.92625 10.42846 10.486797 11.200217 11.551640
#> [2,] 11.011653 11.85041 10.99035 10.31997  9.997056 10.142459 11.323988
#> [3,] 10.367303 11.40974 11.31161 10.60314  9.858772  9.822536 10.319161
#> [4,]  9.323559 10.76677 11.54255 10.54610  9.880587  9.795718  9.641217
#>          [,8]
#> [1,] 11.06521
#> [2,] 11.04735
#> [3,] 11.05830
#> [4,] 11.02541
#> 
#> , , 24
#> 
#>          [,1]     [,2]     [,3]     [,4]     [,5]     [,6]     [,7]     [,8]
#> [1,] 12.60783 12.64557 11.92579 11.70618 11.87247 12.39516 12.21702 11.48627
#> [2,] 12.40732 12.89925 12.11818 11.49938 11.34657 11.53640 12.41531 11.68332
#> [3,] 11.73530 12.48113 12.43480 11.66397 11.17786 11.02313 11.47462 11.88806
#> [4,] 10.91589 12.01426 12.66193 11.65293 11.19831 10.86197 10.47703 11.88816
#> 
#> , , 25
#> 
#>          [,1]     [,2]     [,3]     [,4]     [,5]     [,6]     [,7]     [,8]
#> [1,] 13.20080 13.26694 12.74846 12.75329 12.92357 13.22433 12.83529 11.99645
#> [2,] 13.01866 13.39563 12.92205 12.56162 12.53860 12.62490 13.15319 12.27228
#> [3,] 12.56873 13.07260 13.12523 12.62476 12.40516 12.04948 12.37380 12.53854
#> [4,] 12.25094 12.88814 13.30829 12.59762 12.42173 11.77103 11.20126 12.54945
#> 
#> , , 26
#> 
#>          [,1]     [,2]     [,3]     [,4]     [,5]     [,6]     [,7]     [,8]
#> [1,] 13.59887 13.71439 13.33237 13.34947 13.54960 13.75298 13.37750 12.56052
#> [2,] 13.43682 13.77549 13.46183 13.23474 13.34066 13.38633 13.74774 12.87849
#> [3,] 13.14650 13.50451 13.58613 13.27346 13.27617 12.86202 13.16564 13.15606
#> [4,] 13.06645 13.48156 13.72370 13.25393 13.35638 12.53477 12.02342 13.19737
#> 
#> , , 27
#> 
#>          [,1]     [,2]     [,3]     [,4]     [,5]     [,6]     [,7]     [,8]
#> [1,] 13.96508 14.05335 13.64447 13.62895 13.89462 14.12240 13.88654 13.04352
#> [2,] 13.82792 14.11029 13.81206 13.56300 13.77105 13.95312 14.24354 13.42205
#> [3,] 13.63276 13.90398 13.93595 13.62523 13.74339 13.57764 13.90482 13.71875
#> [4,] 13.64283 13.93436 14.06199 13.64945 13.88259 13.30086 13.04053 13.81797
#> 
#> , , 28
#> 
#>          [,1]     [,2]     [,3]     [,4]     [,5]     [,6]     [,7]     [,8]
#> [1,] 14.29300 14.30226 13.79517 13.75042 14.10319 14.41354 14.18771 13.37498
#> [2,] 14.18724 14.39191 14.02849 13.70727 14.00869 14.36296 14.55672 13.79165
#> [3,] 14.06498 14.26161 14.19625 13.77530 13.99211 14.16284 14.40374 14.11617
#> [4,] 14.10667 14.30697 14.34025 13.87192 14.20237 14.00646 13.90955 14.29715
#> 
#> , , 29
#> 
#>          [,1]     [,2]     [,3]     [,4]     [,5]     [,6]     [,7]     [,8]
#> [1,] 14.55780 14.47818 13.87358 13.81041 14.24936 14.62899 14.34454 13.55262
#> [2,] 14.48551 14.61402 14.16178 13.76283 14.17032 14.64703 14.79096 13.99837
#> [3,] 14.42661 14.55844 14.37869 13.86347 14.16114 14.55810 14.71758 14.35954
#> [4,] 14.48895 14.62003 14.55488 13.99484 14.44533 14.49123 14.44323 14.57477
#> 
#> , , 30
#> 
#>          [,1]     [,2]     [,3]     [,4]     [,5]     [,6]     [,7]     [,8]
#> [1,] 14.75238 14.59490 13.92012 13.83511 14.34014 14.77774 14.41752 13.60525
#> [2,] 14.71284 14.76220 14.23389 13.78226 14.27445 14.84394 14.94698 14.08155
#> [3,] 14.72374 14.79096 14.49657 13.90346 14.27271 14.82134 14.92610 14.49209
#> [4,] 14.81115 14.88125 14.71417 14.06307 14.61085 14.79388 14.76576 14.74310
#> 
#> , , 31
#> 
#>          [,1]     [,2]     [,3]     [,4]     [,5]     [,6]     [,7]     [,8]
#> [1,] 14.86410 14.65659 13.93326 13.83536 14.36975 14.85694 14.44542 13.60991
#> [2,] 14.85864 14.84572 14.26898 13.77531 14.30880 14.96078 15.02485 14.08725
#> [3,] 14.95090 14.95622 14.55917 13.91073 14.36401 14.99682 15.08865 14.55311
#> [4,] 15.06463 15.08272 14.81180 14.10075 14.71485 14.98249 14.97258 14.84015

# Attempts are using raster to read -----------------------------------------

r1 <- raster::brick(ncfile, varname="no3") # defaults to first depth all times
#> Warning in .rasterObjectFromCDF(x, type = objecttype, band = band, ...): "level"
#> set to 1 (there are 32 levels)
plot(r1)


r2 <- raster::brick(ncfile, varname="no3", level=20) # selects 20th depth level - all times
plot(r2)


# trying to alter the dimensions it uses
r3 <- raster::brick(ncfile, varname="no3", dims="depth") # trying to alter the dimensions it uses
#> Warning in .rasterObjectFromCDF(x, type = objecttype, band = band, ...): "level"
#> set to 1 (there are 32 levels)
#> Warning in seq_len(nc$var[[zvar]]$dim[[dims[1]]]$len): first element used of
#> 'length.out' argument
#> Error in seq_len(nc$var[[zvar]]$dim[[dims[1]]]$len): argument must be coercible to non-negative integer
r3 <- raster::brick(ncfile, varname="no3", dims=c(1,2,3))
#> Warning in .rasterObjectFromCDF(x, type = objecttype, band = band, ...): "level"
#> set to 1 (there are 32 levels)
plot(r3)

r3 <- raster::brick(ncfile, varname="no3", dims=c(1,2,4))
#> Warning in .rasterObjectFromCDF(x, type = objecttype, band = band, ...): "level"
#> set to 1 (there are 32 levels)
plot(r3)

r4 <- raster::brick(ncfile, varname="no3", level=seq(1, 32, 1))
#> Error in if (level <= 0) {: the condition has length > 1
plot(r4)
#> Error in h(simpleError(msg, call)): error in evaluating the argument 'x' in selecting a method for function 'plot': object 'r4' not found

Created on 2022-12-01 with reprex v2.0.2

This topic was automatically closed 42 days after the last reply. New replies are no longer allowed.

If you have a query related to it or one of the replies, start a new topic and refer back with a link.