subscript 1.14.7__tar.gz → 1.15.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 (404) hide show
  1. {subscript-1.14.7 → subscript-1.15.0}/.github/workflows/codecov.yml +1 -1
  2. {subscript-1.14.7 → subscript-1.15.0}/PKG-INFO +2 -1
  3. {subscript-1.14.7 → subscript-1.15.0}/pyproject.toml +1 -0
  4. {subscript-1.14.7 → subscript-1.15.0}/src/subscript/eclcompress/eclcompress.py +1 -1
  5. {subscript-1.14.7 → subscript-1.15.0}/src/subscript/field_statistics/field_statistics.py +85 -38
  6. {subscript-1.14.7 → subscript-1.15.0}/src/subscript/fmuobs/fmuobs.py +2 -2
  7. subscript-1.15.0/src/subscript/version.py +24 -0
  8. {subscript-1.14.7 → subscript-1.15.0}/src/subscript.egg-info/PKG-INFO +2 -1
  9. {subscript-1.14.7 → subscript-1.15.0}/src/subscript.egg-info/SOURCES.txt +1 -0
  10. {subscript-1.14.7 → subscript-1.15.0}/src/subscript.egg-info/requires.txt +1 -0
  11. {subscript-1.14.7 → subscript-1.15.0}/tests/test_field_statistics.py +122 -0
  12. {subscript-1.14.7 → subscript-1.15.0}/tests/test_fmuobs.py +49 -0
  13. subscript-1.15.0/tests/testdata_fmuobs/summary_obs_without_date.obs +28 -0
  14. subscript-1.14.7/src/subscript/version.py +0 -34
  15. {subscript-1.14.7 → subscript-1.15.0}/.github/dependabot.yml +0 -0
  16. {subscript-1.14.7 → subscript-1.15.0}/.github/workflows/linting.yml +0 -0
  17. {subscript-1.14.7 → subscript-1.15.0}/.github/workflows/publish.yml +0 -0
  18. {subscript-1.14.7 → subscript-1.15.0}/.github/workflows/subscript.yml +0 -0
  19. {subscript-1.14.7 → subscript-1.15.0}/.gitignore +0 -0
  20. {subscript-1.14.7 → subscript-1.15.0}/LICENSE +0 -0
  21. {subscript-1.14.7 → subscript-1.15.0}/README.md +0 -0
  22. {subscript-1.14.7 → subscript-1.15.0}/SECURITY.md +0 -0
  23. {subscript-1.14.7 → subscript-1.15.0}/ci/testkomodo.sh +0 -0
  24. {subscript-1.14.7 → subscript-1.15.0}/docs/Makefile +0 -0
  25. {subscript-1.14.7 → subscript-1.15.0}/docs/_static/equinor-logo.png +0 -0
  26. {subscript-1.14.7 → subscript-1.15.0}/docs/_static/equinor-logo2.jpg +0 -0
  27. {subscript-1.14.7 → subscript-1.15.0}/docs/_static/equinor-logo2.png +0 -0
  28. {subscript-1.14.7 → subscript-1.15.0}/docs/_static/equinor_logo.jpg +0 -0
  29. {subscript-1.14.7 → subscript-1.15.0}/docs/_static/equinor_logo_only.jpg +0 -0
  30. {subscript-1.14.7 → subscript-1.15.0}/docs/_templates/layout.html +0 -0
  31. {subscript-1.14.7 → subscript-1.15.0}/docs/conf.py +0 -0
  32. {subscript-1.14.7 → subscript-1.15.0}/docs/contributing.rst +0 -0
  33. {subscript-1.14.7 → subscript-1.15.0}/docs/history.rst +0 -0
  34. {subscript-1.14.7 → subscript-1.15.0}/docs/index.rst +0 -0
  35. {subscript-1.14.7 → subscript-1.15.0}/docs/make.bat +0 -0
  36. {subscript-1.14.7 → subscript-1.15.0}/docs/overview.rst +0 -0
  37. {subscript-1.14.7 → subscript-1.15.0}/docs/scripts/bjobsusers.rst +0 -0
  38. {subscript-1.14.7 → subscript-1.15.0}/docs/scripts/casegen_upcars.rst +0 -0
  39. {subscript-1.14.7 → subscript-1.15.0}/docs/scripts/check_swatinit.rst +0 -0
  40. {subscript-1.14.7 → subscript-1.15.0}/docs/scripts/convert_grid_format.rst +0 -0
  41. {subscript-1.14.7 → subscript-1.15.0}/docs/scripts/create_date_files.rst +0 -0
  42. {subscript-1.14.7 → subscript-1.15.0}/docs/scripts/csv2ofmvol.rst +0 -0
  43. {subscript-1.14.7 → subscript-1.15.0}/docs/scripts/csv_merge.rst +0 -0
  44. {subscript-1.14.7 → subscript-1.15.0}/docs/scripts/csv_stack.rst +0 -0
  45. {subscript-1.14.7 → subscript-1.15.0}/docs/scripts/eclcompress.rst +0 -0
  46. {subscript-1.14.7 → subscript-1.15.0}/docs/scripts/ecldiff2roff.rst +0 -0
  47. {subscript-1.14.7 → subscript-1.15.0}/docs/scripts/field_statistics.rst +0 -0
  48. {subscript-1.14.7 → subscript-1.15.0}/docs/scripts/fmu_copy_revision.rst +0 -0
  49. {subscript-1.14.7 → subscript-1.15.0}/docs/scripts/fmuobs.rst +0 -0
  50. {subscript-1.14.7 → subscript-1.15.0}/docs/scripts/grav_subs_maps.rst +0 -0
  51. {subscript-1.14.7 → subscript-1.15.0}/docs/scripts/grav_subs_points.rst +0 -0
  52. {subscript-1.14.7 → subscript-1.15.0}/docs/scripts/images/Pack_sim_overview.png +0 -0
  53. {subscript-1.14.7 → subscript-1.15.0}/docs/scripts/images/Summaryplot-ensemble.png +0 -0
  54. {subscript-1.14.7 → subscript-1.15.0}/docs/scripts/images/Summaryplot-ert.png +0 -0
  55. {subscript-1.14.7 → subscript-1.15.0}/docs/scripts/images/Summaryplot-normalizeexample.png +0 -0
  56. {subscript-1.14.7 → subscript-1.15.0}/docs/scripts/images/Workflow_sector2fluxnum.png +0 -0
  57. {subscript-1.14.7 → subscript-1.15.0}/docs/scripts/images/casegen_upcars_geometry.png +0 -0
  58. {subscript-1.14.7 → subscript-1.15.0}/docs/scripts/images/check_swatinit_scatter.png +0 -0
  59. {subscript-1.14.7 → subscript-1.15.0}/docs/scripts/images/check_swatinit_volplot.png +0 -0
  60. {subscript-1.14.7 → subscript-1.15.0}/docs/scripts/images/ecl-swat-initialization.png +0 -0
  61. {subscript-1.14.7 → subscript-1.15.0}/docs/scripts/images/make_check_swatinit_images.sh +0 -0
  62. {subscript-1.14.7 → subscript-1.15.0}/docs/scripts/images/resinsight_wells_project_example.png +0 -0
  63. {subscript-1.14.7 → subscript-1.15.0}/docs/scripts/interp_relperm.rst +0 -0
  64. {subscript-1.14.7 → subscript-1.15.0}/docs/scripts/merge_rft_ertobs.rst +0 -0
  65. {subscript-1.14.7 → subscript-1.15.0}/docs/scripts/merge_unrst_files.rst +0 -0
  66. {subscript-1.14.7 → subscript-1.15.0}/docs/scripts/ofmvol2csv.rst +0 -0
  67. {subscript-1.14.7 → subscript-1.15.0}/docs/scripts/pack_sim.rst +0 -0
  68. {subscript-1.14.7 → subscript-1.15.0}/docs/scripts/params2csv.rst +0 -0
  69. {subscript-1.14.7 → subscript-1.15.0}/docs/scripts/presentvalue.rst +0 -0
  70. {subscript-1.14.7 → subscript-1.15.0}/docs/scripts/prtvol2csv.csv +0 -0
  71. {subscript-1.14.7 → subscript-1.15.0}/docs/scripts/prtvol2csv.rst +0 -0
  72. {subscript-1.14.7 → subscript-1.15.0}/docs/scripts/restartthinner.rst +0 -0
  73. {subscript-1.14.7 → subscript-1.15.0}/docs/scripts/rmsecl_volumetrics.rst +0 -0
  74. {subscript-1.14.7 → subscript-1.15.0}/docs/scripts/sector2fluxnum.rst +0 -0
  75. {subscript-1.14.7 → subscript-1.15.0}/docs/scripts/summaryplot.rst +0 -0
  76. {subscript-1.14.7 → subscript-1.15.0}/docs/scripts/sunsch.rst +0 -0
  77. {subscript-1.14.7 → subscript-1.15.0}/docs/scripts/sw_model_utilities.rst +0 -0
  78. {subscript-1.14.7 → subscript-1.15.0}/docs/scripts/vfp2csv.rst +0 -0
  79. {subscript-1.14.7 → subscript-1.15.0}/docs/scripts/welltest_dpds.rst +0 -0
  80. {subscript-1.14.7 → subscript-1.15.0}/docs/usage.rst +0 -0
  81. {subscript-1.14.7 → subscript-1.15.0}/setup.cfg +0 -0
  82. {subscript-1.14.7 → subscript-1.15.0}/src/subscript/__init__.py +0 -0
  83. {subscript-1.14.7 → subscript-1.15.0}/src/subscript/bjobsusers/__init__.py +0 -0
  84. {subscript-1.14.7 → subscript-1.15.0}/src/subscript/bjobsusers/bjobsusers.py +0 -0
  85. {subscript-1.14.7 → subscript-1.15.0}/src/subscript/casegen_upcars/__init__.py +0 -0
  86. {subscript-1.14.7 → subscript-1.15.0}/src/subscript/casegen_upcars/casegen_upcars.py +0 -0
  87. {subscript-1.14.7 → subscript-1.15.0}/src/subscript/casegen_upcars/model.py +0 -0
  88. {subscript-1.14.7 → subscript-1.15.0}/src/subscript/casegen_upcars/udf.py +0 -0
  89. {subscript-1.14.7 → subscript-1.15.0}/src/subscript/casegen_upcars/udf_arg_parser.py +0 -0
  90. {subscript-1.14.7 → subscript-1.15.0}/src/subscript/check_swatinit/__init__.py +0 -0
  91. {subscript-1.14.7 → subscript-1.15.0}/src/subscript/check_swatinit/check_swatinit.py +0 -0
  92. {subscript-1.14.7 → subscript-1.15.0}/src/subscript/check_swatinit/constants.py +0 -0
  93. {subscript-1.14.7 → subscript-1.15.0}/src/subscript/check_swatinit/pillarmodel.py +0 -0
  94. {subscript-1.14.7 → subscript-1.15.0}/src/subscript/check_swatinit/plotter.py +0 -0
  95. {subscript-1.14.7 → subscript-1.15.0}/src/subscript/convert_grid_format/__init__.py +0 -0
  96. {subscript-1.14.7 → subscript-1.15.0}/src/subscript/convert_grid_format/convert_grid_format.py +0 -0
  97. {subscript-1.14.7 → subscript-1.15.0}/src/subscript/create_date_files/__init__.py +0 -0
  98. {subscript-1.14.7 → subscript-1.15.0}/src/subscript/create_date_files/create_date_files.py +0 -0
  99. {subscript-1.14.7 → subscript-1.15.0}/src/subscript/csv2ofmvol/__init__.py +0 -0
  100. {subscript-1.14.7 → subscript-1.15.0}/src/subscript/csv2ofmvol/csv2ofmvol.py +0 -0
  101. {subscript-1.14.7 → subscript-1.15.0}/src/subscript/csv_merge/__init__.py +0 -0
  102. {subscript-1.14.7 → subscript-1.15.0}/src/subscript/csv_merge/csv_merge.py +0 -0
  103. {subscript-1.14.7 → subscript-1.15.0}/src/subscript/csv_stack/__init__.py +0 -0
  104. {subscript-1.14.7 → subscript-1.15.0}/src/subscript/csv_stack/csv_stack.py +0 -0
  105. {subscript-1.14.7 → subscript-1.15.0}/src/subscript/eclcompress/__init__.py +0 -0
  106. {subscript-1.14.7 → subscript-1.15.0}/src/subscript/eclcompress/allowlist.py +0 -0
  107. {subscript-1.14.7 → subscript-1.15.0}/src/subscript/ecldiff2roff/__init__.py +0 -0
  108. {subscript-1.14.7 → subscript-1.15.0}/src/subscript/ecldiff2roff/ecldiff2roff.py +0 -0
  109. {subscript-1.14.7 → subscript-1.15.0}/src/subscript/field_statistics/__init__.py +0 -0
  110. {subscript-1.14.7 → subscript-1.15.0}/src/subscript/fmu_copy_revision/__init__.py +0 -0
  111. {subscript-1.14.7 → subscript-1.15.0}/src/subscript/fmu_copy_revision/fmu_copy_revision.py +0 -0
  112. {subscript-1.14.7 → subscript-1.15.0}/src/subscript/fmuobs/__init__.py +0 -0
  113. {subscript-1.14.7 → subscript-1.15.0}/src/subscript/fmuobs/parsers.py +0 -0
  114. {subscript-1.14.7 → subscript-1.15.0}/src/subscript/fmuobs/util.py +0 -0
  115. {subscript-1.14.7 → subscript-1.15.0}/src/subscript/fmuobs/writers.py +0 -0
  116. {subscript-1.14.7 → subscript-1.15.0}/src/subscript/grav_subs_maps/__init__.py +0 -0
  117. {subscript-1.14.7 → subscript-1.15.0}/src/subscript/grav_subs_maps/grav_subs_maps.py +0 -0
  118. {subscript-1.14.7 → subscript-1.15.0}/src/subscript/grav_subs_points/__init__.py +0 -0
  119. {subscript-1.14.7 → subscript-1.15.0}/src/subscript/grav_subs_points/grav_subs_points.py +0 -0
  120. {subscript-1.14.7 → subscript-1.15.0}/src/subscript/hook_implementations/__init__.py +0 -0
  121. {subscript-1.14.7 → subscript-1.15.0}/src/subscript/hook_implementations/forward_model_steps.py +0 -0
  122. {subscript-1.14.7 → subscript-1.15.0}/src/subscript/interp_relperm/__init__.py +0 -0
  123. {subscript-1.14.7 → subscript-1.15.0}/src/subscript/interp_relperm/interp_relperm.py +0 -0
  124. {subscript-1.14.7 → subscript-1.15.0}/src/subscript/legacy/duf +0 -0
  125. {subscript-1.14.7 → subscript-1.15.0}/src/subscript/legacy/eclmanual +0 -0
  126. {subscript-1.14.7 → subscript-1.15.0}/src/subscript/legacy/ertwatch +0 -0
  127. {subscript-1.14.7 → subscript-1.15.0}/src/subscript/legacy/list_rms_usage +0 -0
  128. {subscript-1.14.7 → subscript-1.15.0}/src/subscript/legacy/nosim +0 -0
  129. {subscript-1.14.7 → subscript-1.15.0}/src/subscript/legacy/runeclipse +0 -0
  130. {subscript-1.14.7 → subscript-1.15.0}/src/subscript/merge_rft_ertobs/__init__.py +0 -0
  131. {subscript-1.14.7 → subscript-1.15.0}/src/subscript/merge_rft_ertobs/merge_rft_ertobs.py +0 -0
  132. {subscript-1.14.7 → subscript-1.15.0}/src/subscript/merge_unrst_files/__init__.py +0 -0
  133. {subscript-1.14.7 → subscript-1.15.0}/src/subscript/merge_unrst_files/merge_unrst_files.py +0 -0
  134. {subscript-1.14.7 → subscript-1.15.0}/src/subscript/ofmvol2csv/__init__.py +0 -0
  135. {subscript-1.14.7 → subscript-1.15.0}/src/subscript/ofmvol2csv/ofmvol2csv.py +0 -0
  136. {subscript-1.14.7 → subscript-1.15.0}/src/subscript/pack_sim/__init__.py +0 -0
  137. {subscript-1.14.7 → subscript-1.15.0}/src/subscript/pack_sim/pack_sim.py +0 -0
  138. {subscript-1.14.7 → subscript-1.15.0}/src/subscript/params2csv/__init__.py +0 -0
  139. {subscript-1.14.7 → subscript-1.15.0}/src/subscript/params2csv/params2csv.py +0 -0
  140. {subscript-1.14.7 → subscript-1.15.0}/src/subscript/presentvalue/__init__.py +0 -0
  141. {subscript-1.14.7 → subscript-1.15.0}/src/subscript/presentvalue/presentvalue.py +0 -0
  142. {subscript-1.14.7 → subscript-1.15.0}/src/subscript/prtvol2csv/__init__.py +0 -0
  143. {subscript-1.14.7 → subscript-1.15.0}/src/subscript/prtvol2csv/prtvol2csv.py +0 -0
  144. {subscript-1.14.7 → subscript-1.15.0}/src/subscript/restartthinner/__init__.py +0 -0
  145. {subscript-1.14.7 → subscript-1.15.0}/src/subscript/restartthinner/restartthinner.py +0 -0
  146. {subscript-1.14.7 → subscript-1.15.0}/src/subscript/rmsecl_volumetrics/__init__.py +0 -0
  147. {subscript-1.14.7 → subscript-1.15.0}/src/subscript/rmsecl_volumetrics/rmsecl_volumetrics.py +0 -0
  148. {subscript-1.14.7 → subscript-1.15.0}/src/subscript/sector2fluxnum/__init__.py +0 -0
  149. {subscript-1.14.7 → subscript-1.15.0}/src/subscript/sector2fluxnum/completions.py +0 -0
  150. {subscript-1.14.7 → subscript-1.15.0}/src/subscript/sector2fluxnum/datafile_obj.py +0 -0
  151. {subscript-1.14.7 → subscript-1.15.0}/src/subscript/sector2fluxnum/flux_obj.py +0 -0
  152. {subscript-1.14.7 → subscript-1.15.0}/src/subscript/sector2fluxnum/flux_util.py +0 -0
  153. {subscript-1.14.7 → subscript-1.15.0}/src/subscript/sector2fluxnum/fluxfile_obj.py +0 -0
  154. {subscript-1.14.7 → subscript-1.15.0}/src/subscript/sector2fluxnum/sector2fluxnum.py +0 -0
  155. {subscript-1.14.7 → subscript-1.15.0}/src/subscript/summaryplot/__init__.py +0 -0
  156. {subscript-1.14.7 → subscript-1.15.0}/src/subscript/summaryplot/summaryplot.py +0 -0
  157. {subscript-1.14.7 → subscript-1.15.0}/src/subscript/sunsch/__init__.py +0 -0
  158. {subscript-1.14.7 → subscript-1.15.0}/src/subscript/sunsch/sunsch.py +0 -0
  159. {subscript-1.14.7 → subscript-1.15.0}/src/subscript/sunsch/time_vector.py +0 -0
  160. {subscript-1.14.7 → subscript-1.15.0}/src/subscript/sw_model_utilities/__init__.py +0 -0
  161. {subscript-1.14.7 → subscript-1.15.0}/src/subscript/sw_model_utilities/sw_model_utilities.py +0 -0
  162. {subscript-1.14.7 → subscript-1.15.0}/src/subscript/vfp2csv/__init__.py +0 -0
  163. {subscript-1.14.7 → subscript-1.15.0}/src/subscript/vfp2csv/vfp2csv.py +0 -0
  164. {subscript-1.14.7 → subscript-1.15.0}/src/subscript/welltest_dpds/__init__.py +0 -0
  165. {subscript-1.14.7 → subscript-1.15.0}/src/subscript/welltest_dpds/welltest_dpds.py +0 -0
  166. {subscript-1.14.7 → subscript-1.15.0}/src/subscript.egg-info/dependency_links.txt +0 -0
  167. {subscript-1.14.7 → subscript-1.15.0}/src/subscript.egg-info/entry_points.txt +0 -0
  168. {subscript-1.14.7 → subscript-1.15.0}/src/subscript.egg-info/top_level.txt +0 -0
  169. {subscript-1.14.7 → subscript-1.15.0}/tests/__init__.py +0 -0
  170. {subscript-1.14.7 → subscript-1.15.0}/tests/baseline/test_summaryplotter_mpl_test_cmd_args0.png +0 -0
  171. {subscript-1.14.7 → subscript-1.15.0}/tests/baseline/test_summaryplotter_mpl_test_cmd_args1.png +0 -0
  172. {subscript-1.14.7 → subscript-1.15.0}/tests/baseline/test_summaryplotter_mpl_test_cmd_args10.png +0 -0
  173. {subscript-1.14.7 → subscript-1.15.0}/tests/baseline/test_summaryplotter_mpl_test_cmd_args11.png +0 -0
  174. {subscript-1.14.7 → subscript-1.15.0}/tests/baseline/test_summaryplotter_mpl_test_cmd_args2.png +0 -0
  175. {subscript-1.14.7 → subscript-1.15.0}/tests/baseline/test_summaryplotter_mpl_test_cmd_args3.png +0 -0
  176. {subscript-1.14.7 → subscript-1.15.0}/tests/baseline/test_summaryplotter_mpl_test_cmd_args4.png +0 -0
  177. {subscript-1.14.7 → subscript-1.15.0}/tests/baseline/test_summaryplotter_mpl_test_cmd_args5.png +0 -0
  178. {subscript-1.14.7 → subscript-1.15.0}/tests/baseline/test_summaryplotter_mpl_test_cmd_args6.png +0 -0
  179. {subscript-1.14.7 → subscript-1.15.0}/tests/baseline/test_summaryplotter_mpl_test_cmd_args7.png +0 -0
  180. {subscript-1.14.7 → subscript-1.15.0}/tests/baseline/test_summaryplotter_mpl_test_cmd_args8.png +0 -0
  181. {subscript-1.14.7 → subscript-1.15.0}/tests/baseline/test_summaryplotter_mpl_test_cmd_args9.png +0 -0
  182. {subscript-1.14.7 → subscript-1.15.0}/tests/conftest.py +0 -0
  183. {subscript-1.14.7 → subscript-1.15.0}/tests/data/drogon/eclipse/include/edit/drogon.trans +0 -0
  184. {subscript-1.14.7 → subscript-1.15.0}/tests/data/drogon/eclipse/include/grid/drogon.faults +0 -0
  185. {subscript-1.14.7 → subscript-1.15.0}/tests/data/drogon/eclipse/include/grid/drogon.grid +0 -0
  186. {subscript-1.14.7 → subscript-1.15.0}/tests/data/drogon/eclipse/include/grid/drogon.multnum +0 -0
  187. {subscript-1.14.7 → subscript-1.15.0}/tests/data/drogon/eclipse/include/grid/drogon.multregt +0 -0
  188. {subscript-1.14.7 → subscript-1.15.0}/tests/data/drogon/eclipse/include/grid/drogon.perm +0 -0
  189. {subscript-1.14.7 → subscript-1.15.0}/tests/data/drogon/eclipse/include/grid/drogon.poro +0 -0
  190. {subscript-1.14.7 → subscript-1.15.0}/tests/data/drogon/eclipse/include/props/drogon.pvt +0 -0
  191. {subscript-1.14.7 → subscript-1.15.0}/tests/data/drogon/eclipse/include/props/drogon.sattab +0 -0
  192. {subscript-1.14.7 → subscript-1.15.0}/tests/data/drogon/eclipse/include/props/drogon.swatinit +0 -0
  193. {subscript-1.14.7 → subscript-1.15.0}/tests/data/drogon/eclipse/include/regions/drogon.eqlnum +0 -0
  194. {subscript-1.14.7 → subscript-1.15.0}/tests/data/drogon/eclipse/include/regions/drogon.fipnum +0 -0
  195. {subscript-1.14.7 → subscript-1.15.0}/tests/data/drogon/eclipse/include/regions/drogon.fipzon +0 -0
  196. {subscript-1.14.7 → subscript-1.15.0}/tests/data/drogon/eclipse/include/regions/drogon.pvtnum +0 -0
  197. {subscript-1.14.7 → subscript-1.15.0}/tests/data/drogon/eclipse/include/regions/drogon.satnum +0 -0
  198. {subscript-1.14.7 → subscript-1.15.0}/tests/data/drogon/eclipse/include/runspec/drogon.dimens +0 -0
  199. {subscript-1.14.7 → subscript-1.15.0}/tests/data/drogon/eclipse/include/runspec/drogon.eqldims +0 -0
  200. {subscript-1.14.7 → subscript-1.15.0}/tests/data/drogon/eclipse/include/runspec/drogon.gridopts +0 -0
  201. {subscript-1.14.7 → subscript-1.15.0}/tests/data/drogon/eclipse/include/runspec/drogon.regdims +0 -0
  202. {subscript-1.14.7 → subscript-1.15.0}/tests/data/drogon/eclipse/include/runspec/drogon.tabdims +0 -0
  203. {subscript-1.14.7 → subscript-1.15.0}/tests/data/drogon/eclipse/include/schedule/55_33-1.sch +0 -0
  204. {subscript-1.14.7 → subscript-1.15.0}/tests/data/drogon/eclipse/include/schedule/55_33-1.wells +0 -0
  205. {subscript-1.14.7 → subscript-1.15.0}/tests/data/drogon/eclipse/include/schedule/drogon_hist.sch +0 -0
  206. {subscript-1.14.7 → subscript-1.15.0}/tests/data/drogon/eclipse/include/schedule/vfp/A-1.inc +0 -0
  207. {subscript-1.14.7 → subscript-1.15.0}/tests/data/drogon/eclipse/include/schedule/vfp/A-2.inc +0 -0
  208. {subscript-1.14.7 → subscript-1.15.0}/tests/data/drogon/eclipse/include/schedule/vfp/A-3.inc +0 -0
  209. {subscript-1.14.7 → subscript-1.15.0}/tests/data/drogon/eclipse/include/schedule/vfp/A-4.inc +0 -0
  210. {subscript-1.14.7 → subscript-1.15.0}/tests/data/drogon/eclipse/include/solution/drogon.equil +0 -0
  211. {subscript-1.14.7 → subscript-1.15.0}/tests/data/drogon/eclipse/include/solution/drogon.rxvd +0 -0
  212. {subscript-1.14.7 → subscript-1.15.0}/tests/data/drogon/eclipse/include/solution/drogon.thpres +0 -0
  213. {subscript-1.14.7 → subscript-1.15.0}/tests/data/drogon/eclipse/include/summary/drogon.summary +0 -0
  214. {subscript-1.14.7 → subscript-1.15.0}/tests/data/drogon/eclipse/model/DROGON-0.DATA +0 -0
  215. {subscript-1.14.7 → subscript-1.15.0}/tests/data/reek/eclipse/include/grid/reek.faults +0 -0
  216. {subscript-1.14.7 → subscript-1.15.0}/tests/data/reek/eclipse/include/grid/reek.grid +0 -0
  217. {subscript-1.14.7 → subscript-1.15.0}/tests/data/reek/eclipse/include/grid/reek.multflt +0 -0
  218. {subscript-1.14.7 → subscript-1.15.0}/tests/data/reek/eclipse/include/grid/reek.multz +0 -0
  219. {subscript-1.14.7 → subscript-1.15.0}/tests/data/reek/eclipse/include/grid/reek.perm +0 -0
  220. {subscript-1.14.7 → subscript-1.15.0}/tests/data/reek/eclipse/include/grid/reek.poro +0 -0
  221. {subscript-1.14.7 → subscript-1.15.0}/tests/data/reek/eclipse/include/props/let-sgof.txt +0 -0
  222. {subscript-1.14.7 → subscript-1.15.0}/tests/data/reek/eclipse/include/props/let-swof.txt +0 -0
  223. {subscript-1.14.7 → subscript-1.15.0}/tests/data/reek/eclipse/include/props/reek.endpoints +0 -0
  224. {subscript-1.14.7 → subscript-1.15.0}/tests/data/reek/eclipse/include/props/reek.pvt +0 -0
  225. {subscript-1.14.7 → subscript-1.15.0}/tests/data/reek/eclipse/include/props/reek.swatinit +0 -0
  226. {subscript-1.14.7 → subscript-1.15.0}/tests/data/reek/eclipse/include/props/sgof.txt +0 -0
  227. {subscript-1.14.7 → subscript-1.15.0}/tests/data/reek/eclipse/include/props/swof.inc +0 -0
  228. {subscript-1.14.7 → subscript-1.15.0}/tests/data/reek/eclipse/include/props/swof.txt +0 -0
  229. {subscript-1.14.7 → subscript-1.15.0}/tests/data/reek/eclipse/include/regions/reek.eqlnum +0 -0
  230. {subscript-1.14.7 → subscript-1.15.0}/tests/data/reek/eclipse/include/regions/reek.fipnum +0 -0
  231. {subscript-1.14.7 → subscript-1.15.0}/tests/data/reek/eclipse/include/schedule/reek_history.sch +0 -0
  232. {subscript-1.14.7 → subscript-1.15.0}/tests/data/reek/eclipse/include/solution/reek.equil +0 -0
  233. {subscript-1.14.7 → subscript-1.15.0}/tests/data/reek/eclipse/include/summary/reek.smry +0 -0
  234. {subscript-1.14.7 → subscript-1.15.0}/tests/data/reek/eclipse/model/2_R001_REEK-0.DATA +0 -0
  235. {subscript-1.14.7 → subscript-1.15.0}/tests/data/reek/eclipse/model/2_R001_REEK-0.ECLEND +0 -0
  236. {subscript-1.14.7 → subscript-1.15.0}/tests/data/reek/eclipse/model/2_R001_REEK-0.EGRID +0 -0
  237. {subscript-1.14.7 → subscript-1.15.0}/tests/data/reek/eclipse/model/2_R001_REEK-0.INIT +0 -0
  238. {subscript-1.14.7 → subscript-1.15.0}/tests/data/reek/eclipse/model/2_R001_REEK-0.LOG +0 -0
  239. {subscript-1.14.7 → subscript-1.15.0}/tests/data/reek/eclipse/model/2_R001_REEK-0.PRT +0 -0
  240. {subscript-1.14.7 → subscript-1.15.0}/tests/data/reek/eclipse/model/2_R001_REEK-0.RFT +0 -0
  241. {subscript-1.14.7 → subscript-1.15.0}/tests/data/reek/eclipse/model/2_R001_REEK-0.SMSPEC +0 -0
  242. {subscript-1.14.7 → subscript-1.15.0}/tests/data/reek/eclipse/model/2_R001_REEK-0.UNRST +0 -0
  243. {subscript-1.14.7 → subscript-1.15.0}/tests/data/reek/eclipse/model/2_R001_REEK-0.UNSMRY +0 -0
  244. {subscript-1.14.7 → subscript-1.15.0}/tests/data/reek/eclipse/model/parameters.txt +0 -0
  245. {subscript-1.14.7 → subscript-1.15.0}/tests/data/reek/parameters.txt +0 -0
  246. {subscript-1.14.7 → subscript-1.15.0}/tests/data/reek/rms/README +0 -0
  247. {subscript-1.14.7 → subscript-1.15.0}/tests/data/reek/rms/reek.rms10.1.3/.master +0 -0
  248. {subscript-1.14.7 → subscript-1.15.0}/tests/data/reek/rms/reek.rms11.1.0/.master +0 -0
  249. {subscript-1.14.7 → subscript-1.15.0}/tests/data/vfp/GasProd.VFP +0 -0
  250. {subscript-1.14.7 → subscript-1.15.0}/tests/data/vfp/pd2.VFP +0 -0
  251. {subscript-1.14.7 → subscript-1.15.0}/tests/data/welltest/eclipse/model/DROGON_DST_PLT-0.SMSPEC +0 -0
  252. {subscript-1.14.7 → subscript-1.15.0}/tests/data/welltest/eclipse/model/DROGON_DST_PLT-0.UNSMRY +0 -0
  253. {subscript-1.14.7 → subscript-1.15.0}/tests/test_bjobsusers.py +0 -0
  254. {subscript-1.14.7 → subscript-1.15.0}/tests/test_casegen_upcars.py +0 -0
  255. {subscript-1.14.7 → subscript-1.15.0}/tests/test_check_swatinit.py +0 -0
  256. {subscript-1.14.7 → subscript-1.15.0}/tests/test_check_swatinit_simulators.py +0 -0
  257. {subscript-1.14.7 → subscript-1.15.0}/tests/test_convert_grid_format.py +0 -0
  258. {subscript-1.14.7 → subscript-1.15.0}/tests/test_create_date_files.py +0 -0
  259. {subscript-1.14.7 → subscript-1.15.0}/tests/test_csv2ofmvol.py +0 -0
  260. {subscript-1.14.7 → subscript-1.15.0}/tests/test_csv_merge.py +0 -0
  261. {subscript-1.14.7 → subscript-1.15.0}/tests/test_csv_stack.py +0 -0
  262. {subscript-1.14.7 → subscript-1.15.0}/tests/test_docs.py +0 -0
  263. {subscript-1.14.7 → subscript-1.15.0}/tests/test_eclcompress.py +0 -0
  264. {subscript-1.14.7 → subscript-1.15.0}/tests/test_ecldiff2roff.py +0 -0
  265. {subscript-1.14.7 → subscript-1.15.0}/tests/test_eclinit2roff.py +0 -0
  266. {subscript-1.14.7 → subscript-1.15.0}/tests/test_fmu_copy_revision.py +0 -0
  267. {subscript-1.14.7 → subscript-1.15.0}/tests/test_fmuobs_parsers.py +0 -0
  268. {subscript-1.14.7 → subscript-1.15.0}/tests/test_fmuobs_writers.py +0 -0
  269. {subscript-1.14.7 → subscript-1.15.0}/tests/test_grav_subs_maps.py +0 -0
  270. {subscript-1.14.7 → subscript-1.15.0}/tests/test_grav_subs_points.py +0 -0
  271. {subscript-1.14.7 → subscript-1.15.0}/tests/test_hook_implementations.py +0 -0
  272. {subscript-1.14.7 → subscript-1.15.0}/tests/test_interp_relperm.py +0 -0
  273. {subscript-1.14.7 → subscript-1.15.0}/tests/test_merge_rft_ertobs.py +0 -0
  274. {subscript-1.14.7 → subscript-1.15.0}/tests/test_merge_unrst_files.py +0 -0
  275. {subscript-1.14.7 → subscript-1.15.0}/tests/test_ofmvol2csv.py +0 -0
  276. {subscript-1.14.7 → subscript-1.15.0}/tests/test_pack_sim.py +0 -0
  277. {subscript-1.14.7 → subscript-1.15.0}/tests/test_params2csv.py +0 -0
  278. {subscript-1.14.7 → subscript-1.15.0}/tests/test_presentvalue.py +0 -0
  279. {subscript-1.14.7 → subscript-1.15.0}/tests/test_prtvol2csv.py +0 -0
  280. {subscript-1.14.7 → subscript-1.15.0}/tests/test_restartthinner.py +0 -0
  281. {subscript-1.14.7 → subscript-1.15.0}/tests/test_rmsecl_volumetrics.py +0 -0
  282. {subscript-1.14.7 → subscript-1.15.0}/tests/test_sector2fluxnum.py +0 -0
  283. {subscript-1.14.7 → subscript-1.15.0}/tests/test_subscriptlogger.py +0 -0
  284. {subscript-1.14.7 → subscript-1.15.0}/tests/test_summaryplot.py +0 -0
  285. {subscript-1.14.7 → subscript-1.15.0}/tests/test_sunsch.py +0 -0
  286. {subscript-1.14.7 → subscript-1.15.0}/tests/test_sw_model_utilities.py +0 -0
  287. {subscript-1.14.7 → subscript-1.15.0}/tests/test_vfp2csv.py +0 -0
  288. {subscript-1.14.7 → subscript-1.15.0}/tests/test_welltest_dpds.py +0 -0
  289. {subscript-1.14.7 → subscript-1.15.0}/tests/testdata_casegen_upcars/demo_large_scale.yaml +0 -0
  290. {subscript-1.14.7 → subscript-1.15.0}/tests/testdata_casegen_upcars/demo_small_scale.yaml +0 -0
  291. {subscript-1.14.7 → subscript-1.15.0}/tests/testdata_casegen_upcars/dump_value.tmpl +0 -0
  292. {subscript-1.14.7 → subscript-1.15.0}/tests/testdata_casegen_upcars/upcars_eclipse_ref_lg.tmpl +0 -0
  293. {subscript-1.14.7 → subscript-1.15.0}/tests/testdata_casegen_upcars/upcars_eclipse_ref_ss.tmpl +0 -0
  294. {subscript-1.14.7 → subscript-1.15.0}/tests/testdata_eclcompress/permxyz.grdecl +0 -0
  295. {subscript-1.14.7 → subscript-1.15.0}/tests/testdata_field_statistics/config_example.yml +0 -0
  296. {subscript-1.14.7 → subscript-1.15.0}/tests/testdata_field_statistics/ensemble/share/grid_statistics/referencedata/ERTBOX.roff +0 -0
  297. {subscript-1.14.7 → subscript-1.15.0}/tests/testdata_field_statistics/ensemble/share/grid_statistics/referencedata/Geogrid.roff +0 -0
  298. {subscript-1.14.7 → subscript-1.15.0}/tests/testdata_field_statistics/ensemble/share/grid_statistics/referencedata/files.txt +0 -0
  299. {subscript-1.14.7 → subscript-1.15.0}/tests/testdata_field_statistics/ensemble/share/grid_statistics/referencedata/mean_A_P1_0.roff +0 -0
  300. {subscript-1.14.7 → subscript-1.15.0}/tests/testdata_field_statistics/ensemble/share/grid_statistics/referencedata/mean_A_P1_3.roff +0 -0
  301. {subscript-1.14.7 → subscript-1.15.0}/tests/testdata_field_statistics/ensemble/share/grid_statistics/referencedata/mean_A_P2_0.roff +0 -0
  302. {subscript-1.14.7 → subscript-1.15.0}/tests/testdata_field_statistics/ensemble/share/grid_statistics/referencedata/mean_A_P2_3.roff +0 -0
  303. {subscript-1.14.7 → subscript-1.15.0}/tests/testdata_field_statistics/ensemble/share/grid_statistics/referencedata/mean_B_P1_0.roff +0 -0
  304. {subscript-1.14.7 → subscript-1.15.0}/tests/testdata_field_statistics/ensemble/share/grid_statistics/referencedata/mean_B_P1_3.roff +0 -0
  305. {subscript-1.14.7 → subscript-1.15.0}/tests/testdata_field_statistics/ensemble/share/grid_statistics/referencedata/mean_C_P2_0.roff +0 -0
  306. {subscript-1.14.7 → subscript-1.15.0}/tests/testdata_field_statistics/ensemble/share/grid_statistics/referencedata/mean_C_P2_3.roff +0 -0
  307. {subscript-1.14.7 → subscript-1.15.0}/tests/testdata_field_statistics/ensemble/share/grid_statistics/referencedata/nactive_A_0.roff +0 -0
  308. {subscript-1.14.7 → subscript-1.15.0}/tests/testdata_field_statistics/ensemble/share/grid_statistics/referencedata/nactive_A_3.roff +0 -0
  309. {subscript-1.14.7 → subscript-1.15.0}/tests/testdata_field_statistics/ensemble/share/grid_statistics/referencedata/nactive_B_0.roff +0 -0
  310. {subscript-1.14.7 → subscript-1.15.0}/tests/testdata_field_statistics/ensemble/share/grid_statistics/referencedata/nactive_B_3.roff +0 -0
  311. {subscript-1.14.7 → subscript-1.15.0}/tests/testdata_field_statistics/ensemble/share/grid_statistics/referencedata/nactive_C_0.roff +0 -0
  312. {subscript-1.14.7 → subscript-1.15.0}/tests/testdata_field_statistics/ensemble/share/grid_statistics/referencedata/nactive_C_3.roff +0 -0
  313. {subscript-1.14.7 → subscript-1.15.0}/tests/testdata_field_statistics/ensemble/share/grid_statistics/referencedata/prob_A_F1_0.roff +0 -0
  314. {subscript-1.14.7 → subscript-1.15.0}/tests/testdata_field_statistics/ensemble/share/grid_statistics/referencedata/prob_A_F1_3.roff +0 -0
  315. {subscript-1.14.7 → subscript-1.15.0}/tests/testdata_field_statistics/ensemble/share/grid_statistics/referencedata/prob_A_F2_0.roff +0 -0
  316. {subscript-1.14.7 → subscript-1.15.0}/tests/testdata_field_statistics/ensemble/share/grid_statistics/referencedata/prob_A_F2_3.roff +0 -0
  317. {subscript-1.14.7 → subscript-1.15.0}/tests/testdata_field_statistics/ensemble/share/grid_statistics/referencedata/prob_A_F3_0.roff +0 -0
  318. {subscript-1.14.7 → subscript-1.15.0}/tests/testdata_field_statistics/ensemble/share/grid_statistics/referencedata/prob_A_F3_3.roff +0 -0
  319. {subscript-1.14.7 → subscript-1.15.0}/tests/testdata_field_statistics/ensemble/share/grid_statistics/referencedata/prob_B_F1_0.roff +0 -0
  320. {subscript-1.14.7 → subscript-1.15.0}/tests/testdata_field_statistics/ensemble/share/grid_statistics/referencedata/prob_B_F1_3.roff +0 -0
  321. {subscript-1.14.7 → subscript-1.15.0}/tests/testdata_field_statistics/ensemble/share/grid_statistics/referencedata/prob_B_F2_0.roff +0 -0
  322. {subscript-1.14.7 → subscript-1.15.0}/tests/testdata_field_statistics/ensemble/share/grid_statistics/referencedata/prob_B_F2_3.roff +0 -0
  323. {subscript-1.14.7 → subscript-1.15.0}/tests/testdata_field_statistics/ensemble/share/grid_statistics/referencedata/prob_B_F3_0.roff +0 -0
  324. {subscript-1.14.7 → subscript-1.15.0}/tests/testdata_field_statistics/ensemble/share/grid_statistics/referencedata/prob_B_F3_3.roff +0 -0
  325. {subscript-1.14.7 → subscript-1.15.0}/tests/testdata_field_statistics/ensemble/share/grid_statistics/referencedata/prob_C_F1_0.roff +0 -0
  326. {subscript-1.14.7 → subscript-1.15.0}/tests/testdata_field_statistics/ensemble/share/grid_statistics/referencedata/prob_C_F1_3.roff +0 -0
  327. {subscript-1.14.7 → subscript-1.15.0}/tests/testdata_field_statistics/ensemble/share/grid_statistics/referencedata/prob_C_F2_0.roff +0 -0
  328. {subscript-1.14.7 → subscript-1.15.0}/tests/testdata_field_statistics/ensemble/share/grid_statistics/referencedata/prob_C_F2_3.roff +0 -0
  329. {subscript-1.14.7 → subscript-1.15.0}/tests/testdata_field_statistics/ensemble/share/grid_statistics/referencedata/prob_C_F3_0.roff +0 -0
  330. {subscript-1.14.7 → subscript-1.15.0}/tests/testdata_field_statistics/ensemble/share/grid_statistics/referencedata/prob_C_F3_3.roff +0 -0
  331. {subscript-1.14.7 → subscript-1.15.0}/tests/testdata_field_statistics/ensemble/share/grid_statistics/referencedata/stdev_A_P1_0.roff +0 -0
  332. {subscript-1.14.7 → subscript-1.15.0}/tests/testdata_field_statistics/ensemble/share/grid_statistics/referencedata/stdev_A_P1_3.roff +0 -0
  333. {subscript-1.14.7 → subscript-1.15.0}/tests/testdata_field_statistics/ensemble/share/grid_statistics/referencedata/stdev_A_P2_0.roff +0 -0
  334. {subscript-1.14.7 → subscript-1.15.0}/tests/testdata_field_statistics/ensemble/share/grid_statistics/referencedata/stdev_A_P2_3.roff +0 -0
  335. {subscript-1.14.7 → subscript-1.15.0}/tests/testdata_field_statistics/ensemble/share/grid_statistics/referencedata/stdev_B_P1_0.roff +0 -0
  336. {subscript-1.14.7 → subscript-1.15.0}/tests/testdata_field_statistics/ensemble/share/grid_statistics/referencedata/stdev_B_P1_3.roff +0 -0
  337. {subscript-1.14.7 → subscript-1.15.0}/tests/testdata_field_statistics/ensemble/share/grid_statistics/referencedata/stdev_C_P2_0.roff +0 -0
  338. {subscript-1.14.7 → subscript-1.15.0}/tests/testdata_field_statistics/ensemble/share/grid_statistics/referencedata/stdev_C_P2_3.roff +0 -0
  339. {subscript-1.14.7 → subscript-1.15.0}/tests/testdata_field_statistics/ert/model/0readme +0 -0
  340. {subscript-1.14.7 → subscript-1.15.0}/tests/testdata_field_statistics/fmuconfig/output/global_variables.yml +0 -0
  341. {subscript-1.14.7 → subscript-1.15.0}/tests/testdata_field_statistics/rms/output/aps/ERTBOX.EGRID +0 -0
  342. {subscript-1.14.7 → subscript-1.15.0}/tests/testdata_fmuobs/drogon_wbhp_rft_wct_gor_tracer_4d.obs +0 -0
  343. {subscript-1.14.7 → subscript-1.15.0}/tests/testdata_fmuobs/ert-doc.csv +0 -0
  344. {subscript-1.14.7 → subscript-1.15.0}/tests/testdata_fmuobs/ert-doc.obs +0 -0
  345. {subscript-1.14.7 → subscript-1.15.0}/tests/testdata_fmuobs/ert-doc.yml +0 -0
  346. {subscript-1.14.7 → subscript-1.15.0}/tests/testdata_fmuobs/fmu-ensemble-obs.yml +0 -0
  347. {subscript-1.14.7 → subscript-1.15.0}/tests/testdata_fmuobs/hist_obs_wells.txt +0 -0
  348. {subscript-1.14.7 → subscript-1.15.0}/tests/testdata_fmuobs/ri-obs.csv +0 -0
  349. {subscript-1.14.7 → subscript-1.15.0}/tests/testdata_gravity/HIST.EGRID +0 -0
  350. {subscript-1.14.7 → subscript-1.15.0}/tests/testdata_gravity/HIST.INIT +0 -0
  351. {subscript-1.14.7 → subscript-1.15.0}/tests/testdata_gravity/HIST.UNRST +0 -0
  352. {subscript-1.14.7 → subscript-1.15.0}/tests/testdata_gravity/global_variables.yml +0 -0
  353. {subscript-1.14.7 → subscript-1.15.0}/tests/testdata_gravity/grav_subs_maps.yml +0 -0
  354. {subscript-1.14.7 → subscript-1.15.0}/tests/testdata_gravity/grav_subs_points.yml +0 -0
  355. {subscript-1.14.7 → subscript-1.15.0}/tests/testdata_gravity/seabed.gri +0 -0
  356. {subscript-1.14.7 → subscript-1.15.0}/tests/testdata_gravity/station_coordinates.csv +0 -0
  357. {subscript-1.14.7 → subscript-1.15.0}/tests/testdata_interp_relperm/cfg.yml +0 -0
  358. {subscript-1.14.7 → subscript-1.15.0}/tests/testdata_interp_relperm/sgof_base.inc +0 -0
  359. {subscript-1.14.7 → subscript-1.15.0}/tests/testdata_interp_relperm/sgof_opt.inc +0 -0
  360. {subscript-1.14.7 → subscript-1.15.0}/tests/testdata_interp_relperm/sgof_pes.inc +0 -0
  361. {subscript-1.14.7 → subscript-1.15.0}/tests/testdata_interp_relperm/swof_base.inc +0 -0
  362. {subscript-1.14.7 → subscript-1.15.0}/tests/testdata_interp_relperm/swof_opt.inc +0 -0
  363. {subscript-1.14.7 → subscript-1.15.0}/tests/testdata_interp_relperm/swof_pes.inc +0 -0
  364. {subscript-1.14.7 → subscript-1.15.0}/tests/testdata_merge_rft_ertobs/drogon/gendata_rft.csv +0 -0
  365. {subscript-1.14.7 → subscript-1.15.0}/tests/testdata_merge_rft_ertobs/drogon/rft/R_A2.obs +0 -0
  366. {subscript-1.14.7 → subscript-1.15.0}/tests/testdata_merge_rft_ertobs/drogon/rft/R_A2.txt +0 -0
  367. {subscript-1.14.7 → subscript-1.15.0}/tests/testdata_merge_rft_ertobs/drogon/rft/R_A3.obs +0 -0
  368. {subscript-1.14.7 → subscript-1.15.0}/tests/testdata_merge_rft_ertobs/drogon/rft/R_A3.txt +0 -0
  369. {subscript-1.14.7 → subscript-1.15.0}/tests/testdata_merge_rft_ertobs/drogon/rft/R_A4.txt +0 -0
  370. {subscript-1.14.7 → subscript-1.15.0}/tests/testdata_merge_rft_ertobs/drogon/rft/R_A4_1.obs +0 -0
  371. {subscript-1.14.7 → subscript-1.15.0}/tests/testdata_merge_rft_ertobs/drogon/rft/R_A5.obs +0 -0
  372. {subscript-1.14.7 → subscript-1.15.0}/tests/testdata_merge_rft_ertobs/drogon/rft/R_A5.txt +0 -0
  373. {subscript-1.14.7 → subscript-1.15.0}/tests/testdata_merge_rft_ertobs/drogon/rft/R_A6.obs +0 -0
  374. {subscript-1.14.7 → subscript-1.15.0}/tests/testdata_merge_rft_ertobs/drogon/rft/R_A6.txt +0 -0
  375. {subscript-1.14.7 → subscript-1.15.0}/tests/testdata_merge_rft_ertobs/drogon/rft/well_date_rft.txt +0 -0
  376. {subscript-1.14.7 → subscript-1.15.0}/tests/testdata_merge_unrst_files/HIST.UNRST +0 -0
  377. {subscript-1.14.7 → subscript-1.15.0}/tests/testdata_merge_unrst_files/PRED.UNRST +0 -0
  378. {subscript-1.14.7 → subscript-1.15.0}/tests/testdata_ofmvol2csv/fileA.vol +0 -0
  379. {subscript-1.14.7 → subscript-1.15.0}/tests/testdata_ofmvol2csv/fileB.vol +0 -0
  380. {subscript-1.14.7 → subscript-1.15.0}/tests/testdata_ofmvol2csv/fileC.vol +0 -0
  381. {subscript-1.14.7 → subscript-1.15.0}/tests/testdata_ofmvol2csv/ofm_example.vol +0 -0
  382. {subscript-1.14.7 → subscript-1.15.0}/tests/testdata_prtvol2csv/0readme.txt +0 -0
  383. {subscript-1.14.7 → subscript-1.15.0}/tests/testdata_prtvol2csv/DROGON_FIPNUM.PRT +0 -0
  384. {subscript-1.14.7 → subscript-1.15.0}/tests/testdata_prtvol2csv/DROGON_FIPZON.PRT +0 -0
  385. {subscript-1.14.7 → subscript-1.15.0}/tests/testdata_prtvol2csv/DROGON_INACTIVE_FIPNUM.PRT +0 -0
  386. {subscript-1.14.7 → subscript-1.15.0}/tests/testdata_prtvol2csv/DROGON_NO_INITIAL_BALANCE.PRT +0 -0
  387. {subscript-1.14.7 → subscript-1.15.0}/tests/testdata_prtvol2csv/DROGON_NO_INITIAL_BALANCE_FLOW.PRT +0 -0
  388. {subscript-1.14.7 → subscript-1.15.0}/tests/testdata_sector2fluxnum/DUMPFLUX_TEST.DATA +0 -0
  389. {subscript-1.14.7 → subscript-1.15.0}/tests/testdata_sector2fluxnum/DUMPFLUX_TEST.EGRID +0 -0
  390. {subscript-1.14.7 → subscript-1.15.0}/tests/testdata_sector2fluxnum/DUMPFLUX_TEST.FLUX +0 -0
  391. {subscript-1.14.7 → subscript-1.15.0}/tests/testdata_sector2fluxnum/OUT_COARSE.FLUX +0 -0
  392. {subscript-1.14.7 → subscript-1.15.0}/tests/testdata_sector2fluxnum/TEST.DATA +0 -0
  393. {subscript-1.14.7 → subscript-1.15.0}/tests/testdata_sector2fluxnum/TEST.EGRID +0 -0
  394. {subscript-1.14.7 → subscript-1.15.0}/tests/testdata_sector2fluxnum/TEST.INIT +0 -0
  395. {subscript-1.14.7 → subscript-1.15.0}/tests/testdata_sector2fluxnum/TEST.UNRST +0 -0
  396. {subscript-1.14.7 → subscript-1.15.0}/tests/testdata_sunsch/config.yml +0 -0
  397. {subscript-1.14.7 → subscript-1.15.0}/tests/testdata_sunsch/emptyinit.sch +0 -0
  398. {subscript-1.14.7 → subscript-1.15.0}/tests/testdata_sunsch/foo1.sch +0 -0
  399. {subscript-1.14.7 → subscript-1.15.0}/tests/testdata_sunsch/footemplate.sch +0 -0
  400. {subscript-1.14.7 → subscript-1.15.0}/tests/testdata_sunsch/initwithdates.sch +0 -0
  401. {subscript-1.14.7 → subscript-1.15.0}/tests/testdata_sunsch/merge2.sch +0 -0
  402. {subscript-1.14.7 → subscript-1.15.0}/tests/testdata_sunsch/mergeme.sch +0 -0
  403. {subscript-1.14.7 → subscript-1.15.0}/tests/testdata_sunsch/options3.sch +0 -0
  404. {subscript-1.14.7 → subscript-1.15.0}/tests/utils.py +0 -0
@@ -60,6 +60,6 @@ jobs:
60
60
  pytest tests --disable-warnings --cov=subscript --cov-report=xml
61
61
 
62
62
  - name: Upload coverage to Codecov
63
- uses: codecov/codecov-action@v5
63
+ uses: codecov/codecov-action@v6
64
64
  with:
65
65
  token: ${{ secrets.CODECOV_TOKEN }}
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: subscript
3
- Version: 1.14.7
3
+ Version: 1.15.0
4
4
  Summary: Equinor's collection of subsurface reservoir modelling scripts
5
5
  Author-email: Equinor <rnyb@equinor.com>
6
6
  License-Expression: GPL-3.0-only
@@ -26,6 +26,7 @@ Requires-Dist: resdata
26
26
  Requires-Dist: res2df
27
27
  Requires-Dist: ert>=10.2.0b13
28
28
  Requires-Dist: fmu-tools
29
+ Requires-Dist: gaussianfft
29
30
  Requires-Dist: grid3d_maps
30
31
  Requires-Dist: jinja2
31
32
  Requires-Dist: matplotlib
@@ -38,6 +38,7 @@ dependencies = [
38
38
  "res2df",
39
39
  "ert>=10.2.0b13",
40
40
  "fmu-tools",
41
+ "gaussianfft",
41
42
  "grid3d_maps",
42
43
  "jinja2",
43
44
  "matplotlib",
@@ -154,7 +154,7 @@ def file_is_binary(filename: str | Path) -> bool:
154
154
  Args:
155
155
  filename: File to check
156
156
  """
157
- # https://stackoverflow.com/questions/898669/how-can-i-detect-if-a-file-is-binary-non-text-in-python # noqa
157
+ # https://stackoverflow.com/questions/898669/how-can-i-detect-if-a-file-is-binary-non-text-in-python
158
158
  textchars = bytearray({7, 8, 9, 10, 12, 13, 27} | set(range(0x20, 0x100)) - {0x7F})
159
159
  with open(filename, "rb") as filehandle:
160
160
  return bool(filehandle.read(1024).translate(None, textchars))
@@ -1080,6 +1080,7 @@ def get_specifications(
1080
1080
  use_population_stdev = input_dict[key]
1081
1081
 
1082
1082
  use_geogrid_fields = False
1083
+ geogrid_name = None
1083
1084
  zone_names_used = None
1084
1085
  zone_conformity = None
1085
1086
  zone_code_names = None
@@ -1339,6 +1340,11 @@ def calc_stats(
1339
1340
  if not use_geogrid_fields:
1340
1341
  return
1341
1342
 
1343
+ # Get list of active realization (Must be active for all iterations in iter_list)
1344
+ active_real, number_of_skipped = get_active_real(
1345
+ iter_list, ens_path, nreal, geogrid_name
1346
+ )
1347
+
1342
1348
  ensemble_path = ens_path
1343
1349
 
1344
1350
  logger.info(f"Number of realizations: {nreal}")
@@ -1356,8 +1362,8 @@ def calc_stats(
1356
1362
  (ertbox_size[0], ertbox_size[1], ertbox_size[2], nreal),
1357
1363
  dtype=np.float32,
1358
1364
  )
1359
- number_of_skipped = 0
1360
- for real_number in range(nreal):
1365
+
1366
+ for real_number in active_real:
1361
1367
  grid_dimensions, subgrids, property_param = (
1362
1368
  read_ensemble_realization(
1363
1369
  ensemble_path,
@@ -1368,11 +1374,7 @@ def calc_stats(
1368
1374
  geogrid_name,
1369
1375
  )
1370
1376
  )
1371
- if grid_dimensions is None:
1372
- txt = f" Skip non-existing realization: {real_number}"
1373
- logger.info(txt)
1374
- number_of_skipped += 1
1375
- continue
1377
+ assert grid_dimensions is not None
1376
1378
  ertbox_prop_values = get_values_in_ertbox(
1377
1379
  grid_dimensions,
1378
1380
  subgrids,
@@ -1445,8 +1447,8 @@ def calc_stats(
1445
1447
  (ertbox_size[0], ertbox_size[1], ertbox_size[2], nreal),
1446
1448
  dtype=np.int32,
1447
1449
  )
1448
- number_of_skipped = 0
1449
- for real_number in range(nreal):
1450
+
1451
+ for real_number in active_real:
1450
1452
  grid_dimensions, subgrids, property_param = (
1451
1453
  read_ensemble_realization(
1452
1454
  ensemble_path,
@@ -1457,11 +1459,7 @@ def calc_stats(
1457
1459
  geogrid_name,
1458
1460
  )
1459
1461
  )
1460
-
1461
- if grid_dimensions is None:
1462
- logger.info(f" Skip realization: {real_number}")
1463
- number_of_skipped += 1
1464
- continue
1462
+ assert grid_dimensions is not None
1465
1463
  ertbox_prop_values = get_values_in_ertbox(
1466
1464
  grid_dimensions,
1467
1465
  subgrids,
@@ -1576,7 +1574,8 @@ def calc_temporary_field_stats(
1576
1574
  # Check if any need to continue to calculation
1577
1575
  if not use_temporary_fields:
1578
1576
  return
1579
-
1577
+ # Get list of active realization (Must be active for all iterations in iter_list)
1578
+ active_real, number_of_skipped = get_active_real(iter_list, ens_path, nreal)
1580
1579
  # Import realizations of temporary field parameters
1581
1580
  for param_name in param_list:
1582
1581
  for iteration in iter_list:
@@ -1590,9 +1589,7 @@ def calc_temporary_field_stats(
1590
1589
  (ertbox_size[0], ertbox_size[1], ertbox_size[2], nreal),
1591
1590
  dtype=np.float32,
1592
1591
  )
1593
-
1594
- number_of_skipped = 0
1595
- for real_number in range(nreal):
1592
+ for real_number in active_real:
1596
1593
  filepath = (
1597
1594
  ens_path
1598
1595
  / Path(
@@ -1600,11 +1597,7 @@ def calc_temporary_field_stats(
1600
1597
  )
1601
1598
  / Path(full_param_filename)
1602
1599
  )
1603
- if not filepath.exists():
1604
- txt = f" Skip non-existing realization: {real_number}"
1605
- logger.info(txt)
1606
- number_of_skipped += 1
1607
- continue
1600
+ assert filepath.exists()
1608
1601
  property = xtgeo.gridproperty_from_file(filepath, fformat="roff")
1609
1602
  values = property.values
1610
1603
  all_values[:, :, :, real_number] = values
@@ -1657,6 +1650,38 @@ def calc_temporary_field_stats(
1657
1650
  xtgeo_ertbox_stdev.to_file(result_stdev_file_path, fformat="roff")
1658
1651
 
1659
1652
 
1653
+ def get_active_real(
1654
+ iter_list: list, ens_path: Path, nreal: int, geogrid_name: str = ""
1655
+ ):
1656
+ """Get a list of active realizations"""
1657
+ number_of_skipped = 0
1658
+ active_real = []
1659
+ for real_number in range(nreal):
1660
+ real_exist = True
1661
+ for iteration in iter_list:
1662
+ ensemble_path = ens_path / Path(
1663
+ "realization-" + str(real_number) + "/iter-" + str(iteration)
1664
+ )
1665
+ if len(geogrid_name) > 0:
1666
+ grid_path = Path("share/results/grids/" + geogrid_name + ".roff")
1667
+ file_path_grid = ensemble_path / grid_path
1668
+ txt = f" Skip non-existing realization of grid: {real_number}"
1669
+ else:
1670
+ file_path_grid = ensemble_path
1671
+ txt = f" Skip non-existing realization: {real_number}"
1672
+ if not file_path_grid.exists():
1673
+ logger.info(txt)
1674
+ number_of_skipped += 1
1675
+ # No need to check other iterations since active_real should
1676
+ # only be those realizations that exists for all specified
1677
+ # iterations in iter_list
1678
+ real_exist = False
1679
+ continue
1680
+ if real_exist:
1681
+ active_real.append(real_number)
1682
+ return active_real, number_of_skipped
1683
+
1684
+
1660
1685
  def generate_script(
1661
1686
  rms_load_script, ert_config_path, result_path, field_stat_config_file
1662
1687
  ):
@@ -1853,25 +1878,47 @@ def main():
1853
1878
  if init_path and param_names:
1854
1879
  for param_name in param_names:
1855
1880
  for iteration in iter_list:
1856
- new_name = "mean_" + param_name + "_" + str(iteration)
1857
- param_file_name = Path(result_path) / Path(new_name + ".roff")
1858
- prop_param = xtgeo.gridproperty_from_file(
1859
- param_file_name, fformat="roff"
1881
+ mean_name = "mean_" + param_name + "_" + str(iteration)
1882
+ std_name = "stdev_" + param_name + "_" + str(iteration)
1883
+
1884
+ mean_param_file_name = Path(result_path) / Path(mean_name + ".roff")
1885
+ mean_prop_param = xtgeo.gridproperty_from_file(
1886
+ mean_param_file_name, fformat="roff"
1860
1887
  )
1861
- print(f"Read: {{new_name}} into {{GRIDNAME}}")
1862
- if label:
1863
- new_name = new_name + "_" + label
1864
- prop_param.to_roxar(PRJ, GRIDNAME, new_name)
1888
+ print(f"Read: {{mean_name}} into {{GRIDNAME}}")
1865
1889
 
1866
- new_name = "stdev_" + param_name + "_" + str(iteration)
1867
- param_file_name = Path(result_path) / Path(new_name + ".roff")
1868
- prop_param = xtgeo.gridproperty_from_file(
1869
- param_file_name, fformat="roff"
1890
+ std_param_file_name = Path(result_path) / Path(std_name + ".roff")
1891
+ std_prop_param = xtgeo.gridproperty_from_file(
1892
+ std_param_file_name, fformat="roff"
1870
1893
  )
1871
- print(f"Read: {{new_name}} into {{GRIDNAME}}")
1894
+ print(f"Read: {{std_name}} into {{GRIDNAME}}")
1895
+
1872
1896
  if label:
1873
- new_name = new_name + "_" + label
1874
- prop_param.to_roxar(PRJ, GRIDNAME, new_name)
1897
+ new_mean_name = mean_name + "_" + label
1898
+ new_std_name = std_name + "_" + label
1899
+ difference_mean_name = "diff_" + new_mean_name
1900
+ difference_std_name = "diff_" + new_std_name
1901
+
1902
+ mean_prop_param.to_roxar(PRJ, GRIDNAME, new_mean_name)
1903
+ std_prop_param.to_roxar(PRJ, GRIDNAME, new_std_name)
1904
+
1905
+ if iteration == iter_list[0]:
1906
+ # Init
1907
+ mean_prop_param_init = mean_prop_param
1908
+ std_prop_param_init = std_prop_param
1909
+ elif iteration == iter_list[-1]:
1910
+ mean_prop_param_upd = mean_prop_param
1911
+ std_prop_param_upd = std_prop_param
1912
+ diff_mean_prop_param = mean_prop_param_upd.copy()
1913
+ diff_std_prop_param = std_prop_param_upd.copy()
1914
+ diff_mean_prop_param.values = \
1915
+ mean_prop_param_upd.values - mean_prop_param_init.values
1916
+ diff_std_prop_param.values = \
1917
+ std_prop_param_upd.values - std_prop_param_init.values
1918
+ diff_mean_prop_param.to_roxar(PRJ,
1919
+ GRIDNAME, difference_mean_name)
1920
+ diff_std_prop_param.to_roxar(PRJ,
1921
+ GRIDNAME, difference_std_name)
1875
1922
 
1876
1923
  if __name__ == "__main__":
1877
1924
  main()
@@ -335,10 +335,10 @@ def fmuobs(
335
335
  starttime=starttime,
336
336
  )
337
337
  else:
338
- dframe = ertobs2df(input_str, cwd=includedir)
338
+ dframe = ertobs2df(input_str, cwd=includedir, starttime=starttime)
339
339
 
340
340
  if starttime:
341
- dframe = compute_date_from_days(dframe)
341
+ dframe = compute_date_from_days(dframe, starttime=starttime)
342
342
 
343
343
  if not validate_internal_dframe(dframe):
344
344
  logger.error("Observation dataframe is invalid!")
@@ -0,0 +1,24 @@
1
+ # file generated by vcs-versioning
2
+ # don't change, don't track in version control
3
+ from __future__ import annotations
4
+
5
+ __all__ = [
6
+ "__version__",
7
+ "__version_tuple__",
8
+ "version",
9
+ "version_tuple",
10
+ "__commit_id__",
11
+ "commit_id",
12
+ ]
13
+
14
+ version: str
15
+ __version__: str
16
+ __version_tuple__: tuple[int | str, ...]
17
+ version_tuple: tuple[int | str, ...]
18
+ commit_id: str | None
19
+ __commit_id__: str | None
20
+
21
+ __version__ = version = '1.15.0'
22
+ __version_tuple__ = version_tuple = (1, 15, 0)
23
+
24
+ __commit_id__ = commit_id = 'g6d34949f7'
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: subscript
3
- Version: 1.14.7
3
+ Version: 1.15.0
4
4
  Summary: Equinor's collection of subsurface reservoir modelling scripts
5
5
  Author-email: Equinor <rnyb@equinor.com>
6
6
  License-Expression: GPL-3.0-only
@@ -26,6 +26,7 @@ Requires-Dist: resdata
26
26
  Requires-Dist: res2df
27
27
  Requires-Dist: ert>=10.2.0b13
28
28
  Requires-Dist: fmu-tools
29
+ Requires-Dist: gaussianfft
29
30
  Requires-Dist: grid3d_maps
30
31
  Requires-Dist: jinja2
31
32
  Requires-Dist: matplotlib
@@ -343,6 +343,7 @@ tests/testdata_fmuobs/ert-doc.yml
343
343
  tests/testdata_fmuobs/fmu-ensemble-obs.yml
344
344
  tests/testdata_fmuobs/hist_obs_wells.txt
345
345
  tests/testdata_fmuobs/ri-obs.csv
346
+ tests/testdata_fmuobs/summary_obs_without_date.obs
346
347
  tests/testdata_gravity/HIST.EGRID
347
348
  tests/testdata_gravity/HIST.INIT
348
349
  tests/testdata_gravity/HIST.UNRST
@@ -2,6 +2,7 @@ resdata
2
2
  res2df
3
3
  ert>=10.2.0b13
4
4
  fmu-tools
5
+ gaussianfft
5
6
  grid3d_maps
6
7
  jinja2
7
8
  matplotlib
@@ -4,12 +4,14 @@ import subprocess
4
4
  from pathlib import Path
5
5
 
6
6
  import fmu.config.utilities as utils
7
+ import gaussianfft as sim
7
8
  import numpy as np
8
9
  import pytest
9
10
  import xtgeo
10
11
 
11
12
  from subscript.field_statistics.field_statistics import (
12
13
  calc_stats,
14
+ calc_temporary_field_stats,
13
15
  check_disc_param_name_dict,
14
16
  check_param_name_dict,
15
17
  check_use_zones,
@@ -1101,3 +1103,123 @@ def test_main(tmp_path, config_file, config_dict, print_info=True):
1101
1103
  # For this test not to fail, the CONFIG_DICT and the specified
1102
1104
  # config file in yaml format must define the same setup
1103
1105
  assert compare_with_referencedata(ens_path, result_path, print_check=True)
1106
+
1107
+
1108
+ def simulate_ensembles(
1109
+ nreal: int, nx: int, ny: int, nz: int, nreal_lost: int, result_dir: str
1110
+ ) -> None:
1111
+ sim.seed(123456)
1112
+ variogram = sim.variogram("exponential", 100.0, 50.0, 5.0, 45.0, 0.0)
1113
+ dx = 5.0
1114
+ dy = 5.0
1115
+ dz = 1.0
1116
+ init_ens_field_3d = np.zeros((nx, ny, nz, nreal), dtype=np.float32)
1117
+ final_ens_field_3d = np.zeros((nx, ny, nz, nreal - nreal_lost), dtype=np.float32)
1118
+ for i in range(nreal):
1119
+ gauss_vector = sim.simulate(variogram, nx, dx, ny, dy, nz, dz)
1120
+ field_3d = gauss_vector.reshape((nx, ny, nz), order="F")
1121
+ init_ens_field_3d[:, :, :, i] = field_3d
1122
+ if i < (nreal - nreal_lost):
1123
+ final_ens_field_3d[:, :, :, i] = field_3d
1124
+ write_ensemble(init_ens_field_3d, final_ens_field_3d, result_dir)
1125
+
1126
+
1127
+ def write_ensemble(init_ens_field_3d, final_ens_field_3d, result_dir):
1128
+ nx, ny, nz, nreal = init_ens_field_3d.shape
1129
+ _, _, _, nreal_final = final_ens_field_3d.shape
1130
+
1131
+ init_real_defined = np.arange(nreal)
1132
+ final_real_defined = np.arange(nreal_final)
1133
+ for iter in [0, 1]:
1134
+ if iter == 0:
1135
+ for i in init_real_defined:
1136
+ real_path = (
1137
+ Path(result_dir)
1138
+ / Path("realization-" + str(i))
1139
+ / Path("iter-" + str(iter))
1140
+ )
1141
+ real_path /= Path("rms/output/aps")
1142
+ values = init_ens_field_3d[:, :, :, i]
1143
+ name = "GRF"
1144
+ xtgeo_param = xtgeo.GridProperty(
1145
+ ncol=nx,
1146
+ nrow=ny,
1147
+ nlay=nz,
1148
+ name=name,
1149
+ roxar_dtype=np.float32,
1150
+ values=values,
1151
+ )
1152
+ if not real_path.exists():
1153
+ real_path.mkdir(parents=True, exist_ok=True)
1154
+ real_path /= Path("GRF.roff")
1155
+ xtgeo_param.to_file(real_path, fformat="roff")
1156
+ else:
1157
+ for i in final_real_defined:
1158
+ real_path = (
1159
+ Path(result_dir)
1160
+ / Path("realization-" + str(i))
1161
+ / Path("iter-" + str(iter))
1162
+ )
1163
+ values = final_ens_field_3d[:, :, :, i]
1164
+ name = "GRF"
1165
+ xtgeo_param = xtgeo.GridProperty(
1166
+ ncol=nx,
1167
+ nrow=ny,
1168
+ nlay=nz,
1169
+ name=name,
1170
+ roxar_dtype=np.float32,
1171
+ values=values,
1172
+ )
1173
+ if not real_path.exists():
1174
+ real_path.mkdir(parents=True, exist_ok=True)
1175
+ real_path /= Path("GRF.roff")
1176
+ xtgeo_param.to_file(real_path, fformat="roff")
1177
+
1178
+
1179
+ @pytest.mark.parametrize(
1180
+ "nreal, nreal_lost",
1181
+ [
1182
+ (10, 0),
1183
+ (10, 2),
1184
+ (10, 8), # Number of realizations must be at least 2
1185
+ ],
1186
+ )
1187
+ def test_compare_mean_stdev_of_ensembles(tmp_path, nreal, nreal_lost):
1188
+ nx = 5
1189
+ ny = 5
1190
+ nz = 2
1191
+ field_name = "GRF"
1192
+ simulate_ensembles(nreal, nx, ny, nz, nreal_lost, tmp_path)
1193
+ ertbox_size = (nx, ny, nz)
1194
+ input_dict = {
1195
+ "nreal": nreal,
1196
+ "iterations": [0, 1],
1197
+ "use_population_stdev": False,
1198
+ "temporary_ertbox_fields": {
1199
+ "initial_relative_path": "rms/output/aps",
1200
+ "parameter_names": [field_name],
1201
+ },
1202
+ }
1203
+ ens_path = tmp_path
1204
+ result_path = tmp_path
1205
+ ert_config_path = None
1206
+ calc_temporary_field_stats(
1207
+ input_dict, ens_path, result_path, ert_config_path, ertbox_size
1208
+ )
1209
+ compare_ensemble_stats(result_path, field_name)
1210
+
1211
+
1212
+ def compare_ensemble_stats(result_path, field_name, tolerance=1e-8):
1213
+ mean_file_name1 = Path(result_path) / Path("mean_" + field_name + "_0.roff")
1214
+ mean_file_name2 = Path(result_path) / Path("mean_" + field_name + "_1.roff")
1215
+ xtgeo_mean1_field = xtgeo.gridproperty_from_file(mean_file_name1, fformat="roff")
1216
+ xtgeo_mean2_field = xtgeo.gridproperty_from_file(mean_file_name2, fformat="roff")
1217
+ diff_values = np.abs(xtgeo_mean1_field.values - xtgeo_mean2_field.values)
1218
+ assert np.all(diff_values < tolerance)
1219
+
1220
+ sdev_file_name1 = Path(result_path) / Path("stdev_" + field_name + "_0.roff")
1221
+ sdev_file_name2 = Path(result_path) / Path("stdev_" + field_name + "_1.roff")
1222
+ xtgeo_sdev1_field = xtgeo.gridproperty_from_file(sdev_file_name1, fformat="roff")
1223
+ xtgeo_sdev2_field = xtgeo.gridproperty_from_file(sdev_file_name2, fformat="roff")
1224
+ diff_values = np.abs(xtgeo_sdev1_field.values - xtgeo_sdev2_field.values)
1225
+ assert np.all(diff_values < tolerance)
@@ -247,6 +247,55 @@ def test_integration():
247
247
  assert subprocess.check_output(["fmuobs", "-h"])
248
248
 
249
249
 
250
+ @pytest.mark.integration
251
+ def test_startdate_argument(tmp_path, mocker, monkeypatch):
252
+ """Test that the startdate argument is handled correctly"""
253
+ monkeypatch.chdir(tmp_path)
254
+ # Test that summary observations without a date are not valid without
255
+ # startdate argument
256
+ mocker.patch(
257
+ "sys.argv",
258
+ [
259
+ "fmuobs",
260
+ "--yml",
261
+ "output.yml",
262
+ str(
263
+ TESTDATA_DIR / "summary_obs_without_date.obs",
264
+ ),
265
+ ],
266
+ )
267
+ with pytest.raises(
268
+ ValueError, match=r"Can't have summary observation without a date"
269
+ ):
270
+ main()
271
+ # Test that summary observations without a date are valid with startdate argument
272
+ start_date = "2020-01-01"
273
+ mocker.patch(
274
+ "sys.argv",
275
+ [
276
+ "fmuobs",
277
+ "--startdate",
278
+ start_date,
279
+ "--yml",
280
+ "output.yml",
281
+ str(
282
+ TESTDATA_DIR / "summary_obs_without_date.obs",
283
+ ),
284
+ ],
285
+ )
286
+ main()
287
+ assert Path("output.yml").exists()
288
+ # Test that the dates in the output are correctly calculated
289
+ # from the startdate and the days in the input
290
+ with open(Path("output.yml"), encoding="utf8") as stream:
291
+ config = yaml.safe_load(stream)
292
+ for smry in config["smry"]:
293
+ for obs in smry["observations"]:
294
+ assert pd.to_datetime(obs["date"]) == pd.to_datetime(
295
+ start_date
296
+ ) + pd.to_timedelta(obs["days"], unit="D")
297
+
298
+
250
299
  @pytest.mark.integration
251
300
  @pytest.mark.parametrize("verbose", ["", "--verbose", "--debug"])
252
301
  def test_commandline(tmp_path, verbose, mocker, caplog, monkeypatch):
@@ -0,0 +1,28 @@
1
+ -- These observations are modified from ert-doc.obs
2
+ -- and stripped down to demonstrate summary observations without dates
3
+
4
+ SUMMARY_OBSERVATION SEP_TEST_2005
5
+ {
6
+ VALUE = 100.0;
7
+ ERROR = 5;
8
+ DAYS = 135;
9
+ KEY = GOPR:BRENT;
10
+ };
11
+
12
+ SUMMARY_OBSERVATION SEP_TEST_2006
13
+ {
14
+ VALUE = 100.0;
15
+ ERROR = 5;
16
+ DAYS = 500;
17
+ KEY = GOPR:BRENT;
18
+ };
19
+
20
+ SUMMARY_OBSERVATION SEP_TEST_2008
21
+ {
22
+ VALUE = 213;
23
+ ERROR = 10;
24
+ DAYS = 911;
25
+ KEY = GOPR:NESS;
26
+ };
27
+
28
+
@@ -1,34 +0,0 @@
1
- # file generated by setuptools-scm
2
- # don't change, don't track in version control
3
-
4
- __all__ = [
5
- "__version__",
6
- "__version_tuple__",
7
- "version",
8
- "version_tuple",
9
- "__commit_id__",
10
- "commit_id",
11
- ]
12
-
13
- TYPE_CHECKING = False
14
- if TYPE_CHECKING:
15
- from typing import Tuple
16
- from typing import Union
17
-
18
- VERSION_TUPLE = Tuple[Union[int, str], ...]
19
- COMMIT_ID = Union[str, None]
20
- else:
21
- VERSION_TUPLE = object
22
- COMMIT_ID = object
23
-
24
- version: str
25
- __version__: str
26
- __version_tuple__: VERSION_TUPLE
27
- version_tuple: VERSION_TUPLE
28
- commit_id: COMMIT_ID
29
- __commit_id__: COMMIT_ID
30
-
31
- __version__ = version = '1.14.7'
32
- __version_tuple__ = version_tuple = (1, 14, 7)
33
-
34
- __commit_id__ = commit_id = 'g88003f2b0'
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes