[R-sig-Geo] Fwd: distmap() error with used defined image window and resolution

Rolf Turner r.turner at auckland.ac.nz
Wed Jun 8 11:34:42 CEST 2011


Perhaps I'm being obtuse (not an unusual occurrence :-) ) but I don't 
understand
why you do what you do.

(1) You create a new window for the patterns --- only very slightly 
different from the
window that ``comes with'' the patterns.  This has however nothing to do 
with the
resolution of the distmap () result that you say you are concerned about.

(2) The distmap function takes as arguments the pattern (of points or 
segments)
(or window, as the case may be) and ``...'' which (sayeth the help) 
consists of
``Arguments passed to as.mask to control pixel resolution''.   There is 
no mention
of passing a ***window*** as an argument to  distmap.  (So I think that 
this may
well be a case of RTFM.)

Anyway it is the fact that you are passing this unexpected window that 
is causing
the error.

You might want to do:

     cdm <- with(copper,distmap(Lines,dimyx=c(158,70))

Or, if you really want the window to be [0,70] x [0,158] you could do

     copper$Lines$window <-  owin(c(0,70),c(0,158)

and then

     cdm <- with(copper,distmap(Lines,dimyx=c(158,70)) # Same as before.

or

     cdm <- with(copper,distmap(Lines,eps=1)) # Gives the same result as 
above.

Does this accomplish your objectives?

     cheers,

         Rolf Turner

On 08/06/11 17:32, mattc0 wrote:Hi R-sig-geo'ers
> I am attempting to generate an image with each pixel showing the euclidean distance to nearest line feature using spatstat.
> I  would like to set the image extent and resolution, rather than the  default 100 x 100 (nx, ny) cells. However, when attempting this I get  the following error
>
> Error in diff(w$yrange)/eps : non-numeric argument to binary operator
>
> I am using R version 2.12.1 64-bit and spatstat 1.22-1
>
> Below  is an example using the copper dataset that is provided with spatstat.  This generates the same error that I am getting with my data
>
>> library(spatstat)
>>   # get data
>> data(copper)
>>   # set user defined window
>> copper.win<- owin(c(0,70),c(0,158))
>>   # default distmap image resolution with 100 x 100 (ny,nx)
>> distmap.psp(copper$Lines) # OK
> real-valued pixel image
> 100 x 100 pixel array (ny, nx)
> enclosing rectangle: [-0.335, 70.11] x [0.19, 158.23] km
>>   # user defined window and resolution 158 x 70 (ny,nx)
>> distmap.psp(copper$Lines,as.mask(w=copper.win,eps=1)) # Error
> Error in diff(w$yrange)/eps : non-numeric argument to binary operator
>
>   I have tried as.mask() with xy coordinates with pixel locations but have encounter the same error.
>
> Thanks
>
> Matthew Cracknell
> PhD. Candidate
>
> ARC Centre of Excellence in Ore Deposits
> University of Tasmania
> Private Bag 79
> Hobart, 7001
> Australia
>
> Mob: 0409438924



More information about the R-sig-Geo mailing list