mirror of
https://github.com/OPM/ResInsight.git
synced 2025-02-25 18:55:39 -06:00
100 lines
4.0 KiB
Python
100 lines
4.0 KiB
Python
import rips.Case # Circular import of Case, which already imports View. Use full name.
|
|
from rips.Commands import Commands
|
|
from rips.PdmObject import PdmObject
|
|
|
|
class View (PdmObject):
|
|
"""ResInsight view class
|
|
|
|
Attributes:
|
|
id(int): View Id corresponding to the View Id in ResInsight project.
|
|
|
|
"""
|
|
def __init__(self, pbmObject):
|
|
self.id = pbmObject.getValue("ViewId")
|
|
|
|
PdmObject.__init__(self, pbmObject.pb2Object, pbmObject.channel)
|
|
|
|
def showGridBox(self):
|
|
"""Check if the grid box is meant to be shown in the view"""
|
|
return self.getValue("ShowGridBox")
|
|
|
|
def setShowGridBox(self, value):
|
|
"""Set if the grid box is meant to be shown in the view"""
|
|
self.setValue("ShowGridBox", value)
|
|
|
|
def backgroundColor(self):
|
|
"""Get the current background color in the view"""
|
|
return self.getValue("ViewBackgroundColor")
|
|
|
|
def setBackgroundColor(self, bgColor):
|
|
"""Set the background color in the view"""
|
|
self.setValue("ViewBackgroundColor", bgColor)
|
|
|
|
def cellResult(self):
|
|
"""Retrieve the current cell results"""
|
|
return self.children("GridCellResult")[0]
|
|
|
|
def applyCellResult(self, resultType, resultVariable):
|
|
"""Apply a regular cell result
|
|
|
|
Arguments:
|
|
resultType (str): String representing the result category. The valid values are
|
|
- DYNAMIC_NATIVE
|
|
- STATIC_NATIVE
|
|
- SOURSIMRL
|
|
- GENERATED
|
|
- INPUT_PROPERTY
|
|
- FORMATION_NAMES
|
|
- FLOW_DIAGNOSTICS
|
|
- INJECTION_FLOODING
|
|
resultVariable (str): String representing the result variable.
|
|
"""
|
|
cellResult = self.cellResult()
|
|
cellResult.setValue("ResultType", resultType)
|
|
cellResult.setValue("ResultVariable", resultVariable)
|
|
cellResult.update()
|
|
|
|
def applyFlowDiagnosticsCellResult(self,
|
|
resultVariable = 'TOF',
|
|
selectionMode = 'FLOW_TR_BY_SELECTION',
|
|
injectors = [],
|
|
producers = []):
|
|
"""Apply a flow diagnostics cell result
|
|
|
|
Arguments:
|
|
resultVariable (str): String representing the result value
|
|
The valid values are 'TOF', 'Fraction', 'MaxFractionTracer' and 'Communication'.
|
|
selectionMode (str): String specifying which tracers to select.
|
|
The valid values are
|
|
- FLOW_TR_INJ_AND_PROD (all injector and producer tracers),
|
|
- FLOW_TR_PRODUCERS (all producers)
|
|
- FLOW_TR_INJECTORS (all injectors),
|
|
- FLOW_TR_BY_SELECTION (specify individual tracers in the
|
|
injectorTracers and producerTracers variables)
|
|
injectorTracers (list): List of injector names (strings) to select.
|
|
Requires selectionMode to be 'FLOW_TR_BY_SELECTION'.
|
|
producerTracers (list): List of producer tracers (strings) to select.
|
|
Requires selectionMode to be 'FLOW_TR_BY_SELECTION'.
|
|
"""
|
|
cellResult = self.cellResult()
|
|
cellResult.setValue("ResultType", "FLOW_DIAGNOSTICS")
|
|
cellResult.setValue("ResultVariable", resultVariable)
|
|
cellResult.setValue("FlowTracerSelectionMode", selectionMode)
|
|
if selectionMode == 'FLOW_TR_BY_SELECTION':
|
|
cellResult.setValue("SelectedInjectorTracers", injectors)
|
|
cellResult.setValue("SelectedProducerTracers", producers)
|
|
cellResult.update()
|
|
|
|
def case(self):
|
|
"""Get the case the view belongs to"""
|
|
pdmCase = self.ancestor("EclipseCase")
|
|
if pdmCase is None:
|
|
pdmCase = self.ancestor("ResInsightGeoMechCase")
|
|
if pdmCase is None:
|
|
return None
|
|
return rips.Case(self.channel, pdmCase.getValue("CaseId"))
|
|
|
|
def clone(self):
|
|
"""Clone the current view"""
|
|
viewId = Commands(self.channel).cloneView(self.id)
|
|
return self.case().view(viewId) |