[R-sig-Geo] Res: converting shapefile/polygon to psp

Roger Bivand Roger.Bivand at nhh.no
Mon Feb 4 22:26:40 CET 2008


On Mon, 4 Feb 2008, Milton Cezar Ribeiro wrote:

> Dear Roger,

I am not sure if I really need to convert my polygons to psp format.

In fact I have a shapefile with polygons and a pair of points 
(x0,y0,x1,y1) and what I need is:
   (1) to checkout if the lines defined by (x0,y0,x1,y1) cross or not any
   polygon and (2) to identify which polygons were crossed by this line.

> I obtained these (x0,y0,x1,y1) coordinates by computing the shortest
> distance between all polygons pairwise. Now I need to eliminate the 
> "lines" which cross over polygons, and keep only those lines that "link" 
> polygons without a overlap relationship betteen lines and polygons.

If a rough-and-ready approximation is OK, start with unrolling the 
coordinates on the line and overlay them over the polygons:

library(maptools)
xx <- readShapePoly(system.file("shapes/sids.shp", package="maptools")[1],
   IDvar="FIPSNO", proj4string=CRS("+proj=longlat +ellps=clrk66"))
plot(xx, axes=TRUE)
pt0 <- c(-84, 34)
pt1 <- c(-77, 37)
lines(rbind(pt0, pt1))
xl <- seq(pt0[1], pt1[1], length.out=250)
yl <- seq(pt0[2], pt1[2], length.out=250)
lines(xl, yl, col="red")
SP <- SpatialPoints(cbind(xl, yl))
io <- overlay(SP, xx)
iot <- unique(na.omit(io))
plot(xx, add=TRUE, col=c("transparent", "yellow")[(1:100 %in% iot)+1])
lines(xl, yl, col="red")

gets you something, and by increasing length.out, you can get more 
precision.

xx$NAME[iot]

lists the names too.

Hope this helps,

Roger


> I understand that it is a topological question, but I don´t know how to 
> deal it on sp/maptools.

> Case you have other ideas, please, let me know.

Regards a lot,

miltinho


----- Mensagem original ----
De: Roger Bivand <Roger.Bivand at nhh.no>
Para: Milton Cezar Ribeiro <milton_ruser at yahoo.com.br>
Cc: r-sig-geo at stat.math.ethz.ch
Enviadas: Segunda-feira, 4 de Fevereiro de 2008 17:03:25
Assunto: Re: [R-sig-Geo] converting shapefile/polygon to psp

On Mon, 4 Feb 2008, Milton Cezar Ribeiro wrote:

> Dear all,
>
> I have some shapefiles which contents are polygons and I would like to 
> convert it to psp (spatstat) format, and after run crossdist.psp. I 
> tryed several times without success. Any idea?

Look at the coercion function in maptools from SpatialPolygons to owin; 
see what needs to be changed to match psp; debug; contribute?

Note that touching polygons fail the topology test in spatstat, as they 
should. Seeing how a psp works should't be hard, it is effectively as 
described in:

https://stat.ethz.ch/pipermail/r-sig-geo/2008-January/003075

for making the lll matrix for distppll(), but as a data frame. You could 
use the marks to record which Polygons/Polygon object the segments belong 
to.

Roger

>
> Miltinho
>
>
>
> para armazenamento!
>
>     [[alternative HTML version deleted]]
>
> _______________________________________________
> R-sig-Geo mailing list
> R-sig-Geo at stat.math.ethz.ch
> https://stat.ethz.ch/mailman/listinfo/r-sig-geo
>

-- 
Roger Bivand
Economic Geography Section, Department of Economics, Norwegian School of
Economics and Business Administration, Helleveien 30, N-5045 Bergen,
Norway. voice: +47 55 95 93 55; fax +47 55 95 95 43
e-mail: Roger.Bivand at nhh.no


       Abra sua conta no Yahoo! Mail, o único sem limite de espaço para armazenamento!
http://br.mail.yahoo.com/

-- 
Roger Bivand
Economic Geography Section, Department of Economics, Norwegian School of
Economics and Business Administration, Helleveien 30, N-5045 Bergen,
Norway. voice: +47 55 95 93 55; fax +47 55 95 95 43
e-mail: Roger.Bivand at nhh.no


More information about the R-sig-Geo mailing list