rapidsai / cuspatial

CUDA-accelerated GIS and spatiotemporal algorithms
https://docs.rapids.ai/api/cuspatial/stable/
Apache License 2.0
612 stars 154 forks source link

[FEA] Native cuspatial ploting support inside cuxfilter #642

Open gregory1506 opened 2 years ago

gregory1506 commented 2 years ago

Having the ability to call a .plot() method on cudf dataframe with LAT/LON or some other geometry type.

for example:

df = "some cudf dataframe with latitude column and longitude column and attribute (population for example)"
df.plot(column='population', cmap="RdYlGn")
trxcllnt commented 2 years ago

Have you tried using datashader or hvPlot? You should be able to plot GPU points/geometries with either.

gregory1506 commented 2 years ago

I'm currently using Hvplot integrations to cudf, and pandas to plot points. But tools like deck.gl or kepler.gl give other abstractions as well like heatmaps or hexmaps. Here is an example that uses keplergl to animate the time ordered points across various ID's over timesteps to convey sense of trips.

https://github.com/gregory1506/marine-ais/blob/97675877b9357d0634524f15b6ea71ce142015b4/3.Vizualization/transbigdata.ipynb

trxcllnt commented 2 years ago

Unfortunately we can't GPU-accelerate data transfer between RAPIDS and deck.gl/kepler.gl, since they render in the browser and not in Python.

You could run a deck.gl plot in a native window w/ OpenGL via node-rapids (spatial demo src, example gif), but this is geared more towards app dev and not as easy to integrate into a jupyter-notebook-based workflow (unless you also want to write your jupyter notebook cells in JavaScript :sweat_smile:).

github-actions[bot] commented 2 years ago

This issue has been labeled inactive-30d due to no recent activity in the past 30 days. Please close this issue if no further response or action is needed. Otherwise, please respond with a comment indicating any updates or changes to the original issue and/or confirm this issue still needs to be addressed. This issue will be labeled inactive-90d if there is no activity in the next 60 days.