On Tue, 13 Feb 2018, Adam Fera wrote:
I came across this posting because I had a similar problem using R for
mapping within GNU Emacs Org Mode on GNU/Linux. I work on a research team
that uses a shared directory for data analysis. This makes it imperative
to use relative pathnames so that everyone can use the exact same code, the
exact same way, and achieve the exact same result. Unfortunately, the
readOGR function in the rgdal package does not allow the use of relative
pathnames in the dsn (data source name) argument.
The underlying GDAL logic expects an expanded path. Until I can check that
using path.expand() inside the functions at least for reading, perhaps
writing, use it as dsn = path.expand("~/relative/path/to/file/nypp_15c/").
I'd be grateful for feedback on whether this works as well as setwd().
sf uses enc2utf8(normalizePath(dsn)), so you could try normalizePath()
too - path.expand() handles ~ but not ../.. . readGDAL() handles relative
paths OK and uses normalizePath() internally.
To get around this, I use the setwd and getwd functions. I use setwd to
set the working directory to the directory with the shapefile. Then, I use
the getwd function as the dsn argument. Since setwd() can handle relative
pathnames and getwd() prints the absolute pathname, this allows the user a
way around the dsn= argument requiring an absolute pathname. This worked
for my research team and allowed us all to use the same code for mapping in
My R code looks something like this:
## SET WORKING DIRECTORY TO BE UNIFORM
## IMPORT THE SHAPEFILE TO A SPATIAL DATA.FRAME
precincts.2015 <- readOGR(
I would like to thank all the R developers, in particular Professor Bivand,
for their extremely useful contributions in creating software for
geospatial data analysis.
I hope this helps,
Adam G. Fera
Department of Economics, Norwegian School of Economics,
Helleveien 30, N-5045 Bergen, Norway.
voice: +47 55 95 93 55; e-mail: roger.biv...@nhh.no
R-sig-Geo mailing list