Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Remove GeoArrow glue code replacing gpu storage with cudf.Series and …
…host storage with pyarrow (#585) This PR: Closes #575, #584, #588, #591, and #592. This PR removes all the old `GeoArrowBuffers` logic that was implementing GeoArrow from scratch. Now, new geometry objects are first parsed into a `pyarrow` `DenseUnion`, then copied to the GPU as `ListSeries`. A `DenseUnion/Like` class `GeoSeries` implements the `input_types` and `union_offsets` for indexing into the four separate `ListSeries`. When host indexing, the `ListColumns` and `types` and `offsets` are copied into a pyarrow `DenseUnion` that is used for accessing the host side coordinates. At present indexing always copies to host. This deletes three times as many loc as it creates and trims down the GeoArrow code to nearly the minimum. It is ready for review. The next issue will describe the next four tasks that I or @isVoid will implement: 1. Testing and validation of the many `data` arguments types that can be made to the `GeoSeries` constructor. 2. Finalizing an arrow io loop: `x = cuspatial.from_arrow(dense_union); dense_union = x.to_arrow()` 3. Finally, the `__getitem__` method needs to be optimized for zero-copy and memory-direct buffer transfers. Presently it always copies the data into new Shapely objects for serialization. This closes the original issue #575. I'll create another issue to validate that the new format is correct and notify/compare it with the existing error report and geopandas team. @trxcllnt @exactlyallan @isVoid @harrism Authors: - H. Thomson Comer (https://github.com/thomcom) Approvers: - Paul Taylor (https://github.com/trxcllnt) - Michael Wang (https://github.com/isVoid) - Mark Sadang (https://github.com/msadang) URL: #585
- Loading branch information