[R-sig-Geo] inconsistent as.data.frame(SpatialPointsDF)
dschneiderch
Dominik.Schneider at colorado.edu
Fri Mar 20 00:02:45 CET 2015
I have a spatial points dF that is causing me trouble. I've figured out what
is happening but without a clue why.
at the prompt, I do
> locs
class : SpatialPointsDataFrame
features : 10
extent : -112.0623, -109.0571, 33.65387, 36.32678 (xmin, xmax, ymin,
ymax)
coord. ref. : +proj=longlat +datum=WGS84 +ellps=WGS84 +towgs84=0,0,0
variables : 7
names : network, State, Station_ID, Site_ID, Site_Name,
Elevation_ft, Elevation_m
min values : SNTL, AZ, 09N05S, 308, BAKER BUTTE,
7100, 2164
max values : SNTL, AZ, 12P01S, 1143, HANNAGAN MEADOWS,
9200, 2804
> head(as.data.frame(locs))
x y network State Station_ID Site_ID Site_Name
1 -111.4064 34.45660 SNTL AZ 11R06S 308 BAKER BUTTE
2 -111.3827 34.45547 SNTL AZ 11R07S 1140 BAKER BUTTE SMT
3 -109.5034 33.97883 SNTL AZ 09S01S 310 BALDY
4 -109.2166 33.69144 SNTL AZ 09S06S 902 BEAVER HEAD
5 -109.0571 36.32678 SNTL AZ 09N05S 1143 BEAVER SPRING
6 -112.0623 35.26247 SNTL AZ 12P01S 1139 CHALENDER
Elevation_ft Elevation_m
1 7300 2225
2 7700 2347
3 9125 2781
4 7990 2435
5 9200 2804
6 7100 2164
so as expected(?) my coordinate names get converted from Longitude, Latitude
to x, y.
However, when I run my script, the output of head(as.data.frame(locs)) is:
Longitude Latitude network State Station_ID Site_ID Site_Name
1 -111.4064 34.45660 SNTL AZ 11R06S 308 BAKER BUTTE
2 -111.3827 34.45547 SNTL AZ 11R07S 1140 BAKER BUTTE SMT
3 -109.5034 33.97883 SNTL AZ 09S01S 310 BALDY
4 -109.2166 33.69144 SNTL AZ 09S06S 902 BEAVER HEAD
5 -109.0571 36.32678 SNTL AZ 09N05S 1143 BEAVER SPRING
6 -112.0623 35.26247 SNTL AZ 12P01S 1139 CHALENDER
Elevation_ft Elevation_m
1 7300 2225
2 7700 2347
3 9125 2781
4 7990 2435
5 9200 2804
6 7100 2164
I found out the hard way because i was doing
as.data.frame(locs)[,c('x','y')] to get the coordinates.... I switched this
line to coordinates(locs) but I have other lines in the same code that use
as.data.frame() so I'm wondering if there are designed circumstance for one
behavior compared to the other. I did notice that
data.frame(locs)[,c('x','y')] seems to always maintain the original
coordinate names but I confirmed that the script uses as.data.frame()
Below is dput of a sample of my data. does anyone else get this behavior?
> dput(locs)
new("SpatialPointsDataFrame"
, data = structure(list(network = c("SNTL", "SNTL", "SNTL", "SNTL",
"SNTL",
"SNTL", "SNTL", "SNTL", "SNTL", "SNTL"), State = c("AZ", "AZ",
"AZ", "AZ", "AZ", "AZ", "AZ", "AZ", "AZ", "AZ"), Station_ID = c("11R06S",
"11R07S", "09S01S", "09S06S", "09N05S", "12P01S", "09S07S", "11P02S",
"11P13S", "09S11S"), Site_ID = c(308L, 1140L, 310L, 902L, 1143L,
1139L, 416L, 1121L, 488L, 511L), Site_Name = c("BAKER BUTTE",
"BAKER BUTTE SMT", "BALDY", "BEAVER HEAD", "BEAVER SPRING", "CHALENDER",
"CORONADO TRAIL", "FORT VALLEY", "FRY", "HANNAGAN MEADOWS"),
Elevation_ft = c(7300L, 7700L, 9125L, 7990L, 9200L, 7100L,
8400L, 7350L, 7200L, 9020L), Elevation_m = c(2225L, 2347L,
2781L, 2435L, 2804L, 2164L, 2560L, 2240L, 2195L, 2749L)), .Names =
c("network",
"State", "Station_ID", "Site_ID", "Site_Name", "Elevation_ft",
"Elevation_m"), row.names = 63:72, class = "data.frame")
, coords.nrs = c(7L, 6L)
, coords = structure(c(-111.40643, -111.38272, -109.50344, -109.21657,
-109.05711,
-112.06231, -109.15282, -111.74486, -111.84374, -109.30952, 34.4566,
34.45547, 33.97883, 33.69144, 36.32678, 35.26247, 33.80392, 35.26806,
35.07297, 33.65387), .Dim = c(10L, 2L), .Dimnames = list(NULL,
c("Longitude", "Latitude")))
, bbox = structure(c(-112.06231, 33.65387, -109.05711, 36.32678), .Dim =
c(2L,
2L), .Dimnames = list(c("Longitude", "Latitude"), c("min", "max"
)))
, proj4string = new("CRS"
, projargs = "+proj=longlat +datum=WGS84 +ellps=WGS84 +towgs84=0,0,0"
)
)
This is running on a cluster at my university, using a SOCK cluster to
parallelize dlply and then an MC backend for a ddply inside the dlply, if
that's important. It seems to produce the expected behavior of my desktop.
> sessionInfo()
R version 3.1.2 (2014-10-31)
Platform: x86_64-unknown-linux-gnu (64-bit)
locale:
[1] C
attached base packages:
[1] grid parallel stats graphics grDevices utils datasets
[8] methods base
other attached packages:
[1] ncdf4_1.13 smwrBase_1.0.1 lubridate_1.3.3
[4] digest_0.6.8 memoise_0.2.1 gridExtra_0.9.1
[7] spdep_0.5-82 Matrix_1.1-4 fields_7.1
[10] maps_2.3-9 spam_1.0-1 doSNOW_1.0.12
[13] snow_0.3-13 doMC_1.3.3 iterators_1.0.7
[16] foreach_1.4.2 ipred_0.9-3 MASS_7.3-37
[19] RColorBrewer_1.1-2 rgdal_0.9-1 stringr_0.6.2
[22] ggplot2_1.0.0 plyr_1.8.1 reshape2_1.4.1
[25] raster_2.3-12 sp_1.0-17 ProjectTemplate_0.6
loaded via a namespace (and not attached):
[1] LearnBayes_2.15 Rcpp_0.11.3 boot_1.3-13 class_7.3-11
[5] coda_0.16-1 codetools_0.2-9 colorspace_1.2-4 deldir_0.1-7
[9] gtable_0.1.2 lattice_0.20-29 lava_1.3 munsell_0.4.2
[13] nlme_3.1-118 nnet_7.3-8 prodlim_1.5.1 proto_0.3-10
[17] rpart_4.1-8 scales_0.2.4 splines_3.1.2 survival_2.37-7
--
View this message in context: http://r-sig-geo.2731867.n2.nabble.com/inconsistent-as-data-frame-SpatialPointsDF-tp7587920.html
Sent from the R-sig-geo mailing list archive at Nabble.com.
More information about the R-sig-Geo
mailing list