bjlittle / geovista

Cartographic rendering and mesh analytics powered by PyVista

Home Page:https://geovista.readthedocs.io/

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Automated decimation for plotting?

trexfeathers opened this issue · comments

✨ Feature Request

An automatic feature that would intervene during plotting (so presumably part of GeoPlotter?) to reduce the resolution of a PolyData that would otherwise blow memory / cause excessive lag. I imagine the threshold for this would be configurable. There could perhaps be a layer of automation to account for the amount of compute resource actually available.

More sophisticated implementation might involve a visualisation API that encourages and helps users to either limit their region size or limit their resolution. At the very least a User Guide article on the subject.

Motivation

GeoVista's intended use cases will often involve visualising a data set that has global scale, but high enough resolution to closely examine local phenomena. From experience this is often beyond resource limitations when visualising. If the user is viewing global data, then they don't need such high resolution. If the user is viewing smaller regions, then they don't need to view the whole globe.

I see this as a GeoVista feature, rather than PyVista, since it is a particularly common problem with globe-based data sets, and some of the potential solutions could also take advantage of this (e.g. measuring resolution and region size in km).

Additional Context

Could use PyVista's own decimation, or something more sophisticated such as pyvista/pyvista-support#17.

@trexfeathers Just so you're aware, this discussion has already started over on pyvista-xarray

Also, my intention is for plots to have optional bounded regions that will limit the render to an easily defined limited cartographic domain i.e., not necessarily a bounded-box.

However, before doing this, generic region extraction requires to be supported.

I'll clarify this all in a feature roadpath for geovista.

In order to maintain a backlog of relevant issues, we automatically label them as stale after 180 days of inactivity.

If this issue is still important to you, then please comment on this issue and the stale label will be removed.

Otherwise this issue will be automatically closed in 28 days time.

This issue is still important.