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

Dask & Geopandas: 'str' object has no attribute

我有一个 GeoSeries,每个单元格中都有一个形状优美的 Polygon 对象,我试图并行化所有特征的光栅化(最后我试图获得一系列二维数组,然后我将其转换进入 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 数据帧不正式支持非Pandas 数据帧。如果在某些时候您的数据帧被转换为 Pandas 数据帧并强制进行某种字符串转换,我不会感到惊讶。

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

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