libdatrwxx: handle full SeismicUnix headers
This refers to tickets #81 and #82 in TFSoftware:
libdatrwxx looses the rich content of SeismicUnix headers upon reading data files. By passing the contents in the trace FREE block in well formatted character strings they could be made available to the SeismicUnix writing functions and thus could appropriately be restored in the output file. SeismicUnix input/output is provided in source code found at src/libs/libdatrwxx/su. The SU module in libdatrwxx currently does neither produce trace free blocks of type sff::FREE (in function void isustream::readheader()) not does it write such blocks (in function void osustream::writetrace(const Tfseries::Tcoc& series)). Appropriate evaluation of Seismic Unix trace header fields and conversion to and from sff::FREE containers should be implemented as member function of datrw::su::SUheader in src/libs/libdatrwxx/su/suheader.cc.
Niklas, if you plan to work on this, a discussion of implementation strategy and data containers provided and used in libdatrwxx might be helpful or even necessary.
A remark taken from TFSoftware ticket #81:
Since the different header fields are of different variable type, the functions behind suascii are quite elaborate. Although they are straight forward, it would require an additional amount of code to implement this functionality. Its usefulness within the framework of libdatrwxx is questionable.
See
SU41/src/su/main/suascii.c
and
SU41/src/su/lib/hdrpkge.c
as well as
SU41/src/su/include/hdr.h
SU41/src/su/include/Makefile
SU41/src/su/include/mkhdr.c
SU41/src/su/include/mkprehdr.sh
SU41/src/su/include/offsets.h
and others.