Skip to content

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:

shell
# 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 true

Figure 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.

yml
########################################################################################################################
#
# 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.

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.

yaml
  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
      - TopTherys

Figure 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.

ert
-- 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.