[R] filled contour plot with contour lines

Peter Ehlers ehlers at ucalgary.ca
Sat Apr 2 00:48:00 CEST 2011


Steve,

I was just about to send off another suggestion which
began with ...

   Try the following or wait for David W. to chime in.

But I see that he's already done that. Anyway, in case
it's still of some use:

First I would check that you don't have a variable 'T' in
your workspace. (Never use T in place of TRUE.)

Then I would check that x and y are as they should be.

Then I would make sure that temp is of the correct type
(a matrix) by letting j take a few values (1,2,varsize[4]-1),
generating temp, and running str(temp). I assume that
varsize[4] is >= 2.

Then I would run the following stripped-down version of
your loop (note that I modified your contour() call):

  for(j in 1:2) {
       temp <- get.var.ncdf(nc=input,
                 varid="p_foraging",c(1,1,j),c(varsize[1],varsize[2],1)
               )
       filled.contour(x,
                      y,
                      temp,
                      plot.axes = { contour(x, y, temp, add = TRUE)
                            axis(1, seq(450000 , 580000, by = 10000))
                            axis(2, seq(2800000,4000000, by = 10000))
                      }
  }

If that gives reasonable results, you can add the prettyfying
statements back in. If you still get errors, then either I'm
out-to-lunch (quite possible!) or you need to use debug() to
figure out what's going on.

Peter Ehlers


On 2011-04-01 14:59, David Winsemius wrote:
>
> On Apr 1, 2011, at 5:38 PM, Steve_Friedman at nps.gov wrote:
>
>> Hi Peter,
>>
>> Thanks for taking the time to consider the problem. I realize the
>> procedure
>> is not reproducible. I use a 4 dimensional netCDF file (4.2 GB) in
>> size to
>> pull data into this process. Nobody in their right mind should work
>> with
>> such things. It's a spatial temporal database with 10 years of daily
>> data
>> in a irregular area spanning 405 x 287 cells.
>>
>> Anyway, I tried your suggestion adding a { in front of the for loop
>> and a
>> closing } following the last line.
>
> That suggestion was probably intended to get you a more informative
> error message:
>
> for(j in 1:(varsize[4]-1) )
>        temp<- get.var.ncdf(
>                      nc=input,
>                      varid="p_foraging",
>                      c(1,1,j),
>                      c(varsize[1],  varsize[2], 1)
>                           )
>
> # I think Peter is correct. That loop will complete before the call to
> filled.contour,
> #  so you will only have the last version of temp plot.
>
> filled.contour(x, y, temp, color = terrain.colors,
>        plot.title = title( main =
>                paste("Everglades Wood Stork Foraging Potential \nYear",
> (2000+j)),
>
> #that "double call" to title looks incomplete as well. The comma looks
> premature.
> # Shouldn't it be something like:
>    plot.title = bquote("Everglades Wood Stork Foraging Potential
> \nYear", .(2000+j) )
>
> #(And since the for loop is already complete `j` will not exist.
> # Which is probably the source of the error you are getting.)
>
>               xlab = "UTM East", ylab = "UTM North") ,
>               plot.axes = { contour(temp, add=T)
>                  axis(1, seq(450000 , 580000, by = 10000))
>                  axis(2, seq(2800000,4000000, by = 10000)) },
>               key.title = title(main="Probability") ,
>               key.axes = axis(4, seq(0 , 1 , by = 0.1))
>>
>> It did not work.
>>
>>
>> Steve Friedman Ph. D.
>> Ecologist  / Spatial Statistical Analyst
>> Everglades and Dry Tortugas National Park
>> 950 N Krome Ave (3rd Floor)
>> Homestead, Florida 33034
>>
>> Steve_Friedman at nps.gov
>> Office (305) 224 - 4282
>> Fax     (305) 224 - 4147
>>
>>
>>
>>              Peter Ehlers
>>              <ehlers at ucalgary.
>>
>> ca>                                                         To
>>                                        "Steve_Friedman at nps.gov"
>>              04/01/2011 05:08<Steve_Friedman at nps.gov>
>>
>> PM                                                         cc
>>                                        "r-help at r-project.org"
>>                                        <r-help at r-project.org>
>>
>> Subject
>>                                        Re: [R] filled contour plot with
>>                                        contour lines
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>> Aren't you missing a set of parentheses?
>> I can't run your code since it's not reproducible, but to
>> my aging eyes it seems that you need a set of '{}' around
>> the contents of your loop:
>>
>>   for(j in 1:(varsize[4]-1)) { loop stuff }
>>
>> Peter Ehlers
>>
>> On 2011-04-01 11:48, Steve_Friedman at nps.gov wrote:
>>>
>>> I'm stumped,  can anyone find my error in this sequence.
>>>
>>>   for(j in 1:(varsize[4]-1))
>>>        temp<- get.var.ncdf(nc=input,
>>> varid="p_foraging",c(1,1,j),c(varsize[1],varsize[2],1))
>>>           filled.contour(x, y, temp, color = terrain.colors,
>>>               plot.title = title(main = paste("Everglades Wood Stork
>>> Foraging Potential \nYear", (2000+j)),
>>>               xlab = "UTM East", ylab = "UTM North") ,
>>>               plot.axes = { contour(temp, add=T)
>>>                  axis(1, seq(450000 , 580000, by = 10000))
>>>                  axis(2, seq(2800000,4000000, by = 10000)) },
>>>               key.title = title(main="Probability") ,
>>>               key.axes = axis(4, seq(0 , 1 , by = 0.1))
>>>
>>>
>>> The routine will work in a modified form without adding the
>>> coordinates
>>> (the axis lines) but when I include these the routine produces
>>> various
>>> errors, such as "dimension mismatch", or "unexpected end
>>> encountered."
>>>
>>> I tried to follow the example on filled.contour help page.
>>>
>>> Thanks in advance
>>>     Steve
>>>
>>> Steve Friedman Ph. D.
>>> Ecologist  / Spatial Statistical Analyst
>>> Everglades and Dry Tortugas National Park
>>> 950 N Krome Ave (3rd Floor)
>>> Homestead, Florida 33034
>>>
>>> Steve_Friedman at nps.gov
>>> Office (305) 224 - 4282
>>> Fax     (305) 224 - 4147
>>>
>>> ______________________________________________
>>> 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.
>>
>> ______________________________________________
>> 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.
>
> David Winsemius, MD
> West Hartford, CT
>
> ______________________________________________
> 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.



More information about the R-help mailing list