Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

PySEP v0.4.1 #115

Merged
merged 79 commits into from
Aug 1, 2023
Merged

PySEP v0.4.1 #115

merged 79 commits into from
Aug 1, 2023

Conversation

bch0w
Copy link
Member

@bch0w bch0w commented Aug 1, 2023

PySEP v0.4.1

  • Adds tutorial documentation following GEOS626 lab (thanks, Aakash!)
  • Adds 'How to version release' documentation

Checklist

Prior to PR merge:

  • Merge devel -> master
  • Bump version number pyproject.toml
  • Bump version number docs/conf.py
  • Bump version number pysep/__init__.py
  • Ensure all tests still pass, fix broken tests
  • Update CHANGELOG to include all major changes since last version

Following PR merge:

  • Create GitHub version release
  • Publish latest version on PyPi
  • Post on adjTomo Discussion for major and minor version releases

bch0w added 30 commits December 7, 2022 19:46
* renamed specfem station writing function, and added an ordering component

* bumping version in setup and changing url and author

* small mt typo change

* added an example config that gathers a small amount of data for testing/dev purposes

* added a new kwarg 'order_stations_list_by' which sets the order of the output stations list, related to #36

* bugfix typo parameter call

* bugfix rotating was not actually rotating streams in place for arbitrary components ->ENZ

* bugfix fixed rotation testing, which was not actually evaluating as expected. some confusion about editing streams and inventories in place which was not actually happening. Fixed and now rotate test works as expected

* added 12Z test data for rotating 12Z -> ENZ which works now, added test to cover this case

* moved 2012 central alaska IU gather script (which gathers 12Z component) into examples

* bugfix pysep was not setting log level properly from the config file. now in the load() function, config log level is allowed to override logger level

* changed config examples dir name to test, to be used as a test bed for checking specific data gathering features such as data gap removal

* bugfix #57, reading event origin time from sac header was shifting times unexpectedly
* bugfix clipped amplitude check was not properly checking the data array

* added error catch and release during rotate code to avoid processing breakdown. also rotate now goes by channel rather than the entire stream at once

* rearranged rotation algorithm to be a bit cleaner, previously too many different streams floating around and being fed to one another.

* pysep rotation now has additional checks for station metadata and error catching to get around any rotation bugs that used to cause the rotation to fail
added new tests to cover rotation and fixed a rotation test that was failing due to change
added a config for testing the rotation bug, providing station info

* updating bug config file
* fixed exclude string making and added a bool check for deleting tmpdir in mass download function

* removed accidental debug statement
* moved llnl_db_client as a hard dep of pysep and moved it into an optional dependency
hid llnl_db_client import statement behind a try-except block and threw a check in the init of pysep only requiring this dep if the client choice is LLNL

* Added setup.py legacy file

* removed llnl dep from conda env yml file

* tested install with and without llnl dep and tested check statement for missing llnl import
* started adding declustering rewrite with test and test data

* finished cartesian gridding decluster script, added radial gridding decluster script, added tests to cover both and plotting

* decluster catalog added feature to threshold events by min magnitude and data availability separate from declustering
added plot feture to connect source receiver pairs based on data availability
added feature to allow sorting by data availability

* adjusting default figure names for declust plotting scripts

* cleaned up plotting functions into functions to avoid repeat plotting calls, added removed events to
plotting routines

* small typo updte declust

* moved some declustering functions into util

* declust started srcrcv weighting function

* individual source or receiver list weighting working with the smart scan feature
next up is to implement the entire weighting scheme with normalization and based on data availability

* declust slow progression

* finished srcrcv weighting scheme

* finished declustering and weighting algos with additional plotting and text file writing for weights

* added basic test for srcrcv weight calc
* reformatted PySEP init docstring, added missing parameters and categorized parameters to make things easier to find

* removed hard requirement that user provides event depth and magnitude if event selection is default

* added boolean flag to toggle insufficient length checker
bugfix: added remove_clipped boolean toggle on the actual processing step, which was not there before

* bugfix phase list passed from pysep into util function for phase getting

* last minute touch ups on docstring

* recsec removed unneeded myround function from top of script

* categorized recsec init docstring for easier readability
…as an empty list, but it was expected as NoneType within the main processing function. removed this type conversion
ign dummy values to cap header because these are required by record section
* moved docstring of pysep into class description for autoapi

* instantiated sphinx for doc creation and autoapi building,  reorganized pysep and recsec docstrings to be well formatted for autoapi

* migrated wiki docs into docs directory
)

* allow taup arrival time get to be skipped if event depth not provided

* sac header functions that required 'evdp' are now skipped over if 'evdp' is not present in the sac header
bugfix: removing debug statement left in pysep
* replace plotw_rs with record section run command in pysep plotting,
sets default sorting to 'distance' and not 'distance_r' for pysep-generated record section

* working on ordering of multiple pages

* added feature tmark to add static lines at given time values, does not address time shifts or move out
* reformatting plotw_rs page separation logic

* sort order of multi-page record sections is now reversed to be more natural
* added a try-except block over trace merging to avoid errors caused by incompatible sampling rates

* re-ordered processing steps, resample now occurs before merge and start/endtime trims to avoid sampling rate inconsistency during merge process

* added comment for merge command
* pysep new parameter  which allows users to fill gappy data with a given value
process function 'merge_and_trim_start_end_times' now takes fill value in order to fill in gappy data
added test to test gap filling

* added gap_fraction parameter which allows selecting the overall percentage length of allowable data gaps. defaults to 1 (100%). added test to cover this

* added gap_fraction to pysep docstring and parameters

* cleaned up docstrings for new parameters

* split up processing function 'merge_and_trim...' into merge function and trim function
trim function now takes actual expected start and end times rather than inferring from the data
bugfix gap percentage not accurately determinig total trace length

* bugfix merge gapped data not returning any data

* remove debugger statement

* added a check in trim function for late starttimes and early endtimes which would create incomplete data

* changed default 'fill_data_gaps' value as False to be more intuitive

* added new hidden variable 'extra_download_pct' which allows downloading an additional x% of data from data center because downloading the exact time bounds may lead to shorter waveforms after resampling or preprocessing. the extra downloaded data is trimmed away before being saved

* fixing tests, trim start and end times ignored if no origin time given to allow for direct preprocessing of streams without event ifnormation
* bugfix: seconds before and after ref were allowed to be integers which caused floating point rounding errors when trimming start and end times
curtail remove for insufficient lenght now checks for streams with time less than the mode rather than no equal, to not kick out streams with sufficient data

* check statement forces time buggers to be floats
obspy trim function set nearest sample to False to ensure we are taking inner samples and getting same sampling rate

* remove last data gap check from merge gapped data

* allow user to fill boundary data gaps with parameter 'fill_data_gaps' which sidesteps rejection for late starttimes and early endtimes

* update changelog

* added another postprocessing check to remove masked data from array which has a flag toggle in PySEP to turn on or off, on by default

* fixed merging tests

* moved remove masked data check into end of preprocessing because it affects the rotation operations if not done prior to rotation.
fixed tests

* bugfix insufficient length check remove '=' which was causing all traces to be thrown out and not just ones with shorter lengths
bch0w and others added 28 commits March 13, 2023 14:51
…ied by the user but not already existing.

Bump devel version number for debug checking
…races to traverse through the list causing index errors
…and synthetics (st_syn) because originally all scaling was done w.r.t data array which would cause incorrect normalizations for per-trace normalizing
…y to ignore repeat stations even if they came from different networks, due to exclusion based on station name only. Now it excludes based on a NN.SSS (network + station), which is assumed to be unique for all seismic stations
… explicitely used by PySEP to help debug argument mispelling or future API changes not registering. Related to #110
* adding IPython to docs environment and conf to allow coloring lab notebook with ipython color scheme

* adding 626 lab converted notebook, manually reformatted to remove unncessary jupyter notebook output cells, renamed all figures to follow indexing order and not cell count, reformatted some text. still some text to sort out

* cleaning up lab record section docs

* incrementing PATCH number in semver to v0.4.1

* updates docs link in pyproject.toml file
@bch0w bch0w merged commit 640fcb3 into master Aug 1, 2023
@bch0w bch0w deleted the devel branch August 1, 2023 19:20
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant