gea-program 0.30.0__tar.gz → 0.30.1__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 (277) hide show
  1. {gea_program-0.30.0/gea_program.egg-info → gea_program-0.30.1}/PKG-INFO +10 -4
  2. {gea_program-0.30.0 → gea_program-0.30.1}/README.md +9 -3
  3. {gea_program-0.30.0 → gea_program-0.30.1}/gea/__init__.py +1 -1
  4. {gea_program-0.30.0 → gea_program-0.30.1}/gea/acceptance_tests.py +38 -3
  5. {gea_program-0.30.0 → gea_program-0.30.1}/gea/edr.py +370 -82
  6. {gea_program-0.30.0 → gea_program-0.30.1}/gea/help/edr.md +4 -2
  7. {gea_program-0.30.0 → gea_program-0.30.1}/gea/web/app.html +6 -0
  8. {gea_program-0.30.0 → gea_program-0.30.1/gea_program.egg-info}/PKG-INFO +10 -4
  9. {gea_program-0.30.0 → gea_program-0.30.1}/pyproject.toml +1 -1
  10. {gea_program-0.30.0 → gea_program-0.30.1}/LICENSE +0 -0
  11. {gea_program-0.30.0 → gea_program-0.30.1}/gea/BENCH_TEST_PROTOCOL.md +0 -0
  12. {gea_program-0.30.0 → gea_program-0.30.1}/gea/__main__.py +0 -0
  13. {gea_program-0.30.0 → gea_program-0.30.1}/gea/accuracy_statement.py +0 -0
  14. {gea_program-0.30.0 → gea_program-0.30.1}/gea/alarm_engine.py +0 -0
  15. {gea_program-0.30.0 → gea_program-0.30.1}/gea/backup.py +0 -0
  16. {gea_program-0.30.0 → gea_program-0.30.1}/gea/bench.py +0 -0
  17. {gea_program-0.30.0 → gea_program-0.30.1}/gea/blind_harness.py +0 -0
  18. {gea_program-0.30.0 → gea_program-0.30.1}/gea/catalog/acex_lomonosov_age_depth_model.provenance.json +0 -0
  19. {gea_program-0.30.0 → gea_program-0.30.1}/gea/catalog/acex_lomonosov_age_depth_model.txt +0 -0
  20. {gea_program-0.30.0 → gea_program-0.30.1}/gea/catalog/agassiz77_canada_temperature.csv +0 -0
  21. {gea_program-0.30.0 → gea_program-0.30.1}/gea/catalog/agassiz77_canada_temperature.provenance.json +0 -0
  22. {gea_program-0.30.0 → gea_program-0.30.1}/gea/catalog/barbados_110_consolidation.provenance.json +0 -0
  23. {gea_program-0.30.0 → gea_program-0.30.1}/gea/catalog/barbados_110_consolidation.txt +0 -0
  24. {gea_program-0.30.0 → gea_program-0.30.1}/gea/catalog/bengal_u1452_grain_size.provenance.json +0 -0
  25. {gea_program-0.30.0 → gea_program-0.30.1}/gea/catalog/bengal_u1452_grain_size.txt +0 -0
  26. {gea_program-0.30.0 → gea_program-0.30.1}/gea/catalog/blake_164_methane_isotopes.provenance.json +0 -0
  27. {gea_program-0.30.0 → gea_program-0.30.1}/gea/catalog/blake_164_methane_isotopes.txt +0 -0
  28. {gea_program-0.30.0 → gea_program-0.30.1}/gea/catalog/chicxulub_m0077a_pwave_velocity.provenance.json +0 -0
  29. {gea_program-0.30.0 → gea_program-0.30.1}/gea/catalog/chicxulub_m0077a_pwave_velocity.txt +0 -0
  30. {gea_program-0.30.0 → gea_program-0.30.1}/gea/catalog/collingwood_1_28_ks_complete.las +0 -0
  31. {gea_program-0.30.0 → gea_program-0.30.1}/gea/catalog/collingwood_1_28_ks_complete.provenance.json +0 -0
  32. {gea_program-0.30.0 → gea_program-0.30.1}/gea/catalog/costa_rica_odp_friction_envelope.provenance.json +0 -0
  33. {gea_program-0.30.0 → gea_program-0.30.1}/gea/catalog/costa_rica_odp_friction_envelope.txt +0 -0
  34. {gea_program-0.30.0 → gea_program-0.30.1}/gea/catalog/dead_sea_5017_debrite_xrf_ms.provenance.json +0 -0
  35. {gea_program-0.30.0 → gea_program-0.30.1}/gea/catalog/dead_sea_5017_debrite_xrf_ms.txt +0 -0
  36. {gea_program-0.30.0 → gea_program-0.30.1}/gea/catalog/dsdp_504b_physical_properties.provenance.json +0 -0
  37. {gea_program-0.30.0 → gea_program-0.30.1}/gea/catalog/dsdp_504b_physical_properties.txt +0 -0
  38. {gea_program-0.30.0 → gea_program-0.30.1}/gea/catalog/dsdp_504b_sound_velocity.provenance.json +0 -0
  39. {gea_program-0.30.0 → gea_program-0.30.1}/gea/catalog/dsdp_504b_sound_velocity.txt +0 -0
  40. {gea_program-0.30.0 → gea_program-0.30.1}/gea/catalog/elgygytgyn_5011_turbidites.provenance.json +0 -0
  41. {gea_program-0.30.0 → gea_program-0.30.1}/gea/catalog/elgygytgyn_5011_turbidites.txt +0 -0
  42. {gea_program-0.30.0 → gea_program-0.30.1}/gea/catalog/epica_domec_co2_800kyr.provenance.json +0 -0
  43. {gea_program-0.30.0 → gea_program-0.30.1}/gea/catalog/epica_domec_co2_800kyr.txt +0 -0
  44. {gea_program-0.30.0 → gea_program-0.30.1}/gea/catalog/fram_909_organic_petrography.provenance.json +0 -0
  45. {gea_program-0.30.0 → gea_program-0.30.1}/gea/catalog/fram_909_organic_petrography.txt +0 -0
  46. {gea_program-0.30.0 → gea_program-0.30.1}/gea/catalog/gbr_325_coral_uth_ages.provenance.json +0 -0
  47. {gea_program-0.30.0 → gea_program-0.30.1}/gea/catalog/gbr_325_coral_uth_ages.txt +0 -0
  48. {gea_program-0.30.0 → gea_program-0.30.1}/gea/catalog/gisp2_greenland_temperature.csv +0 -0
  49. {gea_program-0.30.0 → gea_program-0.30.1}/gea/catalog/gisp2_greenland_temperature.provenance.json +0 -0
  50. {gea_program-0.30.0 → gea_program-0.30.1}/gea/catalog/gom_308_t2p_insitu.provenance.json +0 -0
  51. {gea_program-0.30.0 → gea_program-0.30.1}/gea/catalog/gom_308_t2p_insitu.txt +0 -0
  52. {gea_program-0.30.0 → gea_program-0.30.1}/gea/catalog/guaymas_385_dom_d13c.provenance.json +0 -0
  53. {gea_program-0.30.0 → gea_program-0.30.1}/gea/catalog/guaymas_385_dom_d13c.txt +0 -0
  54. {gea_program-0.30.0 → gea_program-0.30.1}/gea/catalog/hikurangi_u1520_friction_insitu.provenance.json +0 -0
  55. {gea_program-0.30.0 → gea_program-0.30.1}/gea/catalog/hikurangi_u1520_friction_insitu.txt +0 -0
  56. {gea_program-0.30.0 → gea_program-0.30.1}/gea/catalog/hydrate_ridge_204_ncr_hydrate.provenance.json +0 -0
  57. {gea_program-0.30.0 → gea_program-0.30.1}/gea/catalog/hydrate_ridge_204_ncr_hydrate.txt +0 -0
  58. {gea_program-0.30.0 → gea_program-0.30.1}/gea/catalog/iodp_u1324_pore_pressure.provenance.json +0 -0
  59. {gea_program-0.30.0 → gea_program-0.30.1}/gea/catalog/iodp_u1324_pore_pressure.txt +0 -0
  60. {gea_program-0.30.0 → gea_program-0.30.1}/gea/catalog/jfast_c0019_slow_slip_events.provenance.json +0 -0
  61. {gea_program-0.30.0 → gea_program-0.30.1}/gea/catalog/jfast_c0019_slow_slip_events.txt +0 -0
  62. {gea_program-0.30.0 → gea_program-0.30.1}/gea/catalog/kennetcook_2_p129_excerpt.las +0 -0
  63. {gea_program-0.30.0 → gea_program-0.30.1}/gea/catalog/kennetcook_2_p129_excerpt.provenance.json +0 -0
  64. {gea_program-0.30.0 → gea_program-0.30.1}/gea/catalog/ktb_hb_bhgm_density.dat +0 -0
  65. {gea_program-0.30.0 → gea_program-0.30.1}/gea/catalog/ktb_hb_bhgm_density.provenance.json +0 -0
  66. {gea_program-0.30.0 → gea_program-0.30.1}/gea/catalog/ktb_hb_complog_6020_excerpt.provenance.json +0 -0
  67. {gea_program-0.30.0 → gea_program-0.30.1}/gea/catalog/ktb_hb_complog_6020_excerpt.txt +0 -0
  68. {gea_program-0.30.0 → gea_program-0.30.1}/gea/catalog/ktb_hb_hlog246_temperature.dat +0 -0
  69. {gea_program-0.30.0 → gea_program-0.30.1}/gea/catalog/ktb_hb_hlog246_temperature.provenance.json +0 -0
  70. {gea_program-0.30.0 → gea_program-0.30.1}/gea/catalog/ktb_hb_rockmech_compress.dat +0 -0
  71. {gea_program-0.30.0 → gea_program-0.30.1}/gea/catalog/ktb_hb_rockmech_compress.provenance.json +0 -0
  72. {gea_program-0.30.0 → gea_program-0.30.1}/gea/catalog/ktb_hb_tvd_0_9080_excerpt.dat +0 -0
  73. {gea_program-0.30.0 → gea_program-0.30.1}/gea/catalog/ktb_hb_tvd_0_9080_excerpt.provenance.json +0 -0
  74. {gea_program-0.30.0 → gea_program-0.30.1}/gea/catalog/ktb_vb_rockmech_compress.dat +0 -0
  75. {gea_program-0.30.0 → gea_program-0.30.1}/gea/catalog/ktb_vb_rockmech_compress.provenance.json +0 -0
  76. {gea_program-0.30.0 → gea_program-0.30.1}/gea/catalog/ktb_vb_vlog251_temperature.dat +0 -0
  77. {gea_program-0.30.0 → gea_program-0.30.1}/gea/catalog/ktb_vb_vlog251_temperature.provenance.json +0 -0
  78. {gea_program-0.30.0 → gea_program-0.30.1}/gea/catalog/l06_06_nl_survey.csv +0 -0
  79. {gea_program-0.30.0 → gea_program-0.30.1}/gea/catalog/l06_06_nl_survey.provenance.json +0 -0
  80. {gea_program-0.30.0 → gea_program-0.30.1}/gea/catalog/l07_01_nl_excerpt.las +0 -0
  81. {gea_program-0.30.0 → gea_program-0.30.1}/gea/catalog/l07_01_nl_excerpt.provenance.json +0 -0
  82. {gea_program-0.30.0 → gea_program-0.30.1}/gea/catalog/mariana_1200_serpentinite_geochem.provenance.json +0 -0
  83. {gea_program-0.30.0 → gea_program-0.30.1}/gea/catalog/mariana_1200_serpentinite_geochem.txt +0 -0
  84. {gea_program-0.30.0 → gea_program-0.30.1}/gea/catalog/med_160_sapropels.provenance.json +0 -0
  85. {gea_program-0.30.0 → gea_program-0.30.1}/gea/catalog/med_160_sapropels.txt +0 -0
  86. {gea_program-0.30.0 → gea_program-0.30.1}/gea/catalog/nankai_megasplay_shear_strength.provenance.json +0 -0
  87. {gea_program-0.30.0 → gea_program-0.30.1}/gea/catalog/nankai_megasplay_shear_strength.txt +0 -0
  88. {gea_program-0.30.0 → gea_program-0.30.1}/gea/catalog/odp_1027b_thermal_conductivity.provenance.json +0 -0
  89. {gea_program-0.30.0 → gea_program-0.30.1}/gea/catalog/odp_1027b_thermal_conductivity.txt +0 -0
  90. {gea_program-0.30.0 → gea_program-0.30.1}/gea/catalog/odp_1027c_cork_temperature.provenance.json +0 -0
  91. {gea_program-0.30.0 → gea_program-0.30.1}/gea/catalog/odp_1027c_cork_temperature.txt +0 -0
  92. {gea_program-0.30.0 → gea_program-0.30.1}/gea/catalog/odp_1165b_thermal_conductivity.provenance.json +0 -0
  93. {gea_program-0.30.0 → gea_program-0.30.1}/gea/catalog/odp_1165b_thermal_conductivity.txt +0 -0
  94. {gea_program-0.30.0 → gea_program-0.30.1}/gea/catalog/odp_1274a_mantle_peridotite_mad.provenance.json +0 -0
  95. {gea_program-0.30.0 → gea_program-0.30.1}/gea/catalog/odp_1274a_mantle_peridotite_mad.txt +0 -0
  96. {gea_program-0.30.0 → gea_program-0.30.1}/gea/catalog/odp_504b_dike_elastic_moduli.provenance.json +0 -0
  97. {gea_program-0.30.0 → gea_program-0.30.1}/gea/catalog/odp_504b_dike_elastic_moduli.txt +0 -0
  98. {gea_program-0.30.0 → gea_program-0.30.1}/gea/catalog/odp_504b_leg137_borehole_fluids.provenance.json +0 -0
  99. {gea_program-0.30.0 → gea_program-0.30.1}/gea/catalog/odp_504b_leg137_borehole_fluids.txt +0 -0
  100. {gea_program-0.30.0 → gea_program-0.30.1}/gea/catalog/odp_735b_gabbro_elastic_moduli.provenance.json +0 -0
  101. {gea_program-0.30.0 → gea_program-0.30.1}/gea/catalog/odp_735b_gabbro_elastic_moduli.txt +0 -0
  102. {gea_program-0.30.0 → gea_program-0.30.1}/gea/catalog/peru_201_sulfate_reduction.provenance.json +0 -0
  103. {gea_program-0.30.0 → gea_program-0.30.1}/gea/catalog/peru_201_sulfate_reduction.txt +0 -0
  104. {gea_program-0.30.0 → gea_program-0.30.1}/gea/catalog/scorpio_e1_sa_excerpt.las +0 -0
  105. {gea_program-0.30.0 → gea_program-0.30.1}/gea/catalog/scorpio_e1_sa_excerpt.provenance.json +0 -0
  106. {gea_program-0.30.0 → gea_program-0.30.1}/gea/catalog/sumatra_362_cohesion.provenance.json +0 -0
  107. {gea_program-0.30.0 → gea_program-0.30.1}/gea/catalog/sumatra_362_cohesion.txt +0 -0
  108. {gea_program-0.30.0 → gea_program-0.30.1}/gea/catalog/university_6_17_no1_tx_excerpt.las +0 -0
  109. {gea_program-0.30.0 → gea_program-0.30.1}/gea/catalog/university_6_17_no1_tx_excerpt.provenance.json +0 -0
  110. {gea_program-0.30.0 → gea_program-0.30.1}/gea/catalog/ursa_308_xrd_mineralogy.provenance.json +0 -0
  111. {gea_program-0.30.0 → gea_program-0.30.1}/gea/catalog/ursa_308_xrd_mineralogy.txt +0 -0
  112. {gea_program-0.30.0 → gea_program-0.30.1}/gea/catalog/volve_15_9_19_sr_excerpt.las +0 -0
  113. {gea_program-0.30.0 → gea_program-0.30.1}/gea/catalog/volve_15_9_19_sr_excerpt.provenance.json +0 -0
  114. {gea_program-0.30.0 → gea_program-0.30.1}/gea/catalog/volve_15_9_19a_core_excerpt.csv +0 -0
  115. {gea_program-0.30.0 → gea_program-0.30.1}/gea/catalog/volve_15_9_19a_core_excerpt.provenance.json +0 -0
  116. {gea_program-0.30.0 → gea_program-0.30.1}/gea/catalog/volve_f12_f14_production_excerpt.csv +0 -0
  117. {gea_program-0.30.0 → gea_program-0.30.1}/gea/catalog/volve_f12_f14_production_excerpt.provenance.json +0 -0
  118. {gea_program-0.30.0 → gea_program-0.30.1}/gea/catalog/walvis_208_petm_carbonate.provenance.json +0 -0
  119. {gea_program-0.30.0 → gea_program-0.30.1}/gea/catalog/walvis_208_petm_carbonate.txt +0 -0
  120. {gea_program-0.30.0 → gea_program-0.30.1}/gea/catalog/woodlark_1109_rock_eval.provenance.json +0 -0
  121. {gea_program-0.30.0 → gea_program-0.30.1}/gea/catalog/woodlark_1109_rock_eval.txt +0 -0
  122. {gea_program-0.30.0 → gea_program-0.30.1}/gea/catalog_map.py +0 -0
  123. {gea_program-0.30.0 → gea_program-0.30.1}/gea/catalog_register.py +0 -0
  124. {gea_program-0.30.0 → gea_program-0.30.1}/gea/certificates.py +0 -0
  125. {gea_program-0.30.0 → gea_program-0.30.1}/gea/cli.py +0 -0
  126. {gea_program-0.30.0 → gea_program-0.30.1}/gea/client_reports.py +0 -0
  127. {gea_program-0.30.0 → gea_program-0.30.1}/gea/config_versioning.py +0 -0
  128. {gea_program-0.30.0 → gea_program-0.30.1}/gea/conformance.py +0 -0
  129. {gea_program-0.30.0 → gea_program-0.30.1}/gea/correlation.py +0 -0
  130. {gea_program-0.30.0 → gea_program-0.30.1}/gea/dashboard.py +0 -0
  131. {gea_program-0.30.0 → gea_program-0.30.1}/gea/deviation.py +0 -0
  132. {gea_program-0.30.0 → gea_program-0.30.1}/gea/dlis.py +0 -0
  133. {gea_program-0.30.0 → gea_program-0.30.1}/gea/dnp3.py +0 -0
  134. {gea_program-0.30.0 → gea_program-0.30.1}/gea/doctor.py +0 -0
  135. {gea_program-0.30.0 → gea_program-0.30.1}/gea/downhole_engine.py +0 -0
  136. {gea_program-0.30.0 → gea_program-0.30.1}/gea/drift_monitor.py +0 -0
  137. {gea_program-0.30.0 → gea_program-0.30.1}/gea/earth_model.py +0 -0
  138. {gea_program-0.30.0 → gea_program-0.30.1}/gea/elevation.py +0 -0
  139. {gea_program-0.30.0 → gea_program-0.30.1}/gea/etp.py +0 -0
  140. {gea_program-0.30.0 → gea_program-0.30.1}/gea/etp12_schemas.json +0 -0
  141. {gea_program-0.30.0 → gea_program-0.30.1}/gea/example_register_map.json +0 -0
  142. {gea_program-0.30.0 → gea_program-0.30.1}/gea/fat_sat.py +0 -0
  143. {gea_program-0.30.0 → gea_program-0.30.1}/gea/files.py +0 -0
  144. {gea_program-0.30.0 → gea_program-0.30.1}/gea/fixtures/README.md +0 -0
  145. {gea_program-0.30.0 → gea_program-0.30.1}/gea/fixtures/comcat_delaware_basin_2026-09.txt +0 -0
  146. {gea_program-0.30.0 → gea_program-0.30.1}/gea/fixtures/comcat_youngstown_2011-2012.txt +0 -0
  147. {gea_program-0.30.0 → gea_program-0.30.1}/gea/fixtures/ne_110m_coastline.json +0 -0
  148. {gea_program-0.30.0 → gea_program-0.30.1}/gea/follower.py +0 -0
  149. {gea_program-0.30.0 → gea_program-0.30.1}/gea/forward_model.py +0 -0
  150. {gea_program-0.30.0 → gea_program-0.30.1}/gea/friction_priors.py +0 -0
  151. {gea_program-0.30.0 → gea_program-0.30.1}/gea/gamma.py +0 -0
  152. {gea_program-0.30.0 → gea_program-0.30.1}/gea/gauge_aging.py +0 -0
  153. {gea_program-0.30.0 → gea_program-0.30.1}/gea/gauge_specs.py +0 -0
  154. {gea_program-0.30.0 → gea_program-0.30.1}/gea/geodesy.py +0 -0
  155. {gea_program-0.30.0 → gea_program-0.30.1}/gea/gravity_reference.py +0 -0
  156. {gea_program-0.30.0 → gea_program-0.30.1}/gea/hartip.py +0 -0
  157. {gea_program-0.30.0 → gea_program-0.30.1}/gea/help/TESTER_GUIDE.md +0 -0
  158. {gea_program-0.30.0 → gea_program-0.30.1}/gea/help/alarms.md +0 -0
  159. {gea_program-0.30.0 → gea_program-0.30.1}/gea/help/audit-update.md +0 -0
  160. {gea_program-0.30.0 → gea_program-0.30.1}/gea/help/backup.md +0 -0
  161. {gea_program-0.30.0 → gea_program-0.30.1}/gea/help/catalog.md +0 -0
  162. {gea_program-0.30.0 → gea_program-0.30.1}/gea/help/conformance.md +0 -0
  163. {gea_program-0.30.0 → gea_program-0.30.1}/gea/help/data-in.md +0 -0
  164. {gea_program-0.30.0 → gea_program-0.30.1}/gea/help/dlis.md +0 -0
  165. {gea_program-0.30.0 → gea_program-0.30.1}/gea/help/doctor.md +0 -0
  166. {gea_program-0.30.0 → gea_program-0.30.1}/gea/help/drift.md +0 -0
  167. {gea_program-0.30.0 → gea_program-0.30.1}/gea/help/etp.md +0 -0
  168. {gea_program-0.30.0 → gea_program-0.30.1}/gea/help/field-ports.md +0 -0
  169. {gea_program-0.30.0 → gea_program-0.30.1}/gea/help/files.md +0 -0
  170. {gea_program-0.30.0 → gea_program-0.30.1}/gea/help/historian.md +0 -0
  171. {gea_program-0.30.0 → gea_program-0.30.1}/gea/help/instruments.md +0 -0
  172. {gea_program-0.30.0 → gea_program-0.30.1}/gea/help/interval.md +0 -0
  173. {gea_program-0.30.0 → gea_program-0.30.1}/gea/help/month-end.md +0 -0
  174. {gea_program-0.30.0 → gea_program-0.30.1}/gea/help/notifications.md +0 -0
  175. {gea_program-0.30.0 → gea_program-0.30.1}/gea/help/osdu.md +0 -0
  176. {gea_program-0.30.0 → gea_program-0.30.1}/gea/help/patches.md +0 -0
  177. {gea_program-0.30.0 → gea_program-0.30.1}/gea/help/ppdm.md +0 -0
  178. {gea_program-0.30.0 → gea_program-0.30.1}/gea/help/quakeml.md +0 -0
  179. {gea_program-0.30.0 → gea_program-0.30.1}/gea/help/quality.md +0 -0
  180. {gea_program-0.30.0 → gea_program-0.30.1}/gea/help/seedlink.md +0 -0
  181. {gea_program-0.30.0 → gea_program-0.30.1}/gea/help/seismic.md +0 -0
  182. {gea_program-0.30.0 → gea_program-0.30.1}/gea/help/site.md +0 -0
  183. {gea_program-0.30.0 → gea_program-0.30.1}/gea/help/sites.md +0 -0
  184. {gea_program-0.30.0 → gea_program-0.30.1}/gea/help/slip.md +0 -0
  185. {gea_program-0.30.0 → gea_program-0.30.1}/gea/help/soak.md +0 -0
  186. {gea_program-0.30.0 → gea_program-0.30.1}/gea/help/sra.md +0 -0
  187. {gea_program-0.30.0 → gea_program-0.30.1}/gea/help/start.md +0 -0
  188. {gea_program-0.30.0 → gea_program-0.30.1}/gea/help/structure.md +0 -0
  189. {gea_program-0.30.0 → gea_program-0.30.1}/gea/help/tools.md +0 -0
  190. {gea_program-0.30.0 → gea_program-0.30.1}/gea/help/transients.md +0 -0
  191. {gea_program-0.30.0 → gea_program-0.30.1}/gea/help/upkeep.md +0 -0
  192. {gea_program-0.30.0 → gea_program-0.30.1}/gea/help/vibration.md +0 -0
  193. {gea_program-0.30.0 → gea_program-0.30.1}/gea/help/well-tests.md +0 -0
  194. {gea_program-0.30.0 → gea_program-0.30.1}/gea/helplib.py +0 -0
  195. {gea_program-0.30.0 → gea_program-0.30.1}/gea/housekeeping.py +0 -0
  196. {gea_program-0.30.0 → gea_program-0.30.1}/gea/interval.py +0 -0
  197. {gea_program-0.30.0 → gea_program-0.30.1}/gea/inverse_engine.py +0 -0
  198. {gea_program-0.30.0 → gea_program-0.30.1}/gea/jobs.py +0 -0
  199. {gea_program-0.30.0 → gea_program-0.30.1}/gea/live_ports.py +0 -0
  200. {gea_program-0.30.0 → gea_program-0.30.1}/gea/loadtest.py +0 -0
  201. {gea_program-0.30.0 → gea_program-0.30.1}/gea/matplotlib_demo.py +0 -0
  202. {gea_program-0.30.0 → gea_program-0.30.1}/gea/modbus.py +0 -0
  203. {gea_program-0.30.0 → gea_program-0.30.1}/gea/modbus_rtu.py +0 -0
  204. {gea_program-0.30.0 → gea_program-0.30.1}/gea/model_card.py +0 -0
  205. {gea_program-0.30.0 → gea_program-0.30.1}/gea/month_end.py +0 -0
  206. {gea_program-0.30.0 → gea_program-0.30.1}/gea/mqtt_port.py +0 -0
  207. {gea_program-0.30.0 → gea_program-0.30.1}/gea/notify.py +0 -0
  208. {gea_program-0.30.0 → gea_program-0.30.1}/gea/opcua_port.py +0 -0
  209. {gea_program-0.30.0 → gea_program-0.30.1}/gea/operator_app.py +0 -0
  210. {gea_program-0.30.0 → gea_program-0.30.1}/gea/osdu.py +0 -0
  211. {gea_program-0.30.0 → gea_program-0.30.1}/gea/patches.py +0 -0
  212. {gea_program-0.30.0 → gea_program-0.30.1}/gea/permits.py +0 -0
  213. {gea_program-0.30.0 → gea_program-0.30.1}/gea/piwebapi.py +0 -0
  214. {gea_program-0.30.0 → gea_program-0.30.1}/gea/ports.py +0 -0
  215. {gea_program-0.30.0 → gea_program-0.30.1}/gea/ppdm.py +0 -0
  216. {gea_program-0.30.0 → gea_program-0.30.1}/gea/profile_catalog.py +0 -0
  217. {gea_program-0.30.0 → gea_program-0.30.1}/gea/project.py +0 -0
  218. {gea_program-0.30.0 → gea_program-0.30.1}/gea/qt6_downhole_app.py +0 -0
  219. {gea_program-0.30.0 → gea_program-0.30.1}/gea/quakeml.py +0 -0
  220. {gea_program-0.30.0 → gea_program-0.30.1}/gea/reconciler.py +0 -0
  221. {gea_program-0.30.0 → gea_program-0.30.1}/gea/reference/IU_ANMO_10_BHZ_response.provenance.json +0 -0
  222. {gea_program-0.30.0 → gea_program-0.30.1}/gea/reference/IU_ANMO_10_BHZ_response.xml +0 -0
  223. {gea_program-0.30.0 → gea_program-0.30.1}/gea/reference/libmseed_steim.provenance.json +0 -0
  224. {gea_program-0.30.0 → gea_program-0.30.1}/gea/reference/libmseed_steim1_4096.mseed +0 -0
  225. {gea_program-0.30.0 → gea_program-0.30.1}/gea/reference/libmseed_steim2_4096.mseed +0 -0
  226. {gea_program-0.30.0 → gea_program-0.30.1}/gea/reference/libmseed_steim2_512.mseed +0 -0
  227. {gea_program-0.30.0 → gea_program-0.30.1}/gea/rock_inventory.py +0 -0
  228. {gea_program-0.30.0 → gea_program-0.30.1}/gea/sample_record.py +0 -0
  229. {gea_program-0.30.0 → gea_program-0.30.1}/gea/sample_well_profile.csv +0 -0
  230. {gea_program-0.30.0 → gea_program-0.30.1}/gea/sbom.py +0 -0
  231. {gea_program-0.30.0 → gea_program-0.30.1}/gea/seedlink.py +0 -0
  232. {gea_program-0.30.0 → gea_program-0.30.1}/gea/segy.py +0 -0
  233. {gea_program-0.30.0 → gea_program-0.30.1}/gea/seismic.py +0 -0
  234. {gea_program-0.30.0 → gea_program-0.30.1}/gea/seismic_array.py +0 -0
  235. {gea_program-0.30.0 → gea_program-0.30.1}/gea/seismic_assoc.py +0 -0
  236. {gea_program-0.30.0 → gea_program-0.30.1}/gea/seismic_detect.py +0 -0
  237. {gea_program-0.30.0 → gea_program-0.30.1}/gea/seismic_film.py +0 -0
  238. {gea_program-0.30.0 → gea_program-0.30.1}/gea/seismic_harmonic.py +0 -0
  239. {gea_program-0.30.0 → gea_program-0.30.1}/gea/seismic_qc.py +0 -0
  240. {gea_program-0.30.0 → gea_program-0.30.1}/gea/seismic_response.py +0 -0
  241. {gea_program-0.30.0 → gea_program-0.30.1}/gea/seismic_signature.py +0 -0
  242. {gea_program-0.30.0 → gea_program-0.30.1}/gea/seismic_track.py +0 -0
  243. {gea_program-0.30.0 → gea_program-0.30.1}/gea/seismic_uncertainty.py +0 -0
  244. {gea_program-0.30.0 → gea_program-0.30.1}/gea/seismic_unlisted.py +0 -0
  245. {gea_program-0.30.0 → gea_program-0.30.1}/gea/sensor_swap.py +0 -0
  246. {gea_program-0.30.0 → gea_program-0.30.1}/gea/service.py +0 -0
  247. {gea_program-0.30.0 → gea_program-0.30.1}/gea/service_life.py +0 -0
  248. {gea_program-0.30.0 → gea_program-0.30.1}/gea/shapefile.py +0 -0
  249. {gea_program-0.30.0 → gea_program-0.30.1}/gea/shell.py +0 -0
  250. {gea_program-0.30.0 → gea_program-0.30.1}/gea/shut_in.py +0 -0
  251. {gea_program-0.30.0 → gea_program-0.30.1}/gea/sla_report.py +0 -0
  252. {gea_program-0.30.0 → gea_program-0.30.1}/gea/slip.py +0 -0
  253. {gea_program-0.30.0 → gea_program-0.30.1}/gea/soak.py +0 -0
  254. {gea_program-0.30.0 → gea_program-0.30.1}/gea/sra.py +0 -0
  255. {gea_program-0.30.0 → gea_program-0.30.1}/gea/store_forward.py +0 -0
  256. {gea_program-0.30.0 → gea_program-0.30.1}/gea/strata_join.py +0 -0
  257. {gea_program-0.30.0 → gea_program-0.30.1}/gea/structure.py +0 -0
  258. {gea_program-0.30.0 → gea_program-0.30.1}/gea/supervisor.py +0 -0
  259. {gea_program-0.30.0 → gea_program-0.30.1}/gea/survey_cmd.py +0 -0
  260. {gea_program-0.30.0 → gea_program-0.30.1}/gea/survey_view.py +0 -0
  261. {gea_program-0.30.0 → gea_program-0.30.1}/gea/telemetry.py +0 -0
  262. {gea_program-0.30.0 → gea_program-0.30.1}/gea/tool_catalog.py +0 -0
  263. {gea_program-0.30.0 → gea_program-0.30.1}/gea/tool_library.py +0 -0
  264. {gea_program-0.30.0 → gea_program-0.30.1}/gea/transient.py +0 -0
  265. {gea_program-0.30.0 → gea_program-0.30.1}/gea/vibration.py +0 -0
  266. {gea_program-0.30.0 → gea_program-0.30.1}/gea/well_assembler.py +0 -0
  267. {gea_program-0.30.0 → gea_program-0.30.1}/gea/well_test_validation.py +0 -0
  268. {gea_program-0.30.0 → gea_program-0.30.1}/gea/wits0.py +0 -0
  269. {gea_program-0.30.0 → gea_program-0.30.1}/gea/witsml.py +0 -0
  270. {gea_program-0.30.0 → gea_program-0.30.1}/gea/workspace.py +0 -0
  271. {gea_program-0.30.0 → gea_program-0.30.1}/gea_program.egg-info/SOURCES.txt +0 -0
  272. {gea_program-0.30.0 → gea_program-0.30.1}/gea_program.egg-info/dependency_links.txt +0 -0
  273. {gea_program-0.30.0 → gea_program-0.30.1}/gea_program.egg-info/entry_points.txt +0 -0
  274. {gea_program-0.30.0 → gea_program-0.30.1}/gea_program.egg-info/requires.txt +0 -0
  275. {gea_program-0.30.0 → gea_program-0.30.1}/gea_program.egg-info/top_level.txt +0 -0
  276. {gea_program-0.30.0 → gea_program-0.30.1}/setup.cfg +0 -0
  277. {gea_program-0.30.0 → gea_program-0.30.1}/tests/test_acceptance.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: gea-program
3
- Version: 0.30.0
3
+ Version: 0.30.1
4
4
  Summary: GEA-Program: downhole gauge monitoring - canonical measurement records, quality rules, drift evaluation with a re-fit change log, well-test validation, alarm management, model cards, store-and-forward, monthly SLA measurement, FAT/SAT protocols and a dashboard, generated from live objects in the client's reporting outline.
5
5
  Author: Daniel T. Murphy
6
6
  License: MPL-2.0
@@ -125,7 +125,7 @@ gea dashboard --catalog-well volve_f12_f14_production_excerpt:15/9-F-12:10000 --
125
125
  gea client-report --report accuracy --out client_report
126
126
  gea model-cards --out model_cards
127
127
  gea sbom --out sbom
128
- gea accept # the product gate (376 checks)
128
+ gea accept # the product gate (377 checks)
129
129
  gea help drift # the help library, by the job (16 pages; the same text is on every dashboard page)
130
130
  gea guide # the click-by-click tester guide (docs/TESTER_GUIDE.md)
131
131
  gea gui # the desktop window (pip install "gea-program[desktop]")
@@ -730,8 +730,14 @@ on bottom and rotating, the rate of penetration on bottom, the connections,
730
730
  the peaks; for the well, total depth and when the bit was first on bottom
731
731
  there, the recorder's TVD at it; per channel what was missing and how
732
732
  often; and the **MD-TVD table**, hole depth against the recorder's
733
- interpolated TVD, labelled an interpolation and not a survey. A recorder
734
- that resets its hole depth at a restart is named, not corrected. `gea edr
733
+ interpolated TVD, labelled an interpolation and not a survey. Before any
734
+ footage is counted the hole depth is read for what it can be trusted for:
735
+ a depth carried over from the last well, a depth set back and counted up
736
+ again by running pipe, a sidetrack, an overstated or understated depth
737
+ corrected - each named as a depth event in the record and on the well
738
+ page, and handled so that total depth is the final borehole's and the
739
+ footage adds up. The recorder's gamma is written as a LAS log by bit
740
+ depth. `gea edr
735
741
  --file C:\site\_incoming\30636033.csv`; `gea workspace --action add-file`
736
742
  then `refresh` for the record beside the well's other reports. `gea help
737
743
  edr`.
@@ -86,7 +86,7 @@ gea dashboard --catalog-well volve_f12_f14_production_excerpt:15/9-F-12:10000 --
86
86
  gea client-report --report accuracy --out client_report
87
87
  gea model-cards --out model_cards
88
88
  gea sbom --out sbom
89
- gea accept # the product gate (376 checks)
89
+ gea accept # the product gate (377 checks)
90
90
  gea help drift # the help library, by the job (16 pages; the same text is on every dashboard page)
91
91
  gea guide # the click-by-click tester guide (docs/TESTER_GUIDE.md)
92
92
  gea gui # the desktop window (pip install "gea-program[desktop]")
@@ -691,8 +691,14 @@ on bottom and rotating, the rate of penetration on bottom, the connections,
691
691
  the peaks; for the well, total depth and when the bit was first on bottom
692
692
  there, the recorder's TVD at it; per channel what was missing and how
693
693
  often; and the **MD-TVD table**, hole depth against the recorder's
694
- interpolated TVD, labelled an interpolation and not a survey. A recorder
695
- that resets its hole depth at a restart is named, not corrected. `gea edr
694
+ interpolated TVD, labelled an interpolation and not a survey. Before any
695
+ footage is counted the hole depth is read for what it can be trusted for:
696
+ a depth carried over from the last well, a depth set back and counted up
697
+ again by running pipe, a sidetrack, an overstated or understated depth
698
+ corrected - each named as a depth event in the record and on the well
699
+ page, and handled so that total depth is the final borehole's and the
700
+ footage adds up. The recorder's gamma is written as a LAS log by bit
701
+ depth. `gea edr
696
702
  --file C:\site\_incoming\30636033.csv`; `gea workspace --action add-file`
697
703
  then `refresh` for the record beside the well's other reports. `gea help
698
704
  edr`.
@@ -123,7 +123,7 @@ from .profile_catalog import (
123
123
  read_pangaea_txt,
124
124
  )
125
125
 
126
- __version__ = "0.30.0"
126
+ __version__ = "0.30.1"
127
127
  __all__ = [
128
128
  "aging_rate", "rate_psi_yr", "accuracy_psi",
129
129
  "Sensor", "SimulatorConfig", "DownholeEngine",
@@ -7697,10 +7697,11 @@ def section_by_edr(tmp: str) -> None:
7697
7697
  "sections": rec["n_sections"] == 3 and all(x["rows"] == 3000 and x["hours"] == 0.83 for x in secs) and secs[0]["gap_before_hours"] is None
7698
7698
  and secs[1]["gap_before_hours"] == 48.0 and secs[2]["gap_before_hours"] == 48.0 and all(x["connections"] == 25 for x in secs)
7699
7699
  and all(x["rop_on_bottom_mean_ft_h"] == 600.0 and x["on_bottom_hours"] == 0.69 and x["rotating_hours"] == 0.69 for x in secs)
7700
- and secs[0]["hole_depth_at_start_ft"] == 1500.2 and abs(secs[0]["feet_drilled"] - 416.5) < 0.2 and secs[0]["feet_by_increments"] == secs[0]["feet_drilled"]
7701
- and "hole_depth_drops" not in secs[0] and secs[0]["wob_max_klbf"] == 20.0 and secs[0]["rpm_max"] == 60.0,
7700
+ and secs[0]["hole_depth_at_start_ft"] == 1500.2 and abs(secs[0]["feet_drilled"] - 416.5) < 0.2 and "depth_events" not in secs[0]
7701
+ and secs[1]["hole_depth_at_start_ft"] == 1916.7 and secs[0]["wob_max_klbf"] == 20.0 and secs[0]["rpm_max"] == 60.0,
7702
7702
  "well": rec["total_depth_md_ft"] == 2750.0 and rec["tvd_at_td_ft"] == 2015.0 and rec["on_bottom_hours"] == 2.08 and abs(rec["feet_drilled"] - 1249.8) < 0.2
7703
- and rec["feet_by_increments"] == rec["feet_drilled"] and not rec["notes"]
7703
+ and rec["depth_events"] == [] and rec["excluded_hours"] == 0.0 and rec["flag_idle_hours"] == 0.0 and not rec["notes"]
7704
+ and rec["first_hole_depth_ft"] == 1500.2 and [b["status"] for b in rec["boreholes"]] == ["FINAL"]
7704
7705
  and abs(rec["feet_per_on_bottom_hour"] - 600.9) < 0.2 and rec["hours_recorded"] == 2.5 and rec["span_days"] == 4.1 and rec["reached_td"].startswith("2026-06-05T02:29"),
7705
7706
  "md_tvd": rec["md_tvd"]["status"] == "OK" and rec["md_tvd"]["n"] == 13 and rec["md_tvd"]["tvd_decreasing_steps"] == 0 and rec["md_tvd"]["samples_without_tvd"] == 900
7706
7707
  and "not a survey" in rec["md_tvd"]["source"] and rec["lateral"]["lateral_start_md_ft"] == 1999.8 and abs(rec["lateral"]["lateral_length_ft"] - 750.2) < 0.2
@@ -7716,6 +7717,27 @@ def section_by_edr(tmp: str) -> None:
7716
7717
  "registry": PORT_REGISTRY["edr"].status == "IMPLEMENTED" and read_any(r["path"]).source_format == "edr"
7717
7718
  and any(p["name"] == "edr" and p["status"] == "IMPLEMENTED" for p in TC.catalog()["ports"]["files"]),
7718
7719
  }
7720
+ # the depth events: a stale opening, a re-reference, a sidetrack and a correction, each named and handled
7721
+ ev = E.selftest_events(str(d)); er = ev["record"]
7722
+ types = [(e["type"], e["from_ft"], e["to_ft"]) for e in er["depth_events"]]
7723
+ bh = er["boreholes"]
7724
+ c4 = {}
7725
+ c4["events"] = (types == [("STALE OPENING", 9999.0, 5200.2), ("RE-REFERENCE", 5400.0, 2000.0), ("SIDETRACK", 5500.0, 4800.0), ("CORRECTION", 5700.0, 5650.2)]
7726
+ and er["total_depth_md_ft"] == 5750.0 and abs(er["feet_drilled"] - 1449.8) < 0.2 and er["first_hole_depth_ft"] == 5000.2
7727
+ and len(bh) == 2 and bh[0]["status"].startswith("ABANDONED") and bh[0]["deepest_ft"] == 5500.0 and bh[1]["status"] == "FINAL" and bh[1]["from_ft"] == 4800.0
7728
+ and er["on_bottom_hours"] == 8.45 and er["on_bottom_flag_hours"] == 9.39 and er["excluded_hours"] == 1.03
7729
+ and any("largest value is 9,999.0 ft" in x for x in er["notes"])
7730
+ and er["gamma"]["status"] == "OK" and er["gamma"]["bins"] == 951 and er["gamma"]["depth_from_ft"] == 4800.0 and er["gamma"]["depth_to_ft"] == 5750.0
7731
+ and len(ev["gamma"].index) == 951 and bool(np.all(ev["gamma"].channels["GR"].values == 110.0))
7732
+ and er["md_tvd"]["n"] == 10 and any(l.startswith("Depth event, SIDETRACK") and "abandoned" in l for l in er["lines"])
7733
+ and any(l.startswith("Boreholes:") for l in er["lines"]))
7734
+ fl = E.selftest_flag(str(d))["record"]
7735
+ c4["flag_and_corrections"] = ([(e["type"], e["from_ft"], e["to_ft"]) for e in fl["depth_events"]] == [("CORRECTION", 1060.0, 1080.0), ("CORRECTION", 1140.0, 1128.0), ("CORRECTION", 1128.0, 1140.0),
7736
+ ("STALE OPENING", 9999.0, None), ("STALE OPENING", 9999.0, None), ("STALE OPENING", 9999.0, 1200.1)]
7737
+ and fl["total_depth_md_ft"] == 1230.0 and fl["first_hole_depth_ft"] == 1000.1 and abs(fl["feet_drilled"] - 229.9) < 0.05
7738
+ and fl["on_bottom_hours"] == 0.58 and fl["flag_idle_hours"] == 0.56 and fl["excluded_hours"] == 0.18 and fl["on_bottom_flag_hours"] == 1.14
7739
+ and [x.get("hole_depth_at_start_ft") for x in fl["sections"]] == [1000.1, 1128.0, None, None, 1200.0] and len(fl["boreholes"]) == 1
7740
+ and any("nothing drilled" in l for l in fl["lines"]))
7719
7741
  odd = str(d / "odd.csv")
7720
7742
  with open(r["path"], encoding="utf-8") as f, open(odd, "w", encoding="utf-8") as g:
7721
7743
  for i, line in enumerate(f):
@@ -7820,6 +7842,19 @@ def section_by_edr(tmp: str) -> None:
7820
7842
  "written gamma LAS converts its feet once, says so, recognizes the gamma and says what it lacks; the help page and its index entry"
7821
7843
  + (f" [failed: {', '.join(failed3)}]" if failed3 else ""))
7822
7844
 
7845
+ c4["help"] = all(t in help_md for t in ("STALE OPENING", "RE-REFERENCE", "SIDETRACK", "CORRECTION", "UNRESOLVED")) and "daily drilling report" in help_md \
7846
+ and "nothing drilled" in help_md and "total depth less the first depth" in help_md
7847
+ failed4 = [k for k, v in c4.items() if not v]
7848
+ ok(not failed4,
7849
+ "BY4 the depth events: a section opening on another well's depth (STALE OPENING, excluded), a depth set back and regained by counting pipe at 3,600 "
7850
+ "ft/h (RE-REFERENCE, excluded), a 700 ft set-back time-drilled at 5 ft/h (SIDETRACK: total depth 5,750 ft from the final borehole, 1,449.8 ft drilled "
7851
+ "counting the abandoned 4,800-5,500 ft, the gamma log and TVD table kept off the abandoned hole) and a 50 ft overstated depth (CORRECTION) each named; "
7852
+ "a 20 ft set-forward off bottom added, a 12 ft fall regained only in the next section a correction and never a re-reference, the next section drilling "
7853
+ "on from its opening depth not a stale opening, three restarts on another well's depth each a stale opening (judged against the last depth the file can "
7854
+ "be trusted for), and 2,000 s of on-bottom flag with nothing drilled kept out of the drilling hours - footage exactly total depth less the first depth "
7855
+ "(229.9 ft); the help page names every event"
7856
+ + (f" [failed: {', '.join(failed4)}]" if failed4 else ""))
7857
+
7823
7858
 
7824
7859
  def main() -> int:
7825
7860
  print("GEA-Program - ACCEPTANCE SUITE (the product gate)")