Recent Releases of aspecd
aspecd - Version 0.12.0
Released 2024-12-22
Note: This version comes with a new version of the recipe format: 0.3. Existing recipes are updated automatically on import.
New features
I/O
- Importer logs warning if importing did not populate data array in dataset.
Plotting
- Attribute
climin :class:aspecd.plotting.SurfaceProperties - Parameter
thresholdfor determining the levels of a contour plot in class :class:aspecd.plotting.SinglePlotter2D - Attributes
number_of_colorsandfirst_colorin :class:aspecd.plotting.MultiPlot1DProperties: Fixed number of elements from colormap, to have same colour succession in plots with different number of curves if a colormap is specified, and potential offset in colormap if starting with white/a light colour. - Attributes
normandnorm_parametersin :class:aspecd.plotting.SurfaceProperties.
- Attribute
Plot annotations
- Parameter
unitsin :class:aspecd.annotation.Text, :class:aspecd.annotation.Marker, :class:aspecd.annotation.VerticalLine, :class:aspecd.annotation.HorizontalLine, :class:aspecd.annotation.VerticalSpan, and :class:aspecd.annotation.HorizontalSpanallowing to position using axes rather than data coordinates.
- Parameter
Processing
- :class:
aspecd.processing.SliceRearrangementfor rearranging slices of a dataset along one dimension. - :class:
aspecd.processing.DatasetAlgebraoperates on a list of datasets, allowing to add/subtract multiple datasets from a given dataset. - :class:
aspecd.processing.Denoising1DSVDfor denoising 1D datasets using singular value decomposition.
- :class:
Tasks
- Functions
addandmultiplyfor properties of tasks in recipes. - New default setting
number_of_colorson recipe level: Fixed number of elements from colormap, to have same colour succession in plots with different number of curves if a colormap is specified. - Tasks can be marked as to be skipped, using the
skipkeyword on the top level of the task definition in a recipe.
- Functions
Changes
Recipe structure changed slightly: The
settingsdictionary has a new sub-dictionarycolors, and thedefault_colormapkey moved there, together with the new keysnumber_of_colorsandfirst_color.- New recipe format version: 0.3.
- Existing recipes are updated automatically on import.
Figure properties (see :class:
aspecd.plotting.FigureProperties) are applied to the figure before the actual plotting is done, as some plotters need to know the (final) figure size or else.Axes properties (see :class:
aspecd.plotting.AxesProperties) are applied to the axes before the actual plotting is done, as some plotters need to know the (final) axes limits or else.
Fixes
- Plotter with colorbar work with recipes (no longer recursion in
to_dict()) - :class:
aspecd.processing.SliceRemovalhandles lists properly - :class:
aspecd.processing.SliceRemovalremoves value(s) from corresponding axis - :class:
aspecd.processing.Averaginghandles inverted axes (e.g., ppm scale) correctly regardless how ranges are given - :class:
aspecd.plotting.MultiPlot1DPropertieshandles explicit colours of individual drawings correctly.
Updated requirements
- bibrecord >= 0.2
- Python
Published by tillbiskup about 1 year ago
aspecd - Version 0.11.0
Released 2024-10-17
New features
Plotting
aspecd.plotting.PatchPropertiesfor properties of patches, as used foraspecd.annotation.VerticalSpanandaspecd.annotation.HorizontalSpan.aspecd.plotting.AnnotationPropertiesandaspecd.plotting.AnnotationTextPropertiesfor properties of text annotations with lines, as used foraspecd.annotation.TextWithLine.aspecd.plotting.AxesPropertieshas new attributesframe_on,xlabelposition, andylabelposition.aspecd.plotting.Spinesandaspecd.plotting.SpinePropertiesfor controlling spine properties of axes.aspecd.plotting.MarkerPropertiesfor properties of markers, as used foraspecd.annotation.Marker.
Plot annotations
aspecd.annotation.VerticalSpanfor adding vertical spans (rectangles) to plot(ter)saspecd.annotation.HorizontalSpanfor adding horizontal spans (rectangles) to plot(ter)saspecd.annotation.TextWithLinefor adding text with additional linesaspecd.annotation.Markerfor adding markers to plot(ter)saspecd.annotation.FillBetweenfor colouring the surface below a curve.
Analysis
aspecd.analysis.PeakFindingcan return both, peak positions and intensities, as pairs, ready to be used inaspecd.annotation.TextWithLineannotations.aspecd.analysis.CentreOfMassfor calculating the centre of mass for ND datasets.
IO
aspecd.io.TxtImporterhas an additional parameteraxisspecifying which column to use for axis values when reading 2D data. (#6)
Changes
- Plotting: Default figure size in
aspecd.plotting.FigurePropertiesset toNoneto allow setting from matplotlibrc to take effect.
Without adjustments, this may change the size (and aspect ratio) of your figures from 6x4 inches to 6.4x4.8 inches.
Fixes
- CompositePlotter operates on copies of plotters.
- Plot task writes correct filename for each plotter if results is used.
- PlotannotationTask saves properties to recipe history.
- PlotannotationTask can be applied to plotter and stored for later use as result at the same time.
- Text plot annotation with scalar y position set to zero works.
- Python
Published by tillbiskup over 1 year ago
aspecd - Version 0.10.1
Released 2024-08-13
Fixes
- CompositePlotter shares axes correctly
- Python
Published by tillbiskup over 1 year ago
aspecd - Version 0.10.0
Released 2024-08-10
New features
Plotting
- Set individual properties for each of the lines of a
aspecd.plotting.SinglePlotter2DStacked - Conveniently set identical properties for all lines of
aspecd.plotting.SinglePlotter2DStackedandaspecd.plotting.MultiPlotter1D aspecd.plotting.TextProertiesaspecd.plotting.DrawingPropertieshas attributezorder.aspecd.plotting.SubplotGridSpecsfor properties of the subplot grid of a CompositePlotter.aspecd.plotting.CompositePlotterallows to share x and y axes.
- Set individual properties for each of the lines of a
Plot annotations
aspecd.annotations.Textfor text annotations to plot(ter)s
Tasks
aspecd.tasks.SingleplotTaskallows to set as many results as datasets, to allow for adding an individual plotter (for one of the datasets) to aaspecd.tasks.CompositeplotTask. (#3)
Models
aspecd.model.Voigtianfor creating Voigt profiles frequently used in spectroscopy to describe line shapes.
Fixes
Tasks
aspecd.tasks.MultiplotTaskpreserves order of datasets the task is applied to, regardless whether the datasets are originally imported or result from prior tasks (viaresultproperty). (#2)aspecd.tasks.Recipe.get_datasetspreserves order of datasets, regardless whether the datasets are originally imported or result from prior tasks (viaresultproperty).aspecd.tasks.Chef.cookcloses open figures.
Plotting
CompositePlotterdoes not add additional drawings any more to the plotters used. (#5)
- Python
Published by tillbiskup over 1 year ago
aspecd - Version 0.9.3
Released 2024-07-22
Fixes
- Correct method for area normalization: take number of points into account.
- Adjust stacking in
SinglePlotter2DStackedfor data with larger minima than maxima. - Templates for LaTeX dataset report: escape
_and#in dataset label. - Axis labels can be removed by setting one or both of
xlabelandylabeltoNone(ornullin YAML/recipe).
- Python
Published by tillbiskup over 1 year ago
aspecd - Version 0.9.2
Released 2024-03-24
Fixes
- Revert changes in :class:
aspecd.utils.ToDictMixinfrom version 0.9.1, as it caused problems with Matplotlib. - Updates on contour plots to work with Matplotlib 3.8
- Updates to prevent deprecation warning for NumPy 1.25
- :class:
aspecd.processing.RangeExtractionextracts correct range for axis values.
- Python
Published by tillbiskup almost 2 years ago
aspecd - Version 0.9.1
Released 2024-01-15
Fixes
aspecd.utils.ToDictMixindoes no longer modify the__dict__or__odict__property of a class directly, what may have resulted in unexpected behaviour, but operates on a (deep)copy.
Changes
- Use Black for automatic code formatting
- Python
Published by tillbiskup about 2 years ago
aspecd - Version 0.9.0
Released 2024-01-13
New features
Processing steps
aspecd.processing.CommonRangeExtractionworks for ND datasets with arbitrary dimension N
Plotting
- Legend title can be set from recipes
- New attribute
aspecd.plotting.AxesProperties.invertfor inverting axes. Helpful, e.g., for plotting FTIR data without having to resort to explicitly provide descending axis limits. - Setting font size of axes labels via
label_fontsizeproperty. - Colorbar for 2D plotter
- Annotations for plots
Device data
- New property
aspecd.dataset.Dataset.device_datafor storing additional/secondary (monitoring) data. - New class
aspecd.dataset.DeviceDatafor device data. - New class
aspecd.analysis.DeviceDataExtractionfor extracting device data from a dataset as a separate dataset. This allows to proceed with the extracted datasets as with any other dataset. - New class
aspecd.plotting.MultiDeviceDataPlotter1Dfor plotting multiple device data of a single dataset. - New parameter
device_datainaspecd.plotting.Plotterfor plotting device data rather than primary data of a dataset/datasets
- New property
Logging
- New function
aspecd.utils.get_loggerto get a logger object for a given module with the logger within the hierarchy of the ASpecD root logger. Important for packages derived from the ASpecD framework in order to get their log messages being captured, e.g. during recipe-driven data analysis.
- New function
Changes
- Plotters can now handle device data instead of the primary data of a dataset (see above). This means, however, that instead of accessing
self.dataset.data(orself.datasets[#].data), plotters need to accessself.data.data(orself.data[#].data) instead.
Authors of derived packages should update their plotters accordingly. See the hints for developers on device data in the plotting module.
Serving recipes logs messages from all ASpecD modules, not only from the
aspecd.tasksmodule.aspecd.io.DatasetImporterFactorylogs warning if no concrete importer could be found for a given dataset, as this will usually result in (sometimes hard to detect) downstream problems.aspecd.io.DatasetExporteradds a history record toaspecd.dataset.Dataset.tasks.aspecd.plotting.SinglePlotter1Dandaspecd.plotting.MultiPlotter1Dissue warning with log plotters and negative values.aspecd.annotation.DatasetAnnotationhas been renamed fromAnnotationto reflect the fact that there are now plot annotations as well.
Documentation
- New example: Plotting FTIR spectra normalised to spectral feature
- Section with general tips and tricks for styling plotters.
Fixes
aspecd.utils.ToDictMixin.to_dictdoes not traverse settings for properties to exclude and include.- Workaround for
matplotlib.figure.Figure.savefignot correctly handling figure DPI settings.
- Python
Published by tillbiskup about 2 years ago
aspecd - Version 0.8.3
Released 2023-09-08
Fixes
- Exporter tasks (
aspecd.tasks.ExportTask) automatically save datasets with default name if no target is provided. - Correct setting of contour plot properties with newer versions of Matplotlib
Changes
aspecd.processing.Interpolationchanged interpolation method for 2D data from deprecatedscipy.interpolate.interp2dtoscipy.interpolate.RegularGridInterpolator
New features
aspecd.processing.Interpolationworks for ND datasets with arbitrary dimension Naspecd.tasks.Recipewith new settingautosave_datasets(default:True)
- Python
Published by tillbiskup over 2 years ago
aspecd - Version 0.8.2
Released 2023-08-24
Fixes
- Handling of too long filenames when saving plots: the filename is replaced by its MD5 hash.
New features
- New setting
default_colormapin recipes. - Property
colormapinaspecd.plotting.SinglePlot2DProperties, allowing for consistently setting (default) colormaps for 2D surface plots within a recipe.
- Python
Published by tillbiskup over 2 years ago
aspecd - Version 0.8.1
Released 2023-08-11
Documentation
- New section on metadata during data acquisition
- New section with examples
- New section with data publications
Fixes
- Baseline correction in
aspecd.processing.BaselineCorrectionissues warning if more than 100% of the data are used and resets to 50% on each side. - Recipe history contains importer parameters
- Python
Published by tillbiskup over 2 years ago
aspecd - Version 0.8.0
Released 2023-03-26
New features
Plotting
MultiPlotter1Dcan use colormaps for coloring multiple lines- Number of columns can be set for legends of plots
Processing steps
- New class
aspecd.processing.SliceRemovalfor removing slices from a ND dataset with N>1. - New class
aspecd.processing.RelativeAxisfor converting an axis into a relative axis, centred about a (given) origin.
- New class
Fixes
- Interpolation in
aspecd.processing.Interpolationworks correctly if axis range is given and no corresponding axis point exists in the original dataset.
- Python
Published by tillbiskup almost 3 years ago
aspecd - Version 0.7.1
Released 2022-06-12
New Features
- Reference to publication in documentation and colophon of reports.
- Python
Published by tillbiskup over 3 years ago
aspecd - Version 0.7.0
Released 2022-01-30
New features
aspecd.tasks.FigurereportTaskfor creating figure captions that can, e.g., be included in other documents- Attributes
labelspacingandfontsizeinaspecd.plotting.LegendProperties - Attribute
outputinaspecd.tasks.ModelTaskcontrolling the type of output returned (dataset or model) - Method
aspecd.model.Model.evaluate()for fast evaluation of models without any checks (useful in context of fitting) - Attribute
dataset_typeinaspecd.analysis.AnalysisStepto define type of calculated dataset that gets returned aspecd.plotting.MultiPlotter1Dandaspecd.plotting.MultiPlotter1DStackedwith parameter "tight" for tight axes and "switch_axes" for switching axesaspecd.plotting.SinglePlotter1Dwith parameter "switch_axes" for switching axesaspecd.plotting.AxesProperties: angles of the axes tick labels can be set using thexticklabelangleandyticklabelangleproperties
Changes
aspecd.processing.SliceExtractionsets dataset label to slice positionaspecd.processing.Averagingsets dataset label to averaging range
Fixes
- Dataset importer does not override dataset label.
- AnalysisSteps assign data to _origdata attribute if result is dataset
- MultiprocessingTask correctly sets label of resulting datasets
- Python
Published by tillbiskup about 4 years ago
aspecd - Version 0.6.4
Released 2021-11-25
Changes
- New attribute
commentinaspecd.tasks.Task,aspecd.report.Reporter,aspecd.plotting.Plotter,aspecd.io.DatasetExporterallowing for storing user-supplied comments
Fixes
- Warnings issued during cooking of a recipe are now log messages.
- Python
Published by tillbiskup over 4 years ago
aspecd - Version 0.6.3
Released 2021-11-24
Changes
aspecd.report.Reporteradds template loader for package ifpackageis provided, allowing to override templates from the ASpecD framework within derived packages.aspecd.tasks.ReportTaskpasses through the default package from the recipe to the reporter for overriding templates.aspecd.infofile.Infofile: Comment gets converted into a single string- Dependency change: Jinja >= 3.0
aspecd.io.TxtImporterhandles decimal separator different than dot
Fixes
aspecd.tasks.Taskwarns if key in dict (recipe) is no property of the task.aspecd.processing.DatasetAlgebrareturns shape in error message if shapes differ.- Processing and analysis tasks issue warning if result name is identical to dataset label
- Ensure window length for Savitzky-Golay filter in
aspecd.processing.Filteringto always be odd aspecd.processing.CommonRangeExtractionignores unit of last axis (i.e., intensity) when checking for identical unitsaspecd.utils.ToDictMixin: Added superclass call to preserve mro in dependent subclasses- Tasks properly handle non-dataset results from recipe
aspecd.plotting.MultiPlottersets axis labels when units are emptyaspecd.processing.Normalisationremoves unit from last axisaspecd.processing.BaselineCorrectionhandles zero values in range properlyaspecd.analysis.AggregateAnalysisStepno longer addsdatasetsandresultto output ofto_dict()aspecd.tasks.AggregatedAnalysisTasksets correct type in output ofto_dict()aspecd.tasks.ReportTaskdoes not add empty figure filenames to includesaspecd.Tasks.PlotTaskpreserves labels of drawings- Recipe history does not contain path to current directory in dataset source
- Python
Published by tillbiskup over 4 years ago
aspecd - Version 0.6.2
Released 2021-11-16
Changes
- New parameter
ytickcountforaspecd.plotting.SinglePlotter2DStackedto control maximum number of yticks - New parameter
tight_layoutforaspecd.plotting.Plotterto prevent labels from getting clipped
Fixes
- Recipe containing a MultiplotTask does not contain datasets as dicts
- PlotTask with automatically generated filenames and >1 datasets writes correct filenames to figure record in recipe
- CompositePlotter sets plot style of plotters
- Grammar in
dataset.textemplate - Colophon of report via ReportTask contains default package set in recipe
- CompositePlotter does not add plotters of subfigures to list of dataset representations and list of dataset tasks
- Escaping of "_" in LaTeX templates
- Python
Published by tillbiskup over 4 years ago
aspecd - Version 0.6.1
Released 2021-11-10
Fixes
- ReportTask works with output directory set in recipe
- LatexReporter finds templates with relative path
- Yaml handles numpy floats and ints
- ProcessingTask handles multiple datasets, SinglePlotTask automatically generated figure filenames with multiple datasets
- ProcessingTask no longer tries to deep-copy matplotlib objects
- Replacing dataset labels in recipes works with dataset ids/source
- Python
Published by tillbiskup over 4 years ago
aspecd - Version 0.6.0
Released 2021-11-05
New features
Reports
- Templates for reporting information contained in datasets come bundled with ASpecD.
- Context contains
templates_dirallowing to include sub-templates. - New class
TxtReporterfor plain text reports
Tasks/Recipe-driven data analysis
- YAML representation of recipe and tasks via
aspecd.tasks.Recipe.to_yamlandaspecd.tasks.Task.to_yaml - Figure labels can be set in plotters; otherwise a default label will be set and can be accessed from within reports.
- YAML representation of recipe and tasks via
Utils
change_working_dircan be used as context manager to temporarily change the working directory.
General
aspecd.utils.ToDictMixin.to_dictcan optionally remove keys with empty values.to_dict()method inaspecd.processing.ProcessingStep,aspecd.analysis.AnalysisStep,aspecd.annotation.Annotation,aspecd.plotting.Plotter,aspecd.table.Table,aspecd.report.Reporter,aspecd.model.Model
Models
- Axes quantities and units can be explicitly set on model creation.
Changes
- Dataset labels do not contain source path.
- Recipe dataset_source and output directories are no longer converted to absolute paths.
- More complete recipe history for tasks, including more of their properties
- Recipe-driven data analysis: Figures get added to recipe with default label if no label is provided.
aspecd.processing.Noise: explicit noise amplitude can be given.- Model can add label to created dataset.
- ModelTask adds result label as id to result.
- Plotter: Default figure size changed to (6., 4.) inch
Fixes
aspecd.tasks.Task.to_yamlserialises numpy arrays- Datasets from foreign packages are correctly listed in recipe history
aspecd.utils.copy_keys_between_dictsproperly traversesaspecd.utils.Yamlhandlesnumpy.double- Recipe-driven data analysis: automatically generated figure filenames get added to recipe figure record
- Models work now correctly when based on a dataset
aspecd.model.FamilyOfCurvessets correct values for additional axisaspecd.processing.Differentiationworks correctly for 2D datasetsaspecd.processing.Noise: normalisation works with >1D datasetsaspecd.plotting.SinglePlotter2DStacked: ylabel is set to third axis if offset = 0
- Python
Published by tillbiskup over 4 years ago
aspecd - Version 0.5.0
Released 2021-10-12
New features
Tasks/Recipe-driven data analysis
- YAML representation of tasks and recipes using
aspecd.tasks.Task.to_yamlandaspecd.tasks.Recipe.to_yaml- convenience methods for later use in guided recipe generation aspecd.tasks.AggregatedanalysisTaskfor performing a SingleAnalysisStep on a series of datasets, aggregating the result in a CalculatedDatasetaspecd.tasks.TabulateTaskfor tabular representation of data of a dataset
- YAML representation of tasks and recipes using
Datasets
- New attribute
aspecd.dataset.Axis.index(for individual labels for each data point, similar to pandas and for tabular data) aspecd.dataset.Dataset.tabulateto create tables from datasets
- New attribute
Analysis steps
- New class
aspecd.analysis.AggregatedAnalysisStepfor aggregating the results of a SingleAnalysisStep on multiple datasets in a CalculatedDataset
- New class
Tabular representation of datasets
- New module
aspecd.table - Series of output formats for tables (including DokuWiki and LaTeX)
- Tables can have captions that are output as well
- New module
Utils
aspecd.utils.get_package_datafor obtaining package data (i.e., non-code files contained in distribution)
Changes
aspecd.analysis.BasicCharacteristicsalways returns scalars or lists in its results and writes index (for compatibility withaspecd.analysis.AggregatedAnalysisStepand tabular output).
- Python
Published by tillbiskup over 4 years ago
aspecd - Version 0.4.0
Released 2021-10-08
Note: Starting with this release ASpecD requires Python >= 3.7.
New features
Tasks/Recipe-driven data analysis
- New attribute
aspecd.tasks.PlotTask.targetallows adding a plot to an already existing plot. aspecd.tasks.Task.to_dictadds (implicit) parameters of underlying task object- Classes from the ASpecD framework can be used without prefixing them with "aspecd" in recipes with "default_package" set to a package based on the ASpecD framework.
servecommand outputs log messages for each task- Command-line options for
servesetting the log level/verbosity - Catching of errors, excluding the stack trace and only showing the error message (but full stack trace in verbose mode)
- Switch in recipe to suppress writing history (for development/debugging, issuing warning on the command line via logging)
- New structure of recipes: Move
default_packageandautosave_plotsto new dictsettings;output_directoryanddatasets_source_directoryto new dictdirectories - Add
formatdict to recipe with fieldstypeandversion - Automatically convert old recipe formats within
aspecd.io.RecipeYamlImporter - Processing steps writing parameters during execution and applied to multiple datasetes are unpacked in the recipe history if these parameters change for each dataset
- New attribute
References in processing and analysis steps and models (using bibrecord package)
- Python
Published by tillbiskup over 4 years ago
aspecd - Version 0.3.1
Released 2021-09-21
The following bugs have been fixed:
Handling of lists as properties in recipes
Improved handling of axes labels with xkcd style
Offset in SinglePlotter2DStacked can be set to zero
- Python
Published by tillbiskup over 4 years ago
aspecd - Version 0.3.0
Released 2021-09-02
Note: This is the last ASpecD release with explicit support for Python 3.5.
New features
Processing steps
- Adding (coloured) noise to datasets (:class:
aspecd.processing.Noise) - Provide a new range of axis values for a dataset for correction (:class:
aspecd.processing.ChangeAxesValues)
- Adding (coloured) noise to datasets (:class:
Analysis steps
- Power spectral density of 1D dataset (:class:
aspecd.analysis.PowerDensitySpectrum), e.g., for analysing noise - Polynomial fit of 1D data (:class:
aspecd.analysis.PolynomialFit) - Linear regression of 1D data without fitting the intercept (:class:
aspecd.analysis.LinearRegressionWithFixedIntercept) - Additional methods in :class:
aspecd.analysis.BlindSNREstimation
- Power spectral density of 1D dataset (:class:
Class :class:
aspecd.model.Model- New attribute :attr:
aspecd.model.Model.description - New non-public method
_sanitise_parameters
- New attribute :attr:
New models
- :class:
aspecd.model.Polynomialfor evaluating polynomials (e.g., as obtained using :class:aspecd.analysis.PolynomialFit) - :class:
aspecd.model.Zeros - :class:
aspecd.model.Ones - :class:
aspecd.model.Gaussian - :class:
aspecd.model.NormalisedGaussian - :class:
aspecd.model.Lorentzian - :class:
aspecd.model.NormalisedLorentzian - :class:
aspecd.model.Sine - :class:
aspecd.model.Exponential - :class:
aspecd.model.CompositeModelfor models consisting of a (weighted) sum of individual models - :class:
aspecd.model.FamilyOfCurvesfor inspecting systematic variations of one parameter of a given model
- :class:
Tasks
- Comments can be added easily to processing and analysis steps using the top-level key
commentof the respective task.
- Comments can be added easily to processing and analysis steps using the top-level key
Utils
- :func:
aspecd.utils.not_zeroensuring a float not to cause DivisionByZero errors
- :func:
Changes
- :class:
aspecd.processing.Differentiationuses :func:numpy.gradientinstead of :func:numpy.diff - :class:
aspecd.processing.BaselineCorrectionreturns polynomial coefficients in unscaled data domain
Fixes
- Axis labels without "/" if no unit is present
- :class:
aspecd.metadata.Measurementhandles dates imported from YAML (implicitly converted into datetime.date object)
- Python
Published by tillbiskup over 4 years ago
aspecd - Version 0.2.2
Released 2021-06-19
The following bugs have been fixed:
- Normalisation to minimum now divides by absolute value of minimum
- Normalisation raises ValueError in case of unknown kind
- Import with explicit importer when importer resides in (sub)package
- Recipe history shortens dataset source if datasetsourcedirectory has trailing slash
- Python
Published by tillbiskup over 4 years ago
aspecd - Version 0.2.1
Released 2021-06-03
The following bugs have been fixed:
- Report: template can have ".." in its path
aspecd.utils.copy_values_between_dictscascades through source dict- Add missing template files for sphinx multiversion
Additionally, the following new helper functions appeared:
aspecd.utils.remove_empty_values_from_dictaspecd.utils.convert_keys_to_variable_names
- Python
Published by tillbiskup over 4 years ago
aspecd - Version 0.2.0
Released 2021-05-19
New features
- Singleplot and multiplot tasks automatically save results to generic file(s) when no filename is provided
- Importer and importer parameters can be set in recipe
- DatasetImporterFactory: importer can be set explicitly, parameters can be passed to importers
- DatasetImporter with parameters property
- Meaningful error messages for exceptions in ProcessingSteps, AnalysisSteps, Plotters
- Method
create_dataset()in AnalysisStep - PeakFinding (for 1D data)
- BlindSNREstimation (currently only with simplest method)
- BasicStatistics (mean, median, std, var)
- BasicCharacteristics (min, max, amplitude, area)
- ProcessingStep provides non-public method
_set_defaults()for setting default parameters before sanitising parameters. - Filtering (with uniform, Gaussian, and Savitzky-Golay filter)
- Interpolation (at least for 1D and 2D datasets)
- Normalisation:
- Act on parts of the data of a dataset
- Handle noise for ND data with N>1
- RangeExtraction: extract range of data from dataset (using slice notation)
- MultiprocessingTask (and SingleprocessingTask aliasing ProcessingTask)
- ScalarAxisAlgebra: perform scalar algebra on axis values
- DatasetAlgebra: add and subtract data of second dataset to/from dataset
- CommonRangeExtraction for 1D and 2D datasets
- SinglePlotter2D:
- Filled contour plot with additional contour lines that can be styled
- Lines of contour plot can be styled
- SliceExtraction now handles both, axis indices and axis values
Changes
- Removed parameter
sourcefrom method_get_importerin DatasetImporterFactory, importer factories of derived packages now handle ASpecD-implemented importers by default. - Dataset: method :meth:
aspecd.dataset.append_history_recordmade public - SystemInfo: Packages contain now full list of dependencies with version numbers of currently installed packages
- SliceExtraction:
- parameter "index" renamed to "position"
- works for ND datasets with N>1
- ProcessingStep split into SingleProcessingStep and MultiProcessingStep All processing steps previously inheriting from aspecd.ProcessingStep need to inherit now from aspecd.SingleProcessingStep to continue working as expected.
- Plots throw "NotApplicableToDataset" exceptions rather than "PlotNotApplicableToDataset"
Fixes
- SingleanalysisTask assigns results of multiple (individual) datasets
- Exceptions print messages
New dependencies
- scipy (for interpolation in ExtractCommonRange and various analysis steps)
- Python
Published by tillbiskup almost 5 years ago
aspecd - Version 0.1.1
Released 2021-05-03
- MetadataMapper: Fix sequence of mapping operations performed
- MetadataMapper: Mappings are automatically loaded from file if filename is given
- CompositePlotter: Legends for subplots work
- SliceExtraction: Remove correct axis from dataset
- MultiPlotter1D*: Fix problem in conjunction with CompositePlotter and assigning drawings
- SliceExtraction: fix problem extracting slice with index zero
- CompositePlotter: more intuitive axes_positions
- Fix bug with aspect ratio of 2D plots using imshow
- Update intersphinx mapping for matplotlib
- Python
Published by tillbiskup almost 5 years ago
aspecd - Version 0.1.0
Released 2021-04-24
- First public release
- List of generally applicable concrete processing steps
- List of generally applicable concrete plotters
- Recipe-driven data analysis fully working with history
- Introduced ASpecD dataset format (ADF)
- Python
Published by tillbiskup almost 5 years ago