Python 将Shapely STRtree存储到文件以供重用

Python 将Shapely STRtree存储到文件以供重用,python,shapely,Python,Shapely,我有大量的形状几何多边形,保存在一个形状文件中。我把它们装进一棵漂亮的树里。每次运行程序时都要重新计算它们的信封似乎效率很低。有没有办法(也许用泡菜)保存整棵树?甚至用Redis存储它们也很有用 谢谢 仔细想想……出于这个原因进行的酸洗实际上没有多大帮助,因为strtree所做的所有酸洗工作基本上都是将每个单独的几何体转换为wkb格式,并将它们全部写入一个文件(请参阅注释)。取消勾选从wkb重新创建这些几何图形,然后使用它们创建一个新的STRtree。因此,无论哪种方式,边界都将再次计算 虽然

我有大量的形状几何多边形,保存在一个形状文件中。我把它们装进一棵漂亮的树里。每次运行程序时都要重新计算它们的信封似乎效率很低。有没有办法(也许用泡菜)保存整棵树?甚至用Redis存储它们也很有用


谢谢

仔细想想……出于这个原因进行的酸洗实际上没有多大帮助,因为strtree所做的所有酸洗工作基本上都是将每个单独的几何体转换为wkb格式,并将它们全部写入一个文件(请参阅注释)。取消勾选从wkb重新创建这些几何图形,然后使用它们创建一个新的
STRtree
。因此,无论哪种方式,边界都将再次计算


虽然我还没有在所有的几何体类型上测试过,但酸洗似乎是有效的

导入pickle
从shapely.geometry导入多边形
从shapely.strtree导入strtree
多边形=[范围(100)内i的多边形(((i,i),(i+1,i),(i,i+1)))
strtree=strtree(多边形)
以open('strtree.pickle','wb')作为f:
腌菜场(strtree,f)
然后在另一个过程中

导入pickle
从shapely.geometry导入点
以open('strtree.pickle','rb')作为f:
strtree=pickle.load(f)
打印(标准树最近点(39.8,39.8)).wkt)
#多边形((40,4140,4041,40))
shapely==1.7.1
中,当取消勾选一些
STRtree
对象时,避免了segfault。因此,您可能需要使用最新版本