[R] [FORGED] [R-sig-Geo] circular spatial polygon

Rolf Turner r.turner at auckland.ac.nz
Wed Sep 13 09:37:30 CEST 2017

On 13/09/17 13:24, Kátia Emidio wrote:
> Dear Rolf,
> Thanks for your help!
> What I need is a spatial window with shape equal to the figure attached. 
> This figure I made using ArcGis, but it is important to me make it in R. 
> After having this figure I will make some analysis using spatstat among 
> others. The points within figure are trees...

(1) I believe that this discussion should be kept on-list.  It is not my 
role to provide private consulting for you.  I  am therefore cc-ing the 
list in this email.

(2) It is still not completely clear what you really want; the figure 
that you attached appears to be a disc with 4 diameters superimposed. 
So you might be after a single (circular) owin object and a line segment 
pattern consisting of the 4 diameters.  Or you might be after *eight* 
owin objects, each being one the eight disc-segments into which the 
diameters divide the disc.

I shall assume the latter.  To start with define a function, say "wedge":

wedge <- function(theta1,theta2,radius,npoly=100,centre=c(0,0)){
# Should do some checking on the values of theta1 and theta2 here,
# but I shan't bother.
     theta <- seq(theta1,theta2,length=npoly+1)
     x <- c(0,radius*cos(theta),0)
     y <- c(0,radius*sin(theta),0)
     W <- owin(poly=list(x=x,y=y))

Then do something like:

wedgies <- vector("list",length=8)
cntr <- c(673593.21,673593.21)
for(i in 1:8) wedgies[[i]] <- wedge((i-1)*pi/4,i*pi/4,15,centre=cntr)
ttt <- tess(tiles=wedgies)
plot(ttt) # Looks OK to me.

And maybe also do:

W <- do.call(union.owin,wedgies)
for(i in 1:8) {
     readline("Go? ")

Also looks OK to me.

Is *this* what you want?


Rolf Turner

Technical Editor ANZJS
Department of Statistics
University of Auckland
Phone: +64-9-373-7599 ext. 88276

More information about the R-help mailing list