This applies to header plot, not the seismic trace plot.
In the bottom right corner of cbyt, there is an XY readout from the mouse
position. The Y readout is correct. X is the primary header selected in
the Annotation popup. When there are 64 trace headers, X will be the value of
the primary header at the mouse position. If traces have more than 64, then
the X readout is wrong.
Code in image_grid.cc is used to create the header plot. This cannot access the
number of headers in the input dataset, so assumes the default of 64.
The code in readout_xy.cc is used to display the values. It determines the
trace index from the mouse location, then calculates where it is in the header
array using _nhdrs, the number of trace headers. So if _nhdrs is wrong, the
wrong header is accessed (unless it is the very first trace).
I cannot see an easy fix for this problem.
The problem can be partly solved by modifying image_grid.cc:
Early in PlotImage::imageGrid(), we need to save the variable _nhdrs, which is
from the associated trace plot. Then around the middle of the file is this:
_user->_G.nhdwd = 64;
After this line, we need to change it for header plots, like so:
if(_user->getMode() == PlotHEADER) _user->_G.nhdwd = oldnumh;
Then the X readout in the bottom right corner will be correct.
However, there is another bug. The annotation at the top of the header plot is
wrong, because it also uses 64 as number of headers, and above fix does not
change that flaw. So need to find a way to patch the annotation code.