I've written some code which didn't make it into 1.19/1.19.1, designed to make 2D datasets more general. The idea is to allow a more general dataset where the y and x steps can vary to give different sized "pixels". This is really useful if your data are logarithimically defined, etc.

The current implementation is that the user provides "edges" where the pixels start and stop (the next starts where the previous stops). The user provides a list of x and y values which contain 1+number of values in that direction.

This seemed to be reasonable and is a good fit for "image" type widgets, where the edge of the image needs to be properly defined. However, there some issues:

1. The contour widget needs to know where the pixel centres are. If you have the edges, you need to assume that the centre is in the middle. This might not be the case for log-stepped data (it's hard to do a log centre as the widget doesn't really know whether it is log or not).

2. I was investigating making the CSV import able to read 2D data. You might want to have data like this, where the first row and first column are x and y values.

   1,  10, 100,1000,10000
0, 1,  2,  3,  4,   5
1, 2,  4,  5,  6,   3
3, 3,  1,  0,  2,   3

This again has the issue that the centres are what are defined and not the edges.

Are pixel centres or edges the right way to describe 2D data? Centres seem better for contours, edges for images. Should veusz support both kinds of data? If centres are given, how do we calculate edges, and vice-versa?

Jeremy

_______________________________________________
Veusz-discuss mailing list
Veusz-discuss@gna.org
https://mail.gna.org/listinfo/veusz-discuss

Répondre à