[英]Python and Shapefile: Very large coordinates after importing shapefile
[英]Memory error on large Shapefile in Python
import shapefile
data = shapefile.Reader("data_file.shp")
shapes = data.shapes()
我的问题是,使用Pyshp时,从Shapefile阅读器获取形状会给我一个异常MemoryError
。
.shp
文件很大,为1.2 gB。 但是我只使用机器32gB的3%,所以我听不懂。
我还能采取其他方法吗? 可以在Python中分块处理文件吗? 还是使用某种工具将文件撒到碎片中,然后分别处理它们?
尽管我无法对其进行测试,但是Pyshp应该能够读取它,而不管文件大小或内存限制如何。 创建Reader
实例不会加载整个文件,只会加载标头信息。
这里的问题似乎是您使用了shapes()
方法,该方法将所有形状信息立即读取到内存中。 通常这不是问题,但是文件很大。 通常,您应该改为使用iterShapes()
方法,该方法iterShapes()
读取每个形状。
import shapefile
data = shapefile.Reader("data_file.shp")
for shape in data.iterShapes():
# do something...
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.