Release Notes¶
0.3.3 (30.03.2021)¶
This is a bugfix release to correctly include the asdf schema files in conda builds. [#314]
0.3.1 (21.03.2021)¶
ASDF¶
changes¶
plot_graphof the CSM now renders static and time-dependent edges differently [#291]use
pintcompatible array syntax inIsoBaseGroove.to_profile()methods [#189]CSM and LCS plot function get a
scale_vectorsparameter. It scales the plotted coordinate system vectors when using matplotlib as backend [#293]
0.3.0 (12.03.2021)¶
added¶
add
weldx.transformations.CoordinateSystemManager.relabelfunction [#219]add
SpatialDateclass for storing 3D point data with optional triangulation [#234]add
plotfunction toSpatialData[#251]add
plotfunction to visualizeLocalCoordinateSystemandCoordinateSystemManagerinstances in 3d space [#231]add
weldx.welding.groove.iso_9692_1.IsoBaseGroove.cross_sect_areaproperty to compute cross sectional area between the workpieces [#248].add
weldx.welding.util.compute_welding_speedfunction [#248].
ASDF¶
Add possibility to store meta data and content of an external file in an ASDF file [#215]
Python class:
weldx.asdf.ExternalFileSchema:
core/file-1.0.0.yaml
Added support for serializing generic metadata and userdata attributes for weldx classes. [#209]
the provisional attribute names are
wx_metadataandwx_user
Nonevalues are removed from the asdf tree for allweldxclasses. [#212]add
datamodelsdirectory and examplehttp://weldx.bam.de/schemas/weldx/datamodels/single_pass_weld-1.0.0.schemaschema [#190]schemas in the
datamodelsdirectory do not define any tags and can be referenced in other schemas and ascustom_schemawhen reading/writingASDF-filesthe
single_pass_weld-1.0.0.schemais an example schema for a simple, linear, single pass GMAW applicationadd
core/geometry/point_cloud-1.0.0.yamlschema [#234]
add file schema describing a simple linear welding application
datamodels/single_pass_weld-1.0.0.schema[#256]
documentation¶
changes¶
pass variable names as tuple to
sympy.lambdifyinMathematicalExpressionto prevent sympy deprecation [#214]set
conda-forgeas primary channel inenvironment.yamlandbuild_env.yaml[#214]set minimum Python version to 3.7 [#220]
geometry.Profile.rasterizecan return list of rasterized shapes instead of flat ndarray (with settingstack=False) [#223]geometry.Profile.plotplots individual line objects for each shape (instead of a single line object) [#223]remove jinja templates and related code [#228]
add
stackoption to mostgeometryclasses for rasterization [#234]The graph of a
CoordinateSystemManageris now plotted withplot_graphinstead ofplot. [#231]add custom
wx_shapevalidation forTimeSeriesandQuantity[#256]refactor the
transformationsandvisualizationmodule into smaller files [#247]refactor
weldx.utilityintoweldx.util[#247]refactor
weldx.asdf.utilsintoweldx.asdf.util[#247]it is now allowed to merge a time-dependent
timedeltasubsystem into anotherCSMinstance if the parent instance has set an explicit reference time [#268]
fixes¶
don’t inline time dependent
LCS.coordinates[#222]fix “datetime64” passing for “timedelta64” in
xr_check_coords[#221]fix
time_ref_restorenot working correctly if notime_refwas set [#221]fix deprecated signature in
WXRotation[#224]fix a bug with singleton dimensions in xarray interpolation/matmul [#243]
update some documentation formatting and links [#247]
fix
wx_shapevalidation for scalarQuantityandTimeSeriesobjects [#256]fix a case where
CSM.time_union()would return with mixedDateTimeIndexandTimeDeltaIndextypes [#268]
0.2.2 (30.11.2020)¶
added¶
Added
weldx.utility.ureg_check_classclass decorator to enablepintdimensionality checks with@dataclass. [#179]Made coordinates and orientations optional for LCS schema. Missing values are interpreted as unity translation/rotation. An empty LCS object represents a unity transformation step. [#177]
added
weldx.utility.lcs_coords_from_tsfunction [#199]add a tutorial with advanced use case for combining groove interpolation with different TCP movements and distance calculations [#199]
changes¶
refactor welding groove classes [#181]
refactor groove codebase to make use of subclasses and classnames for more generic functions
add
_metaattribute to subclasses that map class attributes (dataclass parameters) to common namesrework
get_grooveto make use of new class layout and parse function arguments
create
weldx.weldingmodule (contains GMAW processes and groove definitions) [#181]move
GmawProcessTypeAsdftoasdf.tagsfolder [#181]reorder module imports in
weldx.__init__[#181]support timedelta dtypes in ASDF
data_array/variable[#191]add
set_axes_equaloption to some geometry plot functions (now defaults toFalse) [#199]make
utility.sinepublic function [#199]switch to setuptools_scm versioning and move package metadata to setup.cfg [#206]
0.2.1 (26.10.2020)¶
changes¶
Documentation
Documentation is published on readthedocs
API documentation is now available
New tutorial about 3 dimensional geometries [#105]
CoordinateSystemManagersupports multiple time formats and can get a reference time [#162]
each instance can be named
gets a
plotfunction to visualize the graphcoordinate systems can be updated using
add_cssupports deletion of coordinate systems
instances can now be merged and unmerged
LocalCoordinateSystemLocalCoordinateSystemnow acceptspd.TimedeltaIndexandpint.Quantityastimeinputs when provided with a referencepd.Timestampastime_ref[#97]LocalCoordinateSystemnow acceptsRotation-Objects asorientation[#97]Internal structure of
LocalCoordinateSystemis now based onpd.TimedeltaIndexand a referencepd.Timestampinstead ofpd.DatetimeIndex. As a consequence, providing a reference timestamp is now optional. [#126]
weldx.utility.xr_interp_likenow accepts non-iterable scalar inputs for interpolation [#97]add
pintcompatibility to somegeometryclasses (experimental)when passing quantities to constructors (and some functions), values get converted to default unit
mmand passed on as magnitudeold behavior is preserved
add
weldx.utility.xr_check_coordsfunction to check coordinates of xarray object against dtype and value restrictions [#125]add
weldx.utility._sineto easily create sine TimeSeries [#168]enable
force_ndarray_like=Trueas default option when creating the globalpint.UnitRegistry[#167]ut.xr_interp_likekeeps variable and coordinate attributes from original DataArray [#174]rework
ut.to_pandas_time_indexto accept many different formats (LCS, DataArray) [#174]add utility functions for handling time coordinates to “weldx” accessor [#174]
ASDF extension & schemas¶
add
WxSyntaxErrorexception for custom weldx ASDF syntax errors [#99]add custom
wx_tagvalidation and updatewx_property_tagto allow new syntax [#99]
the following syntax can be used:wx_tag: http://stsci.edu/schemas/asdf/core/software-* # allow every version wx_tag: http://stsci.edu/schemas/asdf/core/software-1 # fix major version wx_tag: http://stsci.edu/schemas/asdf/core/software-1.2 # fix minor version wx_tag: http://stsci.edu/schemas/asdf/core/software-1.2.3 # fix patchversion
add basic schema layout and
GmawProcessclass for arc welding process implementation [#104]add example notebook and documentation for arc welding process [#104]
allow optional properties for validation with
wx_shapeby putting the name in brackets like(optional_prop)[#176]
0.2.0 (30.07.2020)¶
ASDF¶
add
wx_unitandwx_shapevalidatorsadd
doc/shape-validation.mddocumentation forwx_shape[#75]add
doc/unit-validation.mddocumentation forwx_unitadd unit validation to
iso_groove-1.0.0.yamlfixed const/enum constraints and properties in
iso_groove-1.0.0.yamladd NetCDF inspired common types (
Dimension,Variable) with corresponding asdf serialization classesadd asdf serialization classes and schemas for
xarray.DataArray,xarray.Dataset,weldx.transformations.LocalCoordinateSystemandweldx.transformations.CoordinateSystemManager.add test for
xarray.DataArray,xarray.Dataset,weldx.transformations.LocalCoordinateSystemandweldx.transformations.CoordinateSystemManagerserialization.allow using
pint.Quantitycoordinates inweldx.transformations.LocalCoordinateSystem[#70]add measurement related ASDF serialization classes: [#70]
equipment/generic_equipment-1.0.0measurement/data-1.0.0data_transformation-1.0.0measurement/error-1.0.0measurement/measurement-1.0.0measurement/measurement_chain-1.0.0measurement/signal-1.0.0measurement/source-1.0.0
add example notebook for measurement chains in tutorials [#70]
add support for
sympyexpressions withweldx.core.MathematicalExpressionand ASDF serialization incore/mathematical_expression-1.0.0[#70] , [#76]add class to describe time series -
weldx.core.TimeSeries[#76]add
wx_property_tagvalidator [#72]the
wx_property_tagvalidator restricts all properties of an object to a single tag. For example the following object can have any number of properties but all must be of typetag:weldx.bam.de:weldx/time/timestamp-1.0.0type: object additionalProperties: true # must be true to allow any property wx_property_tag: "tag:weldx.bam.de:weldx/time/timestamp-1.0.0"
It can be used as a “named” mapping replacement instead of YAML
arrays.add
core/transformation/rotation-1.0.0schema that implementsscipy.spatial.transform.Rotationandtransformations.WXRotationclass to create custom taggedRotationinstances for custom serialization. [#79]update requirements to
asdf>=2.7[#83]update
anyOftooneOfin ASDF schemas [#83]add
__eq__functions toLocalCoordinateSystemandCoordinateSystemManager[#87]
0.1.0 (05.05.2020)¶
ASDF¶
add basic file/directory layout for asdf files
asdf schemas are located in
weldx/asdf/schemas/weldx.bam.de/weldxtag implementations are in
weldx/asdf/tags/weldx
implement support for pint quantities
implement support for basic pandas time class
implement base welding classes from AWS/NIST “A Welding Data Dictionary”
add and implement ISO groove types (DIN EN ISO 9692-1:2013)
add basic jinja templates and functions for adding simple dataclass objects
setup package to include and install ASDF extensions and schemas (see setup.py, MANIFEST.in)
add basic tests for writing/reading all ASDF classes (these only run code without any real checks!)
module:¶
add setup.py package configuration for install
required packages
package metadata
asdf extension entry points
version support
update pandas, scipy, xarray and pint minimum versions (in conda env and setup.py)
add versioneer
update options in setup.cfg
update tool configurations