Skip to content

Commit

Permalink
Inplace volumetrics container (#13)
Browse files Browse the repository at this point in the history
* Initial setup for inplace volumetrics container

* Added support for multiple ensembles and multiple input sources

* Added option to set initial response

* Remove erroneous commited file

* Added WebvizContainer parent class

* Added test

* Fixed linting

* Updated container description. Removed title

* Updated example

* Linting

* Linting

* Linting

* Added more readiable abbreviations for responses

* Capitalize group categories

* Unstack histogram and barchart

* Changed data source to key value pairs

* linting

* Linting

* Linting

* Fixed test

* Linting and descriptions

* Linting

* Linting
  • Loading branch information
Hans Kallekleiv authored Aug 5, 2019
1 parent 257c2ff commit 05f190e
Show file tree
Hide file tree
Showing 8 changed files with 515 additions and 3 deletions.
7 changes: 7 additions & 0 deletions examples/basic_example.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,13 @@ pages:
- iter-0
- iter-1
- ...some other text
- title: Inplace volumes
content:
- container: InplaceVolumes
ensembles: [iter-0, iter-1]
volfiles:
geogrid: geogrid--oil.csv
simgrid: simgrid--oil.csv
- title: Morris Plot
content:
- Some text...
Expand Down
3 changes: 2 additions & 1 deletion setup.py
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,8 @@
'SubsurfaceMap = webviz_subsurface.containers:SubsurfaceMap',
'HistoryMatch = webviz_subsurface.containers:HistoryMatch',
'Intersect = webviz_subsurface.containers:Intersect',
'MorrisPlot = webviz_subsurface.containers:MorrisPlot'
'MorrisPlot = webviz_subsurface.containers:MorrisPlot',
'InplaceVolumes = webviz_subsurface.containers:InplaceVolumes'
]
},
install_requires=[
Expand Down
49 changes: 49 additions & 0 deletions tests/data/volumes.csv
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
,REAL,ZONE,REGION,BULK_OIL,PORE_OIL,HCPV_OIL,STOIIP_OIL,SOURCE,ENSEMBLE
0,0,UpperReek,1,270670977.21,36209849.12,26697881.75,16791120.31,geogrid--oil.csv,iter-0
1,0,UpperReek,2,0.0,0.0,0.0,0.0,geogrid--oil.csv,iter-0
2,0,MidReek,1,227473915.58,43010880.29,33798549.22,21256948.84,geogrid--oil.csv,iter-0
3,0,MidReek,2,0.0,0.0,0.0,0.0,geogrid--oil.csv,iter-0
4,0,LowerReek,1,109050604.14,22837548.61,17960538.6,11295936.04,geogrid--oil.csv,iter-0
5,0,LowerReek,2,0.0,0.0,0.0,0.0,geogrid--oil.csv,iter-0
6,1,UpperReek,1,287480145.48,42044887.24,31573544.67,19857574.93,geogrid--oil.csv,iter-0
7,1,UpperReek,2,0.0,0.0,0.0,0.0,geogrid--oil.csv,iter-0
8,1,MidReek,1,246009118.95,41685476.7,31866270.79,20041679.41,geogrid--oil.csv,iter-0
9,1,MidReek,2,0.0,0.0,0.0,0.0,geogrid--oil.csv,iter-0
10,1,LowerReek,1,128328830.84,20646193.47,15223980.18,9574830.14,geogrid--oil.csv,iter-0
11,1,LowerReek,2,0.0,0.0,0.0,0.0,geogrid--oil.csv,iter-0
600,0,UpperReek,1,270745091.8,36218139.24,26572742.44,16712416.35,simgrid--oil.csv,iter-0
601,0,UpperReek,2,0.0,0.0,0.0,0.0,simgrid--oil.csv,iter-0
602,0,MidReek,1,227468725.74,42997755.55,33521671.33,21082811.81,simgrid--oil.csv,iter-0
603,0,MidReek,2,0.0,0.0,0.0,0.0,simgrid--oil.csv,iter-0
604,0,LowerReek,1,109061652.35,22850194.82,17804393.2,11197731.37,simgrid--oil.csv,iter-0
605,0,LowerReek,2,0.0,0.0,0.0,0.0,simgrid--oil.csv,iter-0
606,1,UpperReek,1,287474891.89,42064173.5,31401454.21,19749341.94,simgrid--oil.csv,iter-0
607,1,UpperReek,2,0.0,0.0,0.0,0.0,simgrid--oil.csv,iter-0
608,1,MidReek,1,246034689.44,41712887.98,31520645.1,19824304.77,simgrid--oil.csv,iter-0
609,1,MidReek,2,0.0,0.0,0.0,0.0,simgrid--oil.csv,iter-0
610,1,LowerReek,1,128421312.86,20680554.49,15019872.77,9446460.7,simgrid--oil.csv,iter-0
611,1,LowerReek,2,0.0,0.0,0.0,0.0,simgrid--oil.csv,iter-0
1200,0,UpperReek,1,307010956.44,51123585.38,39979648.09,25144432.35,geogrid--oil.csv,iter-1
1201,0,UpperReek,2,0.0,0.0,0.0,0.0,geogrid--oil.csv,iter-1
1202,0,MidReek,1,211606760.34,40541007.07,31831765.65,20019978.07,geogrid--oil.csv,iter-1
1203,0,MidReek,2,0.0,0.0,0.0,0.0,geogrid--oil.csv,iter-1
1204,0,LowerReek,1,120763376.77,25791323.54,20397224.65,12828442.96,geogrid--oil.csv,iter-1
1205,0,LowerReek,2,0.0,0.0,0.0,0.0,geogrid--oil.csv,iter-1
1206,1,UpperReek,1,286665499.63,49040202.67,38409265.81,24156770.54,geogrid--oil.csv,iter-1
1207,1,UpperReek,2,0.0,0.0,0.0,0.0,geogrid--oil.csv,iter-1
1208,1,MidReek,1,240949831.74,45932975.82,35870461.43,22560038.26,geogrid--oil.csv,iter-1
1209,1,MidReek,2,0.0,0.0,0.0,0.0,geogrid--oil.csv,iter-1
1210,1,LowerReek,1,127431175.43,26506798.39,20985353.34,13198335.21,geogrid--oil.csv,iter-1
1211,1,LowerReek,2,0.0,0.0,0.0,0.0,geogrid--oil.csv,iter-1
1800,0,UpperReek,1,307007641.65,51160181.95,39766289.74,25010244.7,simgrid--oil.csv,iter-1
1801,0,UpperReek,2,0.0,0.0,0.0,0.0,simgrid--oil.csv,iter-1
1802,0,MidReek,1,211640640.97,40545682.55,31584059.1,19864187.77,simgrid--oil.csv,iter-1
1803,0,MidReek,2,0.0,0.0,0.0,0.0,simgrid--oil.csv,iter-1
1804,0,LowerReek,1,120787688.58,25788106.79,20130931.39,12660962.93,simgrid--oil.csv,iter-1
1805,0,LowerReek,2,0.0,0.0,0.0,0.0,simgrid--oil.csv,iter-1
1806,1,UpperReek,1,286605194.34,49057229.28,38209619.65,24031206.92,simgrid--oil.csv,iter-1
1807,1,UpperReek,2,0.0,0.0,0.0,0.0,simgrid--oil.csv,iter-1
1808,1,MidReek,1,240955973.58,45947434.27,35544281.23,22354893.47,simgrid--oil.csv,iter-1
1809,1,MidReek,2,0.0,0.0,0.0,0.0,simgrid--oil.csv,iter-1
1810,1,LowerReek,1,127504304.67,26525294.28,20736203.82,13041637.4,simgrid--oil.csv,iter-1
1811,1,LowerReek,2,0.0,0.0,0.0,0.0,simgrid--oil.csv,iter-1
36 changes: 36 additions & 0 deletions tests/test_inplace_volumes.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
import mock
import dash
import pandas as pd
from webviz_config.common_cache import cache
from webviz_config.containers import InplaceVolumes

# mocked functions
extract_volumes = 'webviz_subsurface.containers'\
'._inplace_volumes.extract_volumes'


def test_inplace_volumes(dash_duo):

app = dash.Dash(__name__)
app.css.config.serve_locally = True
app.scripts.config.serve_locally = True
app.config.suppress_callback_exceptions = True
cache.init_app(app.server)
container_settings = {'scratch_ensembles': {'iter-0': '', 'iter-1': ''}}
ensembles = ['iter-0', 'iter-1']
volfiles = {'geogrid': 'geogrid--oil.csv', 'simgrid': 'simgrid--oil.csv'}

with mock.patch(extract_volumes) as mock_volumes:
mock_volumes.return_value = pd.read_csv('tests/data/volumes.csv')

vol = InplaceVolumes(app, container_settings, ensembles, volfiles)

app.layout = vol.layout
dash_duo.start_server(app)

if 'Stock Tank Oil Initially Inplace' not in dash_duo.wait_for_element(
f'#{vol.response_id}').text:
raise AssertionError()

if dash_duo.get_logs() != []:
raise AssertionError()
4 changes: 3 additions & 1 deletion webviz_subsurface/containers/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,7 @@
from ._history_match import HistoryMatch
from ._intersect import Intersect
from ._morris_plot import MorrisPlot
from ._inplace_volumes import InplaceVolumes


__all__ = ['SummaryStats',
Expand All @@ -38,4 +39,5 @@
'SubsurfaceMap',
'HistoryMatch',
'Intersect',
'MorrisPlot']
'MorrisPlot',
'InplaceVolumes']
Loading

0 comments on commit 05f190e

Please sign in to comment.