Go to the list of seismic processes.
Go to SIOSEIS introduction.
Go to SIOSEIS examples.
PROCESS GEOM
Parameters, alphabetically:
bin_h bgp bin_off cgp cknav dbrps
declin dfls epath fbinx fbiny fs
ggx gxp lbinx lbiny lprint ls
mindfls maxdfls navfil ntrcs offset offset2
rpadd setback smear type writexy yoffa
Document Date: 14 Jul 2020
Updates:
13 Apr 2016 - Changed recovery from BAD DFLS when doing type 9
6 Dec 2010 - Add Type 20 - Use UKOOA for gxp & ggx and ldeo for dfls.
- If rpadd is not given and rp is < 0, set rp
14 Sep 2010 - Add type 19 - get source lat/long from ukooa
7 Sep 2009 - lprint 1024 print dfls and heading
30 Aug 2009 - Add CKNAV
June 2008 - GXP group 0 means use the SEG-Y number of trace per shot.
Add TYPE 18 for entering ASCII nav into SEG-Y headers - Nov 2007
Add parameter SETBACK - February 2007
Add MINDFLS and MAXDFLS for determing bad fixes for type 9 - Jan 2007
Add type 17 (range as distance along ship track) - August 2006
Add NAVFIL2 - July 2006
Add type 16 (Healy06) - July 2006
Add lprint 256 and 512 - September 2005
Add type 14 & 15 (Healy0503) - August 2005
Add fbinx, fbiny, lbinx, lbiny, bin_off - Mar. 2005
Changed the units of the cross-line offset to meters. - Mar. 2005
Add TYPE 13 to calculate the crossline offset and feathering angle
from the UKOOA file. - Jan. 2004
Removed TYPE 12 - Jan. 2004
Add TYPE 11 to calculate the range and rp number from the SEG-Y
header x/y coordinates. - Aug 03
Add TYPE 10 to write the UKOOA coordinates into the SEG-Y trace
header. - Jun 03
Add parameter WRITEXY to write in SEGY words 19 & 21 - May 2003
Do all math in float even though SEGY is integer. - Oct 2002
Type 9 calculates DFLS from lat/long in SEGY header. - Sep 2000
and UTM - May 2020
13 Jun 2020 - Add type 21
Process GEOM is used to describe the shot and cable geometries and to
calculate the reflection point (rp) numbers used to gather the seismic
line. Process GEOM sets the shot-receiver distance into the trace
header of every trace. Likewise, every trace is assigned an rp number.
Thus, process GEOM must precede processes NMO and GATHER, which assume
that the shot-receiver range and rp numbers are in the trace headers.
GEOM assumes the seismic line is shot in a straight line; there are
no crooked line adjustments.
GEOM utilizes many different methods of calculating the shooting
geometry. In marine shooting a source is usually fired every few
seconds (rep rate or repetion rate) according to either a set time
interval or distance interval.
Most surveys since GPS provide a navigation file that includes the
shot time and shot position. Process GEOM uses it's own format
(see below) and perl script ts2sio exists on the
web to convert LDEO's TS files to SIOSEIS NAVFIL files.
Older seismic surveys often did not include a shot position for EVERY
shot, so it was easier to describe the shooting "rule" and the
exceptions to the rule. The biggest reason for an exception was
when a shot was missed and the ship kept going.
The first two TYPES of describing the shooting pattern differ only in
the method of handling missing shot point numbers. The first method
allows adjacent shots to have different shot point numbers (the shot
number incremented even though there was not shot) whereas the second
method assumes adjacent shots have consecutive numbers. TYPEs 3, 4, 5
method assumes adjacent shots have consecutive numbers. TYPEs 3, 4, 5
use an LDGO navigation file. TYPE 6 needs a navigation file in
SIOSEIS format. TYPE 8 needs a UKOOA navigation file. TYPE 9 uses
the SEG-Y header x/y location (on Ewing SEGDIN uses the realtime
lat/long).
The shot is assigned an X-coordinate by adding (type 1) or multiplying
(type 2) DFLS (distance from the last shot) to the X-coordinate of the
shot. Each receiver is assigned an X-coordinate by adding the
shot-receiver distance to the shot X-coordinate. The RP X-coordinate
is calculated by assuming the RP is halfway between the shot and
receiver. The RP number is the RP X-coordinate divided by DBRPS
(distance between RPs) and truncating to an integer. The coordinate of
the first shot of the job is the shot number (from the header) times the
distance from the previous shot. i.e.
xs = FLOAT(lhead(3)) * dfls
rx = FLOAT(lhead(10))
xr = xs + rx
xrp = (xr + xs) / 2.
lhead(6) = NINT( xrp/dbrps )
Older versions of GEOM (prior to Oct 2000) wrote the shot (source)
x coordinate in SEG-Y header word 19 and the receiver x coordinate
in word 21, which clobbered the existing navigation in those positions.
THE PARAMETER DICTIONARY
--- --------- ----------
FS - The first shot to apply the parameters of this parameter list.
Preset=1.
LS - The last shot to apply the parameters of this parameter list.
Preset=FS.
GXP - Group-range-pairs. A list of cable group numbers and
shot-receiver distances. Ranges not specified are calculated
by interpolation or extrapolation using ggx. Group numbers must
be strictly increasing. A maximum of 100 pairs may be given. Ranges
are normally negative in marine shooting since the ship always
goes forward, in the positive direction.
Not honored on UKOOA nav files.
Preset=required. e.g. gxp 18 -1350 24 -450 ggx 300
= 0 and ggx is given, If the first group number is 0, then the number
of traces per shot from the SEG-Y trace header is used as the
instead of the 0. This is useful when the streamer length may
change between deployments but the streamer leader (distance from
the guns to the first group) is the same.
e.g. gxp 0 -142 ggx -12.5 can be used with the 630 channel streamer
(same as giving gxp 630 -142) or the 480 channel streamer (same as
giving gxp 480 -142).
GGX - The constant distance between groups. Used for calculating
ranges outside of those given via gxp. The sign of ggx implies
the direction of the unknown ranges relative to the closest
group given. Not honored on UKOOA nav files.
((Group given - group wanted) * ggx + (range of group given)).
Preset=-300.
E.G. gxp 480 -250 ggx 12.5
gxp 1 -250 ggx 12.5
DFLS - The distance from the last shot. The sign of dfls implies the
direction the shot moved relative to the last shot.
Not honored on UKOOA nav files.
Preset = 150, types 1, 2, 6.
Preset = 1, type 9.
MINDFLS - The minimum and maximum allowable distances between shots
MAXDFLS when using TYPE 9 (dfls computed from the fixes in the SEG-Y header).
If the absolute value of computed distance (ABS(dfls)) is less than
MINDFLS or greater than MAXDFLS, then the fix is considered bad.
As of 2016.2.3, geom computes delta_lat and delta_long between good
fixes and applies them to the last good fix when dfls is bad.
Presets: mindfls = 0, maxdfls = not given.
e.g. mindfls .1 maxdfls 500
CKNAV - Similar to MAXDFLS, but good for ALL TYPES. If the distance
between shots exceeds CKNAV, the last good fix replaces the
bad fix in the SEG-Y header.
Preset = 99999.
SETBACK - The distance between the GPS antenna and the source. This is
always a positive number. Often, this is the sum of the
distance of the GPS to the stern and the distance of the guns
from the stern. The source coordinates in the SEG-Y header
(words 19 and 20) are modified by SETBACK and the receiver
coordinates (words 21 and 22) are computed using the source
coordinates and the range (word 10) determined by GXP. Valid
with TYPE 9 only since the ship's course must be known.
Preset = 0 e.g. setback 140
DBRPS - The distance between rps.
Preset: ABS(ggx)/2
SMEAR - The subsurface smear factor. The distance from a rp in which
to look for a trace. The smear is centered about the rp.
Not honored on UKOOA nav files.
Preset=DBRPS
RPADD - A scalar to add to every rp number. Sometimes GEOM calculates
a neagtive rp number, which might cause other sioseis processes
problems. Sometimes it might be useful to identify different
seismic lines by having different rp number on each line.
Preset = 0 e.g. rpadd 1000
YOFFA - The y-offset (perpendicular) of the shot from the seismic line
(the x-axis). The y-offset results in the shot-receiver
distance being the hypotenuse of the triangle of the in-line
shot-receiver distance and the y-offset. The y-offset is
applied to the range after the rp computation is performed.
Preset = 0 e.g. yoffa 100
TYPE - The type of missing shot geometry. Also see a discussion of TYPE
above in the description of the algorithm.
Preset = 2
1, Missing shots must be explicitly described by using multiple
GEOM lists. e.g.
fs 1 ls 1 dfls 50 type 1 end
fs 2 ls 2 dfls 100 end
fs 3 ls 99999 dfls 50 end
describes a situation where there is a missing shot between shot
point numbers 1 and 2. The x-coordinate of the shot is obtained
by ADDING DLFS to the previous shot x-coordinate.
2, Missing shot points are assumed to occur whenever a shot
point number is missing. e.g. fs 1 ls 999999 dfls 50 type 2 end
will cause the geometry to jump ahead when a shot is missing.
The x-coordinate of the shot is obtained by MULTIPLYING the shot
number by DLFS.
3, 4, 5, LDGO navigation method. CDP = 3, WAP = 4 and ESP = 5,
When LDGO method is used, NAVFIL and NTRCS must be given. GXP is
used to find the range from the guns to the closest receiver
(assumed to be the highest channel number), with the rest of the
cable to be defined in the navigation file.
LDGO binary nav files may come from Lamont or may be
generated by Graham Kent's 'navcmp' program which reads the
Ewing 'ts.n*' file.
This method creates both the shot and receiver x and y
coordinates in SEGY-Y header words 19-22.
6, SIOSEIS navigation file method. GEOM will compute a DLFS
on each shot based of the shot time in the SEG-Y trace header
and the navigation in an ASCII file named via the parameter
NAVFIL. The format of the SIOSEIS navigation file is:
year day hour minute second lat/deg lat/min long/deg long/min
e.g. 1997 67 12 0 0 -69 43.2954 170 23.646
Each quantity must be separated by a space or tab. The year
is ignored by the program, so it may be any number of digits.
South latitude and west longitude must be negative. If the
shot is not at exactly the same time as a shot in SIOFIL, it's
position is computed by interpolation between adjacent points.
The lat & long arc seconds are written into the source and
receiver spots (19, 20, 21, 22) of the SEG-Y header.
Parameter NAVFIL must be given.
7, Elevations are inserted into the SEG-Y trace header with no
other geometry done.
8, 10, UKOOA file input (implied when parameter NAVFIL is a UKOOA
file). The shot-receiver range and rp bin number are computed
and stored in the SEG-Y trace header. The receiver (streamer)
depth and the water depth at the receiver are also transferred
to the SEG-Y trace header. SEG-Y word 45 (Coordinate units)
is set to 1 (Length). Parameter NAVFIL must be given. The
X and Y coordinates of the first shot are used as the origin.
8, TYPE 8 writes the distance from the origin into SEG-Y long
words 19, 20, 21, 22 (Source and Group coordinates).
10, TYPE 10 writes the UKOOA eastings and northings into SEG-Y long
words 19, 20, 21, 22 (Source and Group coordinates).
9, Parameter DFLS is calculated from the SEGY trace header
longitude and latitude (SEGY bytes 73-76 and 77-80 respectively)
and the coordinates scalar in bytes 17-18. Bowditch's formula
for determining the number of meters per degree of latitude
and longitude is used, so it is imperative that the longitude
be in SEGY order and precede the latitude (x,y vs lat/long).
The distance computed is a simple distance; earth curvature is
not considered. This method should be very useful when the
ship's navigation is in differential mode. The computed DFLS
will always be positive, so set GXP appropriately. This will
NOT work on data that has already been through process GEOM since
GEOM writes in word 19.
11, The trace range (word 10) and rp number (word 6) are computed
from SEG-Y long words 19, 20, 21, 22 (Source and Group
coordinates). The coordinate of the receiver of the first
trace is used as the origin. TYPE 11 works ONLY on "normal"
marine geometry where trace 1 is furthest from the source
and the streamer is pulled.
13, Marine feathered streamer geometry using UKOOA navigation file.
The CMP bin number, feathering angle, and cross-line offset
are written into the SEG-Y header. The angle is in tenths of
a degree in short word 48. The offset is in units of meters
in short word 49.
14, Healy05 where NAVFIL is for the Geometrics Log file which only
has the only shot number (trigger count). It also contains the
"true time" of the shot and the Ashtech navigation. EPATH
is use for the Healy SeaBeam centerbeam water depth. The
Geometrics FFID is moved to word 5 (SEGY energy source number)
and the log file shot number is place in word 3, the "original
field record number". *** No longer available ***
17, The range (SEG-Y word 10) is the distance of the current shot
along the ship's track using the first trace as the origin.
SEG-Y words 19 & 20, source x and y, must be in arcseconds.
When DBRPS is given, the SIOSEIS "gather" convention is
implemented so that traces within DBRPS of each other may be
stacked with process stack (this is similar to process gather).
Traces that are more than a 90 degree angle from the previous
This represents a "back and ram". Trace angles less than 90
are considered a turn. The rp number (word 6) is
range / dbrps + 1.
Type 17 was designed to stack Knudsen chirp data where the
ping rate (distance between pings) is variable.
18, Read a SIO NAVFIL and insert the lat/long into the SEG-Y trace
headers. The ASCII navigation is associated with the SEG-Y
using the timestamps. If the navigation file timestamps are
zero, then the "record" field is used. The record number is
assumed to be the SEG-Y shot number (word 3) unless the SEG-Y
the rp trace number (SEG-Y word 7) is non-zero, in which case
the record number is assumed to be the SEG-Y rp number (word 6).
The rp number is not calculated. Use TYPE 6 if the rp number is
needed.
The format of the SIOSEIS navigation file is:
year day hour minute second lat/deg lat/min long/deg long/min shotno
e.g. 1997 67 12 0 0 -69 43.2954 170 23.646 12345
e.g. 0 0 0 0 0 -69 43.2954 170 23.646 12345
19, Get the source lat/long from the UKOOA file and insert into
SEGY words 20/19 (source coordinates) as real numbers. No other
SEGY words are modified (the RP number is not computed). This
is useful for archival purposes or users of other processing system.
20, Determine the streamer geometry (GXP, GGX, DBRPS) from the first
shot in the UKOOA file given in NAVFIL and get the navigation
(DFLS) from the LDEO trace header. The intent is provide a
method of automatically detecting the number of traces in the
streamer, yet not depend on the UKOOA file for the actual
ship navigation. In real-time processing, the UKOOA file may
not be available as quickly as the shot data. The UKOOA H0900
(Offset from ship positioning) is NOT used, thus the S (source)
and R (receiver) positions are used directly/unmodified.
21, Insert the lat/long as decimal degrees from NAVFIL and calculate
DFLS and the RP number. The shot number is used to match the
SEGY data with NAVFIL. This is useful when the seismic data
(SEGY) timestamp does not have the millisecond of the shot.
The SEGY source coordinates are replaced and the receiver
coordinates are set to zero.
NAVFIL must be in the form:
shot_no degrees_lat degrees_long
e.g. 1 32.1302624 33.1457421
The SEGY shot numbers must increase and the NAVFIL shot numbers
must increase.
BGP - Bird-group-pairs. A list of bird numbers (ids) and streamer
group numbers so that the bird (which have the depth sensors)
location can be associated with the group range (GXP). The
depth is placed in SEG-Y trace header long word 11 as a
negative number since it is an elevation relative to sea level.
Preset = none e.g. bgp 1 5 3 9 4 17 5 25 6 33 7 41 9 45 10 53
11 65 12 73 13 85 14 98 15 106 16 118 17 125 18 133 8 141 2 149
DECLIN - The magnetic declination to add to the compasses to convert
the readings to true north.
Preset = 0. e.g. declin -14.5
BIN_H - Bin height. When using type 13 geometry (streamer feathering
from UKOOA files), traces with a crossline midpoint offset
larger than bin_h are flagged as dead (and thus dropped by
process gather).
EPATH - The pathname of a file containing the elevations that GEOM
will insert into the SEG-Y header locations for shot and
receiver elevations. PROCESS SHIFT parameters DATUME and
DATUMV may be used do elevation shifts. The format of the
elevation file is a surface location and elevation pair on
a single line. Each pair must be on a separate line and
the location values must increase from line to line. The
surface location values may be obtained using processes GEOM
and PROUT. e.g. procs geom prout end
geom writexy yes ........
prout fno 0 lno 999999 ftr 1 ltr 99999
indices l3 l4 l19 l21 end
Locations not specified in the file are obtained through
interpolation or extrapolation.
Preset = none e.g. /data/vol3/henkart/cats/elevations
WRITEXY - A yes/no switch indicating whether geom should write the
the calculated source x and y coordinates into SEG-Y trace
words 19 and 21.
Preset = no e.g. writexy yes
ADDITIONAL TYPE 3 PARAMETERS
---------- ------ ----------
NAVFIL - Navigation filename. LDGO binary files and UKOOA P1 files
may be used (SIOSEIS determines it's a UKOOA file if the
first byte of the file is an ASCII letter H).
Locations not specified in the file are obtained through
interpolation or extrapolation.
Preset = none e.g. /data/vol3/henkart/cats/elevations
WRITEXY - A yes/no switch indicating whether geom should write the
the calculated source x and y coordinates into SEG-Y trace
words 19 and 21.
Preset = no e.g. writexy yes
ADDITIONAL TYPE 3 PARAMETERS
---------- ------ ----------
NAVFIL - Navigation filename. LDGO binary files and UKOOA P1 files
may be used (SIOSEIS determines it's a UKOOA file if the
first byte of the file is an ASCII letter H).
Required for TYPEs 3, 4, 5, 6, 8, 16 geometry.
NAVFIL2 - A second navigation file for type 16 geom. Needed when the
navigation is in multiple files (there may be a new nav file
at midnight every night).
NTRCS - The number of traces per shot. Required for LDGO navigation
since the number of traces per shot in the SEG-Y file includes
the auxiliary channels.
OFFSET - The offset between the guns and the navigation antenna. (On
the recording ship). Used with LDGO navigation only.
Required when TYPE 3 geometry is used.
OFFSET2 - The offset between the guns and the navigation antenna on the
"shooting" ship on 2 ship experiments. Used with LDGO
navigation only.
CROSS-LINE OFFSET
---------- ------
Definitions:
Shot-line - The straight line between the first shot (FS) and the
last shot (LS). The x,y coordinates for the shot-line
endpoints are taken from the UKOOA file for shots FS and LS.
Midpoint - The (x,y) point halfway between the shot and the
receiver.
Bin - A rectangular box with height BIN_H and width DBRPS.
Bin center - The center of the box. A point around which the bin
is constructed.
Bin center-line - The straight line between (FBINX,FBINY) and
(LBINX,LBINY). The center of the first bin is (FBINX,FBINY)
and successive bincenters are DBRPS away along the line.
CMP = Common midpoint - The bin that is common (the same)
for multiple traces.
Feathering angle - The angle between the streamer (a line between
the shot and the receiver) and the shot-line.
Processing-line = Meaningful only when defined by the user with
parameters fbinx,fbiny and lbinx,lbiny so that the bin
cross-line offset can be calculated. Without user definition,
the processing line lies along the shot-line.
Cross-line offset - The perpendicular distance between the receiver
and the shot-line.
Parameters:
BIN_OFF - The offset of the bin center-line from the shot-line. This
assumes the bin center-line is parallel to the shot-line and
starts and ends with the bins computed from the shot and
streamer geometry.
Preset = 0.
FBINX - The X coordinate of the first bin. Used when the bin center-line
is not parallel to the shot-line.
Preset = 0.
FBINY - The Y coordinate of the first bin. Used when the bin center-line
is not parallel to the shot-line.
Preset = 0.
LBINX - The X coordinate of the last bin. Used when the bin center-line
is not parallel to the shot-line.
Preset = 0.
LBINY - The Y coordinate of the last bin. Used when the bin center-line
is not parallel to the shot-line.
Preset = 0.
HIDDEN PRINT PARAMETER:
133709 2005+254:07:05:24 N 88 59 26.052 W 179 00 47.516 2179
This is suitable for the LGL Marine Mammal Observer's Report.
= 512, Print the shot number, DFLS, lat/long e.g.
Shot: 133709 dfls: 1.00 lat: 88 59 26.052 long: -179 0 47.516
= 1024, Print dfls and the heading.
e.g. lprint 1026 does lprint 2 and lprint 1024
CGP - Compass-group-pairs. A list of compass numbers (ids) and
streamer group numbers so that the compass location can be
associated with the group range (GXP). The compass data are
not saved in the SEG-Y header nor used by any SIOSEIS process.
The compasses may be printed by using LPRINT 8.
Preset = none e.g. cgp 1 4 6 44 11 84 16 140
Alistair Harding's version of ts2sio (in Perl) is:
# usage: ts2sio tsfile
# e.g. ts2sio /data/processed/0008/ts.n255 > sioseis_nav_file
# 2000+255:01:08:36.112 017382 N 32 13.2870 W 075 29.1645 test
#
while (<>)
{
my ($timestamp,$shotno,$ns,$latdeg,$latmin,$ew,$longdeg,$longmin)
= split /\s+/;
my ($year,$jday,$hour,$minute,$second) = split /\+|-|:/, $timestamp;
$latdeg = -$latdeg if ($ns eq "S");
$longdeg = -$longdeg if ($ew eq "W");
$, = " "; # separate output with a space
$\ = "\n"; # append newline
print($year,$jday,$hour,$minute,$second,
$latdeg,$latmin,$longdeg,$longmin,$shotno);
}
Written and copyrighted by:
Paul Henkart, Scripps Institution of Oceanography, March 1980
ALL RIGHTS RESERVED
Go to the list of seismic processes.
Go to SIOSEIS introduction.