[R-sig-Geo] readGDAL and unz
Sarah Goslee
sarah.goslee at gmail.com
Tue Jul 21 21:17:49 CEST 2015
Hi folks,
I'm stuck trying to read spatial data from a zip archive using unz()
rather than unzipping it. The latter option works, but the zip
archives I'm working with have hundreds of files in them, and I'd
rather avoid the mess of unzipping the whole thing.
Using readGDAL(unz()) throws an error:
rror in .local(.Object, ...) : `3' does not exist in the file system,
and is not recognised as a supported dataset name.
It appears that the name of the connection isn't being passed
correctly. Do any of you know a way around this, or shall I just
resign myself to unzipping everything?
Here's both a working (csv) and nonworking (tif) example:
###
library(rgdal)
# create files to test with
# NOTE: WRITES TO CURRENT DIRECTORY
# creates x.tif and zip archive x.zip using rgdal built-in data
x <- readGDAL(system.file("external/simple.ag", package="sp")[1])
writeGDAL(x, "x.tif")
zip("x.zip", "x.tif")
# creates y.csv and zip archive y.zip
y <- data.frame(A=1:3, B=letters[6:8])
write.csv(y, "y.csv")
zip("y.zip", "y.csv")
## works as expected
# list files in y.zip
y.files <- unzip("y.zip", list=TRUE)
# read in first file
y.in <- read.csv(unz("y.zip", y.files$Name[1]))
## does not work: fails with error
## Error in .local(.Object, ...) : `3' does not exist in the file system,
## and is not recognised as a supported dataset name.
## Note: the number increments.
# list files in x.zip
x.files <- unzip("x.zip", list=TRUE)
# read in first file
x.in <- readGDAL(unz("x.zip", x.files$Name[1]))
## There's no difference in the connection provided by unz():
# > unz("y.zip", y.files$Name[1])
# description class mode text opened
# "y.zip:y.csv" "unz" "r" "text" "closed"
# can read can write
# "yes" "yes"
# > unz("x.zip", x.files$Name[1])
# description class mode text opened
# "x.zip:x.tif" "unz" "r" "text" "closed"
# can read can write
# "yes" "yes"
## unzipping the file first works as expected
unzip("x.zip")
x.in2 <- readGDAL(x.files$Name[1])
Thanks,
Sarah
--
Sarah Goslee
http://www.functionaldiversity.org
More information about the R-sig-Geo
mailing list