2016-10-18 3 views
0

異なるgpxファイルの行をRに読み込んで、それらを1つのSpatialLinesオブジェクトに結合しました。今私は、空間データセット「tracksSL」の属性としてGPX-名(CHR-ベクトル「名前」)を適用したいと思いますが、私はここにこだわっている...解決SpatialLinesにデータを適用するオブジェクト

library(sp) 
library(gdal) 

setwd("D:/WEB/gardaweb") 

files <- dir(pattern="*.gpx$", recursive = T, include.dirs = T) 

spl <- lapply(files, function(x) {readOGR(x,"tracks")@lines[[1]]}) 

lines <- lapply(spl , function(x) `@`(x , "Lines")) 
tracks <- Lines(unlist(lines), ID = "Tracks") 
tracksSL <- SpatialLines(list(tracks)) 

names <- basename(files) 

str(tracksSL) 
>> 
Formal class 'SpatialLines' [package "sp"] with 3 slots 
    [email protected] lines  :List of 1 
    .. ..$ :Formal class 'Lines' [package "sp"] with 2 slots 
    .. .. .. [email protected] Lines:List of 15 
    .. .. .. .. ..$ :Formal class 'Line' [package "sp"] with 1 slot 
    .. .. .. .. .. .. [email protected] coords: num [1:2322, 1:2] 10.9 10.9 10.9 10.9 10.9 ... 
    .. .. .. .. ..$ :Formal class 'Line' [package "sp"] with 1 slot 
    .. .. .. .. .. .. [email protected] coords: num [1:2961, 1:2] 10.9 10.9 10.9 10.9 10.9 ... 
    .. .. .. .. ..$ :Formal class 'Line' [package "sp"] with 1 slot 
    .. .. .. .. .. .. [email protected] coords: num [1:2201, 1:2] 10.7 10.7 10.7 10.7 10.7 ... 
    .. .. .. .. ..$ :Formal class 'Line' [package "sp"] with 1 slot 
    .. .. .. .. .. .. [email protected] coords: num [1:3329, 1:2] 10.9 10.9 10.9 10.9 10.9 ... 
    .. .. .. .. ..$ :Formal class 'Line' [package "sp"] with 1 slot 
    .. .. .. .. .. .. [email protected] coords: num [1:2976, 1:2] 10.9 10.9 10.9 10.9 10.9 ... 
    .. .. .. .. ..$ :Formal class 'Line' [package "sp"] with 1 slot 
    .. .. .. .. .. .. [email protected] coords: num [1:3333, 1:2] 10.9 10.9 10.9 10.9 10.9 ... 
    .. .. .. .. ..$ :Formal class 'Line' [package "sp"] with 1 slot 
    .. .. .. .. .. .. [email protected] coords: num [1:2484, 1:2] 10.9 10.9 10.9 10.9 10.9 ... 
    .. .. .. .. ..$ :Formal class 'Line' [package "sp"] with 1 slot 
    .. .. .. .. .. .. [email protected] coords: num [1:746, 1:2] 10.9 10.9 10.9 10.9 10.9 ... 
    .. .. .. .. ..$ :Formal class 'Line' [package "sp"] with 1 slot 
    .. .. .. .. .. .. [email protected] coords: num [1:3373, 1:2] 11 11 11 11 11 ... 
    .. .. .. .. ..$ :Formal class 'Line' [package "sp"] with 1 slot 
    .. .. .. .. .. .. [email protected] coords: num [1:2286, 1:2] 10.9 10.9 10.9 10.9 10.9 ... 
    .. .. .. .. ..$ :Formal class 'Line' [package "sp"] with 1 slot 
    .. .. .. .. .. .. [email protected] coords: num [1:1612, 1:2] 10.9 10.9 10.9 10.9 10.9 ... 
    .. .. .. .. ..$ :Formal class 'Line' [package "sp"] with 1 slot 
    .. .. .. .. .. .. [email protected] coords: num [1:1315, 1:2] 10.7 10.7 10.7 10.7 10.7 ... 
    .. .. .. .. ..$ :Formal class 'Line' [package "sp"] with 1 slot 
    .. .. .. .. .. .. [email protected] coords: num [1:4342, 1:2] 10.9 10.9 10.9 10.9 10.9 ... 
    .. .. .. .. ..$ :Formal class 'Line' [package "sp"] with 1 slot 
    .. .. .. .. .. .. [email protected] coords: num [1:4168, 1:2] 10.9 10.9 10.9 10.9 10.9 ... 
    .. .. .. .. ..$ :Formal class 'Line' [package "sp"] with 1 slot 
    .. .. .. .. .. .. [email protected] coords: num [1:2366, 1:2] 10.9 10.9 10.9 10.9 10.9 ... 
    .. .. .. [email protected] ID : chr "Tracks" 
    [email protected] bbox  : num [1:2, 1:2] 10.6 45.7 11.1 46 
    .. ..- attr(*, "dimnames")=List of 2 
    .. .. ..$ : chr [1:2] "x" "y" 
    .. .. ..$ : chr [1:2] "min" "max" 
    [email protected] proj4string:Formal class 'CRS' [package "sp"] with 1 slot 
    .. .. [email protected] projargs: chr NA 

str(names) 
>> 
chr [1:15] "601er RifugiGraziani.gpx" "Bocca dei Fortini.gpx" ... 

答えて

0

library(sp) 
    library(gdal) 
    library(plotKML) 

    setwd("D:/WEB/gardaweb") 

    files <- dir(pattern="*.gpx$", recursive = T, include.dirs = T) 

    spl <- lapply(files, function(x) {readOGR(x, "tracks")@lines[[1]]}) 
    str(spl) 

    for(i in 1:length(spl)) {slot(spl[[i]], "ID") <- as.character(i)} 
    tracksSL <- SpatialLines(spl, proj4string = CRS("+proj=longlat +datum=WGS84")) 

    summary(tracksSL) 
    plot(tracksSL) 

    df <- data.frame(names = basename(files), row.names = sapply(slot(tracksSL, "lines"), function(x) slot(x, "ID"))) 
    tracksSLDF <- SpatialLinesDataFrame(tracksSL, data = df) 

    plotKML(tracksSLDF, "tracks_collection") 
関連する問題