Thank you everybody for the help! The solution of my problem is here:

http://climateaudit.org/2009/10/10/unthreaded-23/

"The mv variable is the designated NA for the variable and it appears that
somebody screwed that up in the file. This workaround worked for me:

Print out the function get.var.ncdf by typing exactly that in the console.

Copy the results to a new script window.

Redefine the function as getx.var.ncdf

Find the two places in the function where it says: mv <-
nc$var[[nc$varid2Rindex[varid]]]$missval

Replace each with: mv = -1.000000e+30

Run the new function.

data1 <- getx.var.ncdf( nc, v1 ) will retrieve the data."


IT WORKS! ;)


Thanks a lot!


Charles


On Wed, Oct 27, 2010 at 4:25 PM, Charles Novaes de Santana <
charles.sant...@imedea.uib-csic.es> wrote:

> Hi,
>
> Well, I did it, but all my script was on the first message. I don't have
> any other variables. I am just reading a NCDF file and trying to read the
> variable "tasmax", that has values of temperatures.
>
> The only "new" information I have is the header of the NCDF file
> (Spain02D_tasmax.nc), that I have obtained by running "ncdump" command.
>
> netcdf Spain02D_tasmax {
> dimensions:
>         time = 21275 ;
>         lat = 40 ;
>         lon = 68 ;
> variables:
>         double time(time) ;
>                 time:long_name = "Time variable" ;
>                 time:units = "days since 1950-01-01 00:00:00" ;
>         double lat(lat) ;
>                 lat:standard_name = "latitude" ;
>                 lat:long_name = "latitude" ;
>                 lat:units = "degrees north" ;
>         double lon(lon) ;
>                 lon:standard_name = "longitude" ;
>                 lon:long_name = "longitude" ;
>                 lon:units = "degrees east" ;
>         double tasmax(time, lat, lon) ;
>                 tasmax:long_name = "Daily maximum temperature" ;
>                 tasmax:units = "degrees Celsius" ;
>                 tasmax:missing_value = "-9999.0f" ;
>
> // global attributes:
>                 :Info = "Data generated for the esTcena project (
> http://www.meteo.unican.es/projects/esTcena)" ;
>                 :Institution = "IFCA-UC" ;
>                 :Conventions = "CF-1.0" ;
>                 :conventionsURL = "
> http://www.cgd.ucar.edu/cms/eaton/cf-metadata/index.html"; ;
>                 :creation_date = "20-Sep-2010 09:34:26" ;
> data:
> (...)
> tasmax =
>   NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN,
> NaN,
>     NaN, NaN, NaN, 14.0840393066406, 14.4718475341797, NaN, NaN, NaN, NaN,
>     NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN,
>     NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN,
>     NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN,
>     NaN, NaN,
> (...)
>
> As we can see, "tasmax" has a lot of NaN (not a number) values. And the
> missing_value of the file is "-9999.0f".
>
> As we can see in following lines, the error occurs just when the function
> "get.var.ncdf" is trying to set the missing values to NA.
>
> > library(ncdf)
> > file<-open.ncdf("Spain02D_tasmax.nc")
> > temp<-get.var.ncdf(file,"tasmax",verbose=TRUE)
>
> [1] "get.var.ncdf: entering. Here is varid:"
> [1] "tasmax"
> [1] "checking to see if passed varid is actually a dimvar"
> [1] "entering vobjtodimname with varid= tasmax"
> [1] "vobjtodimname: is a character type varid.  This file has 3 dims"
> [1] "vobjtodimname: no cases found, returning FALSE"
> [1] "get.var.ncdf: isdimvar: FALSE"
> [1] "vobjtovarid: entering with varid=tasmax"
> [1] "Variable named tasmax found in file with varid= 4"
> [1] "vobjtovarid: returning with varid deduced from name; varid= 4"
> [1] "get.var.ncdf: ending up using varid= 4"
> [1] "ndims: 3"
> [1] "get.var.ncdf: varsize:"
> [1]    68    40 21275
> [1] "get.var.ncdf: start:"
> [1] 1 1 1
> [1] "get.var.ncdf: count:"
> [1]    68    40 21275
> [1] "get.var.ncdf: totvarsize: 57868000"
> [1] "Getting var of type 4  (1=short, 2=int, 3=float, 4=double, 5=char,
> 6=byte)"
> [1] "get.var.ncdf: C call returned 0"
> [1] "count.nodegen: 68    Length of data: 57868000"
> [2] "count.nodegen: 40    Length of data: 57868000"
> [3] "count.nodegen: 21275    Length of data: 57868000"
> [1] "get.var.ncdf: final dims of returned array:"
> [1]    68    40 21275
> [1] "varid: 4"
> [1] "nc$varid2Rindex: 0" "nc$varid2Rindex: 0" "nc$varid2Rindex: 0"
> [4] "nc$varid2Rindex: 1"
> [1] "nc$varid2Rindex[varid]: 1"
> [1] "get.var.ncdf: setting missing values to NA"
> Error en mv * 1e-05 : non-numeric argument to binary operator
>
> I think that the error is related to this procedure: to set missing values
> to NA. But I am not sure, as I told you I am a newbie and I did not see any
> error like this before (even in discussion lists in the web).
>
> If any of you that have worked with NCDF files in R could help me, even if
> you know any other packages or commands to read this values, I would be
> really really grateful.
>
> Thank you very much for your attention! Sorry about my poor English.
>
> Charles
>
> On Wed, Oct 27, 2010 at 3:46 PM, jim holtman <jholt...@gmail.com> wrote:
>
>> put:
>>
>> options(error=utils::recover)
>>
>> in your script so that when an error occurs you are dropped into the
>> 'browser' so that you can examine the variables at that point in time.
>>  There are several references on how to use the debugging tools in R
>> that will help you resolve your problem.  We can not tell from the
>> information you provided what the problem is.  You need to at least
>> provide provide commented, minimal, self-contained, reproducible code
>> so other can reproduce the error and provide feed back.
>>
>> On Wed, Oct 27, 2010 at 9:27 AM, Charles Novaes de Santana
>> <charles.sant...@imedea.uib-csic.es> wrote:
>> > Hi everyone,
>> >
>> > I am a newbie in R and in this discussion list. I am trying to use R
>> package
>> > "ncdf" to read values of temperature from a NCDF file. I did it before
>> to
>> > another file using the function "get.var.ncdf", but now there is an
>> error
>> > that I can not solve, and I would really appreciate if you could help
>> me.
>> >
>> > I am using R version 2.11.1 (2010-05-31) in a machine with Linux
>> > 2.6.26-2-amd64.
>> >
>> >> library(ncdf)
>> >> file_temp<-open.ncdf("File.nc")
>> >> temp<-get.var.ncdf(file_temp,"tasmax",verbose=TRUE)
>> > [1] "get.var.ncdf: entering. Here is varid:"
>> > [1] "tasmax"
>> > [1] "checking to see if passed varid is actually a dimvar"
>> > [1] "entering vobjtodimname with varid= tasmax"
>> > [1] "vobjtodimname: is a character type varid.  This file has 3 dims"
>> > [1] "vobjtodimname: no cases found, returning FALSE"
>> > [1] "get.var.ncdf: isdimvar: FALSE"
>> > [1] "vobjtovarid: entering with varid=tasmax"
>> > [1] "Variable named tasmax found in file with varid= 4"
>> > [1] "vobjtovarid: returning with varid deduced from name; varid= 4"
>> > [1] "get.var.ncdf: ending up using varid= 4"
>> > [1] "ndims: 3"
>> > [1] "get.var.ncdf: varsize:"
>> > [1]    68    40 21275
>> > [1] "get.var.ncdf: start:"
>> > [1] 1 1 1
>> > [1] "get.var.ncdf: count:"
>> > [1]    68    40 21275
>> > [1] "get.var.ncdf: totvarsize: 57868000"
>> > [1] "Getting var of type 4  (1=short, 2=int, 3=float, 4=double, 5=char,
>> > 6=byte)"
>> > [1] "get.var.ncdf: C call returned 0"
>> > [1] "count.nodegen: 68    Length of data: 57868000"
>> > [2] "count.nodegen: 40    Length of data: 57868000"
>> > [3] "count.nodegen: 21275    Length of data: 57868000"
>> > [1] "get.var.ncdf: final dims of returned array:"
>> > [1]    68    40 21275
>> > [1] "varid: 4"
>> > [1] "nc$varid2Rindex: 0" "nc$varid2Rindex: 0" "nc$varid2Rindex: 0"
>> > [4] "nc$varid2Rindex: 1"
>> > [1] "nc$varid2Rindex[varid]: 1"
>> > [1] "get.var.ncdf: setting missing values to NA"
>> > Error en mv * 1e-05 : non-numeric argument to binary operator
>> >
>> > Thank you very much for your attention!
>> >
>> > Cheers,
>> >
>> > Charles
>> >
>> > --
>> > Um axé! :)
>> >
>> > --
>> > Charles Novaes de Santana
>> > PhD student - Global Change
>> > Laboratorio Internacional de Cambio Global
>> > Department of Global Change Research
>> > Instituto Mediterráneo de Estudios Avanzados(CSIC/UIB)
>> > Calle Miquel Marques 21, 07006
>> > Esporles - Islas Baleares - España
>> >
>> >        [[alternative HTML version deleted]]
>> >
>> >
>> > ______________________________________________
>> > 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.
>> >
>> >
>>
>>
>>
>> --
>> Jim Holtman
>> Cincinnati, OH
>> +1 513 646 9390
>>
>> What is the problem that you are trying to solve?
>>
>
>
>
> --
> Um axé! :)
>
> --
> Charles Novaes de Santana
> PhD student - Global Change
> Laboratorio Internacional de Cambio Global
> Department of Global Change Research
> Instituto Mediterráneo de Estudios Avanzados(CSIC/UIB)
> Calle Miquel Marques 21, 07006
> Esporles - Islas Baleares - España
>



-- 
Um axé! :)

--
Charles Novaes de Santana
PhD student - Global Change
Laboratorio Internacional de Cambio Global
Department of Global Change Research
Instituto Mediterráneo de Estudios Avanzados(CSIC/UIB)
Calle Miquel Marques 21, 07006
Esporles - Islas Baleares - España

        [[alternative HTML version deleted]]

______________________________________________
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.

Reply via email to