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 分支,它可以在没有并行性负担的情况下更快。
我有一个 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 分支,它可以在没有并行性负担的情况下更快。