-
Notifications
You must be signed in to change notification settings - Fork 8
/
CHANGELOG.txt
263 lines (252 loc) · 12.6 KB
/
CHANGELOG.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
master
- obsplus.bank
* Tweaked the banks to allow for custom index paths. See #258.
- obsplus.utils.stations
* Fixed df_to_inventory to use a local copy of the NRL for compatibility
with ObsPy and NRLv2 (Note that NRLv1 is no longer accessible) (#271)
obsplus 0.2.5
- obsplus
* Modernized packaging, including src file and pyrpoject.toml (#259)
- obsplus.bank.wavebank
* Added a method called "get_segments_df" to return each segment of
contiguous data (#260).
- CI
* Implimented conda env caching, swtiched to use mamba
- Dependencies
* pinned pydantic < 2.0 until we support 2.0.
obsplus 0.2.3
- obsplus.bank
* Better support for bank paths on Windows See # 256.
- obsplus.events.validate
* Loosened check for duplicate pick ids to only check for duplicate
P and S phases
* Made amplitude time window check skip over rejected amplitudes
- obsplus.utils
* Fix issue #249 to allow pandas 1.4+
- versions
* Dropped python 3.7 from test matrix to keep size manageable.
* Added python 3.10 to test matrix.
obsplus 0.2.2
- Added support for python 3.9, dropped python 3.6
obsplus 0.2.1
- obsplus.utils
* Handled edge case of a lower precision datetime64 causing an int64
overflow in `obsplus.utils.time.to_datetime64` (#224).
- obsplus.WaveBank
* Refactored `get_waveforms_bulk` to allow a dataframe if required
columns exist (#229).
- Dependencies
* Bumped pydantic min version to 1.8.2 and pandas min version to 1.0
obsplus 0.2.0
- obsplus.structures.fetcher
* fixed an edge case were banks with only one file failed to return
streams (#186).
- obsplus.structures.dfextractor
* Handled the case of null integers in the NSLC columns and added a logic
to force the seed_id column to match the other NSLC columns(#199)
- obsplus.utils
* Fixed issue with duplicate channels setting incorrect start_dates
on station level (#188, #190).
* Fixed an issue with `picks_to_df` which would return the wrong channel
code if the location code had a decimal. Now a ValueError is raised if
any seed ids are found which don't have exactly 3 decimals (see #193).
* Made sure that `SpatialCalculator` returns a meaningful error message if
required columns are missing from DataFrame inputs (#197).
* Fixed issue in df_to_inventory where a location code of '01' was getting
converted to '1'. (#199)
* Changed `merge_events` and `associate merge` to have option to reject old
picks/amplitudes, removed option to delete old picks/amplitudes. (#209)
- obsplus.EventBank
* Added `overwrite_existing` keyword to `put_events` to disable squashing
existing events if desired (#191).
* Fixes issue with read inventory casting ints to datetime on pd 1.1.0.
* Fixed issue which caused reading deleted files from an EventBank to
raise a TypeError (#198).
* Added an obscure attribute called 'allow_update_index' for the rare
cases when index timestamp shouldn't be updated (#201).
- obsplus.events.pd
* Made sure that the pre-defined extractors (`*_to_df`) still return all of
the expected columns if there are no valid objects.
- obsplus.stations
* Made sure that location codes and other NSLC components are handled
consistently within stations_to_df (#199).
- obsplus.events.merge
* Added a new function called associate merge for merging one event with
the closest (defined by median pick time) of several possible events.
- obsplus.events.json
* Replaced ObsPlus' heavily recursive json conversion code with pydantic
models (#218).
obsplus 0.1.1
- obsplus.events
* Fixed issue with validators flagging picks on stations with the same
name but different networks (#173).
* Added `subset` parameter to `get_seed_id_series` for selecting subsets
of full seed id.
- obsplus.EventBank
* Fixed issue where path_structure was overriding a user-specified value
of `""` (#178)
- obsplus.structures.fetcher
* fixed issue with Fetcher raising Pandas error when an inventory with
duplicate channels was used (#183, #184).
- obsplus.utils
* Refactored df_to_inventory (#182).
* Refactored compose_docstring and added function for printing dataframe
columns and their expected dtypes (#182).
- obsplus.WaveBank
* Fixed issue where path_structure was overriding a user-specified value
of `""` (#178)
obsplus 0.1.0:
- obsplus.structures.fetcher
* Fixed issue with `time_before` and `time_after` params in `Fetcher`
(see #168).
obsplus 0.0.6:
- obsplus.bank
* Refactored logic for getting bank progress bars, now can use instances
of obsplus.interfaces.ProgressBar to avoid counting files twice
and for further customizability (see #106).
* Removed min_file_for_bar argument in favor of class attribute of
_min_files_for_bar (see #106).
* Add support for circular searches on EventBank (see #110).
* Removed concurrent update features for WaveBank (see #117).
* Add support for using concurrent.futures Executors to speed up indexing
and reading files (see #108).
* WaveBank and event Bank now represent time as an int of nanoseconds, see
(#131).
* EventBank now limits the number of obspy Event objects which are held in
memory during indexing (see #136 and #137).
* WaveBank.get_gaps_df now accounts for small overlapping file which
previously caused false gaps to be reported (see #140).
* Added paths parameter to update_index methods to speed up indexing when
file locations are predictable (see #144).
* Removed print statement which fired every time the index of a bank was
created or updated (see #144).
* Updated put_x methods to only index newly added files when update_index
is True. First mentioned in (#122), implemented in (#144).
* Removed `concurrent_updates` and `inventory` argument from `WaveBank`.
see (#147 and #152)
* The `updated` column in wavebank is now correct (see #146, #147).
* Fixed issue with using `ProcessPoolExecutor` in EventBank for `put_event`
and `update_index` (see issues #158, #159, #161).
* Fixed bug where an EventBank with files containing multiple events would
duplicate events in the catalog on `get_events`. (See #166).
- obsplus.interfaces
* Added ProgressBar for defining classes compatible with how obsplus
uses progress bar, modeled after the ProgressBar class from the
progressbar2 library (see #106).
- obsplus.stations
* Fixed issue where networks and stations could be left un-pruned when
querying on channel (see #115).
* Handled an edge case in df_to_inv where an integer NSLC code gets
misinterpreted by pandas (see #130 and #132).
- obsplus.utils
* Deprecate get_nslc_series in favor of get_seed_id_series (#120).
* Refactored all geodetics functions into one utility class (#147).
* Moved all utility functions into one utility modules (#147).
* Removed catalog_to_directory in favor of simply using put_events of
EventBank (#147).
* Moved all utils into a new utils module (see #147).
- obsplus.validate
* Added the obsplus.validate module which contains a simple framework for
defining and running validators on python objects. Replaced the old
event validation (see #122).
* Added the validators created in (#64) to PR (#122).
- obsplus.events
* Dataframe_to_inventory can now fetch NRL responses (#125).
* Changed event_to_dataframe (events_to_df) to report the used_phase_count
attached to the preferred origin and fall back on counting the arrivals
otherwise.
* Added notes to the docstring of event_to_dataframe listing the
assumptions that are made when extracting information from an Event.
- obsplus.waveforms
* Added assert_streams_almost_equal method (see #128).
* The function obsplus.waveforms.stream_split_bulk now has more flexible
inputs (see #128).
- obsplus.datasets
* Removed large kemmerer dataset as it could cause CI to fail (see #147).
* Added suffix "_test" to all other datasets to indicate they are just for
testing and not for research (see #147).
* Switched from MD5 hashing to SHA256 as the latter is more secure and the
computational differences were negligible (see #147).
- general
* All obsplus objects now use pandas datetimes and/or numpy datetime64 for
representing dates and times (see #88 and #131).
* Got test suite to pass locally on windows10 (see #147 and #149).
* Added some basic docstring testing to flake8 (see #147).
obsplus 0.0.2:
- obsplus.bank
* Speed up wavebank.get_waveforms_bulk by time-filtering index before
determining which files to read (see #93).
* Update time is now set before reading files to update index (#95).
* add try/except in read index to alleviate test failures with concurrent
updates (see #101).
- obsplus.conversions
* Added a preserve_units flag to project and ensured forward compatibility
with pyproj 2.x.x.
- obsplus.DataFrameExtractor
* Fixed a bug where objects with None attributes were being represented with
'None' rather than '' when converted to str (see #99).
- obsplus.datasets.crandall
* Deleted EventDescriptions whose text was set to 'None' (see #99).
NOTE: This change requires re-downloading the dataset to properly take
effect!
- obsplus.datasets.dataset
* Renamed from obsplus.datasets.dataloader (#100)
* Added a version numbering scheme to DataSet to enforce that the version of
a downloaded dataset matches what is required by the DataSet (#100).
* Changed where the datasets are stored. By default they will be stored in
a directory called opsdata in the users home, but this can be changed
using an environmental variable (#100).
* Removed Dataset.Path attribute and added Dataset.download_path and
dataset.source_path since the two are now different (#100).
* Added a dataset_data_path.txt file which will remember where data have
been downloaded so datasets can live in multiple places (#100).
- obsplus.waveforms
* Utils.merge_traces now does some quick checks and simply returns the
input stream when no merging is the be performed (#97).
* Utils.stream_bulk_split now accepts unix style matching for the string
arguments (#97).
- obsplus.stations
* Added utility for converting a simple station dataframe into an
inventory (#98).
- testing
* Added stream_tester fixture which returns a testing class for common
stream tests, like testing is streams are almost equal (#97).
obsplus 0.0.1:
- obsplus.bank
* Speed up wavebank reads of file segments by passing start/end times
to underlying obspy functions (see #34).
* Speed up wavebank's get_waveforms and related methods by replacing
obspy's merge/split with a pandas merge function (see #50).
* Fixed issue #49 where traces with masked arrays could be returned from
WaveBank's get_waveforms methods (see #50).
* Added better error messages for trying to pull data from banks that do
not exist (see #36)
* Event bank eventid param can now accept numpy arrays (see 30).
* Added basic file-locking mechanism for wavebank and multiprocessing
tests (see #70).
* Update_index methods now return the bank instance which allows chaining
the update call with the init (see #83).
- obsplus.waveforms
* Added stack_seed and unstack_seed methods to obsplus data array
accessors (see #27).
* Added function for creating SDS archives from existing archives
(see #35).
* Made `Stream.get_waveforms_bulk` more efficient (see #85).
* Added `slice_stream_bulk` method for creating lists of sliced streams
(see #85).
- obsplus.events
* Added utility function to create origins based on first hit station if
an event has only picks (see #32).
* Added utility function for removed rejected orphaned objects from
catalog tree (see #63).
* Added the init_empty parameter to get_preferred, fixed an issue where
an IndexError could get raised (see #65), and moved get_preferred from
obsplus.utils to obsplus.events.utils (see #66).
- obsplus.utils
* Added method for correcting nullish nslc codes (see #37 and #38)
* Added function for getting geometric parameters from two groups of
events or stations see (see #67/#72).
- obsplus.DataSet
* Made DataSet storage mechanism more customizable (see #84).
* Implemented md5 hashing for downloaded files. Can be used to check if
any files have changed hash or if files are missing (see # 84).