gmprocess 2.2.0__tar.gz → 2.4.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.
- {gmprocess-2.2.0 → gmprocess-2.4.0}/CHANGELOG.md +52 -5
- {gmprocess-2.2.0 → gmprocess-2.4.0}/CONTRIBUTING.md +4 -4
- {gmprocess-2.2.0 → gmprocess-2.4.0}/PKG-INFO +23 -10
- gmprocess-2.4.0/README.md +54 -0
- {gmprocess-2.2.0 → gmprocess-2.4.0}/code.json +82 -0
- {gmprocess-2.2.0 → gmprocess-2.4.0}/setup_env.sh +33 -11
- {gmprocess-2.2.0 → gmprocess-2.4.0}/src/gmprocess/apps/gmrecords.py +3 -2
- {gmprocess-2.2.0 → gmprocess-2.4.0}/src/gmprocess/bin/cwa_gather.py +3 -1
- {gmprocess-2.2.0 → gmprocess-2.4.0}/src/gmprocess/core/scalar_event.py +1 -1
- {gmprocess-2.2.0 → gmprocess-2.4.0}/src/gmprocess/core/stationstream.py +24 -23
- {gmprocess-2.2.0 → gmprocess-2.4.0}/src/gmprocess/core/stationtrace.py +70 -33
- {gmprocess-2.2.0 → gmprocess-2.4.0}/src/gmprocess/core/streamcollection.py +14 -29
- {gmprocess-2.2.0 → gmprocess-2.4.0}/src/gmprocess/data/config_production.yml +67 -37
- {gmprocess-2.2.0 → gmprocess-2.4.0}/src/gmprocess/data/config_production_v1.yml +3 -3
- {gmprocess-2.2.0 → gmprocess-2.4.0}/src/gmprocess/data/config_test.yml +19 -214
- {gmprocess-2.2.0 → gmprocess-2.4.0}/src/gmprocess/data/config_test_download.yml +2 -2
- {gmprocess-2.2.0 → gmprocess-2.4.0}/src/gmprocess/io/asdf/flatfile.py +8 -0
- {gmprocess-2.2.0 → gmprocess-2.4.0}/src/gmprocess/io/asdf/flatfile_constants.py +4 -2
- {gmprocess-2.2.0 → gmprocess-2.4.0}/src/gmprocess/io/asdf/stream_workspace.py +13 -11
- {gmprocess-2.2.0 → gmprocess-2.4.0}/src/gmprocess/io/asdf/waveform_metrics_xml.py +6 -3
- {gmprocess-2.2.0 → gmprocess-2.4.0}/src/gmprocess/io/cosmos/cesmd_search.py +0 -2
- {gmprocess-2.2.0 → gmprocess-2.4.0}/src/gmprocess/io/cosmos/core.py +72 -22
- {gmprocess-2.2.0 → gmprocess-2.4.0}/src/gmprocess/io/cosmos/cosmos_writer.py +190 -88
- {gmprocess-2.2.0 → gmprocess-2.4.0}/src/gmprocess/io/cwb/core.py +0 -4
- {gmprocess-2.2.0 → gmprocess-2.4.0}/src/gmprocess/io/dmg/core.py +3 -15
- {gmprocess-2.2.0 → gmprocess-2.4.0}/src/gmprocess/io/dynamic_search_parameters.py +9 -2
- {gmprocess-2.2.0 → gmprocess-2.4.0}/src/gmprocess/io/esm/core.py +0 -2
- {gmprocess-2.2.0 → gmprocess-2.4.0}/src/gmprocess/io/geonet/core.py +0 -7
- {gmprocess-2.2.0 → gmprocess-2.4.0}/src/gmprocess/io/knet/core.py +0 -4
- {gmprocess-2.2.0 → gmprocess-2.4.0}/src/gmprocess/io/knet/knet_fetcher.py +0 -4
- {gmprocess-2.2.0 → gmprocess-2.4.0}/src/gmprocess/io/obspy/core.py +22 -6
- {gmprocess-2.2.0 → gmprocess-2.4.0}/src/gmprocess/io/read_directory.py +11 -3
- {gmprocess-2.2.0 → gmprocess-2.4.0}/src/gmprocess/io/report.py +12 -3
- {gmprocess-2.2.0 → gmprocess-2.4.0}/src/gmprocess/io/smc/core.py +1 -6
- {gmprocess-2.2.0 → gmprocess-2.4.0}/src/gmprocess/io/usc/core.py +0 -7
- {gmprocess-2.2.0 → gmprocess-2.4.0}/src/gmprocess/metrics/containers.py +9 -0
- {gmprocess-2.2.0 → gmprocess-2.4.0}/src/gmprocess/metrics/oscillator.py +4 -3
- {gmprocess-2.2.0 → gmprocess-2.4.0}/src/gmprocess/metrics/reduce.py +89 -7
- {gmprocess-2.2.0 → gmprocess-2.4.0}/src/gmprocess/metrics/station_metric.py +1 -1
- {gmprocess-2.2.0 → gmprocess-2.4.0}/src/gmprocess/metrics/station_metric_collection.py +1 -1
- {gmprocess-2.2.0 → gmprocess-2.4.0}/src/gmprocess/metrics/transform.py +85 -32
- {gmprocess-2.2.0 → gmprocess-2.4.0}/src/gmprocess/metrics/waveform_metric_calculator.py +20 -3
- {gmprocess-2.2.0 → gmprocess-2.4.0}/src/gmprocess/metrics/waveform_metric_collection.py +16 -5
- {gmprocess-2.2.0 → gmprocess-2.4.0}/src/gmprocess/metrics/waveform_metric_list.py +1 -1
- {gmprocess-2.2.0 → gmprocess-2.4.0}/src/gmprocess/metrics/waveform_metric_type.py +91 -9
- {gmprocess-2.2.0 → gmprocess-2.4.0}/src/gmprocess/subcommands/base.py +2 -2
- {gmprocess-2.2.0 → gmprocess-2.4.0}/src/gmprocess/subcommands/process_waveforms.py +3 -3
- {gmprocess-2.2.0 → gmprocess-2.4.0}/src/gmprocess/subcommands/processing_steps.py +1 -1
- {gmprocess-2.2.0 → gmprocess-2.4.0}/src/gmprocess/utils/assemble_utils.py +0 -9
- {gmprocess-2.2.0 → gmprocess-2.4.0}/src/gmprocess/utils/config.py +77 -3
- {gmprocess-2.2.0 → gmprocess-2.4.0}/src/gmprocess/utils/config_versioning.py +12 -0
- {gmprocess-2.2.0 → gmprocess-2.4.0}/src/gmprocess/utils/constants.py +2 -0
- {gmprocess-2.2.0 → gmprocess-2.4.0}/src/gmprocess/utils/download_utils.py +7 -1
- {gmprocess-2.2.0 → gmprocess-2.4.0}/src/gmprocess/utils/export_gmpacket_utils.py +1 -0
- gmprocess-2.4.0/src/gmprocess/utils/memory.py +32 -0
- {gmprocess-2.2.0 → gmprocess-2.4.0}/src/gmprocess/utils/summary_plots.py +11 -5
- {gmprocess-2.2.0 → gmprocess-2.4.0}/src/gmprocess/utils/tests_utils.py +1 -1
- {gmprocess-2.2.0 → gmprocess-2.4.0}/src/gmprocess/waveform_processing/adjust_highpass.py +21 -12
- {gmprocess-2.2.0 → gmprocess-2.4.0}/src/gmprocess/waveform_processing/adjust_highpass_ridder.py +24 -2
- {gmprocess-2.2.0 → gmprocess-2.4.0}/src/gmprocess/waveform_processing/clipping/clipping_ann.py +1 -1
- {gmprocess-2.2.0 → gmprocess-2.4.0}/src/gmprocess/waveform_processing/clipping/clipping_check.py +0 -4
- {gmprocess-2.2.0 → gmprocess-2.4.0}/src/gmprocess/waveform_processing/clipping/jerk.py +1 -1
- {gmprocess-2.2.0 → gmprocess-2.4.0}/src/gmprocess/waveform_processing/clipping/max_amp.py +1 -1
- {gmprocess-2.2.0 → gmprocess-2.4.0}/src/gmprocess/waveform_processing/clipping/ping.py +2 -2
- {gmprocess-2.2.0 → gmprocess-2.4.0}/src/gmprocess/waveform_processing/clipping/std_dev.py +1 -1
- gmprocess-2.4.0/src/gmprocess/waveform_processing/convert_units.py +30 -0
- {gmprocess-2.2.0 → gmprocess-2.4.0}/src/gmprocess/waveform_processing/corner_frequencies.py +5 -8
- {gmprocess-2.2.0 → gmprocess-2.4.0}/src/gmprocess/waveform_processing/detrend.py +7 -1
- {gmprocess-2.2.0 → gmprocess-2.4.0}/src/gmprocess/waveform_processing/fft.py +8 -8
- {gmprocess-2.2.0 → gmprocess-2.4.0}/src/gmprocess/waveform_processing/filtering.py +95 -1
- gmprocess-2.4.0/src/gmprocess/waveform_processing/instrument_response.py +500 -0
- {gmprocess-2.2.0 → gmprocess-2.4.0}/src/gmprocess/waveform_processing/nn_quality_assurance.py +6 -9
- {gmprocess-2.2.0 → gmprocess-2.4.0}/src/gmprocess/waveform_processing/phase.py +2 -2
- {gmprocess-2.2.0 → gmprocess-2.4.0}/src/gmprocess/waveform_processing/pretesting.py +1 -6
- {gmprocess-2.2.0 → gmprocess-2.4.0}/src/gmprocess/waveform_processing/prism_adaptive_baseline.py +2 -2
- {gmprocess-2.2.0 → gmprocess-2.4.0}/src/gmprocess/waveform_processing/processing.py +21 -11
- {gmprocess-2.2.0 → gmprocess-2.4.0}/src/gmprocess/waveform_processing/sanity_checks.py +1 -1
- {gmprocess-2.2.0 → gmprocess-2.4.0}/src/gmprocess/waveform_processing/snr.py +15 -11
- {gmprocess-2.2.0 → gmprocess-2.4.0}/src/gmprocess/waveform_processing/spectrum.py +13 -9
- {gmprocess-2.2.0 → gmprocess-2.4.0}/src/gmprocess/waveform_processing/windows.py +158 -69
- gmprocess-2.4.0/src/gmprocess/waveform_processing/zero_pad.py +90 -0
- {gmprocess-2.2.0 → gmprocess-2.4.0}/src/gmprocess.egg-info/PKG-INFO +23 -10
- {gmprocess-2.2.0 → gmprocess-2.4.0}/src/gmprocess.egg-info/SOURCES.txt +2 -0
- gmprocess-2.2.0/README.md +0 -42
- gmprocess-2.2.0/src/gmprocess/waveform_processing/instrument_response.py +0 -253
- gmprocess-2.2.0/src/gmprocess/waveform_processing/zero_pad.py +0 -27
- {gmprocess-2.2.0 → gmprocess-2.4.0}/.coveragerc +0 -0
- {gmprocess-2.2.0 → gmprocess-2.4.0}/.gitignore +0 -0
- {gmprocess-2.2.0 → gmprocess-2.4.0}/.gitlab-ci.yml +0 -0
- {gmprocess-2.2.0 → gmprocess-2.4.0}/CODE_OF_CONDUCT.md +0 -0
- {gmprocess-2.2.0 → gmprocess-2.4.0}/DISCLAIMER.md +0 -0
- {gmprocess-2.2.0 → gmprocess-2.4.0}/LICENSE.md +0 -0
- {gmprocess-2.2.0 → gmprocess-2.4.0}/MANIFEST.in +0 -0
- {gmprocess-2.2.0 → gmprocess-2.4.0}/pyproject.toml +0 -0
- {gmprocess-2.2.0 → gmprocess-2.4.0}/pytest.ini +0 -0
- {gmprocess-2.2.0 → gmprocess-2.4.0}/setup.cfg +0 -0
- {gmprocess-2.2.0 → gmprocess-2.4.0}/setup.py +0 -0
- {gmprocess-2.2.0 → gmprocess-2.4.0}/src/gmprocess/__init__.py +0 -0
- {gmprocess-2.2.0 → gmprocess-2.4.0}/src/gmprocess/apps/__init__.py +0 -0
- {gmprocess-2.2.0 → gmprocess-2.4.0}/src/gmprocess/bin/__init__.py +0 -0
- {gmprocess-2.2.0 → gmprocess-2.4.0}/src/gmprocess/bin/bundle_datarelease.py +0 -0
- {gmprocess-2.2.0 → gmprocess-2.4.0}/src/gmprocess/bin/fetch_orfeus.py +0 -0
- {gmprocess-2.2.0 → gmprocess-2.4.0}/src/gmprocess/bin/fix_inventory.py +0 -0
- {gmprocess-2.2.0 → gmprocess-2.4.0}/src/gmprocess/bin/gmconvert.py +0 -0
- {gmprocess-2.2.0 → gmprocess-2.4.0}/src/gmprocess/bin/gminfo.py +0 -0
- {gmprocess-2.2.0 → gmprocess-2.4.0}/src/gmprocess/bin/gmprocess_config.py +0 -0
- {gmprocess-2.2.0 → gmprocess-2.4.0}/src/gmprocess/bin/gmrecords.py +0 -0
- {gmprocess-2.2.0 → gmprocess-2.4.0}/src/gmprocess/bin/gmworkspace.py +0 -0
- {gmprocess-2.2.0 → gmprocess-2.4.0}/src/gmprocess/bin/update_event_json.sh +0 -0
- {gmprocess-2.2.0 → gmprocess-2.4.0}/src/gmprocess/core/__init__.py +0 -0
- {gmprocess-2.2.0 → gmprocess-2.4.0}/src/gmprocess/core/provenance.py +0 -0
- {gmprocess-2.2.0 → gmprocess-2.4.0}/src/gmprocess/core/streamarray.py +0 -0
- {gmprocess-2.2.0 → gmprocess-2.4.0}/src/gmprocess/data/CESMD_NGA_ids.csv +0 -0
- {gmprocess-2.2.0 → gmprocess-2.4.0}/src/gmprocess/data/__init__.py +0 -0
- {gmprocess-2.2.0 → gmprocess-2.4.0}/src/gmprocess/data/cosmos_table10.xls +0 -0
- {gmprocess-2.2.0 → gmprocess-2.4.0}/src/gmprocess/data/cosmos_table4.xls +0 -0
- {gmprocess-2.2.0 → gmprocess-2.4.0}/src/gmprocess/data/demo/ci38457511/raw/CICCC.RAW +0 -0
- {gmprocess-2.2.0 → gmprocess-2.4.0}/src/gmprocess/data/demo/ci38457511/raw/CICLC.v1 +0 -0
- {gmprocess-2.2.0 → gmprocess-2.4.0}/src/gmprocess/data/demo/ci38457511/raw/CITOW2.RAW +0 -0
- {gmprocess-2.2.0 → gmprocess-2.4.0}/src/gmprocess/data/demo/nc72282711/workspace.h5 +0 -0
- {gmprocess-2.2.0 → gmprocess-2.4.0}/src/gmprocess/data/fdsn_codes.csv +0 -0
- {gmprocess-2.2.0 → gmprocess-2.4.0}/src/gmprocess/data/lme/SA_rotd50.0_2020.03.31.csv +0 -0
- {gmprocess-2.2.0 → gmprocess-2.4.0}/src/gmprocess/data/modules.yml +0 -0
- {gmprocess-2.2.0 → gmprocess-2.4.0}/src/gmprocess/data/nga_w2_selected.csv +0 -0
- {gmprocess-2.2.0 → gmprocess-2.4.0}/src/gmprocess/data/nn_clipping/bias_1.csv +0 -0
- {gmprocess-2.2.0 → gmprocess-2.4.0}/src/gmprocess/data/nn_clipping/bias_output.csv +0 -0
- {gmprocess-2.2.0 → gmprocess-2.4.0}/src/gmprocess/data/nn_clipping/masterF.txt +0 -0
- {gmprocess-2.2.0 → gmprocess-2.4.0}/src/gmprocess/data/nn_clipping/weight_1.csv +0 -0
- {gmprocess-2.2.0 → gmprocess-2.4.0}/src/gmprocess/data/nn_clipping/weight_output.csv +0 -0
- {gmprocess-2.2.0 → gmprocess-2.4.0}/src/gmprocess/data/nn_qa/Cant/M.csv +0 -0
- {gmprocess-2.2.0 → gmprocess-2.4.0}/src/gmprocess/data/nn_qa/Cant/bias_1.csv +0 -0
- {gmprocess-2.2.0 → gmprocess-2.4.0}/src/gmprocess/data/nn_qa/Cant/bias_2.csv +0 -0
- {gmprocess-2.2.0 → gmprocess-2.4.0}/src/gmprocess/data/nn_qa/Cant/bias_output.csv +0 -0
- {gmprocess-2.2.0 → gmprocess-2.4.0}/src/gmprocess/data/nn_qa/Cant/final_training.csv +0 -0
- {gmprocess-2.2.0 → gmprocess-2.4.0}/src/gmprocess/data/nn_qa/Cant/masterF.txt +0 -0
- {gmprocess-2.2.0 → gmprocess-2.4.0}/src/gmprocess/data/nn_qa/Cant/model_3.txt +0 -0
- {gmprocess-2.2.0 → gmprocess-2.4.0}/src/gmprocess/data/nn_qa/Cant/model_5.txt +0 -0
- {gmprocess-2.2.0 → gmprocess-2.4.0}/src/gmprocess/data/nn_qa/Cant/mu_sigma.csv +0 -0
- {gmprocess-2.2.0 → gmprocess-2.4.0}/src/gmprocess/data/nn_qa/Cant/weight_1.csv +0 -0
- {gmprocess-2.2.0 → gmprocess-2.4.0}/src/gmprocess/data/nn_qa/Cant/weight_2.csv +0 -0
- {gmprocess-2.2.0 → gmprocess-2.4.0}/src/gmprocess/data/nn_qa/Cant/weight_output.csv +0 -0
- {gmprocess-2.2.0 → gmprocess-2.4.0}/src/gmprocess/data/nn_qa/CantWell/M.csv +0 -0
- {gmprocess-2.2.0 → gmprocess-2.4.0}/src/gmprocess/data/nn_qa/CantWell/bias_1.csv +0 -0
- {gmprocess-2.2.0 → gmprocess-2.4.0}/src/gmprocess/data/nn_qa/CantWell/bias_2.csv +0 -0
- {gmprocess-2.2.0 → gmprocess-2.4.0}/src/gmprocess/data/nn_qa/CantWell/bias_output.csv +0 -0
- {gmprocess-2.2.0 → gmprocess-2.4.0}/src/gmprocess/data/nn_qa/CantWell/final_training.csv +0 -0
- {gmprocess-2.2.0 → gmprocess-2.4.0}/src/gmprocess/data/nn_qa/CantWell/masterF.txt +0 -0
- {gmprocess-2.2.0 → gmprocess-2.4.0}/src/gmprocess/data/nn_qa/CantWell/model_0.txt +0 -0
- {gmprocess-2.2.0 → gmprocess-2.4.0}/src/gmprocess/data/nn_qa/CantWell/mu_sigma.csv +0 -0
- {gmprocess-2.2.0 → gmprocess-2.4.0}/src/gmprocess/data/nn_qa/CantWell/weight_1.csv +0 -0
- {gmprocess-2.2.0 → gmprocess-2.4.0}/src/gmprocess/data/nn_qa/CantWell/weight_2.csv +0 -0
- {gmprocess-2.2.0 → gmprocess-2.4.0}/src/gmprocess/data/nn_qa/CantWell/weight_output.csv +0 -0
- {gmprocess-2.2.0 → gmprocess-2.4.0}/src/gmprocess/data/picker.yml +0 -0
- {gmprocess-2.2.0 → gmprocess-2.4.0}/src/gmprocess/data/station_coordinates.xlsx +0 -0
- {gmprocess-2.2.0 → gmprocess-2.4.0}/src/gmprocess/data/usgs_ids_nga_and_srcmod_cross_reference.xlsx +0 -0
- {gmprocess-2.2.0 → gmprocess-2.4.0}/src/gmprocess/gui/__init__.py +0 -0
- {gmprocess-2.2.0 → gmprocess-2.4.0}/src/gmprocess/gui/gui_ucla/Documentation.md +0 -0
- {gmprocess-2.2.0 → gmprocess-2.4.0}/src/gmprocess/gui/gui_ucla/GUI_human_review.ipynb +0 -0
- {gmprocess-2.2.0 → gmprocess-2.4.0}/src/gmprocess/gui/gui_ucla/HumanReviewGUI.py +0 -0
- {gmprocess-2.2.0 → gmprocess-2.4.0}/src/gmprocess/gui/gui_ucla/__init__.py +0 -0
- {gmprocess-2.2.0 → gmprocess-2.4.0}/src/gmprocess/io/__init__.py +0 -0
- {gmprocess-2.2.0 → gmprocess-2.4.0}/src/gmprocess/io/asdf/__init__.py +0 -0
- {gmprocess-2.2.0 → gmprocess-2.4.0}/src/gmprocess/io/asdf/base_metrics_xml.py +0 -0
- {gmprocess-2.2.0 → gmprocess-2.4.0}/src/gmprocess/io/asdf/core.py +0 -0
- {gmprocess-2.2.0 → gmprocess-2.4.0}/src/gmprocess/io/asdf/path_utils.py +0 -0
- {gmprocess-2.2.0 → gmprocess-2.4.0}/src/gmprocess/io/asdf/rupture.py +0 -0
- {gmprocess-2.2.0 → gmprocess-2.4.0}/src/gmprocess/io/asdf/station_metrics_xml.py +0 -0
- {gmprocess-2.2.0 → gmprocess-2.4.0}/src/gmprocess/io/asdf/utils.py +0 -0
- {gmprocess-2.2.0 → gmprocess-2.4.0}/src/gmprocess/io/asdf/workspace_constants.py +0 -0
- {gmprocess-2.2.0 → gmprocess-2.4.0}/src/gmprocess/io/bhrc/__init__.py +0 -0
- {gmprocess-2.2.0 → gmprocess-2.4.0}/src/gmprocess/io/bhrc/core.py +0 -0
- {gmprocess-2.2.0 → gmprocess-2.4.0}/src/gmprocess/io/cosmos/__init__.py +0 -0
- {gmprocess-2.2.0 → gmprocess-2.4.0}/src/gmprocess/io/cosmos/cesmd_fetcher.py +0 -0
- {gmprocess-2.2.0 → gmprocess-2.4.0}/src/gmprocess/io/cosmos/data_structures.py +0 -0
- {gmprocess-2.2.0 → gmprocess-2.4.0}/src/gmprocess/io/cwb/__init__.py +0 -0
- {gmprocess-2.2.0 → gmprocess-2.4.0}/src/gmprocess/io/dmg/__init__.py +0 -0
- {gmprocess-2.2.0 → gmprocess-2.4.0}/src/gmprocess/io/esm/__init__.py +0 -0
- {gmprocess-2.2.0 → gmprocess-2.4.0}/src/gmprocess/io/fetcher.py +0 -0
- {gmprocess-2.2.0 → gmprocess-2.4.0}/src/gmprocess/io/geonet/__init__.py +0 -0
- {gmprocess-2.2.0 → gmprocess-2.4.0}/src/gmprocess/io/global_fetcher.py +0 -0
- {gmprocess-2.2.0 → gmprocess-2.4.0}/src/gmprocess/io/knet/__init__.py +0 -0
- {gmprocess-2.2.0 → gmprocess-2.4.0}/src/gmprocess/io/nga.py +0 -0
- {gmprocess-2.2.0 → gmprocess-2.4.0}/src/gmprocess/io/nsmn/__init__.py +0 -0
- {gmprocess-2.2.0 → gmprocess-2.4.0}/src/gmprocess/io/nsmn/core.py +0 -0
- {gmprocess-2.2.0 → gmprocess-2.4.0}/src/gmprocess/io/obspy/__init__.py +0 -0
- {gmprocess-2.2.0 → gmprocess-2.4.0}/src/gmprocess/io/obspy/fdsn_fetcher.py +0 -0
- {gmprocess-2.2.0 → gmprocess-2.4.0}/src/gmprocess/io/read.py +0 -0
- {gmprocess-2.2.0 → gmprocess-2.4.0}/src/gmprocess/io/renadic/__init__.py +0 -0
- {gmprocess-2.2.0 → gmprocess-2.4.0}/src/gmprocess/io/renadic/core.py +0 -0
- {gmprocess-2.2.0 → gmprocess-2.4.0}/src/gmprocess/io/seedname.py +0 -0
- {gmprocess-2.2.0 → gmprocess-2.4.0}/src/gmprocess/io/smc/__init__.py +0 -0
- {gmprocess-2.2.0 → gmprocess-2.4.0}/src/gmprocess/io/unam/__init__.py +0 -0
- {gmprocess-2.2.0 → gmprocess-2.4.0}/src/gmprocess/io/unam/core.py +0 -0
- {gmprocess-2.2.0 → gmprocess-2.4.0}/src/gmprocess/io/usc/__init__.py +0 -0
- {gmprocess-2.2.0 → gmprocess-2.4.0}/src/gmprocess/io/utils.py +0 -0
- {gmprocess-2.2.0 → gmprocess-2.4.0}/src/gmprocess/metrics/__init__.py +0 -0
- {gmprocess-2.2.0 → gmprocess-2.4.0}/src/gmprocess/metrics/combine.py +0 -0
- {gmprocess-2.2.0 → gmprocess-2.4.0}/src/gmprocess/metrics/metric_collection_base.py +0 -0
- {gmprocess-2.2.0 → gmprocess-2.4.0}/src/gmprocess/metrics/rotate.py +0 -0
- {gmprocess-2.2.0 → gmprocess-2.4.0}/src/gmprocess/metrics/utils.py +0 -0
- {gmprocess-2.2.0 → gmprocess-2.4.0}/src/gmprocess/metrics/waveform_metric_calculator_component_base.py +0 -0
- {gmprocess-2.2.0 → gmprocess-2.4.0}/src/gmprocess/metrics/waveform_metric_component.py +0 -0
- {gmprocess-2.2.0 → gmprocess-2.4.0}/src/gmprocess/subcommands/__init__.py +0 -0
- {gmprocess-2.2.0 → gmprocess-2.4.0}/src/gmprocess/subcommands/arg_dicts.py +0 -0
- {gmprocess-2.2.0 → gmprocess-2.4.0}/src/gmprocess/subcommands/assemble.py +0 -0
- {gmprocess-2.2.0 → gmprocess-2.4.0}/src/gmprocess/subcommands/autoprocess.py +0 -0
- {gmprocess-2.2.0 → gmprocess-2.4.0}/src/gmprocess/subcommands/autoshakemap.py +0 -0
- {gmprocess-2.2.0 → gmprocess-2.4.0}/src/gmprocess/subcommands/clean.py +0 -0
- {gmprocess-2.2.0 → gmprocess-2.4.0}/src/gmprocess/subcommands/compute_station_metrics.py +0 -0
- {gmprocess-2.2.0 → gmprocess-2.4.0}/src/gmprocess/subcommands/compute_waveform_metrics.py +0 -0
- {gmprocess-2.2.0 → gmprocess-2.4.0}/src/gmprocess/subcommands/download.py +0 -0
- {gmprocess-2.2.0 → gmprocess-2.4.0}/src/gmprocess/subcommands/export_cosmos.py +0 -0
- {gmprocess-2.2.0 → gmprocess-2.4.0}/src/gmprocess/subcommands/export_failure_tables.py +0 -0
- {gmprocess-2.2.0 → gmprocess-2.4.0}/src/gmprocess/subcommands/export_gmpacket.py +0 -0
- {gmprocess-2.2.0 → gmprocess-2.4.0}/src/gmprocess/subcommands/export_metric_tables.py +0 -0
- {gmprocess-2.2.0 → gmprocess-2.4.0}/src/gmprocess/subcommands/export_provenance_tables.py +0 -0
- {gmprocess-2.2.0 → gmprocess-2.4.0}/src/gmprocess/subcommands/generate_regression_plot.py +0 -0
- {gmprocess-2.2.0 → gmprocess-2.4.0}/src/gmprocess/subcommands/generate_report.py +0 -0
- {gmprocess-2.2.0 → gmprocess-2.4.0}/src/gmprocess/subcommands/generate_station_maps.py +0 -0
- {gmprocess-2.2.0 → gmprocess-2.4.0}/src/gmprocess/subcommands/import_data.py +0 -0
- {gmprocess-2.2.0 → gmprocess-2.4.0}/src/gmprocess/subcommands/init.py +0 -0
- {gmprocess-2.2.0 → gmprocess-2.4.0}/src/gmprocess/subcommands/lazy_loader.py +0 -0
- {gmprocess-2.2.0 → gmprocess-2.4.0}/src/gmprocess/subcommands/projects.py +0 -0
- {gmprocess-2.2.0 → gmprocess-2.4.0}/src/gmprocess/utils/__init__.py +0 -0
- {gmprocess-2.2.0 → gmprocess-2.4.0}/src/gmprocess/utils/args.py +0 -0
- {gmprocess-2.2.0 → gmprocess-2.4.0}/src/gmprocess/utils/ground_motion_models.py +0 -0
- {gmprocess-2.2.0 → gmprocess-2.4.0}/src/gmprocess/utils/logging.py +0 -0
- {gmprocess-2.2.0 → gmprocess-2.4.0}/src/gmprocess/utils/misc.py +0 -0
- {gmprocess-2.2.0 → gmprocess-2.4.0}/src/gmprocess/utils/misc_plots.py +0 -0
- {gmprocess-2.2.0 → gmprocess-2.4.0}/src/gmprocess/utils/prompt.py +0 -0
- {gmprocess-2.2.0 → gmprocess-2.4.0}/src/gmprocess/utils/report_utils.py +0 -0
- {gmprocess-2.2.0 → gmprocess-2.4.0}/src/gmprocess/utils/rupture_utils.py +0 -0
- {gmprocess-2.2.0 → gmprocess-2.4.0}/src/gmprocess/utils/strec.py +0 -0
- {gmprocess-2.2.0 → gmprocess-2.4.0}/src/gmprocess/utils/tables.py +0 -0
- {gmprocess-2.2.0 → gmprocess-2.4.0}/src/gmprocess/waveform_processing/__init__.py +0 -0
- {gmprocess-2.2.0 → gmprocess-2.4.0}/src/gmprocess/waveform_processing/baseline_correction.py +0 -0
- {gmprocess-2.2.0 → gmprocess-2.4.0}/src/gmprocess/waveform_processing/clipping/clip_detection.py +0 -0
- {gmprocess-2.2.0 → gmprocess-2.4.0}/src/gmprocess/waveform_processing/clipping/histogram.py +0 -0
- {gmprocess-2.2.0 → gmprocess-2.4.0}/src/gmprocess/waveform_processing/integrate.py +0 -0
- {gmprocess-2.2.0 → gmprocess-2.4.0}/src/gmprocess/waveform_processing/processing_step.py +0 -0
- {gmprocess-2.2.0 → gmprocess-2.4.0}/src/gmprocess/waveform_processing/resample.py +0 -0
- {gmprocess-2.2.0 → gmprocess-2.4.0}/src/gmprocess/waveform_processing/taper.py +0 -0
- {gmprocess-2.2.0 → gmprocess-2.4.0}/src/gmprocess/waveform_processing/zero_crossings.py +0 -0
- {gmprocess-2.2.0 → gmprocess-2.4.0}/src/gmprocess.egg-info/dependency_links.txt +0 -0
- {gmprocess-2.2.0 → gmprocess-2.4.0}/src/gmprocess.egg-info/entry_points.txt +0 -0
- {gmprocess-2.2.0 → gmprocess-2.4.0}/src/gmprocess.egg-info/requires.txt +0 -0
- {gmprocess-2.2.0 → gmprocess-2.4.0}/src/gmprocess.egg-info/top_level.txt +0 -0
- {gmprocess-2.2.0 → gmprocess-2.4.0}/tools/matlab/README.md +0 -0
- {gmprocess-2.2.0 → gmprocess-2.4.0}/tools/matlab/get_all_waveforms.m +0 -0
- {gmprocess-2.2.0 → gmprocess-2.4.0}/tools/matlab/get_events.m +0 -0
- {gmprocess-2.2.0 → gmprocess-2.4.0}/tools/matlab/get_waveform_metrics.m +0 -0
- {gmprocess-2.2.0 → gmprocess-2.4.0}/tools/matlab/waveform_plot.png +0 -0
|
@@ -1,5 +1,52 @@
|
|
|
1
1
|
## main
|
|
2
2
|
|
|
3
|
+
## 2.4.0 / 2025-04-04
|
|
4
|
+
|
|
5
|
+
- Enhancements
|
|
6
|
+
- Store only the peak value instead of the whole trace for waveform_metrics, resulting in significantly less memory usage.
|
|
7
|
+
- Use P phase pickers within time window around P phase travel time to set split time between noise (pre-event window) and signal (event window). Update the `pickers` section of the configuration file to include relevant parameters.
|
|
8
|
+
- COSMOS v0 writer incorporates sensitivity from StationXML stages in real #22 and real #42 headers
|
|
9
|
+
- Support FAS metric for individual channel components (this could be classified as a bugfix).
|
|
10
|
+
- Add helper functions to facilitate developers tracking memory usage with `tracemalloc`.
|
|
11
|
+
- Bugfix
|
|
12
|
+
- Fix error with zeropad method using 'fhp' to extracts filter order
|
|
13
|
+
- Fix cosmos v0 writer header failing to write sensitivities due to if statement testing 'trace.stats.standard' instead of 'trace.stats'
|
|
14
|
+
- Set self.output_units in instrument_response.RemoveResponse._remove_sensivitiy() to "ACC" (was not set).
|
|
15
|
+
- Get structure type from correct field in DMG format.
|
|
16
|
+
- Fix two calls to `numpy.mean()` to avoid warnings about zero length arrays.
|
|
17
|
+
- Fixed error in parsing units from COSMOS format.
|
|
18
|
+
|
|
19
|
+
## 2.3.0 / 2025-01-23
|
|
20
|
+
|
|
21
|
+
- Enhancements
|
|
22
|
+
- Substantial changes to the default processing steps.
|
|
23
|
+
- Add support for psuedo-response spectra (PSA and PSV) and change default metrics to use PSA rather than SA.
|
|
24
|
+
- Allow for user to set a different query window duration for different tectonic environments.
|
|
25
|
+
- Increase default query window duration.
|
|
26
|
+
- Add a new "source_path" method to compute the signal end that uses 1/fc as the source duration, which is then added to a path duration that is parameterized with coefficients for an intercept and distance term.
|
|
27
|
+
- Exclude network 7D, which is for ocean bottom stations.
|
|
28
|
+
- Apply clipping check to strong motion instruments. In the past, we thought it was safe to assume strong motion instruments did not clip but we have found exceptions to this.
|
|
29
|
+
- Update summary plots so that the time axis is the same across raw, accel, vel, and disp plots.
|
|
30
|
+
- Update report to plot stations in order of epicentral distance.
|
|
31
|
+
- Update setup_env.sh to use miniforge rather than miniconda and renamed to install.sh to be consistent with other repos.
|
|
32
|
+
- Add taper before differentiation for velocity instruments.
|
|
33
|
+
- Expand instrument response QA to include consistency of units with instrument type.
|
|
34
|
+
- Set unit registry to treat "counts" as having a unique dimension, rather than being dimensionless.
|
|
35
|
+
- Simplify SNR failure message.
|
|
36
|
+
- Allow water_level to be specified as "None" for the instrument response in config file.
|
|
37
|
+
- Add QA check for inconsistency in sample rate reported in data and metadata.
|
|
38
|
+
- Increase `sec_before_split` default value for trimming the record.
|
|
39
|
+
- Add config options to allow for using a Butterworth filter for filtering prior to instrument response removal, rather than the default options that ObsPy uses with their `remove_response` method.
|
|
40
|
+
- Add `bandpass` processing step.
|
|
41
|
+
- Documentation
|
|
42
|
+
- Fix the description of the --textfile option for gmrecords.
|
|
43
|
+
- Bugfix
|
|
44
|
+
- Do not exit when event id not found in comcat while looking for a rupture file.
|
|
45
|
+
- Ensure fill value matches the data type of the trace.
|
|
46
|
+
- Add provenance entry for when the detrend method is "pre".
|
|
47
|
+
- Fix errors in some filtering provenance entries.
|
|
48
|
+
- Bugfix in normalizing pre-event noise spectra.
|
|
49
|
+
|
|
3
50
|
## 2.2.0 / 2024-12-23
|
|
4
51
|
- Enhancements
|
|
5
52
|
- Add the PRISM/Jones et al. (doi: 10.1785/0220160200) adaptive baseline correction step.
|
|
@@ -25,7 +72,7 @@
|
|
|
25
72
|
## 2.1.2 / 2024-11-14
|
|
26
73
|
- Enhancements
|
|
27
74
|
- Station distance (epicentral distance) added to the reports
|
|
28
|
-
- Add support velocity and
|
|
75
|
+
- Add support velocity and displacement COSMOS and DMG files
|
|
29
76
|
- More graceful exiting when bad eventid is inputted to `download`
|
|
30
77
|
- Allow `reports` to continue processing when an event directory is empty (no data)
|
|
31
78
|
- Update default config to use the Ramos-Sepulveda et al. (2023) high-pass corner selection method, and increase the p-wave shift to -2 sec from -1 sec.
|
|
@@ -61,7 +108,7 @@
|
|
|
61
108
|
- Updated line styles of annotation lines in SNR plots.
|
|
62
109
|
- Remove the `export_shakemap` subcommand.
|
|
63
110
|
- Default config updates
|
|
64
|
-
- Change KO smoothing
|
|
111
|
+
- Change KO smoothing parameter to 188.5.
|
|
65
112
|
- Add arias intensity.
|
|
66
113
|
- Lower pga threshold on distance search criteria.
|
|
67
114
|
- Update release instructions in CONTRIBUTING.md.
|
|
@@ -88,7 +135,7 @@
|
|
|
88
135
|
- Other
|
|
89
136
|
- Turned off automatic generation of moveout plot since it isn't getting used.
|
|
90
137
|
- Renamed src/gmprocess/utils/test_utils.py to src/gmprocess/utils/test_utils.py to avoid it being detected as a unit test module.
|
|
91
|
-
- Decrease precision in fetcher bounds and fix Geonet bounds to include
|
|
138
|
+
- Decrease precision in fetcher bounds and fix Geonet bounds to include negative longitudes.
|
|
92
139
|
- Move the "config" subcommand to be a stand-alone command line program called "gmprocess_config".
|
|
93
140
|
- Removed "list_metrics" command.
|
|
94
141
|
- Removed cap on python version, increased minimum version to 3.9
|
|
@@ -136,7 +183,7 @@
|
|
|
136
183
|
- Added station metric units to constants.
|
|
137
184
|
- Bugfixes
|
|
138
185
|
- Resolve key error that was preventing writing of metric tables when Arias Intensity was requested.
|
|
139
|
-
- Resolve bug that occurs when multiple channels/stations are present in the
|
|
186
|
+
- Resolve bug that occurs when multiple channels/stations are present in the inventory when trying to retrieve the sampling rate for the metric table.
|
|
140
187
|
|
|
141
188
|
## 1.2.8 / 2023-08-21
|
|
142
189
|
|
|
@@ -264,7 +311,7 @@
|
|
|
264
311
|
- More gracefully handle cases where workspace file does not exist but is expected.
|
|
265
312
|
- Add label arg to gmconvert.
|
|
266
313
|
- Make colocated selection optional.
|
|
267
|
-
- Replace
|
|
314
|
+
- Replace statistic map with interactive HTML map and add to CLI tutorial in documentation.
|
|
268
315
|
- Remove cartopy dependency.
|
|
269
316
|
- Get scnl from COSMOS comments.
|
|
270
317
|
- Add freq differentiation option.
|
|
@@ -47,7 +47,7 @@ DOCS: [one line description]
|
|
|
47
47
|
```
|
|
48
48
|
|
|
49
49
|
We use the set of commit types from the [angular][9] project:
|
|
50
|
-
* **BUILD**: Changes that affect the build system or external dependencies (e.g.,
|
|
50
|
+
* **BUILD**: Changes that affect the build system or external dependencies (e.g., pyproject.toml)
|
|
51
51
|
* **CI**: Changes to our CI configuration files and scripts (e.g., .gitlab-ci.yml)
|
|
52
52
|
* **DOCS**: Documentation only changes
|
|
53
53
|
* **FEAT**: A new feature
|
|
@@ -76,7 +76,7 @@ Common reasons to rebase include:
|
|
|
76
76
|
## Releases
|
|
77
77
|
|
|
78
78
|
1. Create a release candidate branch with a name related to the release version like `v1.2.1.rc0`.
|
|
79
|
-
2. Update `code.json`, this is now automated with the `esi-releases`
|
|
79
|
+
2. Update `code.json`, this is now automated with the `esi-releases` package. For example, use the following command to increase the minor version number (options are "major", "minor", and "patch"):
|
|
80
80
|
```
|
|
81
81
|
releases minor
|
|
82
82
|
```
|
|
@@ -95,7 +95,7 @@ Common reasons to rebase include:
|
|
|
95
95
|
- This git push command is what triggers the "release" pipeline that includes the test, build, and deploy stages.
|
|
96
96
|
- *Note that we cannot have a hyphen in the tag name.*
|
|
97
97
|
- Also, if we end the tag name with "dev" then it will be build and uploaded to pypi as a pre-release version, which means that it will never be pip installed unless the user specifies the exact version of the pre-release.
|
|
98
|
-
-
|
|
98
|
+
- Maintenance note: the PYPI tokens are maintained in gitlab for the ESI group, under Settings then CI/CD, then Variables. These tokens are associated with the "pager_cicd" pypi service account.
|
|
99
99
|
8. Create release from tag in gitlab. Give it a release title like `v1.2.1`.
|
|
100
100
|
9. Copy/paste the relevant part of the changelog into the "describe this release" section.
|
|
101
101
|
|
|
@@ -126,7 +126,7 @@ Note that the script includes the follow arguments:
|
|
|
126
126
|
Notes:
|
|
127
127
|
- Never commit the built documentation files.
|
|
128
128
|
- Remember that the notebooks run gmprocess code when you build the docs,
|
|
129
|
-
so please be sure to check that the tutorials ran
|
|
129
|
+
so please be sure to check that the tutorials ran successfully.
|
|
130
130
|
- The result of the tutorials will depend on your config file options,
|
|
131
131
|
so I recommend having a project with the default config file set up
|
|
132
132
|
and use that project when building the docs.
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
Metadata-Version: 2.
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
2
|
Name: gmprocess
|
|
3
|
-
Version: 2.
|
|
3
|
+
Version: 2.4.0
|
|
4
4
|
Summary: USGS Automated Ground Motion Processing Software
|
|
5
5
|
Author-email: Eric Thompson <emthompsone@usgs.gov>, Mike Hearne <mhearne@usgs.gov>, Brad Aagaard <baagaard@usgs.gov>, Bruce Worden <cbworden@contractor.usgs.gov>, John Rekoske <jrekoske@ucsd.edu>, Heather Hunsinger <hhunsinger@usgs.gov>, Gabe Ferragut <gferragut@usgs.gov>
|
|
6
6
|
License: License
|
|
@@ -109,6 +109,7 @@ Provides-Extra: build
|
|
|
109
109
|
Requires-Dist: build; extra == "build"
|
|
110
110
|
Requires-Dist: twine; extra == "build"
|
|
111
111
|
Requires-Dist: check-wheel-contents; extra == "build"
|
|
112
|
+
Dynamic: license-file
|
|
112
113
|
|
|
113
114
|
# Introduction
|
|
114
115
|
This is a project designed to provide a number of functions related to parsing and processing earthquake ground motion data, building on top of the [ObsPy](https://github.com/obspy/obspy/wiki) library.
|
|
@@ -132,22 +133,34 @@ This will require that you create an account at code.usgs.gov, which is a more i
|
|
|
132
133
|
# Suggested Citation
|
|
133
134
|
If you wish to cite this software please cite:
|
|
134
135
|
|
|
135
|
-
- Thompson, E.M., M. Hearne, B.T. Aagaard, J.M. Rekoske, C.B. Worden, M.P. Moschetti, H.E. Hunsinger, G.C. Ferragut, G.A. Parker, J.A. Smith, K.K. Smith, and A.R. Kottke (2024). USGS Automated Ground Motion Processing Software Version 2, U.S. Geological Survey software release
|
|
136
|
-
|
|
136
|
+
- Thompson, E.M., M. Hearne, B.T. Aagaard, J.M. Rekoske, C.B. Worden, M.P. Moschetti, H.E. Hunsinger, G.C. Ferragut, G.A. Parker, J.A. Smith, K.K. Smith, and A.R. Kottke (2024). USGS Automated Ground Motion Processing Software Version 2, U.S. Geological Survey software release, doi: [10.5066/P13HMKFJ](https://doi.org/10.5066/P13HMKFJ).
|
|
137
|
+
|
|
138
|
+
- Thompson, E.M., M. Hearne, B.T. Aagaard, J.M. Rekoske, C.B. Worden, M.P. Moschetti, H.E. Hunsinger, G.C. Ferragut, G.A. Parker, J.A. Smith, Smith, K.K., and A.R. Kottke (2025). Automated, Near Real‐Time Ground‐Motion Processing at the US Geological Survey. _Seismological Research Letters_, 96(1), pp.538-553, doi: [10.1785/0220240021](https://doi.org/10.1785/0220240021).
|
|
139
|
+
|
|
137
140
|
# Journal Articles
|
|
138
141
|
The list below is a subset of articles that made use of this software in their study. If you would like to have an article added to this list, please open an issue or email the developers.
|
|
139
142
|
|
|
140
|
-
- Ahdi, S.K., B.T. Aagaard, M.P. Moschetti, G.A. Parker, O.S. Boyd, W.J. Stephenson (2024). Empirical ground-motion basin response in the California Great Valley, Reno, Nevada, and Portland, Oregon. _Earthquake Spectra_, 40(2):1099-1131
|
|
143
|
+
- Ahdi, S.K., B.T. Aagaard, M.P. Moschetti, G.A. Parker, O.S. Boyd, and W.J. Stephenson (2024). Empirical ground-motion basin response in the California Great Valley, Reno, Nevada, and Portland, Oregon. _Earthquake Spectra_, 40(2): 1099-1131, doi: [10.1177/87552930241237250](https://doi.org/10.1177/87552930241237250).
|
|
144
|
+
|
|
145
|
+
- Boyd OS, D. Churchwell, M.P. Moschetti, et al. (2024). Sediment thickness map of United States Atlantic and Gulf Coastal Plain Strata, and their influence on earthquake ground motions. _Earthquake Spectra_, 40(1): 89-112, doi: [10.1177/87552930231204880](https://doi.org/10.1177/87552930231204880).
|
|
146
|
+
|
|
147
|
+
- Chatterjee, A., D.T. Trugman, G. Hirth, J. Lee, and V.C. Tsai (2024). High‐frequency ground motions of earthquakes correlate with fault network complexity. _Geophysical Research Letters_, 51(12), doi: [10.1029/2024GL109418](https://doi.org/10.1029/2024GL109418).
|
|
148
|
+
|
|
149
|
+
- Hirakawa, E., G.A. Parker, A. Baltay, and T. Hanks (2023). Rupture directivity of the 25 October 2022 Mw 5.1 Alum Rock earthquake. _The Seismic Record_, 3(2): 144-155, doi: [10.1785/0320230013](https://doi.org/10.1785/0320230013).
|
|
150
|
+
|
|
151
|
+
- Ji, C., A. Cabas, A. Kottke, M. Pilz, J. Macedo, and C. Liu (2023). A DesignSafe earthquake ground motion database for California and surrounding regions. _Earthquake Spectra_, 39(1): 702–721, doi: [10.1177/87552930221141108](https://doi.org/10.1177/87552930221141108).
|
|
152
|
+
|
|
153
|
+
- Li, M., E.M. Rathje, J.P. Stewart, M.E. Ramos-Sepulveda, and Y.M. Hashash (2025). Regional adjustment to the NGA-East GMM for Texas, Oklahoma, and Kansas. _Earthquake Spectra_, doi: [10.1177/87552930251313817](https://doi.org/10.1177/87552930251313817).
|
|
141
154
|
|
|
142
|
-
-
|
|
155
|
+
- Mohammed, S., R. Shams, C.C. Nweke, T.E. Buckreis, M.D. Kohler, Y. Bozorgnia, and J.P. Stewart (2024). Usability of Community Seismic Network recordings for ground-motion modeling. _Earthquake Spectra_, 40(4): 2598-2622, doi: [10.1177/87552930241267749](https://doi.org/10.1177/87552930241267749).
|
|
143
156
|
|
|
144
|
-
-
|
|
157
|
+
- Moschetti M.P., E.M. Thompson, J.M. Rekoske, M. Hearne, P. Powers, D. McNamara, and C. Tape (2019). Ground‐Motion Amplification in Cook Inlet Region, Alaska, from Intermediate‐Depth Earthquakes, Including the 2018 7.1 Anchorage Earthquake. _Seismological Research Letters_, 91(1): 142–152, doi: [10.1785/0220190179](https://doi.org/10.1785/0220190179).
|
|
145
158
|
|
|
146
|
-
- Moschetti M.P.,
|
|
159
|
+
- Moschetti, M.P., B.T. Aagaard, S.K. Ahdi, J. Altekruse, O.S. Boyd, A.D. Frankel, J. Herrick, M.D. Petersen, P.M. Powers, S. Rezaeian, and A.M. Shumway (2024). The 2023 US national seismic hazard model: Ground-motion characterization for the conterminous United States. _Earthquake Spectra_, 40(2): 1158-1190, doi: [10.1177/87552930231223995](https://doi.org/10.1177/87552930231223995).
|
|
147
160
|
|
|
148
|
-
- Parker G
|
|
161
|
+
- Parker, G.A., and A.S. Baltay (2022). Empirical Map‐Based Nonergodic Models of Site Response in the Greater Los Angeles Area. _Bulletin of the Seismological Society of America_, 112(3): 1607–1629, doi: [10.1785/0120210175](https://doi.org/10.1785/0120210175)
|
|
149
162
|
|
|
150
|
-
- Rekoske J.M., E.M. Thompson, M.P. Moschetti, M. Hearne, B.T. Aagaard, G. Parker (2020). The 2019 Ridgecrest, California, Earthquake Sequence Ground Motions: Processed Records and Derived Intensity Metrics. _Seismological Research Letters_, 91
|
|
163
|
+
- Rekoske J.M., E.M. Thompson, M.P. Moschetti, M. Hearne, B.T. Aagaard, and G.A. Parker (2020). The 2019 Ridgecrest, California, Earthquake Sequence Ground Motions: Processed Records and Derived Intensity Metrics. _Seismological Research Letters_, 91(4): 2010–2023, doi: [10.1785/0220190292](https://doi.org/10.1785/0220190292)
|
|
151
164
|
|
|
152
165
|
# Disclaimer
|
|
153
166
|
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
# Introduction
|
|
2
|
+
This is a project designed to provide a number of functions related to parsing and processing earthquake ground motion data, building on top of the [ObsPy](https://github.com/obspy/obspy/wiki) library.
|
|
3
|
+
Most of the extensions that we provide are to handle strong motion data and related issues.
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
# Documentation
|
|
7
|
+
- Please note, we are in the process of improving the documentation and that there are some incomplete sections.
|
|
8
|
+
- The full documentation can be viewed locally by running the `docs/makedocs.sh` script.
|
|
9
|
+
- The documentation is also available [here](https://ghsc.code-pages.usgs.gov/esi/groundmotion-processing/).
|
|
10
|
+
- The MATLAB functions included in the `tools/matlab` directory include a short [tutorial](tools/matlab/readme.md)
|
|
11
|
+
|
|
12
|
+
# Getting Help
|
|
13
|
+
The developers can be reached at [gmprocess@usgs.gov](mailto:gmprocess@usgs.gov).
|
|
14
|
+
|
|
15
|
+
If you would like to post an issue to ask a question, request a new feature, or report a bug, you can do so at the [github mirror](https://github.com/DOI-USGS/ghsc-esi-groundmotion-processing) of this repository.
|
|
16
|
+
|
|
17
|
+
If you would like to contribute merge requests to this repository, please let us know and we can add you as a collaborator.
|
|
18
|
+
This will require that you create an account at code.usgs.gov, which is a more involved process than creating a personal account at gitub.com and posting to the issues on the github mirror.
|
|
19
|
+
|
|
20
|
+
# Suggested Citation
|
|
21
|
+
If you wish to cite this software please cite:
|
|
22
|
+
|
|
23
|
+
- Thompson, E.M., M. Hearne, B.T. Aagaard, J.M. Rekoske, C.B. Worden, M.P. Moschetti, H.E. Hunsinger, G.C. Ferragut, G.A. Parker, J.A. Smith, K.K. Smith, and A.R. Kottke (2024). USGS Automated Ground Motion Processing Software Version 2, U.S. Geological Survey software release, doi: [10.5066/P13HMKFJ](https://doi.org/10.5066/P13HMKFJ).
|
|
24
|
+
|
|
25
|
+
- Thompson, E.M., M. Hearne, B.T. Aagaard, J.M. Rekoske, C.B. Worden, M.P. Moschetti, H.E. Hunsinger, G.C. Ferragut, G.A. Parker, J.A. Smith, Smith, K.K., and A.R. Kottke (2025). Automated, Near Real‐Time Ground‐Motion Processing at the US Geological Survey. _Seismological Research Letters_, 96(1), pp.538-553, doi: [10.1785/0220240021](https://doi.org/10.1785/0220240021).
|
|
26
|
+
|
|
27
|
+
# Journal Articles
|
|
28
|
+
The list below is a subset of articles that made use of this software in their study. If you would like to have an article added to this list, please open an issue or email the developers.
|
|
29
|
+
|
|
30
|
+
- Ahdi, S.K., B.T. Aagaard, M.P. Moschetti, G.A. Parker, O.S. Boyd, and W.J. Stephenson (2024). Empirical ground-motion basin response in the California Great Valley, Reno, Nevada, and Portland, Oregon. _Earthquake Spectra_, 40(2): 1099-1131, doi: [10.1177/87552930241237250](https://doi.org/10.1177/87552930241237250).
|
|
31
|
+
|
|
32
|
+
- Boyd OS, D. Churchwell, M.P. Moschetti, et al. (2024). Sediment thickness map of United States Atlantic and Gulf Coastal Plain Strata, and their influence on earthquake ground motions. _Earthquake Spectra_, 40(1): 89-112, doi: [10.1177/87552930231204880](https://doi.org/10.1177/87552930231204880).
|
|
33
|
+
|
|
34
|
+
- Chatterjee, A., D.T. Trugman, G. Hirth, J. Lee, and V.C. Tsai (2024). High‐frequency ground motions of earthquakes correlate with fault network complexity. _Geophysical Research Letters_, 51(12), doi: [10.1029/2024GL109418](https://doi.org/10.1029/2024GL109418).
|
|
35
|
+
|
|
36
|
+
- Hirakawa, E., G.A. Parker, A. Baltay, and T. Hanks (2023). Rupture directivity of the 25 October 2022 Mw 5.1 Alum Rock earthquake. _The Seismic Record_, 3(2): 144-155, doi: [10.1785/0320230013](https://doi.org/10.1785/0320230013).
|
|
37
|
+
|
|
38
|
+
- Ji, C., A. Cabas, A. Kottke, M. Pilz, J. Macedo, and C. Liu (2023). A DesignSafe earthquake ground motion database for California and surrounding regions. _Earthquake Spectra_, 39(1): 702–721, doi: [10.1177/87552930221141108](https://doi.org/10.1177/87552930221141108).
|
|
39
|
+
|
|
40
|
+
- Li, M., E.M. Rathje, J.P. Stewart, M.E. Ramos-Sepulveda, and Y.M. Hashash (2025). Regional adjustment to the NGA-East GMM for Texas, Oklahoma, and Kansas. _Earthquake Spectra_, doi: [10.1177/87552930251313817](https://doi.org/10.1177/87552930251313817).
|
|
41
|
+
|
|
42
|
+
- Mohammed, S., R. Shams, C.C. Nweke, T.E. Buckreis, M.D. Kohler, Y. Bozorgnia, and J.P. Stewart (2024). Usability of Community Seismic Network recordings for ground-motion modeling. _Earthquake Spectra_, 40(4): 2598-2622, doi: [10.1177/87552930241267749](https://doi.org/10.1177/87552930241267749).
|
|
43
|
+
|
|
44
|
+
- Moschetti M.P., E.M. Thompson, J.M. Rekoske, M. Hearne, P. Powers, D. McNamara, and C. Tape (2019). Ground‐Motion Amplification in Cook Inlet Region, Alaska, from Intermediate‐Depth Earthquakes, Including the 2018 7.1 Anchorage Earthquake. _Seismological Research Letters_, 91(1): 142–152, doi: [10.1785/0220190179](https://doi.org/10.1785/0220190179).
|
|
45
|
+
|
|
46
|
+
- Moschetti, M.P., B.T. Aagaard, S.K. Ahdi, J. Altekruse, O.S. Boyd, A.D. Frankel, J. Herrick, M.D. Petersen, P.M. Powers, S. Rezaeian, and A.M. Shumway (2024). The 2023 US national seismic hazard model: Ground-motion characterization for the conterminous United States. _Earthquake Spectra_, 40(2): 1158-1190, doi: [10.1177/87552930231223995](https://doi.org/10.1177/87552930231223995).
|
|
47
|
+
|
|
48
|
+
- Parker, G.A., and A.S. Baltay (2022). Empirical Map‐Based Nonergodic Models of Site Response in the Greater Los Angeles Area. _Bulletin of the Seismological Society of America_, 112(3): 1607–1629, doi: [10.1785/0120210175](https://doi.org/10.1785/0120210175)
|
|
49
|
+
|
|
50
|
+
- Rekoske J.M., E.M. Thompson, M.P. Moschetti, M. Hearne, B.T. Aagaard, and G.A. Parker (2020). The 2019 Ridgecrest, California, Earthquake Sequence Ground Motions: Processed Records and Derived Intensity Metrics. _Seismological Research Letters_, 91(4): 2010–2023, doi: [10.1785/0220190292](https://doi.org/10.1785/0220190292)
|
|
51
|
+
|
|
52
|
+
# Disclaimer
|
|
53
|
+
|
|
54
|
+
Any use of trade, firm, or product names is for descriptive purposes only and does not imply endorsement by the U.S. Government.
|
|
@@ -1,4 +1,86 @@
|
|
|
1
1
|
[
|
|
2
|
+
{
|
|
3
|
+
"name": "groundmotion-processing",
|
|
4
|
+
"description": "Read and process ground motion waveform data",
|
|
5
|
+
"version": "v2.4.0",
|
|
6
|
+
"status": "Production",
|
|
7
|
+
"organization": "U.S. Geological Survey",
|
|
8
|
+
"vcs": "git",
|
|
9
|
+
"repositoryURL": "https://code.usgs.gov/ghsc/esi/groundmotion-processing.git",
|
|
10
|
+
"homepageURL": "https://code.usgs.gov/ghsc/esi/groundmotion-processing",
|
|
11
|
+
"downloadURL": "https://code.usgs.gov/ghsc/esi/groundmotion-processing/-/archive/v2.4.0/groundmotion-processing-v2.4.0.zip",
|
|
12
|
+
"disclaimerURL": "https://code.usgs.gov/ghsc/esi/groundmotion-processing/-/raw/v2.4.0/DISCLAIMER.md",
|
|
13
|
+
"permissions": {
|
|
14
|
+
"licenses": [
|
|
15
|
+
{
|
|
16
|
+
"name": "Public Domain, CC0-1.0",
|
|
17
|
+
"URL": "https://code.usgs.gov/ghsc/esi/groundmotion-processing/-/raw/v2.4.0/LICENSE.md"
|
|
18
|
+
}
|
|
19
|
+
],
|
|
20
|
+
"usageType": "openSource",
|
|
21
|
+
"exemptionText": null
|
|
22
|
+
},
|
|
23
|
+
"laborHours": 1,
|
|
24
|
+
"languages": [
|
|
25
|
+
"python"
|
|
26
|
+
],
|
|
27
|
+
"tags": [
|
|
28
|
+
"earthquake",
|
|
29
|
+
"impact",
|
|
30
|
+
"strong motion",
|
|
31
|
+
"amplitudes",
|
|
32
|
+
"ground motion",
|
|
33
|
+
"usg-artificial-intelligence"
|
|
34
|
+
],
|
|
35
|
+
"contact": {
|
|
36
|
+
"name": "Eric Thompson",
|
|
37
|
+
"email": "emthompson@usgs.gov"
|
|
38
|
+
},
|
|
39
|
+
"date": {
|
|
40
|
+
"metadataLastUpdated": "2025-04-04"
|
|
41
|
+
}
|
|
42
|
+
},
|
|
43
|
+
{
|
|
44
|
+
"name": "groundmotion-processing",
|
|
45
|
+
"description": "Read and process ground motion waveform data",
|
|
46
|
+
"version": "v2.3.0",
|
|
47
|
+
"status": "Production",
|
|
48
|
+
"organization": "U.S. Geological Survey",
|
|
49
|
+
"vcs": "git",
|
|
50
|
+
"repositoryURL": "https://code.usgs.gov/ghsc/esi/groundmotion-processing.git",
|
|
51
|
+
"homepageURL": "https://code.usgs.gov/ghsc/esi/groundmotion-processing",
|
|
52
|
+
"downloadURL": "https://code.usgs.gov/ghsc/esi/groundmotion-processing/-/archive/v2.3.0/groundmotion-processing-v2.3.0.zip",
|
|
53
|
+
"disclaimerURL": "https://code.usgs.gov/ghsc/esi/groundmotion-processing/-/raw/v2.3.0/DISCLAIMER.md",
|
|
54
|
+
"permissions": {
|
|
55
|
+
"licenses": [
|
|
56
|
+
{
|
|
57
|
+
"name": "Public Domain, CC0-1.0",
|
|
58
|
+
"URL": "https://code.usgs.gov/ghsc/esi/groundmotion-processing/-/raw/v2.3.0/LICENSE.md"
|
|
59
|
+
}
|
|
60
|
+
],
|
|
61
|
+
"usageType": "openSource",
|
|
62
|
+
"exemptionText": null
|
|
63
|
+
},
|
|
64
|
+
"laborHours": 1,
|
|
65
|
+
"languages": [
|
|
66
|
+
"python"
|
|
67
|
+
],
|
|
68
|
+
"tags": [
|
|
69
|
+
"earthquake",
|
|
70
|
+
"impact",
|
|
71
|
+
"strong motion",
|
|
72
|
+
"amplitudes",
|
|
73
|
+
"ground motion",
|
|
74
|
+
"usg-artificial-intelligence"
|
|
75
|
+
],
|
|
76
|
+
"contact": {
|
|
77
|
+
"name": "Eric Thompson",
|
|
78
|
+
"email": "emthompson@usgs.gov"
|
|
79
|
+
},
|
|
80
|
+
"date": {
|
|
81
|
+
"metadataLastUpdated": "2025-01-23"
|
|
82
|
+
}
|
|
83
|
+
},
|
|
2
84
|
{
|
|
3
85
|
"name": "groundmotion-processing",
|
|
4
86
|
"description": "Read and process ground motion waveform data",
|
|
@@ -8,11 +8,9 @@ echo "Installing ${VENV}...${cwd}"
|
|
|
8
8
|
unamestr=`uname`
|
|
9
9
|
if [ "$unamestr" == 'Linux' ]; then
|
|
10
10
|
prof=~/.bashrc
|
|
11
|
-
mini_conda_url=https://repo.continuum.io/miniconda/Miniconda3-latest-Linux-x86_64.sh
|
|
12
11
|
matplotlibdir=~/.config/matplotlib
|
|
13
12
|
elif [ "$unamestr" == 'FreeBSD' ] || [ "$unamestr" == 'Darwin' ]; then
|
|
14
13
|
prof=~/.bash_profile
|
|
15
|
-
mini_conda_url=https://repo.continuum.io/miniconda/Miniconda3-latest-MacOSX-x86_64.sh
|
|
16
14
|
matplotlibdir=~/.matplotlib
|
|
17
15
|
else
|
|
18
16
|
echo "Unsupported environment. Exiting."
|
|
@@ -39,9 +37,7 @@ elif [ ! grep -Fxq "backend" $matplotlibrc ]; then
|
|
|
39
37
|
echo "NOTE: A non-interactive matplotlib backend (Agg) has been set for this user."
|
|
40
38
|
else
|
|
41
39
|
sed -i '' 's/backend.*/backend : Agg/' $matplotlibrc
|
|
42
|
-
echo "###############"
|
|
43
40
|
echo "NOTE: $matplotlibrc has been changed to set 'backend : Agg'"
|
|
44
|
-
echo "###############"
|
|
45
41
|
fi
|
|
46
42
|
|
|
47
43
|
|
|
@@ -50,21 +46,45 @@ conda --version
|
|
|
50
46
|
if [ $? -ne 0 ]; then
|
|
51
47
|
echo "No conda detected, installing miniconda..."
|
|
52
48
|
|
|
53
|
-
|
|
49
|
+
command -v curl >/dev/null 2>&1 || { echo >&2 "Script requires curl but it's not installed. Aborting."; exit 1; }
|
|
50
|
+
|
|
51
|
+
miniforge_url="https://github.com/conda-forge/miniforge/releases/latest/download/Miniforge3-$(uname)-$(uname -m).sh"
|
|
52
|
+
curl -L $miniforge_url -o miniforge.sh &>/dev/null
|
|
53
|
+
|
|
54
|
+
# if miniforge.sh fails, bow out gracefully
|
|
55
|
+
if [ $? -ne 0 ];then
|
|
56
|
+
echo "Failed to run miniconda installer shell script. Exiting."
|
|
57
|
+
exit 1
|
|
58
|
+
fi
|
|
59
|
+
|
|
54
60
|
echo "Install directory: $HOME/miniconda"
|
|
55
61
|
|
|
56
|
-
bash
|
|
62
|
+
bash miniforge.sh -f -b -p $HOME/miniconda
|
|
57
63
|
|
|
58
64
|
# Need this to get conda into path
|
|
59
65
|
. $HOME/miniconda/etc/profile.d/conda.sh
|
|
66
|
+
|
|
67
|
+
rm miniforge.sh
|
|
60
68
|
else
|
|
61
69
|
echo "conda detected, installing $VENV environment..."
|
|
62
70
|
fi
|
|
63
71
|
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
72
|
+
# Update the conda tool
|
|
73
|
+
CVNUM=`conda -V | cut -f2 -d' '`
|
|
74
|
+
LATEST=`conda search conda | tail -1 | tr -s ' ' | cut -f2 -d" "`
|
|
75
|
+
echo "${CVNUM}"
|
|
76
|
+
echo "${LATEST}"
|
|
77
|
+
if [ ${LATEST} != ${CVNUM} ]; then
|
|
78
|
+
echo "##################Updating conda tool..."
|
|
79
|
+
CVERSION=`conda -V`
|
|
80
|
+
echo "Current conda version: ${CVERSION}"
|
|
81
|
+
conda update -n base -c defaults conda -y
|
|
82
|
+
CVERSION=`conda -V`
|
|
83
|
+
echo "New conda version: ${CVERSION}"
|
|
84
|
+
echo "##################Done updating conda tool..."
|
|
85
|
+
else
|
|
86
|
+
echo "conda ${CVNUM} already matches latest version ${LATEST}. No update required."
|
|
87
|
+
fi
|
|
68
88
|
|
|
69
89
|
# only add this line if it does not already exist
|
|
70
90
|
grep "/etc/profile.d/conda.sh" $prof
|
|
@@ -72,6 +92,9 @@ if [ $? -ne 0 ]; then
|
|
|
72
92
|
echo ". $_CONDA_ROOT/etc/profile.d/conda.sh" >> $prof
|
|
73
93
|
fi
|
|
74
94
|
|
|
95
|
+
# Set libmamba as solver
|
|
96
|
+
conda config --set solver libmamba &>/dev/null
|
|
97
|
+
|
|
75
98
|
# Start in conda base environment
|
|
76
99
|
echo "Activate base virtual environment"
|
|
77
100
|
conda activate base
|
|
@@ -87,7 +110,6 @@ if [ $? -ne 0 ]; then
|
|
|
87
110
|
exit
|
|
88
111
|
fi
|
|
89
112
|
|
|
90
|
-
|
|
91
113
|
# Activate the new environment
|
|
92
114
|
echo "Activating the $VENV virtual environment"
|
|
93
115
|
conda activate $VENV
|
|
@@ -357,8 +357,9 @@ class GMrecordsApp(object):
|
|
|
357
357
|
"(1) a single column with ComCat event IDs, or "
|
|
358
358
|
"(2) six columns in which those columns are: "
|
|
359
359
|
"event_id (string, no spaces), time (any ISO standard for date/time), "
|
|
360
|
-
"
|
|
361
|
-
"degrees), depth (float, km), magnitude (float)
|
|
360
|
+
"latitude (float, decimal degrees), longitude (float, decimal "
|
|
361
|
+
"degrees), depth (float, km), magnitude (float), and magnitude type "
|
|
362
|
+
"(string)."
|
|
362
363
|
),
|
|
363
364
|
)
|
|
364
365
|
|
|
@@ -111,6 +111,7 @@ class App:
|
|
|
111
111
|
msg = "Failed to download STREC results."
|
|
112
112
|
print(msg)
|
|
113
113
|
|
|
114
|
+
|
|
114
115
|
def cli():
|
|
115
116
|
"""Command line interface to the cwa_gather application."""
|
|
116
117
|
|
|
@@ -133,7 +134,7 @@ def cli():
|
|
|
133
134
|
- For "Channel", choose "HN?" for all strong motion stations.
|
|
134
135
|
- For "Start Time (UTC)", enter a date before the event of interest.
|
|
135
136
|
- For "End Time (UTC)", enter a date after the event of interest.
|
|
136
|
-
- "Label", doesn't matter
|
|
137
|
+
- "Label", doesn't matter because they don't use what you put here.
|
|
137
138
|
- Click the "Submit" button, and you should see a "Success!" pop up.
|
|
138
139
|
- Next will be a screen showing a list of all of your downloads.
|
|
139
140
|
- Right click on the most recent entry, it will be called "output.stationXML"
|
|
@@ -228,5 +229,6 @@ def cli():
|
|
|
228
229
|
app = App()
|
|
229
230
|
app.main(args.event_id, args.datafile, args.metadata)
|
|
230
231
|
|
|
232
|
+
|
|
231
233
|
if __name__ == "__main__":
|
|
232
234
|
cli()
|
|
@@ -276,7 +276,7 @@ def get_events_from_file(filename=None):
|
|
|
276
276
|
fields = line.split(",")
|
|
277
277
|
if len(fields) != 7:
|
|
278
278
|
raise IOError(
|
|
279
|
-
f"Expected
|
|
279
|
+
f"Expected 7 columns in events file '{filename}'. Error parsing line '{line}'."
|
|
280
280
|
)
|
|
281
281
|
event_values = {
|
|
282
282
|
"id": fields[0].strip(),
|
|
@@ -103,7 +103,7 @@ class StationStream(Stream):
|
|
|
103
103
|
if not isinstance(trace, StationTrace):
|
|
104
104
|
raise ValueError(
|
|
105
105
|
"Input Traces to StationStream must be of subtype "
|
|
106
|
-
"StationTrace unless an
|
|
106
|
+
"StationTrace unless an inventory is also provided."
|
|
107
107
|
)
|
|
108
108
|
else:
|
|
109
109
|
if not isinstance(trace, StationTrace):
|
|
@@ -136,23 +136,27 @@ class StationStream(Stream):
|
|
|
136
136
|
|
|
137
137
|
# If not, resample
|
|
138
138
|
if not success:
|
|
139
|
-
|
|
140
|
-
tr.
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
139
|
+
try:
|
|
140
|
+
for tr in self.traces:
|
|
141
|
+
tr.interpolate(
|
|
142
|
+
sampling_rate=1 / new_delta,
|
|
143
|
+
method="lanczos",
|
|
144
|
+
starttime=newstart,
|
|
145
|
+
npts=new_npts,
|
|
146
|
+
a=N_LANCZOS,
|
|
147
|
+
)
|
|
148
|
+
tr.set_provenance(
|
|
149
|
+
"interpolate",
|
|
150
|
+
{
|
|
151
|
+
"interpolation_method": "lanczos",
|
|
152
|
+
"new_number_of_samples": new_npts,
|
|
153
|
+
"new_start_time": newstart,
|
|
154
|
+
"a": N_LANCZOS,
|
|
155
|
+
},
|
|
156
|
+
)
|
|
157
|
+
except BaseException:
|
|
158
|
+
for tr in self.traces:
|
|
159
|
+
tr.fail("Traces within stream are misaligned.")
|
|
156
160
|
else:
|
|
157
161
|
# start/end times may be different but within tolerance
|
|
158
162
|
# to prevent further issues downstream, setting these
|
|
@@ -164,7 +168,7 @@ class StationStream(Stream):
|
|
|
164
168
|
if not isinstance(trace, StationTrace):
|
|
165
169
|
raise ValueError(
|
|
166
170
|
"Input Traces to StationStream must be of subtype "
|
|
167
|
-
"StationTrace unless an
|
|
171
|
+
"StationTrace unless an inventory is also provided."
|
|
168
172
|
)
|
|
169
173
|
else:
|
|
170
174
|
if not isinstance(trace, StationTrace):
|
|
@@ -184,8 +188,6 @@ class StationStream(Stream):
|
|
|
184
188
|
|
|
185
189
|
def validate(self):
|
|
186
190
|
"""Validation checks for Traces within a StationStream."""
|
|
187
|
-
logging.debug(self)
|
|
188
|
-
|
|
189
191
|
# Check that channel codes are unique_npts
|
|
190
192
|
self.__check_channels()
|
|
191
193
|
|
|
@@ -275,7 +277,7 @@ class StationStream(Stream):
|
|
|
275
277
|
return self.id
|
|
276
278
|
|
|
277
279
|
def get_net_sta(self):
|
|
278
|
-
"""Get just the network and station
|
|
280
|
+
"""Get just the network and station component of the ID."""
|
|
279
281
|
return ".".join(self.get_id().split(".")[0:2])
|
|
280
282
|
|
|
281
283
|
def get_net_sta_loc(self):
|
|
@@ -520,7 +522,6 @@ def _channel_from_stats(stats):
|
|
|
520
522
|
response = Response(instrument_sensitivity=sensitivity)
|
|
521
523
|
|
|
522
524
|
comments = Comment(stats.standard.comments)
|
|
523
|
-
logging.debug("channel: %s", stats.channel)
|
|
524
525
|
channel = Channel(
|
|
525
526
|
stats.channel,
|
|
526
527
|
stats.location,
|