[R] build a SpatialLines object from a list

MacQueen, Don macqueen1 at llnl.gov
Thu Sep 28 01:29:16 CEST 2017


Have you tried following the example in

  ?'SpatialLines-class'

You'll probably get better help from R-sig-geo

And please don't send html email, it makes your email hard to read.

--
Don MacQueen
Lawrence Livermore National Laboratory
7000 East Ave., L-627
Livermore, CA 94550
925-423-1062
Lab cell 925-724-7509
 
 

On 9/26/17, 2:36 AM, "R-help on behalf of Ashraf Afana via R-help" <r-help-bounces at r-project.org on behalf of r-help at r-project.org> wrote:

    Hi Eric,
    
    Thanks for the help.But this will not solve the problem as it will generate a list and what I need is an object of class sp using SpatialLine function from sp package.So, I need to convert each matrix to coordinates and then to a line and then to a spatial line as figured in the code.
    
    My data structure is a list of 141 matrices.Each matrix represents coordinates of the river lines position.
    
    Ashraf, cheers 
    
        On Monday, 25 September 2017, 16:56, Eric Berger <ericjberger at gmail.com> wrote:
     
    
     Hi Ashraf,It is not obvious to me what your structures are but one problem in your function is the assignment tt1 <- SpatialLines(list(tt[[i]])).
    This will set tt1 to just have one item.
    Consider the following
    test.func <- function(x) {    tt1 <- list()    for ( i in ... )  {       ...       tt1[[i]] <- SpatialLines(tt[[i]])    }    return(tt1)}
    
    HTH,Eric    
    On Mon, Sep 25, 2017 at 3:40 PM, Ashraf Afana via R-help <r-help at r-project.org> wrote:
    
    Hi all,I'm trying to build a SpatialLines object from a list that contains 124 river segments. Each segment in the list contains the x,y coordinates. I'm using the following code to create the SpatialLines object, but it just retrieves one segment. Any suggestions?
    
    test.func = function(x){
         for (i in 1:length(x)) {        tt[[i]] <- x[i]; tt[[i]]  = Line(tt[[i]]); tt[[i]]  = Lines(list(tt[[i]] ), 'i')        tt1 = SpatialLines(list(tt[[i]]))           }    return(tt1)  }
    Ashraf,
            [[alternative HTML version deleted]]
    
    ______________________________ ________________
    R-help at r-project.org mailing list -- To UNSUBSCRIBE and more, see
    https://stat.ethz.ch/mailman/ listinfo/r-help
    PLEASE do read the posting guide http://www.R-project.org/ posting-guide.html
    and provide commented, minimal, self-contained, reproducible code.
    
    
    
       
    	[[alternative HTML version deleted]]
    
    ______________________________________________
    R-help at r-project.org mailing list -- To UNSUBSCRIBE and more, see
    https://stat.ethz.ch/mailman/listinfo/r-help
    PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
    and provide commented, minimal, self-contained, reproducible code.



More information about the R-help mailing list