-
Notifications
You must be signed in to change notification settings - Fork 158
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[DISCUSSION] Standardize API inputs with GeoSeries
#637
Comments
Hmmm, this ignores the spaces in the Hausdorff distance API. This is a directed all-pairs distance computation. So the grouping and order of points matters. |
Edited PR description to address the change. |
I like this direction. API looks much cleaner. As long as we provide factories / converters from other layouts / dataframes. |
Thanks for creating this discussion. I agree that we should use |
I propose that we create individual issues for each API that needs to be updated. |
This issue has been labeled |
let's convert this to a milestone. |
Went with this way - this issue is now a meta issue that tracks the progress, where each API is tracked with a sub issue in the task list. |
This is done. |
Today the python computation API accepts raw structure of arrays input. Such as:
cuspatial/python/cuspatial/cuspatial/core/gis.py
Line 29 in da1cb97
and
cuspatial/python/cuspatial/cuspatial/core/gis.py
Lines 166 to 173 in da1cb97
The history of this input interface is that cuspatial was used to accelerate specific workflow where developers are very familiar with the underlying data structure of the geometry and used them. General GIS users are not required to know how the data layout before working with GIS functions, and @thomcom and I believe that using
GeoSeries
as the abstraction layer between user and underlying APIs is important.cuSpatial's GeoSeries API is implemented based on
GeoArrow
specification: https://github.com/geopandas/geo-arrow-spec, under the hood it's an arrowUnionArray
. This allowsGeoSeries
represent an array of pure or mixed geometry types. Currently many computation API only supports pure geometry array inputs. This falls within the range whereGeoSeries
is capable of supporting.Ideally, the above APIs should look like:
TODO:
Distance
Directed hausdorff distance
to Accept GeoSeries as Input #920Haversine distance
to Accept GeoSeries as Input #921Bounding
Polygon Bounding Boxes
to Accept GeoSeries as Input #929LineString Bounding Boxes
to Accept GeoSeries as Input #930Filtering
Points in Spatial Window
to Accept GeoSeries as Input #936Indexing
Quadtree on Points
to Accept GeoSeries as Input #937Join
Point in Polygon
to Accept GeoSeries as Input #939join quadtree and bounding boxes
to Accept GeoSeries as Input #940quadtree point in polygon
to Accept GeoSeries as Input #941quadtree point to nearest linestring
to Accept GeoSeries as Input #942Projection
Sinusoidal projection
to Accept GeoSeries as Input #949Trajectory
Derive trajectories
to Accept GeoSeries as Input #950Trajectory Bounding Boxes
to Accept GeoSeries as Input #951Trajectory distances and speeds
to Accept GeoSeries as Input #952Docs
The text was updated successfully, but these errors were encountered: