NAME
dds_usp - USP format, Data Dictionary System
SYNOPSIS
Data Dictionary System, USP binary format.
DESCRIPTION
DDS supports the Amoco Unix Seismic Procssing USP format.
format= usp attributes
comment= effective default for usp output
format= usp green float 4 ieee block_tape 32k
tab(|); lI lB l lB l l. Attributes|Description
green|control word prefix GREEN|control word prefix and suf-
fix -green|no green prefix -GREEN| ebcdic|line header char-
acter format ascii| integer n|sample type and precision
float n| ieee|sample style cray| ibm| block_tape n{k/m}|tape
block size
DDS automatically detects the attributes of input binary
data. If they conflict with attributes explicitly defined
by format, a warning is issued and the override is honored.
Output data attributes take predefined defaults, unless
explicitly overridden. Output is forced to include green
word prefix and ascii characters.
The USP seismic format is described by two major types,
usp_line and usp_trace. This format is created using the
DDS_PATH/usp.fmt dictionary. DDS_PATH/usp.map provides
default map definitions.
LINE HEADER FIELDS
The USP line header contains a sequence of fields. The
field values, associated with the binary data, are also
available as dictionary definitions (i.e. usp_SmpInt= ...).
They may be examined in the dictionary by end users or
retrieved by application programs. End users may override
the field value associated with binary input data.
comment= override binary header value
usp_NumTrc= 48
usp_SmpInt= 8000
The fields within the usp_line type may be summarized by
their nominal offset, name, type, and element count.
tab(|); lB l l l lB l lB lB lB l. Off|Name|Type|N|Comment
*|usp_green|usp_int|1|"USP green word prefix"
0|EqpCod|usp_char|1|"Equipment code"
1|CrwNam|usp_char|6|"Crew Six Characters"
7|DatTyp|usp_char|1|"Data Type" 8|DgTrkS|usp_char|2|"Digital
Truck System" 10|PrcNam|usp_char|10|"Processor Name"
24|PrcDat|usp_char|8|"Processing Date"
32|OACLin|usp_char|8|"OAC Line, 7 char right just"
40|JobNum|usp_char|8|"JOB Number 7 char right just"
48|NumTrc|usp_int|1|"number traces per record"
52|NumRec|usp_int|1|"number records per line"
56|SmpInt|usp_int|1|"sample interval ms"
60|NumSmp|usp_int|1|"number samples per trace"
64|FmtCod|usp_short|1|"format code" 66|IndAdj|usp_short|1|"
adjustment" 68|OpGrFl|usp_short|1|"Opposite/Between Group
Flag" 72|SrtTyp|usp_char|2|"Sort Type 0=FIFO 1=LA 2=mx/mn"
74|CDPFld|usp_short|1|"CDP Fold" 76|GrpInt|usp_char|4|"Group
Interval" 80|DtInFl|usp_int|1|"Data Indicator Flag"
80*|Dy1000|usp_int|1|"Record interval*1000 (MBS)"
84|MxSPEl|usp_short|1|"Max Source Point Elevation"
86|MnSPEl|usp_short|1|"Min Source Point Elevation"
88|MxRSEL|usp_short|1|"Max Ref Surface Elevation"
90|MnRSEL|usp_short|1|"Min Ref Surface Elevation"
92|MxGrEl|usp_short|1|"Maximum group Elevation"
94|MnGrEl|usp_short|1|"Minimum group Elevation"
96|MxTrSt|usp_short|1|"Maximum trace Static"
98|MnTrSt|usp_short|1|"Minimum trace Static"
100|LinDir|usp_char|4|"Line Direction e.g., N45E"
104|AERcPr|usp_int|1|"Accumulative Est Rec Proc"
108|OrNTRC|usp_short|1|"Original traces Per Record"
110|OrNREC|usp_short|1|"Original Number records"
112|MutVel|usp_float|1|"Muting Velocity"
116|ZDMuTm|usp_short|1|"Zero Distance Mutine Time"
118|IntInc|usp_short|1|"interpolation increment"
120|WatVel|usp_int|1|"Water Velocity"
120*|RefVel|usp_int|1|"SLNT Reference Velocity(MBS)"
124|MxShDp|usp_short|1|"Maximum Shot Depth"
126|MnShDp|usp_short|1|"Minimum Shot Depth"
128|MxUHTm|usp_short|1|"Maximum Uphole Time"
130|MnUHTm|usp_short|1|"Minimum Uphole Time"
132|MxTrOf|usp_short|1|"Maximum traverse Offset"
134|MnTrOf|usp_short|1|"Minimum traverse Offset"
136|RATTrc|usp_short|1|"RATS Traces per Record"
136*|AnglSt|usp_short|1|"SLNT Starting Angle (MBS)"
138|RATFld|usp_short|1|"RATS Fold"
138*|AngInc|usp_short|1|"SLNT Angle Increment (MBS)"
140|UnitFl|usp_short|1|"Units Flag 0=feet 1=meters"
142|FrstSP|usp_short|1|"1st SP Number on Line"
144|DpN1SP|usp_short|1|"Dep Pt Num Below 1st Src Pt"
146|NmDpIn|usp_short|1|"Num Dep Pt Int per Unit Inc"
148|StWdFl|usp_short|1|"Static Wd Flag 0=old >=1 new"
150|DptInt|usp_short|1|"Depth Point interval"
152|TmMsSl|usp_int|1|"Time in ms of First Slice"
152*|Dx1000|usp_int|1|"Trace interval*1000 (MBS)"
156|TmSlIn|usp_int|1|"Time Slice increment in ms"
156*|Dz1000|usp_int|1|"Depth Interval*1000 (MBS)"
160|TmMsFS|usp_float|1|"Time in ms of First Sample"
164|NTrLnS|usp_int|1|"Number Traces/Line Sorted In"
168|PltDir|usp_short|1|"Plot Direction"
170|LgRfEl|usp_short|1|"Log Reference Elevation"
172|MnLnIn|usp_short|1|"Minimum line Index"
174|MxLnIn|usp_short|1|"Maximum line Index"
176|MnDpIn|usp_short|1|"Minimum depth Index"
178|MxDpIn|usp_short|1|"Maximum depth Index"
180|ILClIn|usp_float|1|"In Line Cell Increment"
184|CLClIn|usp_float|1|"Cross Line Cell Increment"
188|ReSpFm|usp_short|1|"Reserved Special Format"
190|VlFnRF|usp_short|1|"Vel Func Ref Flag 0=RI 1=DI"
192|OACUsr|usp_char|4|"OAC USER Field"
196|LinNam|usp_char|8|"Line Name"
204|MutFlg|usp_short|1|"Mute Flag 0=yes 1=no"
206|SPBias|usp_char|2|"Shot point Bias"
208|SpBiFl|usp_short|1|"Shot Point Bias Flag"
210|APIWNo|usp_char|12|"API Well Number"
224|NmSpMi|usp_float|1|"Number Shot points per Mile"
600|VelFun|usp_short|200|"velocity function"
600*|MinVel|usp_short|1|"Minimum velocity (MBS)"
602*|MaxVel|usp_short|1|"Maximum velocity (MBS)"
1000|HlhEnt|usp_short|1|"Number of Entries in HLH"
1002|HlhByt|usp_short|1|"Number of Bytes in HLH"
1004|HlhBuf|byte1|0|"HLH buffer (sizes and char)"
*|PadLine|byte1|0|"USP Line header pad"
TRACE HEADER FIELDS
The fields within the usp_trace type may be summarized by
their nominal offset, name, type, and element count.
tab(|); lB l l l lB l lB lB lB l. Off|Name|Type|N|Comment
*|usp_green|usp_int|1|"USP green word prefix"
0|SGRNum|usp_short|1|"SGR number" 2|SGRAmp|usp_short|1|"SGR
PreAmp Gain, Filter" 4|SGRDat|usp_int|1|"SGR Julian Date
Recorded" 8|FlReFN|usp_short|1|"Field Record File Number"
10|FlStNm|usp_short|1|"Field Station Number"
12|PREPIn|usp_short|1|"PREP Initiation Static"
14|InStUn|usp_short|1|"Initiation Static Unapplied"
16|InStAp|usp_short|1|"Initiation Static Applied"
18|PREPRc|usp_short|1|"PREP Reception Static"
20|RcStUn|usp_short|1|"Reception Static Unapplied"
22|RcStAp|usp_short|1|"Reception Static Applied"
24|ToStAp|usp_short|1|"Total Static Applied"
26|ToTmAA|usp_short|1|"Total Timing Adjust Applied"
28|ToStUn|usp_short|1|"Total Static Unapplied"
30|ToTmAU|usp_short|1|"Total Timing Adjust Unapplied"
32|RcComp|usp_short|1|"Receiver component xyz code"
34|SrComp|usp_short|1|"Source component xyz code"
36|SrStat|usp_short|1|"Source floating datum static"
38|RcStat|usp_short|1|"Receiver floating datum static"
40|TrHdID|usp_short|1|"Trace Header Identifier"
42|SrRcAz|usp_short|1|"Source-to-Receiver Azimuth"
44|SrPtXC|usp_int|1|"Src Point X-Coordinate 3D"
48|SrPtYC|usp_int|1|"Src Point Y-Coordinate 3D"
52|RcPtXC|usp_int|1|"Rec Point X-Coordinate 3D"
56|RcPtYC|usp_int|1|"Rec Point Y-Coordinate 3D"
60|SrRcMX|usp_int|1|"Src Rec Midpoint X 3D"
64|SrRcMY|usp_int|1|"Src Rec Midpoint Y 3D"
68|CDPBCX|usp_int|1|"CDP Bin Center X Coordinate"
72|CDPBCY|usp_int|1|"CDP Bin Center Y Coordinate"
76|InTrCn|usp_int|1|"Incremental Trace Counter"
80|FlDtEl|usp_short|1|"Floating Datum Elev this CDP"
82|MulSkw|usp_short|1|"Multiplex Skew (ms*1000)"
84|PerSPO|usp_short|1|"Perpendicular Src Pt Off y"
86|InlSPO|usp_short|1|"Inline Src Pt Off x"
88|TiLine|usp_short|6|"Tie Line Indicator 1-6"
100|TVPair|usp_short|40|"Time-Velocity Pairs 1-20"
180|RedVel|usp_short|1|"Reduction Velocity for vred"
182|RedTim|usp_short|1|"Time of first sample for vred"
184|VPick1|usp_short|1|"Auto Static Pick 1"
186|VPick2|usp_short|1|"Auto Static Pick 2"
188|LRcCDP|usp_short|1|"Last Record CDP"
190|CabDep|usp_short|1|"Cable Depth"
192|WDepDP|usp_short|1|"Water Depth Above Depth Point"
194|DPOPer|usp_short|1|"Depth Point Offset Perpendicular"
196|ShtDep|usp_short|1|"shot depth"
198|UphlTm|usp_short|1|"uphole time in ms"
200|DpPtLt|usp_int|1|"depth pt lat (deg* 10^5)"
204|DpPtLn|usp_int|1|"depth pt lon (deg* 10^5)"
208|FoldNm|usp_short|1|"fold" 210|RecNum|usp_short|1|"record
number" 212|TrcNum|usp_short|1|"trace number"
214|SrcPnt|usp_short|1|"src point above this depth pt"
216|SrcLoc|usp_short|1|"src location ind mult by 10"
218|PrRcNm|usp_short|1|"permanent record number PRI"
220|PrTrNm|usp_short|1|"permanent trace number PTI"
222|SrPtEl|usp_short|1|"source point elevation"
224|SrPrLt|usp_int|1|"source point lat (deg* 10^5)"
228|SrPrLn|usp_int|1|"source point lon (deg* 10^5)"
232|DstUsg|usp_short|1|"unsigned trace distance"
234|RecInd|usp_short|1|"rec location GI"
236|DstSgn|usp_short|1|"signed trace distance"
238|GrpElv|usp_short|1|"group elevation"
240|LinInd|usp_short|1|"line 3D"
242|DphInd|usp_short|1|"depth "
244|DePtEl|usp_short|1|"depth point elevation"
246|RfSrEl|usp_short|1|"reference surface elevation"
248|StaCor|usp_short|1|"correction"
250|DatShf|usp_short|1|"datum "
252|SoPtNm|usp_short|1|"source point number"
254|SoPtAl|usp_char|1|"source point alphabetic suffix"
255|SoPtBi|usp_char|1|"source point bias /10000"
254*|ESPNum|usp_short|1|"Energy source point number"
256|Samples|usp_float|-1|"trace samples"
*|PadTrace|byte1|0|"USP Trace samples pad"
SEGY to USP MAP
Default map definition are provided for segy input. Each
map definition name is prefixed by "map:segy:usp.".
tab(|); lB lB. usp_field=|segy_expression ShtDep=|SrcDepth
RecNum=|field("RecNum", void) TrcNum=|CdpTrcNum
SrcPnt=|SrcPnt DphInd=|CdpNum PrTrNm=|FieldTrcNum
FlReFN=|FieldRecNum FoldNm=|HorzStack RfSrEl=|GrpDatum
RecInd=|RecInd RcPtXC=|GrpX RcPtYC=|GrpY GrpElv=|GrpElev
SrPtEl=|SrcElev PrRcNm=|FieldRecNum SoPtNm=|SrcPtNum
SrPtXC=|SrcX SrPtYC=|SrcY DstSgn=|DstSgn InTrCn=|LineTrcNum
DISCO to USP MAP
Default map definition are provided for segy input. Each
map definition name is prefixed by "map:disco:usp.".
tab(|); lB lB. field=|disco_expression SGRNum=|SGRNUM
SGRAmp=|SGRAMP SGRDat=|SGRDAT FlReFN=|FFID FlStNm=|FLSTNM
PREPIn=|field("SHT-PREP", void) InStUn=|field("SHT-UN",
void) InStAp=|field("SHT-SHFT", void) PREPRc=|field("REC-
PREP", void) RcStUn=|field("REC-UN", void)
RcStAp=|field("REC-SHFT", void) ToStAp=|field("TOT-SHFT",
void) ToTmAA=|TTIMAA ToStUn=|field("TOT-UN", void)
ToTmAU=|TTIMAU
RcComp=|RCVRCO SrComp=|SHOTCO SrStat=|field("SHT-FDS", void)
RcStat=|field("REC-FDS", void) TrHdId=|THDRID
SrRcAz=|SRAZMTH SrPtXC=|field("SHT-X", void)
SrPtYC=|field("SHT-Y", void) RcPtXC=|field("REC-X", void)
RcPtYC=|field("REC-Y", void) SrRcMX=|field("MID-X", void)
SrRcMY=|field("MID-Y", void) CDPBCX=|field("CDP-X", void)
CDPBCY=|field("CDP-Y", void) InTrCn=|field(LineTrcNum, void)
FlDtEl=|FLDTEL MulSkw=|MULSKW PerSPO=|PERPOF InlSPO=|NLINOF
TiLiIx=|TIELIN TVPV/Tx=|TIMVEL VPick1=|TVEL VPick2=|VFDFLG
LRcCDP=|LASTFA CabDep=|CDEPTH WDepDP=|WDEPTH DPOPer=|CDPRPO
ShtDep=|SHTDEP UphlTm=|UPHOLE DpPtLt=|CDPLAT DpPtLn=|CDPLON
FoldNm=|FOLD RecNum=|field("RECNUM", void) TrcNum=|SEQNO
SrcPnt=|field("CDP-STAT", void)
SrcLoc=|Source_Location_Index_Mult_by_10_SI PrRcNm=|SHOT
PrTrNm=|CHAN SrPtEl=|SELEV SrPtLt=|SHTLAT SrPtLn=|SHTLON
DstUsg=|OFFSET RecInd=|field("REC-STAT", void)
DstSgn=|SOFFSET GrpElv=|RELEV LinInd=|CDPLBLS DphInd=|CDP
DePtEl=|CELEV RfSrEl=|RDATUM StaCor=|STATIC DatShf=|DSHIFT
SoPtNm=|field("SHT-STAT", void)
read_usp
The read_usp definition allows the end user to request spe-
cial processing when reading traces. Keywords are used to
request or reject individual features. Default values are
show in bold in the following table.
tab(|); l l. keyword|description, assuming sort= ? TrcNum
RecNum RecNum|(deferred) verify sequential sort_3 (RecNum)
numbering -RecNum|accept any sort_3 (RecNum) value
TrcNum|(deferred) verify sequential sort_2 (TrcNum) number-
ing -TrcNum|accept any sort_2 (TrcNum) value
LineTrc|(deferred) InTrCn, verify sequential LineTrc number-
ing -LineTrc|-InTrCn, accept any LineTrc value
drop_dead|skip read, if trace is dead (StaCor == 30000)
-drop_dead|allow dead traces to be read zero_dead|zero trace
samples, if trace is dead -zero_dead|don't change samples,
if trace is dead pad_dead|(deferred) create dead traces, if
sort_2 (TrcNum) not sequential -pad_dead|don't create dead
traces, if non-sequential drop_live|skip read, if trace is
live (StaCor != 30000) -drop_live|allow live traces to be
read trc_sync|(deferred) reset trace counter to 1, if sort_3
(RecNum) changes -trc_sync|reset trace counter after reach-
ing size_2 (NumTrc) trc_valid|(deferred) Error, if final
sort_2 (TrcNum) is not sequential -trc_valid|read anything
you're given
read_usp can be used to solve problems with trace input.
The following examples assume there are four traces per
record. Live traces are denoted by (TrcNum,RecNum), dead by
<TrcNum,RecNum>, and missing by "none".
If "read_usp= " is defined (default), all input traces
are processed.
tab(|); lB l l l l lB. given|(1,5)|(2,5)|(3,5)|(4,5)
|(1,9)|<2,9>|<3,9>|(4,9) |<1,9>|(2,9)|(3,9)|(4,9)|Rec-
Num 9 repeat |(1,n)|(2,n)|(3,n)|<4,n>
read|(1,5)|(2,5)|(3,5)|(4,5) |(1,9)|<2,9>|<3,9>|(4,9)
|<1,9>|(2,9)|(3,9)|(4,9)|RecNum 9 repeat
|(1,n)|(2,n)|(3,n)|<4,n>
If "read_usp= drop_dead", dead input traces are dropped.
tab(|); lB l l l l lB. given|(1,5)|(2,5)|(3,5)|(4,5)
|(1,9)|<2,9>|<3,9>|(4,9) |<1,9>|(2,9)|(3,9)|(4,9)|Rec-
Num 9 repeat |(1,n)|(2,n)|(3,n)|<4,n>
read|(1,5)|(2,5)|(3,5)|(4,5) |(1,9)|none|none|(4,9)
|none|(2,9)|(3,9)|(4,9)|RecNum 9 repeat
|(1,n)|(2,n)|(3,n)|none
write_usp
The write_usp definition allows the end user to request spe-
cial processing when writing traces. Keywords are used to
request or reject individual features. Default values are
show in bold in the following table.
tab(|); l l. keyword|description, assuming sort= ? TrcNum
RecNum RecNum|force sequential sort_3 (RecNum) numbering
-RecNum|honor sort_3 (RecNum) mapping TrcNum|force sequen-
tial sort_2 (TrcNum) numbering -TrcNum|honor sort_2 (TrcNum)
mapping LineTrc|InTrCn, force sequential LineTrc numbering
-LineTrc|-InTrCn, honor LineTrc mapping drop_dead|skip
write, if trace is dead (StaCor == 30000) -drop_dead|allow
dead traces to be written zero_dead|zero trace samples, if
trace is dead -zero_dead|don't change samples, if trace is
dead pad_dead|create dead traces, if sort_2 (TrcNum) not
sequential -pad_dead|don't create dead traces, if non-
sequential drop_live|skip write, if trace is live (StaCor !=
30000) -drop_live|allow live traces to be written
trc_sync|reset trace counter to 1, if sort_3 (RecNum)
changes -trc_sync|reset trace counter after reaching size_2
(NumTrc) trc_valid|Error, if final sort_2 (TrcNum) is not
sequential -trc_valid|write anything you're given
write_usp can be used to solve problems with trace indexing.
The following examples assume there are four traces per
record. Live traces are denoted by (TrcNum,RecNum), dead by
<TrcNum,RecNum>, and missing by "none".
If "write_usp= " is defined (default), output traces are
simply padded. The header mapping for TrcNum and RecNum
is preserved.
tab(|); lB l l l l lB. given|(1,5)|(2,5)|(3,5)|(4,5)
|(1,9)|none|none|(4,9) |none|(2,9)|(3,9)|(4,9)|RecNum
9 repeat |(1,n)|(2,n)|(3,n)|none
write|(1,5)|(2,5)|(3,5)|(4,5) |(1,9)|<2,9>|<3,9>|(4,9)
|<1,9>|(2,9)|(3,9)|(4,9)|RecNum 9 repeat
|(1,n)|(2,n)|(3,n)|<4,n>
If "write_usp= TrcNum RecNum", output is sequentially
numbered and padded. The header mapping for TrcNum and
RecNum is lost.
tab(|); lB l l l l lB. given|(?,?)|(?,?)|(?,?)|(?,?)
|(?,?)|(?,?)|(?,?)|(?,?) |(?,?)|(?,?)|none|none|10
input traces
write|(1,1)|(2,1)|(3,1)|(4,1) |(1,2)|(2,2)|(3,2)|(4,2)
|(1,3)|(2,3)|<3,3>|<4,3>|pad last record
If "write_usp= TrcNum", output TrcNum is sequential and
padded. The header mapping for RecNum is preserved.
tab(|); lB l l l l lB.
given|(?,5)|(?,5)|(?,7)|(?,7)|RecNum 5 short
|(?,7)|(?,7)|(?,8)|(?,8)|RecNum 7 wraps
|(?,8)|none|none|none|RecNum 8 short and wraps
write|(1,5)|(2,5)|(3,7)|(4,7)|RecNum 5 short
|(1,7)|(2,7)|(3,8)|(4,8)|RecNum 7 wraps
|(1,8)|<2,8>|<3,8>|<4,8>|RecNum 8 short and wraps
If "write_usp= trc_sync TrcNum", output TrcNum is sequen-
tial, padded and synchronized with changes in RecNum.
The header mapping for RecNum is preserved.
tab(|); lB l l l l lB.
given|(?,5)|(?,5)|none|none|RecNum 5 short
|(?,7)|(?,7)|(?,7)|(?,7) |(?,7)|(?,7)|none|none|RecNum
7 repeat |(?,8)|(?,8)|none|none|RecNum 8 short
write|(1,5)|(2,5)|<3,5>|<4,5> |(1,7)|(2,7)|(3,7)|(4,7)
|(1,7)|(2,7)|<3,7>|<4,7> |(1,8)|(2,8)|<3,8>|<4,8>
If "write_usp= trc_sync", output is padded and TrcNum is
synchronized with changes in RecNum. The header mapping
for TrcNum and RecNum is preserved. This variation is
particularly useful when converting to usp format, from a
format which may not carry along dead traces (segy,
disco).
tab(|); lB l l l l lB. given|(1,5)|none|(3,5)|none
|none|(2,7)|none|(4,7) |(1,7)|(2,7)|(3,7)|(4,7)|RecNum
7 repeat |(1,8)|none|none|(4,8)
write|(1,5)|<2,5>|(3,5)|<4,5> |<1,7>|(2,7)|<3,7>|(4,7)
|(1,7)|(2,7)|(3,7)|(4,7)|RecNum 7 repeat
|(1,8)|<2,8>|<3,8>|(4,8)
SEE ALSO
tab(|); lB l. dds(1)|overview dds_user(1)|user guide
dds_map(1)|map expressions dds_expert(1)|symbolic names
dds_format(1)|generic format dds_disco(1)|Disco format
dds_usp(1)|Disco format dds_segy(1)|Disco format
dds_rosetta(1)|Rosetta Stone, "Standard" formats
cdds_api(3)|"C" Application Program Interface
fdds_api(3f)|Fortran Application Program Interface
AUTHOR
R. L. Selzler, PAR, Tulsa
COPYRIGHT
copyright 2001, Amoco Production Company
All Rights Reserved
an affiliate of BP America Inc.
Man(1) output converted with
man2html