Observed Data Processing
The steps in sim2seis are typically executed within an ert-controlled ensemble run, which includes multiple realisations. Since the observed seismic data remains constant, only a single run is required, and this is performed outside of ert via the command-line:
# Normal run
> sim2seis_observed_data -c <config_dir> -f <config_file> -g <global_dir> -o <global_file>
>
# Run with verbose output
> sim2seis_observed_data -c <config_dir> -f <config_file> -g <global_dir> -o <global_file> -v true
>
# Run without generating attributes - depth conversion only
> sim2seis_observed_data -c <config_dir> -f <config_file> -g <global_dir> -o <global_file> -n trueFigure 1: Command line interface to observed data processing.
Configuration file
As part of the sim2seis workflow, the processing of observed data is controlled by a YAML configuration file. There is one common parameter file, shown in Figure 2, and one common interval definition file for generating attribute maps. The interval definition file follows the format described in attribute maps.
########################################################################################################################
#
# Configuration file for sim2seis runs
#
# Lines that are commented out are parameters that users very seldom need to change, they will use validated
# default values. However, they can be changed at need, but please verify that the values entered are valid
# before running any of the parts in the sim2seis workflow
#
########################################################################################################################
########################################################################################################################
#
# Path settings
#
# As shown, all paths are relative, and they refer to the FMU directory structure, where all scripts will start in
# ./sim2seis/model (2 steps under the top)
#
########################################################################################################################
# paths:
# pem_output_dir: sim2seis/output/pem
# modelled_seismic_dir: share/results/cubes
# preprocessed_seismic_dir: share/preprocessed/cubes
# modelled_horizon_dir: share/results/maps
# observed_horizon_dir: share/preprocessed/maps
# grid_dir: sim2seis/input/pem
# pickle_file_output_dir: share/results/pickle_files
# output_dir_modelled_data: share/results/tables
# output_dir_observed_data: ert/input/preprocessed/seismic
########################################################################################################################
#
# Pickle file settings
#
# Pickle files are used to transfer class objects between the different parts of the sim2seis workflow. Neither their
# prefix names or the directory (in paths) will need to be modified, that will only lead to likely errors
#
########################################################################################################################
# pickle_file_prefix:
# observed_data: observed_data
# seismic_forward: seismic_fwd
# seismic_diff: seismic_fwd_diff
# relai_maps: relai_maps
# amplitude_maps: amplitude_maps
# relai_diff: relai_diff
########################################################################################################################
#
# Seismic forward modelling settings
#
# Pickle files are used to transfer class objects between the different parts of the sim2seis workflow.Neither their
# prefix names or the directory (in paths) will need to be modified, that will only lead to likely errors
#
########################################################################################################################
#region seis_fwd
## Section for seismic forward 4D
#______________________________________________________________________________________________________________________#
seismic_fwd:
# Comment out lines with full/near/far models if you don't want those stacks modelled
# At least one line must be present
stack_models:
full: model_file.xml
# near: model_file_near.xml
# far: model_file_far.xml
# attribute: amplitude
# twt_model: ../../sim2seis/model/model_file_twt.xml
# segy_depth: seismic_temp_seismic_depth_stack.segy
########################################################################################################################
#
# Time/depth conversion settings
#
# Required settings are horizon names (required in both time and depth domain), and extent and resolution for
# time and depth cubes
#
########################################################################################################################
depth_conversion:
horizon_names: [MSL, TopVolantis, BaseVolantis, BaseVelmodel]
min_depth: 1500.0
max_depth: 2000.0
z_inc: 4.0
min_time: 1500.0
max_time: 2000.0
t_inc: 4.0
# depth_suffix: --depth.gri
# time_suffix: --time.gri
########################################################################################################################
#
# Webviz map settings
#
# Attribute error is required for the observed data attributes. It can either be a fixed ratio, or else a 2D map
# with values varying over the modelled grid
#
########################################################################################################################
webviz_map:
# grid_file: simgrid.roff
# zone_file: simgrid--zone.roff
# region_file: simgrid--region.roff
attribute_error: 0.07
########################################################################################################################
#
# Seismic inversion settings
#
# It is possible to run seismic inversion by using the default values, but for better match to observed data inversion,
# the inversion parameter settings should be modified
#
########################################################################################################################
# seismic_inversion:
# attribute: relai
# domain: time
# d_syn_0: sim2seis/output/seismic_forward/seismic--d_syn0.sgy
# rel_ai_0: sim2seis/output/seismic_forward/seismic--relai_0.sgy
# d_syn_1: sim2seis/output/seismic_forward/seismic--d_syn1.sgy
# rel_ai_1: sim2seis/output/seismic_forward/seismic--relai_1.sgy
# inversion_params:
# lateral_smoothing_4d: 0.05
# damping_3d: 0.001
# damping_4d: 0.001
# lateral_smoothing_3d: 0.01
# max_iter: 100
# segments: 1
########################################################################################################################
#
# Amplitude map and inversion map settings
#
# Best left with default values. The actual settings that define intervals and operators for attribute maps are
# placed in the `attribute_map_definition_file`, given in the main class
#
########################################################################################################################
# amplitude_map:
# attribute: amplitude
# inversion_map:
# attribute: *inversion_attribute
########################################################################################################################
#
# Main class settings
#
# For the main class, there are only two required parameters. `test_run` is used in tests, and should be False in
# real runs
#______________________________________________________________________________________________________________________#
attribute_map_definition_file: data_intervals_drogon.yml
test_run: True
########################################################################################################################
#
# End of Configuration file for sim2seis runs
#
########################################################################################################################Figure 2: Example YAML configuration file for sim2seis, including observed data.
Symlink to observed seismic cubes
To save space, the observed data are not duplicated for each realisation in an ert run. Instead, symbolic links are generated from the seismic cube directory (./share/preprocessed/cubes) to the directory that contains the observed seismic cubes. This directory is defined in the global configuration file (see Figure 3). The symbolic links, use real_4d_cropped_path.
seismic:
real_3d_path: /scratch/fmu/share/drogon/modeldata/share/seismic/static/input
real_3d_cropped_path: /scratch/fmu/share/drogon/modeldata/share/seismic/static/21_0_0/cropped
3d_templatecube: /scratch/fmu/share/drogon/modeldata/share/seismic/static/21_0_0/template/seismic_layout_static.segy
real_3d:
18v:
ecldate: '20180101'
time:
amplitude_near: owexport_ampl_near_time_2018.segy
amplitude_far: owexport_ampl_far_time_2018.segy
relai_near: owexport_rai_near_time_2018.segy
relai_far: owexport_rai_far_time_2018.segy
real_4d_path: /scratch/fmu/share/drogon/modeldata/share/seismic/4d/input
real_4d_cropped_path: /scratch/fmu/share/drogon/modeldata/share/seismic/4d/21_0_0/cropped
4d_templatecube: /scratch/fmu/share/drogon/modeldata/share/seismic/4d/21_0_0/template/seismic_layout_4d.segy
real_4d:
18h_18v:
ecldate:
- 2018-07-01
- 2018-01-01
time:
amplitude: owexport_ampl_18h_18v.segy
relai: owexport_relai_18h_18v.segy
19h_18v:
ecldate:
- 2019-07-01
- 2018-01-01
time:
amplitude: owexport_ampl_19h_18v.segy
relai: owexport_relai_19h_18v.segy
20h_18v:
ecldate:
- 2020-07-01
- 2018-01-01
time:
amplitude: owexport_ampl_20h_18v.segy
relai: owexport_relai_20h_18v.segy
ATTRIBUTE_HORIZONS_4D:
- TopVolantis
- BaseVolantis
ATTRIBUTE_HORIZONS_3D:
- TopVolantis
- TopTherys
- TopVolon
- BaseVolantis
ZONES_4D:
Valysar:
- TopVolantis
- TopTherys
Therys:
- TopTherys
- TopVolon
Volon:
- TopVolon
- BaseVolantis
ZONES_3D:
Valysar:
- TopVolantis
- TopTherysFigure 3: Seismic settings in the global configuration file.
When to run Observed Data Processing from ert
If sim2seis is run with structural uncertainty, the depth conversion of observed seismic data should be repeated for each realisation, as it will vary. If not, cubes in depth domain will not be consistent between observed and modelled data. All required parameters are defined in ert configuration.
-- Optional run of depth conversion of observed data:
FORWARD_MODEL OBSERVED_DATA(<CONFIG_DIR>=<CONFIGDIR>, <CONFIG_FILE>=<SIM2SEIS_CONFIG_FILE_NAME>, <GLOBAL_DIR>=<GLOBAL_PATH>, <GLOBAL_FILE>=<GLOBAL_CONFIG_FILE>, <OBS_DATE_PREFIX>=<OBS_PREFIX>, <VERBOSE>=<VERBOSE_OUTPUT>)Note that when observed data processing is run from ert, only depth conversion is performed — attribute maps are not generated. Attribute maps from observed data should be generated by running sim2seis_observed_data from the command line (outside of ert).
There is also a difference in output labelling depending on whether there is structural uncertainty. In a case with no structural uncertainty, the observed data are regarded as preprocessed, and the resulting cubes are stored in ./share/preprocessed/cubes. In a case with structural uncertainty (run from ert), the observed data are labelled observations, and so are the output directories: ./share/observations/.... It is only in the cases with structural uncertainty that observed data are depth converted for each realisation.