[R] Clip smaller domain from large domain netCDF file
Aseem Sharma
nature.aseem at gmail.com
Thu Aug 28 00:29:24 CEST 2014
Hi,
Yes this is the canadian domain data.
I want to extract only for parts of western Canada.
Further, this data has three variable namely pr, tmax and tmin. I am trying
to extract three different .nc files of each parameters for a smaller
domain.
below is the results of str(myfile).
> str(ncold)
List of 12
$ filename : chr "ddf.nc"
$ writable : logi FALSE
$ id : int 65536
$ format : chr "NC_FORMAT_NETCDF4_CLASSIC"
$ is_GMT : logi FALSE
$ groups :List of 1
..$ :List of 7
.. ..$ id : int 65536
.. ..$ name : chr ""
.. ..$ ndims: int 3
.. ..$ nvars: int 6
.. ..$ natts: int 10
.. ..$ dimid: int [1:3(1d)] 0 1 2
.. ..$ fqgn : chr ""
.. ..- attr(*, "class")= chr "ncgroup4"
$ ndims : num 3
$ natts : num 10
$ dim :List of 3
..$ lon :List of 10
.. ..$ name : chr "lon"
.. ..$ len : int 1068
.. ..$ unlim : logi FALSE
.. ..$ group_index : int 1
.. ..$ group_id : int 65536
.. ..$ id : int 0
.. ..$ dimvarid :List of 5
.. .. ..$ id : int 0
.. .. ..$ group_index: int 1
.. .. ..$ group_id : int 65536
.. .. ..$ list_index : num -1
.. .. ..$ isdimvar : logi TRUE
.. .. ..- attr(*, "class")= chr "ncid4"
.. ..$ units : chr "degrees_east"
.. ..$ vals : num [1:1068(1d)] -141 -141 -141 -141 -141 ...
.. ..$ create_dimvar: logi TRUE
.. ..- attr(*, "class")= chr "ncdim4"
..$ lat :List of 10
.. ..$ name : chr "lat"
.. ..$ len : int 510
.. ..$ unlim : logi FALSE
.. ..$ group_index : int 1
.. ..$ group_id : int 65536
.. ..$ id : int 1
.. ..$ dimvarid :List of 5
.. .. ..$ id : int 1
.. .. ..$ group_index: int 1
.. .. ..$ group_id : int 65536
.. .. ..$ list_index : num -1
.. .. ..$ isdimvar : logi TRUE
.. .. ..- attr(*, "class")= chr "ncid4"
.. ..$ units : chr "degrees_north"
.. ..$ vals : num [1:510(1d)] 41 41.1 41.2 41.3 41.4 ...
.. ..$ create_dimvar: logi TRUE
.. ..- attr(*, "class")= chr "ncdim4"
..$ time:List of 11
.. ..$ name : chr "time"
.. ..$ len : int 22280
.. ..$ unlim : logi TRUE
.. ..$ group_index : int 1
.. ..$ group_id : int 65536
.. ..$ id : int 2
.. ..$ dimvarid :List of 5
.. .. ..$ id : int 2
.. .. ..$ group_index: int 1
.. .. ..$ group_id : int 65536
.. .. ..$ list_index : num -1
.. .. ..$ isdimvar : logi TRUE
.. .. ..- attr(*, "class")= chr "ncid4"
.. ..$ units : chr "days since 1950-01-01 00:00:00"
.. ..$ calendar : chr "standard"
.. ..$ vals : num [1:22280(1d)] 0 1 2 3 4 5 6 7 8 9 ...
.. ..$ create_dimvar: logi TRUE
.. ..- attr(*, "class")= chr "ncdim4"
$ unlimdimid: num 3
$ nvars : num 3
$ var :List of 3
..$ pr :List of 22
.. ..$ id :List of 5
.. .. ..$ id : num 3
.. .. ..$ group_index: num -1
.. .. ..$ group_id : int 65536
.. .. ..$ list_index : num 1
.. .. ..$ isdimvar : logi FALSE
.. .. ..- attr(*, "class")= chr "ncid4"
.. ..$ name : chr "pr"
.. ..$ ndims : int 3
.. ..$ natts : int 5
.. ..$ size : int [1:3] 1068 510 22280
.. ..$ dimids : int [1:3] 0 1 2
.. ..$ prec : chr "float"
.. ..$ units : chr "mm day-1"
.. ..$ longname : chr "Precipitation"
.. ..$ group_index : int 1
.. ..$ chunksizes : logi NA
.. ..$ storage : num 2
.. ..$ shuffle : logi FALSE
.. ..$ compression : logi NA
.. ..$ dims : list()
.. ..$ dim :List of 3
.. .. ..$ :List of 10
.. .. .. ..$ name : chr "lon"
.. .. .. ..$ len : int 1068
.. .. .. ..$ unlim : logi FALSE
.. .. .. ..$ group_index : int 1
.. .. .. ..$ group_id : int 65536
.. .. .. ..$ id : int 0
.. .. .. ..$ dimvarid :List of 5
.. .. .. .. ..$ id : int 0
.. .. .. .. ..$ group_index: int 1
.. .. .. .. ..$ group_id : int 65536
.. .. .. .. ..$ list_index : num -1
.. .. .. .. ..$ isdimvar : logi TRUE
.. .. .. .. ..- attr(*, "class")= chr "ncid4"
.. .. .. ..$ units : chr "degrees_east"
.. .. .. ..$ vals : num [1:1068(1d)] -141 -141 -141 -141 -141 ...
.. .. .. ..$ create_dimvar: logi TRUE
.. .. .. ..- attr(*, "class")= chr "ncdim4"
.. .. ..$ :List of 10
.. .. .. ..$ name : chr "lat"
.. .. .. ..$ len : int 510
.. .. .. ..$ unlim : logi FALSE
.. .. .. ..$ group_index : int 1
.. .. .. ..$ group_id : int 65536
.. .. .. ..$ id : int 1
.. .. .. ..$ dimvarid :List of 5
.. .. .. .. ..$ id : int 1
.. .. .. .. ..$ group_index: int 1
.. .. .. .. ..$ group_id : int 65536
.. .. .. .. ..$ list_index : num -1
.. .. .. .. ..$ isdimvar : logi TRUE
.. .. .. .. ..- attr(*, "class")= chr "ncid4"
.. .. .. ..$ units : chr "degrees_north"
.. .. .. ..$ vals : num [1:510(1d)] 41 41.1 41.2 41.3 41.4 ...
.. .. .. ..$ create_dimvar: logi TRUE
.. .. .. ..- attr(*, "class")= chr "ncdim4"
.. .. ..$ :List of 11
.. .. .. ..$ name : chr "time"
.. .. .. ..$ len : int 22280
.. .. .. ..$ unlim : logi TRUE
.. .. .. ..$ group_index : int 1
.. .. .. ..$ group_id : int 65536
.. .. .. ..$ id : int 2
.. .. .. ..$ dimvarid :List of 5
.. .. .. .. ..$ id : int 2
.. .. .. .. ..$ group_index: int 1
.. .. .. .. ..$ group_id : int 65536
.. .. .. .. ..$ list_index : num -1
.. .. .. .. ..$ isdimvar : logi TRUE
.. .. .. .. ..- attr(*, "class")= chr "ncid4"
.. .. .. ..$ units : chr "days since 1950-01-01 00:00:00"
.. .. .. ..$ calendar : chr "standard"
.. .. .. ..$ vals : num [1:22280(1d)] 0 1 2 3 4 5 6 7 8 9 ...
.. .. .. ..$ create_dimvar: logi TRUE
.. .. .. ..- attr(*, "class")= chr "ncdim4"
.. ..$ varsize : int [1:3] 1068 510 22280
.. ..$ unlim : logi TRUE
.. ..$ make_missing_value: logi TRUE
.. ..$ missval : num -32768
.. ..$ hasAddOffset : logi FALSE
.. ..$ hasScaleFact : logi FALSE
.. ..- attr(*, "class")= chr "ncvar4"
..$ tasmax:List of 22
.. ..$ id :List of 5
.. .. ..$ id : num 4
.. .. ..$ group_index: num -1
.. .. ..$ group_id : int 65536
.. .. ..$ list_index : num 2
.. .. ..$ isdimvar : logi FALSE
.. .. ..- attr(*, "class")= chr "ncid4"
.. ..$ name : chr "tasmax"
.. ..$ ndims : int 3
.. ..$ natts : int 5
.. ..$ size : int [1:3] 1068 510 22280
.. ..$ dimids : int [1:3] 0 1 2
.. ..$ prec : chr "float"
.. ..$ units : chr "degC"
.. ..$ longname : chr "Daily Maximum Near-Surface Air
Temperature"
.. ..$ group_index : int 1
.. ..$ chunksizes : logi NA
.. ..$ storage : num 2
.. ..$ shuffle : logi FALSE
.. ..$ compression : logi NA
.. ..$ dims : list()
.. ..$ dim :List of 3
.. .. ..$ :List of 10
.. .. .. ..$ name : chr "lon"
.. .. .. ..$ len : int 1068
.. .. .. ..$ unlim : logi FALSE
.. .. .. ..$ group_index : int 1
.. .. .. ..$ group_id : int 65536
.. .. .. ..$ id : int 0
.. .. .. ..$ dimvarid :List of 5
.. .. .. .. ..$ id : int 0
.. .. .. .. ..$ group_index: int 1
.. .. .. .. ..$ group_id : int 65536
.. .. .. .. ..$ list_index : num -1
.. .. .. .. ..$ isdimvar : logi TRUE
.. .. .. .. ..- attr(*, "class")= chr "ncid4"
.. .. .. ..$ units : chr "degrees_east"
.. .. .. ..$ vals : num [1:1068(1d)] -141 -141 -141 -141 -141 ...
.. .. .. ..$ create_dimvar: logi TRUE
.. .. .. ..- attr(*, "class")= chr "ncdim4"
.. .. ..$ :List of 10
.. .. .. ..$ name : chr "lat"
.. .. .. ..$ len : int 510
.. .. .. ..$ unlim : logi FALSE
.. .. .. ..$ group_index : int 1
.. .. .. ..$ group_id : int 65536
.. .. .. ..$ id : int 1
.. .. .. ..$ dimvarid :List of 5
.. .. .. .. ..$ id : int 1
.. .. .. .. ..$ group_index: int 1
.. .. .. .. ..$ group_id : int 65536
.. .. .. .. ..$ list_index : num -1
.. .. .. .. ..$ isdimvar : logi TRUE
.. .. .. .. ..- attr(*, "class")= chr "ncid4"
.. .. .. ..$ units : chr "degrees_north"
.. .. .. ..$ vals : num [1:510(1d)] 41 41.1 41.2 41.3 41.4 ...
.. .. .. ..$ create_dimvar: logi TRUE
.. .. .. ..- attr(*, "class")= chr "ncdim4"
.. .. ..$ :List of 11
.. .. .. ..$ name : chr "time"
.. .. .. ..$ len : int 22280
.. .. .. ..$ unlim : logi TRUE
.. .. .. ..$ group_index : int 1
.. .. .. ..$ group_id : int 65536
.. .. .. ..$ id : int 2
.. .. .. ..$ dimvarid :List of 5
.. .. .. .. ..$ id : int 2
.. .. .. .. ..$ group_index: int 1
.. .. .. .. ..$ group_id : int 65536
.. .. .. .. ..$ list_index : num -1
.. .. .. .. ..$ isdimvar : logi TRUE
.. .. .. .. ..- attr(*, "class")= chr "ncid4"
.. .. .. ..$ units : chr "days since 1950-01-01 00:00:00"
.. .. .. ..$ calendar : chr "standard"
.. .. .. ..$ vals : num [1:22280(1d)] 0 1 2 3 4 5 6 7 8 9 ...
.. .. .. ..$ create_dimvar: logi TRUE
.. .. .. ..- attr(*, "class")= chr "ncdim4"
.. ..$ varsize : int [1:3] 1068 510 22280
.. ..$ unlim : logi TRUE
.. ..$ make_missing_value: logi TRUE
.. ..$ missval : num -32768
.. ..$ hasAddOffset : logi FALSE
.. ..$ hasScaleFact : logi FALSE
.. ..- attr(*, "class")= chr "ncvar4"
..$ tasmin:List of 22
.. ..$ id :List of 5
.. .. ..$ id : num 5
.. .. ..$ group_index: num -1
.. .. ..$ group_id : int 65536
.. .. ..$ list_index : num 3
.. .. ..$ isdimvar : logi FALSE
.. .. ..- attr(*, "class")= chr "ncid4"
.. ..$ name : chr "tasmin"
.. ..$ ndims : int 3
.. ..$ natts : int 5
.. ..$ size : int [1:3] 1068 510 22280
.. ..$ dimids : int [1:3] 0 1 2
.. ..$ prec : chr "float"
.. ..$ units : chr "degC"
.. ..$ longname : chr "Daily Minimum Near-Surface Air
Temperature"
.. ..$ group_index : int 1
.. ..$ chunksizes : logi NA
.. ..$ storage : num 2
.. ..$ shuffle : logi FALSE
.. ..$ compression : logi NA
.. ..$ dims : list()
.. ..$ dim :List of 3
.. .. ..$ :List of 10
.. .. .. ..$ name : chr "lon"
.. .. .. ..$ len : int 1068
.. .. .. ..$ unlim : logi FALSE
.. .. .. ..$ group_index : int 1
.. .. .. ..$ group_id : int 65536
.. .. .. ..$ id : int 0
.. .. .. ..$ dimvarid :List of 5
.. .. .. .. ..$ id : int 0
.. .. .. .. ..$ group_index: int 1
.. .. .. .. ..$ group_id : int 65536
.. .. .. .. ..$ list_index : num -1
.. .. .. .. ..$ isdimvar : logi TRUE
.. .. .. .. ..- attr(*, "class")= chr "ncid4"
.. .. .. ..$ units : chr "degrees_east"
.. .. .. ..$ vals : num [1:1068(1d)] -141 -141 -141 -141 -141 ...
.. .. .. ..$ create_dimvar: logi TRUE
.. .. .. ..- attr(*, "class")= chr "ncdim4"
.. .. ..$ :List of 10
.. .. .. ..$ name : chr "lat"
.. .. .. ..$ len : int 510
.. .. .. ..$ unlim : logi FALSE
.. .. .. ..$ group_index : int 1
.. .. .. ..$ group_id : int 65536
.. .. .. ..$ id : int 1
.. .. .. ..$ dimvarid :List of 5
.. .. .. .. ..$ id : int 1
.. .. .. .. ..$ group_index: int 1
.. .. .. .. ..$ group_id : int 65536
.. .. .. .. ..$ list_index : num -1
.. .. .. .. ..$ isdimvar : logi TRUE
.. .. .. .. ..- attr(*, "class")= chr "ncid4"
.. .. .. ..$ units : chr "degrees_north"
.. .. .. ..$ vals : num [1:510(1d)] 41 41.1 41.2 41.3 41.4 ...
.. .. .. ..$ create_dimvar: logi TRUE
.. .. .. ..- attr(*, "class")= chr "ncdim4"
.. .. ..$ :List of 11
.. .. .. ..$ name : chr "time"
.. .. .. ..$ len : int 22280
.. .. .. ..$ unlim : logi TRUE
.. .. .. ..$ group_index : int 1
.. .. .. ..$ group_id : int 65536
.. .. .. ..$ id : int 2
.. .. .. ..$ dimvarid :List of 5
.. .. .. .. ..$ id : int 2
.. .. .. .. ..$ group_index: int 1
.. .. .. .. ..$ group_id : int 65536
.. .. .. .. ..$ list_index : num -1
.. .. .. .. ..$ isdimvar : logi TRUE
.. .. .. .. ..- attr(*, "class")= chr "ncid4"
.. .. .. ..$ units : chr "days since 1950-01-01 00:00:00"
.. .. .. ..$ calendar : chr "standard"
.. .. .. ..$ vals : num [1:22280(1d)] 0 1 2 3 4 5 6 7 8 9 ...
.. .. .. ..$ create_dimvar: logi TRUE
.. .. .. ..- attr(*, "class")= chr "ncdim4"
.. ..$ varsize : int [1:3] 1068 510 22280
.. ..$ unlim : logi TRUE
.. ..$ make_missing_value: logi TRUE
.. ..$ missval : num -32768
.. ..$ hasAddOffset : logi FALSE
.. ..$ hasScaleFact : logi FALSE
.. ..- attr(*, "class")= chr "ncvar4"
- attr(*, "class")= chr "ncdf4"
Thank you,
------------------
"Namaste नमस्ते"
Aseem Sharma
Graduate Research Assistant
Northern Hydrometeorology Group(NHG)
Natural Resources and Environmental Studies Institute(NRESi)
University of Northern British Columbia
Prince George, BC, V2N 4Z9, Canada
Tel: 250-960-5427
Web: http://www.unbc.ca/
"All know the Way, but few actually walk it."
"सबैको कल्याण होस् ।"
On Tue, Aug 26, 2014 at 5:52 PM, Roy Mendelssohn <roy.mendelssohn at noaa.gov>
wrote:
> Using the ncdf4 library requires some knowledge of netcdf files and how
> they work. However, if you can provide the following information I may be
> able to provide some pointers. I am assuming your file is named
> "myFile.nc". Where you see that replace with the actual name.
>
> library(ncdf4)
> myFile<-nc_open('myFile.nc')
> str(myFile)
>
>
> The output of the last command will show what is basically a dump of
> metadata content of the file, showing its structure. From the bounds I
> assume this is a Canadian dataset?
>
> -Roy
>
> On Aug 26, 2014, at 4:46 PM, Aseem Sharma <nature.aseem at gmail.com> wrote:
>
> > Hi,
> > I have this huge ( ~30GB) .nc file (NC_FORMAT_NETCDF4_CLASSIC)) for the
> > whole country 141.00 to 52.00 W, 41.00 to 84.00 N".
> > I am trying to clip this big dataset for a small region specific domain
> > (120.00 to 130.00 W, 50.00 to 60.00 N).
> > I am trying to do using netCDF4 r package but could not figure out how to
> > do so.
> > Kindly please suggest me how should i proceed.
> >
> >
> > Thank you,
> >
> > [[alternative HTML version deleted]]
> >
> > ______________________________________________
> > R-help at r-project.org mailing list
> > https://stat.ethz.ch/mailman/listinfo/r-help
> > PLEASE do read the posting guide
> http://www.R-project.org/posting-guide.html
> > and provide commented, minimal, self-contained, reproducible code.
>
> **********************
> "The contents of this message do not reflect any position of the U.S.
> Government or NOAA."
> **********************
> Roy Mendelssohn
> Supervisory Operations Research Analyst
> NOAA/NMFS
> Environmental Research Division
> Southwest Fisheries Science Center
> ***Note new address and phone***
> 110 Shaffer Road
> Santa Cruz, CA 95060
> Phone: (831)-420-3666
> Fax: (831) 420-3980
> e-mail: Roy.Mendelssohn at noaa.gov www: http://www.pfeg.noaa.gov/
>
> "Old age and treachery will overcome youth and skill."
> "From those who have been given much, much will be expected"
> "the arc of the moral universe is long, but it bends toward justice" -MLK
> Jr.
>
>
[[alternative HTML version deleted]]
More information about the R-help
mailing list