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

Kátia Emidio kat.emidio at gmail.com
Thu Sep 14 18:03:52 CEST 2017


Dear Rolf,
Thanks so much for your help! The script worked well, as I wanted. Only
thing that is need to correct, in order to have it in a projected world (in
my case UTM-zone 20S), is to change one of the values associated to object
"cntr"... the coordinates are the same in the above code.... changing to
X/Y UTM coordinates, everthing worked well!
Thanks!!

Katia




2017-09-13 3:47 GMT-04:00 Rolf Turner <r.turner at auckland.ac.nz>:

>
> Whoops. I cc-ed my message to r-help rather than to r-sig-geo.  (Duhhhh!)
>
> Consequently I'm resending, with r-sig-geo as a cc recipient.
>
> cheers,
>
> Rolf Turner
>
> --
> Technical Editor ANZJS
> Department of Statistics
> University of Auckland
> Phone: +64-9-373-7599 ext. 88276
>
> On 13/09/17 19:37, Rolf Turner wrote:
>
>> 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)){
>>      library(spatstat)
>> # 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))
>>      return(affine(W,vec=centre))
>> }
>>
>> 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)
>> plot(W)
>> for(i in 1:8) {
>>      plot(wedgies[[i]],add=TRUE,border="red")
>>      readline("Go? ")
>> }
>>
>> Also looks OK to me.
>>
>> Is *this* what you want?
>>
>


-- 
Kátia Emídio da Silva DSc
Eng. Florestal
Manaus/AM



Forestry Engineer
Manaus/AM-Brazil

	[[alternative HTML version deleted]]



More information about the R-sig-Geo mailing list