This release contains program fixes and enhancements as follows:
- Program ahist-
- Updated to ignore hard zeroes unless '-zero' command line flag is used.
- Added -T cmd line flag to provide an alternate output format. With -T each output line will consist of bin number, lower bin boundary value, upper bin boundary, population of bin. The default is still usp xgraph format.
- If either -min[] or -max[] is not on the cmd line the program reads through the input data once to find these extreme values for the histogram end points and a second pass through the data to actually bin the samples. This requires the input be on a disk file not a pipe. An error message was added to the code to tell the user of this situation and what to do about it. Also the man pages have been changed to alert the user before hand.
- Program ampspec-
- Added -L[nn] option to plot every nn th sequential spectrum in addition to the total spectrum. The xgraph plots will be labelled according to their sequential record and trace numbers. Default is to just plot the total spectrum of a data set as before.
- At user request the graph labelling is optional and is switched on with -LB on the cmd line. The default is no labelling of the spectral curves.
- Fixed a problem where is input traces were marked as dead (StaCor=30000) the traces would still be processed if they had live samples. Now a trace will be bypassed if it has a 30000 static or it is a zero trace.
- Fixed a problem in the code that checks for a zero window. The total number of samples checked was not correct if -s[] and -e[] on the cmd line were anything other than defaulted, i.e. the whole trace was analyzed.
- Added -normx to normalize the summed spectrum by the number of live traces used to form it.
- For live trace normalization -normx the correct scale factor was not being applied. This only affected linear amplitude or power spectrum calculations not decibel scale -db./li>
- Program angst-
- Modified Makefile to reflect movement of crvray() routine to utility library. (libut.a)
- Fixed a memory overflow problem in the velocity smoother. This could cause the program to grab increasing amounts of memory as velocity traces were read.
- Fixed a couple of codes related to the polynomial fitting function. Errors for non-convergence were going to fort.* files rather thastandard print file. There was also usage of a local variable where another was intended.
- Program angst3d-
- Fixed a problem in the rms velocity smoothing routines that would cause memory allocation to grow without bound.
- Program arcsdatum-
- Fixed a memory allocation problem in the datum statics smoother.
- Program arcscum-
- Fixed a memory allocation problem in the datum statics smoother.
- Program arnmo-
- Fixed an uninitialized variable in the array allocation steps.
- Corrected an error in computation of the shift for each trace that could have amounted to 1 sample.
- A memory allocation problem in the routine that smooths static shift estimates could cause memory to grow without bound. This has now been fixed.
- Program at3d-
- Added -landmark option to allow the user to specify corner coordinates as bin center of cornermost bins of the input dataset. The default is still USP corners which correspond to the actual bin corners of the cornermost bins.
- Mods to sync at3d and at3d_well in terms of command line syntax. Also depricated the ability to put both (x,y) real world coordinate and (li,di) coordinate grid definitions on the command line. This could [and did] cause error in the nearest neighbor trace determination in the past. Also revamped the man page an pattern file for changes.
- Program attin-
- Updated release - "This release represents a major change for attin, in support of the advancement of AVO statistics. The fold of the output is reduced from 15 to 8 and only intercept and gradient for 2-term and 3-term equations are output, along with improved RMSE for both the 2-term and 3-term equations and the F statistic for the 2-term and 3-term equations. The fractional change in Vp, Vs, and density previously output are now generated by program ARATT. The additional statistics traces previously generated by ATTIN have been completely dropped in favor of the RMSE and F statistic. The user can see the list of attributes output by opening the man page for ATTIN or by entering the on-screen help command attin ' -?'."
- Fix to correct a problem which occurred when the input is angle-t data and the min/max incident angles are the same.
- Modification to implement a new parameter for specifying a specific trace header for picking up the incident angle for each trace when the input is angle gathers.
- The default for the Gardner's exponent parameter ( -c option ) is now zero and this has been clarified in the man page.
- Bug correction. Also modified code on request to use crvray() code used by angst. This has now been placed in the USP libut library for standardization of usage. Attin will now determine type of variable save in header value specified by "-w" option and retrieve value accordingly or issue an error message if header value points to an invalid data type.
- Fixed an uninitialized variable bug, which would flag the angle type as incident in a subroutine.
- Addition of two new options to -
- Provide for selection of a modified regression basis function.
Provide an option to demand that the 2-term solution use only angles of incidence up to 35 degrees, regardless of the specified angle range, whereas the 3-term solution uses the full range specified.
- The option -stack was missing from the man pages.
- The rmse calculation for the -robust mode was wrong. This required restructuring this portion of the code to compute rmse inside the robust algorithm itself.
- Program avbf-
- Fixed a serious coding problem in the calculation of the gaussian taper when the start/end times were anything but the defaults. This could result in the output being nothing but NaNs.
- Program avepred-
- Fixed potential array dimension problem in the time varying option.
- Added dynamic memory allocation.
- Fixed missing entries in man pages and pattern file.
- In the time varying code,the correlation method was modified to obtain a 2x speed increase.
- Time varying -TV option: fixed a problem that could cause crashes on some machines if the sliding window length approached the length of the input trace. Now uses the faster fold routine. Also converted the arrays to dynamic allocation.
- Found a typo on a variable name which could cause the application to sometimes blow out with a segmentation violation when the uninitialized variable happened to get a bit of non-zero memory.
- The zero crossing option (for -TV only) was not working.
- Program avgain-
- Modified code to allow memory requests over 2 gig.
- Program azattin-
- Distribution of raw and formatted man pages for azattin.
- Program azvelan-
- Preliminary release of program azvelan ( Azithumal Velocity Analysis ) for testing.
- Modified to dynamic array allocation to correct buffer overflow bug.
- Program azvelansurf-
- Preliminary release of program azvelansurf ( Surface Consistent Azithumal Velocity Analysis ) for testing.
- Modified to dynamic array allocation to correct buffer overflow bug.
- Program bandw-
- New program to do bandwidth estimation using the cumulative spectral threshold method. A sliding window moves down each trace. At each window position the amplitude spectrum is computed, integrated, and the frequency at which the cumulative spectrum reaches a user defined threshold is output at the window center time. The command line arguments are similar to rwspec: -win[] -fmin[] -fmax[] -fint[] -cmpc[] are the mains ones defining the window length (ms), starting, ending frequencies, and frequency increments and the percent threshold of the cumulative spectrum.
- Program bdmute-
- Fixed an initialization problem in one of the subroutines and added implicit none where needed.
- Program bdnmo-
- Fixed several uninitialized variables.
- Changed the internal handling of the cmd line trace distance header word override -Hw[] so that the word can be a short integer, integer, or floating point value.
- Removed a debug statement which activated if the trace distance header word was overridden on the cmd line using -Hw[]
- Program buildtrc-
- New code initially for Jean-Paul Van Gestel. It takes asci file input with columnar values and converts them into regularly samples seismic format traces. Column 1 is currently assumed to contain (possibly) irregular depths, cols 2 and 3 contain X and Y locations cols 5-7 contain velocity related values. A new velocity related function is assumed to start when either the X or Y location changes. The file is assumed to have been generated using the program mech2seis.
- Added a sort step in case the irregular input depth sampling is not in ascending order.
- Put in a divide check/fix into the linear interpolator to guard against the possible occurrence of identical input grid elements.
- Added clarification to the man pages and pattern files per Jean-Paul's request. Specifically, the input to buildtrc is from Mech2Seis, although any suitable ascii file in column format will also do, provided it has the required arrangement.
- Program cdrf-
- Updated to add an option to write the average cdr(f) as frequency/cdr values to an ASCII file for graphing.
- Fixed a program bug introduced in recent modifications.
- Modifications "to remove the normalization of the spectrum output for graphing and included a new option to interpolate the power spectra to 1 Hz increment."
- Parameterization error in the code.
- Modified code to "eat" -version parameter so that it doesn't get reported as invalid during validity checking.
- Added new global reports at end of run for the median cdrf value and for its standard deviation. Global end-of-run reports now also to stderr.
- In the summary output the quantity labeled "Average CDR" was confusing. This is actually the CDR value derived from the average power spectrum for the data set which is different from the average of all CDR values from all the input traces. Both quantities are now output with appropriate labels.
- Program chifitmag-
- This is a release of a test code for Trevor Ricketts in Aberdeen. It will be seeing quite a few updates in the next little while but distribution to apps was the most expedious way of getting things done. When we release the final version I will post again. [Garossino:USP]
- Fixed memory allocation bug for Trevor's test code [Garossino:USP]
- SGI binaries for most recent changes correcting memory allocation.
- tweaked histogram bin logic to INCLUDE the max value previous version did a .lt. this one does .le. on the max bin [Garossino:USP]
- Added debug output for total number of samples processed. Made average smoothing the default if smoothing ov output histogram requested, made -median flag if median smoothing is desired. Allowed zero chi mag values into the distribution. [Garossino:USP]
- Program chinormag-
- second of two codes for Trevor Ricketts. We will post again when these codes are ready for prime time [Garossino:USP]
- Added changes to chinormag to be compatible with latest chifitmag [Garossino:USP]
- Added debug printout to show count histogram in printout file as well as total number of samples processed. [Garossino:USP]
- Fresh push as last attempt at update appeared to fail [Garossino:USP]
- Program chisubmag-
- Request for new program distribution for Neil Philip. This code is designed to subtract a noise model from a (ChiDir,ChiMag] distribution.
- Program clean-
- Bug fix. Program was incorrectly handling piped datasets on byte-swapped architectures (ie. Linux) All cases/conditions should now be handled correctly.
- Fixed a coding error that resulted in incorrect reporting to the printout file.
- Fixed a coding bug with respect to the the status code of a function.
- Program clean_green-
- Bug fix. Program was incorrectly handling piped datasets on byte-swapped architectures (ie. Linux) All cases/conditions should now be handled correctly.
- Program cmdwatch-
- Added -h/-? command line functionality for brief command help info.
- Program colredit-
- Modified the color editor panel which is common to several application. Upon resize, the color bar and the color sliders will now expand accordingly in the vertical dimension to view more of the values.
- Created standalone program colredit to use new commonized color editor dialog and added options for use on 8-bit display where colors are limited. Option "-h" or '-?' on the command line will give more details on these options.
- Program comb-
- New code to do simple frequency combing of input traces. two types of filter combs are available. The default mode is to input a bank of Ormsby filter corners from an ascii file using -F[filename]. Each line will have four entries for the corners F1 F2 F3 F4. Overlapping the previous F3 F4 with the next F1 F2 will the sum of the output filter combs sum toward the original input. -G will cause the filter comb to be overlapping Gaussian filters in the frequency domain. Again summation of the individual output filtered traces will approximate the input trace. For the two types of filters -X[] will output a file showing the filters and the summation result. The output can be of two forms: -O[] will comb each successive input trace producing M (the number of teeth in the filter comb) output traces and send these to the output (a file or a pipe). -B[] is a basename. The traces from each teeth of the comb will be sent to separate files with either F2_F3 appended to the basename for Ormsby or the center frequency of each Gaussian filter appended to the basename. There are other command line arguments but these are the essentials.
- Script comp_vers-
- Changed the "comp_vers" script used in the gmake program build structure to use our own utility rather than the system "which" command in determining the compiler being used. This is to circumvent some un-sociable behaviour on the part of most system "which" implementations. This change should be transparent to the user
- Modified to handle two digit major/minor releases.
- Program cross-
- The man pages had no reference to -XN on the cmd line to do the crosscorrelation with no normalization. -X does the crosscorrelation with normalization.
- Added an option -A for convolution mode which will automatically compute the required filter delay rather than putting it in on the cmd line via -t[]. The number of output samples in this case will be equal to the number of samples requested from data set 2, -N2[]. This method uses the envelope of the N1 filter traces to find the point of maximum energy and uses that as the delay.
- Added -CN which will normalize the convolution output by the N1 filter data. The method used is to compute the normalization scaler by the square root of the dot product of the N1 data array.
- Found a line in the code where the variable name had a typo. Invalid processing of options could result.
- Program cross2d-
- Old 2D crosscorrelation code used to detect misalignments of overlapping surveys of differing vintages (by looking at the correlations betw common time slices) has been reworked. Deficiencies have been corrected and capabilities added to do convolutions as well (default). In 4D work this code might be useful to further look at similarities between surveys but more from a spatial aspect. Surveys that were spatially similar would have symmetric 2D correlation output. Surveys that were spatially skewed in some manner would show aymmetries in the 2D correlations. The program is quite fast since it utilizes multiplcation in the KxKy domain to do the correlation/convolution.
- Removed a debug print statement.
- Fixed a memory growth problem in the routine that smooths the 2D shifts. For large numbers of input records this would cause memory to grow without bound.
- Program dafd-
- Very extensive re-write of this code.
- The default mode now uses ormsby filter banks obviating the need for program dctvf.
- The filters are read from an ascii file -wf[], each line of which must contain the four corner frequencies separated by whitespace, e.g. 0 5 10 15 10 15 20 25 ...
- Another option has been added to both the default ormsby and the gaussian filter bank mode: computation of the (time-freq) gain surface using an avgain type approach toggled on by -myds on the cmd line. The pertinent parameters are the window length -wl[], the % window overlap -o[], and the cross-freq optional smoothing length -ls[], if desired.
- The gains will be calculated using several modes -md[], 0=AAA, 1=RMS, 2=GMAA, 3=median. The default is AAA.
- The post-processing scaling using the ratio of the input to output envelopes is now optional and is invoked by -S on the cmd line.
- Post process filtering with -fl[] -fh[] butterworth is now not done if no high cut is specifed on the cmd line. The gaussian filter calculation was discovered to have potential problems if too high an -fh[] was specified on the cmd line. This has been corrected.
- Both the ormsby and gaussian filter bank mode have the option of outputting the gain (t-f) surfaces using -QC[] usp file. Each input trace will generate a record of nf traces, where nf is the number of filters in the bank.
- Dynamic memory allocation has replaced the hardwired arrays in this code.
- Made the % cosine taper applied to the ends of each input trace a cmd line variable -tp[] with a default of no taper.
- Fixed the online help dump '-?' which did not properly describe all the modes.
- Fixed a mis-dimensioned array that caused dafd to segment when using the -myds option with -ls[] smoothing.
- Output is now normalized by the number of frequency bands requested. Before the components from the frequency combs were simply summed with no normalization.
- Further major mod to be used with the -myds option. Option -rec will change the way -myds will work. Here the entire input t-x record is frequency combed, each result is agc-surface gain corrected with optional spatial smoothing, these t-x frequency data are then vertically summed for a final result. This differs from the default trace-by-trace mode where each input trace is treated as a separate entity with each trace frequency combed and the t-f array is agc-surface fitted/smoothed.
- Program davc-
- Discovered a mis-typed array in the least squares fitting subroutine used to optionally fit the computed gain curve. This could have resulted in problems on some architectures.
- Program dbvec-
- Added extra reporting at the end of the printout file: number of shots, number of groups, max number of traces/shot, max number of traces/group.
- Added a specific check for the dead trace flag.
- Added -F[] capability to output a fold dataset ala sr3d1 to be displayed in xsd.
- Program detmute-
- Fixes from Paul Garossino regarding variable mis-typing.
- Fixed a problem caused by zero traces giving the wrong "on" mute time. Now if a zero trace is encountered detmute gives an on mute time of zero and an off mute time of (nsamp-1)*nsi, where nsamp is the number of trace samples and nsi is the sample interval.
- Program diffr-
- Higher order derivatives (greater than 1) were not correctly implemented and resulted in the output being the same as for the default nord=1
- Program dipf-
- Fixed a problematic uninitialized variable and added missing include file which left some other constants undefined.
- Program disort-
- Added -retain flag to preserve the original trace numbers (TrcNum) on output. This is useful if you do a disort | [some process] | disort -hwTrcNum to get back to the original live trace order. Note that in this scenario leading dead traces in the original input will appear at the end of each final output record.
- Program dmoangst3d-
- Fixed a problem in both the velocity smoother and the angle smoother that would cause allocated memory to grow without bound ultimately crashing the program for large data sets.
- Program editt-
- Fixed an uninitialized variable that could cause problems on the x86_64 machines at least with some compilers.
- Fixed unallocated variable use in flat file item counter that caused the program to fail on LINUX platforms using the intel9 compiler. Reported by Marty Albertin [Garossino:USP]
- Fixed a useless warning if the input is headers only data, i.e. numsmp=0. Also fixed a potential disaster allocating array memory in such a case.
- Added some info to the printout file if the input is headers only data.
- There was a bug in a utility routine that fetched the name of the machine on which a program was running. This was printed out by editt and resulted in a non-printable character in the print file on occasion. This resulted in these files being skipped by rmprint.
- Program equaldx-
- Added trace header word mnemonic input for the trace distances. -HW[] cmd line input will tell the program to use whatever is in that header word as the trace distance. This word can be a short integer, integer or floating point value. Default is DstSgn.
- The new version will always make sure the new trace distances are written to DstSgn even if an alternate distance header word has been specified using -HW[]. Also -V will now print out the ordered input and output trace distances for each input record. The internal code structure has been changed so that the sort on input trace distances occurs only once per input record rather than at every time step for each record.
- Program fbpicker-
- Fixed an uninitialized variable that caused crashes on some machines/compilers.
- Program feedback-
- Modifications to auditting routine so that sendmail binary on a system is no longer used. A direct communication via perl script for mail transport is now used. This should prove to be much more reliable.
- The code was leaving "rogue" processes of uname on the systems. I've added an explicit call to the code to close the command pipe.
- Modified feedback code to eliminate an annoying lag time after program completion until prompt return.
- Modified auditting info collected to better track architecture/OS usage.
- Program filt-
- Added -R band rejection option. This outputs the difference between the input trace and the filtered trace and avoids the inconvenience of chasing filt with vstak ... -amp-1 to accomplish the same thing.
- Corrected a potential dimensioning problem in the -ormsby -conv option if the number of input samples was less than the maximum ormsby filter length.
- On some types of data (e.g. sparse spikes) the Butterworth filter would sometimes suffer edge effects that showed up on the filtered output as a DC shift, especially if a very small low side filter frequency was chosen and there happened to be spikes very close to the ends of a trace. The code now uses a small leading and trailing zero pad to eliminate this effect. Note that this only affects the Butterworth filter and that for most data cases there will be no noticeable differences.
- It was pointed out that if a user puts the four corner frequencies for an Ormsby filter, filt should assume this is the case and the user should not have to put -ormsby on the cmd line. If -omsby was left off the cmd line filt tried nstead to do a butterworth 10-40Hz filter. This is now no longer the case and the program will do the Ormsby filter.
- Program fitter-
- Fixed a number of long term bugs, e.g. you could not use the unweighted least squares polynomial robust fitter. Man pages and pattern file had numerous errors in them. Added an optional -hw[] cmd line entry to output the mean square error to a trace header word. and added the mean square error to the verbose printout.
- Discovered a mis-typed array in the least squares fitting subroutine (-L cmd line flag or -f n, where function type n is greater than 0) that could cause problems on some architectures.
- Fixed a bug wherein unnecessary memory was being allocated using an unintialized variable for the request. This could cause the program to fail at random when surface fit was not flagged.
- Program fk-
- Removed debug statements which resulted in large amounts of messages to stderr.
- Program fkkstrip-
- Extensive rewrite:
- added option to input cell dimensions dx & dy so asymmetric filters could be built for dx/dy that differ (no effect if dx=dy).
- Added option to apply pillbox filter (1's within pill, zeros outside).
- Also added optional linear taper to the bessel and pillbox filters (def = cosine).
NOTE: the dx/dy asymmetry will apply to the bessel (def), pillbox, -B, and the gaussian-laplace edge detection filter, -EG
- Printout file contained an error in printing out the file name for the optional filter output -F[]. Also fixed an error in outputting the number of trace bytes to the optional filter file -F[]
- Corrected a coding fault for the pillbox convolution filter mode -B that occurred if -dx[] was not equal to -dy[]. The taper (if requested) around the edge of the pillbox was not applied leaving a hard edge.
- Added -mute cmd line flag to restore internal mute zones to the filtered output slices.
- Added a filter ramp length -rm[] (in records) over which the effect of the filter is linearly ramped on or off from records -s[] and -e[]. Starting from -s[] the filtered output is progressively averaged in over -rm[] records until the output consists only of filtered records. Starting at -e[] minus -rm[] the reverse operation occurs until at -e[] the output consists only of input records. The default is no ramp.
- Fixed a variable which wasn't typed properly in a subroutine.
- Program fkstrip-
- Added the option to output the Bessel filter in USP format to data set -F[]. The default is to ignore this.
- Added ramp length (ms) -ir[] to be used in conjunction with start and end times -s[] and -e[] (or header word times). This is the zone over which the effect of the filter is linearly ramped on or off from times -s[] and -e[]. From the start time (-s[] or header word time) the filtered output is progressively averaged in over this zone until the output consists only of filtered data. From the end time minus -ir[] the reverse operation occurs until and the end time the output consists only of input data. The default is no ramp.
- Added mute restore option -M to restore all mute zones present in the input data.
- Fixed a crash caused by a misplaced reallocation of the output trace buffer memory.
- Program flatten-
- Fixed a problem caused by reading in a new-style xsd pick file. This would give a useless message. Now the program will specifically tell the user to use only the old-style xsd pick format and to properly fill in the units and offsets unless overridden on the cmd line. Updated the man pages and pattern files on this topic.
- Program freqtim-
- Added dynamic memory allocation to keep this code in sync with the forward transform timfreq.
- Fixed a fatal bug in the -P option caused by conversion to dynamic memory allocation.
- Program fxbl-
- Corrected a fourier transform wrap-around problem. Also fixed a problem caused by the last temporal window position changing the length of the FFT and introducing noise bursts into the output.
- Fixed a major problem with -S the preserve scaling option. Note that this will address some of the scaling issues seen but does not address those affected by mute zones.
- Fixed a problem associated with mode=1 (record sequential) where a gather with a mute line sometimes manifested amplitude striping on output. This was caused by two factors: differing numbers of live samples in overlapping windows and preferential frequency contributions of the deeper window. The solution was to weight the shallower window contributions appropriately.
- Program fxdecon-
- When piping the output putting a QC output data set on the cmd line using -Q[] caused the program to fail to open the standard out. Now if -Q[] exists you can pipe out of fxdecon.
- In record mode, -md 1, fxdecon now uses an internal counter to determine record boundaries. Running editt -U as an input data preprocessor is no longer required with this mode.
- Program gasp-
- Found a bug which occurred when the length of a trace was smaller than the size of the line header. The longer of the two values is now used for memory allocation to prevent problems.
- Program gather-
- Unitialized variable for the multiplex -m option lead to a bogus output number of traces per record on the x86_64 machines.
- Added dynamic memory allocation for primary r/w array.
- Fixed another allocation bug.
- Program genfu-
- Large scale rewriting of this code including adding the option of reading a USP format wavelet, either a global wavelet, one wavelet per input record, or one wavelet per input trace using the new -USP cmd line flag. Many old bugs fixed. An automatic way of computing the filter delays for multiple input wavelets has been implemented. -cinv[] has been deprecated. The default mute logic is not to restore mutes.
- Re-awakened the symmetric wavelet option -sy1. This option forces the phase of the wavelet when computed from the point of maximum envelope to be zero. Note that the symmetric wavelet will have its maximum envelope positioned very close to that of nonsymmetric input wavelet. Also added to the tail end of the printout the minimum, maximum, and average of the filter delays used. This is useful for parameterizing -lg[] on a test suite of data.
- Corrected an array length problem in routine cvnfre which caused problems on the x86_64 architecture.
- Fixed an undefined index that would crash the program on some machines.
- Fixed an uninitialized variable bug which occurred when using coloured inversion file input. Also found a memory blow-out that could cause potential problems.
- The array used to hold the optional trace scale factors for a given record was allocated in the wrong place in the code. Also the amount of space allocated was dependent on whatever happened to be in a given TrcNum trace header location. This was wrong since the number of array elements was always the same: the number of traces per record.
- Fixed a problem which caused the whole output record to be dead if the first few input traces of the record were flagged dead.
- Fixed a problem with the output scaling on some data sets resulting in striping of the amplitudes across traces.
- Fixed a memory allocation problem in the routine that smooths the envelope trace used to compute the filter lag.
- Fixed a problem with the amplitude smoother that would cause program memory to grow without bound until it crashed for large data sets.
- Program gentrp-
- Fixed a problem causing odd spectral shapes when down-sampling with an output to input sample ratio that is not a whole number, e.g. -i 2 -s 3
- Previous binary had a bad unitialized variable.
- Caught two more unitialized variables that could cause gentrp to exit with a false statement about not being able to allocate memory.
- Changed the prefilter (when going to a coarser sample interval) from the Butterworth to the convolutional Ormsby since it honors zero frequency better.
- Fixed an uninitialized variable problem that could cause program crashes on some machine/compiler combinations.
- Fixed a bug that occurred when the output sample interval equalled the input sample interval. On some machines/compilers this would result in either outright crashes or bizarre behavior.
- Eliminated erroneous messages in printout file for the case of input = output sample interval.
- Program getamp-
- Corrected several problems. The old output times were one time unit too large. Fixed a problem in the interpolation of xsd picks. Added a -sw[] entry on the cmd line to import a trace header word time (which is added to the -t[] global time). Editted the man pages and pattern files to reduce confusion.
- Fixed an uninitialized variable that caused a seg crash on x86_64 machines with the Intel compiler.
- Program getval-
- Added a new option to getval for retrieving the SGRDat field from traces in a readable date form. The new flag is "-T SGRDat-V". Using the normal "-T SGRDat" will get you the integer value from the header. That value is stored in seconds since Jan 1, 1970 and some of the users couldn't do the conversion in their head. :-) Also found some code that was probably wasting a bit of time, so I hopefully speeded that up a bit.
- Modified the recently added option to correct a minor bug there the month was off by one thanks to zero-indexing. In the course of changing that, I decided to add a bit more flexibility for the user by renaming the functionality and adding a new form as an option. Using the key "SGRDat-D" will print the date in the form I had previously ( ie. 14:42:39 04/15/2007 ), whereas using a key of "SGRDat-V" produces the more verbose form - Sun Apr 15 14:42:39 2007.
- Program hdrext-
- Fixed problem with input traces flagged with StaCor=30000 causing the output traces to all be marked dead. Modernized code to accept full range of trace header words and installed dynamic memory allocation.
- Program hdrfil-
- New script.
- Added dynamic memory allocation. Removed uninitialized variable.
- Program hilb-
- Fixed an array dimension problem that caused problems on the x86_64 architecture.
- Program horvel-
- Fixed a problem in the smoothing routine that did not release memory and could cause memory used to expand without bound.
- Program horvel3d-
- Fixed a number of pick read problems. Velocity fairway pick formats now include flat file format (3-col lines: time, velocity, rec number) with a negative time terminating each of the two functions. The record number can be anything.
- Also added the capability to read horizons in USP format. Each horizon will be a record. The number of traces/rec must be equal to the number of survey lines and the number of samples/trace must equal the number of survey crosslines.
- Added -LIDI flag to reference survey spatial locations using the LI (LinInd) and Di (DphInd) trace header indexing. With this mode you must specify -limin[] -limax[] -dimin[] -dimax[]. The default is to reference survey locations with XYs.
- Fixed several printout reports that were confusing and added others for -V (verbose) to better diagnose possible indexing problems.
- Fixed an unitialized variable that for cases where no semblance events could be picked resulted in a segmentation fault.
- Fixed a second unitialized variable.
- Upgraded the printout to be more readable and provide more information on the operation of the picker. The QC horizon semblance xgraph format plots now go to a separate -Q[] data set rather than stderr.
- Fixed a memory allocation bug in the semblance smoother.
- Program hthresh-
- New code: generates a record constant amplitude threshold consumate with a user defined percentage of area under the amplitude histogram curve and installs said threshold in a user defined trace header slot.
- Program ikp (see XIKP)-
-
- Program killtr-
- Upped the possible number of samples / trace.
- Program maxamp-
- Corrected RMS calculation.
- Program median3d-
- Corrected problem with naming the -O[] output file, documentation and pattern files.
- Program mixn-
- Added an FFT-based smoothing option -F. This allows both odd and even smoothing lengths and has generally better high frequency response than the default convolutional smoother. A downside is that this FFT smoother does not allow weighted smoothing, i.e. -F automatically sets the weighting to 1.
- Fixed a memory blowout that sometimes resulted in a seg fault.
- Added a -Z option to strip out trace zeros prior to filtering. These zeros are restored before the output traces are written. Also added trace header word entries -hws[] -hwe[] for optional start and end times. This will allow filtering between horizons.
- Program mixrec-
- Added median spatial mix option, -M. The default is still the convolutional mixer.
- Fixed an uninitialized variable problem in the median option which could cause a program crash. Also added an FFT-based smoothing option -F. This allows both odd and even smoothing lengths and has generally better high frequency response than the default convolutional smoother. A downside is that this FFT smoother does not allow weighted smoothing, i.e. -F automatically sets the weighting to 1.0
- Replaced hardwired arrays with dynamic memory allocation to remove likely array dimension problems.
- Program mute-
- Fixed uninitialized ier variable
- For mute -R (restore mode) the on and off mute times to be extracted from the trace headers were not initialized to zero which could have caused problems.
- The nramp length was off by one sample.
- Program mvstak-
- Added two new cmd line args: -hws[] refers to an integer trace header word containing a shift time (in sample units) to apply to the input trace relative to the output trace prior to any arithmetic operations. Default is to ignore this parameter. -ns[] refers to the length of output trace override (in sample units) and which deafults as before to the number of trace samples in data set 1. Both these additions are general in nature but address the spectral inversion processing flow for running windows. Using these parameters it will no longer be necessary to expand all the individual inversion window data sets to the final output trace length with padded zeros prior to stacking. This will have large savings in disk space and considerable savings in processing time.
- Added a check to take care of a possible problem dealing with negative shifts when using the new -hws[] -ns[] cmd line args.
- Fixed an array initialization problem that could throw bizarre values into the output traces.
- Added the Nth root stacking option: -exp[] will cause the sample values to be raised to the exp power prior to stacking with the final stacked samples raised to the 1/exp power. exp must be in the range 0 < exp < 1.0. The effect is to reduce the influence of noise on the stack thereby boosting coherence. An additional effect is to sharpen the wavelet albeit in a nonlinear way. Default is normal stacking.
- Fixed incorrect normalization for the -m (traces) mode. The default mode worked fine.
- Added an ignore -I option to ignore mismatched numbers of samples/trace on the input data sets. When flagged -I the mismatched samples will be reported but the program will continue running padding those traces to fit the maximum number of input samples per trace.
- Added a -S option to do semblance weighted stacking time point by time point over all the input unit traces.
- Increased the length allowed for file names from 512 to 2048
- Fixed a file format read error that could truncate very long files names. This is for the mode where input file names are input using a -F[] file of file names.
- Program myds-
- Bug fix. Incorrect check on return status from open() call could cause program to mistakenly error exit.
- Program navmerge-
- Fixed a bug in handling card decks with multiple shot/receiver sets.
- Program pad-
- Added the option -B to believe the indexing information contained in dead traces. The default more is to ignore dead traces altogether.
- Added an option to locate the dead trace gaps within each gather and fill them. To use this mode you will have to specify -J[] the trace header word to use to locate the gaps and -js[] -je[] -ji[] the start and end and increment of the header word values. These limits are used to set up a grid within which the gaps and the number of dead traces within each gap are computed. The number of output traces per gather will be given by [je-js]/ji + 1. js and ji will default to 1. je can not be defaulted. Note: you will still be required to put the total number of records or gathers expected using -nrec[] Leaving off -J[] will cause the padding to put all dead traces at the end of the output gather.
- Program picker-
- Fixed a memory growth problem in the shift smoother that could cause the memory requirements to grow without bound.
- Program pnmo-
- Changed the internal handling of -hw1[] and -hw2[] so that the header words can be short integers, integers, or floating point values.
- Program polymute-
- More bug fixes regarding mis-typing of variable between routines. Old array allocation routines were converted to newer routines which are easier to debug.
- Program pred-
- Fixed a dimensioning bug in the time varying option. Added dynamic memory allocation. Deprecated the -flt flag (automatic detection of the type of header work used, e.g. short integer, float). Fixed some long standing errors in the online help, man pages and pattern file.
- Found one other hard coded array clear.
- In the time varying code, the correlation method was change and 2x speed increase achieved.
- Removed an arbitrary trace length limit that was a holdover from the old non-dynamically allocated array code.
- Time varying -TV fixes: bug for windows approaching the length of the input traces could cause unpredictable results on different machines. The d-c removal from each sliding window is now optional and is turned on with -DC on the cmd line. The convolution for each window position is now done using the faster fold routine.
- Fixed another uninitialized variable that caused pred to go into a zombie state on some machines.
- Program presort3d-
- Fixed a few bugs in the original code, also added capability to deal with very long indices [double precision] and added dynamic memory allocation of read buffer so that very long traces can be handled. Fixed bug in print file report which had record wise fold report out of sync by one record.
- Modified the format for the presort3d table to fix a bug where parameters could conceivably be printed out with no separating whitespace
- Program radonf-
- Initialized some variables that could potentially cause problems running on some architectures.
- Forgot an unitialized variable.
- To prevent problems caused by values of mmin, mmax, xmax, and zref exceeding the capacity of the old line header words used new LH words have been created specifically for radon use which will allow floating point values to be stored. In order of the above parameters they are: RaMmin, RaMmax, RaXmax, RaZref. The reverse transform radonr will check these values first for validity and only if they do not contain valid values will it check the old header words. The radonr printout file will tell you which set it used. Hopefully this will allow legacy radonf data to be reverse transformed by the new radonr.
- Added the option to input the mnemonic for trace signed distance using -HW[] on the cmd line. This allows users to use full integer or even floating point trace header words. Default is DstSgn. Note: the fast counterpart fradonf is being worked on
- Program radonr-
- Initialized some variables that could potentially cause problems running on some architectures.
- To prevent problems caused by values of mmin, mmax, xmax, and zref exceeding the capacity of the old line header words used new LH words have been created specifically for radon use which will allow floating point values to be stored. In order of the above parameters they are: RaMmin, RaMmax, RaXmax, RaZref. The reverse transform radonr will check these values first for validity and only if they do not contain valid values will it check the old header words. The radonr printout file will tell you which set it used. Hopefully this will allow legacy radonf data to be reverse transformed by the new radonr.
- Added the option to input the mnemonic for trace signed distance using -HW[] on the cmd line. This allows users to use full integer of even floating point trace header words. Default is DstSgn. Whatever is used must correspond to that used in radonf. Note: the fast counterpart fradonr is being worked on.
- Added capability to interpolated user specified trace header words when regridding the output x-t data, i.e. -R -dmin[] -dmax[] -dx[]. The header words are specified by repeated uses of -hw[] on the cmd line (see equaldx). Also you can now specify either cubic spline interpolation of the header words (default) or -type linear for linear interpolation. Note: the fast reverse radon code fradonr is being worked on for the same mods.
- Program ramp-
- Greatly expanded functionality to support trapezoidal ramps as well as triangular. By specifying a second middle hinge point -d[] as follows -ns[] -c[] -d[] and last -ne[] a trapezoidal weighting function can be defined. Also -T will apply the ramp on each trace (default is to apply it spatially across a record). With -T the control points will be in local time/depth units, e.g. ms. Flag -TS will also apply ramp tracewise but the control points will be in samples. In default record mode the control point will be in sequential trace number within the record. Additionally -S1 and -S2 will allow resetting the leading (1-->ns) or trailing (ne-->last) parts of the ramps to either zero or one (if -U was specified). This allows accept/reject on the ends of the weighting function regardless of what the central portion of the function is doing.
- Program rand-
- Fixed the online help which was missing the trace-by-trace static flag -stat. Also fixed updated the man page which somehow had dropped this also and corrected a typo in the pattern file.
- Added a diagnostic at the end of a rand run: report the average signal power, average added noise power, and the average signal to noise ratio. If -V is on the cmd line this report is sent to stderr as well as to the printout file.
- Fixed a format problem in the final stats report.
- Added some more global reporting items for rand -V:
- average signal and noise absolute amplitude
- average signal and noise power
- average signal and noise rms and signal + noise rms
- average S/N ratio based on power ratio
- average S/N ratio based on abs ampl ratio squared
- average standard deviation based on (abs amp/SNR)
- Corrected a problem in computing the random number seed for each trace which could result in subtle low level spatial patterns being introduced into the random numbers.
- Fixed a memory allocation problem.
- Random statics options: fixed an array pointer that would go out of bounds. Also added the capability of using floating point trace header words for statics storage. Changed the format of the -V printout values to be more readable.
- Program replace-
- An option advertised in the man pages was never actually implemented in the code itself: -h4scale on the cmd line will scale (rather than replace) samples between times -hw1[] -hw2[] with the value found in -hw4[] trace header words.
- Corrected a problem caused if the user defaults start/end time header words -hw1[] -hw2[]. On some machines this would caused uninitialzed variable problems. Now these default values are time zero and the trace length in time/depth units.
- Fixed several options that showed a one sample error when using start/end time contraints. Standard uncontrained replacement operations were not affected.
- Added -abs flag to the cmd line. This will cause the -min[] or -max[] limits to use the absolute minimum or maximum value below or above which sample values will be replace by -value[]
- The action on dead traces (StaCor=30000) has been changed: dead traces will now be passed untouched. Previously dead traces were zeroed prior to output
- Added a blurb in the BUGS section of the man page to inform the user of potential conflicts with a system utility of the same name. In that case, "usp replace" can be used to force execution of the USP module. Otherwise, the user's path or the path within the processing script should be modified to search /apps/global/bin prior to /usr/bin.
- Program rest-
- Added an option to shift (or phase rotate or amplitude scale) all input traces with a global value -g[]. If this is a nonzero value then it will superceed any value found in a header word.
- Added -nomute which turns off the FFT wraparound on/off mute restore. For some types of data, particularly synthetic data with sharp boundaries like spikes and step functions, the FFT shift engine will leave amplitudes in these mute zones. Normally these amplitudes will be stripped out but the option to keep them should be available.
- Replaced the fft wraparound on/off mute with a mask that will also restore internal mute zones as well as on/off. Internal mute zones can be contaminated with numerical noise from the fft transform required to do fractional shifts. So the solution is to compute a mask of zeros and ones based on the input data, apply a shift to the mask using a linear oversampling plus an integer shift and then multiply the shifted data by the mask.
- Program revtr-
- Added an option to pivot traces by a time given by -rt[] on the cmd line. Times positive push the trace down by that amount with samples that run off the bottom of each trace flowing back to the top of the output trace. Times that are negative cause the trace to move upward with samples that are pushed off the top flowing to the output trace bottom. This is like the traces are wrapped around a cylinder which is being rotated clockwise or counter clockwise. Shift times that convert to integer samples just do a sample shift. Times that convert to fractional samples use a phase shift FFT method (which may distort the wavelet). The default is to ignore this option.
- Added dynamic memory allocation.
- Program rhgain-
- Fixed a bug in the mute replacement code wherein zeroed traces led to an unpredictable math error.
- Fixed a bug which could cause program termination in certain data cases.
- Program rmmult-
- Initialized some variables that could potentially cause problems running on some architectures.
- The -S[] optional output line header contained the wrong number of output samples.
- Fixed problems with the output of the optional omega-p spectrum data. Added -T option to optionally output the forward radon tau-p transform to -O[] to bring this code in sync with frmmult. This tau-p output can then be input to radonr or fradonr.
- Added the option to input the mnemonic for trace signed distance using -HW[] on the cmd line. This allows users to use full integer of even floating point trace header words. Default is DstSgn.
- Program rnum-
- Added simple 3D renumbering: -3D -limin[] -lidel[] -dimin[] -dimax[] -ndi[]
- limin is the starting LI (inline) number to insert in LinInd trc hdr word. The default = 1
- lidel is the LI increment. The default = 1
- dimin is the starting DI (xline) number to insert in DphInd trc hdr word. The default = 1
- didel is the DI increment. The default = 1
- ndi is the number of xlines (DIs) for each LI (no default if -3D selected)
Each input record will have the DI changed according to the dimin and didel entries. The LI will remain the same (according to the limin and lidel) until ndi DIs have been changed. Then the LI number will be incremented and the process repeated for the next ndi gathers. Only the LI and DI trace header words LinInd and DphInd will be affected. This renmubering option can be used in conjunction with the other options in the program or all by itself.
- For the -3D option added the capability of updating any trace header word using -HWDI[] -HWLI[]. The defaults for these are, respectively DphInd and LinInd.
- Program rotate-
- A bug was found wherein the record and trac start/end times were uninitialized. This could cause erroneous output dimensioning.
- Program rotaten-
- Fixed the code to prevent an erroneous attempt to close a USP I/O unit that was never opened.
- Program rsort-
- Increased program capabilities to handle very large number of traces per record.
- Modified the code to use a default of 10*ntraces as the number of iterizations to use attempting to build the randomization vector. This may also be set by the user by passing in a value via -iter on the command line. Modified man page and pattern file reflecting changes.
- Program samps-
- Fixed a bug wherein XY output data was not piped correctly. This led to a new option '-xgraph' to insert xgraph formatting between sets of data points. I also changed the start,end trace flags from -ts,-te to -ns for start and -ne for end to match most USP codes. The old flags are still recognized for backwards compatibility.
- Program saneusp-
- Fixed unitialized variables.
- Corrected a problem in the output ascii spectra file -S[]. If the input had multiple gathers the spectra from each record were not separated from the previous ones making the xgraph file confusing unless editted.
- Added a cmd line input -pw[] to input the percent prewhitening used in the S/N calculations internally to prevent numerical problems. Explanations of this input are a bit involved so if used the user should first consult the man pages. Default is set to the old value of 1% which limits S/N calculations to about 20db.
- Added -nonorm option so that the -S[] spectrum xgraph file shows an absolute db scale rather than the default db down scale. This is useful when comparing saneusp spectra to say ampspec -PWR spectra (since the saneusp spectra are power you must tell ampspec to output power). A bit of caution should be exercised in comparing these spectra since the ampspec output is signal + noise whereas saneusp outputs the estimated signal and noise spectra separately.
- Added a new S/N ratio output file -R[] which outputs a S/N measure (described in the man pages). Like the output signal & noise spectrum file this will be displayed by running usp-xgraph.
- The man page incorrectly stated the default prewhitening was 0.01% whereas it is actually 1.0%.
- Program sc3d-
- Bug fix. Incorrect check on return status from open() call could cause program to mistakenly error exit.
- Fixed two more bugs. One was a memory blow-out where the arrays had been allocated too small. The other was the usage of a previously equivalance'd array which was no longer appropriate.
- Added a "-disco_only" flag to limit output to that normally created in the .disco file when "-disco" was flagged previously. The file name is that specified via -O, and no other output format is produced.
- Program scan-
- Added -J option to do a summary with histogram for the entire data set (-S does it for each input record).
- Added a -O[] optional output file to capture the histograms in 2-column usp xgraph format. The curves will be labelled with the record number for -S and with the record and trace numbers in the case of -v (trace-by-trace analysis). The X-axis will go from the minimum amplitude to the maximum amplitude. The Y-axis of course will be the count in each bin.
- Modified the man pages for scan, utop, and getval to reference program hdrdesc for up-to-date info on line and trace header info.
- Program sc3d-
- Added a "-disco_only" flag to limit output to that normally created in the .disco file when
"-disco" was flagged previously. The file name is that specified via -O, and no other output
format is produced.
- Program scope3d-
- Corrected a mis-typed array in the least squares fitting subroutine used for the calculation of several attributes in this code. This could have caused problems on some architectures.
- Program sctvf-
- Corrected a dimensioning problem when decimation is used.
- Fixed an uninitialized variable bug which caused dynamic memory allocation to fail on x86_64 architectures.
- Program segy2usp-
- Modified code to properly handle values stored using IBM float type in the "Spare" area of the SEGY trace header. These can now be referenced using the SpareF4ibm[] mnemonics.
- Fixed a couple of bugs regarding translation of the EBCDIC header from the segy dataset into the USP HLH and another bug having to do with the initialization of single byte ascii entries in the USP headers. This code also contains an early version of line and trace header mappings for data that is not in the default SEGY type for a given mnemonic. Documentation on this feature will be forthcoming after I iron out a few more details. If you have an immediate need for this functionality, contact me for the details on how to map those. - Joe
- Added two new options, -fmtcode and -nsamp, for overriding values on the incoming SEGY dataset. The man page has been modified to reflect these changes as well as document the recent addition of new mnemonics for pulling data of any type from generic locations in the SEGY line or trace header areas.
- Fixed a potential memory blow-out that occurred when the SEGY EBCDIC header contained a full population of characters.
- Added SEGY format 8 capabilities.
- There was a major flaw in my logic on mapping values out of the areas of the SEGY line and trace headers prior to the "Spare" areas. The logic was fine for big-endian machines like the Sun, but on Linux, the headers were getting byte swapped up front based on the assumed SEGY layout and that caused major problems. I believe I've corrected the issues and also eliminated all warning messages on identical duplicate mapping specified by the user.
- Fixed bug which rendered -nsamp command line option inoperable. This new version also has much more robust data conversion checking and handling.
- Fixed a problem with garbage characters in the printout file name.
- Program shape2-
- Increases memory usage in subroutine to allow for longer filters and lags. >
- A major re-write of this code:
- in addition to the global data and model start and end times, trace header word start times -hwd[] and -hwm[] were added for the data and model respectively. These times will be added to whatever is in -s[] and -ms[] cmd line entries.
- There is a major new mode, -TV for time varying where one can specify -w[] window length and -o[] window step size. The results in the overlap zones will be linearly blended.
- The command line flag -Z will result in a zero phase operator being applied, just like shape2_lsub.
- Command line entries -n[], -r[] -S -J have been removed.
- Also hardwired arrays have been replaced with dynamic memory allocation.
- For the zero phase option -Z with a requested filter taper the taper should be applied to both sides of the filter.
- Several arrays are now zeroed out prior to each filter calculation. This will probably not result in much difference but this is the safer way.
- Corrected two major problems: record constant mode (one model trace per input gather) did not work. Also dead model traces should not cause the program to stop. Now if a dead model trace is encountered the corresponding input trace (or traces) are passed unfiltered. Only in the case of a single dead model trace per input data set will the program stop.
- Fixed an uninitialized variable problem that resulted in a bogus report of the amount of memory used by the program. Fixed a double multiplication of an array size that caused the program to allocate four times the memory needed.
- Added phase only -PO option to the filter calculation. This applies to both the time varying and single design window modes.
- Fixed a problem with the time varying -TV mode: if the sliding window process runs out of model trace samples before it runs out of input data samples the resulting output had trailing zeroes. Now the last computed filter is applied to the end of live samples on the input trace.
- Fixed a potential dimensioning problem if the model traces differ in length from the data traces.
- Program sisort3d-
- Fixed code error that resulted in the default sort failing when sort indices were greater than 10MM. Routine is now compatible with old and new sort table format coming out of the upgraded presort3d.
- Program smooth-
- The program blew out on a very long flat file. Now has dynamic memory allocation.
- Fixed several uninitialized variables that could result in crashes on some machines/compilers.
- Fixed a typo of a variable used in allocation of memory in USP mode.
- Program smoothvol-
- Fixed an array dimension problem which would cause unpredictable problems with the output.
- Converted remaining hardcoded arrays to dynamic memory allocation to avoid possible dimension problems.
- Extensive rewrite:
- added option to input cell dimensions dx & dy so asymmetric filters could be built for dx/dy that differ (no effect if dx=dy).
- added option to apply pillbox filter (1's within pill, zeros outside).
- added optional linear taper to the bessel and pillbox filters (def = cosine).
- added the option to output the filter applied, -F[]
These mods upgrade smoothvol to almost the same functionality as fkkstrip. NOTE: the dx/dy asymmetry will apply to the bessel (def) and pillbox, -pill filters.
- Added -mute flag to the cmd line arguments to restore all internal and edge mute zones. The default is to not restore mute zones.
- Program spacetrp-
- Added -FH flag to force interpolation of all trace headers, live and dead. This is for data where even dead traces have to correct header information and some attempt is made to interpolate them onto the new grid. The default is to interpolate only live trace headers. NOTE: interpolating trace headers is generally problematic so care and testing should done to ensure the output headers are correct. If they are not then other header word tools must be used after the fact to fix any problems.
- Program spec-
- Added an optional means of inputting a phase reference time -rt[] in ms (or us) to go with the -phase mode. The time is with respect to the start of the window and may be any value from zero to the length of the window in time. The default phase reference (rt = 0.0) is the window start.
- Added code policemen to guard against bogus start/end -s[] -e[] window times. Issued warnings in the printout file detailing any default settings of these times.
- Program specal-
- Modified to correct a problem in variable typing on 64 bit machines that was causing seg faults. Also fixed a bug pertaining to incorrect color mapping when crossing platforms, ie. running from a Linux box to a Sun Citrix session.
- Modifications to fix problems with color palette loading and color editor apply functionality.
- Fixed some problems in the color editor. Added a command line flag for specifying max number of colors in palette as well as options for handling the colormaps on 8 bit displays.
- Program splitr-
- Fixed an unitialized variable on x86_64 which caused the basic rotary function of splitr to break. It would do very odd things but most common would be to split up each input record into chunks of traces and then send those through the outputs or sockets. In any event your downstream processing would be totally trashed.
- Installed dynamic memory allocation to keep code in sync with last release of gather. Also increased file name size limits.
- Fixed a bug that was truncating file names specified in a file via -f.
- Program sr3d1-
- Changed default entries for -amax to be consistent with the histogram bining function used so that the last bin actually includes angles up to 360 degrees. Previously the routine ignored source-receiver angles from 352.5 to 360 degrees.
- Program sr3d2-
- Added timing stats so user can see remaining time to completion.
- Fixed ieee_handling exceptions.
- Tweaked buffering to output files.
- Major retool of sr3d2 to utilize new -memory flag for usage on the machines where enough memory is in place to allow for the buffering of the sr3d2 volume in memory. This gets around the small buffer random seek disk I/O contention that started up in cases where disks were not locally mounted. Run time are now on the order of minutes rather than weeks.
- Tweaked timing reports and cleaned up a few left over debug statements
- Program stack-
- Fixed a problem with trace headers output in the case of a completely dead input gather. In this case stack attempted to put stuff in the output headers that certainly did not make sense for 3D data. Now the output trace headers for dead gathers are an overlay of the input headers - if these are correct then the output should be correct also. If not you will have to address that with some index correction post-stack.
- Fixed unallocated use of the logical variable attribute which caused unpredictable output on many architectures.
- Added options -Gem and -Har to do geometric mean stack and harmonic mean stack respectively. Converted an array from hard coded dimension to dynamic.
- Program stft-
- Fixed typo in man page reference to -TF option for time-frequency relative trace output.
- Program stolt-
- Fixed an unitialized variable.
- Program storeit-
- Bug fix which could sometimes cause the type of card input specified to be in error. Also modified the code for the disco option to try to automatically detect source/receiver static type from data cards if not specified by user.
- Program sync_vel-
- Added two new flags: if the LinInd in both data sets is decreasing then enter -lirev on the cmd line. If the DphInd index in both data sets is decreasing then enter -direv on the cmd line. The original default assumes the LinInd and DphInd of both data sets are increasing.
- Program synth-
- Modified the code to fix a potential problem in using a free'd bit of memory in certain data cases.
- Program taupred-
- Added dynamic memory allocation as in recently updated pred and avepred.
- taupred now has much of the flexibility as pred. It can now extract prediction distance, operator length and start times from the trace headers. Also the arrays used internally have dynamic memory allocation. Several unitialized variables that could cause problems on some machines with some compilers have been fixed. Also fixed was a bug calculating the prediction distance scaled by the cosine of the tau-p angle of emergence.
- Program tdecon-
- Fixed a problem that prevented a user from specifying start/end scales the same with -sn1, i.e. no optimization of the operator.
- Fixed a unitialized variable problem in the -blend (non-targeted) mode.
- Corrected a bug in the code that caused a portion of the trailing part of the output trace to be zeroed out with the amount dependent on -s[].
- Fixed the undefined variable problem that caused the output to look exactly like the input.
- Removed an erroneous restriction on the number of samples processed in tau-p mode for the default targeted decon operation. That restriction will still hold for the -blend mode.
- Added an option for tau-p data [ -TP ] to mute out data lying beyond reflection times as defined by the velocity and ray parameter. -TM triggers this option on. The default is to leave these data untouched from the input.
- Fixed a problem in tau-p [ -TP ] mode when the ray parameter goes beyond the critical angle defined by the ray parameter and the input velocity. At this point and beyond the tau-p decon parameters are undefined and the output should be zero.
- Added -crit option to preserve data in tau-p mode beyond critical angle as defined by a user input velocity. Data in this zone will be passed unprocessed. -TM will cause these data to be muted. Note that if the user defaults the velocity to that implicit in the forward radon transform the critical angle will automatically be the last trace of the tau-p spectrum and so -crit will have no effect.
- For the tau-p mode, changed the meaning of the mute flag -TM. Now if there is no mute requested, i.e. no -TM, the decon operation for each trace is carried out down to the last sliding window position rather than stopping at the retarded tau-p end time. This was the operation a few versions ago. There was no reason to stop the decon since the data past the retarded end time is mostly transform noise anyway. -TM will of course zero out this zone.
- The x-t mode now follows the same logic for the muting flag -TM as does the tau-p -TP mode: for -TM the data beyond the end time for a given trace will be muted, otherwise the decon operation will be applied to the natural end of the trace.
- Corrected a minor error in -TP tau-p mode that calculated the number of sliding windows for each trace. This number did not take into account that the window length itself is adjusted by the cosine of the emergence angle for the trace. In general this means more windows at the higher angles however for typical window lengths, e.g. 200-300ms), this discrepency went unnoticed. Also added more information to the verbose -V output to aid in diagnosing behavior for each input trace.
- The very long window and prediction lengths of a recent example highlighted another problem. The output data after the last window position were zero. Samples after the last window's processed sample and subsequent samples down to the end of the trace should be the input sample values, not zero. For relatively short windows this zeroing effect was not very noticable but for very long windows it was obvious.
- Fixed a couple of minor indexing problems. Modestly decreased the run time with a small coding efficiency.
- The sliding window length, lslide, was short by one sample. This combined with ifirst and ilast conspired to miss deconvolving the last sample per window position. Generally not noticable on real data. A check was necessary to make sure that the design window was at least as long as the prediction distance + operator length + window step. If not the window length for this trace needed to be increased accordingly. Use of the zero crossing method of computing the prediction distance is not supported in the current version. The internal machinery is in place to do that if a practical way can be found to utilize this. Currently the code errors out on detection of this mode. After optimizing the operator the application is now done only on the current window, not the entire trace as before. The resulting array is loaded into the pre-output array using a counter local to the current decon'd window. This results in a little bit of computational speed-up. In consultation with BP users it was determined that after we run out of design windows for the current trace the last optimized operator would be used in any application zones that remained on the trace. If there are any samples still left on the trace after these have been exhausted then the remaining input data is simply copied.
- Program tfskill-
- Fixed several bugs that caused the code to fail on Linux machines.
- Changed the default trace header words used for indexing the stats file to hw1 = RecNum and hw2 = TrcNum. Because of the way the indexing machinery works currently pointers into these arrays are determined by the actual index values which could cause segmentation crashes if the index values exceed the length of the array space allocated. Until this is a little better constructed users are encouraged to use these default header words or header words that are numbered sequentially.
- Corrected a bad indexing situation in QC mode: previously the indexing was done on whatever values were found in -hw2[] (usually TrcNum). This was fine if that indexing was always sequential but caused segmentation crashes if this wasn't the case. Now this indexing is internally computed.
- Fixed a potential divide by zero in the AutoDetect routine which would result in a NaN in the stats file and would then bomb the xsd pick creation in qc mode if a zero mean was found.
- Program tim2hed3d-
- Fixed problem outputting the USP format QC file.
- Program timfreq-
- Added -rt[] cmd line entry for a phase reference offset time. Default is the center of the trace window.
- Corrected an array problem for the new option to change the phase reference time, -rt[]
- Modified the phase reference time to work with fractional values. Added dynamic memory allocation for all arrays.
- Removed a duplicate allocation statement in the code building memory.
- The FFT normalization was incorrect for changing the phase reference time -rt[] when going back to time using freqtim. The default timfreq ... | freqtim was unaffected.
- Program transp-
- Fixed a memory blowout caused by a hardwired array dimension - code now uses dynamic memory allocation.
- In the dynamic memory allocation I forgot to include the trace header length.
- Found one more potential problem and fixed it: the array used for reading the line header was used in the routine to skip records prior to being re-allocated for memory reading traces.
- The start and end time selection was off by one sample too early.
- Fixed a case where for an input sample interval of 1 the number of output samples was one short.
- Program tstretch-
- Stripped out the old mapmem array allocation machinery in an effort to find a memory blowout, which was found and fixed.
- The man page was also found to be out of date and has been replaced with a more recent version.
- Program ttothen-
- Added -DB option which applies a -exp[] db per second (or per 1000 depth units) scaling to the data. Also added -tmax[] for all zero offset scaling options to cause the gain curve to be a constant after this time (ms or depth). Internally also added dynamic memory allocation.
- In inverse -I mode and -tmax[] on the cmd line the inverse gain curve was not being computed properly below tmax.
- Fixed a memory problem in the velocity smoothing routine that could cause a memory overflow condition.
- Program tvcross-
- Added the shift limits -smin[] and -smax[] to the step mode as well as the -cont continuous mode.
- Corrected the error message issued if the two input data sets have mismatched sample intervals.
- Program tvfilt-
- Added back in the ormsby filter option upon request.
- Fixed confusing inconsistency between the online help and man page (also pattern file help) describing the -lw[] sliding window length cmd line parameter.
- Replaced old defunct code with the latest version. This version offers not only the -ormsby and -blend butterworth stepped window approaches but also a continuously varying butterworth filter scheme (default).
- Program uman-
- Modifications to USP scripts to account for differences in man page functionality between operating systems. In particular, this should fix the "uman -k" operation on SUSE installations.
- Program usp-osarch-
- Added detection for SGI Altix systems.
- Program usp-set-env-
- Added environment variable USP_AUDIT_HOST to script to be used for new feedback routines distributed in December.
- Change from machine name to IP address on auditting system.
- Program usp2hdr-
- Using the reverse mode -R caused the code to erroneously attempt to close a nonexistent -M[] file which is not used in the reverse mode.
- Program usp2segy-
- Modifications made to code to store away IBM float format data into SEGY headers using the SpareF4ibm[] nomenclature in mapping declarations.
- Added a hook for depth data where SmpInt is passed along unmodified if UnitSc = 1.
- Fixed a bug where the TrcNumSmp and TrcSmpInt in the output segy would be incorrect on every other trace unless explicitly mapped.
- Also fixed a bug on the printout file name when the machine name was longer than 8 characters.
- Refer to segy2usp for more information
- Program uspstats-
- Added the mean absolute amplitude to the final stats report.
- Program vaplot-