Assign Header Values
This process updates volume headers based upon values from tables. Traces are matched to rows in the input table by matching the values of headers to the values in rows in the table. When a row is matched to a trace, the values of headers can then be updated to the values of columns in the matched row.
- In the Control Panel, open the Process tab.
- At the tab header, click the Add icon and select New Process.
- Scroll down and double-click on Assign Header Values.
- Type a name for the process and click OK.
Configuring Assign Header Values
- Volume: Select the input volume.
-
Header CSV: Select a single file, or (when operating on a 2D volume) a directory of files. If you provide a directory, the name of each file inside must correspond to a 2D line name.
- All files must have the .csv file extension and contain comma-separated values.
- The first column defines the header to be updated, and the remaining columns define the header(s) on which to match.
- The first row in the file defines which columns correspond to which headers. You can use any SEG-Y header name, or LINE to match the 2D line name. If you supply a directory of files, then you may not specify a LINE column within the files.
- You must supply a value for all columns, but * will match any value (unless the trace matches a row with a specific value).
-
Unmatched traces: When a trace header does not match any of the rows in the supplied file, there are three possible ways to handle the trace header:
- Error on unmatched traces - Causes the process to error
- Set target header to zero for unmatched traces - The target header is set to zero
- Leave target header unchanged for unmatched traces - The target header is not modified
-
Match and Update Mode: The process supports two modes:
- Individual header values - Matches a trace to a table row by matching single values. When a match is found, the headers get updated with single values from the corresponding table row. This mode supports multiple match headers and multiple update headers.
- Ranges of header values - Matches a trace to a table row by checking whether the match header value is in the given range. When a match is found, the header gets updated with a linearly interpolated value from the corresponding table row. This mode only supports a single match header and a single update header.
Note: Although you can match on any header, the process does not allow you to modify any of the headers that fundamentally define the volume. This means that you cannot modify these headers for any volume:
- NS or DT (use "Volume Resampling" to change the number of samples or sample interval)
- DELRT (use "Trace Padding" or "Trace Shift" to change the start time/depth)
- SCALCO or SCALEL (use "Reassign SCALCO/SCALEL Headers")
2D pre-migration (shot/channel) volumes:
- EP (DUG shot number)
- TRACR (DUG channel number)
- CDP (DUG CMP number)
- HCS (CMP index)
- CDPT (DUG receiver station)
- GAPS (receiver station index)
- and for 2D post-migration (CMP/Offset) volumes:
- CDP (DUG CMP number)
- OFFSET (if it's a pre-stack offset volume)
- TATYP (if it's pre-stack angle gathers)
3D volumes:
- INLINE
- CROSSLINE
- OFFSET (if it's a pre-stack offset volume)
- TATYP (if it's pre-stack angle gathers)
Header Scaling
Headers are scaled automatically, if applicable. Thus, if setting e.g. SWDEP, the CSV file should contain the real (fractional) value in metres; the process will automatically apply SCALEL before setting the integer header value.
Likewise if matching on e.g. SWDEP, the process will apply SCALEL to the value in the CSV (and round off any extra precision that could not be stored in the header, if necessary) before comparing to the integer value found in SWDEP. This means that a CSV value with precision beyond what could be represented in the header can still match traces.
Example 1
TRID,NHS,OFFSET
6,55,70
20,56,100
21,56,*
11,57,*
Means that:
- it will set TRID=6 for any trace with NHS=55 and OFFSET=70
- it will set TRID=20 for any trace with NHS=56 and OFFSET=100
- it will set TRID=21 for any other trace with NHS=56
- it will set TRID=11 for any other trace with NHS=57, and
- TRID will be left unchanged for all other traces.
Example 2
GELEV,LINE
11.5,MC1-S0001_cable1_gun1
11.5,MC1-S0001_cable1_gun2
13.1,MC1-S0001_cable2_gun1
13.1,MC1-S0001_cable2_gun2
15.8,*
Means that:
- it will set GELEV=11.5 for all traces in lines MC1-S0001_cable1_gun1 and MC1-S0001_cable1_gun2
- it will set GELEV=13.1 for all traces in lines MC1-S0001_cable2_gun1 and MC1-S0001_cable2_gun2, and
- it will set GELEV=15.8 for all traces in any other line
Note that this example would have to be supplied as a single CSV file, because it uses LINE as one of the columns.