subscript 1.6.2__tar.gz → 1.7.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {subscript-1.6.2 → subscript-1.7.0}/PKG-INFO +1 -1
- subscript-1.7.0/docs/scripts/grav_subs_points.rst +7 -0
- {subscript-1.6.2 → subscript-1.7.0}/pyproject.toml +1 -0
- {subscript-1.6.2 → subscript-1.7.0}/src/subscript/config_jobs/GRAV_SUBS_MAPS +1 -0
- subscript-1.7.0/src/subscript/config_jobs/GRAV_SUBS_POINTS +10 -0
- {subscript-1.6.2 → subscript-1.7.0}/src/subscript/grav_subs_maps/grav_subs_maps.py +17 -14
- subscript-1.7.0/src/subscript/grav_subs_points/grav_subs_points.py +446 -0
- {subscript-1.6.2 → subscript-1.7.0}/src/subscript/version.py +2 -2
- {subscript-1.6.2 → subscript-1.7.0}/src/subscript.egg-info/PKG-INFO +1 -1
- {subscript-1.6.2 → subscript-1.7.0}/src/subscript.egg-info/SOURCES.txt +40 -2
- {subscript-1.6.2 → subscript-1.7.0}/src/subscript.egg-info/entry_points.txt +1 -0
- subscript-1.7.0/tests/__init__.py +0 -0
- subscript-1.7.0/tests/data/drogon/eclipse/include/edit/drogon.trans +7511 -0
- subscript-1.7.0/tests/data/drogon/eclipse/include/grid/drogon.faults +174 -0
- subscript-1.7.0/tests/data/drogon/eclipse/include/grid/drogon.grid +0 -0
- subscript-1.7.0/tests/data/drogon/eclipse/include/grid/drogon.multnum +473 -0
- subscript-1.7.0/tests/data/drogon/eclipse/include/grid/drogon.multregt +45 -0
- subscript-1.7.0/tests/data/drogon/eclipse/include/grid/drogon.perm +0 -0
- subscript-1.7.0/tests/data/drogon/eclipse/include/grid/drogon.poro +0 -0
- subscript-1.7.0/tests/data/drogon/eclipse/include/props/drogon.pvt +476 -0
- subscript-1.7.0/tests/data/drogon/eclipse/include/props/drogon.sattab +1037 -0
- subscript-1.7.0/tests/data/drogon/eclipse/include/props/drogon.swatinit +0 -0
- subscript-1.7.0/tests/data/drogon/eclipse/include/regions/drogon.eqlnum +0 -0
- subscript-1.7.0/tests/data/drogon/eclipse/include/regions/drogon.fipnum +0 -0
- subscript-1.7.0/tests/data/drogon/eclipse/include/regions/drogon.fipzon +22641 -0
- subscript-1.7.0/tests/data/drogon/eclipse/include/regions/drogon.pvtnum +0 -0
- subscript-1.7.0/tests/data/drogon/eclipse/include/regions/drogon.satnum +0 -0
- subscript-1.7.0/tests/data/drogon/eclipse/include/runspec/drogon.dimens +3 -0
- subscript-1.7.0/tests/data/drogon/eclipse/include/runspec/drogon.eqldims +4 -0
- subscript-1.7.0/tests/data/drogon/eclipse/include/runspec/drogon.gridopts +3 -0
- subscript-1.7.0/tests/data/drogon/eclipse/include/runspec/drogon.regdims +4 -0
- subscript-1.7.0/tests/data/drogon/eclipse/include/runspec/drogon.tabdims +4 -0
- subscript-1.7.0/tests/data/drogon/eclipse/include/schedule/55_33-1.sch +6329 -0
- subscript-1.7.0/tests/data/drogon/eclipse/include/schedule/55_33-1.wells +45 -0
- subscript-1.7.0/tests/data/drogon/eclipse/include/schedule/drogon_hist.sch +1731 -0
- subscript-1.7.0/tests/data/drogon/eclipse/include/schedule/vfp/A-1.inc +2163 -0
- subscript-1.7.0/tests/data/drogon/eclipse/include/schedule/vfp/A-2.inc +2163 -0
- subscript-1.7.0/tests/data/drogon/eclipse/include/schedule/vfp/A-3.inc +2163 -0
- subscript-1.7.0/tests/data/drogon/eclipse/include/schedule/vfp/A-4.inc +2164 -0
- subscript-1.7.0/tests/data/drogon/eclipse/include/solution/drogon.equil +10 -0
- subscript-1.7.0/tests/data/drogon/eclipse/include/solution/drogon.rxvd +31 -0
- subscript-1.7.0/tests/data/drogon/eclipse/include/solution/drogon.thpres +24 -0
- subscript-1.7.0/tests/data/drogon/eclipse/include/summary/drogon.summary +371 -0
- subscript-1.7.0/tests/data/drogon/eclipse/model/DROGON-0.DATA +257 -0
- {subscript-1.6.2 → subscript-1.7.0}/tests/test_check_swatinit_simulators.py +3 -30
- {subscript-1.6.2 → subscript-1.7.0}/tests/test_grav_subs_maps.py +25 -2
- subscript-1.7.0/tests/test_grav_subs_points.py +251 -0
- {subscript-1.6.2 → subscript-1.7.0}/tests/test_hook_implementations.py +1 -0
- {subscript-1.6.2 → subscript-1.7.0}/tests/test_prtvol2csv.py +38 -0
- {subscript-1.6.2 → subscript-1.7.0}/tests/test_ri_wellmod.py +0 -3
- subscript-1.6.2/tests/testdata_gravity/grav_subs_maps_hist.yml → subscript-1.7.0/tests/testdata_gravity/grav_subs_maps.yml +2 -2
- {subscript-1.6.2 → subscript-1.7.0}/tests/testdata_gravity/grav_subs_points.yml +3 -3
- subscript-1.7.0/tests/utils.py +50 -0
- {subscript-1.6.2 → subscript-1.7.0}/.github/workflows/codecov.yml +0 -0
- {subscript-1.6.2 → subscript-1.7.0}/.github/workflows/publish.yml +0 -0
- {subscript-1.6.2 → subscript-1.7.0}/.github/workflows/subscript.yml +0 -0
- {subscript-1.6.2 → subscript-1.7.0}/.gitignore +0 -0
- {subscript-1.6.2 → subscript-1.7.0}/.pylintrc +0 -0
- {subscript-1.6.2 → subscript-1.7.0}/LICENSE +0 -0
- {subscript-1.6.2 → subscript-1.7.0}/README.md +0 -0
- {subscript-1.6.2 → subscript-1.7.0}/SECURITY.md +0 -0
- {subscript-1.6.2 → subscript-1.7.0}/ci/testkomodo.sh +0 -0
- {subscript-1.6.2 → subscript-1.7.0}/docs/Makefile +0 -0
- {subscript-1.6.2 → subscript-1.7.0}/docs/_static/equinor-logo.png +0 -0
- {subscript-1.6.2 → subscript-1.7.0}/docs/_static/equinor-logo2.jpg +0 -0
- {subscript-1.6.2 → subscript-1.7.0}/docs/_static/equinor-logo2.png +0 -0
- {subscript-1.6.2 → subscript-1.7.0}/docs/_static/equinor_logo.jpg +0 -0
- {subscript-1.6.2 → subscript-1.7.0}/docs/_static/equinor_logo_only.jpg +0 -0
- {subscript-1.6.2 → subscript-1.7.0}/docs/_templates/layout.html +0 -0
- {subscript-1.6.2 → subscript-1.7.0}/docs/conf.py +0 -0
- {subscript-1.6.2 → subscript-1.7.0}/docs/contributing.rst +0 -0
- {subscript-1.6.2 → subscript-1.7.0}/docs/history.rst +0 -0
- {subscript-1.6.2 → subscript-1.7.0}/docs/index.rst +0 -0
- {subscript-1.6.2 → subscript-1.7.0}/docs/make.bat +0 -0
- {subscript-1.6.2 → subscript-1.7.0}/docs/overview.rst +0 -0
- {subscript-1.6.2 → subscript-1.7.0}/docs/scripts/bjobsusers.rst +0 -0
- {subscript-1.6.2 → subscript-1.7.0}/docs/scripts/casegen_upcars.rst +0 -0
- {subscript-1.6.2 → subscript-1.7.0}/docs/scripts/check_swatinit.rst +0 -0
- {subscript-1.6.2 → subscript-1.7.0}/docs/scripts/convert_grid_format.rst +0 -0
- {subscript-1.6.2 → subscript-1.7.0}/docs/scripts/csv2ofmvol.rst +0 -0
- {subscript-1.6.2 → subscript-1.7.0}/docs/scripts/csv_merge.rst +0 -0
- {subscript-1.6.2 → subscript-1.7.0}/docs/scripts/csv_stack.rst +0 -0
- {subscript-1.6.2 → subscript-1.7.0}/docs/scripts/eclcompress.rst +0 -0
- {subscript-1.6.2 → subscript-1.7.0}/docs/scripts/ecldiff2roff.rst +0 -0
- {subscript-1.6.2 → subscript-1.7.0}/docs/scripts/fmu_copy_revision.rst +0 -0
- {subscript-1.6.2 → subscript-1.7.0}/docs/scripts/fmuobs.rst +0 -0
- {subscript-1.6.2 → subscript-1.7.0}/docs/scripts/grav_subs_maps.rst +0 -0
- {subscript-1.6.2 → subscript-1.7.0}/docs/scripts/images/Pack_sim_overview.png +0 -0
- {subscript-1.6.2 → subscript-1.7.0}/docs/scripts/images/Summaryplot-ensemble.png +0 -0
- {subscript-1.6.2 → subscript-1.7.0}/docs/scripts/images/Summaryplot-ert.png +0 -0
- {subscript-1.6.2 → subscript-1.7.0}/docs/scripts/images/Summaryplot-normalizeexample.png +0 -0
- {subscript-1.6.2 → subscript-1.7.0}/docs/scripts/images/Workflow_sector2fluxnum.png +0 -0
- {subscript-1.6.2 → subscript-1.7.0}/docs/scripts/images/casegen_upcars_geometry.png +0 -0
- {subscript-1.6.2 → subscript-1.7.0}/docs/scripts/images/check_swatinit_scatter.png +0 -0
- {subscript-1.6.2 → subscript-1.7.0}/docs/scripts/images/check_swatinit_volplot.png +0 -0
- {subscript-1.6.2 → subscript-1.7.0}/docs/scripts/images/ecl-swat-initialization.png +0 -0
- {subscript-1.6.2 → subscript-1.7.0}/docs/scripts/images/make_check_swatinit_images.sh +0 -0
- {subscript-1.6.2 → subscript-1.7.0}/docs/scripts/images/resinsight_wells_project_example.png +0 -0
- {subscript-1.6.2 → subscript-1.7.0}/docs/scripts/interp_relperm.rst +0 -0
- {subscript-1.6.2 → subscript-1.7.0}/docs/scripts/merge_rft_ertobs.rst +0 -0
- {subscript-1.6.2 → subscript-1.7.0}/docs/scripts/merge_unrst_files.rst +0 -0
- {subscript-1.6.2 → subscript-1.7.0}/docs/scripts/ofmvol2csv.rst +0 -0
- {subscript-1.6.2 → subscript-1.7.0}/docs/scripts/pack_sim.rst +0 -0
- {subscript-1.6.2 → subscript-1.7.0}/docs/scripts/params2csv.rst +0 -0
- {subscript-1.6.2 → subscript-1.7.0}/docs/scripts/presentvalue.rst +0 -0
- {subscript-1.6.2 → subscript-1.7.0}/docs/scripts/prtvol2csv.csv +0 -0
- {subscript-1.6.2 → subscript-1.7.0}/docs/scripts/prtvol2csv.rst +0 -0
- {subscript-1.6.2 → subscript-1.7.0}/docs/scripts/restartthinner.rst +0 -0
- {subscript-1.6.2 → subscript-1.7.0}/docs/scripts/ri_wellmod.rst +0 -0
- {subscript-1.6.2 → subscript-1.7.0}/docs/scripts/rmsecl_volumetrics.rst +0 -0
- {subscript-1.6.2 → subscript-1.7.0}/docs/scripts/runeclipse.rst +0 -0
- {subscript-1.6.2 → subscript-1.7.0}/docs/scripts/sector2fluxnum.rst +0 -0
- {subscript-1.6.2 → subscript-1.7.0}/docs/scripts/summaryplot.rst +0 -0
- {subscript-1.6.2 → subscript-1.7.0}/docs/scripts/sunsch.rst +0 -0
- {subscript-1.6.2 → subscript-1.7.0}/docs/scripts/sw_model_utilities.rst +0 -0
- {subscript-1.6.2 → subscript-1.7.0}/docs/scripts/vfp2csv.rst +0 -0
- {subscript-1.6.2 → subscript-1.7.0}/docs/scripts/welltest_dpds.rst +0 -0
- {subscript-1.6.2 → subscript-1.7.0}/docs/usage.rst +0 -0
- {subscript-1.6.2 → subscript-1.7.0}/setup.cfg +0 -0
- {subscript-1.6.2 → subscript-1.7.0}/src/subscript/__init__.py +0 -0
- {subscript-1.6.2 → subscript-1.7.0}/src/subscript/bjobsusers/__init__.py +0 -0
- {subscript-1.6.2 → subscript-1.7.0}/src/subscript/bjobsusers/bjobsusers.py +0 -0
- {subscript-1.6.2 → subscript-1.7.0}/src/subscript/casegen_upcars/__init__.py +0 -0
- {subscript-1.6.2 → subscript-1.7.0}/src/subscript/casegen_upcars/casegen_upcars.py +0 -0
- {subscript-1.6.2 → subscript-1.7.0}/src/subscript/casegen_upcars/model.py +0 -0
- {subscript-1.6.2 → subscript-1.7.0}/src/subscript/casegen_upcars/udf.py +0 -0
- {subscript-1.6.2 → subscript-1.7.0}/src/subscript/casegen_upcars/udf_arg_parser.py +0 -0
- {subscript-1.6.2 → subscript-1.7.0}/src/subscript/check_swatinit/__init__.py +0 -0
- {subscript-1.6.2 → subscript-1.7.0}/src/subscript/check_swatinit/check_swatinit.py +0 -0
- {subscript-1.6.2 → subscript-1.7.0}/src/subscript/check_swatinit/constants.py +0 -0
- {subscript-1.6.2 → subscript-1.7.0}/src/subscript/check_swatinit/pillarmodel.py +0 -0
- {subscript-1.6.2 → subscript-1.7.0}/src/subscript/check_swatinit/plotter.py +0 -0
- {subscript-1.6.2 → subscript-1.7.0}/src/subscript/config_jobs/CASEGEN_UPCARS +0 -0
- {subscript-1.6.2 → subscript-1.7.0}/src/subscript/config_jobs/CHECK_SWATINIT +0 -0
- {subscript-1.6.2 → subscript-1.7.0}/src/subscript/config_jobs/CSV2OFMVOL +0 -0
- {subscript-1.6.2 → subscript-1.7.0}/src/subscript/config_jobs/CSV_STACK +0 -0
- {subscript-1.6.2 → subscript-1.7.0}/src/subscript/config_jobs/ECLCOMPRESS +0 -0
- {subscript-1.6.2 → subscript-1.7.0}/src/subscript/config_jobs/ECLDIFF2ROFF +0 -0
- {subscript-1.6.2 → subscript-1.7.0}/src/subscript/config_jobs/ECLGRID2ROFF +0 -0
- {subscript-1.6.2 → subscript-1.7.0}/src/subscript/config_jobs/ECLINIT2ROFF +0 -0
- {subscript-1.6.2 → subscript-1.7.0}/src/subscript/config_jobs/ECLRST2ROFF +0 -0
- {subscript-1.6.2 → subscript-1.7.0}/src/subscript/config_jobs/INTERP_RELPERM +0 -0
- {subscript-1.6.2 → subscript-1.7.0}/src/subscript/config_jobs/MERGE_RFT_ERTOBS +0 -0
- {subscript-1.6.2 → subscript-1.7.0}/src/subscript/config_jobs/MERGE_UNRST_FILES +0 -0
- {subscript-1.6.2 → subscript-1.7.0}/src/subscript/config_jobs/OFMVOL2CSV +0 -0
- {subscript-1.6.2 → subscript-1.7.0}/src/subscript/config_jobs/PARAMS2CSV +0 -0
- {subscript-1.6.2 → subscript-1.7.0}/src/subscript/config_jobs/PRTVOL2CSV +0 -0
- {subscript-1.6.2 → subscript-1.7.0}/src/subscript/config_jobs/RI_WELLMOD +0 -0
- {subscript-1.6.2 → subscript-1.7.0}/src/subscript/config_jobs/SUNSCH +0 -0
- {subscript-1.6.2 → subscript-1.7.0}/src/subscript/config_jobs/WELLTEST_DPDS +0 -0
- {subscript-1.6.2 → subscript-1.7.0}/src/subscript/convert_grid_format/__init__.py +0 -0
- {subscript-1.6.2 → subscript-1.7.0}/src/subscript/convert_grid_format/convert_grid_format.py +0 -0
- {subscript-1.6.2 → subscript-1.7.0}/src/subscript/csv2ofmvol/__init__.py +0 -0
- {subscript-1.6.2 → subscript-1.7.0}/src/subscript/csv2ofmvol/csv2ofmvol.py +0 -0
- {subscript-1.6.2 → subscript-1.7.0}/src/subscript/csv_merge/__init__.py +0 -0
- {subscript-1.6.2 → subscript-1.7.0}/src/subscript/csv_merge/csv_merge.py +0 -0
- {subscript-1.6.2 → subscript-1.7.0}/src/subscript/csv_stack/__init__.py +0 -0
- {subscript-1.6.2 → subscript-1.7.0}/src/subscript/csv_stack/csv_stack.py +0 -0
- {subscript-1.6.2 → subscript-1.7.0}/src/subscript/eclcompress/__init__.py +0 -0
- {subscript-1.6.2 → subscript-1.7.0}/src/subscript/eclcompress/allowlist.py +0 -0
- {subscript-1.6.2 → subscript-1.7.0}/src/subscript/eclcompress/eclcompress.py +0 -0
- {subscript-1.6.2 → subscript-1.7.0}/src/subscript/ecldiff2roff/__init__.py +0 -0
- {subscript-1.6.2 → subscript-1.7.0}/src/subscript/ecldiff2roff/ecldiff2roff.py +0 -0
- {subscript-1.6.2 → subscript-1.7.0}/src/subscript/eclgrid2roff/eclgrid2roff.py +0 -0
- {subscript-1.6.2 → subscript-1.7.0}/src/subscript/eclinit2roff/eclinit2roff.py +0 -0
- {subscript-1.6.2 → subscript-1.7.0}/src/subscript/eclrst2roff/eclrst2roff.py +0 -0
- {subscript-1.6.2 → subscript-1.7.0}/src/subscript/fmu_copy_revision/__init__.py +0 -0
- {subscript-1.6.2 → subscript-1.7.0}/src/subscript/fmu_copy_revision/fmu_copy_revision.py +0 -0
- {subscript-1.6.2 → subscript-1.7.0}/src/subscript/fmuobs/__init__.py +0 -0
- {subscript-1.6.2 → subscript-1.7.0}/src/subscript/fmuobs/fmuobs.py +0 -0
- {subscript-1.6.2 → subscript-1.7.0}/src/subscript/fmuobs/parsers.py +0 -0
- {subscript-1.6.2 → subscript-1.7.0}/src/subscript/fmuobs/util.py +0 -0
- {subscript-1.6.2 → subscript-1.7.0}/src/subscript/fmuobs/writers.py +0 -0
- {subscript-1.6.2 → subscript-1.7.0}/src/subscript/grav_subs_maps/__init__.py +0 -0
- {subscript-1.6.2/src/subscript/hook_implementations → subscript-1.7.0/src/subscript/grav_subs_points}/__init__.py +0 -0
- {subscript-1.6.2/src/subscript/interp_relperm → subscript-1.7.0/src/subscript/hook_implementations}/__init__.py +0 -0
- {subscript-1.6.2 → subscript-1.7.0}/src/subscript/hook_implementations/jobs.py +0 -0
- {subscript-1.6.2/src/subscript/merge_rft_ertobs → subscript-1.7.0/src/subscript/interp_relperm}/__init__.py +0 -0
- {subscript-1.6.2 → subscript-1.7.0}/src/subscript/interp_relperm/interp_relperm.py +0 -0
- {subscript-1.6.2 → subscript-1.7.0}/src/subscript/legacy/duf +0 -0
- {subscript-1.6.2 → subscript-1.7.0}/src/subscript/legacy/eclmanual +0 -0
- {subscript-1.6.2 → subscript-1.7.0}/src/subscript/legacy/ertwatch +0 -0
- {subscript-1.6.2 → subscript-1.7.0}/src/subscript/legacy/list_rms_usage +0 -0
- {subscript-1.6.2 → subscript-1.7.0}/src/subscript/legacy/nosim +0 -0
- {subscript-1.6.2 → subscript-1.7.0}/src/subscript/legacy/runeclipse +0 -0
- {subscript-1.6.2/src/subscript/merge_unrst_files → subscript-1.7.0/src/subscript/merge_rft_ertobs}/__init__.py +0 -0
- {subscript-1.6.2 → subscript-1.7.0}/src/subscript/merge_rft_ertobs/merge_rft_ertobs.py +0 -0
- {subscript-1.6.2/src/subscript/ofmvol2csv → subscript-1.7.0/src/subscript/merge_unrst_files}/__init__.py +0 -0
- {subscript-1.6.2 → subscript-1.7.0}/src/subscript/merge_unrst_files/merge_unrst_files.py +0 -0
- {subscript-1.6.2/src/subscript/pack_sim → subscript-1.7.0/src/subscript/ofmvol2csv}/__init__.py +0 -0
- {subscript-1.6.2 → subscript-1.7.0}/src/subscript/ofmvol2csv/ofmvol2csv.py +0 -0
- {subscript-1.6.2/src/subscript/params2csv → subscript-1.7.0/src/subscript/pack_sim}/__init__.py +0 -0
- {subscript-1.6.2 → subscript-1.7.0}/src/subscript/pack_sim/pack_sim.py +0 -0
- {subscript-1.6.2/src/subscript/presentvalue → subscript-1.7.0/src/subscript/params2csv}/__init__.py +0 -0
- {subscript-1.6.2 → subscript-1.7.0}/src/subscript/params2csv/params2csv.py +0 -0
- {subscript-1.6.2/src/subscript/prtvol2csv → subscript-1.7.0/src/subscript/presentvalue}/__init__.py +0 -0
- {subscript-1.6.2 → subscript-1.7.0}/src/subscript/presentvalue/presentvalue.py +0 -0
- {subscript-1.6.2/src/subscript/restartthinner → subscript-1.7.0/src/subscript/prtvol2csv}/__init__.py +0 -0
- {subscript-1.6.2 → subscript-1.7.0}/src/subscript/prtvol2csv/prtvol2csv.py +0 -0
- {subscript-1.6.2/src/subscript/ri_wellmod → subscript-1.7.0/src/subscript/restartthinner}/__init__.py +0 -0
- {subscript-1.6.2 → subscript-1.7.0}/src/subscript/restartthinner/restartthinner.py +0 -0
- {subscript-1.6.2/src/subscript/rmsecl_volumetrics → subscript-1.7.0/src/subscript/ri_wellmod}/__init__.py +0 -0
- {subscript-1.6.2 → subscript-1.7.0}/src/subscript/ri_wellmod/ri_wellmod.py +0 -0
- {subscript-1.6.2/src/subscript/sector2fluxnum → subscript-1.7.0/src/subscript/rmsecl_volumetrics}/__init__.py +0 -0
- {subscript-1.6.2 → subscript-1.7.0}/src/subscript/rmsecl_volumetrics/rmsecl_volumetrics.py +0 -0
- {subscript-1.6.2/src/subscript/summaryplot → subscript-1.7.0/src/subscript/sector2fluxnum}/__init__.py +0 -0
- {subscript-1.6.2 → subscript-1.7.0}/src/subscript/sector2fluxnum/completions.py +0 -0
- {subscript-1.6.2 → subscript-1.7.0}/src/subscript/sector2fluxnum/datafile_obj.py +0 -0
- {subscript-1.6.2 → subscript-1.7.0}/src/subscript/sector2fluxnum/flux_obj.py +0 -0
- {subscript-1.6.2 → subscript-1.7.0}/src/subscript/sector2fluxnum/flux_util.py +0 -0
- {subscript-1.6.2 → subscript-1.7.0}/src/subscript/sector2fluxnum/fluxfile_obj.py +0 -0
- {subscript-1.6.2 → subscript-1.7.0}/src/subscript/sector2fluxnum/sector2fluxnum.py +0 -0
- {subscript-1.6.2/src/subscript/sunsch → subscript-1.7.0/src/subscript/summaryplot}/__init__.py +0 -0
- {subscript-1.6.2 → subscript-1.7.0}/src/subscript/summaryplot/summaryplot.py +0 -0
- {subscript-1.6.2/src/subscript/sw_model_utilities → subscript-1.7.0/src/subscript/sunsch}/__init__.py +0 -0
- {subscript-1.6.2 → subscript-1.7.0}/src/subscript/sunsch/sunsch.py +0 -0
- {subscript-1.6.2 → subscript-1.7.0}/src/subscript/sunsch/time_vector.py +0 -0
- {subscript-1.6.2/src/subscript/vfp2csv → subscript-1.7.0/src/subscript/sw_model_utilities}/__init__.py +0 -0
- {subscript-1.6.2 → subscript-1.7.0}/src/subscript/sw_model_utilities/sw_model_utilities.py +0 -0
- {subscript-1.6.2/src/subscript/welltest_dpds → subscript-1.7.0/src/subscript/vfp2csv}/__init__.py +0 -0
- {subscript-1.6.2 → subscript-1.7.0}/src/subscript/vfp2csv/vfp2csv.py +0 -0
- {subscript-1.6.2/tests → subscript-1.7.0/src/subscript/welltest_dpds}/__init__.py +0 -0
- {subscript-1.6.2 → subscript-1.7.0}/src/subscript/welltest_dpds/welltest_dpds.py +0 -0
- {subscript-1.6.2 → subscript-1.7.0}/src/subscript.egg-info/dependency_links.txt +0 -0
- {subscript-1.6.2 → subscript-1.7.0}/src/subscript.egg-info/requires.txt +0 -0
- {subscript-1.6.2 → subscript-1.7.0}/src/subscript.egg-info/top_level.txt +0 -0
- {subscript-1.6.2 → subscript-1.7.0}/tests/conftest.py +0 -0
- {subscript-1.6.2 → subscript-1.7.0}/tests/data/reek/eclipse/include/grid/reek.faults +0 -0
- {subscript-1.6.2 → subscript-1.7.0}/tests/data/reek/eclipse/include/grid/reek.grid +0 -0
- {subscript-1.6.2 → subscript-1.7.0}/tests/data/reek/eclipse/include/grid/reek.multflt +0 -0
- {subscript-1.6.2 → subscript-1.7.0}/tests/data/reek/eclipse/include/grid/reek.multz +0 -0
- {subscript-1.6.2 → subscript-1.7.0}/tests/data/reek/eclipse/include/grid/reek.perm +0 -0
- {subscript-1.6.2 → subscript-1.7.0}/tests/data/reek/eclipse/include/grid/reek.poro +0 -0
- {subscript-1.6.2 → subscript-1.7.0}/tests/data/reek/eclipse/include/props/let-sgof.txt +0 -0
- {subscript-1.6.2 → subscript-1.7.0}/tests/data/reek/eclipse/include/props/let-swof.txt +0 -0
- {subscript-1.6.2 → subscript-1.7.0}/tests/data/reek/eclipse/include/props/reek.endpoints +0 -0
- {subscript-1.6.2 → subscript-1.7.0}/tests/data/reek/eclipse/include/props/reek.pvt +0 -0
- {subscript-1.6.2 → subscript-1.7.0}/tests/data/reek/eclipse/include/props/reek.swatinit +0 -0
- {subscript-1.6.2 → subscript-1.7.0}/tests/data/reek/eclipse/include/props/sgof.txt +0 -0
- {subscript-1.6.2 → subscript-1.7.0}/tests/data/reek/eclipse/include/props/swof.inc +0 -0
- {subscript-1.6.2 → subscript-1.7.0}/tests/data/reek/eclipse/include/props/swof.txt +0 -0
- {subscript-1.6.2 → subscript-1.7.0}/tests/data/reek/eclipse/include/regions/reek.eqlnum +0 -0
- {subscript-1.6.2 → subscript-1.7.0}/tests/data/reek/eclipse/include/regions/reek.fipnum +0 -0
- {subscript-1.6.2 → subscript-1.7.0}/tests/data/reek/eclipse/include/schedule/reek_history.sch +0 -0
- {subscript-1.6.2 → subscript-1.7.0}/tests/data/reek/eclipse/include/solution/reek.equil +0 -0
- {subscript-1.6.2 → subscript-1.7.0}/tests/data/reek/eclipse/include/summary/reek.smry +0 -0
- {subscript-1.6.2 → subscript-1.7.0}/tests/data/reek/eclipse/model/2_R001_REEK-0.DATA +0 -0
- {subscript-1.6.2 → subscript-1.7.0}/tests/data/reek/eclipse/model/2_R001_REEK-0.ECLEND +0 -0
- {subscript-1.6.2 → subscript-1.7.0}/tests/data/reek/eclipse/model/2_R001_REEK-0.EGRID +0 -0
- {subscript-1.6.2 → subscript-1.7.0}/tests/data/reek/eclipse/model/2_R001_REEK-0.INIT +0 -0
- {subscript-1.6.2 → subscript-1.7.0}/tests/data/reek/eclipse/model/2_R001_REEK-0.LOG +0 -0
- {subscript-1.6.2 → subscript-1.7.0}/tests/data/reek/eclipse/model/2_R001_REEK-0.PRT +0 -0
- {subscript-1.6.2 → subscript-1.7.0}/tests/data/reek/eclipse/model/2_R001_REEK-0.RFT +0 -0
- {subscript-1.6.2 → subscript-1.7.0}/tests/data/reek/eclipse/model/2_R001_REEK-0.SMSPEC +0 -0
- {subscript-1.6.2 → subscript-1.7.0}/tests/data/reek/eclipse/model/2_R001_REEK-0.UNRST +0 -0
- {subscript-1.6.2 → subscript-1.7.0}/tests/data/reek/eclipse/model/2_R001_REEK-0.UNSMRY +0 -0
- {subscript-1.6.2 → subscript-1.7.0}/tests/data/reek/eclipse/model/parameters.txt +0 -0
- {subscript-1.6.2 → subscript-1.7.0}/tests/data/reek/parameters.txt +0 -0
- {subscript-1.6.2 → subscript-1.7.0}/tests/data/reek/rms/README +0 -0
- {subscript-1.6.2 → subscript-1.7.0}/tests/data/reek/rms/reek.rms10.1.3/.master +0 -0
- {subscript-1.6.2 → subscript-1.7.0}/tests/data/reek/rms/reek.rms11.1.0/.master +0 -0
- {subscript-1.6.2 → subscript-1.7.0}/tests/data/vfp/GasProd.VFP +0 -0
- {subscript-1.6.2 → subscript-1.7.0}/tests/data/vfp/pd2.VFP +0 -0
- {subscript-1.6.2 → subscript-1.7.0}/tests/data/welltest/eclipse/model/DROGON_DST_PLT-0.SMSPEC +0 -0
- {subscript-1.6.2 → subscript-1.7.0}/tests/data/welltest/eclipse/model/DROGON_DST_PLT-0.UNSMRY +0 -0
- {subscript-1.6.2 → subscript-1.7.0}/tests/test_bjobsusers.py +0 -0
- {subscript-1.6.2 → subscript-1.7.0}/tests/test_casegen_upcars.py +0 -0
- {subscript-1.6.2 → subscript-1.7.0}/tests/test_check_swatinit.py +0 -0
- {subscript-1.6.2 → subscript-1.7.0}/tests/test_convert_grid_format.py +0 -0
- {subscript-1.6.2 → subscript-1.7.0}/tests/test_csv2ofmvol.py +0 -0
- {subscript-1.6.2 → subscript-1.7.0}/tests/test_csv_merge.py +0 -0
- {subscript-1.6.2 → subscript-1.7.0}/tests/test_csv_stack.py +0 -0
- {subscript-1.6.2 → subscript-1.7.0}/tests/test_docs.py +0 -0
- {subscript-1.6.2 → subscript-1.7.0}/tests/test_eclcompress.py +0 -0
- {subscript-1.6.2 → subscript-1.7.0}/tests/test_ecldiff2roff.py +0 -0
- {subscript-1.6.2 → subscript-1.7.0}/tests/test_fmu_copy_revision.py +0 -0
- {subscript-1.6.2 → subscript-1.7.0}/tests/test_fmuobs.py +0 -0
- {subscript-1.6.2 → subscript-1.7.0}/tests/test_fmuobs_parsers.py +0 -0
- {subscript-1.6.2 → subscript-1.7.0}/tests/test_fmuobs_writers.py +0 -0
- {subscript-1.6.2 → subscript-1.7.0}/tests/test_interp_relperm.py +0 -0
- {subscript-1.6.2 → subscript-1.7.0}/tests/test_merge_rft_ertobs.py +0 -0
- {subscript-1.6.2 → subscript-1.7.0}/tests/test_merge_unrst_files.py +0 -0
- {subscript-1.6.2 → subscript-1.7.0}/tests/test_ofmvol2csv.py +0 -0
- {subscript-1.6.2 → subscript-1.7.0}/tests/test_pack_sim.py +0 -0
- {subscript-1.6.2 → subscript-1.7.0}/tests/test_params2csv.py +0 -0
- {subscript-1.6.2 → subscript-1.7.0}/tests/test_presentvalue.py +0 -0
- {subscript-1.6.2 → subscript-1.7.0}/tests/test_restartthinner.py +0 -0
- {subscript-1.6.2 → subscript-1.7.0}/tests/test_rmsecl_volumetrics.py +0 -0
- {subscript-1.6.2 → subscript-1.7.0}/tests/test_sector2fluxnum.py +0 -0
- {subscript-1.6.2 → subscript-1.7.0}/tests/test_subscriptlogger.py +0 -0
- {subscript-1.6.2 → subscript-1.7.0}/tests/test_summaryplot.py +0 -0
- {subscript-1.6.2 → subscript-1.7.0}/tests/test_sunsch.py +0 -0
- {subscript-1.6.2 → subscript-1.7.0}/tests/test_sw_model_utilities.py +0 -0
- {subscript-1.6.2 → subscript-1.7.0}/tests/test_vfp2csv.py +0 -0
- {subscript-1.6.2 → subscript-1.7.0}/tests/test_welltest_dpds.py +0 -0
- {subscript-1.6.2 → subscript-1.7.0}/tests/testdata_casegen_upcars/demo_large_scale.yaml +0 -0
- {subscript-1.6.2 → subscript-1.7.0}/tests/testdata_casegen_upcars/demo_small_scale.yaml +0 -0
- {subscript-1.6.2 → subscript-1.7.0}/tests/testdata_casegen_upcars/dump_value.tmpl +0 -0
- {subscript-1.6.2 → subscript-1.7.0}/tests/testdata_casegen_upcars/upcars_eclipse_ref_lg.tmpl +0 -0
- {subscript-1.6.2 → subscript-1.7.0}/tests/testdata_casegen_upcars/upcars_eclipse_ref_ss.tmpl +0 -0
- {subscript-1.6.2 → subscript-1.7.0}/tests/testdata_eclcompress/permxyz.grdecl +0 -0
- {subscript-1.6.2 → subscript-1.7.0}/tests/testdata_fmuobs/drogon_wbhp_rft_wct_gor_tracer_4d.obs +0 -0
- {subscript-1.6.2 → subscript-1.7.0}/tests/testdata_fmuobs/ert-doc.csv +0 -0
- {subscript-1.6.2 → subscript-1.7.0}/tests/testdata_fmuobs/ert-doc.obs +0 -0
- {subscript-1.6.2 → subscript-1.7.0}/tests/testdata_fmuobs/ert-doc.yml +0 -0
- {subscript-1.6.2 → subscript-1.7.0}/tests/testdata_fmuobs/fmu-ensemble-obs.yml +0 -0
- {subscript-1.6.2 → subscript-1.7.0}/tests/testdata_fmuobs/hist_obs_wells.txt +0 -0
- {subscript-1.6.2 → subscript-1.7.0}/tests/testdata_fmuobs/ri-obs.csv +0 -0
- {subscript-1.6.2 → subscript-1.7.0}/tests/testdata_gravity/HIST.EGRID +0 -0
- {subscript-1.6.2 → subscript-1.7.0}/tests/testdata_gravity/HIST.INIT +0 -0
- {subscript-1.6.2 → subscript-1.7.0}/tests/testdata_gravity/HIST.UNRST +0 -0
- {subscript-1.6.2 → subscript-1.7.0}/tests/testdata_gravity/seabed.gri +0 -0
- /subscript-1.6.2/tests/testdata_gravity/station_coordinates.txt → /subscript-1.7.0/tests/testdata_gravity/station_coordinates.csv +0 -0
- {subscript-1.6.2 → subscript-1.7.0}/tests/testdata_interp_relperm/cfg.yml +0 -0
- {subscript-1.6.2 → subscript-1.7.0}/tests/testdata_interp_relperm/sgof_base.inc +0 -0
- {subscript-1.6.2 → subscript-1.7.0}/tests/testdata_interp_relperm/sgof_opt.inc +0 -0
- {subscript-1.6.2 → subscript-1.7.0}/tests/testdata_interp_relperm/sgof_pes.inc +0 -0
- {subscript-1.6.2 → subscript-1.7.0}/tests/testdata_interp_relperm/swof_base.inc +0 -0
- {subscript-1.6.2 → subscript-1.7.0}/tests/testdata_interp_relperm/swof_opt.inc +0 -0
- {subscript-1.6.2 → subscript-1.7.0}/tests/testdata_interp_relperm/swof_pes.inc +0 -0
- {subscript-1.6.2 → subscript-1.7.0}/tests/testdata_merge_rft_ertobs/drogon/gendata_rft.csv +0 -0
- {subscript-1.6.2 → subscript-1.7.0}/tests/testdata_merge_rft_ertobs/drogon/rft/R_A2.obs +0 -0
- {subscript-1.6.2 → subscript-1.7.0}/tests/testdata_merge_rft_ertobs/drogon/rft/R_A2.txt +0 -0
- {subscript-1.6.2 → subscript-1.7.0}/tests/testdata_merge_rft_ertobs/drogon/rft/R_A3.obs +0 -0
- {subscript-1.6.2 → subscript-1.7.0}/tests/testdata_merge_rft_ertobs/drogon/rft/R_A3.txt +0 -0
- {subscript-1.6.2 → subscript-1.7.0}/tests/testdata_merge_rft_ertobs/drogon/rft/R_A4.txt +0 -0
- {subscript-1.6.2 → subscript-1.7.0}/tests/testdata_merge_rft_ertobs/drogon/rft/R_A4_1.obs +0 -0
- {subscript-1.6.2 → subscript-1.7.0}/tests/testdata_merge_rft_ertobs/drogon/rft/R_A5.obs +0 -0
- {subscript-1.6.2 → subscript-1.7.0}/tests/testdata_merge_rft_ertobs/drogon/rft/R_A5.txt +0 -0
- {subscript-1.6.2 → subscript-1.7.0}/tests/testdata_merge_rft_ertobs/drogon/rft/R_A6.obs +0 -0
- {subscript-1.6.2 → subscript-1.7.0}/tests/testdata_merge_rft_ertobs/drogon/rft/R_A6.txt +0 -0
- {subscript-1.6.2 → subscript-1.7.0}/tests/testdata_merge_rft_ertobs/drogon/rft/well_date_rft.txt +0 -0
- {subscript-1.6.2 → subscript-1.7.0}/tests/testdata_merge_unrst_files/HIST.UNRST +0 -0
- {subscript-1.6.2 → subscript-1.7.0}/tests/testdata_merge_unrst_files/PRED.UNRST +0 -0
- {subscript-1.6.2 → subscript-1.7.0}/tests/testdata_ofmvol2csv/fileA.vol +0 -0
- {subscript-1.6.2 → subscript-1.7.0}/tests/testdata_ofmvol2csv/fileB.vol +0 -0
- {subscript-1.6.2 → subscript-1.7.0}/tests/testdata_ofmvol2csv/fileC.vol +0 -0
- {subscript-1.6.2 → subscript-1.7.0}/tests/testdata_ofmvol2csv/ofm_example.vol +0 -0
- {subscript-1.6.2 → subscript-1.7.0}/tests/testdata_ri_wellmod/drogon_include/grid/drogon.grid.grdecl +0 -0
- {subscript-1.6.2 → subscript-1.7.0}/tests/testdata_ri_wellmod/drogon_include/grid/drogon.ntg.grdecl +0 -0
- {subscript-1.6.2 → subscript-1.7.0}/tests/testdata_ri_wellmod/drogon_include/grid/drogon.perm.grdecl +0 -0
- {subscript-1.6.2 → subscript-1.7.0}/tests/testdata_ri_wellmod/drogon_trajectories/rft_wells.dat +0 -0
- {subscript-1.6.2 → subscript-1.7.0}/tests/testdata_ri_wellmod/drogon_trajectories/wells.dat +0 -0
- {subscript-1.6.2 → subscript-1.7.0}/tests/testdata_ri_wellmod/drogon_wells_noicd.rsp +0 -0
- {subscript-1.6.2 → subscript-1.7.0}/tests/testdata_ri_wellmod/reek_trajectories/reek_wells.dat +0 -0
- {subscript-1.6.2 → subscript-1.7.0}/tests/testdata_ri_wellmod/ri_reek_wells.rsp +0 -0
- {subscript-1.6.2 → subscript-1.7.0}/tests/testdata_sector2fluxnum/DUMPFLUX_TEST.DATA +0 -0
- {subscript-1.6.2 → subscript-1.7.0}/tests/testdata_sector2fluxnum/DUMPFLUX_TEST.EGRID +0 -0
- {subscript-1.6.2 → subscript-1.7.0}/tests/testdata_sector2fluxnum/DUMPFLUX_TEST.FLUX +0 -0
- {subscript-1.6.2 → subscript-1.7.0}/tests/testdata_sector2fluxnum/OUT_COARSE.FLUX +0 -0
- {subscript-1.6.2 → subscript-1.7.0}/tests/testdata_sector2fluxnum/TEST.DATA +0 -0
- {subscript-1.6.2 → subscript-1.7.0}/tests/testdata_sector2fluxnum/TEST.EGRID +0 -0
- {subscript-1.6.2 → subscript-1.7.0}/tests/testdata_sector2fluxnum/TEST.INIT +0 -0
- {subscript-1.6.2 → subscript-1.7.0}/tests/testdata_sector2fluxnum/TEST.UNRST +0 -0
- {subscript-1.6.2 → subscript-1.7.0}/tests/testdata_sunsch/config.yml +0 -0
- {subscript-1.6.2 → subscript-1.7.0}/tests/testdata_sunsch/emptyinit.sch +0 -0
- {subscript-1.6.2 → subscript-1.7.0}/tests/testdata_sunsch/foo1.sch +0 -0
- {subscript-1.6.2 → subscript-1.7.0}/tests/testdata_sunsch/footemplate.sch +0 -0
- {subscript-1.6.2 → subscript-1.7.0}/tests/testdata_sunsch/initwithdates.sch +0 -0
- {subscript-1.6.2 → subscript-1.7.0}/tests/testdata_sunsch/merge2.sch +0 -0
- {subscript-1.6.2 → subscript-1.7.0}/tests/testdata_sunsch/mergeme.sch +0 -0
- {subscript-1.6.2 → subscript-1.7.0}/tests/testdata_sunsch/options3.sch +0 -0
|
@@ -98,6 +98,7 @@ ecldiff2roff = "subscript.ecldiff2roff.ecldiff2roff:main"
|
|
|
98
98
|
fmu_copy_revision = "subscript.fmu_copy_revision.fmu_copy_revision:main"
|
|
99
99
|
fmuobs = "subscript.fmuobs.fmuobs:main"
|
|
100
100
|
grav_subs_maps = "subscript.grav_subs_maps.grav_subs_maps:main"
|
|
101
|
+
grav_subs_points = "subscript.grav_subs_points.grav_subs_points:main"
|
|
101
102
|
interp_relperm = "subscript.interp_relperm.interp_relperm:main"
|
|
102
103
|
merge_rft_ertobs = "subscript.merge_rft_ertobs.merge_rft_ertobs:main"
|
|
103
104
|
merge_unrst_files = "subscript.merge_unrst_files.merge_unrst_files:main"
|
|
@@ -4,7 +4,7 @@ import os
|
|
|
4
4
|
import sys
|
|
5
5
|
from datetime import date
|
|
6
6
|
from pathlib import Path
|
|
7
|
-
from typing import Any, Dict, List, Optional
|
|
7
|
+
from typing import Any, Dict, List, Optional, Tuple
|
|
8
8
|
|
|
9
9
|
import xtgeo
|
|
10
10
|
import yaml
|
|
@@ -32,6 +32,8 @@ simulation output (EGRID, INIT and UNRST files).
|
|
|
32
32
|
|
|
33
33
|
The script reads flow simulation results and a yaml configuration file specifying input
|
|
34
34
|
and calculation parameters. Output is surfaces in irap binary format.
|
|
35
|
+
For configuration of the yaml config file, see:
|
|
36
|
+
https://fmu-docs.equinor.com/docs/subscript/scripts/grav_subs_maps.html
|
|
35
37
|
"""
|
|
36
38
|
|
|
37
39
|
EPILOGUE = """
|
|
@@ -57,25 +59,28 @@ CATEGORY = "modelling.reservoir"
|
|
|
57
59
|
EXAMPLES = """
|
|
58
60
|
.. code-block:: console
|
|
59
61
|
|
|
60
|
-
FORWARD_MODEL GRAV_SUBS_MAPS(<UNRST_FILE>=<ECLBASE>.UNRST, <
|
|
62
|
+
FORWARD_MODEL GRAV_SUBS_MAPS(<UNRST_FILE>=<ECLBASE>.UNRST, <GRAVMAPS_CONFIG>=grav_subs_maps.yml)
|
|
63
|
+
FORWARD_MODEL GRAV_SUBS_MAPS(<UNRST_FILE>=<ECLBASE>.UNRST, <GRAVMAPS_CONFIG>=grav_subs_maps.yml, <OUTPUT_DIR>=share/results/maps)
|
|
64
|
+
FORWARD_MODEL GRAV_SUBS_MAPS(<UNRST_FILE>=<ECLBASE>.UNRST, <GRAVMAPS_CONFIG>=grav_subs_maps.yml, <ROOT_PATH>=<CONFIG_PATH>/../../gravity/input/, <OUTPUT_DIR>=share/results/maps)
|
|
61
65
|
|
|
62
66
|
|
|
63
67
|
where ``ECLBASE`` is already defined in your ERT config, pointing to the flowsimulator
|
|
64
68
|
basename relative to ``RUNPATH``, grav_subs_maps.yml is a YAML file defining
|
|
65
|
-
the inputs and modelling parameters and ``
|
|
66
|
-
|
|
67
|
-
relative paths in the
|
|
69
|
+
the inputs and modelling parameters and ``OUTPUT_DIR`` is the path to the output folder.
|
|
70
|
+
If not specified OUTPUT_DIR will be defaulted to "./".
|
|
71
|
+
``ROOT_PATH`` is the root path assumed for any relative paths in the yaml config file.
|
|
72
|
+
This is optional and defaulted to "./".
|
|
68
73
|
|
|
69
74
|
The directory to export maps to must exist.
|
|
70
75
|
""" # noqa
|
|
71
76
|
|
|
72
77
|
|
|
73
|
-
class
|
|
74
|
-
diffdates: List[
|
|
78
|
+
class GravMapsInput(BaseModel):
|
|
79
|
+
diffdates: List[Tuple[date, date]]
|
|
75
80
|
seabed_map: FilePath
|
|
76
81
|
|
|
77
82
|
|
|
78
|
-
class
|
|
83
|
+
class GravMapsCalc(BaseModel):
|
|
79
84
|
poisson_ratio: Annotated[float, Field(strict=True, ge=0, le=0.5)]
|
|
80
85
|
coarsening: Optional[Annotated[int, Field(strict=True, ge=1)]] = None
|
|
81
86
|
phases: List[str]
|
|
@@ -90,8 +95,8 @@ class GravCalc(BaseModel):
|
|
|
90
95
|
|
|
91
96
|
|
|
92
97
|
class GravMapsConfig(BaseModel):
|
|
93
|
-
input:
|
|
94
|
-
calculations:
|
|
98
|
+
input: GravMapsInput
|
|
99
|
+
calculations: GravMapsCalc
|
|
95
100
|
|
|
96
101
|
|
|
97
102
|
def get_parser() -> argparse.ArgumentParser:
|
|
@@ -151,8 +156,6 @@ def main() -> None:
|
|
|
151
156
|
sys.exit("No such file:" + args.configfile)
|
|
152
157
|
config = yaml.safe_load(Path(args.configfile).read_text(encoding="utf8"))
|
|
153
158
|
|
|
154
|
-
# cfg = GravMapsConfig.model_validate(config).model_dump()
|
|
155
|
-
|
|
156
159
|
if not Path(args.outputdir).exists():
|
|
157
160
|
sys.exit("Output folder does not exist:" + args.outputdir)
|
|
158
161
|
if not Path(args.UNRSTfile).exists():
|
|
@@ -173,10 +176,10 @@ def prepend_root_path_to_relative_files(
|
|
|
173
176
|
|
|
174
177
|
Args:
|
|
175
178
|
cfg: grav_subs_maps configuration dictionary
|
|
176
|
-
root_path:
|
|
179
|
+
root_path: A relative or absolute path to be prepended
|
|
177
180
|
|
|
178
181
|
Returns:
|
|
179
|
-
Modified configuration for
|
|
182
|
+
Modified configuration for grav_subs_maps
|
|
180
183
|
"""
|
|
181
184
|
if (
|
|
182
185
|
"input" in cfg
|
|
@@ -0,0 +1,446 @@
|
|
|
1
|
+
import argparse
|
|
2
|
+
import logging
|
|
3
|
+
import os
|
|
4
|
+
import sys
|
|
5
|
+
from datetime import date
|
|
6
|
+
from pathlib import Path
|
|
7
|
+
from typing import Any, Dict, List, Optional, Tuple
|
|
8
|
+
|
|
9
|
+
import pandas as pd
|
|
10
|
+
import yaml
|
|
11
|
+
from pydantic import BaseModel, Field, FilePath, field_validator
|
|
12
|
+
from resdata.gravimetry import ResdataGrav, ResdataSubsidence
|
|
13
|
+
from resdata.grid import Grid
|
|
14
|
+
from resdata.resfile import ResdataFile
|
|
15
|
+
from typing_extensions import Annotated
|
|
16
|
+
|
|
17
|
+
import subscript
|
|
18
|
+
|
|
19
|
+
logger = subscript.getLogger(__name__)
|
|
20
|
+
|
|
21
|
+
# Constant for subsidence modelling, not influencing results
|
|
22
|
+
# since subsidence is calculated from porevolume change RPORV
|
|
23
|
+
# therefore defaulted
|
|
24
|
+
DUMMY_YOUNGS = 10
|
|
25
|
+
|
|
26
|
+
PREFIX_POINTS = "all" # calculation is cumulative over all zones
|
|
27
|
+
EXTENSION_POINTS = ".txt" # extension for points in roxar points format
|
|
28
|
+
PREFIX_GENDATA = ""
|
|
29
|
+
EXTENSION_GENDATA = "_1.txt" # extension for points to Ert GENDATA
|
|
30
|
+
|
|
31
|
+
DESCRIPTION = """
|
|
32
|
+
Modelling gravity change and subsidence based on flow simulation
|
|
33
|
+
output (EGRID, INIT and UNRST files) for a list of locations (
|
|
34
|
+
bencmark stations) at seabed.
|
|
35
|
+
|
|
36
|
+
The script reads flow simulation results and a yaml configuration file
|
|
37
|
+
specifying input and calculation parameters.
|
|
38
|
+
For configuration of the yaml config file, see:
|
|
39
|
+
https://fmu-docs.equinor.com/docs/subscript/scripts/grav_subs_points.html
|
|
40
|
+
|
|
41
|
+
"""
|
|
42
|
+
|
|
43
|
+
EPILOGUE = """
|
|
44
|
+
.. code-block:: yaml
|
|
45
|
+
|
|
46
|
+
# Example config file for grav_subs_points
|
|
47
|
+
|
|
48
|
+
input:
|
|
49
|
+
- [2020-07-01, 2018-01-01] # Difference date to model. Must exist in UNRST file.
|
|
50
|
+
|
|
51
|
+
stations: # Path to files with station coordinates to model for each difference years
|
|
52
|
+
grav:
|
|
53
|
+
"2020_2018": station_coordinates.csv
|
|
54
|
+
subs:
|
|
55
|
+
"2020_2018": station_coordinates.csv
|
|
56
|
+
|
|
57
|
+
calculations:
|
|
58
|
+
poisson_ratio: 0.45 # For subsidence calulcations, used in Geertsma model
|
|
59
|
+
phases: ["gas", "oil","water", "total"] # One pointset for each phase specified
|
|
60
|
+
|
|
61
|
+
.. code-block:: plaintext
|
|
62
|
+
|
|
63
|
+
The file with station coordinates should be on .csv format and contain headers
|
|
64
|
+
as specified in this example:
|
|
65
|
+
|
|
66
|
+
bm_id;utmx;utmy;depth;area
|
|
67
|
+
1;462632.692871;5930050.419434;200.000000;WL
|
|
68
|
+
2;464438.063965;5932652.277710;200.000000;CH
|
|
69
|
+
3;462924.737793;5933448.764526;200.000000;CH
|
|
70
|
+
4;459977.734863;5935121.387695;200.000000;NH
|
|
71
|
+
5;462247.045000;5934298.281000;200.000000;CH
|
|
72
|
+
6;461517.610352;5933448.764526;200.000000;CN
|
|
73
|
+
7;463933.621582;5931643.393677;200.000000;CS
|
|
74
|
+
8a;463429.180176;5935068.288086;200.000000;EL
|
|
75
|
+
9b;460561.825684;5936608.163086;200.000000;CH
|
|
76
|
+
10;460482.177246;5931723.042358;200.000000;WL
|
|
77
|
+
|
|
78
|
+
bm_id: Name of the bencmark location.
|
|
79
|
+
utmx: UTM X for the bencmark location [m]
|
|
80
|
+
utmy: UTM Y for the bencmark location [m]
|
|
81
|
+
depth: Seabed depth for benchmark location [m TVD MSL]
|
|
82
|
+
area: An area identifier that can be used for grouping in visualisations
|
|
83
|
+
|
|
84
|
+
"""
|
|
85
|
+
|
|
86
|
+
|
|
87
|
+
CATEGORY = "modelling.reservoir"
|
|
88
|
+
|
|
89
|
+
|
|
90
|
+
EXAMPLES = """
|
|
91
|
+
.. code-block:: console
|
|
92
|
+
|
|
93
|
+
FORWARD_MODEL GRAV_SUBS_POINTS(<UNRST_FILE=<ECLBASE>.UNRST, <GRAVPOINTS_CONFIG>=grav_subs_points.yml)
|
|
94
|
+
FORWARD_MODEL GRAV_SUBS_POINTS(<UNRST_FILE=<ECLBASE>.UNRST, <GRAVPOINTS_CONFIG>=<CONFIG_PATH>/../input/config/grav_subs_points.yml, <OUTPUT_DIR>=share/results/points)
|
|
95
|
+
FORWARD_MODEL GRAV_SUBS_POINTS(<UNRST_FILE=<ECLBASE>.UNRST, <GRAVPOINTS_CONFIG>=grav_subs_points.yml, <ROOT_PATH>=<CONFIG_PATH>/../../gravity/input, <OUTPUT_DIR>=share/results/points)
|
|
96
|
+
|
|
97
|
+
where ``ECLBASE`` is already defined in your ERT config, pointing to the flowsimulator
|
|
98
|
+
basename relative to ``RUNPATH``, grav_subs_points.yml is a YAML file defining
|
|
99
|
+
the inputs and modelling parameters and ``OUTPUT_DIR`` is the path to the output folder.
|
|
100
|
+
If not specified OUTPUT_DIR will be defaulted to "./".
|
|
101
|
+
``ROOT_PATH`` is the root path assumed for any relative paths in the yaml config file.
|
|
102
|
+
This is optional and defaulted to "./".
|
|
103
|
+
|
|
104
|
+
The directory to export point files to must exist.
|
|
105
|
+
""" # noqa
|
|
106
|
+
|
|
107
|
+
|
|
108
|
+
class GravPointsInput(BaseModel):
|
|
109
|
+
diffdates: List[Tuple[date, date]]
|
|
110
|
+
|
|
111
|
+
|
|
112
|
+
class GravPointsStations(BaseModel):
|
|
113
|
+
grav: Dict[str, FilePath]
|
|
114
|
+
subs: Dict[str, FilePath]
|
|
115
|
+
|
|
116
|
+
|
|
117
|
+
class GravPointsCalc(BaseModel):
|
|
118
|
+
poisson_ratio: Annotated[float, Field(strict=True, ge=0, le=0.5)]
|
|
119
|
+
phases: List[str]
|
|
120
|
+
|
|
121
|
+
@field_validator("phases")
|
|
122
|
+
@classmethod
|
|
123
|
+
def check_phases(cls, phases: List[str]) -> List[str]:
|
|
124
|
+
allowed_phases = ["oil", "gas", "water", "total"]
|
|
125
|
+
for item in phases:
|
|
126
|
+
assert item in allowed_phases, f"allowed phases are {str(allowed_phases)}"
|
|
127
|
+
return phases
|
|
128
|
+
|
|
129
|
+
|
|
130
|
+
class GravPointsConfig(BaseModel):
|
|
131
|
+
input: GravPointsInput
|
|
132
|
+
stations: GravPointsStations
|
|
133
|
+
calculations: GravPointsCalc
|
|
134
|
+
|
|
135
|
+
|
|
136
|
+
def get_parser() -> argparse.ArgumentParser:
|
|
137
|
+
"""Function to create the argument parser that is going to be served to the user.
|
|
138
|
+
|
|
139
|
+
Returns:
|
|
140
|
+
argparse.ArgumentParser: The argument parser to be served
|
|
141
|
+
|
|
142
|
+
"""
|
|
143
|
+
parser = argparse.ArgumentParser(
|
|
144
|
+
prog="grav_subs_points.py",
|
|
145
|
+
description=DESCRIPTION,
|
|
146
|
+
epilog=EPILOGUE,
|
|
147
|
+
formatter_class=argparse.RawTextHelpFormatter,
|
|
148
|
+
)
|
|
149
|
+
|
|
150
|
+
parser.add_argument("UNRSTfile", type=str, help="Path to flowsimulator UNRST file")
|
|
151
|
+
parser.add_argument(
|
|
152
|
+
"-c",
|
|
153
|
+
"-C",
|
|
154
|
+
"--configfile",
|
|
155
|
+
type=str,
|
|
156
|
+
help="Name of YAML config file",
|
|
157
|
+
required=True,
|
|
158
|
+
)
|
|
159
|
+
parser.add_argument(
|
|
160
|
+
"-r",
|
|
161
|
+
"--root-path",
|
|
162
|
+
type=str,
|
|
163
|
+
default="./",
|
|
164
|
+
help=("Root path assumed for relative paths" " in config file."),
|
|
165
|
+
)
|
|
166
|
+
parser.add_argument(
|
|
167
|
+
"-o",
|
|
168
|
+
"--outputdir",
|
|
169
|
+
type=str,
|
|
170
|
+
help="Path to directory for output maps. Directory must exist.",
|
|
171
|
+
default="./",
|
|
172
|
+
)
|
|
173
|
+
parser.add_argument(
|
|
174
|
+
"--version",
|
|
175
|
+
action="version",
|
|
176
|
+
version="%(prog)s (subscript version " + subscript.__version__ + ")",
|
|
177
|
+
)
|
|
178
|
+
return parser
|
|
179
|
+
|
|
180
|
+
|
|
181
|
+
def main() -> None:
|
|
182
|
+
"""Invocated from the command line, parsing command line arguments"""
|
|
183
|
+
parser = get_parser()
|
|
184
|
+
args = parser.parse_args()
|
|
185
|
+
|
|
186
|
+
logger.setLevel(logging.INFO)
|
|
187
|
+
|
|
188
|
+
# parse the config file
|
|
189
|
+
if not Path(args.configfile).exists():
|
|
190
|
+
sys.exit("No such file:" + args.configfile)
|
|
191
|
+
config = yaml.safe_load(Path(args.configfile).read_text(encoding="utf8"))
|
|
192
|
+
|
|
193
|
+
if not Path(args.outputdir).exists():
|
|
194
|
+
sys.exit("Output folder does not exist:" + args.outputdir)
|
|
195
|
+
if not Path(args.UNRSTfile).exists():
|
|
196
|
+
sys.exit("UNRST file does not exist:" + args.UNRSTfile)
|
|
197
|
+
|
|
198
|
+
main_gravpoints(args.UNRSTfile, config, Path(args.root_path), Path(args.outputdir))
|
|
199
|
+
|
|
200
|
+
|
|
201
|
+
def prepend_root_path_to_relative_files(
|
|
202
|
+
cfg: Dict[str, Any], root_path: Path
|
|
203
|
+
) -> Dict[str, Any]:
|
|
204
|
+
"""Prepend root_path to relative files found paths in a configuration
|
|
205
|
+
dictionary.
|
|
206
|
+
|
|
207
|
+
Note: This function is before prior to validation of the configuration!
|
|
208
|
+
|
|
209
|
+
Will look for filename in the keys "grav" and "subs"
|
|
210
|
+
|
|
211
|
+
Args:
|
|
212
|
+
cfg: grav_subs_points configuration dictionary
|
|
213
|
+
root_path: A relative or absolute path to be prepended
|
|
214
|
+
|
|
215
|
+
Returns:
|
|
216
|
+
Modified configuration for grav_subs_points
|
|
217
|
+
"""
|
|
218
|
+
|
|
219
|
+
stations = cfg.get("stations")
|
|
220
|
+
|
|
221
|
+
if stations is None:
|
|
222
|
+
return cfg
|
|
223
|
+
|
|
224
|
+
for key in ["grav", "subs"]:
|
|
225
|
+
if key in stations and isinstance(stations[key], dict):
|
|
226
|
+
for item in stations[key]:
|
|
227
|
+
if os.path.isabs(stations[key][item]):
|
|
228
|
+
continue
|
|
229
|
+
|
|
230
|
+
stations[key][item] = str(root_path / Path(stations[key][item]))
|
|
231
|
+
|
|
232
|
+
return cfg
|
|
233
|
+
|
|
234
|
+
|
|
235
|
+
def export_grav_points_xyz(act_stations, phase, diff_date, out_folder) -> None:
|
|
236
|
+
"""Write points in xyz format, roxar.FileFormat.RMS_POINTS"""
|
|
237
|
+
logger.info(f"Exporting simulated gravity values to {out_folder} as xyz points")
|
|
238
|
+
outfile = (
|
|
239
|
+
PREFIX_POINTS
|
|
240
|
+
+ "--"
|
|
241
|
+
+ "delta_gravity_"
|
|
242
|
+
+ phase
|
|
243
|
+
+ "--"
|
|
244
|
+
+ diff_date[0]
|
|
245
|
+
+ "_"
|
|
246
|
+
+ diff_date[1]
|
|
247
|
+
+ EXTENSION_POINTS
|
|
248
|
+
)
|
|
249
|
+
|
|
250
|
+
with open(os.path.join(out_folder, outfile), "w") as file:
|
|
251
|
+
for index, row in act_stations.iterrows():
|
|
252
|
+
file.write(
|
|
253
|
+
f"{row['utmx']:.3f} {row['utmy']:.3f} "
|
|
254
|
+
f"{row['dgsim_'+phase+'_'+diff_date[0]+'_'+diff_date[1]]:.3f} \n"
|
|
255
|
+
)
|
|
256
|
+
|
|
257
|
+
|
|
258
|
+
def export_grav_points_ert(act_stations, diff_date, out_folder) -> None:
|
|
259
|
+
"""Export for ert for each diffdate, only total, not per phase"""
|
|
260
|
+
logger.info(f"Exporting simulated gravity values to {out_folder} for use by ert")
|
|
261
|
+
part = act_stations["dgsim_total_" + diff_date[0] + "_" + diff_date[1]]
|
|
262
|
+
outfile = (
|
|
263
|
+
PREFIX_GENDATA
|
|
264
|
+
+ "gravity_"
|
|
265
|
+
+ diff_date[0]
|
|
266
|
+
+ "_"
|
|
267
|
+
+ diff_date[1]
|
|
268
|
+
+ EXTENSION_GENDATA
|
|
269
|
+
)
|
|
270
|
+
|
|
271
|
+
output_path = Path(out_folder) / outfile
|
|
272
|
+
part.to_csv(output_path, header=None, index=None)
|
|
273
|
+
|
|
274
|
+
|
|
275
|
+
def export_subs_points_xyz(act_stations, diff_date, out_folder) -> None:
|
|
276
|
+
"""Write points in xyz format, roxar.FileFormat.RMS_POINTS"""
|
|
277
|
+
logger.info(f"Exporting simulated subsidence values to {out_folder} as xyz points")
|
|
278
|
+
outfile = (
|
|
279
|
+
PREFIX_POINTS
|
|
280
|
+
+ "--"
|
|
281
|
+
+ "subsidence"
|
|
282
|
+
+ "--"
|
|
283
|
+
+ diff_date[0]
|
|
284
|
+
+ "_"
|
|
285
|
+
+ diff_date[1]
|
|
286
|
+
+ EXTENSION_POINTS
|
|
287
|
+
)
|
|
288
|
+
|
|
289
|
+
with open(os.path.join(out_folder, outfile), "w") as file:
|
|
290
|
+
for index, row in act_stations.iterrows():
|
|
291
|
+
file.write(
|
|
292
|
+
f"{row['utmx']:.3f} {row['utmy']:.3f} "
|
|
293
|
+
f"{row['subsidence_'+diff_date[0]+'_'+diff_date[1]]:.3f}\n"
|
|
294
|
+
)
|
|
295
|
+
|
|
296
|
+
|
|
297
|
+
def export_subs_points_ert(act_stations, diff_date, out_folder) -> None:
|
|
298
|
+
"""Export for ert for each diffdate"""
|
|
299
|
+
logger.info(f"Exporting simulated subsidence values to {out_folder} for use by ert")
|
|
300
|
+
part = act_stations["subsidence_" + diff_date[0] + "_" + diff_date[1]]
|
|
301
|
+
outfile = (
|
|
302
|
+
PREFIX_GENDATA
|
|
303
|
+
+ "subsidence_"
|
|
304
|
+
+ diff_date[0]
|
|
305
|
+
+ "_"
|
|
306
|
+
+ diff_date[1]
|
|
307
|
+
+ EXTENSION_GENDATA
|
|
308
|
+
)
|
|
309
|
+
|
|
310
|
+
output_path = Path(out_folder) / outfile
|
|
311
|
+
part.to_csv(output_path, header=None, index=None)
|
|
312
|
+
|
|
313
|
+
|
|
314
|
+
def main_gravpoints(
|
|
315
|
+
unrst_file: str,
|
|
316
|
+
config: Dict[str, Any],
|
|
317
|
+
root_path: Optional[Path],
|
|
318
|
+
output_folder: Path,
|
|
319
|
+
) -> None:
|
|
320
|
+
"""
|
|
321
|
+
Process a configuration, model gravity and subsidence points and write to disk.
|
|
322
|
+
|
|
323
|
+
Args:
|
|
324
|
+
resdata: Path to flow simulation UNRST file
|
|
325
|
+
config: Configuration for modelling
|
|
326
|
+
"""
|
|
327
|
+
|
|
328
|
+
if root_path is not None:
|
|
329
|
+
config = prepend_root_path_to_relative_files(config, root_path)
|
|
330
|
+
|
|
331
|
+
cfg = GravPointsConfig.model_validate(config).model_dump()
|
|
332
|
+
|
|
333
|
+
# Read inputs and calculation parameters
|
|
334
|
+
input_diffdates = cfg["input"]["diffdates"]
|
|
335
|
+
station_files = cfg["stations"]
|
|
336
|
+
phases = cfg["calculations"]["phases"]
|
|
337
|
+
poisson_ratio = cfg["calculations"]["poisson_ratio"]
|
|
338
|
+
|
|
339
|
+
if isinstance(unrst_file, str):
|
|
340
|
+
restart_file = unrst_file[:-6] + ".UNRST"
|
|
341
|
+
egrid_file = unrst_file[:-6] + ".EGRID"
|
|
342
|
+
init_file = unrst_file[:-6] + ".INIT"
|
|
343
|
+
grid = Grid(egrid_file)
|
|
344
|
+
init = ResdataFile(init_file)
|
|
345
|
+
rest = ResdataFile(restart_file)
|
|
346
|
+
|
|
347
|
+
restart_index = {}
|
|
348
|
+
|
|
349
|
+
# From restart datetime format to YYYYMMDD as key
|
|
350
|
+
for i, restart_date in enumerate(rest.dates):
|
|
351
|
+
restart_index[restart_date.strftime("%Y%m%d")] = i
|
|
352
|
+
|
|
353
|
+
diffdates = []
|
|
354
|
+
# Convert dates from datetime format to strings
|
|
355
|
+
logger.info("Starting modelling for diffdates: ")
|
|
356
|
+
for diffdate in input_diffdates:
|
|
357
|
+
diff = [diffdate[0].strftime("%Y%m%d"), diffdate[1].strftime("%Y%m%d")]
|
|
358
|
+
diffdates.append(diff)
|
|
359
|
+
logger.info(f"{diffdate[0]}_{diffdate[1]}")
|
|
360
|
+
|
|
361
|
+
grav = ResdataGrav(grid, init)
|
|
362
|
+
subsidence = ResdataSubsidence(grid, init)
|
|
363
|
+
|
|
364
|
+
added_dates = []
|
|
365
|
+
|
|
366
|
+
for diffdate in diffdates:
|
|
367
|
+
for singledate in diffdate: # base and monitor
|
|
368
|
+
rsb = rest.restartView(0)
|
|
369
|
+
if singledate not in added_dates:
|
|
370
|
+
if singledate in restart_index:
|
|
371
|
+
rsb = rest.restartView(restart_index[singledate])
|
|
372
|
+
grav.add_survey_RFIP(singledate, rsb)
|
|
373
|
+
subsidence.add_survey_PRESSURE(singledate, rsb)
|
|
374
|
+
added_dates.append(singledate)
|
|
375
|
+
else:
|
|
376
|
+
logger.error(
|
|
377
|
+
f"Date {singledate} specified but not found in UNRST file."
|
|
378
|
+
)
|
|
379
|
+
sys.exit(1)
|
|
380
|
+
|
|
381
|
+
phase_code = {"oil": 1, "gas": 2, "water": 4, "total": 7}
|
|
382
|
+
|
|
383
|
+
# Gravity
|
|
384
|
+
for diffdate in diffdates:
|
|
385
|
+
diff_year = str(diffdate[0][0:4]) + "_" + str(diffdate[1][0:4])
|
|
386
|
+
active_stations = pd.read_csv(station_files["grav"][diff_year], sep=";")
|
|
387
|
+
|
|
388
|
+
for phase in phases:
|
|
389
|
+
logger.info(
|
|
390
|
+
f"Calculating delta gravity at bencmark stations "
|
|
391
|
+
f"from {phase} for {diffdate[0]}_{diffdate[1]}"
|
|
392
|
+
)
|
|
393
|
+
|
|
394
|
+
gravity_values = [
|
|
395
|
+
grav.eval(
|
|
396
|
+
diffdate[1], diffdate[0], (x, y, z), phase_mask=phase_code[phase]
|
|
397
|
+
)
|
|
398
|
+
for x, y, z in zip(
|
|
399
|
+
active_stations["utmx"],
|
|
400
|
+
active_stations["utmy"],
|
|
401
|
+
active_stations["depth"],
|
|
402
|
+
)
|
|
403
|
+
]
|
|
404
|
+
active_stations[
|
|
405
|
+
"dgsim_" + phase + "_" + diffdate[0] + "_" + diffdate[1]
|
|
406
|
+
] = gravity_values
|
|
407
|
+
|
|
408
|
+
# Export for each diffdate, all phases specified in config
|
|
409
|
+
export_grav_points_xyz(active_stations, phase, diffdate, output_folder)
|
|
410
|
+
|
|
411
|
+
# Export to ert for each diffdate, only total, not per phase
|
|
412
|
+
export_grav_points_ert(active_stations, diffdate, output_folder)
|
|
413
|
+
|
|
414
|
+
# Subsidence
|
|
415
|
+
|
|
416
|
+
for diffdate in diffdates:
|
|
417
|
+
diff_year = str(diffdate[0][0:4]) + "_" + str(diffdate[1][0:4])
|
|
418
|
+
active_stations = pd.read_csv(station_files["subs"][diff_year], sep=";")
|
|
419
|
+
|
|
420
|
+
subs_values = [
|
|
421
|
+
subsidence.eval_geertsma_rporv(
|
|
422
|
+
diffdate[1], diffdate[0], (x, y, z), DUMMY_YOUNGS, poisson_ratio, z
|
|
423
|
+
)
|
|
424
|
+
for x, y, z in zip(
|
|
425
|
+
active_stations["utmx"],
|
|
426
|
+
active_stations["utmy"],
|
|
427
|
+
active_stations["depth"],
|
|
428
|
+
)
|
|
429
|
+
]
|
|
430
|
+
|
|
431
|
+
active_stations["subsidence" + "_" + diffdate[0] + "_" + diffdate[1]] = [
|
|
432
|
+
i * 100 for i in subs_values
|
|
433
|
+
] # from m to cm
|
|
434
|
+
|
|
435
|
+
export_subs_points_xyz(active_stations, diffdate, output_folder)
|
|
436
|
+
|
|
437
|
+
export_subs_points_ert(active_stations, diffdate, output_folder)
|
|
438
|
+
|
|
439
|
+
logger.info(
|
|
440
|
+
f"Done; All gravity and subsidence points written to folder: "
|
|
441
|
+
f"{str(output_folder)}",
|
|
442
|
+
)
|
|
443
|
+
|
|
444
|
+
|
|
445
|
+
if __name__ == "__main__":
|
|
446
|
+
main()
|
|
@@ -34,6 +34,7 @@ docs/scripts/ecldiff2roff.rst
|
|
|
34
34
|
docs/scripts/fmu_copy_revision.rst
|
|
35
35
|
docs/scripts/fmuobs.rst
|
|
36
36
|
docs/scripts/grav_subs_maps.rst
|
|
37
|
+
docs/scripts/grav_subs_points.rst
|
|
37
38
|
docs/scripts/interp_relperm.rst
|
|
38
39
|
docs/scripts/merge_rft_ertobs.rst
|
|
39
40
|
docs/scripts/merge_unrst_files.rst
|
|
@@ -94,6 +95,7 @@ src/subscript/config_jobs/ECLGRID2ROFF
|
|
|
94
95
|
src/subscript/config_jobs/ECLINIT2ROFF
|
|
95
96
|
src/subscript/config_jobs/ECLRST2ROFF
|
|
96
97
|
src/subscript/config_jobs/GRAV_SUBS_MAPS
|
|
98
|
+
src/subscript/config_jobs/GRAV_SUBS_POINTS
|
|
97
99
|
src/subscript/config_jobs/INTERP_RELPERM
|
|
98
100
|
src/subscript/config_jobs/MERGE_RFT_ERTOBS
|
|
99
101
|
src/subscript/config_jobs/MERGE_UNRST_FILES
|
|
@@ -128,6 +130,8 @@ src/subscript/fmuobs/util.py
|
|
|
128
130
|
src/subscript/fmuobs/writers.py
|
|
129
131
|
src/subscript/grav_subs_maps/__init__.py
|
|
130
132
|
src/subscript/grav_subs_maps/grav_subs_maps.py
|
|
133
|
+
src/subscript/grav_subs_points/__init__.py
|
|
134
|
+
src/subscript/grav_subs_points/grav_subs_points.py
|
|
131
135
|
src/subscript/hook_implementations/__init__.py
|
|
132
136
|
src/subscript/hook_implementations/jobs.py
|
|
133
137
|
src/subscript/interp_relperm/__init__.py
|
|
@@ -194,6 +198,7 @@ tests/test_fmuobs.py
|
|
|
194
198
|
tests/test_fmuobs_parsers.py
|
|
195
199
|
tests/test_fmuobs_writers.py
|
|
196
200
|
tests/test_grav_subs_maps.py
|
|
201
|
+
tests/test_grav_subs_points.py
|
|
197
202
|
tests/test_hook_implementations.py
|
|
198
203
|
tests/test_interp_relperm.py
|
|
199
204
|
tests/test_merge_rft_ertobs.py
|
|
@@ -213,6 +218,39 @@ tests/test_sunsch.py
|
|
|
213
218
|
tests/test_sw_model_utilities.py
|
|
214
219
|
tests/test_vfp2csv.py
|
|
215
220
|
tests/test_welltest_dpds.py
|
|
221
|
+
tests/utils.py
|
|
222
|
+
tests/data/drogon/eclipse/include/edit/drogon.trans
|
|
223
|
+
tests/data/drogon/eclipse/include/grid/drogon.faults
|
|
224
|
+
tests/data/drogon/eclipse/include/grid/drogon.grid
|
|
225
|
+
tests/data/drogon/eclipse/include/grid/drogon.multnum
|
|
226
|
+
tests/data/drogon/eclipse/include/grid/drogon.multregt
|
|
227
|
+
tests/data/drogon/eclipse/include/grid/drogon.perm
|
|
228
|
+
tests/data/drogon/eclipse/include/grid/drogon.poro
|
|
229
|
+
tests/data/drogon/eclipse/include/props/drogon.pvt
|
|
230
|
+
tests/data/drogon/eclipse/include/props/drogon.sattab
|
|
231
|
+
tests/data/drogon/eclipse/include/props/drogon.swatinit
|
|
232
|
+
tests/data/drogon/eclipse/include/regions/drogon.eqlnum
|
|
233
|
+
tests/data/drogon/eclipse/include/regions/drogon.fipnum
|
|
234
|
+
tests/data/drogon/eclipse/include/regions/drogon.fipzon
|
|
235
|
+
tests/data/drogon/eclipse/include/regions/drogon.pvtnum
|
|
236
|
+
tests/data/drogon/eclipse/include/regions/drogon.satnum
|
|
237
|
+
tests/data/drogon/eclipse/include/runspec/drogon.dimens
|
|
238
|
+
tests/data/drogon/eclipse/include/runspec/drogon.eqldims
|
|
239
|
+
tests/data/drogon/eclipse/include/runspec/drogon.gridopts
|
|
240
|
+
tests/data/drogon/eclipse/include/runspec/drogon.regdims
|
|
241
|
+
tests/data/drogon/eclipse/include/runspec/drogon.tabdims
|
|
242
|
+
tests/data/drogon/eclipse/include/schedule/55_33-1.sch
|
|
243
|
+
tests/data/drogon/eclipse/include/schedule/55_33-1.wells
|
|
244
|
+
tests/data/drogon/eclipse/include/schedule/drogon_hist.sch
|
|
245
|
+
tests/data/drogon/eclipse/include/schedule/vfp/A-1.inc
|
|
246
|
+
tests/data/drogon/eclipse/include/schedule/vfp/A-2.inc
|
|
247
|
+
tests/data/drogon/eclipse/include/schedule/vfp/A-3.inc
|
|
248
|
+
tests/data/drogon/eclipse/include/schedule/vfp/A-4.inc
|
|
249
|
+
tests/data/drogon/eclipse/include/solution/drogon.equil
|
|
250
|
+
tests/data/drogon/eclipse/include/solution/drogon.rxvd
|
|
251
|
+
tests/data/drogon/eclipse/include/solution/drogon.thpres
|
|
252
|
+
tests/data/drogon/eclipse/include/summary/drogon.summary
|
|
253
|
+
tests/data/drogon/eclipse/model/DROGON-0.DATA
|
|
216
254
|
tests/data/reek/parameters.txt
|
|
217
255
|
tests/data/reek/eclipse/include/grid/reek.faults
|
|
218
256
|
tests/data/reek/eclipse/include/grid/reek.grid
|
|
@@ -267,10 +305,10 @@ tests/testdata_fmuobs/ri-obs.csv
|
|
|
267
305
|
tests/testdata_gravity/HIST.EGRID
|
|
268
306
|
tests/testdata_gravity/HIST.INIT
|
|
269
307
|
tests/testdata_gravity/HIST.UNRST
|
|
270
|
-
tests/testdata_gravity/
|
|
308
|
+
tests/testdata_gravity/grav_subs_maps.yml
|
|
271
309
|
tests/testdata_gravity/grav_subs_points.yml
|
|
272
310
|
tests/testdata_gravity/seabed.gri
|
|
273
|
-
tests/testdata_gravity/station_coordinates.
|
|
311
|
+
tests/testdata_gravity/station_coordinates.csv
|
|
274
312
|
tests/testdata_interp_relperm/cfg.yml
|
|
275
313
|
tests/testdata_interp_relperm/sgof_base.inc
|
|
276
314
|
tests/testdata_interp_relperm/sgof_opt.inc
|