inout                package:splancs                R Documentation

_T_e_s_t _p_o_i_n_t_s _f_o_r _i_n_c_l_u_s_i_o_n _i_n _a _p_o_l_y_g_o_n

_D_e_s_c_r_i_p_t_i_o_n:

     Test points for inclusion in a polygon.

_U_s_a_g_e:

     inout(pts,poly,bound=NULL,quiet=TRUE)

_A_r_g_u_m_e_n_t_s:

     pts: A points data set 

    poly: A polygon data set 

   bound: If points fall exactly on polygon boundaries, the default
          NULL gives arbitrary assignments. If TRUE, then all points
          "on" boundaries are set as within the polygon, if FALSE,
          outside.

   quiet: Do not report which points are on boundary for non-NULL bound

_V_a_l_u_e:

     A vector of logical values. `True' means the point was inside the
     polygon, `False' means the point was outside. Note that "inside"
     is an arbitrary concept for points "on" the polygon boundary.

_R_e_f_e_r_e_n_c_e_s:

     Rowlingson, B. and Diggle, P. 1993 Splancs: spatial point pattern
     analysis code in S-Plus.  Computers and Geosciences, 19, 627-655;
     the original sources can be accessed at: <URL:
     http://www.maths.lancs.ac.uk/~rowlings/Splancs/>. See also Bivand,
     R. and Gebhardt, A. 2000 Implementing functions for spatial
     statistical analysis using the R language. Journal of Geographical
     Systems, 2, 307-317.

_S_e_e _A_l_s_o:

     `inpip',`pip'

_E_x_a_m_p_l_e_s:

     data(uganda)
     suganda <- sbox(uganda$poly)
     ruganda <- csr(suganda, 1000)
     polymap(suganda)
     polymap(uganda$poly, add=T)
     def <- inout(ruganda, uganda$poly, bound=NULL)
     pointmap(as.points(ruganda[def,1], ruganda[def,2]), add=T, col="black")
     pointmap(as.points(ruganda[!def,1], ruganda[!def,2]), add=T, col="red")
     tru <- inout(ruganda, uganda$poly, bound=TRUE, quiet=F)
     which(tru & !def)
     ds1 <- as.points(expand.grid(x=seq(-1.5,1.5,0.5), y=seq(-1.5,1.5,0.5)))
     ds1.poly <- ds1[chull(ds1),]
     ds2 <- as.points(rnorm(300),rnorm(300))
     plot(ds2, type="n", asp=1)
     polymap(ds1.poly, add=T, border="lightblue", col="lightblue", lwd=1)
     points(ds2[inout(ds2,ds1.poly),],  col="green",  pch=20)
     points(ds2[!inout(ds2,ds1.poly),], col="orange", pch=20)
     points(ds1[inout(ds1,ds1.poly),],  col="black",  pch=20)
     points(ds1[!inout(ds1,ds1.poly),], col="red",    pch=20)
     plot(ds2, type="n", asp=1)
     polymap(ds1.poly, add=T, border="lightblue", col="lightblue", lwd=1)
     points(ds2[inout(ds2,ds1.poly,bound=TRUE),],  col="green",  pch=20)
     points(ds2[!inout(ds2,ds1.poly,bound=TRUE),], col="orange", pch=20)
     points(ds1[inout(ds1,ds1.poly,bound=TRUE),],  col="black",  pch=20)
     points(ds1[!inout(ds1,ds1.poly,bound=TRUE),], col="red",    pch=20)
     plot(ds2, type="n", asp=1)
     polymap(ds1.poly, add=T, border="lightblue", col="lightblue", lwd=1)
     points(ds2[inout(ds2,ds1.poly,bound=FALSE),],  col="green",  pch=20)
     points(ds2[!inout(ds2,ds1.poly,bound=FALSE),], col="orange", pch=20)
     points(ds1[inout(ds1,ds1.poly,bound=FALSE),],  col="black",  pch=20)
     points(ds1[!inout(ds1,ds1.poly,bound=FALSE),], col="red",    pch=20)

