spacetime EOF error "variable names are limited to 10000 bytes"
Thanks for the quick fix, Edzer!
I was unfamiliar with installing a development version of a package from
GitHub. If anyone comes across this, it's pretty easy with the devtools
library:
library(raster)
library(spacetime)
library(devtools)
## Create a raster object that mimics my data
## I actually have 20,708 layers in the raster stack
a = array(rnorm(9*9*10000), c(9,9,10000))
b = brick(a)
b = setValues(b, a)
z = seq(as.Date('1980-01-01'), as.Date('2007-05-18'),
by = 'day')
b = setZ(b, z)
## Turn on dev_mode in devtools to easily
## compile spacetime from GitHub
dev_mode(on=TRUE)
install_github('edzer/spacetime')
## coerce the raster stack to an STFDF object
stfdf = as(b, 'STFDF')
## attempt to compute EOFs
eof_time = EOF(stfdf, 'temporal')
eof_space = EOF(stfdf, 'spatial')
On Tue, Oct 14, 2014 at 12:27 AM, Edzer Pebesma <
edzer.pebesma at uni-muenster.de> wrote:
Thanks for the clear example & diagnostic. I committed a patch (github) that now uses the first name only to address all layers (i.e.: "layer.1"). I'm all ears for a better suggestion! On 10/14/2014 08:00 AM, Frede Aakmann T?gersen wrote:
Hi Andrew Try this
nchar(names(stfdf at data))
[1] 108893
Really long name. Here is a snipped version.
names(stfdf at data)
[1]
"layer.1.layer.2.layer.3.layer.4.layer.5.layer.6.layer.7.layer.8.layer.9.layer.10.layer.11.layer.12.layer.13.layer.14.layer.15.layer.16.layer.17.layer.18.layer.19.layer.20.layer.21.layer.22.layer.23.layer.24.layer.25.layer.26.layer.27.layer.28.layer.29.layer.30.layer.31.layer.32.layer.33.layer.34.layer.35.layer.36.layer.37.layer.38.layer.39.layer.40.layer.41.layer.42.layer.43.layer.44.layer.45.layer.46.layer.47.layer.48.layer.49.layer.50.layer.51.layer.52.layer.53.layer.54.layer.55.layer.56.layer.57.layer.58.layer.59.layer.60.layer.61.layer.62.layer.63.layer.64.layer.65.layer.66.layer.67.layer.68.layer.69.layer.70.layer.71.layer.72.layer.73.layer.74.layer.75.layer.76.layer.77.layer.78.layer.79.layer.80.layer.81.layer.82.layer.83.layer.84.layer.85.layer.86.layer.87.layer.88.layer.89.layer.90.layer.91.layer.92.layer.93.layer.94.layer.95.layer.96.layer.97.layer.98.layer.99.layer.100.layer.101.layer.102.layer.103.layer.104.layer.105.layer.106.layer.107.layer.108.layer.109.layer.110. layer.111.layer.112.layer.113.layer.114.layer.115.layer.116.layer.117.layer.118.layer.119.layer.120.layer.121.layer.122.layer.123.layer.124.layer.125.layer.126.layer.127.layer.128.layer.129.layer.130.layer.131.layer.132.layer.133.layer.134.layer.135.layer.136.layer.137.layer.138.layer.139.layer.140.lay
< SNIP>
946.layer.9947.layer.9948.layer.9949.layer.9950.layer.9951.layer.9952.layer.9953.layer.9954.layer.9955.layer.9956.layer.9957.layer.9958.layer.9959.layer.9960.layer.9961.layer.9962.layer.9963.layer.9964.layer.9965.layer.9966.layer.9967.layer.9968.layer.9969.layer.9970.layer.9971.layer.9972.layer.9973.layer.9974.layer.9975.layer.9976.layer.9977.layer.9978.layer.9979.layer.9980.layer.9981.layer.9982.layer.9983.layer.9984.layer.9985.layer.9986.layer.9987.layer.9988.layer.9989.layer.9990.layer.9991.layer.9992.layer.9993.layer.9994.layer.9995.layer.9996.layer.9997.layer.9998.layer.9999.layer.10000"
If you do this: names(stfdf at data) <- "all_layers" EOF() will work. 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-bounces at r-project.org [mailto:r-sig-geo-bounces at r- project.org] On Behalf Of Andrew Vitale Sent: 14. oktober 2014 01:24 To: r-sig-geo Subject: [R-sig-Geo] spacetime EOF error "variable names are limited to 10000 bytes" Hello, I have a raster brick of sea level pressure anomalies that I would like
to
analyze using empirical orthogonal functions. Each layer of the brick represents a daily observation, with a total of 20,718 days worth of observations (nlayer=20,718). I can easily coerce the raster brick to a spacetime STFDF object.
However,
when I try to run the spacetime:::EOF function, I get the following
error:
"Error in eval(as.call(c(expression(data.frame), x, check.names =
!optional, :
variable names are limited to 10000 bytes"
It seems that the error originates from the third line of the EOF code,
where the STFDF is coerced to an xts object.
Does anyone know of a workaround for this error, or is this merely a
limitation of R?
Here's a code that mimics my issue and my sessionInfo():
library(raster)
library(spacetime)
## Create a raster object that mimics my data
## I actually have 20,708 layers in the raster stack
a = array(rnorm(9*9*10000), c(9,9,10000))
b = brick(a)
b = setValues(b, a)
z = seq(as.Date('1980-01-01'), as.Date('2007-05-18'),
by = 'day')
b = setZ(b, z)
## coerce the raster stack to an STFDF object
stfdf = as(b, 'STFDF')
## attempt to compute EOFs
eof_time = EOF(stfdf, 'temporal')
eof_space = EOF(stfdf, 'space')
#### restultant error:
# Error in eval(as.call(c(expression(data.frame), x, check.names =
!optional, :
# variable names are limited to 10000 bytes
# > sessionInfo()
# R version 3.1.1 (2014-07-10)
# Platform: x86_64-pc-linux-gnu (64-bit)
# locale:
# [1] LC_CTYPE=en_US.UTF-8 LC_NUMERIC=C
# [3] LC_TIME=en_US.UTF-8 LC_COLLATE=en_US.UTF-8
# [5] LC_MONETARY=en_US.UTF-8 LC_MESSAGES=en_US.UTF-8
# [7] LC_PAPER=en_US.UTF-8 LC_NAME=C
# [9] LC_ADDRESS=C LC_TELEPHONE=C
# [11] LC_MEASUREMENT=en_US.UTF-8 LC_IDENTIFICATION=C
# attached base packages:
# [1] grid stats graphics grDevices utils datasets
methods
# [8] base
# other attached packages:
# [1] spacetime_1.1-0 ncdf4_1.13 fields_7.1 maps_2.3-7
# [5] spam_1.0-1 rgdal_0.8-16 raster_2.2-31 sp_1.0-15
# loaded via a namespace (and not attached):
# [1] intervals_0.14.0 lattice_0.20-29 rgeos_0.3-4 tcltk_3.1.1
# [5] tools_3.1.1 xts_0.9-7 zoo_1.7-11
Thanks,
Andrew
--
*Andrew P. Vitale*
Masters Student
Department of Geography
University of Nevada, Reno
vitale232 at gmail.com
[[alternative HTML version deleted]]
_______________________________________________ R-sig-Geo mailing list R-sig-Geo at r-project.org https://stat.ethz.ch/mailman/listinfo/r-sig-geo
_______________________________________________ R-sig-Geo mailing list R-sig-Geo at r-project.org https://stat.ethz.ch/mailman/listinfo/r-sig-geo
-- Edzer Pebesma, Co-Editor-in-Chief Computers & Geosciences Institute for Geoinformatics (ifgi), University of M?nster Heisenbergstra?e 2, 48149 M?nster, Germany. Phone: +49 251 83 33081 http://ifgi.uni-muenster.de GPG key ID 0xAC227795
_______________________________________________ R-sig-Geo mailing list R-sig-Geo at r-project.org https://stat.ethz.ch/mailman/listinfo/r-sig-geo
*Andrew P. Vitale* Masters Student Department of Geography University of Nevada, Reno vitale232 at gmail.com [[alternative HTML version deleted]]