Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/290.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
我可以在python中的pickle文件几何体列表中保存几何体索引吗_Python_Pickle_Geopandas - Fatal编程技术网

我可以在python中的pickle文件几何体列表中保存几何体索引吗

我可以在python中的pickle文件几何体列表中保存几何体索引吗,python,pickle,geopandas,Python,Pickle,Geopandas,我通过Rasterio读取了GeoTiff填充的简单高程数据。现在我想使用Shapely的STR树与其他点和线相交,最有效的方法是将几何图形的高程属性列表存储为pickle,并直接加载它们,而不是加载和转换pandas geoDataframe(或各种类似选项)的pickle的csv 如果Iprint(gridGeoms[I].idx)在这里,我将根据需要获得几何体的高程I。但是如果我加载'thisgometrylist.pkl'文件并执行相同的操作,我会得到一个'Polygon'对象没有属性“

我通过Rasterio读取了GeoTiff填充的简单高程数据。现在我想使用Shapely的STR树与其他点和线相交,最有效的方法是将几何图形的高程属性列表存储为pickle,并直接加载它们,而不是加载和转换pandas geoDataframe(或各种类似选项)的pickle的csv

如果I
print(gridGeoms[I].idx)
在这里,我将根据需要获得几何体的高程
I
。但是如果我加载
'thisgometrylist.pkl'
文件并执行相同的操作,我会得到一个
'Polygon'对象没有属性“idx”
错误。我认为pickle将存储gridGeoms的二进制数据,其中包括添加的
.idx
属性

是否有保存
.idx
属性的酸洗选项?
或者是否有其他格式可以保存此信息并同样有效?

(注意:我尝试了joblib,但它也没有保留
.idx
数据)

我建议创建另一个列表,在其中存储idx并将其另存为单独的pickle,但我仍然需要遍历这两个列表并将索引分配给几何体,这是我试图避免的步骤,以加快计算速度“从相交轴网获取高程”“ProcessPolygon类是您的代码吗?这个变量有什么特别之处吗?例如,它是一个财产吗。pickle存储数据的方式似乎有一些限制。它是Shapely Polygon类。我发现可以添加
.idx
属性来解决Githib上的某个地方的问题,但是我再也找不到它了,也没有在文档中看到任何支持它的内容。我同意pickle存储数据的方式必须有一些限制,但我不知道它为什么不存储此数据,或者如何保存。我建议创建另一个列表,在其中存储idx并将其保存为单独的pickle,但我仍然需要遍历这两个列表并将索引分配给几何体,为了加快“从相交网格获取高程”过程,我试图避免的步骤是哪一步?该多边形类是您的代码吗?这个变量有什么特别之处吗?例如,它是一个财产吗。pickle存储数据的方式似乎有一些限制。它是Shapely Polygon类。我发现可以添加
.idx
属性来解决Githib上的某个地方的问题,但是我再也找不到它了,也没有在文档中看到任何支持它的内容。我同意pickle存储数据的方式必须有一些限制,但我不知道它为什么不存储这些数据,或者如何保存这些数据。
def openPickleFile(filePathName):    
    with open (filePathName, 'rb') as fp:
        return pickle.load(fp)

def writePickleFile(theData,filePathName):    
    with open(filePathName, 'wb') as fp:
        pickle.dump(theData, fp)

thisData = openPickleFile('thisDataFrame.pkl') 
gridGeoms = list(thisData['geometry'])
gridValues = list(thisData['elevation'])
for index, geom in enumerate(gridGeoms):
    gridGeoms[index].idx = gridValues[index] 
writePickleFile(gridGeoms, 'thisGeometryList.pkl')