Is there interest in something like this code for generating SpatialLines?
I use a variation of this fairly regularly:


SimpleSpatialLines <- function(coords.1, coords.2, proj4string =
CRS(as.character(NA))){
  coords.1 <- coordinates(coords.1)
  coords.2 <- coordinates(coords.2)
  if (nrow(coords.1) != nrow(coords.2)) stop("coords.1 must be of same
length as coords.2")
  coords.both <- cbind(coords.1, coords.2)
  coords.both <- cbind(coords.both, 1:nrow(coords.both))
  lines <- apply(X=coords.both,
                 MARGIN=1,
                 FUN=function(x){
                   Lines(list(Line(cbind(c(x[1], x[3]),
                                         c(x[2], x[4])))),
                         ID=x[5])})
  SpatialLines(LinesList=lines, proj4string=proj4string)
}



Regards,

Francis Markham
Australian National University
francis.mark...@anu.edu.au






On 17 December 2012 06:58, Barry Rowlingson <b.rowling...@lancaster.ac.uk>wrote:

> On Sun, Dec 16, 2012 at 6:53 PM, Chris English <sgl...@hotmail.com> wrote:
> >
> > Edzer:
> > On Tue, Jul 17, 2012 at 2:34 PM, Agustin Lobo ~ from Barry Rowlingson
> > wrote:
> > To convert to SpatialLines, get the coordinates and build in the
> > usual convoluted manner:
> >
> >  > s=data.frame(x=runif(10),y=1:10,z=rnorm(10))
> >  > coordinates(s)=~x+y
> >  > L = SpatialLines(list(Lines(list(Line(coordinates(s))),"X")))
> >  > plot(L)
> > Convoluted is not the same as orphaned, certainly, but one gets the
> sense that
> > 'Line' owes its existence to matters of plotting rather than line as
> line, independent of
> > drawing it, and this may have some import upon line analysis and the
> possibility of
> > arriving at topology and dispensing with shared lines and the like.
>
>  "Line" is a non-spatial Line, made up from an ordered set of (x,y)
> coordinate pairs. It cannot have a coordinate system assigned to it.
>
>  "Lines" is a list of Lines, making a non-spatial set of Line
> segments. It too cannot have a coordinate system assigned.
>
>  "SpatialLines" is a spatial set of Lines, for when you have a number
> of features each of which may be composed of several disconnected
> segments. It can have a coordinate system assigned.
>
>  You are making a SpatialLines object where a single feature has a
> single line segment. The slightly annoying
> list(Lines(list(Line(...)))) dance is unavoidable because the lists
> are necessary since the lists can have more than one element, but you
> could easy create a 'SimpleSpatialLine' function that did all that. It
> might even make sp for R 3.0.0! (SimpleSpatialPolygon might be handy
> too...)
>
> Another possibility might be to write methods for SpatialLines that
> takes a matrix and skips the complexity for simple cases...
>
> Barry
>
> _______________________________________________
> R-sig-Geo mailing list
> R-sig-Geo@r-project.org
> https://stat.ethz.ch/mailman/listinfo/r-sig-geo
>

        [[alternative HTML version deleted]]

_______________________________________________
R-sig-Geo mailing list
R-sig-Geo@r-project.org
https://stat.ethz.ch/mailman/listinfo/r-sig-geo

Reply via email to