sprit 0.1.72.dev0__tar.gz → 0.1.77.dev0__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.
- {sprit-0.1.72.dev0/sprit.egg-info → sprit-0.1.77.dev0}/PKG-INFO +1 -1
- {sprit-0.1.72.dev0 → sprit-0.1.77.dev0}/pyproject.toml +1 -1
- {sprit-0.1.72.dev0 → sprit-0.1.77.dev0}/setup.py +1 -1
- sprit-0.1.77.dev0/sprit/resources/settings/gui_theme.json +1 -0
- {sprit-0.1.72.dev0 → sprit-0.1.77.dev0}/sprit/sprit_cli.py +1 -0
- {sprit-0.1.72.dev0 → sprit-0.1.77.dev0}/sprit/sprit_gui.py +138 -133
- {sprit-0.1.72.dev0 → sprit-0.1.77.dev0}/sprit/sprit_hvsr.py +4 -5
- {sprit-0.1.72.dev0 → sprit-0.1.77.dev0}/sprit/sprit_jupyter_UI.py +42 -25
- {sprit-0.1.72.dev0 → sprit-0.1.77.dev0/sprit.egg-info}/PKG-INFO +1 -1
- sprit-0.1.72.dev0/sprit/resources/settings/gui_theme.json +0 -1
- {sprit-0.1.72.dev0 → sprit-0.1.77.dev0}/LICENSE +0 -0
- {sprit-0.1.72.dev0 → sprit-0.1.77.dev0}/README.md +0 -0
- {sprit-0.1.72.dev0 → sprit-0.1.77.dev0}/setup.cfg +0 -0
- {sprit-0.1.72.dev0 → sprit-0.1.77.dev0}/sprit/__init__.py +0 -0
- {sprit-0.1.72.dev0 → sprit-0.1.77.dev0}/sprit/resources/icon/sprit_icon.ico +0 -0
- {sprit-0.1.72.dev0 → sprit-0.1.77.dev0}/sprit/resources/icon/sprit_icon.png +0 -0
- {sprit-0.1.72.dev0 → sprit-0.1.77.dev0}/sprit/resources/icon/sprit_icon.xcf +0 -0
- {sprit-0.1.72.dev0 → sprit-0.1.77.dev0}/sprit/resources/icon/sprit_icon_alpha.ico +0 -0
- {sprit-0.1.72.dev0 → sprit-0.1.77.dev0}/sprit/resources/icon/sprit_icon_thickly.xcf +0 -0
- {sprit-0.1.72.dev0 → sprit-0.1.77.dev0}/sprit/resources/parameters.csv +0 -0
- {sprit-0.1.72.dev0 → sprit-0.1.77.dev0}/sprit/resources/rs3dv5plus_metadata.inv +0 -0
- {sprit-0.1.72.dev0 → sprit-0.1.77.dev0}/sprit/resources/rs3dv7_metadata.inv +0 -0
- {sprit-0.1.72.dev0 → sprit-0.1.77.dev0}/sprit/resources/sample_data/Batch_SampleData.csv +0 -0
- {sprit-0.1.72.dev0 → sprit-0.1.77.dev0}/sprit/resources/sample_data/SampleHVSRSite1.hvsr +0 -0
- {sprit-0.1.72.dev0 → sprit-0.1.77.dev0}/sprit/resources/sample_data/SampleHVSRSite10_BNE_4_AM.RAC84.00.2023.191_2023-07-10_2237-2259.MSEED +0 -0
- {sprit-0.1.72.dev0 → sprit-0.1.77.dev0}/sprit/resources/sample_data/SampleHVSRSite1_AM.RAC84.00.2023.046_2023-02-15_1704-1734.MSEED +0 -0
- {sprit-0.1.72.dev0 → sprit-0.1.77.dev0}/sprit/resources/sample_data/SampleHVSRSite2_AM.RAC84.00.2023-02-15_2132-2200.MSEED +0 -0
- {sprit-0.1.72.dev0 → sprit-0.1.77.dev0}/sprit/resources/sample_data/SampleHVSRSite3_AM.RAC84.00.2023.199_2023-07-18_1432-1455.MSEED +0 -0
- {sprit-0.1.72.dev0 → sprit-0.1.77.dev0}/sprit/resources/sample_data/SampleHVSRSite4_AM.RAC84.00.2023.199_2023-07-18_1609-1629.MSEED +0 -0
- {sprit-0.1.72.dev0 → sprit-0.1.77.dev0}/sprit/resources/sample_data/SampleHVSRSite5_AM.RAC84.00.2023.199_2023-07-18_2039-2100.MSEED +0 -0
- {sprit-0.1.72.dev0 → sprit-0.1.77.dev0}/sprit/resources/sample_data/SampleHVSRSite6_AM.RAC84.00.2023.192_2023-07-11_1510-1528.MSEED +0 -0
- {sprit-0.1.72.dev0 → sprit-0.1.77.dev0}/sprit/resources/sample_data/SampleHVSRSite7_BNE_4_AM.RAC84.00.2023.191_2023-07-10_2237-2259.MSEED +0 -0
- {sprit-0.1.72.dev0 → sprit-0.1.77.dev0}/sprit/resources/sample_data/SampleHVSRSite8_BNE_6_AM.RAC84.00.2023.191_2023-07-10_1806-1825.MSEED +0 -0
- {sprit-0.1.72.dev0 → sprit-0.1.77.dev0}/sprit/resources/sample_data/SampleHVSRSite9_BNE-2_AM.RAC84.00.2023.192_2023-07-11_0000-0011.MSEED +0 -0
- {sprit-0.1.72.dev0 → sprit-0.1.77.dev0}/sprit/resources/settings/instrument_settings.inst +0 -0
- {sprit-0.1.72.dev0 → sprit-0.1.77.dev0}/sprit/resources/settings/processing_settings.proc +0 -0
- {sprit-0.1.72.dev0 → sprit-0.1.77.dev0}/sprit/resources/themes/LICENSE +0 -0
- {sprit-0.1.72.dev0 → sprit-0.1.77.dev0}/sprit/resources/themes/README.md +0 -0
- {sprit-0.1.72.dev0 → sprit-0.1.77.dev0}/sprit/resources/themes/forest-dark/border-accent-hover.png +0 -0
- {sprit-0.1.72.dev0 → sprit-0.1.77.dev0}/sprit/resources/themes/forest-dark/border-accent.png +0 -0
- {sprit-0.1.72.dev0 → sprit-0.1.77.dev0}/sprit/resources/themes/forest-dark/border-basic.png +0 -0
- {sprit-0.1.72.dev0 → sprit-0.1.77.dev0}/sprit/resources/themes/forest-dark/border-hover.png +0 -0
- {sprit-0.1.72.dev0 → sprit-0.1.77.dev0}/sprit/resources/themes/forest-dark/border-invalid.png +0 -0
- {sprit-0.1.72.dev0 → sprit-0.1.77.dev0}/sprit/resources/themes/forest-dark/card.png +0 -0
- {sprit-0.1.72.dev0 → sprit-0.1.77.dev0}/sprit/resources/themes/forest-dark/check-accent.png +0 -0
- {sprit-0.1.72.dev0 → sprit-0.1.77.dev0}/sprit/resources/themes/forest-dark/check-basic.png +0 -0
- {sprit-0.1.72.dev0 → sprit-0.1.77.dev0}/sprit/resources/themes/forest-dark/check-hover.png +0 -0
- {sprit-0.1.72.dev0 → sprit-0.1.77.dev0}/sprit/resources/themes/forest-dark/check-tri-accent.png +0 -0
- {sprit-0.1.72.dev0 → sprit-0.1.77.dev0}/sprit/resources/themes/forest-dark/check-tri-basic.png +0 -0
- {sprit-0.1.72.dev0 → sprit-0.1.77.dev0}/sprit/resources/themes/forest-dark/check-tri-hover.png +0 -0
- {sprit-0.1.72.dev0 → sprit-0.1.77.dev0}/sprit/resources/themes/forest-dark/check-unsel-accent.png +0 -0
- {sprit-0.1.72.dev0 → sprit-0.1.77.dev0}/sprit/resources/themes/forest-dark/check-unsel-basic.png +0 -0
- {sprit-0.1.72.dev0 → sprit-0.1.77.dev0}/sprit/resources/themes/forest-dark/check-unsel-hover.png +0 -0
- {sprit-0.1.72.dev0 → sprit-0.1.77.dev0}/sprit/resources/themes/forest-dark/check-unsel-pressed.png +0 -0
- {sprit-0.1.72.dev0 → sprit-0.1.77.dev0}/sprit/resources/themes/forest-dark/combo-button-basic.png +0 -0
- {sprit-0.1.72.dev0 → sprit-0.1.77.dev0}/sprit/resources/themes/forest-dark/combo-button-focus.png +0 -0
- {sprit-0.1.72.dev0 → sprit-0.1.77.dev0}/sprit/resources/themes/forest-dark/combo-button-hover.png +0 -0
- {sprit-0.1.72.dev0 → sprit-0.1.77.dev0}/sprit/resources/themes/forest-dark/down.png +0 -0
- {sprit-0.1.72.dev0 → sprit-0.1.77.dev0}/sprit/resources/themes/forest-dark/empty.png +0 -0
- {sprit-0.1.72.dev0 → sprit-0.1.77.dev0}/sprit/resources/themes/forest-dark/hor-accent.png +0 -0
- {sprit-0.1.72.dev0 → sprit-0.1.77.dev0}/sprit/resources/themes/forest-dark/hor-basic.png +0 -0
- {sprit-0.1.72.dev0 → sprit-0.1.77.dev0}/sprit/resources/themes/forest-dark/hor-hover.png +0 -0
- {sprit-0.1.72.dev0 → sprit-0.1.77.dev0}/sprit/resources/themes/forest-dark/notebook.png +0 -0
- {sprit-0.1.72.dev0 → sprit-0.1.77.dev0}/sprit/resources/themes/forest-dark/off-accent.png +0 -0
- {sprit-0.1.72.dev0 → sprit-0.1.77.dev0}/sprit/resources/themes/forest-dark/off-basic.png +0 -0
- {sprit-0.1.72.dev0 → sprit-0.1.77.dev0}/sprit/resources/themes/forest-dark/off-hover.png +0 -0
- {sprit-0.1.72.dev0 → sprit-0.1.77.dev0}/sprit/resources/themes/forest-dark/on-accent.png +0 -0
- {sprit-0.1.72.dev0 → sprit-0.1.77.dev0}/sprit/resources/themes/forest-dark/on-basic.png +0 -0
- {sprit-0.1.72.dev0 → sprit-0.1.77.dev0}/sprit/resources/themes/forest-dark/on-hover.png +0 -0
- {sprit-0.1.72.dev0 → sprit-0.1.77.dev0}/sprit/resources/themes/forest-dark/radio-accent.png +0 -0
- {sprit-0.1.72.dev0 → sprit-0.1.77.dev0}/sprit/resources/themes/forest-dark/radio-basic.png +0 -0
- {sprit-0.1.72.dev0 → sprit-0.1.77.dev0}/sprit/resources/themes/forest-dark/radio-hover.png +0 -0
- {sprit-0.1.72.dev0 → sprit-0.1.77.dev0}/sprit/resources/themes/forest-dark/radio-tri-accent.png +0 -0
- {sprit-0.1.72.dev0 → sprit-0.1.77.dev0}/sprit/resources/themes/forest-dark/radio-tri-basic.png +0 -0
- {sprit-0.1.72.dev0 → sprit-0.1.77.dev0}/sprit/resources/themes/forest-dark/radio-tri-hover.png +0 -0
- {sprit-0.1.72.dev0 → sprit-0.1.77.dev0}/sprit/resources/themes/forest-dark/radio-unsel-accent.png +0 -0
- {sprit-0.1.72.dev0 → sprit-0.1.77.dev0}/sprit/resources/themes/forest-dark/radio-unsel-basic.png +0 -0
- {sprit-0.1.72.dev0 → sprit-0.1.77.dev0}/sprit/resources/themes/forest-dark/radio-unsel-hover.png +0 -0
- {sprit-0.1.72.dev0 → sprit-0.1.77.dev0}/sprit/resources/themes/forest-dark/radio-unsel-pressed.png +0 -0
- {sprit-0.1.72.dev0 → sprit-0.1.77.dev0}/sprit/resources/themes/forest-dark/rect-accent-hover.png +0 -0
- {sprit-0.1.72.dev0 → sprit-0.1.77.dev0}/sprit/resources/themes/forest-dark/rect-accent.png +0 -0
- {sprit-0.1.72.dev0 → sprit-0.1.77.dev0}/sprit/resources/themes/forest-dark/rect-basic.png +0 -0
- {sprit-0.1.72.dev0 → sprit-0.1.77.dev0}/sprit/resources/themes/forest-dark/rect-hover.png +0 -0
- {sprit-0.1.72.dev0 → sprit-0.1.77.dev0}/sprit/resources/themes/forest-dark/right.png +0 -0
- {sprit-0.1.72.dev0 → sprit-0.1.77.dev0}/sprit/resources/themes/forest-dark/scale-hor.png +0 -0
- {sprit-0.1.72.dev0 → sprit-0.1.77.dev0}/sprit/resources/themes/forest-dark/scale-vert.png +0 -0
- {sprit-0.1.72.dev0 → sprit-0.1.77.dev0}/sprit/resources/themes/forest-dark/separator.png +0 -0
- {sprit-0.1.72.dev0 → sprit-0.1.77.dev0}/sprit/resources/themes/forest-dark/sizegrip.png +0 -0
- {sprit-0.1.72.dev0 → sprit-0.1.77.dev0}/sprit/resources/themes/forest-dark/spin-button-down-basic.png +0 -0
- {sprit-0.1.72.dev0 → sprit-0.1.77.dev0}/sprit/resources/themes/forest-dark/spin-button-down-focus.png +0 -0
- {sprit-0.1.72.dev0 → sprit-0.1.77.dev0}/sprit/resources/themes/forest-dark/spin-button-up.png +0 -0
- {sprit-0.1.72.dev0 → sprit-0.1.77.dev0}/sprit/resources/themes/forest-dark/tab-accent.png +0 -0
- {sprit-0.1.72.dev0 → sprit-0.1.77.dev0}/sprit/resources/themes/forest-dark/tab-basic.png +0 -0
- {sprit-0.1.72.dev0 → sprit-0.1.77.dev0}/sprit/resources/themes/forest-dark/tab-hover.png +0 -0
- {sprit-0.1.72.dev0 → sprit-0.1.77.dev0}/sprit/resources/themes/forest-dark/thumb-hor-accent.png +0 -0
- {sprit-0.1.72.dev0 → sprit-0.1.77.dev0}/sprit/resources/themes/forest-dark/thumb-hor-basic.png +0 -0
- {sprit-0.1.72.dev0 → sprit-0.1.77.dev0}/sprit/resources/themes/forest-dark/thumb-hor-hover.png +0 -0
- {sprit-0.1.72.dev0 → sprit-0.1.77.dev0}/sprit/resources/themes/forest-dark/thumb-vert-accent.png +0 -0
- {sprit-0.1.72.dev0 → sprit-0.1.77.dev0}/sprit/resources/themes/forest-dark/thumb-vert-basic.png +0 -0
- {sprit-0.1.72.dev0 → sprit-0.1.77.dev0}/sprit/resources/themes/forest-dark/thumb-vert-hover.png +0 -0
- {sprit-0.1.72.dev0 → sprit-0.1.77.dev0}/sprit/resources/themes/forest-dark/tree-basic.png +0 -0
- {sprit-0.1.72.dev0 → sprit-0.1.77.dev0}/sprit/resources/themes/forest-dark/tree-pressed.png +0 -0
- {sprit-0.1.72.dev0 → sprit-0.1.77.dev0}/sprit/resources/themes/forest-dark/up.png +0 -0
- {sprit-0.1.72.dev0 → sprit-0.1.77.dev0}/sprit/resources/themes/forest-dark/vert-accent.png +0 -0
- {sprit-0.1.72.dev0 → sprit-0.1.77.dev0}/sprit/resources/themes/forest-dark/vert-basic.png +0 -0
- {sprit-0.1.72.dev0 → sprit-0.1.77.dev0}/sprit/resources/themes/forest-dark/vert-hover.png +0 -0
- {sprit-0.1.72.dev0 → sprit-0.1.77.dev0}/sprit/resources/themes/forest-dark.tcl +0 -0
- {sprit-0.1.72.dev0 → sprit-0.1.77.dev0}/sprit/resources/themes/forest-light/border-accent-hover.png +0 -0
- {sprit-0.1.72.dev0 → sprit-0.1.77.dev0}/sprit/resources/themes/forest-light/border-accent.png +0 -0
- {sprit-0.1.72.dev0 → sprit-0.1.77.dev0}/sprit/resources/themes/forest-light/border-basic.png +0 -0
- {sprit-0.1.72.dev0 → sprit-0.1.77.dev0}/sprit/resources/themes/forest-light/border-hover.png +0 -0
- {sprit-0.1.72.dev0 → sprit-0.1.77.dev0}/sprit/resources/themes/forest-light/border-invalid.png +0 -0
- {sprit-0.1.72.dev0 → sprit-0.1.77.dev0}/sprit/resources/themes/forest-light/card.png +0 -0
- {sprit-0.1.72.dev0 → sprit-0.1.77.dev0}/sprit/resources/themes/forest-light/check-accent.png +0 -0
- {sprit-0.1.72.dev0 → sprit-0.1.77.dev0}/sprit/resources/themes/forest-light/check-basic.png +0 -0
- {sprit-0.1.72.dev0 → sprit-0.1.77.dev0}/sprit/resources/themes/forest-light/check-hover.png +0 -0
- {sprit-0.1.72.dev0 → sprit-0.1.77.dev0}/sprit/resources/themes/forest-light/check-tri-accent.png +0 -0
- {sprit-0.1.72.dev0 → sprit-0.1.77.dev0}/sprit/resources/themes/forest-light/check-tri-basic.png +0 -0
- {sprit-0.1.72.dev0 → sprit-0.1.77.dev0}/sprit/resources/themes/forest-light/check-tri-hover.png +0 -0
- {sprit-0.1.72.dev0 → sprit-0.1.77.dev0}/sprit/resources/themes/forest-light/check-unsel-accent.png +0 -0
- {sprit-0.1.72.dev0 → sprit-0.1.77.dev0}/sprit/resources/themes/forest-light/check-unsel-basic.png +0 -0
- {sprit-0.1.72.dev0 → sprit-0.1.77.dev0}/sprit/resources/themes/forest-light/check-unsel-hover.png +0 -0
- {sprit-0.1.72.dev0 → sprit-0.1.77.dev0}/sprit/resources/themes/forest-light/check-unsel-pressed.png +0 -0
- {sprit-0.1.72.dev0 → sprit-0.1.77.dev0}/sprit/resources/themes/forest-light/combo-button-basic.png +0 -0
- {sprit-0.1.72.dev0 → sprit-0.1.77.dev0}/sprit/resources/themes/forest-light/combo-button-focus.png +0 -0
- {sprit-0.1.72.dev0 → sprit-0.1.77.dev0}/sprit/resources/themes/forest-light/combo-button-hover.png +0 -0
- {sprit-0.1.72.dev0 → sprit-0.1.77.dev0}/sprit/resources/themes/forest-light/down-focus.png +0 -0
- {sprit-0.1.72.dev0 → sprit-0.1.77.dev0}/sprit/resources/themes/forest-light/down.png +0 -0
- {sprit-0.1.72.dev0 → sprit-0.1.77.dev0}/sprit/resources/themes/forest-light/empty.png +0 -0
- {sprit-0.1.72.dev0 → sprit-0.1.77.dev0}/sprit/resources/themes/forest-light/hor-accent.png +0 -0
- {sprit-0.1.72.dev0 → sprit-0.1.77.dev0}/sprit/resources/themes/forest-light/hor-basic.png +0 -0
- {sprit-0.1.72.dev0 → sprit-0.1.77.dev0}/sprit/resources/themes/forest-light/hor-hover.png +0 -0
- {sprit-0.1.72.dev0 → sprit-0.1.77.dev0}/sprit/resources/themes/forest-light/notebook.png +0 -0
- {sprit-0.1.72.dev0 → sprit-0.1.77.dev0}/sprit/resources/themes/forest-light/off-accent.png +0 -0
- {sprit-0.1.72.dev0 → sprit-0.1.77.dev0}/sprit/resources/themes/forest-light/off-basic.png +0 -0
- {sprit-0.1.72.dev0 → sprit-0.1.77.dev0}/sprit/resources/themes/forest-light/off-hover.png +0 -0
- {sprit-0.1.72.dev0 → sprit-0.1.77.dev0}/sprit/resources/themes/forest-light/on-accent.png +0 -0
- {sprit-0.1.72.dev0 → sprit-0.1.77.dev0}/sprit/resources/themes/forest-light/on-basic.png +0 -0
- {sprit-0.1.72.dev0 → sprit-0.1.77.dev0}/sprit/resources/themes/forest-light/on-hover.png +0 -0
- {sprit-0.1.72.dev0 → sprit-0.1.77.dev0}/sprit/resources/themes/forest-light/radio-accent.png +0 -0
- {sprit-0.1.72.dev0 → sprit-0.1.77.dev0}/sprit/resources/themes/forest-light/radio-basic.png +0 -0
- {sprit-0.1.72.dev0 → sprit-0.1.77.dev0}/sprit/resources/themes/forest-light/radio-hover.png +0 -0
- {sprit-0.1.72.dev0 → sprit-0.1.77.dev0}/sprit/resources/themes/forest-light/radio-tri-accent.png +0 -0
- {sprit-0.1.72.dev0 → sprit-0.1.77.dev0}/sprit/resources/themes/forest-light/radio-tri-basic.png +0 -0
- {sprit-0.1.72.dev0 → sprit-0.1.77.dev0}/sprit/resources/themes/forest-light/radio-tri-hover.png +0 -0
- {sprit-0.1.72.dev0 → sprit-0.1.77.dev0}/sprit/resources/themes/forest-light/radio-unsel-accent.png +0 -0
- {sprit-0.1.72.dev0 → sprit-0.1.77.dev0}/sprit/resources/themes/forest-light/radio-unsel-basic.png +0 -0
- {sprit-0.1.72.dev0 → sprit-0.1.77.dev0}/sprit/resources/themes/forest-light/radio-unsel-hover.png +0 -0
- {sprit-0.1.72.dev0 → sprit-0.1.77.dev0}/sprit/resources/themes/forest-light/radio-unsel-pressed.png +0 -0
- {sprit-0.1.72.dev0 → sprit-0.1.77.dev0}/sprit/resources/themes/forest-light/rect-accent-hover.png +0 -0
- {sprit-0.1.72.dev0 → sprit-0.1.77.dev0}/sprit/resources/themes/forest-light/rect-accent.png +0 -0
- {sprit-0.1.72.dev0 → sprit-0.1.77.dev0}/sprit/resources/themes/forest-light/rect-basic.png +0 -0
- {sprit-0.1.72.dev0 → sprit-0.1.77.dev0}/sprit/resources/themes/forest-light/rect-hover.png +0 -0
- {sprit-0.1.72.dev0 → sprit-0.1.77.dev0}/sprit/resources/themes/forest-light/right-focus.png +0 -0
- {sprit-0.1.72.dev0 → sprit-0.1.77.dev0}/sprit/resources/themes/forest-light/right.png +0 -0
- {sprit-0.1.72.dev0 → sprit-0.1.77.dev0}/sprit/resources/themes/forest-light/scale-hor.png +0 -0
- {sprit-0.1.72.dev0 → sprit-0.1.77.dev0}/sprit/resources/themes/forest-light/scale-vert.png +0 -0
- {sprit-0.1.72.dev0 → sprit-0.1.77.dev0}/sprit/resources/themes/forest-light/separator.png +0 -0
- {sprit-0.1.72.dev0 → sprit-0.1.77.dev0}/sprit/resources/themes/forest-light/sizegrip.png +0 -0
- {sprit-0.1.72.dev0 → sprit-0.1.77.dev0}/sprit/resources/themes/forest-light/spin-button-down-basic.png +0 -0
- {sprit-0.1.72.dev0 → sprit-0.1.77.dev0}/sprit/resources/themes/forest-light/spin-button-down-focus.png +0 -0
- {sprit-0.1.72.dev0 → sprit-0.1.77.dev0}/sprit/resources/themes/forest-light/spin-button-up.png +0 -0
- {sprit-0.1.72.dev0 → sprit-0.1.77.dev0}/sprit/resources/themes/forest-light/tab-accent.png +0 -0
- {sprit-0.1.72.dev0 → sprit-0.1.77.dev0}/sprit/resources/themes/forest-light/tab-basic.png +0 -0
- {sprit-0.1.72.dev0 → sprit-0.1.77.dev0}/sprit/resources/themes/forest-light/tab-hover.png +0 -0
- {sprit-0.1.72.dev0 → sprit-0.1.77.dev0}/sprit/resources/themes/forest-light/thumb-hor-accent.png +0 -0
- {sprit-0.1.72.dev0 → sprit-0.1.77.dev0}/sprit/resources/themes/forest-light/thumb-hor-basic.png +0 -0
- {sprit-0.1.72.dev0 → sprit-0.1.77.dev0}/sprit/resources/themes/forest-light/thumb-hor-hover.png +0 -0
- {sprit-0.1.72.dev0 → sprit-0.1.77.dev0}/sprit/resources/themes/forest-light/thumb-vert-accent.png +0 -0
- {sprit-0.1.72.dev0 → sprit-0.1.77.dev0}/sprit/resources/themes/forest-light/thumb-vert-basic.png +0 -0
- {sprit-0.1.72.dev0 → sprit-0.1.77.dev0}/sprit/resources/themes/forest-light/thumb-vert-hover.png +0 -0
- {sprit-0.1.72.dev0 → sprit-0.1.77.dev0}/sprit/resources/themes/forest-light/tree-basic.png +0 -0
- {sprit-0.1.72.dev0 → sprit-0.1.77.dev0}/sprit/resources/themes/forest-light/tree-pressed.png +0 -0
- {sprit-0.1.72.dev0 → sprit-0.1.77.dev0}/sprit/resources/themes/forest-light/up.png +0 -0
- {sprit-0.1.72.dev0 → sprit-0.1.77.dev0}/sprit/resources/themes/forest-light/vert-accent.png +0 -0
- {sprit-0.1.72.dev0 → sprit-0.1.77.dev0}/sprit/resources/themes/forest-light/vert-basic.png +0 -0
- {sprit-0.1.72.dev0 → sprit-0.1.77.dev0}/sprit/resources/themes/forest-light/vert-hover.png +0 -0
- {sprit-0.1.72.dev0 → sprit-0.1.77.dev0}/sprit/resources/themes/forest-light.tcl +0 -0
- {sprit-0.1.72.dev0 → sprit-0.1.77.dev0}/sprit/sprit_utils.py +0 -0
- {sprit-0.1.72.dev0 → sprit-0.1.77.dev0}/sprit.egg-info/SOURCES.txt +0 -0
- {sprit-0.1.72.dev0 → sprit-0.1.77.dev0}/sprit.egg-info/dependency_links.txt +0 -0
- {sprit-0.1.72.dev0 → sprit-0.1.77.dev0}/sprit.egg-info/entry_points.txt +0 -0
- {sprit-0.1.72.dev0 → sprit-0.1.77.dev0}/sprit.egg-info/requires.txt +0 -0
- {sprit-0.1.72.dev0 → sprit-0.1.77.dev0}/sprit.egg-info/top_level.txt +0 -0
|
@@ -7,7 +7,7 @@ name = "sprit"
|
|
|
7
7
|
authors = [{name="Riley Balikian"}, {name="Hongyu Xaio"}]
|
|
8
8
|
dynamic = ["readme"]
|
|
9
9
|
license = {file = "LICENSE"}
|
|
10
|
-
version="0.1.
|
|
10
|
+
version="0.1.77-dev"
|
|
11
11
|
description = "A package for processing and analyzing HVSR (Horizontal to Vertical Spectral Ratio) data"
|
|
12
12
|
keywords = ["HVSR", "seismic", "horizontal to vertical spectral ratio", "obspy", 'geology', 'geophysics', 'geotechnical']
|
|
13
13
|
requires-python = ">=3.9"
|
|
@@ -7,7 +7,7 @@ setup(
|
|
|
7
7
|
name="sprit",
|
|
8
8
|
author= "Riley Balikian",
|
|
9
9
|
author_email = "balikian@illinois.edu",
|
|
10
|
-
version="0.1.
|
|
10
|
+
version="0.1.77-dev",
|
|
11
11
|
package_data={'sprit': ['resources/*', 'resources/icon/*', 'resources/themes/*', 'resources/themes/forest-dark/*',
|
|
12
12
|
'resources/themes/forest-light/*', 'resources/sample_data/*','resources/settings/*']},
|
|
13
13
|
long_description_content_type="text/markdown",
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"theme_name": "forest-dark"}
|
|
@@ -36,6 +36,7 @@ except: #For local testing
|
|
|
36
36
|
|
|
37
37
|
global spritApp
|
|
38
38
|
global current_theme_name
|
|
39
|
+
global SPRIT_App
|
|
39
40
|
|
|
40
41
|
resource_dir = pathlib.Path(pkg_resources.resource_filename(__name__, 'resources/'))
|
|
41
42
|
settings_dir = resource_dir.joinpath('settings')
|
|
@@ -44,109 +45,6 @@ with open(gui_theme_file, 'r') as f:
|
|
|
44
45
|
curr_gui_dict = json.load(f)
|
|
45
46
|
current_theme_name = curr_gui_dict['theme_name']
|
|
46
47
|
|
|
47
|
-
#Decorator that catches errors and warnings (to be modified later for gui)
|
|
48
|
-
def catch_errors(func):
|
|
49
|
-
#Define a local function to get a list of warnings that we'll use in the output
|
|
50
|
-
def get_warning_msg_list(w):
|
|
51
|
-
messageList = []
|
|
52
|
-
#Collect warnings that happened before we got to the error
|
|
53
|
-
if w:
|
|
54
|
-
hasWarnings = True
|
|
55
|
-
for wi in w:
|
|
56
|
-
warning_category = type(wi.message).__name__.title().replace('warning','Warning')
|
|
57
|
-
#if w.line is None:
|
|
58
|
-
# w.line = linecache.getline(wi.filename, wi.lineno)
|
|
59
|
-
warning_lineNo = wi.lineno
|
|
60
|
-
warning_message = str(wi.message)
|
|
61
|
-
# append the warning category and message to messageList so we get all warnings
|
|
62
|
-
messageList.append(f'{warning_category} ({warning_lineNo}): {warning_message}')
|
|
63
|
-
return messageList
|
|
64
|
-
|
|
65
|
-
# use functools.wraps to preserve the original function's metadata
|
|
66
|
-
@functools.wraps(func)
|
|
67
|
-
def wrapper(*args, **kwargs):
|
|
68
|
-
result = None
|
|
69
|
-
# use the global keyword to access the error_message and error_category variables
|
|
70
|
-
global error_message
|
|
71
|
-
global error_category
|
|
72
|
-
|
|
73
|
-
messageList = []
|
|
74
|
-
hasWarnings = False
|
|
75
|
-
# use a try-except block to catch any exceptions
|
|
76
|
-
#result = func(*args, **kwargs)
|
|
77
|
-
try:
|
|
78
|
-
# use a context manager to catch any warnings
|
|
79
|
-
with warnings.catch_warnings(record=True) as w:
|
|
80
|
-
warnings.simplefilter('always')
|
|
81
|
-
# call the original function with the given arguments
|
|
82
|
-
result = func(*args, **kwargs)
|
|
83
|
-
|
|
84
|
-
#Get message list, [] if no messages, doesn't run at all if Error/exception in func
|
|
85
|
-
messageList = get_warning_msg_list(w)
|
|
86
|
-
if messageList == []:
|
|
87
|
-
return result
|
|
88
|
-
else:
|
|
89
|
-
warningMessage = "WARNING:"
|
|
90
|
-
for msg in messageList:
|
|
91
|
-
warningMessage = "\n {}".format(msg)
|
|
92
|
-
|
|
93
|
-
messagebox.showwarning(title='WARNINGS', message=warningMessage)
|
|
94
|
-
|
|
95
|
-
except Exception as e:
|
|
96
|
-
messageList = get_warning_msg_list(w)
|
|
97
|
-
errorObj = sys.exc_info()[2]
|
|
98
|
-
|
|
99
|
-
mainErrText = sys.exc_info()[1]
|
|
100
|
-
|
|
101
|
-
mainErrTb = traceback.extract_tb(sys.exc_info()[2])[-1]
|
|
102
|
-
mainErrFilePath = pathlib.Path(mainErrTb[0])
|
|
103
|
-
|
|
104
|
-
mainErrFileName = mainErrFilePath.stem
|
|
105
|
-
mainErrLineNo = mainErrTb[1]
|
|
106
|
-
mainErrFunc = mainErrTb[2]
|
|
107
|
-
mainErrCodeLine = mainErrTb[3]
|
|
108
|
-
|
|
109
|
-
errLineNo1 = str(traceback.extract_tb(sys.exc_info()[2])[-1].lineno)
|
|
110
|
-
error_category = type(e).__name__.title().replace('error', 'Error')
|
|
111
|
-
error_message = f"{e} ({errLineNo1})"
|
|
112
|
-
|
|
113
|
-
#Get message list, [] if no messages, doesn't run at all if Error/exception in func
|
|
114
|
-
warningMessageList = get_warning_msg_list(w)
|
|
115
|
-
|
|
116
|
-
#Build error messages
|
|
117
|
-
tbTuple0 = sys.exc_info()[0]
|
|
118
|
-
tbTuple1 = sys.exc_info()[1]
|
|
119
|
-
tbTuple2 = traceback.extract_tb(sys.exc_info()[2])
|
|
120
|
-
|
|
121
|
-
logMsg = f"**ERROR**\n{tbTuple0.__name__}: {tbTuple1}"
|
|
122
|
-
dialogErrMsg = logMsg.split(':')[1]
|
|
123
|
-
for tb in tbTuple2:
|
|
124
|
-
logMsg = logMsg + '\n\t'
|
|
125
|
-
logMsg = logMsg + f"{pathlib.Path(tb[0]).stem}.{tb[2]}(): {tb[3]} (Line {tb[1]})"
|
|
126
|
-
dialogErrMsg = dialogErrMsg + f"\n{pathlib.Path(tb[0]).stem}.{tb[2]}(), Line {tb[1]}"
|
|
127
|
-
logMsg = logMsg + '\n\n'
|
|
128
|
-
|
|
129
|
-
#fullErrorMessage = f'ERROR {mainErrFileName}.{mainErrFunc} ({mainErrLineNo}): {mainErrText} \n\n {mainErrFileName} Line {mainErrLineNo}: {mainErrCodeLine}.'
|
|
130
|
-
if messageList == []:
|
|
131
|
-
pass
|
|
132
|
-
else:
|
|
133
|
-
dialogErrMsg = dialogErrMsg+"\n\n Additional Warnings along the way. See Log for more information."
|
|
134
|
-
logMsg = logMsg + "\n\n\t *WARNING(S)*\n\tAdditional Warnings along the way:"
|
|
135
|
-
for addMsg in warningMessageList:
|
|
136
|
-
logMsg = logMsg+"\n\t\t{}".format(addMsg)
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
SPRIT_App.log_errorMsg(spritApp, logMsg)
|
|
140
|
-
|
|
141
|
-
messagebox.showerror(title=f'ERROR ({error_category})',
|
|
142
|
-
message=dialogErrMsg)
|
|
143
|
-
update_progress_bars(100)
|
|
144
|
-
|
|
145
|
-
# return the result of the function or the error/warning messages and categories
|
|
146
|
-
return result
|
|
147
|
-
# return the wrapper function
|
|
148
|
-
return wrapper
|
|
149
|
-
|
|
150
48
|
class SPRIT_App:
|
|
151
49
|
global spritApp
|
|
152
50
|
def __init__(self, master):
|
|
@@ -493,51 +391,51 @@ class SPRIT_App:
|
|
|
493
391
|
self.tab_control.select(self.preview_data_tab)
|
|
494
392
|
return self.hvsr_data
|
|
495
393
|
|
|
496
|
-
def report_results(hvsr_results):
|
|
497
|
-
self.curveTest1ResultText.configure(text=hvsr_results['BestPeak']['Report']['Lw'][:-1])
|
|
498
|
-
self.curveTest1Result.configure(text=hvsr_results['BestPeak']['Report']['Lw'][-1])
|
|
394
|
+
def report_results(hvsr_results, azimuth='HV'):
|
|
395
|
+
self.curveTest1ResultText.configure(text=hvsr_results['BestPeak'][azimuth]['Report']['Lw'][:-1])
|
|
396
|
+
self.curveTest1Result.configure(text=hvsr_results['BestPeak'][azimuth]['Report']['Lw'][-1])
|
|
499
397
|
|
|
500
|
-
self.curveTest2ResultText.configure(text=hvsr_results['BestPeak']['Report']['Nc'][:-1])
|
|
501
|
-
self.curveTest2Result.configure(text=hvsr_results['BestPeak']['Report']['Nc'][-1])
|
|
398
|
+
self.curveTest2ResultText.configure(text=hvsr_results['BestPeak'][azimuth]['Report']['Nc'][:-1])
|
|
399
|
+
self.curveTest2Result.configure(text=hvsr_results['BestPeak'][azimuth]['Report']['Nc'][-1])
|
|
502
400
|
|
|
503
|
-
self.curveTest3ResultText.configure(text=hvsr_results['BestPeak']['Report']['σ_A(f)'][:-1])
|
|
504
|
-
self.curveTest3Result.configure(text=hvsr_results['BestPeak']['Report']['σ_A(f)'][-1])
|
|
401
|
+
self.curveTest3ResultText.configure(text=hvsr_results['BestPeak'][azimuth]['Report']['σ_A(f)'][:-1])
|
|
402
|
+
self.curveTest3Result.configure(text=hvsr_results['BestPeak'][azimuth]['Report']['σ_A(f)'][-1])
|
|
505
403
|
|
|
506
|
-
curvePass = (hvsr_results['BestPeak']['PassList']['WindowLengthFreq.'] +
|
|
507
|
-
hvsr_results['BestPeak']['PassList']['SignificantCycles']+
|
|
508
|
-
hvsr_results['BestPeak']['PassList']['LowCurveStDevOverTime']) > 2
|
|
404
|
+
curvePass = (hvsr_results['BestPeak'][azimuth]['PassList']['WindowLengthFreq.'] +
|
|
405
|
+
hvsr_results['BestPeak'][azimuth]['PassList']['SignificantCycles']+
|
|
406
|
+
hvsr_results['BestPeak'][azimuth]['PassList']['LowCurveStDevOverTime']) > 2
|
|
509
407
|
if curvePass:
|
|
510
408
|
self.totalCurveResult.configure(text=sprit_utils.check_mark(), font=("TkDefaultFont", 16, "bold"), foreground='green')
|
|
511
409
|
else:
|
|
512
410
|
self.totalCurveResult.configure(text=sprit_utils.x_mark(), font=("TkDefaultFont", 16, "bold"), foreground='red')
|
|
513
411
|
|
|
514
|
-
self.peakTest1ResultText.configure(text=hvsr_results['BestPeak']['Report']['A(f-)'][:-1])
|
|
515
|
-
self.peakTest1Result.configure(text=hvsr_results['BestPeak']['Report']['A(f-)'][-1])
|
|
412
|
+
self.peakTest1ResultText.configure(text=hvsr_results['BestPeak'][azimuth]['Report']['A(f-)'][:-1])
|
|
413
|
+
self.peakTest1Result.configure(text=hvsr_results['BestPeak'][azimuth]['Report']['A(f-)'][-1])
|
|
516
414
|
|
|
517
|
-
self.peakTest2ResultText.configure(text=hvsr_results['BestPeak']['Report']['A(f+)'][:-1])
|
|
518
|
-
self.peakTest2Result.configure(text=hvsr_results['BestPeak']['Report']['A(f+)'][-1])
|
|
415
|
+
self.peakTest2ResultText.configure(text=hvsr_results['BestPeak'][azimuth]['Report']['A(f+)'][:-1])
|
|
416
|
+
self.peakTest2Result.configure(text=hvsr_results['BestPeak'][azimuth]['Report']['A(f+)'][-1])
|
|
519
417
|
|
|
520
|
-
self.peakTest3ResultText.configure(text=hvsr_results['BestPeak']['Report']['A0'][:-1])
|
|
521
|
-
self.peakTest3Result.configure(text=hvsr_results['BestPeak']['Report']['A0'][-1])
|
|
418
|
+
self.peakTest3ResultText.configure(text=hvsr_results['BestPeak'][azimuth]['Report']['A0'][:-1])
|
|
419
|
+
self.peakTest3Result.configure(text=hvsr_results['BestPeak'][azimuth]['Report']['A0'][-1])
|
|
522
420
|
|
|
523
|
-
self.peakTest4ResultText.configure(text=hvsr_results['BestPeak']['Report']['P-'][:5] + ' and ' +hvsr_results['BestPeak']['Report']['P+'][:-1])
|
|
524
|
-
if hvsr_results['BestPeak']['PassList']['FreqStability']:
|
|
421
|
+
self.peakTest4ResultText.configure(text=hvsr_results['BestPeak'][azimuth]['Report']['P-'][:5] + ' and ' +hvsr_results['BestPeak'][azimuth]['Report']['P+'][:-1])
|
|
422
|
+
if hvsr_results['BestPeak'][azimuth]['PassList']['FreqStability']:
|
|
525
423
|
self.peakTest4Result.configure(text=sprit_utils.check_mark())
|
|
526
424
|
else:
|
|
527
425
|
self.peakTest4Result.configure(text=sprit_utils.x_mark())
|
|
528
426
|
|
|
529
|
-
self.peakTest5ResultText.configure(text=hvsr_results['BestPeak']['Report']['Sf'][:-1])
|
|
530
|
-
self.peakTest5Result.configure(text=hvsr_results['BestPeak']['Report']['Sf'][-1])
|
|
427
|
+
self.peakTest5ResultText.configure(text=hvsr_results['BestPeak'][azimuth]['Report']['Sf'][:-1])
|
|
428
|
+
self.peakTest5Result.configure(text=hvsr_results['BestPeak'][azimuth]['Report']['Sf'][-1])
|
|
531
429
|
|
|
532
|
-
self.peakTest6ResultText.configure(text=hvsr_results['BestPeak']['Report']['Sa'][:-1])
|
|
533
|
-
self.peakTest6Result.configure(text=hvsr_results['BestPeak']['Report']['Sa'][-1])
|
|
534
|
-
|
|
535
|
-
peakPass = (hvsr_results['BestPeak']['PassList']['PeakProminenceBelow'] +
|
|
536
|
-
hvsr_results['BestPeak']['PassList']['PeakProminenceAbove']+
|
|
537
|
-
hvsr_results['BestPeak']['PassList']['PeakAmpClarity']+
|
|
538
|
-
hvsr_results['BestPeak']['PassList']['FreqStability']+
|
|
539
|
-
hvsr_results['BestPeak']['PassList']['PeakStability_FreqStD']+
|
|
540
|
-
hvsr_results['BestPeak']['PassList']['PeakStability_AmpStD']) >= 5
|
|
430
|
+
self.peakTest6ResultText.configure(text=hvsr_results['BestPeak'][azimuth]['Report']['Sa'][:-1])
|
|
431
|
+
self.peakTest6Result.configure(text=hvsr_results['BestPeak'][azimuth]['Report']['Sa'][-1])
|
|
432
|
+
|
|
433
|
+
peakPass = (hvsr_results['BestPeak'][azimuth]['PassList']['PeakProminenceBelow'] +
|
|
434
|
+
hvsr_results['BestPeak'][azimuth]['PassList']['PeakProminenceAbove']+
|
|
435
|
+
hvsr_results['BestPeak'][azimuth]['PassList']['PeakAmpClarity']+
|
|
436
|
+
hvsr_results['BestPeak'][azimuth]['PassList']['FreqStability']+
|
|
437
|
+
hvsr_results['BestPeak'][azimuth]['PassList']['PeakStability_FreqStD']+
|
|
438
|
+
hvsr_results['BestPeak'][azimuth]['PassList']['PeakStability_AmpStD']) >= 5
|
|
541
439
|
if peakPass:
|
|
542
440
|
self.totalPeakResult.configure(text=sprit_utils.check_mark(), font=("TkDefaultFont", 16, "bold"), foreground='green')
|
|
543
441
|
else:
|
|
@@ -598,7 +496,7 @@ class SPRIT_App:
|
|
|
598
496
|
rmse_thresh=98,
|
|
599
497
|
use_percentile=True,
|
|
600
498
|
use_hv_curve = False,
|
|
601
|
-
|
|
499
|
+
show_outlier_plot = False)
|
|
602
500
|
update_progress_bars(prog_percent=60)
|
|
603
501
|
|
|
604
502
|
self.log_text.insert('end', f"{self.procHVSR_call['text']}\n\n")
|
|
@@ -3085,6 +2983,113 @@ class SPRIT_App:
|
|
|
3085
2983
|
# Pack tab control
|
|
3086
2984
|
self.tab_control.pack(expand=True, fill="both")
|
|
3087
2985
|
|
|
2986
|
+
|
|
2987
|
+
#Decorator that catches errors and warnings (to be modified later for gui)
|
|
2988
|
+
def catch_errors(func):
|
|
2989
|
+
global spritApp
|
|
2990
|
+
|
|
2991
|
+
#Define a local function to get a list of warnings that we'll use in the output
|
|
2992
|
+
def get_warning_msg_list(w):
|
|
2993
|
+
messageList = []
|
|
2994
|
+
#Collect warnings that happened before we got to the error
|
|
2995
|
+
if w:
|
|
2996
|
+
hasWarnings = True
|
|
2997
|
+
for wi in w:
|
|
2998
|
+
warning_category = type(wi.message).__name__.title().replace('warning','Warning')
|
|
2999
|
+
#if w.line is None:
|
|
3000
|
+
# w.line = linecache.getline(wi.filename, wi.lineno)
|
|
3001
|
+
warning_lineNo = wi.lineno
|
|
3002
|
+
warning_message = str(wi.message)
|
|
3003
|
+
# append the warning category and message to messageList so we get all warnings
|
|
3004
|
+
messageList.append(f'{warning_category} ({warning_lineNo}): {warning_message}')
|
|
3005
|
+
return messageList
|
|
3006
|
+
|
|
3007
|
+
# use functools.wraps to preserve the original function's metadata
|
|
3008
|
+
@functools.wraps(func)
|
|
3009
|
+
def wrapper(*args, **kwargs):
|
|
3010
|
+
result = None
|
|
3011
|
+
# use the global keyword to access the error_message and error_category variables
|
|
3012
|
+
global error_message
|
|
3013
|
+
global error_category
|
|
3014
|
+
global spritApp
|
|
3015
|
+
|
|
3016
|
+
messageList = []
|
|
3017
|
+
hasWarnings = False
|
|
3018
|
+
# use a try-except block to catch any exceptions
|
|
3019
|
+
#result = func(*args, **kwargs)
|
|
3020
|
+
try:
|
|
3021
|
+
# use a context manager to catch any warnings
|
|
3022
|
+
with warnings.catch_warnings(record=True) as w:
|
|
3023
|
+
warnings.simplefilter('always')
|
|
3024
|
+
# call the original function with the given arguments
|
|
3025
|
+
result = func(*args, **kwargs)
|
|
3026
|
+
|
|
3027
|
+
#Get message list, [] if no messages, doesn't run at all if Error/exception in func
|
|
3028
|
+
messageList = get_warning_msg_list(w)
|
|
3029
|
+
if messageList == []:
|
|
3030
|
+
return result
|
|
3031
|
+
else:
|
|
3032
|
+
warningMessage = "WARNING:"
|
|
3033
|
+
for msg in messageList:
|
|
3034
|
+
warningMessage = "\n {}".format(msg)
|
|
3035
|
+
|
|
3036
|
+
messagebox.showwarning(title='WARNINGS', message=warningMessage)
|
|
3037
|
+
|
|
3038
|
+
except Exception as e:
|
|
3039
|
+
messageList = get_warning_msg_list(w)
|
|
3040
|
+
errorObj = sys.exc_info()[2]
|
|
3041
|
+
|
|
3042
|
+
mainErrText = sys.exc_info()[1]
|
|
3043
|
+
|
|
3044
|
+
mainErrTb = traceback.extract_tb(sys.exc_info()[2])[-1]
|
|
3045
|
+
mainErrFilePath = pathlib.Path(mainErrTb[0])
|
|
3046
|
+
|
|
3047
|
+
mainErrFileName = mainErrFilePath.stem
|
|
3048
|
+
mainErrLineNo = mainErrTb[1]
|
|
3049
|
+
mainErrFunc = mainErrTb[2]
|
|
3050
|
+
mainErrCodeLine = mainErrTb[3]
|
|
3051
|
+
|
|
3052
|
+
errLineNo1 = str(traceback.extract_tb(sys.exc_info()[2])[-1].lineno)
|
|
3053
|
+
error_category = type(e).__name__.title().replace('error', 'Error')
|
|
3054
|
+
error_message = f"{e} ({errLineNo1})"
|
|
3055
|
+
|
|
3056
|
+
#Get message list, [] if no messages, doesn't run at all if Error/exception in func
|
|
3057
|
+
warningMessageList = get_warning_msg_list(w)
|
|
3058
|
+
|
|
3059
|
+
#Build error messages
|
|
3060
|
+
tbTuple0 = sys.exc_info()[0]
|
|
3061
|
+
tbTuple1 = sys.exc_info()[1]
|
|
3062
|
+
tbTuple2 = traceback.extract_tb(sys.exc_info()[2])
|
|
3063
|
+
|
|
3064
|
+
logMsg = f"**ERROR**\n{tbTuple0.__name__}: {tbTuple1}"
|
|
3065
|
+
dialogErrMsg = logMsg.split(':')[1]
|
|
3066
|
+
for tb in tbTuple2:
|
|
3067
|
+
logMsg = logMsg + '\n\t'
|
|
3068
|
+
logMsg = logMsg + f"{pathlib.Path(tb[0]).stem}.{tb[2]}(): {tb[3]} (Line {tb[1]})"
|
|
3069
|
+
dialogErrMsg = dialogErrMsg + f"\n{pathlib.Path(tb[0]).stem}.{tb[2]}(), Line {tb[1]}"
|
|
3070
|
+
logMsg = logMsg + '\n\n'
|
|
3071
|
+
|
|
3072
|
+
#fullErrorMessage = f'ERROR {mainErrFileName}.{mainErrFunc} ({mainErrLineNo}): {mainErrText} \n\n {mainErrFileName} Line {mainErrLineNo}: {mainErrCodeLine}.'
|
|
3073
|
+
if messageList == []:
|
|
3074
|
+
pass
|
|
3075
|
+
else:
|
|
3076
|
+
dialogErrMsg = dialogErrMsg+"\n\n Additional Warnings along the way. See Log for more information."
|
|
3077
|
+
logMsg = logMsg + "\n\n\t *WARNING(S)*\n\tAdditional Warnings along the way:"
|
|
3078
|
+
for addMsg in warningMessageList:
|
|
3079
|
+
logMsg = logMsg+"\n\t\t{}".format(addMsg)
|
|
3080
|
+
|
|
3081
|
+
|
|
3082
|
+
SPRIT_App.log_errorMsg(spritApp, logMsg)
|
|
3083
|
+
|
|
3084
|
+
messagebox.showerror(title=f'ERROR ({error_category})',
|
|
3085
|
+
message=dialogErrMsg)
|
|
3086
|
+
update_progress_bars(100)
|
|
3087
|
+
|
|
3088
|
+
# return the result of the function or the error/warning messages and categories
|
|
3089
|
+
return result
|
|
3090
|
+
# return the wrapper function
|
|
3091
|
+
return wrapper
|
|
3092
|
+
|
|
3088
3093
|
def on_closing():
|
|
3089
3094
|
plt.close('all')
|
|
3090
3095
|
root.destroy()
|
|
@@ -1159,7 +1159,6 @@ def check_peaks(hvsr_data, hvsr_band=[0.4, 40], peak_selection='max', peak_freq_
|
|
|
1159
1159
|
if not hvsr_band:
|
|
1160
1160
|
hvsr_band = [0.4, 40]
|
|
1161
1161
|
|
|
1162
|
-
print('hvsr_band again', hvsr_band)
|
|
1163
1162
|
hvsr_data['hvsr_band'] = hvsr_band
|
|
1164
1163
|
|
|
1165
1164
|
anyK = list(hvsr_data['x_freqs'].keys())[0]
|
|
@@ -3840,7 +3839,7 @@ def process_hvsr(hvsr_data, method=3, smooth=True, freq_smooth='konno ohmachi',
|
|
|
3840
3839
|
hvsr_out['ind_hvsr_peak_indices'] = {}
|
|
3841
3840
|
#hvsr_out['hvsr_windows_df']['CurvesPeakFreqs'] = {}
|
|
3842
3841
|
for col_name in hvsr_out['hvsr_windows_df'].columns:
|
|
3843
|
-
if "HV_Curves"
|
|
3842
|
+
if col_name.startswith("HV_Curves"):
|
|
3844
3843
|
tStepPeaks = []
|
|
3845
3844
|
if len(col_name.split('_')) > 2:
|
|
3846
3845
|
colSuffix = "_"+'_'.join(col_name.split('_')[2:])
|
|
@@ -6769,7 +6768,7 @@ def __gethvsrparams(hvsr_out):
|
|
|
6769
6768
|
hvsrm2 = {}
|
|
6770
6769
|
hvsr_log_std = {}
|
|
6771
6770
|
for col_name in hvsr_out['hvsr_windows_df'].columns:
|
|
6772
|
-
if "HV_Curves"
|
|
6771
|
+
if col_name.startswith("HV_Curves"):
|
|
6773
6772
|
if col_name == 'HV_Curves':
|
|
6774
6773
|
colSuffix = '_HV'
|
|
6775
6774
|
colID = 'HV'
|
|
@@ -6782,8 +6781,8 @@ def __gethvsrparams(hvsr_out):
|
|
|
6782
6781
|
for i, r in enumerate(logStackedata):
|
|
6783
6782
|
logStackedata[i] = np.array(r)
|
|
6784
6783
|
|
|
6785
|
-
hvsr_out['hvsr_windows_df']['
|
|
6786
|
-
hvsr_log_std[colID] = np.nanstd(np.stack(hvsr_out['hvsr_windows_df']['
|
|
6784
|
+
hvsr_out['hvsr_windows_df']['Log10_HV_Curves'+colSuffix] = logStackedata
|
|
6785
|
+
hvsr_log_std[colID] = np.nanstd(np.stack(hvsr_out['hvsr_windows_df']['Log10_HV_Curves'+colSuffix][hvsrDF['Use']]), axis=0)
|
|
6787
6786
|
|
|
6788
6787
|
#The components are already calculated, don't need to recalculate aren't calculated at the time-step level
|
|
6789
6788
|
hvsrp[colID] = np.add(hvsr_out['hvsr_curve'], hvsr_out['ind_hvsr_stdDev'][colID])
|
|
@@ -932,24 +932,29 @@ def create_jupyter_ui():
|
|
|
932
932
|
|
|
933
933
|
return plot_list_list
|
|
934
934
|
|
|
935
|
-
def parse_hv_plot_list(hv_data, hvsr_plot_list):
|
|
935
|
+
def parse_hv_plot_list(hv_data, hvsr_plot_list, azimuth='HV'):
|
|
936
936
|
hvsr_data = hv_data
|
|
937
937
|
x_data = hvsr_data.x_freqs['Z']
|
|
938
938
|
hvsrDF = hvsr_data.hvsr_windows_df
|
|
939
|
+
if azimuth == 'HV':
|
|
940
|
+
HVCol = 'HV_Curves'
|
|
941
|
+
else:
|
|
942
|
+
HVCol = 'HV_Curves_'+azimuth
|
|
939
943
|
|
|
940
944
|
if 'tp' in hvsr_plot_list:
|
|
941
945
|
allpeaks = []
|
|
942
|
-
for row in hvsrDF[hvsrDF['Use']]['
|
|
946
|
+
for row in hvsrDF[hvsrDF['Use']]['CurvesPeakFreqs_'+azimuth].values:
|
|
943
947
|
for peak in row:
|
|
944
948
|
allpeaks.append(peak)
|
|
945
949
|
allInd = []
|
|
946
|
-
for row, peakList in enumerate(hvsrDF[hvsrDF['Use']]['
|
|
950
|
+
for row, peakList in enumerate(hvsrDF[hvsrDF['Use']]['CurvesPeakIndices_'+azimuth].values):
|
|
947
951
|
for ind in peakList:
|
|
948
952
|
allInd.append((row, ind))
|
|
949
953
|
x_vals = []
|
|
950
954
|
y_vals = []
|
|
951
|
-
y_max = np.nanmax(hvsr_data.hvsrp)
|
|
952
|
-
hvCurveInd = list(hvsrDF.columns).index(
|
|
955
|
+
y_max = np.nanmax(hvsr_data.hvsrp[azimuth])
|
|
956
|
+
hvCurveInd = list(hvsrDF.columns).index(HVCol)
|
|
957
|
+
|
|
953
958
|
for i, tp in enumerate(allpeaks):
|
|
954
959
|
x_vals.extend([tp, tp, None]) # add two x values and a None
|
|
955
960
|
y_vals.extend([0, hvsrDF.iloc[allInd[i][0], hvCurveInd][allInd[i][1]], None]) # add the first and last y values and a None
|
|
@@ -961,7 +966,7 @@ def create_jupyter_ui():
|
|
|
961
966
|
row=1, col=1)
|
|
962
967
|
|
|
963
968
|
if 't' in hvsr_plot_list:
|
|
964
|
-
alltimecurves = np.stack(hvsrDF[hvsrDF['Use']][
|
|
969
|
+
alltimecurves = np.stack(hvsrDF[hvsrDF['Use']][HVCol])
|
|
965
970
|
for i, row in enumerate(alltimecurves):
|
|
966
971
|
if i==0:
|
|
967
972
|
showLeg = True
|
|
@@ -970,13 +975,13 @@ def create_jupyter_ui():
|
|
|
970
975
|
results_fig.add_trace(go.Scatter(x=x_data[:-1], y=row, mode='lines',
|
|
971
976
|
line=dict(width=0.5, dash="solid",
|
|
972
977
|
color="rgba(100, 110, 100, 0.8)"),
|
|
973
|
-
showlegend=showLeg,
|
|
978
|
+
showlegend=showLeg,
|
|
974
979
|
name='Ind. time win. curve',
|
|
975
980
|
hoverinfo='none'),
|
|
976
981
|
row=1, col=1)
|
|
977
982
|
|
|
978
983
|
if 'all' in hvsr_plot_list:
|
|
979
|
-
for i, p in enumerate(hvsr_data['hvsr_peak_freqs']):
|
|
984
|
+
for i, p in enumerate(hvsr_data['hvsr_peak_freqs'][azimuth]):
|
|
980
985
|
if i==0:
|
|
981
986
|
showLeg = True
|
|
982
987
|
else:
|
|
@@ -984,7 +989,7 @@ def create_jupyter_ui():
|
|
|
984
989
|
|
|
985
990
|
results_fig.add_trace(go.Scatter(
|
|
986
991
|
x=[p, p, None], # set x to None
|
|
987
|
-
y=[0, np.nanmax(np.stack(hvsrDF[
|
|
992
|
+
y=[0, np.nanmax(np.stack(hvsrDF[HVCol])),None], # set y to None
|
|
988
993
|
mode="lines", # set mode to lines
|
|
989
994
|
line=dict(width=1, dash="dot", color="gray"), # set line properties
|
|
990
995
|
name="All checked peaks", # set legend name
|
|
@@ -993,13 +998,13 @@ def create_jupyter_ui():
|
|
|
993
998
|
|
|
994
999
|
if '-s' not in hvsr_plot_list:
|
|
995
1000
|
# Show standard deviation
|
|
996
|
-
results_fig.add_trace(go.Scatter(x=x_data, y=hvsr_data.hvsrp2,
|
|
1001
|
+
results_fig.add_trace(go.Scatter(x=x_data, y=hvsr_data.hvsrp2[azimuth],
|
|
997
1002
|
line={'color':'black', 'width':0.1},marker=None,
|
|
998
1003
|
showlegend=False, name='Log. St.Dev. Upper',
|
|
999
1004
|
hoverinfo='none'),
|
|
1000
1005
|
row=1, col=1)
|
|
1001
1006
|
|
|
1002
|
-
results_fig.add_trace(go.Scatter(x=x_data, y=hvsr_data.hvsrm2,
|
|
1007
|
+
results_fig.add_trace(go.Scatter(x=x_data, y=hvsr_data.hvsrm2[azimuth],
|
|
1003
1008
|
line={'color':'black', 'width':0.1},marker=None,
|
|
1004
1009
|
fill='tonexty', fillcolor="rgba(128, 128, 128, 0.6)",
|
|
1005
1010
|
name='Log. St.Dev.', hoverinfo='none'),
|
|
@@ -1007,7 +1012,7 @@ def create_jupyter_ui():
|
|
|
1007
1012
|
|
|
1008
1013
|
if 'p' in hvsr_plot_list:
|
|
1009
1014
|
results_fig.add_trace(go.Scatter(
|
|
1010
|
-
x=[hvsr_data['BestPeak']['f0'], hvsr_data['BestPeak']['f0'], None], # set x to None
|
|
1015
|
+
x=[hvsr_data['BestPeak'][azimuth]['f0'], hvsr_data['BestPeak'][azimuth]['f0'], None], # set x to None
|
|
1011
1016
|
y=[0,np.nanmax(np.stack(hvsrDF['HV_Curves'])),None], # set y to None
|
|
1012
1017
|
mode="lines", # set mode to lines
|
|
1013
1018
|
line=dict(width=1, dash="dash", color="black"), # set line properties
|
|
@@ -1016,15 +1021,15 @@ def create_jupyter_ui():
|
|
|
1016
1021
|
|
|
1017
1022
|
if 'ann' in hvsr_plot_list:
|
|
1018
1023
|
# Annotate best peak
|
|
1019
|
-
results_fig.add_annotation(x=np.log10(hvsr_data['BestPeak']['f0']),
|
|
1024
|
+
results_fig.add_annotation(x=np.log10(hvsr_data['BestPeak'][azimuth]['f0']),
|
|
1020
1025
|
y=0, yanchor='bottom', xanchor='center',
|
|
1021
|
-
text=f"{hvsr_data['BestPeak']['f0']:.3f} Hz",
|
|
1026
|
+
text=f"{hvsr_data['BestPeak'][azimuth]['f0']:.3f} Hz",
|
|
1022
1027
|
bgcolor='rgba(255, 255, 255, 0.7)',
|
|
1023
1028
|
showarrow=False,
|
|
1024
1029
|
row=1, col=1)
|
|
1025
1030
|
return results_fig
|
|
1026
1031
|
|
|
1027
|
-
def parse_comp_plot_list(hv_data, comp_plot_list):
|
|
1032
|
+
def parse_comp_plot_list(hv_data, comp_plot_list, azimuth='HV'):
|
|
1028
1033
|
|
|
1029
1034
|
hvsr_data = hv_data
|
|
1030
1035
|
# Initial setup
|
|
@@ -1043,12 +1048,13 @@ def create_jupyter_ui():
|
|
|
1043
1048
|
|
|
1044
1049
|
alpha = 0.4 * transparency_modifier
|
|
1045
1050
|
components = ['Z', 'E', 'N']
|
|
1051
|
+
|
|
1046
1052
|
compColor_semi_light = {'Z':f'rgba(128,128,128,{alpha})',
|
|
1047
1053
|
'E':f'rgba(0,0,128,{alpha})',
|
|
1048
1054
|
'N':f'rgba(128,0,0,{alpha})'}
|
|
1049
1055
|
|
|
1050
1056
|
alpha = 0.7 * transparency_modifier
|
|
1051
|
-
compColor_semi = {'Z':f'rgba(128,128,128,{alpha})',
|
|
1057
|
+
compColor_semi = {'Z':f'rgba(128,128,128,{alpha})',
|
|
1052
1058
|
'E':f'rgba(100,100,128,{alpha})',
|
|
1053
1059
|
'N':f'rgba(128,100,100,{alpha})'}
|
|
1054
1060
|
|
|
@@ -1056,6 +1062,12 @@ def create_jupyter_ui():
|
|
|
1056
1062
|
'E':f'rgba(100,100,250,{alpha})',
|
|
1057
1063
|
'N':f'rgba(250,100,100,{alpha})'}
|
|
1058
1064
|
|
|
1065
|
+
for az in hvsr_data.hvsr_az.keys():
|
|
1066
|
+
components.append(az)
|
|
1067
|
+
compColor_semi_light[az] = f'rgba(0,128,0,{alpha})'
|
|
1068
|
+
compColor_semi[az] = f'rgba(100,128,100,{alpha})'
|
|
1069
|
+
compColor[az] = f'rgba(100,250,100,{alpha})'
|
|
1070
|
+
|
|
1059
1071
|
# Whether to plot in new subplot or not
|
|
1060
1072
|
if comp_plot_list != [] and '+' in comp_plot_list[0]:
|
|
1061
1073
|
compRow=2
|
|
@@ -1114,7 +1126,7 @@ def create_jupyter_ui():
|
|
|
1114
1126
|
maxVal = np.nanmax(currPPSDCurve)
|
|
1115
1127
|
|
|
1116
1128
|
results_fig.add_trace(go.Scatter(
|
|
1117
|
-
x=[hvsr_data['BestPeak']['f0'], hvsr_data['BestPeak']['f0'], None], # set x to None
|
|
1129
|
+
x=[hvsr_data['BestPeak'][azimuth]['f0'], hvsr_data['BestPeak'][azimuth]['f0'], None], # set x to None
|
|
1118
1130
|
y=[minVal,maxVal,None], # set y to None
|
|
1119
1131
|
mode="lines", # set mode to lines
|
|
1120
1132
|
line=dict(width=1, dash="dash", color="black"), # set line properties
|
|
@@ -1130,9 +1142,9 @@ def create_jupyter_ui():
|
|
|
1130
1142
|
currPPSDCurve = hvsr_data['psd_values_tavg'][comp]
|
|
1131
1143
|
if np.nanmin(currPPSDCurve) < minVal:
|
|
1132
1144
|
minVal = np.nanmin(currPPSDCurve)
|
|
1133
|
-
results_fig.add_annotation(x=np.log10(hvsr_data['BestPeak']['f0']),
|
|
1145
|
+
results_fig.add_annotation(x=np.log10(hvsr_data['BestPeak'][azimuth]['f0']),
|
|
1134
1146
|
y=minVal,
|
|
1135
|
-
text=f"{hvsr_data['BestPeak']['f0']:.3f} Hz",
|
|
1147
|
+
text=f"{hvsr_data['BestPeak'][azimuth]['f0']:.3f} Hz",
|
|
1136
1148
|
bgcolor='rgba(255, 255, 255, 0.7)',
|
|
1137
1149
|
showarrow=False,
|
|
1138
1150
|
yref=yaxis_to_use,
|
|
@@ -1157,13 +1169,18 @@ def create_jupyter_ui():
|
|
|
1157
1169
|
row=compRow, col=1)
|
|
1158
1170
|
return results_fig
|
|
1159
1171
|
|
|
1160
|
-
def parse_spec_plot_list(hv_data, spec_plot_list, subplot_num):
|
|
1172
|
+
def parse_spec_plot_list(hv_data, spec_plot_list, subplot_num, azimuth='HV'):
|
|
1161
1173
|
hvsr_data = hv_data
|
|
1174
|
+
if azimuth == 'HV':
|
|
1175
|
+
HVCol = 'HV_Curves'
|
|
1176
|
+
else:
|
|
1177
|
+
HVCol = 'HV_Curves_'+azimuth
|
|
1178
|
+
|
|
1162
1179
|
# Initial setup
|
|
1163
1180
|
hvsrDF = hvsr_data.hvsr_windows_df
|
|
1164
1181
|
specAxisTimes = np.array([dt.isoformat() for dt in hvsrDF.index.to_pydatetime()])
|
|
1165
1182
|
y_data = hvsr_data.x_freqs['Z'][1:]
|
|
1166
|
-
image_data = np.stack(hvsrDF[
|
|
1183
|
+
image_data = np.stack(hvsrDF[HVCol]).T
|
|
1167
1184
|
|
|
1168
1185
|
maxZ = np.percentile(image_data, 100)
|
|
1169
1186
|
minZ = np.percentile(image_data, 0)
|
|
@@ -1195,7 +1212,7 @@ def create_jupyter_ui():
|
|
|
1195
1212
|
# tp currently is not being added to spec_plot_list
|
|
1196
1213
|
if 'tp' in spec_plot_list:
|
|
1197
1214
|
yvals = []
|
|
1198
|
-
for row in hvsrDF[
|
|
1215
|
+
for row in hvsrDF[HVCol].values:
|
|
1199
1216
|
maxInd = np.argmax(row)
|
|
1200
1217
|
yvals.append(y_data[maxInd])
|
|
1201
1218
|
tp_trace = go.Scatter(x=specAxisTimes, y=yvals, mode='markers',
|
|
@@ -1203,12 +1220,12 @@ def create_jupyter_ui():
|
|
|
1203
1220
|
results_fig.add_trace(tp_trace, row=subplot_num, col='all')
|
|
1204
1221
|
|
|
1205
1222
|
if 'p' in spec_plot_list:
|
|
1206
|
-
results_fig.add_hline(y=hvsr_data['BestPeak']['f0'], line_width=1, line_dash='dash', line_color='black', row=subplot_num, col='all')
|
|
1223
|
+
results_fig.add_hline(y=hvsr_data['BestPeak'][azimuth]['f0'], line_width=1, line_dash='dash', line_color='black', row=subplot_num, col='all')
|
|
1207
1224
|
|
|
1208
1225
|
if 'ann' in spec_plot_list:
|
|
1209
1226
|
results_fig.add_annotation(x=specAxisTimes[-1],
|
|
1210
1227
|
y=hvsr_data['hvsr_band'][1],
|
|
1211
|
-
text=f"Peak: {hvsr_data['BestPeak']['f0']:.3f} Hz",
|
|
1228
|
+
text=f"Peak: {hvsr_data['BestPeak'][azimuth]['f0']:.3f} Hz",
|
|
1212
1229
|
bgcolor='rgba(255, 255, 255, 0.7)',
|
|
1213
1230
|
showarrow=False, xanchor='right', yanchor='top',
|
|
1214
1231
|
row=subplot_num, col='all')
|
|
@@ -1221,7 +1238,7 @@ def create_jupyter_ui():
|
|
|
1221
1238
|
row=subplot_num, col=1)
|
|
1222
1239
|
|
|
1223
1240
|
results_fig.add_annotation(
|
|
1224
|
-
text=f"{hvsrDF['Use'].sum()}/{hvsrDF.shape[0]} windows used",
|
|
1241
|
+
text=f"{hvsrDF['Use'].astype(bool).sum()}/{hvsrDF.shape[0]} windows used",
|
|
1225
1242
|
x=max(specAxisTimes),
|
|
1226
1243
|
y=np.log10(min(y_data))+(np.log10(max(y_data))-np.log10(min(y_data)))*0.01,
|
|
1227
1244
|
xanchor="right", yanchor="bottom",bgcolor='rgba(256,256,256,0.7)',
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"theme_name": "default"}
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|