FreeUSP Release 1.02 Patch 4

    This patch contains program fixes and enhancements as follows:


    • Program segy2usp -

      Changed the default map so that NumRec will be set to 2147483647 unless overridden by the user. The previous default was 999999, which could inadvertantly cause truncation of data on large dataset upon passing through the first USP code that actually believed that entry and trucated the data based on that.

    • Program gasp -

      Added -threshold[] option to allow user to specify a maximum absolute amplitude to use in the calculation of the default AAA scalar.

    • Program hthresh -
      New routine to perform amplitude histogram and determine amplitude associated with user defined percentage of area under the curve. Written for threshold determination to be used with wfilter [wavelet coefficient thresholding]. Threshold amplitude is written to user definied trace header slot.

    • Program pred -
      Fixed problem in the option to output the predictable part of the data caused by mis-application of the filter coefficients and an incorrect delay. Note: only the -S flag is affected; all regular applications of pred were not affected. Folded in several coding errors received from freeusp. These were not fatal but could have caused problems for some data sets, paramter combinations or new machine architectures. These fixes impact -C or -B weighting.

    • Program avbu -
      Fixed problem piping into avbu. Enabled option to output a fourth trace which is a measure of the bias of the fitting process, i.e. a measure of the quality of fit. Values range from 0 - 1

    • Program vxos -
      First release of our graphical velocity picker. Linux version is still a bit flaky, but semi-functional.

    • Programs bdmute,fkstrip,vred,hdrswap -
      increased I/O buffers for long traces.

    • Program avgain -
      New option to remove the average amplitude rather than defining a multiplier to put it at a constant level.

    • Program attin -
      Added option for Walden's robust fit for the 2-term equation. Corrected error in computation of 3-term fit. Corrected an error in computing attribute 5 (density).

    • Program smedian -
      Corrected problem with -st option caused by invalid values being passed into recrw subroutine used to pass unprocessed records. Fixed dimension problem and removed debug statement. Changed the smoothing window length logic: now the cmd line parameter specifies the half window width, i.e. the full width = 2 * cmd_line_value + 1. Also added an optional cmd line parameter -zsme[] which specfies the temporal half smoothing length at the bottom of traces. The temporal window is then linearly interpolated with time between -zsm[] at the start of traces down to -zsme[] at the bottom of traces. Default (no -zsme[]) is constant -zsm[]

    • Program notch -
      Changed power entry to accept floating point values. This allows the user to input power values less than 1.0 to damp down the attenuation at the notch if desired.

    • Program fkkstrip -
      Added option -FT to fit surface to time slices using either least squares (-L2) or robust algorithms. The order of the surface is specified as well as the option to remove an average from the fitted surface. Output is either the fitted surface or the residual. An additional median option -MM has been added which does a fast 1D x 1D calculation within each window, -l[] square. -M still triggers a full 2D median calculation within each window but this can be up to 50x slower.

    • Program rmo -
      Added CrwNam entry of RMOFOR to -afile output dataset so that subsequent iterations of rmo recognize that dataset as a valid gamma volume.

    • Program phzrot -
      Added option to read a phase data set whose sample values are phase. The phase rotations are done on a sample-by-sample basis. There can be a single phase trc for the whole input seismic data set, one phase trace per seismic gather, or a phase trace for every seismic trace. The number of samples per trace and the sample interval must be the same for both input data sets. For the optional phase input data set the cmd line parm -r[] becomes a phase scaler.

    • Program anmo,rost -
      Found a variable getting used without ever getting initialized. This slipped through the cracks because a value of zero was expected and this usually occurred by luck of the draw.

    • Program polymute -
      Added an option to polymute [-partial] which will take a regular mute pick, ie. a line such as might be used with bdmute, and convert it to a polygon for use with polymute. You can now pick a multi-valued mute which would crash bdmute and feed it to polymute with the -partial turned on. Polymute will extend the last pick down to the base of the record, over to the base of the record at the first pick and close the polygon at the first pick. This is great for those pesky mutes on gathers around salt bodies that demand a multi valued solution. Added a policeman to watch out for zero indexing in RecNum. Added code to cause polymute to assume sequential numbering on the RecNum entries should the first RecNum be a hard zero.

    • Program bytknt -
      Public release of code used as diagnostic tool in USP data flow problems. This is used primarily in IKP nets to catch bottleneck situations.

    • Program corners -
      This code was built to service a particular grid orientation and failed to install the correct fringe when grid orientations other than those it was built to handle were used. The current fix was to add in logic to allow arbitrary grid orientation on input.

    • Program usp2hdr -
      Fixed bug which caused routine to end prematurely if -hwrec[] or -hwtrc[] were defaulted.

    • Program tfdnoise -
      Fixed a bug in the get threshold suboutine that would cause garbage to be used in the median of medians calculations when the minimum subband specified on the command line was less than 1. Since almost all applications of tfdnoise to date have utilized constraints on max subband only, this is not a disaster but it is nice to have it fixed. The bug was reported by Larry Adorjan [Ex Amoco Canada/ currently Kelman].

    • Program anmo3d -
      Added option to read in an LI/DI increment. Fixed problem of dealing with traces that fall outside survey boundaries: now these traces are dropped and a message is written into the printout file. Added option to drop traces that have a corresponding velocity trace that is all zeroes, i.e. outside the survey but within a squared off velocity cube. Added the option to read in a coarsely samples velocity trace and interpolate internally. This is done automatically when a coarser sample interval is detected in the velocity cube line header. The option -drop will cause input traces outside the survey boundaries defined on the cmd line to be dropped from the output stream or if a zero velocity is encountered the trace asscociated with it will be dropped. Otherwise all traces will be kept but those meeting the above criteria will be zeroed out. This will keep records of constant number of traces as the default. Printout file was misnamed; corrected misleading report about dropped traces; several minor fixes.

    • Program mixn -
      Median option now uses a fast algorithm (about 10x). Added print statement to let user know where a memory fault occurred.

    • Program mute -
      Increased the dimension of the trace vector to handle much longer traces.

    • Program recshift -
      Added an option to read in records with already existing shifts in trace hdr words and compute the average of these shifts and write the result back into the hdr words. This option is done on a record-by-record basis.

    • Program saneusp -
      A request has been made to update USP routine saneusp< Reason: Fixed code to handle sub-millisec input sample intervals.

    • Program putsis -
      Fixed online help and man pages to describe -F -v[] fill option

    • Program hodo -
      New multicomponent analysis program: inputs 2-component trace pairs and outputs xgraph formatted files for windowed data and its narrow bandpass versions, particle motion hodograms and its narrow bandpass versions, ellipticity of the particle motions and the narrow bandpass versions, gaussian filters used, etc. Corrected default for the ellipticity window average length. Should be the input sample interval, i.e. 1 sample

    • Program filt -
      Added verbiage to man page, pattern file and help subroutine to warn users to use -M when filtering a spike. -M shuts off mute preservation which restores both ON and OFF mutes causing a filtered spike to come out as a spike, albeit lower amplitude as the trailing impulse is muted by the mute restore process. Changed Bessel filter actuation from -B to -bess to conform with documentation and help subroutine entries.

    • Program lsqinv -
      Added discussion section to man page to help users with use [especially with VSP data as input]. Went over code and added -h, -help capability as well as did implicit none installation and memory and access checking. Removed symmetric wavelet assumption from -A application which caused mis-application of derived minimum phase wavelets.

    • Library ut -
      Fixed bug in HLH handing under Linux. Affected small number of codes.

    • Program spike3d -
      Added -D, -z0[], -offset[] to allow creation of reflections from a point diffractor. With this option -x0,-y0,-z0 places the diffraction point in space. The -offset[] entry specifies the source-receiver offset while -azim[] determins the source-receiver azimuth. I also fixed a couple of bugs that prevented iteration through a pipe and flushed out the population of header values for each model case.

    • Program replace -
      Added option -DF to detect and replace the first occurance of a value. Also fixed a logic error in the value detect and replace routine in the index and pick constrained mode. Fixed help subroutine reference to the command line option -noinv. It was erroneously listed as -Noinv which of course doesn't exist.

    • Program scale -
      Added detail to the online help, man page and pattern file to explain better that -npp means absolute value of the input trace samples, i.e. scale -np even with all other options defaulted will output an absolute value data set.

    • Program usp2segy -
      Modified to set initial values for TrcNumSmp and TrcSmpInt to values contained in the USP line header. Any user-defined mapping will take precedence over these default values.

    • Program timfreq -
      The forward transform now has N/2 + 1 complex values consistent with other FFTs. Before the transform used N/2 complex values which assumed Nyquist was zero.

    • Program freqtim -
      The forward transform now has N/2 + 1 complex values consistent with other FFTs. Before the transform used N/2 complex values which assumed Nyquist was zero.

    • Program li_di -
      Fixed a bug in -BLI option which failed to honour the -LI1, -DI1 on the command line. The code previously assumed LI1,DI1 always equalled unity.

    • Program ikpd -
      Minor character string fix and added some explicit casts to satisfy a particular compiler. Also added ia64 definition for itanium.

    • Program xytrp -
      Added option for arbitary line extraction; Fixed a serious bug in the rsamp2 subroutine where a character variable was set on ipass = 1, but not passed back to the main. On subsequent calls that variable stayed whatever it was set to on some architectures, but not others. This caused bilinear interpolation to shut off after record one, at which point sinc interpolation was activated. This is very bad for velocity data in particular. Also fixed a bug where grealloc was called on a previously unallocate array pointer.

    • Program wind -
      When using the -hw[] option and desiring a window above your horizon, it is necessary to specify both -s[] and -e[] to be negative. A negative -e[] tripped a policeman in the code which stopped the execution. I have fixed that for the case where -hw[] is also flagged. The policeman now looks to see in the output number of samples goes to zero or below before aborting.

    • Program vomit -
      Fixed bug in -fi promax option which caused vomit to fail in two cases; when the number of fcns was 1 and when the last fcn had the maximum number of elements.

    • Program angst -
      Set the default end record number to 2000000000 to process large 3D data sets.

    • Program feedback -
      Minor change to mail note format to separate body from header on Linux systems.

    • Program genfu -
      Corrected a one sample shift in -md0 option (time domain wavelet convolution)

    • Program detmute -
      Added -salt flag to allow detmute to detect and store times for first and last occurance of -value[].

    • Program mixn -
      Bug fix involving time windowing of the processing. It would work fine for the whole trace but would put shallow bits of unprocessed data in the output if a process window -s[] -e[] was chosen.

    • Program mkphase -
      Revised code to correct a normalization operation in the computation of the phase estimate and to normalize the graphed kurtosis by the variance in the data. Also included an additional bit of information in the output file to specify the window center time.

    • Program saneusp -
      Added keyword "spectra" to the program description to better facilitate functional searches.

    • Program solid -
      Added option to specify minimum shear wave velocity, below which the layers will be treated as liquid.

    • Program miror -
      Fixed a problem with the entry going into the historical line header. A mismatch on string lengths allowed a garbage character that then caused rmprint to bypass print files for removal.


    To apply this update to FreeUSP:

      
      download the compressed tar file FreeUSP-1.02-4.tgz
      
      decompress that file onto disk:
      gunzip -c < FreeUSP-1.02-4.tgz > FreeUSP-1.02-4.tar
      extract the tar files to the source structure:
      cd ${FreeUSP} tar xvf FreeUSP-1.02-4.tar
      run the update script:
      ./run-update-1.02-4
      build & install the updated structure as specified in the original install instructions:
      cd ${DEPTROOT} gmake targets gmake install
    Back