gea-program 0.49.0__tar.gz → 0.51.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.
- {gea_program-0.49.0 → gea_program-0.51.0}/PKG-INFO +30 -1
- {gea_program-0.49.0 → gea_program-0.51.0}/README.md +29 -0
- {gea_program-0.49.0 → gea_program-0.51.0}/gea/__init__.py +1 -1
- {gea_program-0.49.0 → gea_program-0.51.0}/gea/__main__.py +114 -0
- {gea_program-0.49.0 → gea_program-0.51.0}/gea/acceptance_tests.py +433 -2
- {gea_program-0.49.0 → gea_program-0.51.0}/gea/alerts.py +20 -2
- {gea_program-0.49.0 → gea_program-0.51.0}/gea/collision.py +60 -12
- {gea_program-0.49.0 → gea_program-0.51.0}/gea/dossier.py +36 -4
- gea_program-0.51.0/gea/frac_hits.py +518 -0
- {gea_program-0.49.0 → gea_program-0.51.0}/gea/help/alerts.md +1 -1
- gea_program-0.51.0/gea/help/collision.md +19 -0
- gea_program-0.51.0/gea/help/frac-hits.md +17 -0
- gea_program-0.51.0/gea/help/plan.md +19 -0
- {gea_program-0.49.0 → gea_program-0.51.0}/gea/helplib.py +4 -2
- {gea_program-0.49.0 → gea_program-0.51.0}/gea/notify.py +3 -1
- gea_program-0.51.0/gea/reference/iscwsa_rev5_example.json +2015 -0
- gea_program-0.51.0/gea/reference/owsg_tool_models.json +4611 -0
- {gea_program-0.49.0 → gea_program-0.51.0}/gea/service.py +49 -0
- {gea_program-0.49.0 → gea_program-0.51.0}/gea/web/app.html +171 -4
- {gea_program-0.49.0 → gea_program-0.51.0}/gea/well3d.py +50 -18
- gea_program-0.51.0/gea/wellplan.py +388 -0
- {gea_program-0.49.0 → gea_program-0.51.0}/gea/wellpos.py +169 -5
- {gea_program-0.49.0 → gea_program-0.51.0}/gea_program.egg-info/PKG-INFO +30 -1
- {gea_program-0.49.0 → gea_program-0.51.0}/gea_program.egg-info/SOURCES.txt +6 -0
- {gea_program-0.49.0 → gea_program-0.51.0}/pyproject.toml +1 -1
- gea_program-0.49.0/gea/help/collision.md +0 -19
- {gea_program-0.49.0 → gea_program-0.51.0}/LICENSE +0 -0
- {gea_program-0.49.0 → gea_program-0.51.0}/gea/BENCH_TEST_PROTOCOL.md +0 -0
- {gea_program-0.49.0 → gea_program-0.51.0}/gea/accuracy_statement.py +0 -0
- {gea_program-0.49.0 → gea_program-0.51.0}/gea/alarm_engine.py +0 -0
- {gea_program-0.49.0 → gea_program-0.51.0}/gea/backup.py +0 -0
- {gea_program-0.49.0 → gea_program-0.51.0}/gea/bench.py +0 -0
- {gea_program-0.49.0 → gea_program-0.51.0}/gea/blind_harness.py +0 -0
- {gea_program-0.49.0 → gea_program-0.51.0}/gea/catalog/acex_lomonosov_age_depth_model.provenance.json +0 -0
- {gea_program-0.49.0 → gea_program-0.51.0}/gea/catalog/acex_lomonosov_age_depth_model.txt +0 -0
- {gea_program-0.49.0 → gea_program-0.51.0}/gea/catalog/agassiz77_canada_temperature.csv +0 -0
- {gea_program-0.49.0 → gea_program-0.51.0}/gea/catalog/agassiz77_canada_temperature.provenance.json +0 -0
- {gea_program-0.49.0 → gea_program-0.51.0}/gea/catalog/barbados_110_consolidation.provenance.json +0 -0
- {gea_program-0.49.0 → gea_program-0.51.0}/gea/catalog/barbados_110_consolidation.txt +0 -0
- {gea_program-0.49.0 → gea_program-0.51.0}/gea/catalog/bengal_u1452_grain_size.provenance.json +0 -0
- {gea_program-0.49.0 → gea_program-0.51.0}/gea/catalog/bengal_u1452_grain_size.txt +0 -0
- {gea_program-0.49.0 → gea_program-0.51.0}/gea/catalog/blake_164_methane_isotopes.provenance.json +0 -0
- {gea_program-0.49.0 → gea_program-0.51.0}/gea/catalog/blake_164_methane_isotopes.txt +0 -0
- {gea_program-0.49.0 → gea_program-0.51.0}/gea/catalog/chicxulub_m0077a_pwave_velocity.provenance.json +0 -0
- {gea_program-0.49.0 → gea_program-0.51.0}/gea/catalog/chicxulub_m0077a_pwave_velocity.txt +0 -0
- {gea_program-0.49.0 → gea_program-0.51.0}/gea/catalog/collingwood_1_28_ks_complete.las +0 -0
- {gea_program-0.49.0 → gea_program-0.51.0}/gea/catalog/collingwood_1_28_ks_complete.provenance.json +0 -0
- {gea_program-0.49.0 → gea_program-0.51.0}/gea/catalog/costa_rica_odp_friction_envelope.provenance.json +0 -0
- {gea_program-0.49.0 → gea_program-0.51.0}/gea/catalog/costa_rica_odp_friction_envelope.txt +0 -0
- {gea_program-0.49.0 → gea_program-0.51.0}/gea/catalog/dead_sea_5017_debrite_xrf_ms.provenance.json +0 -0
- {gea_program-0.49.0 → gea_program-0.51.0}/gea/catalog/dead_sea_5017_debrite_xrf_ms.txt +0 -0
- {gea_program-0.49.0 → gea_program-0.51.0}/gea/catalog/dsdp_504b_physical_properties.provenance.json +0 -0
- {gea_program-0.49.0 → gea_program-0.51.0}/gea/catalog/dsdp_504b_physical_properties.txt +0 -0
- {gea_program-0.49.0 → gea_program-0.51.0}/gea/catalog/dsdp_504b_sound_velocity.provenance.json +0 -0
- {gea_program-0.49.0 → gea_program-0.51.0}/gea/catalog/dsdp_504b_sound_velocity.txt +0 -0
- {gea_program-0.49.0 → gea_program-0.51.0}/gea/catalog/elgygytgyn_5011_turbidites.provenance.json +0 -0
- {gea_program-0.49.0 → gea_program-0.51.0}/gea/catalog/elgygytgyn_5011_turbidites.txt +0 -0
- {gea_program-0.49.0 → gea_program-0.51.0}/gea/catalog/epica_domec_co2_800kyr.provenance.json +0 -0
- {gea_program-0.49.0 → gea_program-0.51.0}/gea/catalog/epica_domec_co2_800kyr.txt +0 -0
- {gea_program-0.49.0 → gea_program-0.51.0}/gea/catalog/fram_909_organic_petrography.provenance.json +0 -0
- {gea_program-0.49.0 → gea_program-0.51.0}/gea/catalog/fram_909_organic_petrography.txt +0 -0
- {gea_program-0.49.0 → gea_program-0.51.0}/gea/catalog/gbr_325_coral_uth_ages.provenance.json +0 -0
- {gea_program-0.49.0 → gea_program-0.51.0}/gea/catalog/gbr_325_coral_uth_ages.txt +0 -0
- {gea_program-0.49.0 → gea_program-0.51.0}/gea/catalog/gisp2_greenland_temperature.csv +0 -0
- {gea_program-0.49.0 → gea_program-0.51.0}/gea/catalog/gisp2_greenland_temperature.provenance.json +0 -0
- {gea_program-0.49.0 → gea_program-0.51.0}/gea/catalog/gom_308_t2p_insitu.provenance.json +0 -0
- {gea_program-0.49.0 → gea_program-0.51.0}/gea/catalog/gom_308_t2p_insitu.txt +0 -0
- {gea_program-0.49.0 → gea_program-0.51.0}/gea/catalog/guaymas_385_dom_d13c.provenance.json +0 -0
- {gea_program-0.49.0 → gea_program-0.51.0}/gea/catalog/guaymas_385_dom_d13c.txt +0 -0
- {gea_program-0.49.0 → gea_program-0.51.0}/gea/catalog/hikurangi_u1520_friction_insitu.provenance.json +0 -0
- {gea_program-0.49.0 → gea_program-0.51.0}/gea/catalog/hikurangi_u1520_friction_insitu.txt +0 -0
- {gea_program-0.49.0 → gea_program-0.51.0}/gea/catalog/hydrate_ridge_204_ncr_hydrate.provenance.json +0 -0
- {gea_program-0.49.0 → gea_program-0.51.0}/gea/catalog/hydrate_ridge_204_ncr_hydrate.txt +0 -0
- {gea_program-0.49.0 → gea_program-0.51.0}/gea/catalog/iodp_u1324_pore_pressure.provenance.json +0 -0
- {gea_program-0.49.0 → gea_program-0.51.0}/gea/catalog/iodp_u1324_pore_pressure.txt +0 -0
- {gea_program-0.49.0 → gea_program-0.51.0}/gea/catalog/jfast_c0019_slow_slip_events.provenance.json +0 -0
- {gea_program-0.49.0 → gea_program-0.51.0}/gea/catalog/jfast_c0019_slow_slip_events.txt +0 -0
- {gea_program-0.49.0 → gea_program-0.51.0}/gea/catalog/kennetcook_2_p129_excerpt.las +0 -0
- {gea_program-0.49.0 → gea_program-0.51.0}/gea/catalog/kennetcook_2_p129_excerpt.provenance.json +0 -0
- {gea_program-0.49.0 → gea_program-0.51.0}/gea/catalog/ktb_hb_bhgm_density.dat +0 -0
- {gea_program-0.49.0 → gea_program-0.51.0}/gea/catalog/ktb_hb_bhgm_density.provenance.json +0 -0
- {gea_program-0.49.0 → gea_program-0.51.0}/gea/catalog/ktb_hb_complog_6020_excerpt.provenance.json +0 -0
- {gea_program-0.49.0 → gea_program-0.51.0}/gea/catalog/ktb_hb_complog_6020_excerpt.txt +0 -0
- {gea_program-0.49.0 → gea_program-0.51.0}/gea/catalog/ktb_hb_hlog246_temperature.dat +0 -0
- {gea_program-0.49.0 → gea_program-0.51.0}/gea/catalog/ktb_hb_hlog246_temperature.provenance.json +0 -0
- {gea_program-0.49.0 → gea_program-0.51.0}/gea/catalog/ktb_hb_rockmech_compress.dat +0 -0
- {gea_program-0.49.0 → gea_program-0.51.0}/gea/catalog/ktb_hb_rockmech_compress.provenance.json +0 -0
- {gea_program-0.49.0 → gea_program-0.51.0}/gea/catalog/ktb_hb_tvd_0_9080_excerpt.dat +0 -0
- {gea_program-0.49.0 → gea_program-0.51.0}/gea/catalog/ktb_hb_tvd_0_9080_excerpt.provenance.json +0 -0
- {gea_program-0.49.0 → gea_program-0.51.0}/gea/catalog/ktb_vb_rockmech_compress.dat +0 -0
- {gea_program-0.49.0 → gea_program-0.51.0}/gea/catalog/ktb_vb_rockmech_compress.provenance.json +0 -0
- {gea_program-0.49.0 → gea_program-0.51.0}/gea/catalog/ktb_vb_vlog251_temperature.dat +0 -0
- {gea_program-0.49.0 → gea_program-0.51.0}/gea/catalog/ktb_vb_vlog251_temperature.provenance.json +0 -0
- {gea_program-0.49.0 → gea_program-0.51.0}/gea/catalog/l06_06_nl_survey.csv +0 -0
- {gea_program-0.49.0 → gea_program-0.51.0}/gea/catalog/l06_06_nl_survey.provenance.json +0 -0
- {gea_program-0.49.0 → gea_program-0.51.0}/gea/catalog/l07_01_nl_excerpt.las +0 -0
- {gea_program-0.49.0 → gea_program-0.51.0}/gea/catalog/l07_01_nl_excerpt.provenance.json +0 -0
- {gea_program-0.49.0 → gea_program-0.51.0}/gea/catalog/mariana_1200_serpentinite_geochem.provenance.json +0 -0
- {gea_program-0.49.0 → gea_program-0.51.0}/gea/catalog/mariana_1200_serpentinite_geochem.txt +0 -0
- {gea_program-0.49.0 → gea_program-0.51.0}/gea/catalog/med_160_sapropels.provenance.json +0 -0
- {gea_program-0.49.0 → gea_program-0.51.0}/gea/catalog/med_160_sapropels.txt +0 -0
- {gea_program-0.49.0 → gea_program-0.51.0}/gea/catalog/nankai_megasplay_shear_strength.provenance.json +0 -0
- {gea_program-0.49.0 → gea_program-0.51.0}/gea/catalog/nankai_megasplay_shear_strength.txt +0 -0
- {gea_program-0.49.0 → gea_program-0.51.0}/gea/catalog/odp_1027b_thermal_conductivity.provenance.json +0 -0
- {gea_program-0.49.0 → gea_program-0.51.0}/gea/catalog/odp_1027b_thermal_conductivity.txt +0 -0
- {gea_program-0.49.0 → gea_program-0.51.0}/gea/catalog/odp_1027c_cork_temperature.provenance.json +0 -0
- {gea_program-0.49.0 → gea_program-0.51.0}/gea/catalog/odp_1027c_cork_temperature.txt +0 -0
- {gea_program-0.49.0 → gea_program-0.51.0}/gea/catalog/odp_1165b_thermal_conductivity.provenance.json +0 -0
- {gea_program-0.49.0 → gea_program-0.51.0}/gea/catalog/odp_1165b_thermal_conductivity.txt +0 -0
- {gea_program-0.49.0 → gea_program-0.51.0}/gea/catalog/odp_1274a_mantle_peridotite_mad.provenance.json +0 -0
- {gea_program-0.49.0 → gea_program-0.51.0}/gea/catalog/odp_1274a_mantle_peridotite_mad.txt +0 -0
- {gea_program-0.49.0 → gea_program-0.51.0}/gea/catalog/odp_504b_dike_elastic_moduli.provenance.json +0 -0
- {gea_program-0.49.0 → gea_program-0.51.0}/gea/catalog/odp_504b_dike_elastic_moduli.txt +0 -0
- {gea_program-0.49.0 → gea_program-0.51.0}/gea/catalog/odp_504b_leg137_borehole_fluids.provenance.json +0 -0
- {gea_program-0.49.0 → gea_program-0.51.0}/gea/catalog/odp_504b_leg137_borehole_fluids.txt +0 -0
- {gea_program-0.49.0 → gea_program-0.51.0}/gea/catalog/odp_735b_gabbro_elastic_moduli.provenance.json +0 -0
- {gea_program-0.49.0 → gea_program-0.51.0}/gea/catalog/odp_735b_gabbro_elastic_moduli.txt +0 -0
- {gea_program-0.49.0 → gea_program-0.51.0}/gea/catalog/peru_201_sulfate_reduction.provenance.json +0 -0
- {gea_program-0.49.0 → gea_program-0.51.0}/gea/catalog/peru_201_sulfate_reduction.txt +0 -0
- {gea_program-0.49.0 → gea_program-0.51.0}/gea/catalog/scorpio_e1_sa_excerpt.las +0 -0
- {gea_program-0.49.0 → gea_program-0.51.0}/gea/catalog/scorpio_e1_sa_excerpt.provenance.json +0 -0
- {gea_program-0.49.0 → gea_program-0.51.0}/gea/catalog/sumatra_362_cohesion.provenance.json +0 -0
- {gea_program-0.49.0 → gea_program-0.51.0}/gea/catalog/sumatra_362_cohesion.txt +0 -0
- {gea_program-0.49.0 → gea_program-0.51.0}/gea/catalog/university_6_17_no1_tx_excerpt.las +0 -0
- {gea_program-0.49.0 → gea_program-0.51.0}/gea/catalog/university_6_17_no1_tx_excerpt.provenance.json +0 -0
- {gea_program-0.49.0 → gea_program-0.51.0}/gea/catalog/ursa_308_xrd_mineralogy.provenance.json +0 -0
- {gea_program-0.49.0 → gea_program-0.51.0}/gea/catalog/ursa_308_xrd_mineralogy.txt +0 -0
- {gea_program-0.49.0 → gea_program-0.51.0}/gea/catalog/volve_15_9_19_sr_excerpt.las +0 -0
- {gea_program-0.49.0 → gea_program-0.51.0}/gea/catalog/volve_15_9_19_sr_excerpt.provenance.json +0 -0
- {gea_program-0.49.0 → gea_program-0.51.0}/gea/catalog/volve_15_9_19a_core_excerpt.csv +0 -0
- {gea_program-0.49.0 → gea_program-0.51.0}/gea/catalog/volve_15_9_19a_core_excerpt.provenance.json +0 -0
- {gea_program-0.49.0 → gea_program-0.51.0}/gea/catalog/volve_f12_f14_production_excerpt.csv +0 -0
- {gea_program-0.49.0 → gea_program-0.51.0}/gea/catalog/volve_f12_f14_production_excerpt.provenance.json +0 -0
- {gea_program-0.49.0 → gea_program-0.51.0}/gea/catalog/walvis_208_petm_carbonate.provenance.json +0 -0
- {gea_program-0.49.0 → gea_program-0.51.0}/gea/catalog/walvis_208_petm_carbonate.txt +0 -0
- {gea_program-0.49.0 → gea_program-0.51.0}/gea/catalog/woodlark_1109_rock_eval.provenance.json +0 -0
- {gea_program-0.49.0 → gea_program-0.51.0}/gea/catalog/woodlark_1109_rock_eval.txt +0 -0
- {gea_program-0.49.0 → gea_program-0.51.0}/gea/catalog_map.py +0 -0
- {gea_program-0.49.0 → gea_program-0.51.0}/gea/catalog_register.py +0 -0
- {gea_program-0.49.0 → gea_program-0.51.0}/gea/certificates.py +0 -0
- {gea_program-0.49.0 → gea_program-0.51.0}/gea/cli.py +0 -0
- {gea_program-0.49.0 → gea_program-0.51.0}/gea/client_reports.py +0 -0
- {gea_program-0.49.0 → gea_program-0.51.0}/gea/config_versioning.py +0 -0
- {gea_program-0.49.0 → gea_program-0.51.0}/gea/conformance.py +0 -0
- {gea_program-0.49.0 → gea_program-0.51.0}/gea/control_room.py +0 -0
- {gea_program-0.49.0 → gea_program-0.51.0}/gea/correlation.py +0 -0
- {gea_program-0.49.0 → gea_program-0.51.0}/gea/dashboard.py +0 -0
- {gea_program-0.49.0 → gea_program-0.51.0}/gea/declarations.py +0 -0
- {gea_program-0.49.0 → gea_program-0.51.0}/gea/deviation.py +0 -0
- {gea_program-0.49.0 → gea_program-0.51.0}/gea/dlis.py +0 -0
- {gea_program-0.49.0 → gea_program-0.51.0}/gea/dnp3.py +0 -0
- {gea_program-0.49.0 → gea_program-0.51.0}/gea/doctor.py +0 -0
- {gea_program-0.49.0 → gea_program-0.51.0}/gea/dossier_verify.py +0 -0
- {gea_program-0.49.0 → gea_program-0.51.0}/gea/downhole_engine.py +0 -0
- {gea_program-0.49.0 → gea_program-0.51.0}/gea/drift_monitor.py +0 -0
- {gea_program-0.49.0 → gea_program-0.51.0}/gea/drill_string.py +0 -0
- {gea_program-0.49.0 → gea_program-0.51.0}/gea/earth_model.py +0 -0
- {gea_program-0.49.0 → gea_program-0.51.0}/gea/economics.py +0 -0
- {gea_program-0.49.0 → gea_program-0.51.0}/gea/ed25519.py +0 -0
- {gea_program-0.49.0 → gea_program-0.51.0}/gea/edr.py +0 -0
- {gea_program-0.49.0 → gea_program-0.51.0}/gea/elevation.py +0 -0
- {gea_program-0.49.0 → gea_program-0.51.0}/gea/etp.py +0 -0
- {gea_program-0.49.0 → gea_program-0.51.0}/gea/etp12_schemas.json +0 -0
- {gea_program-0.49.0 → gea_program-0.51.0}/gea/example_register_map.json +0 -0
- {gea_program-0.49.0 → gea_program-0.51.0}/gea/fat_sat.py +0 -0
- {gea_program-0.49.0 → gea_program-0.51.0}/gea/files.py +0 -0
- {gea_program-0.49.0 → gea_program-0.51.0}/gea/fixtures/README.md +0 -0
- {gea_program-0.49.0 → gea_program-0.51.0}/gea/fixtures/comcat_delaware_basin_2026-09.txt +0 -0
- {gea_program-0.49.0 → gea_program-0.51.0}/gea/fixtures/comcat_mahoning_1990-2026.txt +0 -0
- {gea_program-0.49.0 → gea_program-0.51.0}/gea/fixtures/comcat_youngstown_2011-2012.txt +0 -0
- {gea_program-0.49.0 → gea_program-0.51.0}/gea/fixtures/ne_110m_coastline.json +0 -0
- {gea_program-0.49.0 → gea_program-0.51.0}/gea/follower.py +0 -0
- {gea_program-0.49.0 → gea_program-0.51.0}/gea/forward_model.py +0 -0
- {gea_program-0.49.0 → gea_program-0.51.0}/gea/friction_priors.py +0 -0
- {gea_program-0.49.0 → gea_program-0.51.0}/gea/gamma.py +0 -0
- {gea_program-0.49.0 → gea_program-0.51.0}/gea/gauge_aging.py +0 -0
- {gea_program-0.49.0 → gea_program-0.51.0}/gea/gauge_specs.py +0 -0
- {gea_program-0.49.0 → gea_program-0.51.0}/gea/geodesy.py +0 -0
- {gea_program-0.49.0 → gea_program-0.51.0}/gea/geomag.py +0 -0
- {gea_program-0.49.0 → gea_program-0.51.0}/gea/gravity_reference.py +0 -0
- {gea_program-0.49.0 → gea_program-0.51.0}/gea/hartip.py +0 -0
- {gea_program-0.49.0 → gea_program-0.51.0}/gea/help/TESTER_GUIDE.md +0 -0
- {gea_program-0.49.0 → gea_program-0.51.0}/gea/help/alarms.md +0 -0
- {gea_program-0.49.0 → gea_program-0.51.0}/gea/help/audit-update.md +0 -0
- {gea_program-0.49.0 → gea_program-0.51.0}/gea/help/backup.md +0 -0
- {gea_program-0.49.0 → gea_program-0.51.0}/gea/help/catalog.md +0 -0
- {gea_program-0.49.0 → gea_program-0.51.0}/gea/help/charts.md +0 -0
- {gea_program-0.49.0 → gea_program-0.51.0}/gea/help/conformance.md +0 -0
- {gea_program-0.49.0 → gea_program-0.51.0}/gea/help/control-room.md +0 -0
- {gea_program-0.49.0 → gea_program-0.51.0}/gea/help/data-in.md +0 -0
- {gea_program-0.49.0 → gea_program-0.51.0}/gea/help/declare.md +0 -0
- {gea_program-0.49.0 → gea_program-0.51.0}/gea/help/dlis.md +0 -0
- {gea_program-0.49.0 → gea_program-0.51.0}/gea/help/doctor.md +0 -0
- {gea_program-0.49.0 → gea_program-0.51.0}/gea/help/dossier.md +0 -0
- {gea_program-0.49.0 → gea_program-0.51.0}/gea/help/drift.md +0 -0
- {gea_program-0.49.0 → gea_program-0.51.0}/gea/help/drillstring.md +0 -0
- {gea_program-0.49.0 → gea_program-0.51.0}/gea/help/economics.md +0 -0
- {gea_program-0.49.0 → gea_program-0.51.0}/gea/help/edr.md +0 -0
- {gea_program-0.49.0 → gea_program-0.51.0}/gea/help/etp.md +0 -0
- {gea_program-0.49.0 → gea_program-0.51.0}/gea/help/field-ports.md +0 -0
- {gea_program-0.49.0 → gea_program-0.51.0}/gea/help/files.md +0 -0
- {gea_program-0.49.0 → gea_program-0.51.0}/gea/help/historian.md +0 -0
- {gea_program-0.49.0 → gea_program-0.51.0}/gea/help/instruments.md +0 -0
- {gea_program-0.49.0 → gea_program-0.51.0}/gea/help/interval.md +0 -0
- {gea_program-0.49.0 → gea_program-0.51.0}/gea/help/invoice-check.md +0 -0
- {gea_program-0.49.0 → gea_program-0.51.0}/gea/help/map.md +0 -0
- {gea_program-0.49.0 → gea_program-0.51.0}/gea/help/month-end.md +0 -0
- {gea_program-0.49.0 → gea_program-0.51.0}/gea/help/notifications.md +0 -0
- {gea_program-0.49.0 → gea_program-0.51.0}/gea/help/opseis.md +0 -0
- {gea_program-0.49.0 → gea_program-0.51.0}/gea/help/osdu.md +0 -0
- {gea_program-0.49.0 → gea_program-0.51.0}/gea/help/pad-summary.md +0 -0
- {gea_program-0.49.0 → gea_program-0.51.0}/gea/help/patches.md +0 -0
- {gea_program-0.49.0 → gea_program-0.51.0}/gea/help/penetrator.md +0 -0
- {gea_program-0.49.0 → gea_program-0.51.0}/gea/help/ppdm.md +0 -0
- {gea_program-0.49.0 → gea_program-0.51.0}/gea/help/quakeml.md +0 -0
- {gea_program-0.49.0 → gea_program-0.51.0}/gea/help/quality.md +0 -0
- {gea_program-0.49.0 → gea_program-0.51.0}/gea/help/report-history.md +0 -0
- {gea_program-0.49.0 → gea_program-0.51.0}/gea/help/rig-time.md +0 -0
- {gea_program-0.49.0 → gea_program-0.51.0}/gea/help/seedlink.md +0 -0
- {gea_program-0.49.0 → gea_program-0.51.0}/gea/help/seismic.md +0 -0
- {gea_program-0.49.0 → gea_program-0.51.0}/gea/help/setup.md +0 -0
- {gea_program-0.49.0 → gea_program-0.51.0}/gea/help/simulation.md +0 -0
- {gea_program-0.49.0 → gea_program-0.51.0}/gea/help/site.md +0 -0
- {gea_program-0.49.0 → gea_program-0.51.0}/gea/help/sites.md +0 -0
- {gea_program-0.49.0 → gea_program-0.51.0}/gea/help/slip.md +0 -0
- {gea_program-0.49.0 → gea_program-0.51.0}/gea/help/soak.md +0 -0
- {gea_program-0.49.0 → gea_program-0.51.0}/gea/help/sra.md +0 -0
- {gea_program-0.49.0 → gea_program-0.51.0}/gea/help/start.md +0 -0
- {gea_program-0.49.0 → gea_program-0.51.0}/gea/help/structure.md +0 -0
- {gea_program-0.49.0 → gea_program-0.51.0}/gea/help/tools.md +0 -0
- {gea_program-0.49.0 → gea_program-0.51.0}/gea/help/transients.md +0 -0
- {gea_program-0.49.0 → gea_program-0.51.0}/gea/help/upkeep.md +0 -0
- {gea_program-0.49.0 → gea_program-0.51.0}/gea/help/vibration.md +0 -0
- {gea_program-0.49.0 → gea_program-0.51.0}/gea/help/well-report.md +0 -0
- {gea_program-0.49.0 → gea_program-0.51.0}/gea/help/well-tests.md +0 -0
- {gea_program-0.49.0 → gea_program-0.51.0}/gea/help/well3d.md +0 -0
- {gea_program-0.49.0 → gea_program-0.51.0}/gea/housekeeping.py +0 -0
- {gea_program-0.49.0 → gea_program-0.51.0}/gea/interval.py +0 -0
- {gea_program-0.49.0 → gea_program-0.51.0}/gea/inverse_engine.py +0 -0
- {gea_program-0.49.0 → gea_program-0.51.0}/gea/invoice_check.py +0 -0
- {gea_program-0.49.0 → gea_program-0.51.0}/gea/jobs.py +0 -0
- {gea_program-0.49.0 → gea_program-0.51.0}/gea/live_ports.py +0 -0
- {gea_program-0.49.0 → gea_program-0.51.0}/gea/loadtest.py +0 -0
- {gea_program-0.49.0 → gea_program-0.51.0}/gea/matplotlib_demo.py +0 -0
- {gea_program-0.49.0 → gea_program-0.51.0}/gea/modbus.py +0 -0
- {gea_program-0.49.0 → gea_program-0.51.0}/gea/modbus_rtu.py +0 -0
- {gea_program-0.49.0 → gea_program-0.51.0}/gea/model_card.py +0 -0
- {gea_program-0.49.0 → gea_program-0.51.0}/gea/month_end.py +0 -0
- {gea_program-0.49.0 → gea_program-0.51.0}/gea/mqtt_port.py +0 -0
- {gea_program-0.49.0 → gea_program-0.51.0}/gea/op_seismicity.py +0 -0
- {gea_program-0.49.0 → gea_program-0.51.0}/gea/opcua_port.py +0 -0
- {gea_program-0.49.0 → gea_program-0.51.0}/gea/operator_app.py +0 -0
- {gea_program-0.49.0 → gea_program-0.51.0}/gea/osdu.py +0 -0
- {gea_program-0.49.0 → gea_program-0.51.0}/gea/pad_summary.py +0 -0
- {gea_program-0.49.0 → gea_program-0.51.0}/gea/patches.py +0 -0
- {gea_program-0.49.0 → gea_program-0.51.0}/gea/pdf_report.py +0 -0
- {gea_program-0.49.0 → gea_program-0.51.0}/gea/penetrator.py +0 -0
- {gea_program-0.49.0 → gea_program-0.51.0}/gea/permits.py +0 -0
- {gea_program-0.49.0 → gea_program-0.51.0}/gea/piwebapi.py +0 -0
- {gea_program-0.49.0 → gea_program-0.51.0}/gea/ports.py +0 -0
- {gea_program-0.49.0 → gea_program-0.51.0}/gea/ppdm.py +0 -0
- {gea_program-0.49.0 → gea_program-0.51.0}/gea/profile_catalog.py +0 -0
- {gea_program-0.49.0 → gea_program-0.51.0}/gea/project.py +0 -0
- {gea_program-0.49.0 → gea_program-0.51.0}/gea/qt6_downhole_app.py +0 -0
- {gea_program-0.49.0 → gea_program-0.51.0}/gea/quakeml.py +0 -0
- {gea_program-0.49.0 → gea_program-0.51.0}/gea/reconciler.py +0 -0
- {gea_program-0.49.0 → gea_program-0.51.0}/gea/reference/IU_ANMO_10_BHZ_response.provenance.json +0 -0
- {gea_program-0.49.0 → gea_program-0.51.0}/gea/reference/IU_ANMO_10_BHZ_response.xml +0 -0
- {gea_program-0.49.0 → gea_program-0.51.0}/gea/reference/WMM2025.COF +0 -0
- {gea_program-0.49.0 → gea_program-0.51.0}/gea/reference/eia_henry_hub_daily.csv.gz +0 -0
- {gea_program-0.49.0 → gea_program-0.51.0}/gea/reference/eia_prices.provenance.json +0 -0
- {gea_program-0.49.0 → gea_program-0.51.0}/gea/reference/eia_wti_daily.csv.gz +0 -0
- {gea_program-0.49.0 → gea_program-0.51.0}/gea/reference/iscwsa_rev4_example.json +0 -0
- {gea_program-0.49.0 → gea_program-0.51.0}/gea/reference/libmseed_steim.provenance.json +0 -0
- {gea_program-0.49.0 → gea_program-0.51.0}/gea/reference/libmseed_steim1_4096.mseed +0 -0
- {gea_program-0.49.0 → gea_program-0.51.0}/gea/reference/libmseed_steim2_4096.mseed +0 -0
- {gea_program-0.49.0 → gea_program-0.51.0}/gea/reference/libmseed_steim2_512.mseed +0 -0
- {gea_program-0.49.0 → gea_program-0.51.0}/gea/reference/mahoning_example.json +0 -0
- {gea_program-0.49.0 → gea_program-0.51.0}/gea/reference/mud_motor_specs.json +0 -0
- {gea_program-0.49.0 → gea_program-0.51.0}/gea/reference/penetrator_ratings.json +0 -0
- {gea_program-0.49.0 → gea_program-0.51.0}/gea/reference/seismicity_protocols.json +0 -0
- {gea_program-0.49.0 → gea_program-0.51.0}/gea/reference/tool_sources.json +0 -0
- {gea_program-0.49.0 → gea_program-0.51.0}/gea/reference/us_outline.json +0 -0
- {gea_program-0.49.0 → gea_program-0.51.0}/gea/reference/us_outline.provenance.json +0 -0
- {gea_program-0.49.0 → gea_program-0.51.0}/gea/reference/volve_3d.provenance.json +0 -0
- {gea_program-0.49.0 → gea_program-0.51.0}/gea/reference/volve_f4_interpretation.las.gz +0 -0
- {gea_program-0.49.0 → gea_program-0.51.0}/gea/reference/volve_f4_logs.provenance.json +0 -0
- {gea_program-0.49.0 → gea_program-0.51.0}/gea/reference/volve_f4_lwd.las.gz +0 -0
- {gea_program-0.49.0 → gea_program-0.51.0}/gea/reference/volve_surfaces.json.gz +0 -0
- {gea_program-0.49.0 → gea_program-0.51.0}/gea/reference/volve_traj_F-10.xml.gz +0 -0
- {gea_program-0.49.0 → gea_program-0.51.0}/gea/reference/volve_traj_F-4.xml.gz +0 -0
- {gea_program-0.49.0 → gea_program-0.51.0}/gea/reference/volve_traj_F-5_12.25in.xml.gz +0 -0
- {gea_program-0.49.0 → gea_program-0.51.0}/gea/reference/volve_traj_F-5_17.5in.xml.gz +0 -0
- {gea_program-0.49.0 → gea_program-0.51.0}/gea/reference/volve_traj_F-5_36in.xml.gz +0 -0
- {gea_program-0.49.0 → gea_program-0.51.0}/gea/reference/volve_traj_F-5_8.5in.xml.gz +0 -0
- {gea_program-0.49.0 → gea_program-0.51.0}/gea/reference/volve_well_picks.csv.gz +0 -0
- {gea_program-0.49.0 → gea_program-0.51.0}/gea/report_history.py +0 -0
- {gea_program-0.49.0 → gea_program-0.51.0}/gea/rig_state.py +0 -0
- {gea_program-0.49.0 → gea_program-0.51.0}/gea/rock_inventory.py +0 -0
- {gea_program-0.49.0 → gea_program-0.51.0}/gea/sample_record.py +0 -0
- {gea_program-0.49.0 → gea_program-0.51.0}/gea/sample_well_profile.csv +0 -0
- {gea_program-0.49.0 → gea_program-0.51.0}/gea/sbom.py +0 -0
- {gea_program-0.49.0 → gea_program-0.51.0}/gea/seedlink.py +0 -0
- {gea_program-0.49.0 → gea_program-0.51.0}/gea/segy.py +0 -0
- {gea_program-0.49.0 → gea_program-0.51.0}/gea/seismic.py +0 -0
- {gea_program-0.49.0 → gea_program-0.51.0}/gea/seismic_array.py +0 -0
- {gea_program-0.49.0 → gea_program-0.51.0}/gea/seismic_assoc.py +0 -0
- {gea_program-0.49.0 → gea_program-0.51.0}/gea/seismic_detect.py +0 -0
- {gea_program-0.49.0 → gea_program-0.51.0}/gea/seismic_film.py +0 -0
- {gea_program-0.49.0 → gea_program-0.51.0}/gea/seismic_harmonic.py +0 -0
- {gea_program-0.49.0 → gea_program-0.51.0}/gea/seismic_qc.py +0 -0
- {gea_program-0.49.0 → gea_program-0.51.0}/gea/seismic_response.py +0 -0
- {gea_program-0.49.0 → gea_program-0.51.0}/gea/seismic_signature.py +0 -0
- {gea_program-0.49.0 → gea_program-0.51.0}/gea/seismic_track.py +0 -0
- {gea_program-0.49.0 → gea_program-0.51.0}/gea/seismic_uncertainty.py +0 -0
- {gea_program-0.49.0 → gea_program-0.51.0}/gea/seismic_unlisted.py +0 -0
- {gea_program-0.49.0 → gea_program-0.51.0}/gea/seismic_watch.py +0 -0
- {gea_program-0.49.0 → gea_program-0.51.0}/gea/sensor_swap.py +0 -0
- {gea_program-0.49.0 → gea_program-0.51.0}/gea/series_cache.py +0 -0
- {gea_program-0.49.0 → gea_program-0.51.0}/gea/service_life.py +0 -0
- {gea_program-0.49.0 → gea_program-0.51.0}/gea/setup_checklist.py +0 -0
- {gea_program-0.49.0 → gea_program-0.51.0}/gea/shapefile.py +0 -0
- {gea_program-0.49.0 → gea_program-0.51.0}/gea/shell.py +0 -0
- {gea_program-0.49.0 → gea_program-0.51.0}/gea/shut_in.py +0 -0
- {gea_program-0.49.0 → gea_program-0.51.0}/gea/simulation.py +0 -0
- {gea_program-0.49.0 → gea_program-0.51.0}/gea/site_map.py +0 -0
- {gea_program-0.49.0 → gea_program-0.51.0}/gea/sla_report.py +0 -0
- {gea_program-0.49.0 → gea_program-0.51.0}/gea/slip.py +0 -0
- {gea_program-0.49.0 → gea_program-0.51.0}/gea/soak.py +0 -0
- {gea_program-0.49.0 → gea_program-0.51.0}/gea/sra.py +0 -0
- {gea_program-0.49.0 → gea_program-0.51.0}/gea/store_forward.py +0 -0
- {gea_program-0.49.0 → gea_program-0.51.0}/gea/strata_join.py +0 -0
- {gea_program-0.49.0 → gea_program-0.51.0}/gea/structure.py +0 -0
- {gea_program-0.49.0 → gea_program-0.51.0}/gea/supervisor.py +0 -0
- {gea_program-0.49.0 → gea_program-0.51.0}/gea/survey_cmd.py +0 -0
- {gea_program-0.49.0 → gea_program-0.51.0}/gea/survey_view.py +0 -0
- {gea_program-0.49.0 → gea_program-0.51.0}/gea/telemetry.py +0 -0
- {gea_program-0.49.0 → gea_program-0.51.0}/gea/tool_catalog.py +0 -0
- {gea_program-0.49.0 → gea_program-0.51.0}/gea/tool_library.py +0 -0
- {gea_program-0.49.0 → gea_program-0.51.0}/gea/tool_taxonomy.py +0 -0
- {gea_program-0.49.0 → gea_program-0.51.0}/gea/transient.py +0 -0
- {gea_program-0.49.0 → gea_program-0.51.0}/gea/vibration.py +0 -0
- {gea_program-0.49.0 → gea_program-0.51.0}/gea/well_assembler.py +0 -0
- {gea_program-0.49.0 → gea_program-0.51.0}/gea/well_report.py +0 -0
- {gea_program-0.49.0 → gea_program-0.51.0}/gea/well_test_validation.py +0 -0
- {gea_program-0.49.0 → gea_program-0.51.0}/gea/wits0.py +0 -0
- {gea_program-0.49.0 → gea_program-0.51.0}/gea/witsml.py +0 -0
- {gea_program-0.49.0 → gea_program-0.51.0}/gea/workspace.py +0 -0
- {gea_program-0.49.0 → gea_program-0.51.0}/gea/xlsx_read.py +0 -0
- {gea_program-0.49.0 → gea_program-0.51.0}/gea_program.egg-info/dependency_links.txt +0 -0
- {gea_program-0.49.0 → gea_program-0.51.0}/gea_program.egg-info/entry_points.txt +0 -0
- {gea_program-0.49.0 → gea_program-0.51.0}/gea_program.egg-info/requires.txt +0 -0
- {gea_program-0.49.0 → gea_program-0.51.0}/gea_program.egg-info/top_level.txt +0 -0
- {gea_program-0.49.0 → gea_program-0.51.0}/setup.cfg +0 -0
- {gea_program-0.49.0 → gea_program-0.51.0}/tests/test_acceptance.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: gea-program
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.51.0
|
|
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
|
|
@@ -648,6 +648,35 @@ against it; `gea seedlink --config ... --hello` prints what a server says of
|
|
|
648
648
|
itself; `gea help seedlink`. A TexNet station is served by EarthScope at
|
|
649
649
|
`rtserve.iris.washington.edu:18000`, network `TX`.
|
|
650
650
|
|
|
651
|
+
### Frac hits
|
|
652
|
+
|
|
653
|
+
What each fracturing stage did to the pressure in the wells around it. A
|
|
654
|
+
treatment well's stage table (from the frac company's post-job report, CSV
|
|
655
|
+
or Excel) is read against every well with a pressure gauge in its record:
|
|
656
|
+
the pressure's departure from its own trend while the stage pumps and after
|
|
657
|
+
it stops, the first response and the fluid pumped by then, and the type -
|
|
658
|
+
no response, poroelastic (the rock squeezed, falling at the stop), mixed
|
|
659
|
+
(a hydraulic connection, holding or rising after it) or a frac hit (the
|
|
660
|
+
stage's fluid reaching the well). With surveys, the distance from each
|
|
661
|
+
stage to the monitored well; with an earthquake catalogue, the earthquakes
|
|
662
|
+
during each stage. A frac hit is an alert. The **Frac hits** tab,
|
|
663
|
+
`gea frac-hits`, `gea help frac-hits`.
|
|
664
|
+
|
|
665
|
+
### Plan vs actual and the survey tools
|
|
666
|
+
|
|
667
|
+
Each well against its directional plan: at every survey station, how far
|
|
668
|
+
it is from the plan - high or low, right or left, in the plan's own frame -
|
|
669
|
+
against the survey's own uncertainty in that direction; the bit projected
|
|
670
|
+
below the last survey; the one arc back to the plan, with its dogleg
|
|
671
|
+
severity and toolface. Each well's survey program names the tool that
|
|
672
|
+
surveyed each run, weighed by the ISCWSA MWD Rev 5.11 model (checked
|
|
673
|
+
against all 144 rows of the ISCWSA's own Rev 5 example) or one of 21 OWSG
|
|
674
|
+
tool-code models on its weighting functions - MWD and EMS with the standard,
|
|
675
|
+
high- or low-resolution geomagnetic model or in-field referencing. Wells not
|
|
676
|
+
yet drilled are checked for collision along their plans, a well being
|
|
677
|
+
drilled along its survey and then its plan, and the Collision tab draws the
|
|
678
|
+
travelling cylinder. The **Plan vs actual** tab, `gea plan`, `gea help plan`.
|
|
679
|
+
|
|
651
680
|
### Well collision checks
|
|
652
681
|
|
|
653
682
|
Every well scanned against every other: at each point of one well, the
|
|
@@ -609,6 +609,35 @@ against it; `gea seedlink --config ... --hello` prints what a server says of
|
|
|
609
609
|
itself; `gea help seedlink`. A TexNet station is served by EarthScope at
|
|
610
610
|
`rtserve.iris.washington.edu:18000`, network `TX`.
|
|
611
611
|
|
|
612
|
+
### Frac hits
|
|
613
|
+
|
|
614
|
+
What each fracturing stage did to the pressure in the wells around it. A
|
|
615
|
+
treatment well's stage table (from the frac company's post-job report, CSV
|
|
616
|
+
or Excel) is read against every well with a pressure gauge in its record:
|
|
617
|
+
the pressure's departure from its own trend while the stage pumps and after
|
|
618
|
+
it stops, the first response and the fluid pumped by then, and the type -
|
|
619
|
+
no response, poroelastic (the rock squeezed, falling at the stop), mixed
|
|
620
|
+
(a hydraulic connection, holding or rising after it) or a frac hit (the
|
|
621
|
+
stage's fluid reaching the well). With surveys, the distance from each
|
|
622
|
+
stage to the monitored well; with an earthquake catalogue, the earthquakes
|
|
623
|
+
during each stage. A frac hit is an alert. The **Frac hits** tab,
|
|
624
|
+
`gea frac-hits`, `gea help frac-hits`.
|
|
625
|
+
|
|
626
|
+
### Plan vs actual and the survey tools
|
|
627
|
+
|
|
628
|
+
Each well against its directional plan: at every survey station, how far
|
|
629
|
+
it is from the plan - high or low, right or left, in the plan's own frame -
|
|
630
|
+
against the survey's own uncertainty in that direction; the bit projected
|
|
631
|
+
below the last survey; the one arc back to the plan, with its dogleg
|
|
632
|
+
severity and toolface. Each well's survey program names the tool that
|
|
633
|
+
surveyed each run, weighed by the ISCWSA MWD Rev 5.11 model (checked
|
|
634
|
+
against all 144 rows of the ISCWSA's own Rev 5 example) or one of 21 OWSG
|
|
635
|
+
tool-code models on its weighting functions - MWD and EMS with the standard,
|
|
636
|
+
high- or low-resolution geomagnetic model or in-field referencing. Wells not
|
|
637
|
+
yet drilled are checked for collision along their plans, a well being
|
|
638
|
+
drilled along its survey and then its plan, and the Collision tab draws the
|
|
639
|
+
travelling cylinder. The **Plan vs actual** tab, `gea plan`, `gea help plan`.
|
|
640
|
+
|
|
612
641
|
### Well collision checks
|
|
613
642
|
|
|
614
643
|
Every well scanned against every other: at each point of one well, the
|
|
@@ -604,6 +604,40 @@ def main(argv=None) -> int:
|
|
|
604
604
|
p_co.add_argument("--actor", type=str, default="cli")
|
|
605
605
|
p_co.add_argument("--json", action="store_true")
|
|
606
606
|
|
|
607
|
+
p_pl = sub.add_parser("plan", help="a well against its plan: the distance high/low and right/left at each survey, the bit projected, the arc back to the plan; the survey program's tool models")
|
|
608
|
+
p_pl.add_argument("--workspace", type=str, default=None)
|
|
609
|
+
p_pl.add_argument("--well", type=str, default=None)
|
|
610
|
+
p_pl.add_argument("--attach", type=str, default=None, help="attach FILE as the well's plan (CSV, Excel or WITSML)")
|
|
611
|
+
p_pl.add_argument("--azimuth-reference", type=str, default=None, help="with --attach: true, grid or magnetic")
|
|
612
|
+
p_pl.add_argument("--md-unit", type=str, default="ft", help="with --attach: ft or m")
|
|
613
|
+
p_pl.add_argument("--grid", type=str, default=None, help="with a grid azimuth reference: the grid (e.g. UTM14N)")
|
|
614
|
+
p_pl.add_argument("--declination", type=str, default=None, help="with a magnetic azimuth reference: the declination used")
|
|
615
|
+
p_pl.add_argument("--remove", action="store_true", help="take the well's plan off it")
|
|
616
|
+
p_pl.add_argument("--program", type=str, default=None, help="the survey program: 'MWD+SRGM' or '0-1500:MWD+SRGM, 1500-:MWD+IFR1' (metres)")
|
|
617
|
+
p_pl.add_argument("--bit-offset", type=str, default=None, help="survey sensor to bit, m")
|
|
618
|
+
p_pl.add_argument("--lookahead", type=str, default=None, help="how far ahead the arc back rejoins the plan, m")
|
|
619
|
+
p_pl.add_argument("--source", type=str, default="", help="where the plan or the program came from")
|
|
620
|
+
p_pl.add_argument("--models", action="store_true", help="list the tool models")
|
|
621
|
+
p_pl.add_argument("--write", action="store_true", help="write the well's report")
|
|
622
|
+
p_pl.add_argument("--actor", type=str, default="cli")
|
|
623
|
+
p_pl.add_argument("--json", action="store_true")
|
|
624
|
+
|
|
625
|
+
p_fh = sub.add_parser("frac-hits", help="what each fracturing stage did to the pressure in the wells around it: none, poroelastic, mixed or a frac hit, the first response and the volume pumped by then")
|
|
626
|
+
p_fh.add_argument("--workspace", type=str, required=True)
|
|
627
|
+
p_fh.add_argument("--well", type=str, default=None, help="the treatment well (with --stages or --remove) or the monitored well (with --channel)")
|
|
628
|
+
p_fh.add_argument("--stages", type=str, default=None, help="attach FILE as the well's stage table (CSV or Excel)")
|
|
629
|
+
p_fh.add_argument("--depth-unit", type=str, default="ft")
|
|
630
|
+
p_fh.add_argument("--utc-offset", type=str, default=None, help="the stage clock's hours from UTC (for the earthquake count)")
|
|
631
|
+
p_fh.add_argument("--remove", action="store_true", help="take the well's stage table off it")
|
|
632
|
+
p_fh.add_argument("--channel", type=str, default=None, help="with --well: the monitored pressure channel ('' for the first in psi)")
|
|
633
|
+
p_fh.add_argument("--hit-psi", type=str, default=None, help="a frac hit from this many psi")
|
|
634
|
+
p_fh.add_argument("--min-psi", type=str, default=None, help="the smallest response, psi")
|
|
635
|
+
p_fh.add_argument("--k-sigma", type=str, default=None, help="the response threshold in multiples of the trend's noise")
|
|
636
|
+
p_fh.add_argument("--source", type=str, default="", help="where the stage table or the rule came from")
|
|
637
|
+
p_fh.add_argument("--write", action="store_true", help="write the report")
|
|
638
|
+
p_fh.add_argument("--actor", type=str, default="cli")
|
|
639
|
+
p_fh.add_argument("--json", action="store_true")
|
|
640
|
+
|
|
607
641
|
p_rt = sub.add_parser("rig-time", help="what the rig did each second of the drilling record - drilling, connections, trips, the slips - and the time lost against the pad's own best")
|
|
608
642
|
p_rt.add_argument("--workspace", type=str, required=True)
|
|
609
643
|
p_rt.add_argument("--well", type=str, default=None, help="with --write: one well's report (without it, the pad's)")
|
|
@@ -2422,6 +2456,86 @@ def main(argv=None) -> int:
|
|
|
2422
2456
|
raise SystemExit(f"collision: {e.args[0] if e.args else e}")
|
|
2423
2457
|
print(_json.dumps({k: v for k, v in r.items()}, default=str) if a.json else _CO.text(r))
|
|
2424
2458
|
return 0
|
|
2459
|
+
elif a.cmd == "frac-hits":
|
|
2460
|
+
import json as _json
|
|
2461
|
+
from . import frac_hits as _FH
|
|
2462
|
+
from .cli import _safe_stdout
|
|
2463
|
+
from .workspace import Workspace, WorkspaceError
|
|
2464
|
+
_safe_stdout()
|
|
2465
|
+
try:
|
|
2466
|
+
ws = Workspace(a.workspace)
|
|
2467
|
+
if a.stages or a.remove or a.channel is not None:
|
|
2468
|
+
if not a.well:
|
|
2469
|
+
raise ValueError("--well is needed")
|
|
2470
|
+
if a.stages:
|
|
2471
|
+
with open(a.stages, "rb") as f_:
|
|
2472
|
+
r_ = _FH.attach_stages(ws, a.well, os.path.basename(a.stages), f_.read(), a.actor, a.source, a.depth_unit, a.utc_offset)
|
|
2473
|
+
print(f"stage table attached to {a.well}: {r_['stages']} stages, {r_['first'][:16]} to {r_['last'][:16]}")
|
|
2474
|
+
return 0
|
|
2475
|
+
if a.remove:
|
|
2476
|
+
_FH.remove_stages(ws, a.well, a.actor)
|
|
2477
|
+
print(f"stage table removed from {a.well}")
|
|
2478
|
+
return 0
|
|
2479
|
+
if a.channel is not None or a.hit_psi is not None or a.min_psi is not None or a.k_sigma is not None:
|
|
2480
|
+
s_ = _FH.set_settings(ws, a.actor, a.source, (a.well, a.channel) if a.channel is not None else None,
|
|
2481
|
+
hit_psi=a.hit_psi, min_psi=a.min_psi, k_sigma=a.k_sigma)
|
|
2482
|
+
print(f"rule: frac hit from {s_['hit_psi']:g} psi, threshold {s_['k_sigma']:g} x noise and at least {s_['min_psi']:g} psi; monitors: "
|
|
2483
|
+
+ (", ".join(f"{k} {v['channel']}" for k, v in s_['monitors'].items()) or "the first pressure channel of each well"))
|
|
2484
|
+
return 0
|
|
2485
|
+
if a.write:
|
|
2486
|
+
r_ = _FH.write_report(ws, __version__, a.actor)
|
|
2487
|
+
print(f"wrote {r_['report_id']}: {r_['paths']['html']}")
|
|
2488
|
+
if r_['paths'].get('pdf'):
|
|
2489
|
+
print(f" printable: {r_['paths']['pdf']}")
|
|
2490
|
+
return 0
|
|
2491
|
+
r = _FH.page(ws)
|
|
2492
|
+
except (KeyError, ValueError, OSError, WorkspaceError) as e:
|
|
2493
|
+
raise SystemExit(f"frac-hits: {e.args[0] if e.args else e}")
|
|
2494
|
+
print(_json.dumps(r, default=str) if a.json else _FH.text(r))
|
|
2495
|
+
return 0
|
|
2496
|
+
elif a.cmd == "plan":
|
|
2497
|
+
import json as _json
|
|
2498
|
+
from . import wellplan as _PL
|
|
2499
|
+
from . import wellpos as _WP
|
|
2500
|
+
from .cli import _safe_stdout
|
|
2501
|
+
from .workspace import Workspace, WorkspaceError
|
|
2502
|
+
_safe_stdout()
|
|
2503
|
+
try:
|
|
2504
|
+
if a.models:
|
|
2505
|
+
for m_ in _WP.model_list():
|
|
2506
|
+
print(f"{m_['name']:<18} {m_['id']:<14} {m_['terms']:>2} terms {m_['family']:<10} {m_['long_name']}" + (" (default)" if m_['default'] else ""))
|
|
2507
|
+
return 0
|
|
2508
|
+
if not a.workspace:
|
|
2509
|
+
raise ValueError("--workspace is needed")
|
|
2510
|
+
ws = Workspace(a.workspace)
|
|
2511
|
+
if (a.attach or a.remove or a.program or a.bit_offset is not None or a.lookahead is not None or a.write) and not a.well:
|
|
2512
|
+
raise ValueError("--well is needed")
|
|
2513
|
+
if a.attach:
|
|
2514
|
+
with open(a.attach, "rb") as f_:
|
|
2515
|
+
r_ = _PL.attach(ws, a.well, os.path.basename(a.attach), f_.read(), a.actor, a.azimuth_reference or "", a.md_unit, a.grid,
|
|
2516
|
+
float(a.declination) if a.declination else None, a.source)
|
|
2517
|
+
print(f"plan attached to {a.well}: {r_['stations']} stations, {r_['md_range_m'][0]:,.1f} to {r_['md_range_m'][1]:,.1f} m MD ({r_['azimuth_reference']} north)")
|
|
2518
|
+
return 0
|
|
2519
|
+
if a.remove:
|
|
2520
|
+
_PL.remove(ws, a.well, a.actor)
|
|
2521
|
+
print(f"plan removed from {a.well}")
|
|
2522
|
+
return 0
|
|
2523
|
+
if a.program or a.bit_offset is not None or a.lookahead is not None:
|
|
2524
|
+
s_ = _PL.set_well(ws, a.actor, a.well, _PL.parse_program(a.program) if a.program else None, a.bit_offset, a.lookahead, a.source)
|
|
2525
|
+
print(f"{a.well}: " + ", ".join(f"{p_['model']} to {p_['to_md_m']:,.0f} m" if p_['to_md_m'] is not None else f"{p_['model']} to TD" for p_ in s_['program'])
|
|
2526
|
+
+ f"; the bit {s_['bit_offset_m']:g} m below the survey sensor; back to the plan {s_['lookahead_m']:g} m ahead")
|
|
2527
|
+
return 0
|
|
2528
|
+
if a.write:
|
|
2529
|
+
r_ = _PL.write_report(ws, __version__, a.well, a.actor)
|
|
2530
|
+
print(f"wrote {r_['report_id']}: {r_['paths']['html']}")
|
|
2531
|
+
if r_['paths'].get('pdf'):
|
|
2532
|
+
print(f" printable: {r_['paths']['pdf']}")
|
|
2533
|
+
return 0
|
|
2534
|
+
r = _PL.page(ws, a.well)
|
|
2535
|
+
except (KeyError, ValueError, OSError, WorkspaceError) as e:
|
|
2536
|
+
raise SystemExit(f"plan: {e.args[0] if e.args else e}")
|
|
2537
|
+
print(_json.dumps(r, default=str) if a.json else _PL.text(r))
|
|
2538
|
+
return 0
|
|
2425
2539
|
elif a.cmd == "rig-time":
|
|
2426
2540
|
import json as _json
|
|
2427
2541
|
from . import rig_state as _RS
|