All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog.
Data.ichop
, an iteration-based version ofData.chop
- new artist helper function:
norm_from_channel
- new artist helper function:
ticks_from_norm
- new artist iterator
ChopHandler
- fixed Quick2D/Quick1D issues where collapsing unused dims did not work
- wt5 explore : fixed bug where data will not load interactively if directory is not cwd
- constants in chopped data will inherit the units of the original data
- numpy 2.0 compatible
- refactor of artists.quick1D and artists.quick2D
- quick2D and quick1D will not force
autosave=True
if the number of figures is large. Instead, interactive plotting will be truncated if the number of figures is large. - artists now gets turbo colormap straight from matplotlib
- artists.interact2D now returns a
types.SimpleNamespace
object (rather than a tuple)
wt5
entry point: methodsload
,explore
,glob
,tree
wt-convert
entry point: convert a number to different units- new glob utilities in
kit
wt-tree
entry point removed. Usewt5 tree
instead.
kit.guess_signed
for empirically guessing channel sign (useful for automated workflows)Data.squeeze
: squeezing the data object to the shape of the axes.
interact2D
: fixed bug where use_imshow broke the slidersartists.stitch_to_animation
: use imageio v3 api and declare pillow plugindata.join
ensures validmethod
is selected
data.join
no longer supportssum
method
- numpy deprecated the
np.float
alias, so usenp.float64
to be more precise - artists support matplotlib >= 3.7
interact2D
: fixed bug where sliders did not change appearance on focusinteract2D
: fixed buggy side plots windowing
Data.join
now has MultidimensionalAxisError exception messageAxis
: space character ("\s") in expressions are culled.- fixed
interact2D
bug: channel/axes can now be specified with non-zero index arguments interact2D
: side plots project the extremes along each axis, rather than the average.
interact2D
has informative figure window namesData.translate_to_txt
: serialize channels and variables and write as a text file.- Python supported versions: add 3.10, 3.11, and drop 3.7
Data.chop
: fixed bug where chop did not succeed if axes did not span data ndim
- new
Data.at
method: syntactic sugar for chop with "at" argument. Data.__getitem__
supports array slicingartists.interact2D
supportscmap
kwarg.- iPython integration: autocomplete includes axis, variable, and channel names
artists.quick2D
: supportscmap
kwarg.- Allow
create_variable
andcreate_channel
to create compressed datasets
Data.chop
refactored to make steps modularartists.interact2D
uses matplotlib norm objects to control colormap scaling
kit.fft
: fixed bug where Fourier coefficients were off by a scalar factor.- ensure
artists.quickND
plotters always close chopped data files
artists.Axes.scatter
: plot one variable against another, with scatter point color determined by a channel.- Invalid
unit
conversions now throw apint
error. data.from_LabRAM
: import Horiba LabRAM txt files
- docs: from method JASCO example updated
data.from_Solis
: import works without metadataunit
conversions ofNone
toNone
no longer throws a warning.- better error messages for some functions
- remove unused imports
- remove unused variables
- complex array support for data object operations
artists
now has a wrapper for matplotlib'simshow
. Make sure to use uniform grids.
artists._parse_limits
now recognizes channelnull
for signed data limits.- fixed bug where
Data.map_variable
did not interpolate onyaqc-cmds
type Data
data.from_Solis
: "kinetic series" acquisition type now supported.
artists.create_figure
: kwargmargin
allows unique margins on all sides
- ZeroDivisionError when converting units (e.g. wn to nm) now returns inf instead of raising
- PermissionError on windows when copying Data/Collection objects
- Fixed bug in
wt.artists.interact2D
where constants were not handled properly.
from_databroker
method to import Data objects from databroker catalogs
- complete units overhaul, now using pint library
- explicitly store axes as fixed string dtype
- validate units are in the unit registry on set
- Fixed bug in
from_COLORS
that misordered the relationship between variables and channels for 1D datasets. - Avoid passing both
vmin/vmax
andnorm
topcolor*
methods - Fixed matplotlib depreciation in artists._helpers
- Collection.convert method for converting all units of a single kind of a collection's data to another unit (with test script)
- Absence of verbose kwarg propogation in data.split, silenced convert call.
- Further handling for readonly files
- Improved chopping with axes that span the kept axes removed
- Timezone offset for
wt.kit.TimeStamp.RFC3339
wt_for_numpy_users
Jupyter notebook illustrating differences between numpy and WrightTools workflow
- Return min and max when file is read only
- try/except the os.close call for tempfile (may already be gone in SWMR mode)
- data objects retain units of individual axes when copied
- h5py 3.0 string handling
- pytest and pytest-cov to dev requirements
- representation of units with micro prefix
- Do not attempt to write attrs when file is read only
- lineshapes in kit:
gaussian
,lorentzian_complex
,lorentzian_real
,voight
- misc text effects within
artists.corner_text
- deprecate
pcolor_helper
, remove from internal plotting functions
- none-type units improperly handled by split through save/load
- Copy colormaps to avoid editing default mpl colormaps
- Correct units in output of split to be the same as input for axes
- Conversion to/from inches was incorrect
- matplotlib framework classifier
- Fix error when giving an explicit output array to
symmetric_sqrt
- Remove deprecated pytest runner from setup.py
- The turbo colormap has been added (temporarily, as it is staged to be added in matplotlib itself)
- Silence matplotlib warnings (including in future matplotlib 3.2 release)
- wt.artists.savefig now accepts kwargs passed onto the underlying implementation
- Quick[1|2]D figures now have a white background
- numexpr is now used to evaluate unit conversions rather than eval
- handling of resultant kwarg in data.Data.moment
- allow contour plotting with colormaps
- New file type supported: Horiba LabRAM Aramis binary files
- New mode for reading PyCMDS data: collapse=False will read without collapsing data, useful for reading large files in a memory safe way
- interact2D supports keyboard navigation
- Colormaps dict will now default to look for Matplotlib colormaps
- Better handling of tolerances in
from_PyCMDS
- Additional fluence calculation in kit
- New wt.close method to close all open WT objects in a particular python session
- Citation now points to our JOSS Publication
- Trim now works with no outliers, and allows you to ignore the point itself when averaging
- Now uses expressions rather than natural name for axes stored in the file
- Data.moment now allows you to pass resultant=shape such that it can work with multidimensional axes
Data.print_tree
will now print scalar values, rather than the shape
- Fixed unit conversion
- Fixed tolerances used for delays in
from_PyCMDS
- Correction factor applied in
from_PyCMDS
for delay stages collected with errant constant - bug where
wt-tree
modified accessed file
- JOSS review
- Quick2D now respects adding contours
- Collections and Data objects can now be created using multi-part posix paths
- Collections and Data objects can now be used as context managers, which close upon exiting
- wt.units.convert added as an alias of wt.units.converter
- Fixed a bug regarding using strings as parameters to prune
- new method: moment - Take the Nth moment of a channel along an axis
- new method: trim - Use statistical test in channels to remove outlier points
- Support for remote files in
from_
functions
- dropped support for Python 3.5, now 3.6+ only
- Deprecated "integrate" method of collapse, as moment handles this
- Use
natural_name
setter to rename groups within the underlying hdf5 file
- bugs in chunkwise operations
Data.prune
method to remove unused variables and channels easily
from_Cary
will now read data files correctly where multiple objects have the same name- improvements to
set_fig_labels
- temperature units
- gradient method of data objects
- make interact2D more robust
- ensure that data objects with constants open properly
- fix units behavior when splitting and reading PyCMDS data files
- Plotting functions like plot, pcolor, and contour now will plot channels e.g. 2D channels within a 3D data object
- Quick plotting methods now have lines and labels for constants
- π release
- much improved joining of data sets
- constants
- new window functions in smooth1D
- implementation of split
- improved import of PyCMDS data
- improved import of spcm data
- improved handling of complex dtype within collapse
wt-tree
from_Solis
Downscale
- methods in kit to calculate fluence
- interactive 2D plots
pcolormesh
- additional bug fixes and conde maintainability improvements
__citation__
- support for
pathlib
objects
- removed fit module
- removed unused artist classes
- recovered
Data.collapse
- manifest
- migrate requirements
- PyCMDS
- Cary
- allow for constant values in axis expressions
from_PyCMDS
will now read incomplete data acquisitions
- windows bug prevented deletion of files
- bug fixes to match actual behavior
- reqirements.txt distribution error
- initial release