在 R 中使用 writeOGR 写入 shapefile 时出现问题
我在迭代目录中的某些文本文件、执行一些数据操作并使用 R 中 rgdal 包中的 writeOGR 写入 ESRI shapefile 的脚本中遇到错误。在一定数量的文件后,我不断收到错误被写入(似乎大约有 43-44 个单独的文件,或约 14 个完整的 shapefile,因为每个 shapefile 都会创建许多文件)。
该错误通常类似于
GDAL Error 4: Unable to open ./test_8.shp or ./test_8.SHP
“此外,在脚本崩溃后,我会收到类似
cannot open file 'file_test.R': Too many open files
当我尝试读取另一个文件或对另一个文件执行任何操作时”的错误。
showConnections
此时不显示任何打开的文件。
下面是一些重现该问题的代码:
library(gstat)
library(rgdal)
data(meuse)
coordinates(meuse) = ~x + y
for (i in 1:50){
writeOGR(meuse,'.',paste('test',i,sep="_"),driver="ESRI Shapefile")
}
我在 OSX 上使用 R 2.12.2。 64 位和 32 位版本都会出现错误。
I've been getting an error in a script that iterates over some text files in a directory, does some data manipulation and writes to a ESRI shapefile using writeOGR from the rgdal package in R. I keep getting an error after a certain number of files are written (appears to be about 43-44 individual files, or ~14 complete shapefiles, as each shapefile creates a number of files).
The error is usually something like
GDAL Error 4: Unable to open ./test_8.shp or ./test_8.SHP
Additionally, after the script has crashed I get an error like
cannot open file 'file_test.R': Too many open files
When I try to read or do anything with another file.
showConnections
does not show any open files at this point.
Here is some code that reproduces the problem:
library(gstat)
library(rgdal)
data(meuse)
coordinates(meuse) = ~x + y
for (i in 1:50){
writeOGR(meuse,'.',paste('test',i,sep="_"),driver="ESRI Shapefile")
}
I'm using R 2.12.2 on OSX. Error happens on both 64 bit and 32 bit versions.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
您的代码在 Ubuntu 11.04 和 R 2.13 上对我有用,可能也值得尝试
maptools
包中的writeSpatialShape
。Your code worked for me on Ubuntu 11.04 and R 2.13, might be worth also to try
writeSpatialShape
from themaptools
package.