Re: [R] [ncdf4] error converting GEIA data to netCDF

2012-08-28 Thread Pascal Oettli

Hello,

The following works fine for me:

> nc <- nc_open("~/GEIA_N2O_oceanic.nc")
> emi_n2o <- ncvar_get(nc, 'emi_n2o', start=c(1,1,1), count=c(-1,-1,1))

Regards,
Pascal



Le 28/08/2012 12:31, Tom Roche a écrit :


summary: I can successfully ncvar_put(...) data to a file, but when I
try to ncvar_get(...) the same data, I get


Error in if (nc$var[[li]]$hasAddOffset) addOffset = nc$var[[li]]$addOffset else 
addOffset = 0 :
   argument is of length zero


How to fix or debug?

details:

R code @

https://github.com/TomRoche/GEIA_to_NetCDF

successfully (if crudely) uses R packages={ncdf4, maps, fields} to

+ extract data from a GEIA-distributed datafile

https://github.com/downloads/TomRoche/GEIA_to_netCDF/N2OOC90Y.1A

+ display the data (mostly successfully--the map's legend has problems
   which I'll attack later)

https://github.com/downloads/TomRoche/GEIA_to_netCDF/output.1.png

+ create a netCDF file using the data read from the GEIA file. (At
   least, after nc_sync(netcdf.file), the file `ncdump -h`s properly.)

However, I can only *put* the data to the netCDF file:


ncvar_put(
+ nc=netcdf.file,
+ varid=emis.var,
+ vals=t(global.emis.mx),
+ start=c(1, 1, 1),
+ count=c(-1,-1, 1)) # -1 -> all data


When I try to *pull* the data *from* the netCDF I created,


target.data <- ncvar_get(

+   nc=netcdf.file,
+   varid=emis.var,
+   # read all the data
+   start=rep(1, emis.var$ndims),
+ #  count=rep(-1, emis.var$ndims))


I get


Error in if (nc$var[[li]]$hasAddOffset) addOffset = nc$var[[li]]$addOffset else 
addOffset = 0 :
   argument is of length zero


And I get the same error if I try the minor variation(s)


target.data <- ncvar_get(

+   nc=netcdf.file,
+ #  varid=emis.var,
+   varid=emis.var.name,
+   # read all the data
+   start=rep(1, emis.var$ndims),
+   count=c(-1, -1, 1))

But the data itself appears to be OK--at least, it virtualizes
properly (above). So I'm thinking I must just be missing something
simple, and hoping Someone Out There with fresh eyeballs can point to
my error(s).

(And, in case you're wondering:

- I'm not just ncvar_put'ing the data for the exercise: I want the
   GEIA data in netCDF format for subsequent use.

- I tried to find the GEIA data distributed in netCDF format, and
   asked around, but have gotten no responses.

) TIA, Tom Roche 

__
R-help@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.



__
R-help@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.


[R] [ncdf4] error converting GEIA data to netCDF

2012-08-27 Thread Tom Roche

summary: I can successfully ncvar_put(...) data to a file, but when I
try to ncvar_get(...) the same data, I get

> Error in if (nc$var[[li]]$hasAddOffset) addOffset = nc$var[[li]]$addOffset 
> else addOffset = 0 : 
>   argument is of length zero

How to fix or debug?

details:

R code @

https://github.com/TomRoche/GEIA_to_NetCDF

successfully (if crudely) uses R packages={ncdf4, maps, fields} to

+ extract data from a GEIA-distributed datafile

https://github.com/downloads/TomRoche/GEIA_to_netCDF/N2OOC90Y.1A

+ display the data (mostly successfully--the map's legend has problems
  which I'll attack later)

https://github.com/downloads/TomRoche/GEIA_to_netCDF/output.1.png

+ create a netCDF file using the data read from the GEIA file. (At
  least, after nc_sync(netcdf.file), the file `ncdump -h`s properly.)

However, I can only *put* the data to the netCDF file:

> ncvar_put(
> + nc=netcdf.file,
> + varid=emis.var,
> + vals=t(global.emis.mx),
> + start=c(1, 1, 1),
> + count=c(-1,-1, 1)) # -1 -> all data

When I try to *pull* the data *from* the netCDF I created,

> > target.data <- ncvar_get(
> +   nc=netcdf.file,
> +   varid=emis.var,
> +   # read all the data
> +   start=rep(1, emis.var$ndims),
> + #  count=rep(-1, emis.var$ndims))

I get

> Error in if (nc$var[[li]]$hasAddOffset) addOffset = nc$var[[li]]$addOffset 
> else addOffset = 0 : 
>   argument is of length zero

And I get the same error if I try the minor variation(s)

> target.data <- ncvar_get(
+   nc=netcdf.file,
+ #  varid=emis.var,
+   varid=emis.var.name,
+   # read all the data
+   start=rep(1, emis.var$ndims),
+   count=c(-1, -1, 1))

But the data itself appears to be OK--at least, it virtualizes
properly (above). So I'm thinking I must just be missing something
simple, and hoping Someone Out There with fresh eyeballs can point to
my error(s).

(And, in case you're wondering:

- I'm not just ncvar_put'ing the data for the exercise: I want the
  GEIA data in netCDF format for subsequent use.

- I tried to find the GEIA data distributed in netCDF format, and
  asked around, but have gotten no responses.

) TIA, Tom Roche 

__
R-help@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.