subscript 1.6.1__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.
Files changed (362) hide show
  1. {subscript-1.6.1 → subscript-1.7.0}/PKG-INFO +4 -3
  2. subscript-1.7.0/docs/scripts/grav_subs_points.rst +7 -0
  3. {subscript-1.6.1 → subscript-1.7.0}/pyproject.toml +4 -2
  4. {subscript-1.6.1 → subscript-1.7.0}/src/subscript/config_jobs/GRAV_SUBS_MAPS +1 -0
  5. subscript-1.7.0/src/subscript/config_jobs/GRAV_SUBS_POINTS +10 -0
  6. {subscript-1.6.1 → subscript-1.7.0}/src/subscript/csv_merge/csv_merge.py +2 -2
  7. {subscript-1.6.1 → subscript-1.7.0}/src/subscript/csv_stack/csv_stack.py +2 -2
  8. {subscript-1.6.1 → subscript-1.7.0}/src/subscript/fmuobs/fmuobs.py +2 -2
  9. {subscript-1.6.1 → subscript-1.7.0}/src/subscript/grav_subs_maps/grav_subs_maps.py +17 -14
  10. subscript-1.7.0/src/subscript/grav_subs_points/grav_subs_points.py +446 -0
  11. {subscript-1.6.1 → subscript-1.7.0}/src/subscript/hook_implementations/jobs.py +4 -8
  12. {subscript-1.6.1 → subscript-1.7.0}/src/subscript/params2csv/params2csv.py +9 -9
  13. {subscript-1.6.1 → subscript-1.7.0}/src/subscript/sunsch/time_vector.py +11 -8
  14. {subscript-1.6.1 → subscript-1.7.0}/src/subscript/version.py +2 -2
  15. {subscript-1.6.1 → subscript-1.7.0}/src/subscript.egg-info/PKG-INFO +4 -3
  16. {subscript-1.6.1 → subscript-1.7.0}/src/subscript.egg-info/SOURCES.txt +40 -2
  17. {subscript-1.6.1 → subscript-1.7.0}/src/subscript.egg-info/entry_points.txt +1 -0
  18. {subscript-1.6.1 → subscript-1.7.0}/src/subscript.egg-info/requires.txt +3 -2
  19. subscript-1.7.0/tests/__init__.py +0 -0
  20. {subscript-1.6.1 → subscript-1.7.0}/tests/conftest.py +1 -0
  21. subscript-1.7.0/tests/data/drogon/eclipse/include/edit/drogon.trans +7511 -0
  22. subscript-1.7.0/tests/data/drogon/eclipse/include/grid/drogon.faults +174 -0
  23. subscript-1.7.0/tests/data/drogon/eclipse/include/grid/drogon.grid +0 -0
  24. subscript-1.7.0/tests/data/drogon/eclipse/include/grid/drogon.multnum +473 -0
  25. subscript-1.7.0/tests/data/drogon/eclipse/include/grid/drogon.multregt +45 -0
  26. subscript-1.7.0/tests/data/drogon/eclipse/include/grid/drogon.perm +0 -0
  27. subscript-1.7.0/tests/data/drogon/eclipse/include/grid/drogon.poro +0 -0
  28. subscript-1.7.0/tests/data/drogon/eclipse/include/props/drogon.pvt +476 -0
  29. subscript-1.7.0/tests/data/drogon/eclipse/include/props/drogon.sattab +1037 -0
  30. subscript-1.7.0/tests/data/drogon/eclipse/include/props/drogon.swatinit +0 -0
  31. subscript-1.7.0/tests/data/drogon/eclipse/include/regions/drogon.eqlnum +0 -0
  32. subscript-1.7.0/tests/data/drogon/eclipse/include/regions/drogon.fipnum +0 -0
  33. subscript-1.7.0/tests/data/drogon/eclipse/include/regions/drogon.fipzon +22641 -0
  34. subscript-1.7.0/tests/data/drogon/eclipse/include/regions/drogon.pvtnum +0 -0
  35. subscript-1.7.0/tests/data/drogon/eclipse/include/regions/drogon.satnum +0 -0
  36. subscript-1.7.0/tests/data/drogon/eclipse/include/runspec/drogon.dimens +3 -0
  37. subscript-1.7.0/tests/data/drogon/eclipse/include/runspec/drogon.eqldims +4 -0
  38. subscript-1.7.0/tests/data/drogon/eclipse/include/runspec/drogon.gridopts +3 -0
  39. subscript-1.7.0/tests/data/drogon/eclipse/include/runspec/drogon.regdims +4 -0
  40. subscript-1.7.0/tests/data/drogon/eclipse/include/runspec/drogon.tabdims +4 -0
  41. subscript-1.7.0/tests/data/drogon/eclipse/include/schedule/55_33-1.sch +6329 -0
  42. subscript-1.7.0/tests/data/drogon/eclipse/include/schedule/55_33-1.wells +45 -0
  43. subscript-1.7.0/tests/data/drogon/eclipse/include/schedule/drogon_hist.sch +1731 -0
  44. subscript-1.7.0/tests/data/drogon/eclipse/include/schedule/vfp/A-1.inc +2163 -0
  45. subscript-1.7.0/tests/data/drogon/eclipse/include/schedule/vfp/A-2.inc +2163 -0
  46. subscript-1.7.0/tests/data/drogon/eclipse/include/schedule/vfp/A-3.inc +2163 -0
  47. subscript-1.7.0/tests/data/drogon/eclipse/include/schedule/vfp/A-4.inc +2164 -0
  48. subscript-1.7.0/tests/data/drogon/eclipse/include/solution/drogon.equil +10 -0
  49. subscript-1.7.0/tests/data/drogon/eclipse/include/solution/drogon.rxvd +31 -0
  50. subscript-1.7.0/tests/data/drogon/eclipse/include/solution/drogon.thpres +24 -0
  51. subscript-1.7.0/tests/data/drogon/eclipse/include/summary/drogon.summary +371 -0
  52. subscript-1.7.0/tests/data/drogon/eclipse/model/DROGON-0.DATA +257 -0
  53. {subscript-1.6.1 → subscript-1.7.0}/tests/test_bjobsusers.py +1 -0
  54. {subscript-1.6.1 → subscript-1.7.0}/tests/test_casegen_upcars.py +1 -0
  55. {subscript-1.6.1 → subscript-1.7.0}/tests/test_check_swatinit.py +1 -0
  56. {subscript-1.6.1 → subscript-1.7.0}/tests/test_check_swatinit_simulators.py +4 -30
  57. {subscript-1.6.1 → subscript-1.7.0}/tests/test_convert_grid_format.py +2 -1
  58. {subscript-1.6.1 → subscript-1.7.0}/tests/test_csv2ofmvol.py +1 -0
  59. {subscript-1.6.1 → subscript-1.7.0}/tests/test_csv_merge.py +1 -0
  60. {subscript-1.6.1 → subscript-1.7.0}/tests/test_csv_stack.py +1 -0
  61. {subscript-1.6.1 → subscript-1.7.0}/tests/test_eclcompress.py +1 -0
  62. {subscript-1.6.1 → subscript-1.7.0}/tests/test_ecldiff2roff.py +1 -0
  63. {subscript-1.6.1 → subscript-1.7.0}/tests/test_fmu_copy_revision.py +1 -0
  64. {subscript-1.6.1 → subscript-1.7.0}/tests/test_fmuobs.py +1 -0
  65. {subscript-1.6.1 → subscript-1.7.0}/tests/test_fmuobs_parsers.py +1 -0
  66. {subscript-1.6.1 → subscript-1.7.0}/tests/test_fmuobs_writers.py +1 -0
  67. {subscript-1.6.1 → subscript-1.7.0}/tests/test_grav_subs_maps.py +26 -2
  68. subscript-1.7.0/tests/test_grav_subs_points.py +251 -0
  69. {subscript-1.6.1 → subscript-1.7.0}/tests/test_hook_implementations.py +3 -1
  70. {subscript-1.6.1 → subscript-1.7.0}/tests/test_interp_relperm.py +1 -0
  71. {subscript-1.6.1 → subscript-1.7.0}/tests/test_merge_rft_ertobs.py +1 -0
  72. {subscript-1.6.1 → subscript-1.7.0}/tests/test_merge_unrst_files.py +1 -0
  73. {subscript-1.6.1 → subscript-1.7.0}/tests/test_ofmvol2csv.py +1 -0
  74. {subscript-1.6.1 → subscript-1.7.0}/tests/test_pack_sim.py +1 -0
  75. {subscript-1.6.1 → subscript-1.7.0}/tests/test_params2csv.py +1 -0
  76. {subscript-1.6.1 → subscript-1.7.0}/tests/test_presentvalue.py +1 -0
  77. {subscript-1.6.1 → subscript-1.7.0}/tests/test_prtvol2csv.py +39 -0
  78. {subscript-1.6.1 → subscript-1.7.0}/tests/test_restartthinner.py +1 -0
  79. {subscript-1.6.1 → subscript-1.7.0}/tests/test_ri_wellmod.py +1 -3
  80. {subscript-1.6.1 → subscript-1.7.0}/tests/test_rmsecl_volumetrics.py +1 -0
  81. {subscript-1.6.1 → subscript-1.7.0}/tests/test_sector2fluxnum.py +1 -0
  82. {subscript-1.6.1 → subscript-1.7.0}/tests/test_summaryplot.py +1 -0
  83. {subscript-1.6.1 → subscript-1.7.0}/tests/test_sunsch.py +1 -0
  84. {subscript-1.6.1 → subscript-1.7.0}/tests/test_sw_model_utilities.py +1 -0
  85. {subscript-1.6.1 → subscript-1.7.0}/tests/test_vfp2csv.py +1 -0
  86. {subscript-1.6.1 → subscript-1.7.0}/tests/test_welltest_dpds.py +1 -0
  87. subscript-1.6.1/tests/testdata_gravity/grav_subs_maps_hist.yml → subscript-1.7.0/tests/testdata_gravity/grav_subs_maps.yml +2 -2
  88. {subscript-1.6.1 → subscript-1.7.0}/tests/testdata_gravity/grav_subs_points.yml +3 -3
  89. subscript-1.7.0/tests/utils.py +50 -0
  90. {subscript-1.6.1 → subscript-1.7.0}/.github/workflows/codecov.yml +0 -0
  91. {subscript-1.6.1 → subscript-1.7.0}/.github/workflows/publish.yml +0 -0
  92. {subscript-1.6.1 → subscript-1.7.0}/.github/workflows/subscript.yml +0 -0
  93. {subscript-1.6.1 → subscript-1.7.0}/.gitignore +0 -0
  94. {subscript-1.6.1 → subscript-1.7.0}/.pylintrc +0 -0
  95. {subscript-1.6.1 → subscript-1.7.0}/LICENSE +0 -0
  96. {subscript-1.6.1 → subscript-1.7.0}/README.md +0 -0
  97. {subscript-1.6.1 → subscript-1.7.0}/SECURITY.md +0 -0
  98. {subscript-1.6.1 → subscript-1.7.0}/ci/testkomodo.sh +0 -0
  99. {subscript-1.6.1 → subscript-1.7.0}/docs/Makefile +0 -0
  100. {subscript-1.6.1 → subscript-1.7.0}/docs/_static/equinor-logo.png +0 -0
  101. {subscript-1.6.1 → subscript-1.7.0}/docs/_static/equinor-logo2.jpg +0 -0
  102. {subscript-1.6.1 → subscript-1.7.0}/docs/_static/equinor-logo2.png +0 -0
  103. {subscript-1.6.1 → subscript-1.7.0}/docs/_static/equinor_logo.jpg +0 -0
  104. {subscript-1.6.1 → subscript-1.7.0}/docs/_static/equinor_logo_only.jpg +0 -0
  105. {subscript-1.6.1 → subscript-1.7.0}/docs/_templates/layout.html +0 -0
  106. {subscript-1.6.1 → subscript-1.7.0}/docs/conf.py +0 -0
  107. {subscript-1.6.1 → subscript-1.7.0}/docs/contributing.rst +0 -0
  108. {subscript-1.6.1 → subscript-1.7.0}/docs/history.rst +0 -0
  109. {subscript-1.6.1 → subscript-1.7.0}/docs/index.rst +0 -0
  110. {subscript-1.6.1 → subscript-1.7.0}/docs/make.bat +0 -0
  111. {subscript-1.6.1 → subscript-1.7.0}/docs/overview.rst +0 -0
  112. {subscript-1.6.1 → subscript-1.7.0}/docs/scripts/bjobsusers.rst +0 -0
  113. {subscript-1.6.1 → subscript-1.7.0}/docs/scripts/casegen_upcars.rst +0 -0
  114. {subscript-1.6.1 → subscript-1.7.0}/docs/scripts/check_swatinit.rst +0 -0
  115. {subscript-1.6.1 → subscript-1.7.0}/docs/scripts/convert_grid_format.rst +0 -0
  116. {subscript-1.6.1 → subscript-1.7.0}/docs/scripts/csv2ofmvol.rst +0 -0
  117. {subscript-1.6.1 → subscript-1.7.0}/docs/scripts/csv_merge.rst +0 -0
  118. {subscript-1.6.1 → subscript-1.7.0}/docs/scripts/csv_stack.rst +0 -0
  119. {subscript-1.6.1 → subscript-1.7.0}/docs/scripts/eclcompress.rst +0 -0
  120. {subscript-1.6.1 → subscript-1.7.0}/docs/scripts/ecldiff2roff.rst +0 -0
  121. {subscript-1.6.1 → subscript-1.7.0}/docs/scripts/fmu_copy_revision.rst +0 -0
  122. {subscript-1.6.1 → subscript-1.7.0}/docs/scripts/fmuobs.rst +0 -0
  123. {subscript-1.6.1 → subscript-1.7.0}/docs/scripts/grav_subs_maps.rst +0 -0
  124. {subscript-1.6.1 → subscript-1.7.0}/docs/scripts/images/Pack_sim_overview.png +0 -0
  125. {subscript-1.6.1 → subscript-1.7.0}/docs/scripts/images/Summaryplot-ensemble.png +0 -0
  126. {subscript-1.6.1 → subscript-1.7.0}/docs/scripts/images/Summaryplot-ert.png +0 -0
  127. {subscript-1.6.1 → subscript-1.7.0}/docs/scripts/images/Summaryplot-normalizeexample.png +0 -0
  128. {subscript-1.6.1 → subscript-1.7.0}/docs/scripts/images/Workflow_sector2fluxnum.png +0 -0
  129. {subscript-1.6.1 → subscript-1.7.0}/docs/scripts/images/casegen_upcars_geometry.png +0 -0
  130. {subscript-1.6.1 → subscript-1.7.0}/docs/scripts/images/check_swatinit_scatter.png +0 -0
  131. {subscript-1.6.1 → subscript-1.7.0}/docs/scripts/images/check_swatinit_volplot.png +0 -0
  132. {subscript-1.6.1 → subscript-1.7.0}/docs/scripts/images/ecl-swat-initialization.png +0 -0
  133. {subscript-1.6.1 → subscript-1.7.0}/docs/scripts/images/make_check_swatinit_images.sh +0 -0
  134. {subscript-1.6.1 → subscript-1.7.0}/docs/scripts/images/resinsight_wells_project_example.png +0 -0
  135. {subscript-1.6.1 → subscript-1.7.0}/docs/scripts/interp_relperm.rst +0 -0
  136. {subscript-1.6.1 → subscript-1.7.0}/docs/scripts/merge_rft_ertobs.rst +0 -0
  137. {subscript-1.6.1 → subscript-1.7.0}/docs/scripts/merge_unrst_files.rst +0 -0
  138. {subscript-1.6.1 → subscript-1.7.0}/docs/scripts/ofmvol2csv.rst +0 -0
  139. {subscript-1.6.1 → subscript-1.7.0}/docs/scripts/pack_sim.rst +0 -0
  140. {subscript-1.6.1 → subscript-1.7.0}/docs/scripts/params2csv.rst +0 -0
  141. {subscript-1.6.1 → subscript-1.7.0}/docs/scripts/presentvalue.rst +0 -0
  142. {subscript-1.6.1 → subscript-1.7.0}/docs/scripts/prtvol2csv.csv +0 -0
  143. {subscript-1.6.1 → subscript-1.7.0}/docs/scripts/prtvol2csv.rst +0 -0
  144. {subscript-1.6.1 → subscript-1.7.0}/docs/scripts/restartthinner.rst +0 -0
  145. {subscript-1.6.1 → subscript-1.7.0}/docs/scripts/ri_wellmod.rst +0 -0
  146. {subscript-1.6.1 → subscript-1.7.0}/docs/scripts/rmsecl_volumetrics.rst +0 -0
  147. {subscript-1.6.1 → subscript-1.7.0}/docs/scripts/runeclipse.rst +0 -0
  148. {subscript-1.6.1 → subscript-1.7.0}/docs/scripts/sector2fluxnum.rst +0 -0
  149. {subscript-1.6.1 → subscript-1.7.0}/docs/scripts/summaryplot.rst +0 -0
  150. {subscript-1.6.1 → subscript-1.7.0}/docs/scripts/sunsch.rst +0 -0
  151. {subscript-1.6.1 → subscript-1.7.0}/docs/scripts/sw_model_utilities.rst +0 -0
  152. {subscript-1.6.1 → subscript-1.7.0}/docs/scripts/vfp2csv.rst +0 -0
  153. {subscript-1.6.1 → subscript-1.7.0}/docs/scripts/welltest_dpds.rst +0 -0
  154. {subscript-1.6.1 → subscript-1.7.0}/docs/usage.rst +0 -0
  155. {subscript-1.6.1 → subscript-1.7.0}/setup.cfg +0 -0
  156. {subscript-1.6.1 → subscript-1.7.0}/src/subscript/__init__.py +0 -0
  157. {subscript-1.6.1 → subscript-1.7.0}/src/subscript/bjobsusers/__init__.py +0 -0
  158. {subscript-1.6.1 → subscript-1.7.0}/src/subscript/bjobsusers/bjobsusers.py +0 -0
  159. {subscript-1.6.1 → subscript-1.7.0}/src/subscript/casegen_upcars/__init__.py +0 -0
  160. {subscript-1.6.1 → subscript-1.7.0}/src/subscript/casegen_upcars/casegen_upcars.py +0 -0
  161. {subscript-1.6.1 → subscript-1.7.0}/src/subscript/casegen_upcars/model.py +0 -0
  162. {subscript-1.6.1 → subscript-1.7.0}/src/subscript/casegen_upcars/udf.py +0 -0
  163. {subscript-1.6.1 → subscript-1.7.0}/src/subscript/casegen_upcars/udf_arg_parser.py +0 -0
  164. {subscript-1.6.1 → subscript-1.7.0}/src/subscript/check_swatinit/__init__.py +0 -0
  165. {subscript-1.6.1 → subscript-1.7.0}/src/subscript/check_swatinit/check_swatinit.py +0 -0
  166. {subscript-1.6.1 → subscript-1.7.0}/src/subscript/check_swatinit/constants.py +0 -0
  167. {subscript-1.6.1 → subscript-1.7.0}/src/subscript/check_swatinit/pillarmodel.py +0 -0
  168. {subscript-1.6.1 → subscript-1.7.0}/src/subscript/check_swatinit/plotter.py +0 -0
  169. {subscript-1.6.1 → subscript-1.7.0}/src/subscript/config_jobs/CASEGEN_UPCARS +0 -0
  170. {subscript-1.6.1 → subscript-1.7.0}/src/subscript/config_jobs/CHECK_SWATINIT +0 -0
  171. {subscript-1.6.1 → subscript-1.7.0}/src/subscript/config_jobs/CSV2OFMVOL +0 -0
  172. {subscript-1.6.1 → subscript-1.7.0}/src/subscript/config_jobs/CSV_STACK +0 -0
  173. {subscript-1.6.1 → subscript-1.7.0}/src/subscript/config_jobs/ECLCOMPRESS +0 -0
  174. {subscript-1.6.1 → subscript-1.7.0}/src/subscript/config_jobs/ECLDIFF2ROFF +0 -0
  175. {subscript-1.6.1 → subscript-1.7.0}/src/subscript/config_jobs/ECLGRID2ROFF +0 -0
  176. {subscript-1.6.1 → subscript-1.7.0}/src/subscript/config_jobs/ECLINIT2ROFF +0 -0
  177. {subscript-1.6.1 → subscript-1.7.0}/src/subscript/config_jobs/ECLRST2ROFF +0 -0
  178. {subscript-1.6.1 → subscript-1.7.0}/src/subscript/config_jobs/INTERP_RELPERM +0 -0
  179. {subscript-1.6.1 → subscript-1.7.0}/src/subscript/config_jobs/MERGE_RFT_ERTOBS +0 -0
  180. {subscript-1.6.1 → subscript-1.7.0}/src/subscript/config_jobs/MERGE_UNRST_FILES +0 -0
  181. {subscript-1.6.1 → subscript-1.7.0}/src/subscript/config_jobs/OFMVOL2CSV +0 -0
  182. {subscript-1.6.1 → subscript-1.7.0}/src/subscript/config_jobs/PARAMS2CSV +0 -0
  183. {subscript-1.6.1 → subscript-1.7.0}/src/subscript/config_jobs/PRTVOL2CSV +0 -0
  184. {subscript-1.6.1 → subscript-1.7.0}/src/subscript/config_jobs/RI_WELLMOD +0 -0
  185. {subscript-1.6.1 → subscript-1.7.0}/src/subscript/config_jobs/SUNSCH +0 -0
  186. {subscript-1.6.1 → subscript-1.7.0}/src/subscript/config_jobs/WELLTEST_DPDS +0 -0
  187. {subscript-1.6.1 → subscript-1.7.0}/src/subscript/convert_grid_format/__init__.py +0 -0
  188. {subscript-1.6.1 → subscript-1.7.0}/src/subscript/convert_grid_format/convert_grid_format.py +0 -0
  189. {subscript-1.6.1 → subscript-1.7.0}/src/subscript/csv2ofmvol/__init__.py +0 -0
  190. {subscript-1.6.1 → subscript-1.7.0}/src/subscript/csv2ofmvol/csv2ofmvol.py +0 -0
  191. {subscript-1.6.1 → subscript-1.7.0}/src/subscript/csv_merge/__init__.py +0 -0
  192. {subscript-1.6.1 → subscript-1.7.0}/src/subscript/csv_stack/__init__.py +0 -0
  193. {subscript-1.6.1 → subscript-1.7.0}/src/subscript/eclcompress/__init__.py +0 -0
  194. {subscript-1.6.1 → subscript-1.7.0}/src/subscript/eclcompress/allowlist.py +0 -0
  195. {subscript-1.6.1 → subscript-1.7.0}/src/subscript/eclcompress/eclcompress.py +0 -0
  196. {subscript-1.6.1 → subscript-1.7.0}/src/subscript/ecldiff2roff/__init__.py +0 -0
  197. {subscript-1.6.1 → subscript-1.7.0}/src/subscript/ecldiff2roff/ecldiff2roff.py +0 -0
  198. {subscript-1.6.1 → subscript-1.7.0}/src/subscript/eclgrid2roff/eclgrid2roff.py +0 -0
  199. {subscript-1.6.1 → subscript-1.7.0}/src/subscript/eclinit2roff/eclinit2roff.py +0 -0
  200. {subscript-1.6.1 → subscript-1.7.0}/src/subscript/eclrst2roff/eclrst2roff.py +0 -0
  201. {subscript-1.6.1 → subscript-1.7.0}/src/subscript/fmu_copy_revision/__init__.py +0 -0
  202. {subscript-1.6.1 → subscript-1.7.0}/src/subscript/fmu_copy_revision/fmu_copy_revision.py +0 -0
  203. {subscript-1.6.1 → subscript-1.7.0}/src/subscript/fmuobs/__init__.py +0 -0
  204. {subscript-1.6.1 → subscript-1.7.0}/src/subscript/fmuobs/parsers.py +0 -0
  205. {subscript-1.6.1 → subscript-1.7.0}/src/subscript/fmuobs/util.py +0 -0
  206. {subscript-1.6.1 → subscript-1.7.0}/src/subscript/fmuobs/writers.py +0 -0
  207. {subscript-1.6.1 → subscript-1.7.0}/src/subscript/grav_subs_maps/__init__.py +0 -0
  208. {subscript-1.6.1/src/subscript/hook_implementations → subscript-1.7.0/src/subscript/grav_subs_points}/__init__.py +0 -0
  209. {subscript-1.6.1/src/subscript/interp_relperm → subscript-1.7.0/src/subscript/hook_implementations}/__init__.py +0 -0
  210. {subscript-1.6.1/src/subscript/merge_rft_ertobs → subscript-1.7.0/src/subscript/interp_relperm}/__init__.py +0 -0
  211. {subscript-1.6.1 → subscript-1.7.0}/src/subscript/interp_relperm/interp_relperm.py +0 -0
  212. {subscript-1.6.1 → subscript-1.7.0}/src/subscript/legacy/duf +0 -0
  213. {subscript-1.6.1 → subscript-1.7.0}/src/subscript/legacy/eclmanual +0 -0
  214. {subscript-1.6.1 → subscript-1.7.0}/src/subscript/legacy/ertwatch +0 -0
  215. {subscript-1.6.1 → subscript-1.7.0}/src/subscript/legacy/list_rms_usage +0 -0
  216. {subscript-1.6.1 → subscript-1.7.0}/src/subscript/legacy/nosim +0 -0
  217. {subscript-1.6.1 → subscript-1.7.0}/src/subscript/legacy/runeclipse +0 -0
  218. {subscript-1.6.1/src/subscript/merge_unrst_files → subscript-1.7.0/src/subscript/merge_rft_ertobs}/__init__.py +0 -0
  219. {subscript-1.6.1 → subscript-1.7.0}/src/subscript/merge_rft_ertobs/merge_rft_ertobs.py +0 -0
  220. {subscript-1.6.1/src/subscript/ofmvol2csv → subscript-1.7.0/src/subscript/merge_unrst_files}/__init__.py +0 -0
  221. {subscript-1.6.1 → subscript-1.7.0}/src/subscript/merge_unrst_files/merge_unrst_files.py +0 -0
  222. {subscript-1.6.1/src/subscript/pack_sim → subscript-1.7.0/src/subscript/ofmvol2csv}/__init__.py +0 -0
  223. {subscript-1.6.1 → subscript-1.7.0}/src/subscript/ofmvol2csv/ofmvol2csv.py +0 -0
  224. {subscript-1.6.1/src/subscript/params2csv → subscript-1.7.0/src/subscript/pack_sim}/__init__.py +0 -0
  225. {subscript-1.6.1 → subscript-1.7.0}/src/subscript/pack_sim/pack_sim.py +0 -0
  226. {subscript-1.6.1/src/subscript/presentvalue → subscript-1.7.0/src/subscript/params2csv}/__init__.py +0 -0
  227. {subscript-1.6.1/src/subscript/prtvol2csv → subscript-1.7.0/src/subscript/presentvalue}/__init__.py +0 -0
  228. {subscript-1.6.1 → subscript-1.7.0}/src/subscript/presentvalue/presentvalue.py +0 -0
  229. {subscript-1.6.1/src/subscript/restartthinner → subscript-1.7.0/src/subscript/prtvol2csv}/__init__.py +0 -0
  230. {subscript-1.6.1 → subscript-1.7.0}/src/subscript/prtvol2csv/prtvol2csv.py +0 -0
  231. {subscript-1.6.1/src/subscript/ri_wellmod → subscript-1.7.0/src/subscript/restartthinner}/__init__.py +0 -0
  232. {subscript-1.6.1 → subscript-1.7.0}/src/subscript/restartthinner/restartthinner.py +0 -0
  233. {subscript-1.6.1/src/subscript/rmsecl_volumetrics → subscript-1.7.0/src/subscript/ri_wellmod}/__init__.py +0 -0
  234. {subscript-1.6.1 → subscript-1.7.0}/src/subscript/ri_wellmod/ri_wellmod.py +0 -0
  235. {subscript-1.6.1/src/subscript/sector2fluxnum → subscript-1.7.0/src/subscript/rmsecl_volumetrics}/__init__.py +0 -0
  236. {subscript-1.6.1 → subscript-1.7.0}/src/subscript/rmsecl_volumetrics/rmsecl_volumetrics.py +0 -0
  237. {subscript-1.6.1/src/subscript/summaryplot → subscript-1.7.0/src/subscript/sector2fluxnum}/__init__.py +0 -0
  238. {subscript-1.6.1 → subscript-1.7.0}/src/subscript/sector2fluxnum/completions.py +0 -0
  239. {subscript-1.6.1 → subscript-1.7.0}/src/subscript/sector2fluxnum/datafile_obj.py +0 -0
  240. {subscript-1.6.1 → subscript-1.7.0}/src/subscript/sector2fluxnum/flux_obj.py +0 -0
  241. {subscript-1.6.1 → subscript-1.7.0}/src/subscript/sector2fluxnum/flux_util.py +0 -0
  242. {subscript-1.6.1 → subscript-1.7.0}/src/subscript/sector2fluxnum/fluxfile_obj.py +0 -0
  243. {subscript-1.6.1 → subscript-1.7.0}/src/subscript/sector2fluxnum/sector2fluxnum.py +0 -0
  244. {subscript-1.6.1/src/subscript/sunsch → subscript-1.7.0/src/subscript/summaryplot}/__init__.py +0 -0
  245. {subscript-1.6.1 → subscript-1.7.0}/src/subscript/summaryplot/summaryplot.py +0 -0
  246. {subscript-1.6.1/src/subscript/sw_model_utilities → subscript-1.7.0/src/subscript/sunsch}/__init__.py +0 -0
  247. {subscript-1.6.1 → subscript-1.7.0}/src/subscript/sunsch/sunsch.py +0 -0
  248. {subscript-1.6.1/src/subscript/vfp2csv → subscript-1.7.0/src/subscript/sw_model_utilities}/__init__.py +0 -0
  249. {subscript-1.6.1 → subscript-1.7.0}/src/subscript/sw_model_utilities/sw_model_utilities.py +0 -0
  250. {subscript-1.6.1/src/subscript/welltest_dpds → subscript-1.7.0/src/subscript/vfp2csv}/__init__.py +0 -0
  251. {subscript-1.6.1 → subscript-1.7.0}/src/subscript/vfp2csv/vfp2csv.py +0 -0
  252. {subscript-1.6.1/tests → subscript-1.7.0/src/subscript/welltest_dpds}/__init__.py +0 -0
  253. {subscript-1.6.1 → subscript-1.7.0}/src/subscript/welltest_dpds/welltest_dpds.py +0 -0
  254. {subscript-1.6.1 → subscript-1.7.0}/src/subscript.egg-info/dependency_links.txt +0 -0
  255. {subscript-1.6.1 → subscript-1.7.0}/src/subscript.egg-info/top_level.txt +0 -0
  256. {subscript-1.6.1 → subscript-1.7.0}/tests/data/reek/eclipse/include/grid/reek.faults +0 -0
  257. {subscript-1.6.1 → subscript-1.7.0}/tests/data/reek/eclipse/include/grid/reek.grid +0 -0
  258. {subscript-1.6.1 → subscript-1.7.0}/tests/data/reek/eclipse/include/grid/reek.multflt +0 -0
  259. {subscript-1.6.1 → subscript-1.7.0}/tests/data/reek/eclipse/include/grid/reek.multz +0 -0
  260. {subscript-1.6.1 → subscript-1.7.0}/tests/data/reek/eclipse/include/grid/reek.perm +0 -0
  261. {subscript-1.6.1 → subscript-1.7.0}/tests/data/reek/eclipse/include/grid/reek.poro +0 -0
  262. {subscript-1.6.1 → subscript-1.7.0}/tests/data/reek/eclipse/include/props/let-sgof.txt +0 -0
  263. {subscript-1.6.1 → subscript-1.7.0}/tests/data/reek/eclipse/include/props/let-swof.txt +0 -0
  264. {subscript-1.6.1 → subscript-1.7.0}/tests/data/reek/eclipse/include/props/reek.endpoints +0 -0
  265. {subscript-1.6.1 → subscript-1.7.0}/tests/data/reek/eclipse/include/props/reek.pvt +0 -0
  266. {subscript-1.6.1 → subscript-1.7.0}/tests/data/reek/eclipse/include/props/reek.swatinit +0 -0
  267. {subscript-1.6.1 → subscript-1.7.0}/tests/data/reek/eclipse/include/props/sgof.txt +0 -0
  268. {subscript-1.6.1 → subscript-1.7.0}/tests/data/reek/eclipse/include/props/swof.inc +0 -0
  269. {subscript-1.6.1 → subscript-1.7.0}/tests/data/reek/eclipse/include/props/swof.txt +0 -0
  270. {subscript-1.6.1 → subscript-1.7.0}/tests/data/reek/eclipse/include/regions/reek.eqlnum +0 -0
  271. {subscript-1.6.1 → subscript-1.7.0}/tests/data/reek/eclipse/include/regions/reek.fipnum +0 -0
  272. {subscript-1.6.1 → subscript-1.7.0}/tests/data/reek/eclipse/include/schedule/reek_history.sch +0 -0
  273. {subscript-1.6.1 → subscript-1.7.0}/tests/data/reek/eclipse/include/solution/reek.equil +0 -0
  274. {subscript-1.6.1 → subscript-1.7.0}/tests/data/reek/eclipse/include/summary/reek.smry +0 -0
  275. {subscript-1.6.1 → subscript-1.7.0}/tests/data/reek/eclipse/model/2_R001_REEK-0.DATA +0 -0
  276. {subscript-1.6.1 → subscript-1.7.0}/tests/data/reek/eclipse/model/2_R001_REEK-0.ECLEND +0 -0
  277. {subscript-1.6.1 → subscript-1.7.0}/tests/data/reek/eclipse/model/2_R001_REEK-0.EGRID +0 -0
  278. {subscript-1.6.1 → subscript-1.7.0}/tests/data/reek/eclipse/model/2_R001_REEK-0.INIT +0 -0
  279. {subscript-1.6.1 → subscript-1.7.0}/tests/data/reek/eclipse/model/2_R001_REEK-0.LOG +0 -0
  280. {subscript-1.6.1 → subscript-1.7.0}/tests/data/reek/eclipse/model/2_R001_REEK-0.PRT +0 -0
  281. {subscript-1.6.1 → subscript-1.7.0}/tests/data/reek/eclipse/model/2_R001_REEK-0.RFT +0 -0
  282. {subscript-1.6.1 → subscript-1.7.0}/tests/data/reek/eclipse/model/2_R001_REEK-0.SMSPEC +0 -0
  283. {subscript-1.6.1 → subscript-1.7.0}/tests/data/reek/eclipse/model/2_R001_REEK-0.UNRST +0 -0
  284. {subscript-1.6.1 → subscript-1.7.0}/tests/data/reek/eclipse/model/2_R001_REEK-0.UNSMRY +0 -0
  285. {subscript-1.6.1 → subscript-1.7.0}/tests/data/reek/eclipse/model/parameters.txt +0 -0
  286. {subscript-1.6.1 → subscript-1.7.0}/tests/data/reek/parameters.txt +0 -0
  287. {subscript-1.6.1 → subscript-1.7.0}/tests/data/reek/rms/README +0 -0
  288. {subscript-1.6.1 → subscript-1.7.0}/tests/data/reek/rms/reek.rms10.1.3/.master +0 -0
  289. {subscript-1.6.1 → subscript-1.7.0}/tests/data/reek/rms/reek.rms11.1.0/.master +0 -0
  290. {subscript-1.6.1 → subscript-1.7.0}/tests/data/vfp/GasProd.VFP +0 -0
  291. {subscript-1.6.1 → subscript-1.7.0}/tests/data/vfp/pd2.VFP +0 -0
  292. {subscript-1.6.1 → subscript-1.7.0}/tests/data/welltest/eclipse/model/DROGON_DST_PLT-0.SMSPEC +0 -0
  293. {subscript-1.6.1 → subscript-1.7.0}/tests/data/welltest/eclipse/model/DROGON_DST_PLT-0.UNSMRY +0 -0
  294. {subscript-1.6.1 → subscript-1.7.0}/tests/test_docs.py +0 -0
  295. {subscript-1.6.1 → subscript-1.7.0}/tests/test_subscriptlogger.py +0 -0
  296. {subscript-1.6.1 → subscript-1.7.0}/tests/testdata_casegen_upcars/demo_large_scale.yaml +0 -0
  297. {subscript-1.6.1 → subscript-1.7.0}/tests/testdata_casegen_upcars/demo_small_scale.yaml +0 -0
  298. {subscript-1.6.1 → subscript-1.7.0}/tests/testdata_casegen_upcars/dump_value.tmpl +0 -0
  299. {subscript-1.6.1 → subscript-1.7.0}/tests/testdata_casegen_upcars/upcars_eclipse_ref_lg.tmpl +0 -0
  300. {subscript-1.6.1 → subscript-1.7.0}/tests/testdata_casegen_upcars/upcars_eclipse_ref_ss.tmpl +0 -0
  301. {subscript-1.6.1 → subscript-1.7.0}/tests/testdata_eclcompress/permxyz.grdecl +0 -0
  302. {subscript-1.6.1 → subscript-1.7.0}/tests/testdata_fmuobs/drogon_wbhp_rft_wct_gor_tracer_4d.obs +0 -0
  303. {subscript-1.6.1 → subscript-1.7.0}/tests/testdata_fmuobs/ert-doc.csv +0 -0
  304. {subscript-1.6.1 → subscript-1.7.0}/tests/testdata_fmuobs/ert-doc.obs +0 -0
  305. {subscript-1.6.1 → subscript-1.7.0}/tests/testdata_fmuobs/ert-doc.yml +0 -0
  306. {subscript-1.6.1 → subscript-1.7.0}/tests/testdata_fmuobs/fmu-ensemble-obs.yml +0 -0
  307. {subscript-1.6.1 → subscript-1.7.0}/tests/testdata_fmuobs/hist_obs_wells.txt +0 -0
  308. {subscript-1.6.1 → subscript-1.7.0}/tests/testdata_fmuobs/ri-obs.csv +0 -0
  309. {subscript-1.6.1 → subscript-1.7.0}/tests/testdata_gravity/HIST.EGRID +0 -0
  310. {subscript-1.6.1 → subscript-1.7.0}/tests/testdata_gravity/HIST.INIT +0 -0
  311. {subscript-1.6.1 → subscript-1.7.0}/tests/testdata_gravity/HIST.UNRST +0 -0
  312. {subscript-1.6.1 → subscript-1.7.0}/tests/testdata_gravity/seabed.gri +0 -0
  313. /subscript-1.6.1/tests/testdata_gravity/station_coordinates.txt → /subscript-1.7.0/tests/testdata_gravity/station_coordinates.csv +0 -0
  314. {subscript-1.6.1 → subscript-1.7.0}/tests/testdata_interp_relperm/cfg.yml +0 -0
  315. {subscript-1.6.1 → subscript-1.7.0}/tests/testdata_interp_relperm/sgof_base.inc +0 -0
  316. {subscript-1.6.1 → subscript-1.7.0}/tests/testdata_interp_relperm/sgof_opt.inc +0 -0
  317. {subscript-1.6.1 → subscript-1.7.0}/tests/testdata_interp_relperm/sgof_pes.inc +0 -0
  318. {subscript-1.6.1 → subscript-1.7.0}/tests/testdata_interp_relperm/swof_base.inc +0 -0
  319. {subscript-1.6.1 → subscript-1.7.0}/tests/testdata_interp_relperm/swof_opt.inc +0 -0
  320. {subscript-1.6.1 → subscript-1.7.0}/tests/testdata_interp_relperm/swof_pes.inc +0 -0
  321. {subscript-1.6.1 → subscript-1.7.0}/tests/testdata_merge_rft_ertobs/drogon/gendata_rft.csv +0 -0
  322. {subscript-1.6.1 → subscript-1.7.0}/tests/testdata_merge_rft_ertobs/drogon/rft/R_A2.obs +0 -0
  323. {subscript-1.6.1 → subscript-1.7.0}/tests/testdata_merge_rft_ertobs/drogon/rft/R_A2.txt +0 -0
  324. {subscript-1.6.1 → subscript-1.7.0}/tests/testdata_merge_rft_ertobs/drogon/rft/R_A3.obs +0 -0
  325. {subscript-1.6.1 → subscript-1.7.0}/tests/testdata_merge_rft_ertobs/drogon/rft/R_A3.txt +0 -0
  326. {subscript-1.6.1 → subscript-1.7.0}/tests/testdata_merge_rft_ertobs/drogon/rft/R_A4.txt +0 -0
  327. {subscript-1.6.1 → subscript-1.7.0}/tests/testdata_merge_rft_ertobs/drogon/rft/R_A4_1.obs +0 -0
  328. {subscript-1.6.1 → subscript-1.7.0}/tests/testdata_merge_rft_ertobs/drogon/rft/R_A5.obs +0 -0
  329. {subscript-1.6.1 → subscript-1.7.0}/tests/testdata_merge_rft_ertobs/drogon/rft/R_A5.txt +0 -0
  330. {subscript-1.6.1 → subscript-1.7.0}/tests/testdata_merge_rft_ertobs/drogon/rft/R_A6.obs +0 -0
  331. {subscript-1.6.1 → subscript-1.7.0}/tests/testdata_merge_rft_ertobs/drogon/rft/R_A6.txt +0 -0
  332. {subscript-1.6.1 → subscript-1.7.0}/tests/testdata_merge_rft_ertobs/drogon/rft/well_date_rft.txt +0 -0
  333. {subscript-1.6.1 → subscript-1.7.0}/tests/testdata_merge_unrst_files/HIST.UNRST +0 -0
  334. {subscript-1.6.1 → subscript-1.7.0}/tests/testdata_merge_unrst_files/PRED.UNRST +0 -0
  335. {subscript-1.6.1 → subscript-1.7.0}/tests/testdata_ofmvol2csv/fileA.vol +0 -0
  336. {subscript-1.6.1 → subscript-1.7.0}/tests/testdata_ofmvol2csv/fileB.vol +0 -0
  337. {subscript-1.6.1 → subscript-1.7.0}/tests/testdata_ofmvol2csv/fileC.vol +0 -0
  338. {subscript-1.6.1 → subscript-1.7.0}/tests/testdata_ofmvol2csv/ofm_example.vol +0 -0
  339. {subscript-1.6.1 → subscript-1.7.0}/tests/testdata_ri_wellmod/drogon_include/grid/drogon.grid.grdecl +0 -0
  340. {subscript-1.6.1 → subscript-1.7.0}/tests/testdata_ri_wellmod/drogon_include/grid/drogon.ntg.grdecl +0 -0
  341. {subscript-1.6.1 → subscript-1.7.0}/tests/testdata_ri_wellmod/drogon_include/grid/drogon.perm.grdecl +0 -0
  342. {subscript-1.6.1 → subscript-1.7.0}/tests/testdata_ri_wellmod/drogon_trajectories/rft_wells.dat +0 -0
  343. {subscript-1.6.1 → subscript-1.7.0}/tests/testdata_ri_wellmod/drogon_trajectories/wells.dat +0 -0
  344. {subscript-1.6.1 → subscript-1.7.0}/tests/testdata_ri_wellmod/drogon_wells_noicd.rsp +0 -0
  345. {subscript-1.6.1 → subscript-1.7.0}/tests/testdata_ri_wellmod/reek_trajectories/reek_wells.dat +0 -0
  346. {subscript-1.6.1 → subscript-1.7.0}/tests/testdata_ri_wellmod/ri_reek_wells.rsp +0 -0
  347. {subscript-1.6.1 → subscript-1.7.0}/tests/testdata_sector2fluxnum/DUMPFLUX_TEST.DATA +0 -0
  348. {subscript-1.6.1 → subscript-1.7.0}/tests/testdata_sector2fluxnum/DUMPFLUX_TEST.EGRID +0 -0
  349. {subscript-1.6.1 → subscript-1.7.0}/tests/testdata_sector2fluxnum/DUMPFLUX_TEST.FLUX +0 -0
  350. {subscript-1.6.1 → subscript-1.7.0}/tests/testdata_sector2fluxnum/OUT_COARSE.FLUX +0 -0
  351. {subscript-1.6.1 → subscript-1.7.0}/tests/testdata_sector2fluxnum/TEST.DATA +0 -0
  352. {subscript-1.6.1 → subscript-1.7.0}/tests/testdata_sector2fluxnum/TEST.EGRID +0 -0
  353. {subscript-1.6.1 → subscript-1.7.0}/tests/testdata_sector2fluxnum/TEST.INIT +0 -0
  354. {subscript-1.6.1 → subscript-1.7.0}/tests/testdata_sector2fluxnum/TEST.UNRST +0 -0
  355. {subscript-1.6.1 → subscript-1.7.0}/tests/testdata_sunsch/config.yml +0 -0
  356. {subscript-1.6.1 → subscript-1.7.0}/tests/testdata_sunsch/emptyinit.sch +0 -0
  357. {subscript-1.6.1 → subscript-1.7.0}/tests/testdata_sunsch/foo1.sch +0 -0
  358. {subscript-1.6.1 → subscript-1.7.0}/tests/testdata_sunsch/footemplate.sch +0 -0
  359. {subscript-1.6.1 → subscript-1.7.0}/tests/testdata_sunsch/initwithdates.sch +0 -0
  360. {subscript-1.6.1 → subscript-1.7.0}/tests/testdata_sunsch/merge2.sch +0 -0
  361. {subscript-1.6.1 → subscript-1.7.0}/tests/testdata_sunsch/mergeme.sch +0 -0
  362. {subscript-1.6.1 → subscript-1.7.0}/tests/testdata_sunsch/options3.sch +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: subscript
3
- Version: 1.6.1
3
+ Version: 1.7.0
4
4
  Summary: Equinor's collection of subsurface reservoir modelling scripts
5
5
  Author-email: Equinor <rnyb@equinor.com>
6
6
  License: GNU GENERAL PUBLIC LICENSE
@@ -701,10 +701,11 @@ License-File: LICENSE
701
701
  Requires-Dist: resdata
702
702
  Requires-Dist: res2df
703
703
  Requires-Dist: ert
704
+ Requires-Dist: ert>=10.2.0b13
704
705
  Requires-Dist: fmu-tools
705
706
  Requires-Dist: matplotlib
706
707
  Requires-Dist: numpy<2
707
- Requires-Dist: opm>=2021.10
708
+ Requires-Dist: opm>=2023.04
708
709
  Requires-Dist: pandas
709
710
  Requires-Dist: pyscal
710
711
  Requires-Dist: pyyaml
@@ -730,7 +731,7 @@ Requires-Dist: types-python-dateutil; extra == "tests"
730
731
  Provides-Extra: docs
731
732
  Requires-Dist: autoapi; extra == "docs"
732
733
  Requires-Dist: sphinx; extra == "docs"
733
- Requires-Dist: sphinx-argparse<0.5.0; extra == "docs"
734
+ Requires-Dist: sphinx-argparse; extra == "docs"
734
735
  Requires-Dist: sphinx-autodoc-typehints; extra == "docs"
735
736
  Requires-Dist: sphinx-copybutton; extra == "docs"
736
737
  Requires-Dist: sphinx-togglebutton; extra == "docs"
@@ -0,0 +1,7 @@
1
+ GRAV_SUBS_POINTS
2
+ ================
3
+
4
+ .. argparse::
5
+ :module: subscript.grav_subs_points.grav_subs_points
6
+ :func: get_parser
7
+ :prog: grav_subs_points
@@ -39,10 +39,11 @@ dependencies = [
39
39
  "resdata",
40
40
  "res2df",
41
41
  "ert",
42
+ "ert>=10.2.0b13",
42
43
  "fmu-tools",
43
44
  "matplotlib",
44
45
  "numpy<2",
45
- "opm>=2021.10",
46
+ "opm>=2023.04",
46
47
  "pandas",
47
48
  "pyscal",
48
49
  "pyyaml",
@@ -72,7 +73,7 @@ tests = [
72
73
  docs = [
73
74
  "autoapi",
74
75
  "sphinx",
75
- "sphinx-argparse<0.5.0",
76
+ "sphinx-argparse",
76
77
  "sphinx-autodoc-typehints",
77
78
  "sphinx-copybutton",
78
79
  "sphinx-togglebutton",
@@ -97,6 +98,7 @@ ecldiff2roff = "subscript.ecldiff2roff.ecldiff2roff:main"
97
98
  fmu_copy_revision = "subscript.fmu_copy_revision.fmu_copy_revision:main"
98
99
  fmuobs = "subscript.fmuobs.fmuobs:main"
99
100
  grav_subs_maps = "subscript.grav_subs_maps.grav_subs_maps:main"
101
+ grav_subs_points = "subscript.grav_subs_points.grav_subs_points:main"
100
102
  interp_relperm = "subscript.interp_relperm.interp_relperm:main"
101
103
  merge_rft_ertobs = "subscript.merge_rft_ertobs.merge_rft_ertobs:main"
102
104
  merge_unrst_files = "subscript.merge_unrst_files.merge_unrst_files:main"
@@ -1,5 +1,6 @@
1
1
  EXECUTABLE grav_subs_maps
2
2
 
3
+ DEFAULT <OUTPUT_DIR> "./"
3
4
  DEFAULT <ROOT_PATH> "./"
4
5
 
5
6
  ARGLIST "--configfile" <GRAVMAPS_CONFIG> "--root-path" <ROOT_PATH> "--outputdir" <OUTPUT_DIR> <UNRST_FILE>
@@ -0,0 +1,10 @@
1
+ EXECUTABLE grav_subs_points
2
+
3
+ DEFAULT <OUTPUT_DIR> "./"
4
+ DEFAULT <ROOT_PATH> "./"
5
+
6
+ ARGLIST "--configfile" <GRAVPOINTS_CONFIG> "--root-path" <ROOT_PATH> "--outputdir" <OUTPUT_DIR> <UNRST_FILE>
7
+
8
+ MIN_ARG 2
9
+ MAX_ARG 4
10
+ ARG_TYPE 0 STRING
@@ -7,9 +7,9 @@ import re
7
7
  import sys
8
8
  from typing import Dict, List, Optional
9
9
 
10
+ import ert
10
11
  import pandas as pd
11
12
  from ert.config import ErtScript
12
- from ert.shared.plugins.plugin_manager import hook_implementation # type: ignore
13
13
 
14
14
  from subscript import __version__, getLogger
15
15
  from subscript.eclcompress.eclcompress import glob_patterns
@@ -317,7 +317,7 @@ def csv_merge_main(
317
317
  logger.info(" - Finished writing to %s", output)
318
318
 
319
319
 
320
- @hook_implementation
320
+ @ert.plugin(name="subscript")
321
321
  def legacy_ertscript_workflow(config):
322
322
  """Hook the CsvMerge class into ERT with the name CSV_MERGE,
323
323
  and inject documentation"""
@@ -8,9 +8,9 @@ import sys
8
8
  import warnings
9
9
  from typing import Pattern
10
10
 
11
+ import ert
11
12
  import pandas as pd
12
13
  from ert.config import ErtScript
13
- from ert.shared.plugins.plugin_manager import hook_implementation # type: ignore
14
14
 
15
15
  from subscript import __version__, getLogger
16
16
 
@@ -334,7 +334,7 @@ def csv_stack(
334
334
  return dframe.reset_index(drop=True)
335
335
 
336
336
 
337
- @hook_implementation
337
+ @ert.plugin(name="subscript")
338
338
  def legacy_ertscript_workflow(config) -> None:
339
339
  """Hook the CsvStack class into ERT with the name CSV_STACK,
340
340
  and inject documentation"""
@@ -9,10 +9,10 @@ import sys
9
9
  from pathlib import Path
10
10
  from typing import Optional, Tuple, Union
11
11
 
12
+ import ert
12
13
  import pandas as pd
13
14
  import yaml
14
15
  from ert.config import ErtScript
15
- from ert.shared.plugins.plugin_manager import hook_implementation # type: ignore
16
16
 
17
17
  from subscript import __version__, getLogger
18
18
  from subscript.fmuobs.parsers import (
@@ -456,7 +456,7 @@ class FmuObs(ErtScript):
456
456
  fmuobs(**vars(parsed_args))
457
457
 
458
458
 
459
- @hook_implementation
459
+ @ert.plugin(name="subscript")
460
460
  def legacy_ertscript_workflow(config):
461
461
  """A hook for usage of this script in an ERT workflow,
462
462
  using the legacy hook format."""
@@ -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, <GRAV_CONFIG>=grav_subs_maps.yml, <ROOT_PATH>=<CONFIG_PATH>, <OUTPUTDIR>=share/results/maps)
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 ``OUTPUTDIR`` is the path to the output folder.
66
- ``ROOT_PATH`` is optinal and defaulted to "./". This is the rooth path assumed for
67
- relative paths in the yml config.
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 GravInput(BaseModel):
74
- diffdates: List[List[date]]
78
+ class GravMapsInput(BaseModel):
79
+ diffdates: List[Tuple[date, date]]
75
80
  seabed_map: FilePath
76
81
 
77
82
 
78
- class GravCalc(BaseModel):
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: GravInput
94
- calculations: GravCalc
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: An relative or absolute path to be prepended
179
+ root_path: A relative or absolute path to be prepended
177
180
 
178
181
  Returns:
179
- Modified configuration for interp_relperm
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()