The qcreset module
The qcreset
module provides methods (functions) to reset the selected data
before starting a forward modelling workflow.
Design philosophy
The client (user) scripts shall be small and simple and easy to use also for modellers with little Python experience.
Input will be a python dictionary
The
qcreset
methods are meant to run inside RMS at the begining of a modelling process
Method set_data_empty
This method set all data described as input as empty. The data are not deleted so that the geometry of the data (surfaces or 3D grid properties) should be preserved and no workflow component (job or other) should be reset.
Signature
The input of this method is a Python dictionary with defined keys. The key “project” is required while “horizons”, “zones” and “grid_models” are optional (at least one of them should be provided for the method to have any effect).
- project
The roxar magic keyword
project
refering to the current RMS project.- horizons
A Python dictionary where each key corresponds to the name of the horizons category where horizon data need to be made empty. The value associated to this key should be a list of horizon names to modify. If a string
all
is assigned instead of a list, all available horizon names for this category will be used. Alternatively, if a list of horizons categories is given instead of a dictionary, the method will apply to all horizons within these horizons categories.- zones
A Python dictionary where each key corresponds to the name of the zones category where zone data need to be made empty. The value associated to this key should be a list of zone names to modify. If a string
all
is assigned instead of a list, all available zone names for this category will be used. Alternatively, if a list of zones categories is given instead of a dictionary, the method will apply to all zones within these zones categories.- grid_models
A Python dictionary where each key corresponds to the name of the grid models where properties need to be made empty. The value associated to this key should be a list of property names to modify. If a string
all
is assigned instead of a list, all available properties for this grid model name will be used. Alternatively, if a list of grid models names is given instead of a dictionary, the method will apply to all properties within these grid models.
Known issues
None for now
Examples to run from RMS
Example 1
from fmu.tools.rms import qcreset
import roxar
SETUP = {
"project": project,
"horizons": {
"horizon_category_1": ["horizon_name_1", "horizon_name_2"],
"horizon_category_2": [
"horizon_name_1",
"horizon_name_2",
"horizon_name_3",
"horizon_name_4"
],
"horizon_category_3": "all"
},
"zones": ["zone_category_1"],
"grid_models": {
"Geogrid": ["property_1", "property_2"],
"Simgrid": "all"
}
}
if __name__ == "__main__":
qcreset.set_data_empty(SETUP)
Method set_data_constant
This method set all values of the data described as input to a constant.
The data are therefore not made empty or deleted. This ensure that the geometry
of the data (surfaces or 3D grid properties) is preserved and no workflow
component (job or other) is reset.
This method is more conservative than the set_data_empty
method.
Signature
The input of this method is a Python dictionary with defined keys. The keys “project” and “value” are required while “horizons”, “zones” and “grid_models” are optional (at least one of them should be provided for the method to have any effect).
- project
The roxar magic keyword
project
refering to the current RMS project.- value
The constant value to assign to the data. It could be 0 or -999 for example. If discrete properties from grid models are modified, the value should be applicable (integer).
- horizons
A Python dictionary where each key corresponds to the name of the horizons category where horizon data need to be made empty. The value associated to this key should be a list of horizon names to modify. If a string
all
is assigned instead of a list, all available horizon names for this category will be used. Alternatively, if a list of horizons categories is given instead of a dictionary, the method will apply to all horizons within these horizons categories.- zones
A Python dictionary where each key corresponds to the name of the zones category where zone data need to be made empty. The value associated to this key should be a list of zone names to modify. If a string
all
is assigned instead of a list, all available zone names for this category will be used. Alternatively, if a list of zones categories is given instead of a dictionary, the method will apply to all zones within these zones categories.- grid_models
A Python dictionary where each key corresponds to the name of the grid models where properties need to be made empty. The value associated to this key should be a list of property names to modify. If a string
all
is assigned instead of a list, all available properties for this grid model name will be used. Alternatively, if a list of grid models names is given instead of a dictionary, the method will apply to all properties within these grid models.
Known issues
None for now
Examples to run from RMS
Example 1
from fmu.tools.rms import qcreset
import roxar
SETUP = {
"project": project,
"horizons": {
"horizon_category_1": ["horizon_name_1", "horizon_name_2"],
"horizon_category_2": [
"horizon_name_1",
"horizon_name_2",
"horizon_name_3",
"horizon_name_4"
],
"horizon_category_3": "all"
},
"zones": ["zone_category_1"],
"grid_models": {
"Geogrid": ["property_1", "property_2"],
"Simgrid": "all"
},
"value": 0.0
}
if __name__ == "__main__":
qcreset.set_data_constant(SETUP)
Example 2
from fmu.tools.rms import qcreset
import roxar
# We split the work into 2 different setups here in order to use different
# values for different properties (continuous versus discrete)
SETUP1 = {
"project": project,
"grid_models": {
"Geogrid": ["continuous_property_1", "continuous_property_2"]
},
"value": -5.0
}
SETUP2 = {
"project": project,
"grid_models": {
"Geogrid": ["discrete_property_1", "discrete_property_2"]
},
"value": 999
}
if __name__ == "__main__":
qcreset.set_data_constant(SETUP1)
qcreset.set_data_constant(SETUP2)