qgis / QGIS

QGIS is a free, open source, cross platform (lin/win/mac) geographical information system (GIS)
https://qgis.org
GNU General Public License v2.0
10.14k stars 2.93k forks source link

Make it easier to style layers with large feature count #50123

Open chaitanyach opened 1 year ago

chaitanyach commented 1 year ago

Feature description

The Symbology interface frequently eases UX by automatically calculating stats like min, max. It also generates the classes without having to click the 'Classify' button. This is very handy for normal cases. In large cases the user has to wait for a long time for them to be calculated. We can have a checkbox to disable this auto-calculation. Also, I noticed that min and max values are estimated separately. These two can be calculated simultaneously in half the time for large datasets. I am making these notes based on data from PostGIS, but I think it applied for other formats as well.

Additional context

No response

songololo commented 1 year ago

Another request for this. Generally QGIS seems to be handling larger datasets (e.g. postGIS) far better than in the past, though it is still a pain to style features. It would be nice if QGIS could use a randomised subset of the data instead of trying to gather statistics from the entire dataset. For example, PostGIS ORDER BY random() LIMIT x or such?

thk686 commented 1 year ago

I would also like to add to this request. QGIS is the only app I can think of that I regularly outright kill because it is trying to do something huge with no indication of when it may recover. The most common case is working with large rasters in POSTGIS, especially the classification option. But there are other situations as well. It seems this must become an async operation with option to cancel. I have implemented async queries using libpq and it is fairly straightforward, or is all of this going through GDAL? Can we at least have the option of setting statement_timeout so we don't have to decide to kill QGIS or come back tomorrow to see how things are going? For subsampling, you can also use select * from tabnam tablesample system(<frac>) to semi-randomly subset rows.