2017-09-22 8 views
0

J'essaye de construire un objet SpatialLines à partir d'une liste qui contient 124 segments. Chaque segment de la liste contient les coordonnées x, y pour chaque nœud (voir ci-dessous). J'utilise le code suivant pour créer l'objet SpatialLines, mais il récupère juste un segment. Aucune suggestion?Comment créer des objets SpatialLine à partir d'une liste?

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)} 

Un grand merci

Ash,

enter image description here

Répondre

0

je trouve le problème réside dans le 'i' argument Lines, qui devrait être modifié pour as.character (i). La première donne le deuxième argument à Lines (,) en tant que 'i' à chaque fois à travers la boucle ('i', 'i', ...) alors qu'utiliser as.character (i) donne le second argument ("1", "2", ...).

Merci à Eric Berger pour les conseils et l'aide.

test.func = function(x){ 
tt1 <- list() 
for (i in 1:length(x)) { 
    tt1[[i]] <- x[[i]]; 
    tt1[[i]] = Line(tt1[[i]]); 
    tt1[[i]] = Lines(list(tt1[[i]]), as.character(i)) 
} 
tt2 = SpatialLines(tt1) 
return(tt2) 

}