Skip to content

Unreleased changes

Changes after Wandas 0.11.0.

Added / 追加

  • ChannelFrame.trigger() cuts out every event where one channel crosses a level (rising or falling, with a pre-trigger and a hold-off time against re-triggering), for impact hammer tests and other transient measurements (#587), for example hits = wd.read("hammer.wav").high_pass_filter(5).trigger(10.0, duration=1.0, pre=0.01, channel="force"). ChannelFrame.segment() cuts at given times instead. Both return the new ChannelFrameSegments: hits[i] is one hit as a lazy ChannelFrame, hits.drop([2]) or a mask removes bad hits by a stable event ID, and hits.plot() overlays all hits per channel. hits.transfer_function() and hits.coherence() average the hits into one H1 frequency response and its coherence (each hit is one rectangular-window spectral average), and hits.average() gives the synchronous time average. hits.apply(func) processes each hit and keeps the collection (as the generic FrameSegments when the results are not ChannelFrames), and hits.to_numpy() returns a (segment, channel, sample) array. ChannelFrame.trigger()は1つのチャンネルがレベルを横切るたびに(立ち上がり/立ち下がり、 プリトリガーと再トリガーを防ぐホールドオフ時間付き)、全チャンネルを固定長で切り出します。 インパクトハンマー試験などの過渡的な測定向けです。ChannelFrame.segment()は与えた時刻で切り出します。 どちらも新しいChannelFrameSegmentsを返します。hits[i]は1打撃の遅延評価のChannelFrame、 hits.drop([2])やマスクは変わらないイベントIDで悪い打撃を除き、hits.plot()は全打撃を チャンネルごとに重ねて描きます。hits.transfer_function()とhits.coherence()は打撃を平均した H1の周波数応答関数とコヒーレンスを返し(1打撃を矩形窓の1区間として平均)、hits.average()は 時間波形の同期加算平均を返します。hits.apply(func)は打撃ごとに処理して集合のまま返し (結果がChannelFrameでなければ汎用のFrameSegments)、hits.to_numpy()は (セグメント, チャンネル, サンプル)の配列を返します。

Changed / 変更

  • Frame.cache() no longer hashes every sample to name its Dask array, which saves one pass over the data (about 0.1–0.3 s for a 10-minute 48 kHz stereo recording) (#598). Values, dtype, chunks, metadata and lineage are unchanged; two separate cache() calls on equal data no longer share a Dask key. Frame.cache()はDask配列の名前を付けるために全サンプルをハッシュしなくなり、データを1回読む分だけ 速くなりました(48 kHzステレオ10分の録音で約0.1〜0.3秒)。値、dtype、チャンク、メタデータ、 lineageは変わりません。等しいデータに別々にcache()を呼んだ結果がDaskのキーを共有しなくなります。