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]]
Hi Ashraf, In that case I think you may need to structure the code to first build the list and only at the end supply that to the SpatialLines function, something like test.func <- function(x) { tt <- list() for ( i in ... ) { ... tt[[i]] <- (whatever) } return(SpatialLines(tt)) } Eric On Tue, Sep 26, 2017 at 12:36 PM, Ashraf Afana <asafaneh at yahoo.com> 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 > <https://stat.ethz.ch/mailman/listinfo/r-help> > PLEASE do read the posting guide http://www.R-project.org/ > posting-guide.html <http://www.r-project.org/posting-guide.html> > and provide commented, minimal, self-contained, reproducible code. > > > > >[[alternative HTML version deleted]]
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.