The raster package 'enhances' as.data.frame for SpatialLines* and
SpatialPolygons*. I am not sure why there is also a function for
SpatialPoints* as it does not add anything, except for setting the
names to 'x' and 'y'. Perhaps that is what I did it for, I cannot
remember. But clearly it is not desirable to get different results
depending on when raster is loaded or not, so I have removed it. Sorry
for causing trouble.
Robert
On Fri, Mar 20, 2015 at 11:39 AM, Frede Aakmann T?gersen
<frtog at vestas.com> wrote:
Hi
I can reproduce this using Edzer's example. See below for output from R.
Also notice the naming of the coordinate columns to "x" and "y" in the S4
method of the raster package's function as.data.frame! Isn't that quite
unusual? I have maintainer on CC.
library(sp)
df = data.frame(Longitude=1:2, Latitude=2:1, z = 3:4)
df1 = df
coordinates(df1) = ~Longitude + Latitude
as.data.frame(df1)
Longitude Latitude z
1 1 2 3
2 2 1 4
[1] ".GlobalEnv" "package:raster" "package:sp"
[4] "ESSR" "package:stats" "package:graphics"
[7] "package:grDevices" "package:utils" "package:datasets"
[10] "package:methods" "Autoloads" "package:base"
showMethods("as.data.frame")
Function: as.data.frame (package base)
x="ANY"
x="data.frame"
(inherited from: x="ANY")
x="Raster"
x="SpatialLines"
x="SpatialPoints"
x="SpatialPointsDataFrame"
(inherited from: x="SpatialPoints")
x="SpatialPolygons"
selectMethod("as.data.frame", "SpatialPointsDataFrame")
Method Definition:
function (x, row.names = NULL, optional = FALSE, ...)
{
.local <- function (x, row.names = NULL, optional = FALSE,
xy = TRUE, ...)
{
if (!xy) {
if (.hasSlot(x, "data")) {
return(x at data)
}
else {
return(NULL)
}
}
nobj <- length(x)
d <- coordinates(x)
if (.hasSlot(x, "data")) {
d <- cbind(d, x at data)
}
colnames(d)[1:2] <- c("x", "y")
rownames(d) <- NULL
as.data.frame(d, row.names = row.names, optional = optional,
...)
}
.local(x, row.names, optional, ...)
}
<bytecode: 0x000000000d037260>
<environment: namespace:raster>
Signatures:
x
target "SpatialPointsDataFrame"
defined "SpatialPoints"
Yours sincerely / Med venlig hilsen
Frede Aakmann T?gersen
Specialist, M.Sc., Ph.D.
Plant Performance & Modeling
Technology & Service Solutions
T +45 9730 5135
M +45 2547 6050
frtog at vestas.com
http://www.vestas.com
Company reg. name: Vestas Wind Systems A/S
This e-mail is subject to our e-mail disclaimer statement.
Please refer to www.vestas.com/legal/notice
If you have received this e-mail in error please contact the sender.
-----Original Message-----
From: R-sig-Geo [mailto:r-sig-geo-bounces at r-project.org] On Behalf Of
dschneiderch
Sent: 20. marts 2015 18:19
To: r-sig-geo at r-project.org
Subject: Re: [R-sig-Geo] inconsistent as.data.frame(SpatialPointsDF)
I just went through my packages, iteratively unloading each one with:
detach('package:raster')
and found that if I unload the raster package then the expected
keeping the existing coordnames is achieved.
now why that differs in my script I have no idea.
[1] "Longitude" "Latitude"
detach('package:raster')
head(as.data.frame(snotellocs))
network State Station_ID Site_ID Site_Name Latitude Longitude
1 SNTL AZ 11R06S 308 BAKER BUTTE 34.45660 -111.4064
2 SNTL AZ 11R07S 1140 BAKER BUTTE SMT 34.45547 -111.3827
3 SNTL AZ 09S01S 310 BALDY 33.97883 -109.5034
4 SNTL AZ 09S06S 902 BEAVER HEAD 33.69144 -109.2166
5 SNTL AZ 09N05S 1143 BEAVER SPRING 36.32678 -109.0571
6 SNTL AZ 12P01S 1139 CHALENDER 35.26247 -112.0623
Elevation_ft Elevation_m
1 7300 2225
2 7700 2347
3 9125 2781
4 7990 2435
5 9200 2804
6 7100 2164
Dominik Schneider
o 303.735.6296 | c 518.956.3978
On Fri, Mar 20, 2015 at 11:02 AM, dschneiderch [via R-sig-geo] <
ml-node+s2731867n7587929h1 at n2.nabble.com> wrote:
Edzer - Look like we posted at the same time.
In my example my coordinates are named, no?
I tried your example in my R environment and can replicate the
df = data.frame(x=1:2, y=2:1, z = 3:4)
df1 = df
library(sp)
coordinates(df1) = ~x+y
as.data.frame(df1)
coordnames(df1)=c('long','lat')
str(df1)
Formal class 'SpatialPointsDataFrame' [package "sp"] with 5 slots
..@ data :'data.frame': 2 obs. of 1 variable:
.. ..$ z: int [1:2] 3 4
..@ coords.nrs : int [1:2] 1 2
..@ coords : num [1:2, 1:2] 1 2 2 1
.. ..- attr(*, "dimnames")=List of 2
.. .. ..$ : NULL
.. .. ..$ : chr [1:2] "long" "lat"
..@ bbox : num [1:2, 1:2] 1 1 2 2
.. ..- attr(*, "dimnames")=List of 2
.. .. ..$ : chr [1:2] "long" "lat"
.. .. ..$ : chr [1:2] "min" "max"
..@ proj4string:Formal class 'CRS' [package "sp"] with 1 slot
.. .. ..@ projargs: chr NA
x y z
1 1 2 3
2 2 1 4
Interestingly, when I open a new R instance and without loading all
packages associated with my project, the names are *not* converted.
seems that one of the packages I have loaded is conflicting with sp
causing the names to change... my sessionInfo() was attached in the
post.
------------------------------
If you reply to this email, your message will be added to the
SpatialPointsDF-tp7587920p7587929.html
To unsubscribe from inconsistent as.data.frame(SpatialPointsDF),
geo.2731867.n2.nabble.com/template/NamlServlet.jtp?macro=unsubscribe_
by_code&node=7587920&code=RG9taW5pay5TY2huZWlkZXJAY29sb3JhZG8u
ZWR1fDc1ODc5MjB8LTEwMzMyMTA1OQ==>
geo.2731867.n2.nabble.com/template/NamlServlet.jtp?macro=macro_view
er&id=instant_html%21nabble%3Aemail.naml&base=nabble.naml.namespac
es.BasicNamespace-nabble.view.web.template.NabbleNamespace-
nabble.naml.namespaces.BasicNamespace-
nabble.view.web.template.NabbleNamespace-
nabble.naml.namespaces.BasicNamespace-
nabble.view.web.template.NabbleNamespace-
nabble.view.web.template.NodeNamespace&breadcrumbs=notify_subscrib
ers%21nabble%3Aemail.naml-instant_emails%21nabble%3Aemail.naml-
send_instant_email%21nabble%3Aemail.naml>
--
View this message in context: http://r-sig-
geo.2731867.n2.nabble.com/inconsistent-as-data-frame-SpatialPointsDF-
tp7587920p7587931.html
Sent from the R-sig-geo mailing list archive at Nabble.com.