[Kst] HPIC update
Theodore Kisner
kisner at physics.ucsb.edu
Thu Jun 9 03:33:24 CEST 2005
On Wednesday 08 June 2005 17:51, Barth Netterfield wrote:
> what do you plan for part-sphere maps (like b2k deep)? Will there be a way
> to auto-scale in xy?
my plan was to check for the theta/phi range of non-null pixels when the file
is initially read and after that only if the update indicates that the file
has changed. So this info could be stored in the datasource _metadata I
guess. I think the initial plot range should be auto scaled, and then the
user can zoom however they like (similar to curve behaviour).
Not sure if this was your question. If you are talking about *only storing
hit pixels in memory*, that is a separate issue. The only way you can do
that and still have an efficient way of accessing the pixels is to have some
kind of "lookup table". Obviously a full-sphere lookup table defeats the
purpose of having a cut-sphere map in memory :-) My solution in HPIC is to
create a tree-based structure using the bits of the nested pixel number to
follow each branch. This is not finished being implemented.
> Lets just include it. If HEALPIX comes up with a GPL C implementation, we
> can re-visit the question. As long as they don't, there is no question to
> visit. I have talked to Eric about HEALPIX in kst for some years now, it
> hasn't happened, so we don't really need to wait any longer, as far as I am
> concerned.
sounds good to me- just apply the previously posted patchset and add the
datasources/hpic directory to svn :-)
> The problem with this is that it seems to add a parallel map structure to
> the Matrix/Image stuff, (which already has UI issues in actually accessing
> maps.)
I think that for speed issues, it is more efficient to do the projection from
from a vector of map data directly to the buffer. The problem is that
healpix maps are more naturally described as a vector (indexed by pixel
number), not a matrix.
> Convince data sources to output matrixes as well as vectors
but healpix maps "want" to be vectors, not matrices ;-) I plan on
re-projecting the healpix vector when the zooming changes. So that means
that each time the user zooms, the healpix vector must be reprojected onto
the buffer.
> (this solves
> the current Matrix UI issues)
I'm not familiar enough to know what these are- trying to get up to speed
quickly, sorry...
> It also means that the projection gets done at read time, not render time,
> and so should be faster. The down-side is that one might want to
> over-sample the healpix map in the projection to preserve the non-square
> pixels.... But this could be a read-time option.
aha! this is the crux of the matter- I think we should re-render on user
zooming. Rick and I had talked about adding options to reduce the resolution
of the "projection buffer", so that this redrawing could happen more quickly.
This should be a user controlled setting. For example, select coarse
resolution projection for quick-and-dirty display. Select high-resolution
projection for making publication plots.
So to summarize, healpix maps are most naturally stored in vectors, so the
current datasource model works great. As for bloating Kst2DPlot, that's why
I thought maybe a plugin model would work for handling different ways of
painting the data stored in a vector...
Sorry if some of this doesn't make sense- I'm still figuring out the
subtleties of kst's code base...
-Ted
More information about the Kst
mailing list