Dask&Geopandas:'str'对象没有属性

问题描述 投票:1回答:1

我在每个单元格中都有一个GeoSeries,其中包含一个形状为Polygon的对象,我正在尝试并行化所有特征的光栅化(我试图在最后得到一系列的2d数组,然后我将其转换为xarray.DF) :

cbd = dd.from_pandas(cb['geometry'], npartitions=2)

def _rasterize_area(geom):
    F = features.rasterize([(geom, geom.area)],
                             out_shape= (cvs.plot_height, 
                             cvs.plot_width), transform=aform, dtype=float64)
    return F

A = cbd.apply(_rasterize_area, convert_dtype=False)

但是,当我运行上面的最后一行时,我收到一个错误:

<ipython-input-18-f1e938162097> in _rasterize_area(geom)
      1 def _rasterize_area(geom):
----> 2     F = features.rasterize([(geom, geom.area)],  out_shape=(cvs.plot_height, cvs.plot_width), transform=aform, dtype=float64)
      3     return F

AttributeError: 'str' object has no attribute 'area' 

(这只是错误消息的有意义部分)

不确定我的对象转换为字符串的位置和方式,但....

dask geopandas
1个回答
1
投票

Dask数据帧不正式支持非Pandas数据帧。如果在某些时候您的数据帧被转换为Pandas数据帧并且强制进行某种字符串转换,我不会感到惊讶。

这里有一个高度实验性的dask-geopandas实现:https://github.com/mrocklin/dask-geopandas

您可能还想考虑GeoPandas的Cython分支,它可以更快,没有并行负担。

© www.soinside.com 2019 - 2024. All rights reserved.