Highlights
- [Quality Standards](https://weldx.readthedocs.io/en/latest/tutorials/quality_standards.html):
Users can now create and integrate their own quality standards by
defining new ASDF schema definitions and loading them into weldx. It
is possible to add new definitions or modify existing schemas to
create your own flavour of the weldx standard.
- [WeldxFile](https://weldx.readthedocs.io/en/latest/tutorials/weldxfile.html):
Create/Load/Modify asdf files directly using `WeldxFile` with many
helpful utility functions included.
- [TimeSeries support](https://weldx.readthedocs.io/en/latest/tutorials/welding_example_02_weaving.html#add-a-sine-wave-to-the-TCP-movement)
for `LocalCoordinateSystem`: It is now possible to define a
time-dependent `LocalCoordinateSystem` with a simple function by
passing a `TimeSeries` object with a `MathematicalExpression` as
`coordinates`. For an example, click the link above.
- [MeasurementChain](https://weldx.readthedocs.io/en/latest/tutorials/measurement_chain.html)
The `measurement.MeasurementChain` has been reworked to be easier and
more flexible to use.
full changelog below:
Added
- add support for quality standards. Further information can be found
in the corresponding new tutorial. \[{pull}`211`\]
- added `asdf.util.get_schema_path` helper function \[{pull}`325`\]
- added `util.compare_nested` to check equality of two nested data
structures. \[{pull}`328`\]
- added `WeldxFile` wrapper to handle asdf files with history and
schemas more easily. \[{pull}`341`\].
- add `"step"` as additional method to `util.xr_interp_like` \[{pull}`363`\]
- add `util.dataclass_nested_eq` decorator for dataclasses with
array-like fields \[{pull}`378`\]
- adds a `asdf.util.dataclass_serialization_class` utility function
that automatically generates the asdf serialization class for python
dataclasses. \[{pull}`380`\]
- Added method to set the interpolation method to the `TimeSeries`
\[{pull}`353`\]
- Add `TimeSeries.is_discrete` and `TimeSeries.is_expression`
properties to `TimeSeries` \[{pull}`366`\]
- Add `measurement.MeasurementChain.output_signal` property that
returns the output signal of the `measurement.MeasurementChain`
\[{pull}`394`\]
Changes
- `WXRotation.from_euler` now accepts a `pint.Quantity` as input.
\[{pull}`318`\]
- move tests folder to `weldx/tests` \[{pull}`323`\]
- `asdf.util.get_yaml_header` received a new option parse, which
optionally returns the parsed YAML header as
`asdf.tagged.TaggedDict`. \[{pull}`338`\]
- refactor `asdf_json_repr` into `asdf.util.view_tree` \[{pull}`339`\]
- `TimeSeries.interp_time` \[{pull}`353`\]
- now returns a new `TimeSeries` instead of a `xarray.DataArray`
- if the data has already been interpolated before, a warning is
emitted
- `TimeSeries` supports now all interpolation methods supported by
xarray
- The `measurement.MeasurementChain` is now internally based on a
`networkx.DiGraph`. New functions are also added to the class to
simplify its usage. \[{pull}`326`\] The following
additional changes were applied during the update of the
`measurement.MeasurementChain`:
- renamed `DataTransformation` class to
`measurement.SignalTransformation`
- renamed `Source` to `measurement.SignalSource`
- Added additional functionality to `measurement.Signal`,
`measurement.SignalTransformation` and `GenericEquipment`
- Removed `Data` class
- Updated asdf schemas of all modified classes and the ones that
contained references to those classes
- allow input of string quantities in `MathematicalExpression`
parameters and a few other places \[{pull}`402`\] \[{pull}`416`\]
- `LocalCoordinateSystem` `__init__` now accepts a `TimeSeries` as
input. All methods of the `CoordinateSystemManager` also support this
new behavior \[{pull}`366`\]
- During the creation of a `WeldxFile` the path of a passed custom
schema is resolved automatically \[{pull}`412`\].
Documentation
- Add new tutorial about the `measurement.MeasurementChain` \[{pull}`326`\]
- Updated the measurement tutorial \[{pull}`326`\]
ASDF
- fix inline array serialization for new 64bit inline limit \[{pull}`218`\]
- add `asdf.extension.WeldxExtension.yaml_tag_handles` to
`WeldxExtension` \[{pull}`218`\]
- add `uuid-1.0.0.yaml` schema as basic version 4 UUID implementation
\[{pull}`330`\]
- add `core/graph/di_node`, `core/graph/di_edge` &
`core/graph/di_graph` for implementing a generic `networkx.DiGraph`
\[{pull}`330`\]
- compatibility with ASDF-2.8 \[{pull}`355`\]
- data attached to an instance of the `CoordinateSystemManager` is now
also stored in a WelDX file \[{pull}`364`\]
- replace references to base asdf tags with `-1.*` version wildcard
\[{pull}`373`\]
- update `single-pass-weldx.1.0.0.schema` to allow groove types by
wildcard \[{pull}`373`\]
- fix attributes serialization of DataSet children \[{pull}`384`\].
- update `wx_shape` syntax in `local_coordinate_system-1.0.0`
\[{pull}`366`\]
- add custom `wx_shape` validation to `variable-1.0.0` \[{pull}`366`\]
- remove outdated `TimeSeries` shape validation code \[{pull}`399`\]
- use asdf tag validation pattern for `wx_property_tag` \[{pull}`410`\]
- update `MathematicalExpression` schema \[{pull}`410`\]
Fixes
- added check for symmetric key difference for mappings with
`util.compare_nested` \[{pull}`377`\]
deprecations
- deprecate `wx_tag` validator (use default asdf uri pattern
matching) \[{pull}`410`\]