gea-program 0.48.0__tar.gz → 0.50.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.48.0 → gea_program-0.50.0}/PKG-INFO +32 -1
- {gea_program-0.48.0 → gea_program-0.50.0}/README.md +31 -0
- {gea_program-0.48.0 → gea_program-0.50.0}/gea/__init__.py +1 -1
- {gea_program-0.48.0 → gea_program-0.50.0}/gea/__main__.py +111 -0
- {gea_program-0.48.0 → gea_program-0.50.0}/gea/acceptance_tests.py +434 -0
- gea_program-0.50.0/gea/collision.py +392 -0
- {gea_program-0.48.0 → gea_program-0.50.0}/gea/dossier.py +22 -3
- gea_program-0.50.0/gea/geomag.py +122 -0
- gea_program-0.50.0/gea/help/collision.md +19 -0
- gea_program-0.50.0/gea/help/plan.md +19 -0
- {gea_program-0.48.0 → gea_program-0.50.0}/gea/helplib.py +3 -1
- gea_program-0.50.0/gea/reference/WMM2025.COF +93 -0
- gea_program-0.50.0/gea/reference/iscwsa_rev4_example.json +1751 -0
- gea_program-0.50.0/gea/reference/iscwsa_rev5_example.json +2015 -0
- gea_program-0.50.0/gea/reference/owsg_tool_models.json +4611 -0
- {gea_program-0.48.0 → gea_program-0.50.0}/gea/service.py +42 -0
- {gea_program-0.48.0 → gea_program-0.50.0}/gea/web/app.html +152 -1
- {gea_program-0.48.0 → gea_program-0.50.0}/gea/well3d.py +50 -18
- gea_program-0.50.0/gea/wellplan.py +388 -0
- gea_program-0.50.0/gea/wellpos.py +450 -0
- {gea_program-0.48.0 → gea_program-0.50.0}/gea_program.egg-info/PKG-INFO +32 -1
- {gea_program-0.48.0 → gea_program-0.50.0}/gea_program.egg-info/SOURCES.txt +10 -0
- {gea_program-0.48.0 → gea_program-0.50.0}/pyproject.toml +1 -1
- {gea_program-0.48.0 → gea_program-0.50.0}/LICENSE +0 -0
- {gea_program-0.48.0 → gea_program-0.50.0}/gea/BENCH_TEST_PROTOCOL.md +0 -0
- {gea_program-0.48.0 → gea_program-0.50.0}/gea/accuracy_statement.py +0 -0
- {gea_program-0.48.0 → gea_program-0.50.0}/gea/alarm_engine.py +0 -0
- {gea_program-0.48.0 → gea_program-0.50.0}/gea/alerts.py +0 -0
- {gea_program-0.48.0 → gea_program-0.50.0}/gea/backup.py +0 -0
- {gea_program-0.48.0 → gea_program-0.50.0}/gea/bench.py +0 -0
- {gea_program-0.48.0 → gea_program-0.50.0}/gea/blind_harness.py +0 -0
- {gea_program-0.48.0 → gea_program-0.50.0}/gea/catalog/acex_lomonosov_age_depth_model.provenance.json +0 -0
- {gea_program-0.48.0 → gea_program-0.50.0}/gea/catalog/acex_lomonosov_age_depth_model.txt +0 -0
- {gea_program-0.48.0 → gea_program-0.50.0}/gea/catalog/agassiz77_canada_temperature.csv +0 -0
- {gea_program-0.48.0 → gea_program-0.50.0}/gea/catalog/agassiz77_canada_temperature.provenance.json +0 -0
- {gea_program-0.48.0 → gea_program-0.50.0}/gea/catalog/barbados_110_consolidation.provenance.json +0 -0
- {gea_program-0.48.0 → gea_program-0.50.0}/gea/catalog/barbados_110_consolidation.txt +0 -0
- {gea_program-0.48.0 → gea_program-0.50.0}/gea/catalog/bengal_u1452_grain_size.provenance.json +0 -0
- {gea_program-0.48.0 → gea_program-0.50.0}/gea/catalog/bengal_u1452_grain_size.txt +0 -0
- {gea_program-0.48.0 → gea_program-0.50.0}/gea/catalog/blake_164_methane_isotopes.provenance.json +0 -0
- {gea_program-0.48.0 → gea_program-0.50.0}/gea/catalog/blake_164_methane_isotopes.txt +0 -0
- {gea_program-0.48.0 → gea_program-0.50.0}/gea/catalog/chicxulub_m0077a_pwave_velocity.provenance.json +0 -0
- {gea_program-0.48.0 → gea_program-0.50.0}/gea/catalog/chicxulub_m0077a_pwave_velocity.txt +0 -0
- {gea_program-0.48.0 → gea_program-0.50.0}/gea/catalog/collingwood_1_28_ks_complete.las +0 -0
- {gea_program-0.48.0 → gea_program-0.50.0}/gea/catalog/collingwood_1_28_ks_complete.provenance.json +0 -0
- {gea_program-0.48.0 → gea_program-0.50.0}/gea/catalog/costa_rica_odp_friction_envelope.provenance.json +0 -0
- {gea_program-0.48.0 → gea_program-0.50.0}/gea/catalog/costa_rica_odp_friction_envelope.txt +0 -0
- {gea_program-0.48.0 → gea_program-0.50.0}/gea/catalog/dead_sea_5017_debrite_xrf_ms.provenance.json +0 -0
- {gea_program-0.48.0 → gea_program-0.50.0}/gea/catalog/dead_sea_5017_debrite_xrf_ms.txt +0 -0
- {gea_program-0.48.0 → gea_program-0.50.0}/gea/catalog/dsdp_504b_physical_properties.provenance.json +0 -0
- {gea_program-0.48.0 → gea_program-0.50.0}/gea/catalog/dsdp_504b_physical_properties.txt +0 -0
- {gea_program-0.48.0 → gea_program-0.50.0}/gea/catalog/dsdp_504b_sound_velocity.provenance.json +0 -0
- {gea_program-0.48.0 → gea_program-0.50.0}/gea/catalog/dsdp_504b_sound_velocity.txt +0 -0
- {gea_program-0.48.0 → gea_program-0.50.0}/gea/catalog/elgygytgyn_5011_turbidites.provenance.json +0 -0
- {gea_program-0.48.0 → gea_program-0.50.0}/gea/catalog/elgygytgyn_5011_turbidites.txt +0 -0
- {gea_program-0.48.0 → gea_program-0.50.0}/gea/catalog/epica_domec_co2_800kyr.provenance.json +0 -0
- {gea_program-0.48.0 → gea_program-0.50.0}/gea/catalog/epica_domec_co2_800kyr.txt +0 -0
- {gea_program-0.48.0 → gea_program-0.50.0}/gea/catalog/fram_909_organic_petrography.provenance.json +0 -0
- {gea_program-0.48.0 → gea_program-0.50.0}/gea/catalog/fram_909_organic_petrography.txt +0 -0
- {gea_program-0.48.0 → gea_program-0.50.0}/gea/catalog/gbr_325_coral_uth_ages.provenance.json +0 -0
- {gea_program-0.48.0 → gea_program-0.50.0}/gea/catalog/gbr_325_coral_uth_ages.txt +0 -0
- {gea_program-0.48.0 → gea_program-0.50.0}/gea/catalog/gisp2_greenland_temperature.csv +0 -0
- {gea_program-0.48.0 → gea_program-0.50.0}/gea/catalog/gisp2_greenland_temperature.provenance.json +0 -0
- {gea_program-0.48.0 → gea_program-0.50.0}/gea/catalog/gom_308_t2p_insitu.provenance.json +0 -0
- {gea_program-0.48.0 → gea_program-0.50.0}/gea/catalog/gom_308_t2p_insitu.txt +0 -0
- {gea_program-0.48.0 → gea_program-0.50.0}/gea/catalog/guaymas_385_dom_d13c.provenance.json +0 -0
- {gea_program-0.48.0 → gea_program-0.50.0}/gea/catalog/guaymas_385_dom_d13c.txt +0 -0
- {gea_program-0.48.0 → gea_program-0.50.0}/gea/catalog/hikurangi_u1520_friction_insitu.provenance.json +0 -0
- {gea_program-0.48.0 → gea_program-0.50.0}/gea/catalog/hikurangi_u1520_friction_insitu.txt +0 -0
- {gea_program-0.48.0 → gea_program-0.50.0}/gea/catalog/hydrate_ridge_204_ncr_hydrate.provenance.json +0 -0
- {gea_program-0.48.0 → gea_program-0.50.0}/gea/catalog/hydrate_ridge_204_ncr_hydrate.txt +0 -0
- {gea_program-0.48.0 → gea_program-0.50.0}/gea/catalog/iodp_u1324_pore_pressure.provenance.json +0 -0
- {gea_program-0.48.0 → gea_program-0.50.0}/gea/catalog/iodp_u1324_pore_pressure.txt +0 -0
- {gea_program-0.48.0 → gea_program-0.50.0}/gea/catalog/jfast_c0019_slow_slip_events.provenance.json +0 -0
- {gea_program-0.48.0 → gea_program-0.50.0}/gea/catalog/jfast_c0019_slow_slip_events.txt +0 -0
- {gea_program-0.48.0 → gea_program-0.50.0}/gea/catalog/kennetcook_2_p129_excerpt.las +0 -0
- {gea_program-0.48.0 → gea_program-0.50.0}/gea/catalog/kennetcook_2_p129_excerpt.provenance.json +0 -0
- {gea_program-0.48.0 → gea_program-0.50.0}/gea/catalog/ktb_hb_bhgm_density.dat +0 -0
- {gea_program-0.48.0 → gea_program-0.50.0}/gea/catalog/ktb_hb_bhgm_density.provenance.json +0 -0
- {gea_program-0.48.0 → gea_program-0.50.0}/gea/catalog/ktb_hb_complog_6020_excerpt.provenance.json +0 -0
- {gea_program-0.48.0 → gea_program-0.50.0}/gea/catalog/ktb_hb_complog_6020_excerpt.txt +0 -0
- {gea_program-0.48.0 → gea_program-0.50.0}/gea/catalog/ktb_hb_hlog246_temperature.dat +0 -0
- {gea_program-0.48.0 → gea_program-0.50.0}/gea/catalog/ktb_hb_hlog246_temperature.provenance.json +0 -0
- {gea_program-0.48.0 → gea_program-0.50.0}/gea/catalog/ktb_hb_rockmech_compress.dat +0 -0
- {gea_program-0.48.0 → gea_program-0.50.0}/gea/catalog/ktb_hb_rockmech_compress.provenance.json +0 -0
- {gea_program-0.48.0 → gea_program-0.50.0}/gea/catalog/ktb_hb_tvd_0_9080_excerpt.dat +0 -0
- {gea_program-0.48.0 → gea_program-0.50.0}/gea/catalog/ktb_hb_tvd_0_9080_excerpt.provenance.json +0 -0
- {gea_program-0.48.0 → gea_program-0.50.0}/gea/catalog/ktb_vb_rockmech_compress.dat +0 -0
- {gea_program-0.48.0 → gea_program-0.50.0}/gea/catalog/ktb_vb_rockmech_compress.provenance.json +0 -0
- {gea_program-0.48.0 → gea_program-0.50.0}/gea/catalog/ktb_vb_vlog251_temperature.dat +0 -0
- {gea_program-0.48.0 → gea_program-0.50.0}/gea/catalog/ktb_vb_vlog251_temperature.provenance.json +0 -0
- {gea_program-0.48.0 → gea_program-0.50.0}/gea/catalog/l06_06_nl_survey.csv +0 -0
- {gea_program-0.48.0 → gea_program-0.50.0}/gea/catalog/l06_06_nl_survey.provenance.json +0 -0
- {gea_program-0.48.0 → gea_program-0.50.0}/gea/catalog/l07_01_nl_excerpt.las +0 -0
- {gea_program-0.48.0 → gea_program-0.50.0}/gea/catalog/l07_01_nl_excerpt.provenance.json +0 -0
- {gea_program-0.48.0 → gea_program-0.50.0}/gea/catalog/mariana_1200_serpentinite_geochem.provenance.json +0 -0
- {gea_program-0.48.0 → gea_program-0.50.0}/gea/catalog/mariana_1200_serpentinite_geochem.txt +0 -0
- {gea_program-0.48.0 → gea_program-0.50.0}/gea/catalog/med_160_sapropels.provenance.json +0 -0
- {gea_program-0.48.0 → gea_program-0.50.0}/gea/catalog/med_160_sapropels.txt +0 -0
- {gea_program-0.48.0 → gea_program-0.50.0}/gea/catalog/nankai_megasplay_shear_strength.provenance.json +0 -0
- {gea_program-0.48.0 → gea_program-0.50.0}/gea/catalog/nankai_megasplay_shear_strength.txt +0 -0
- {gea_program-0.48.0 → gea_program-0.50.0}/gea/catalog/odp_1027b_thermal_conductivity.provenance.json +0 -0
- {gea_program-0.48.0 → gea_program-0.50.0}/gea/catalog/odp_1027b_thermal_conductivity.txt +0 -0
- {gea_program-0.48.0 → gea_program-0.50.0}/gea/catalog/odp_1027c_cork_temperature.provenance.json +0 -0
- {gea_program-0.48.0 → gea_program-0.50.0}/gea/catalog/odp_1027c_cork_temperature.txt +0 -0
- {gea_program-0.48.0 → gea_program-0.50.0}/gea/catalog/odp_1165b_thermal_conductivity.provenance.json +0 -0
- {gea_program-0.48.0 → gea_program-0.50.0}/gea/catalog/odp_1165b_thermal_conductivity.txt +0 -0
- {gea_program-0.48.0 → gea_program-0.50.0}/gea/catalog/odp_1274a_mantle_peridotite_mad.provenance.json +0 -0
- {gea_program-0.48.0 → gea_program-0.50.0}/gea/catalog/odp_1274a_mantle_peridotite_mad.txt +0 -0
- {gea_program-0.48.0 → gea_program-0.50.0}/gea/catalog/odp_504b_dike_elastic_moduli.provenance.json +0 -0
- {gea_program-0.48.0 → gea_program-0.50.0}/gea/catalog/odp_504b_dike_elastic_moduli.txt +0 -0
- {gea_program-0.48.0 → gea_program-0.50.0}/gea/catalog/odp_504b_leg137_borehole_fluids.provenance.json +0 -0
- {gea_program-0.48.0 → gea_program-0.50.0}/gea/catalog/odp_504b_leg137_borehole_fluids.txt +0 -0
- {gea_program-0.48.0 → gea_program-0.50.0}/gea/catalog/odp_735b_gabbro_elastic_moduli.provenance.json +0 -0
- {gea_program-0.48.0 → gea_program-0.50.0}/gea/catalog/odp_735b_gabbro_elastic_moduli.txt +0 -0
- {gea_program-0.48.0 → gea_program-0.50.0}/gea/catalog/peru_201_sulfate_reduction.provenance.json +0 -0
- {gea_program-0.48.0 → gea_program-0.50.0}/gea/catalog/peru_201_sulfate_reduction.txt +0 -0
- {gea_program-0.48.0 → gea_program-0.50.0}/gea/catalog/scorpio_e1_sa_excerpt.las +0 -0
- {gea_program-0.48.0 → gea_program-0.50.0}/gea/catalog/scorpio_e1_sa_excerpt.provenance.json +0 -0
- {gea_program-0.48.0 → gea_program-0.50.0}/gea/catalog/sumatra_362_cohesion.provenance.json +0 -0
- {gea_program-0.48.0 → gea_program-0.50.0}/gea/catalog/sumatra_362_cohesion.txt +0 -0
- {gea_program-0.48.0 → gea_program-0.50.0}/gea/catalog/university_6_17_no1_tx_excerpt.las +0 -0
- {gea_program-0.48.0 → gea_program-0.50.0}/gea/catalog/university_6_17_no1_tx_excerpt.provenance.json +0 -0
- {gea_program-0.48.0 → gea_program-0.50.0}/gea/catalog/ursa_308_xrd_mineralogy.provenance.json +0 -0
- {gea_program-0.48.0 → gea_program-0.50.0}/gea/catalog/ursa_308_xrd_mineralogy.txt +0 -0
- {gea_program-0.48.0 → gea_program-0.50.0}/gea/catalog/volve_15_9_19_sr_excerpt.las +0 -0
- {gea_program-0.48.0 → gea_program-0.50.0}/gea/catalog/volve_15_9_19_sr_excerpt.provenance.json +0 -0
- {gea_program-0.48.0 → gea_program-0.50.0}/gea/catalog/volve_15_9_19a_core_excerpt.csv +0 -0
- {gea_program-0.48.0 → gea_program-0.50.0}/gea/catalog/volve_15_9_19a_core_excerpt.provenance.json +0 -0
- {gea_program-0.48.0 → gea_program-0.50.0}/gea/catalog/volve_f12_f14_production_excerpt.csv +0 -0
- {gea_program-0.48.0 → gea_program-0.50.0}/gea/catalog/volve_f12_f14_production_excerpt.provenance.json +0 -0
- {gea_program-0.48.0 → gea_program-0.50.0}/gea/catalog/walvis_208_petm_carbonate.provenance.json +0 -0
- {gea_program-0.48.0 → gea_program-0.50.0}/gea/catalog/walvis_208_petm_carbonate.txt +0 -0
- {gea_program-0.48.0 → gea_program-0.50.0}/gea/catalog/woodlark_1109_rock_eval.provenance.json +0 -0
- {gea_program-0.48.0 → gea_program-0.50.0}/gea/catalog/woodlark_1109_rock_eval.txt +0 -0
- {gea_program-0.48.0 → gea_program-0.50.0}/gea/catalog_map.py +0 -0
- {gea_program-0.48.0 → gea_program-0.50.0}/gea/catalog_register.py +0 -0
- {gea_program-0.48.0 → gea_program-0.50.0}/gea/certificates.py +0 -0
- {gea_program-0.48.0 → gea_program-0.50.0}/gea/cli.py +0 -0
- {gea_program-0.48.0 → gea_program-0.50.0}/gea/client_reports.py +0 -0
- {gea_program-0.48.0 → gea_program-0.50.0}/gea/config_versioning.py +0 -0
- {gea_program-0.48.0 → gea_program-0.50.0}/gea/conformance.py +0 -0
- {gea_program-0.48.0 → gea_program-0.50.0}/gea/control_room.py +0 -0
- {gea_program-0.48.0 → gea_program-0.50.0}/gea/correlation.py +0 -0
- {gea_program-0.48.0 → gea_program-0.50.0}/gea/dashboard.py +0 -0
- {gea_program-0.48.0 → gea_program-0.50.0}/gea/declarations.py +0 -0
- {gea_program-0.48.0 → gea_program-0.50.0}/gea/deviation.py +0 -0
- {gea_program-0.48.0 → gea_program-0.50.0}/gea/dlis.py +0 -0
- {gea_program-0.48.0 → gea_program-0.50.0}/gea/dnp3.py +0 -0
- {gea_program-0.48.0 → gea_program-0.50.0}/gea/doctor.py +0 -0
- {gea_program-0.48.0 → gea_program-0.50.0}/gea/dossier_verify.py +0 -0
- {gea_program-0.48.0 → gea_program-0.50.0}/gea/downhole_engine.py +0 -0
- {gea_program-0.48.0 → gea_program-0.50.0}/gea/drift_monitor.py +0 -0
- {gea_program-0.48.0 → gea_program-0.50.0}/gea/drill_string.py +0 -0
- {gea_program-0.48.0 → gea_program-0.50.0}/gea/earth_model.py +0 -0
- {gea_program-0.48.0 → gea_program-0.50.0}/gea/economics.py +0 -0
- {gea_program-0.48.0 → gea_program-0.50.0}/gea/ed25519.py +0 -0
- {gea_program-0.48.0 → gea_program-0.50.0}/gea/edr.py +0 -0
- {gea_program-0.48.0 → gea_program-0.50.0}/gea/elevation.py +0 -0
- {gea_program-0.48.0 → gea_program-0.50.0}/gea/etp.py +0 -0
- {gea_program-0.48.0 → gea_program-0.50.0}/gea/etp12_schemas.json +0 -0
- {gea_program-0.48.0 → gea_program-0.50.0}/gea/example_register_map.json +0 -0
- {gea_program-0.48.0 → gea_program-0.50.0}/gea/fat_sat.py +0 -0
- {gea_program-0.48.0 → gea_program-0.50.0}/gea/files.py +0 -0
- {gea_program-0.48.0 → gea_program-0.50.0}/gea/fixtures/README.md +0 -0
- {gea_program-0.48.0 → gea_program-0.50.0}/gea/fixtures/comcat_delaware_basin_2026-09.txt +0 -0
- {gea_program-0.48.0 → gea_program-0.50.0}/gea/fixtures/comcat_mahoning_1990-2026.txt +0 -0
- {gea_program-0.48.0 → gea_program-0.50.0}/gea/fixtures/comcat_youngstown_2011-2012.txt +0 -0
- {gea_program-0.48.0 → gea_program-0.50.0}/gea/fixtures/ne_110m_coastline.json +0 -0
- {gea_program-0.48.0 → gea_program-0.50.0}/gea/follower.py +0 -0
- {gea_program-0.48.0 → gea_program-0.50.0}/gea/forward_model.py +0 -0
- {gea_program-0.48.0 → gea_program-0.50.0}/gea/friction_priors.py +0 -0
- {gea_program-0.48.0 → gea_program-0.50.0}/gea/gamma.py +0 -0
- {gea_program-0.48.0 → gea_program-0.50.0}/gea/gauge_aging.py +0 -0
- {gea_program-0.48.0 → gea_program-0.50.0}/gea/gauge_specs.py +0 -0
- {gea_program-0.48.0 → gea_program-0.50.0}/gea/geodesy.py +0 -0
- {gea_program-0.48.0 → gea_program-0.50.0}/gea/gravity_reference.py +0 -0
- {gea_program-0.48.0 → gea_program-0.50.0}/gea/hartip.py +0 -0
- {gea_program-0.48.0 → gea_program-0.50.0}/gea/help/TESTER_GUIDE.md +0 -0
- {gea_program-0.48.0 → gea_program-0.50.0}/gea/help/alarms.md +0 -0
- {gea_program-0.48.0 → gea_program-0.50.0}/gea/help/alerts.md +0 -0
- {gea_program-0.48.0 → gea_program-0.50.0}/gea/help/audit-update.md +0 -0
- {gea_program-0.48.0 → gea_program-0.50.0}/gea/help/backup.md +0 -0
- {gea_program-0.48.0 → gea_program-0.50.0}/gea/help/catalog.md +0 -0
- {gea_program-0.48.0 → gea_program-0.50.0}/gea/help/charts.md +0 -0
- {gea_program-0.48.0 → gea_program-0.50.0}/gea/help/conformance.md +0 -0
- {gea_program-0.48.0 → gea_program-0.50.0}/gea/help/control-room.md +0 -0
- {gea_program-0.48.0 → gea_program-0.50.0}/gea/help/data-in.md +0 -0
- {gea_program-0.48.0 → gea_program-0.50.0}/gea/help/declare.md +0 -0
- {gea_program-0.48.0 → gea_program-0.50.0}/gea/help/dlis.md +0 -0
- {gea_program-0.48.0 → gea_program-0.50.0}/gea/help/doctor.md +0 -0
- {gea_program-0.48.0 → gea_program-0.50.0}/gea/help/dossier.md +0 -0
- {gea_program-0.48.0 → gea_program-0.50.0}/gea/help/drift.md +0 -0
- {gea_program-0.48.0 → gea_program-0.50.0}/gea/help/drillstring.md +0 -0
- {gea_program-0.48.0 → gea_program-0.50.0}/gea/help/economics.md +0 -0
- {gea_program-0.48.0 → gea_program-0.50.0}/gea/help/edr.md +0 -0
- {gea_program-0.48.0 → gea_program-0.50.0}/gea/help/etp.md +0 -0
- {gea_program-0.48.0 → gea_program-0.50.0}/gea/help/field-ports.md +0 -0
- {gea_program-0.48.0 → gea_program-0.50.0}/gea/help/files.md +0 -0
- {gea_program-0.48.0 → gea_program-0.50.0}/gea/help/historian.md +0 -0
- {gea_program-0.48.0 → gea_program-0.50.0}/gea/help/instruments.md +0 -0
- {gea_program-0.48.0 → gea_program-0.50.0}/gea/help/interval.md +0 -0
- {gea_program-0.48.0 → gea_program-0.50.0}/gea/help/invoice-check.md +0 -0
- {gea_program-0.48.0 → gea_program-0.50.0}/gea/help/map.md +0 -0
- {gea_program-0.48.0 → gea_program-0.50.0}/gea/help/month-end.md +0 -0
- {gea_program-0.48.0 → gea_program-0.50.0}/gea/help/notifications.md +0 -0
- {gea_program-0.48.0 → gea_program-0.50.0}/gea/help/opseis.md +0 -0
- {gea_program-0.48.0 → gea_program-0.50.0}/gea/help/osdu.md +0 -0
- {gea_program-0.48.0 → gea_program-0.50.0}/gea/help/pad-summary.md +0 -0
- {gea_program-0.48.0 → gea_program-0.50.0}/gea/help/patches.md +0 -0
- {gea_program-0.48.0 → gea_program-0.50.0}/gea/help/penetrator.md +0 -0
- {gea_program-0.48.0 → gea_program-0.50.0}/gea/help/ppdm.md +0 -0
- {gea_program-0.48.0 → gea_program-0.50.0}/gea/help/quakeml.md +0 -0
- {gea_program-0.48.0 → gea_program-0.50.0}/gea/help/quality.md +0 -0
- {gea_program-0.48.0 → gea_program-0.50.0}/gea/help/report-history.md +0 -0
- {gea_program-0.48.0 → gea_program-0.50.0}/gea/help/rig-time.md +0 -0
- {gea_program-0.48.0 → gea_program-0.50.0}/gea/help/seedlink.md +0 -0
- {gea_program-0.48.0 → gea_program-0.50.0}/gea/help/seismic.md +0 -0
- {gea_program-0.48.0 → gea_program-0.50.0}/gea/help/setup.md +0 -0
- {gea_program-0.48.0 → gea_program-0.50.0}/gea/help/simulation.md +0 -0
- {gea_program-0.48.0 → gea_program-0.50.0}/gea/help/site.md +0 -0
- {gea_program-0.48.0 → gea_program-0.50.0}/gea/help/sites.md +0 -0
- {gea_program-0.48.0 → gea_program-0.50.0}/gea/help/slip.md +0 -0
- {gea_program-0.48.0 → gea_program-0.50.0}/gea/help/soak.md +0 -0
- {gea_program-0.48.0 → gea_program-0.50.0}/gea/help/sra.md +0 -0
- {gea_program-0.48.0 → gea_program-0.50.0}/gea/help/start.md +0 -0
- {gea_program-0.48.0 → gea_program-0.50.0}/gea/help/structure.md +0 -0
- {gea_program-0.48.0 → gea_program-0.50.0}/gea/help/tools.md +0 -0
- {gea_program-0.48.0 → gea_program-0.50.0}/gea/help/transients.md +0 -0
- {gea_program-0.48.0 → gea_program-0.50.0}/gea/help/upkeep.md +0 -0
- {gea_program-0.48.0 → gea_program-0.50.0}/gea/help/vibration.md +0 -0
- {gea_program-0.48.0 → gea_program-0.50.0}/gea/help/well-report.md +0 -0
- {gea_program-0.48.0 → gea_program-0.50.0}/gea/help/well-tests.md +0 -0
- {gea_program-0.48.0 → gea_program-0.50.0}/gea/help/well3d.md +0 -0
- {gea_program-0.48.0 → gea_program-0.50.0}/gea/housekeeping.py +0 -0
- {gea_program-0.48.0 → gea_program-0.50.0}/gea/interval.py +0 -0
- {gea_program-0.48.0 → gea_program-0.50.0}/gea/inverse_engine.py +0 -0
- {gea_program-0.48.0 → gea_program-0.50.0}/gea/invoice_check.py +0 -0
- {gea_program-0.48.0 → gea_program-0.50.0}/gea/jobs.py +0 -0
- {gea_program-0.48.0 → gea_program-0.50.0}/gea/live_ports.py +0 -0
- {gea_program-0.48.0 → gea_program-0.50.0}/gea/loadtest.py +0 -0
- {gea_program-0.48.0 → gea_program-0.50.0}/gea/matplotlib_demo.py +0 -0
- {gea_program-0.48.0 → gea_program-0.50.0}/gea/modbus.py +0 -0
- {gea_program-0.48.0 → gea_program-0.50.0}/gea/modbus_rtu.py +0 -0
- {gea_program-0.48.0 → gea_program-0.50.0}/gea/model_card.py +0 -0
- {gea_program-0.48.0 → gea_program-0.50.0}/gea/month_end.py +0 -0
- {gea_program-0.48.0 → gea_program-0.50.0}/gea/mqtt_port.py +0 -0
- {gea_program-0.48.0 → gea_program-0.50.0}/gea/notify.py +0 -0
- {gea_program-0.48.0 → gea_program-0.50.0}/gea/op_seismicity.py +0 -0
- {gea_program-0.48.0 → gea_program-0.50.0}/gea/opcua_port.py +0 -0
- {gea_program-0.48.0 → gea_program-0.50.0}/gea/operator_app.py +0 -0
- {gea_program-0.48.0 → gea_program-0.50.0}/gea/osdu.py +0 -0
- {gea_program-0.48.0 → gea_program-0.50.0}/gea/pad_summary.py +0 -0
- {gea_program-0.48.0 → gea_program-0.50.0}/gea/patches.py +0 -0
- {gea_program-0.48.0 → gea_program-0.50.0}/gea/pdf_report.py +0 -0
- {gea_program-0.48.0 → gea_program-0.50.0}/gea/penetrator.py +0 -0
- {gea_program-0.48.0 → gea_program-0.50.0}/gea/permits.py +0 -0
- {gea_program-0.48.0 → gea_program-0.50.0}/gea/piwebapi.py +0 -0
- {gea_program-0.48.0 → gea_program-0.50.0}/gea/ports.py +0 -0
- {gea_program-0.48.0 → gea_program-0.50.0}/gea/ppdm.py +0 -0
- {gea_program-0.48.0 → gea_program-0.50.0}/gea/profile_catalog.py +0 -0
- {gea_program-0.48.0 → gea_program-0.50.0}/gea/project.py +0 -0
- {gea_program-0.48.0 → gea_program-0.50.0}/gea/qt6_downhole_app.py +0 -0
- {gea_program-0.48.0 → gea_program-0.50.0}/gea/quakeml.py +0 -0
- {gea_program-0.48.0 → gea_program-0.50.0}/gea/reconciler.py +0 -0
- {gea_program-0.48.0 → gea_program-0.50.0}/gea/reference/IU_ANMO_10_BHZ_response.provenance.json +0 -0
- {gea_program-0.48.0 → gea_program-0.50.0}/gea/reference/IU_ANMO_10_BHZ_response.xml +0 -0
- {gea_program-0.48.0 → gea_program-0.50.0}/gea/reference/eia_henry_hub_daily.csv.gz +0 -0
- {gea_program-0.48.0 → gea_program-0.50.0}/gea/reference/eia_prices.provenance.json +0 -0
- {gea_program-0.48.0 → gea_program-0.50.0}/gea/reference/eia_wti_daily.csv.gz +0 -0
- {gea_program-0.48.0 → gea_program-0.50.0}/gea/reference/libmseed_steim.provenance.json +0 -0
- {gea_program-0.48.0 → gea_program-0.50.0}/gea/reference/libmseed_steim1_4096.mseed +0 -0
- {gea_program-0.48.0 → gea_program-0.50.0}/gea/reference/libmseed_steim2_4096.mseed +0 -0
- {gea_program-0.48.0 → gea_program-0.50.0}/gea/reference/libmseed_steim2_512.mseed +0 -0
- {gea_program-0.48.0 → gea_program-0.50.0}/gea/reference/mahoning_example.json +0 -0
- {gea_program-0.48.0 → gea_program-0.50.0}/gea/reference/mud_motor_specs.json +0 -0
- {gea_program-0.48.0 → gea_program-0.50.0}/gea/reference/penetrator_ratings.json +0 -0
- {gea_program-0.48.0 → gea_program-0.50.0}/gea/reference/seismicity_protocols.json +0 -0
- {gea_program-0.48.0 → gea_program-0.50.0}/gea/reference/tool_sources.json +0 -0
- {gea_program-0.48.0 → gea_program-0.50.0}/gea/reference/us_outline.json +0 -0
- {gea_program-0.48.0 → gea_program-0.50.0}/gea/reference/us_outline.provenance.json +0 -0
- {gea_program-0.48.0 → gea_program-0.50.0}/gea/reference/volve_3d.provenance.json +0 -0
- {gea_program-0.48.0 → gea_program-0.50.0}/gea/reference/volve_f4_interpretation.las.gz +0 -0
- {gea_program-0.48.0 → gea_program-0.50.0}/gea/reference/volve_f4_logs.provenance.json +0 -0
- {gea_program-0.48.0 → gea_program-0.50.0}/gea/reference/volve_f4_lwd.las.gz +0 -0
- {gea_program-0.48.0 → gea_program-0.50.0}/gea/reference/volve_surfaces.json.gz +0 -0
- {gea_program-0.48.0 → gea_program-0.50.0}/gea/reference/volve_traj_F-10.xml.gz +0 -0
- {gea_program-0.48.0 → gea_program-0.50.0}/gea/reference/volve_traj_F-4.xml.gz +0 -0
- {gea_program-0.48.0 → gea_program-0.50.0}/gea/reference/volve_traj_F-5_12.25in.xml.gz +0 -0
- {gea_program-0.48.0 → gea_program-0.50.0}/gea/reference/volve_traj_F-5_17.5in.xml.gz +0 -0
- {gea_program-0.48.0 → gea_program-0.50.0}/gea/reference/volve_traj_F-5_36in.xml.gz +0 -0
- {gea_program-0.48.0 → gea_program-0.50.0}/gea/reference/volve_traj_F-5_8.5in.xml.gz +0 -0
- {gea_program-0.48.0 → gea_program-0.50.0}/gea/reference/volve_well_picks.csv.gz +0 -0
- {gea_program-0.48.0 → gea_program-0.50.0}/gea/report_history.py +0 -0
- {gea_program-0.48.0 → gea_program-0.50.0}/gea/rig_state.py +0 -0
- {gea_program-0.48.0 → gea_program-0.50.0}/gea/rock_inventory.py +0 -0
- {gea_program-0.48.0 → gea_program-0.50.0}/gea/sample_record.py +0 -0
- {gea_program-0.48.0 → gea_program-0.50.0}/gea/sample_well_profile.csv +0 -0
- {gea_program-0.48.0 → gea_program-0.50.0}/gea/sbom.py +0 -0
- {gea_program-0.48.0 → gea_program-0.50.0}/gea/seedlink.py +0 -0
- {gea_program-0.48.0 → gea_program-0.50.0}/gea/segy.py +0 -0
- {gea_program-0.48.0 → gea_program-0.50.0}/gea/seismic.py +0 -0
- {gea_program-0.48.0 → gea_program-0.50.0}/gea/seismic_array.py +0 -0
- {gea_program-0.48.0 → gea_program-0.50.0}/gea/seismic_assoc.py +0 -0
- {gea_program-0.48.0 → gea_program-0.50.0}/gea/seismic_detect.py +0 -0
- {gea_program-0.48.0 → gea_program-0.50.0}/gea/seismic_film.py +0 -0
- {gea_program-0.48.0 → gea_program-0.50.0}/gea/seismic_harmonic.py +0 -0
- {gea_program-0.48.0 → gea_program-0.50.0}/gea/seismic_qc.py +0 -0
- {gea_program-0.48.0 → gea_program-0.50.0}/gea/seismic_response.py +0 -0
- {gea_program-0.48.0 → gea_program-0.50.0}/gea/seismic_signature.py +0 -0
- {gea_program-0.48.0 → gea_program-0.50.0}/gea/seismic_track.py +0 -0
- {gea_program-0.48.0 → gea_program-0.50.0}/gea/seismic_uncertainty.py +0 -0
- {gea_program-0.48.0 → gea_program-0.50.0}/gea/seismic_unlisted.py +0 -0
- {gea_program-0.48.0 → gea_program-0.50.0}/gea/seismic_watch.py +0 -0
- {gea_program-0.48.0 → gea_program-0.50.0}/gea/sensor_swap.py +0 -0
- {gea_program-0.48.0 → gea_program-0.50.0}/gea/series_cache.py +0 -0
- {gea_program-0.48.0 → gea_program-0.50.0}/gea/service_life.py +0 -0
- {gea_program-0.48.0 → gea_program-0.50.0}/gea/setup_checklist.py +0 -0
- {gea_program-0.48.0 → gea_program-0.50.0}/gea/shapefile.py +0 -0
- {gea_program-0.48.0 → gea_program-0.50.0}/gea/shell.py +0 -0
- {gea_program-0.48.0 → gea_program-0.50.0}/gea/shut_in.py +0 -0
- {gea_program-0.48.0 → gea_program-0.50.0}/gea/simulation.py +0 -0
- {gea_program-0.48.0 → gea_program-0.50.0}/gea/site_map.py +0 -0
- {gea_program-0.48.0 → gea_program-0.50.0}/gea/sla_report.py +0 -0
- {gea_program-0.48.0 → gea_program-0.50.0}/gea/slip.py +0 -0
- {gea_program-0.48.0 → gea_program-0.50.0}/gea/soak.py +0 -0
- {gea_program-0.48.0 → gea_program-0.50.0}/gea/sra.py +0 -0
- {gea_program-0.48.0 → gea_program-0.50.0}/gea/store_forward.py +0 -0
- {gea_program-0.48.0 → gea_program-0.50.0}/gea/strata_join.py +0 -0
- {gea_program-0.48.0 → gea_program-0.50.0}/gea/structure.py +0 -0
- {gea_program-0.48.0 → gea_program-0.50.0}/gea/supervisor.py +0 -0
- {gea_program-0.48.0 → gea_program-0.50.0}/gea/survey_cmd.py +0 -0
- {gea_program-0.48.0 → gea_program-0.50.0}/gea/survey_view.py +0 -0
- {gea_program-0.48.0 → gea_program-0.50.0}/gea/telemetry.py +0 -0
- {gea_program-0.48.0 → gea_program-0.50.0}/gea/tool_catalog.py +0 -0
- {gea_program-0.48.0 → gea_program-0.50.0}/gea/tool_library.py +0 -0
- {gea_program-0.48.0 → gea_program-0.50.0}/gea/tool_taxonomy.py +0 -0
- {gea_program-0.48.0 → gea_program-0.50.0}/gea/transient.py +0 -0
- {gea_program-0.48.0 → gea_program-0.50.0}/gea/vibration.py +0 -0
- {gea_program-0.48.0 → gea_program-0.50.0}/gea/well_assembler.py +0 -0
- {gea_program-0.48.0 → gea_program-0.50.0}/gea/well_report.py +0 -0
- {gea_program-0.48.0 → gea_program-0.50.0}/gea/well_test_validation.py +0 -0
- {gea_program-0.48.0 → gea_program-0.50.0}/gea/wits0.py +0 -0
- {gea_program-0.48.0 → gea_program-0.50.0}/gea/witsml.py +0 -0
- {gea_program-0.48.0 → gea_program-0.50.0}/gea/workspace.py +0 -0
- {gea_program-0.48.0 → gea_program-0.50.0}/gea/xlsx_read.py +0 -0
- {gea_program-0.48.0 → gea_program-0.50.0}/gea_program.egg-info/dependency_links.txt +0 -0
- {gea_program-0.48.0 → gea_program-0.50.0}/gea_program.egg-info/entry_points.txt +0 -0
- {gea_program-0.48.0 → gea_program-0.50.0}/gea_program.egg-info/requires.txt +0 -0
- {gea_program-0.48.0 → gea_program-0.50.0}/gea_program.egg-info/top_level.txt +0 -0
- {gea_program-0.48.0 → gea_program-0.50.0}/setup.cfg +0 -0
- {gea_program-0.48.0 → gea_program-0.50.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.50.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,37 @@ 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
|
+
### Plan vs actual and the survey tools
|
|
652
|
+
|
|
653
|
+
Each well against its directional plan: at every survey station, how far
|
|
654
|
+
it is from the plan - high or low, right or left, in the plan's own frame -
|
|
655
|
+
against the survey's own uncertainty in that direction; the bit projected
|
|
656
|
+
below the last survey; the one arc back to the plan, with its dogleg
|
|
657
|
+
severity and toolface. Each well's survey program names the tool that
|
|
658
|
+
surveyed each run, weighed by the ISCWSA MWD Rev 5.11 model (checked
|
|
659
|
+
against all 144 rows of the ISCWSA's own Rev 5 example) or one of 21 OWSG
|
|
660
|
+
tool-code models on its weighting functions - MWD and EMS with the standard,
|
|
661
|
+
high- or low-resolution geomagnetic model or in-field referencing. Wells not
|
|
662
|
+
yet drilled are checked for collision along their plans, a well being
|
|
663
|
+
drilled along its survey and then its plan, and the Collision tab draws the
|
|
664
|
+
travelling cylinder. The **Plan vs actual** tab, `gea plan`, `gea help plan`.
|
|
665
|
+
|
|
666
|
+
### Well collision checks
|
|
667
|
+
|
|
668
|
+
Every well scanned against every other: at each point of one well, the
|
|
669
|
+
closest point of the other, and the ISCWSA separation factor - the distance
|
|
670
|
+
between them less the holes and a surface margin, over k times the
|
|
671
|
+
uncertainty of that distance. Each well's position uncertainty comes from
|
|
672
|
+
the ISCWSA MWD Rev 4 error model (27 error sources, propagated as the model
|
|
673
|
+
says, the errors two wells share taken out of the distance between them),
|
|
674
|
+
checked against all 112 rows of the ISCWSA's own example; the Earth's field
|
|
675
|
+
at each well comes from the World Magnetic Model 2025. Each pair is levelled
|
|
676
|
+
as the ISCWSA's separation rule does - reported below 4.0, the approach
|
|
677
|
+
limit below 1.5, revise the plan below 1.25, below 1.0 only by the
|
|
678
|
+
operator's dispensation - with a company standard's k and margin kept with
|
|
679
|
+
its source. The Volve template's three wells are the worked example. The
|
|
680
|
+
**Collision** tab, `gea collision`, `gea help collision`.
|
|
681
|
+
|
|
651
682
|
### One record, tied together
|
|
652
683
|
|
|
653
684
|
The invoice check, rig time, the daily summary, the alerts, the signed
|
|
@@ -609,6 +609,37 @@ 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
|
+
### Plan vs actual and the survey tools
|
|
613
|
+
|
|
614
|
+
Each well against its directional plan: at every survey station, how far
|
|
615
|
+
it is from the plan - high or low, right or left, in the plan's own frame -
|
|
616
|
+
against the survey's own uncertainty in that direction; the bit projected
|
|
617
|
+
below the last survey; the one arc back to the plan, with its dogleg
|
|
618
|
+
severity and toolface. Each well's survey program names the tool that
|
|
619
|
+
surveyed each run, weighed by the ISCWSA MWD Rev 5.11 model (checked
|
|
620
|
+
against all 144 rows of the ISCWSA's own Rev 5 example) or one of 21 OWSG
|
|
621
|
+
tool-code models on its weighting functions - MWD and EMS with the standard,
|
|
622
|
+
high- or low-resolution geomagnetic model or in-field referencing. Wells not
|
|
623
|
+
yet drilled are checked for collision along their plans, a well being
|
|
624
|
+
drilled along its survey and then its plan, and the Collision tab draws the
|
|
625
|
+
travelling cylinder. The **Plan vs actual** tab, `gea plan`, `gea help plan`.
|
|
626
|
+
|
|
627
|
+
### Well collision checks
|
|
628
|
+
|
|
629
|
+
Every well scanned against every other: at each point of one well, the
|
|
630
|
+
closest point of the other, and the ISCWSA separation factor - the distance
|
|
631
|
+
between them less the holes and a surface margin, over k times the
|
|
632
|
+
uncertainty of that distance. Each well's position uncertainty comes from
|
|
633
|
+
the ISCWSA MWD Rev 4 error model (27 error sources, propagated as the model
|
|
634
|
+
says, the errors two wells share taken out of the distance between them),
|
|
635
|
+
checked against all 112 rows of the ISCWSA's own example; the Earth's field
|
|
636
|
+
at each well comes from the World Magnetic Model 2025. Each pair is levelled
|
|
637
|
+
as the ISCWSA's separation rule does - reported below 4.0, the approach
|
|
638
|
+
limit below 1.5, revise the plan below 1.25, below 1.0 only by the
|
|
639
|
+
operator's dispensation - with a company standard's k and margin kept with
|
|
640
|
+
its source. The Volve template's three wells are the worked example. The
|
|
641
|
+
**Collision** tab, `gea collision`, `gea help collision`.
|
|
642
|
+
|
|
612
643
|
### One record, tied together
|
|
613
644
|
|
|
614
645
|
The invoice check, rig time, the daily summary, the alerts, the signed
|
|
@@ -590,6 +590,38 @@ def main(argv=None) -> int:
|
|
|
590
590
|
p_dz.add_argument("--actor", type=str, default="cli")
|
|
591
591
|
p_dz.add_argument("--json", action="store_true")
|
|
592
592
|
|
|
593
|
+
p_co = sub.add_parser("collision", help="every well scanned against every other: the closest approach and the ISCWSA separation factor, each well's position uncertainty by the ISCWSA MWD model and the field by WMM2025")
|
|
594
|
+
p_co.add_argument("--workspace", type=str, default=None)
|
|
595
|
+
p_co.add_argument("--scene", type=str, default=None, help="workspace (your wells) or volve (the worked example)")
|
|
596
|
+
p_co.add_argument("--write", action="store_true", help="write the client report")
|
|
597
|
+
p_co.add_argument("--k", type=str, default=None, help="declare the rule's scaling factor")
|
|
598
|
+
p_co.add_argument("--surface-margin", type=str, default=None, help="declare the surface margin, m")
|
|
599
|
+
p_co.add_argument("--sigma-pa", type=str, default=None, help="declare the project-ahead uncertainty, m")
|
|
600
|
+
p_co.add_argument("--source", type=str, default="", help="where the rule's values came from")
|
|
601
|
+
p_co.add_argument("--well", type=str, default=None)
|
|
602
|
+
p_co.add_argument("--hole", type=str, default=None, help="with --well: the hole size in inches ('' removes it)")
|
|
603
|
+
p_co.add_argument("--field", type=str, default=None, help="the magnetic field at LAT,LON[,YYYY-MM-DD] by WMM2025, and nothing else")
|
|
604
|
+
p_co.add_argument("--actor", type=str, default="cli")
|
|
605
|
+
p_co.add_argument("--json", action="store_true")
|
|
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
|
+
|
|
593
625
|
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")
|
|
594
626
|
p_rt.add_argument("--workspace", type=str, required=True)
|
|
595
627
|
p_rt.add_argument("--well", type=str, default=None, help="with --write: one well's report (without it, the pad's)")
|
|
@@ -2372,6 +2404,85 @@ def main(argv=None) -> int:
|
|
|
2372
2404
|
print(f" {os.path.join(ws.reports_dir, e['path'])}")
|
|
2373
2405
|
print(f" key fingerprint {e['fingerprint']}")
|
|
2374
2406
|
return 0
|
|
2407
|
+
elif a.cmd == "collision":
|
|
2408
|
+
import json as _json
|
|
2409
|
+
from . import collision as _CO
|
|
2410
|
+
from .cli import _safe_stdout
|
|
2411
|
+
from .workspace import Workspace, WorkspaceError
|
|
2412
|
+
_safe_stdout()
|
|
2413
|
+
try:
|
|
2414
|
+
if a.field:
|
|
2415
|
+
from . import geomag as _GM
|
|
2416
|
+
parts = [x.strip() for x in a.field.split(",")]
|
|
2417
|
+
f_ = _GM.field(float(parts[0]), float(parts[1]), 0.0, parts[2] if len(parts) > 2 else None)
|
|
2418
|
+
print(f"{f_['model']} at {float(parts[0]):.4f}, {float(parts[1]):.4f} for {f_['decimal_year']:.2f}: declination {f_['declination_deg']:+.3f} deg, "
|
|
2419
|
+
f"dip {f_['dip_deg']:.3f} deg, total {f_['total_nT']:,.1f} nT" + (f" ({f_['note']})" if f_['note'] else ""))
|
|
2420
|
+
return 0
|
|
2421
|
+
ws = Workspace(a.workspace) if a.workspace else None
|
|
2422
|
+
if ws is not None and (a.k is not None or a.surface_margin is not None or a.sigma_pa is not None or a.hole is not None):
|
|
2423
|
+
if a.hole is not None and not a.well:
|
|
2424
|
+
raise ValueError("--hole needs --well")
|
|
2425
|
+
s_ = _CO.set_settings(ws, a.actor, a.k, a.surface_margin, a.sigma_pa, (a.well, a.hole) if a.hole is not None else None, a.source)
|
|
2426
|
+
print(f"rule: k {s_['k']:g}, surface margin {s_['surface_margin_m']:g} m, project-ahead {s_['sigma_pa_m']:g} m; holes: "
|
|
2427
|
+
+ (", ".join(f"{k} {v:g} in" for k, v in s_['holes_in'].items()) or "8.5 in by default"))
|
|
2428
|
+
return 0
|
|
2429
|
+
scene = a.scene or ("workspace" if ws is not None else "volve")
|
|
2430
|
+
if a.write:
|
|
2431
|
+
if ws is None:
|
|
2432
|
+
raise ValueError("--write needs --workspace")
|
|
2433
|
+
r_ = _CO.write_report(ws, __version__, a.actor, scene)
|
|
2434
|
+
print(f"wrote {r_['report_id']}: {r_['paths']['html']}")
|
|
2435
|
+
if r_['paths'].get('pdf'):
|
|
2436
|
+
print(f" printable: {r_['paths']['pdf']}")
|
|
2437
|
+
return 0
|
|
2438
|
+
r = _CO.page(ws, scene)
|
|
2439
|
+
except (KeyError, ValueError, OSError, WorkspaceError) as e:
|
|
2440
|
+
raise SystemExit(f"collision: {e.args[0] if e.args else e}")
|
|
2441
|
+
print(_json.dumps({k: v for k, v in r.items()}, default=str) if a.json else _CO.text(r))
|
|
2442
|
+
return 0
|
|
2443
|
+
elif a.cmd == "plan":
|
|
2444
|
+
import json as _json
|
|
2445
|
+
from . import wellplan as _PL
|
|
2446
|
+
from . import wellpos as _WP
|
|
2447
|
+
from .cli import _safe_stdout
|
|
2448
|
+
from .workspace import Workspace, WorkspaceError
|
|
2449
|
+
_safe_stdout()
|
|
2450
|
+
try:
|
|
2451
|
+
if a.models:
|
|
2452
|
+
for m_ in _WP.model_list():
|
|
2453
|
+
print(f"{m_['name']:<18} {m_['id']:<14} {m_['terms']:>2} terms {m_['family']:<10} {m_['long_name']}" + (" (default)" if m_['default'] else ""))
|
|
2454
|
+
return 0
|
|
2455
|
+
if not a.workspace:
|
|
2456
|
+
raise ValueError("--workspace is needed")
|
|
2457
|
+
ws = Workspace(a.workspace)
|
|
2458
|
+
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:
|
|
2459
|
+
raise ValueError("--well is needed")
|
|
2460
|
+
if a.attach:
|
|
2461
|
+
with open(a.attach, "rb") as f_:
|
|
2462
|
+
r_ = _PL.attach(ws, a.well, os.path.basename(a.attach), f_.read(), a.actor, a.azimuth_reference or "", a.md_unit, a.grid,
|
|
2463
|
+
float(a.declination) if a.declination else None, a.source)
|
|
2464
|
+
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)")
|
|
2465
|
+
return 0
|
|
2466
|
+
if a.remove:
|
|
2467
|
+
_PL.remove(ws, a.well, a.actor)
|
|
2468
|
+
print(f"plan removed from {a.well}")
|
|
2469
|
+
return 0
|
|
2470
|
+
if a.program or a.bit_offset is not None or a.lookahead is not None:
|
|
2471
|
+
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)
|
|
2472
|
+
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'])
|
|
2473
|
+
+ f"; the bit {s_['bit_offset_m']:g} m below the survey sensor; back to the plan {s_['lookahead_m']:g} m ahead")
|
|
2474
|
+
return 0
|
|
2475
|
+
if a.write:
|
|
2476
|
+
r_ = _PL.write_report(ws, __version__, a.well, a.actor)
|
|
2477
|
+
print(f"wrote {r_['report_id']}: {r_['paths']['html']}")
|
|
2478
|
+
if r_['paths'].get('pdf'):
|
|
2479
|
+
print(f" printable: {r_['paths']['pdf']}")
|
|
2480
|
+
return 0
|
|
2481
|
+
r = _PL.page(ws, a.well)
|
|
2482
|
+
except (KeyError, ValueError, OSError, WorkspaceError) as e:
|
|
2483
|
+
raise SystemExit(f"plan: {e.args[0] if e.args else e}")
|
|
2484
|
+
print(_json.dumps(r, default=str) if a.json else _PL.text(r))
|
|
2485
|
+
return 0
|
|
2375
2486
|
elif a.cmd == "rig-time":
|
|
2376
2487
|
import json as _json
|
|
2377
2488
|
from . import rig_state as _RS
|