Skip to content

Releases: BAMWelDX/weldx

0.5.2

18 Nov 09:49
108084c
Compare
Choose a tag to compare

0.5.2 (18.11.2021)

added

  • CoordinateSystemManager can now delete already assigned data with
    CoordinateSystemManager.delete_data. [#645]
  • WeldxFile handles an array_inline_threshold parameter to
    indicate if short arrays will be serialized as strings, or as binary
    block. Note that this does not affect arrays, which are being shared
    across several objects in the same file. [#643]

changes

  • WeldxFile now raises an exception, if a warning is emitted during
    loading the weldx ASDF extension, this should prevent erroneous data
    during loading, for example missing dependencies. [#641]
  • WeldxFile now hides ASDF added fields like history and asdf_library
    from the dictionary interface. To access these, there are separate
    properties [#625].
  • Allow handling of time values as singular coordinates without
    dimensions in some classes [#635].

fixes

  • Fix wrong dimension order being passed through in SpatialData
    [#635].

dependencies

  • Removed ipykernel dependency. [#634]
  • The K3D implementation now uses the experimental
    weldx-widgets backend if available [#636]

Merged PRs

Full Changelog: v0.5.1...v0.5.2

0.5.1

04 Nov 15:22
1128a45
Compare
Choose a tag to compare

0.5.1 (04.11.2021)

added

  • Time.duration to get the covered duration of the data and
    Time.resample to get a new Time instance with resampled time data
    within the same boundaries as the original object [#603]
  • Added weldx.geometry.SpatialData.limits to calculate coordinate
    boundaries. [#604]
  • Added weldx.asdf.util.get_schema_tree utility to display schema
    files. [#610]

changes

  • All public interfaces of the weldx.geometry module classes now
    require the usage of units and support unit strings as inputs.
    [#588]
  • CoordinateSystemManager.time_union now returns a Time instance
    instead of a pandas type [#603]
  • SpatialData now supports time dependent data. [#612]
  • Renamed the parameter coordinate_system_name of
    CoordinateSystemManager.assign_data to reference_system and
    added the parameter target_system. If the latter one is not
    None, the data will be transformed and stored at this coordinate
    system. [#612]
  • improve dimension handling of SpatialData [#622]
  • The MathematicalExpression now supports xarray.DataArray as
    parameters. Furthermore, multidimensional parameters of a
    MathematicalExpression that is passed to a TimeSeries are no
    longer required to have an extra dimension that represents time.
    [#621]

fixes

  • fix broken Time.all_close to now work as intended [#603]
  • fix weldx.asdf.util.get_yaml_header to work correctly with windows
    line endings. [#609]

documentation

ASDF

  • fix process missing as required property in
    single_pass_weld-0.1.0.yaml [#627]

deprecations

  • removed welding.util.lcs_coords_from_ts [#620]

dependencies

  • adjust code to support pint 0.18 unit formatting. [#616]

Merged PRs

Full Changelog: v0.5.0...v0.5.1

0.5.0

12 Oct 17:50
4b1bdb9
Compare
Choose a tag to compare

0.5.0 (12.10.2021)

Release 0.5.0 brings a major rework of the weldx standard and many
API improvements:

Highlights

  • weldx now internally uses the reworked ASDF extension API. The
    schema and tag naming patterns have also changed to the recommended
    asdf:// format.
  • New Time class to make handling of time related functionality
    easier and consistent.
  • many internal reworks to streamline the code.
  • rework the API documentation to show the most
    important classes.

Compatibility

  • the 0.5.x versions will retain backwards compatibility with files
    generated with the 0.4.x versions and convert them to the new
    naming schema on save. Support for the old schemas will be dropped in
    the 0.6 release.

added

  • added "units" (exact) and "dimensionality" (dimensionality
    compatible) checking options to util.xr_check_coords [#442]
  • Time class that can be initialized from several other time types
    and provides time related utility functions [#433]
  • TimeSeries now supports setting a reference_time absolute time
    values for interpolation [#440]
  • LocalCoordinateSystem.from_axis_vectors and
    CoordinateSystemManager.create_cs_from_axis_vectors [#472]
  • added PyTest flags to use WeldxFile internally in
    asdf.util.read_buffer and asdf.util.write_buffer [#469].
  • added classes and functions at the top-level of the package to the
    documentation [#437].
  • added weldx.asdf.util.get_highest_tag_version utility function
    [#523].
  • added support for parsing temperature deltas with Δ° notation
    [#565].
  • WeldxFile.info to print a quick content overview to the stdout.
    [#576].

removed

  • removed functions now covered by Time:
    pandas_time_delta_to_quantity, to_pandas_time_index,
    get_time_union [#448]
  • removed custom wx_tag validator [#461]
  • attrdict dependency replaced with a custom implementation of
    recursive dicts [#470].
  • from_xyz, from_xy_and_orientation,
    from_yz_and_orientation and from_xz_and_orientation from
    LocalCoordinateSystem. Use
    LocalCoordinateSystem.from_axis_vectors instead. [#472]
  • create_cs_from_xyz, create_cs_from_xy_and_orientation,
    create_cs_from_yz_and_orientation and
    create_cs_from_xz_and_orientation from CoordinateSystemManager.
    Use CoordinateSystemManager.create_cs_from_axis_vectors instead.
    [#472]
  • is_column_in_matrix, is_row_in_matrix, to_float_array,
    to_list, matrix_is_close, vector_is_close and
    triangulate_geometry from weldx.util [#490]
  • remove the : syntax from wx_shape validation [#537]

changes

  • move welding.util.sine utility function to weldx.welding.util
    [#439]
  • LocalCoordinateSystem and CoordinateSystemManager function
    parameters related to time now support all types that are also
    supported by the new Time class [#448]
  • LocalCoordinateSystem.interp_time returns static systems if only a
    single time value is passed or if there is no overlap between the
    interpolation time range and the coordinate systems time range. This
    also affects the results of some CoordinateSystemManager methods
    (CoordinateSystemManager.get_cs ,
    CoordinateSystemManager.interp_time) [#476]
  • util.WeldxAccessor.time_ref setter now raises a TypeError if
    None is passed to it [#489]
  • move xarray related utility functions into weldx.util.xarray and
    all other ones into weldx.util.util. Content from both submodules
    can still be accessed using weldx.util [#490]
  • xarray implementations for the LocalCoordinateSystem now operate on
    time as a dimension instead of coordinates [#486]
  • WeldxFile.copy now creates a copy to a (optional) file. Before it
    just returned a dictionary [#504].
  • changed the default pint.Unit formatting to short notation :~
    [#519]. (the asdf
    serialization still uses long notation ([#560]))
  • welding_current and welding_voltage in the single-pass weld
    schema now expect the tag
    "asdf://weldx.bam.de/weldx/tags/core/time_series-0.1.*" instead
    of "asdf://weldx.bam.de/weldx/tags/measurement/signal-0.1.*"
    [#578].
  • Geometry.__init__ now also accepts an iso.IsoBaseGroove as profile
    parameter [#583].
  • Renamed Geometry.__init__ parameter trace to trace_or_length. A
    pint.Quantity is now an accepted input. In this case the value will be used
    to create a linear trace of the given length [#583].

fixes

  • WeldxFile.show_asdf_header prints output on console, before it only
    returned the header as parsed dict and string representation. Also
    tweaked efficiency by not writing binary blocks [#459], [#469].
  • Merging and unmerging multiple CoordinateSystemManager instances
    now correctly preserves all attached data. [#494].
  • util.compare_nested can compare sets [#496]
  • WeldxFile respects mode argument also for BytesIO and file
    handles [#539].

documentation

  • added installation guide with complete environment setup (Jupyterlab
    with extensions) and possible problems and solutions [#450]
  • split API documentation into user classes/functions and a full API
    reference [#469].
  • added citation metadata in CITATION.cff [#568].

ASDF

  • all schema version numbers set to 0.1.0 [#535].
  • add time/time schema to support Time class [#463].
  • rework ASDF extension to new asdf 2.8 API [#467]
    • move schema files to weldx/schemas
    • create extension manifest in weldx/manifests. The manifest
      also contains tag mappings for legacy tag names for backwards
      compatibility.
    • move tag module to weldx/tags
    • refactor all asdf uris to new asdf:// naming convention, see
      https://asdf.readthedocs.io/en/latest/asdf/extending/uris.html#entities-identified-by-uri
    • replaced all referenced weldx tag versions in schemas with
      0.1.*
    • refactor
      asdf://weldx.bam.de/weldx/schemas/datamodels/single_pass_weld-1.0.0.schema
      to
      asdf://weldx.bam.de/weldx/schemas/datamodels/single_pass_weld-0.1.0
      and enable schema test
    • add legacy class for validators support in
      weldx.asdf._extension.py
    • asdf utility functions weldx.asdf.util.uri_match,
      weldx.asdf.util.get_converter_for_tag and
      weldx.asdf.util.get_weldx_extension
    • add devtools/scripts/update_manifest.py to auto update
      manifest from extension metadata
    • custom shape validation must now be implemented via staticmethod
      weldx.asdf.types.WeldxConverter.shape_from_tagged
  • provide legacy schema support in
    weldx/schemas/weldx.bam.de/legacy [#533]
  • rewrote
    asdf://weldx.bam.de/weldx/schemas/core/transformations/coordinate_system_hierarchy
    schema for the CoordinateSystemManager. It uses the digraph schemas
    to serialize the coordinate system structure. [#497]
  • add asdf://weldx.bam.de/weldx/schemas/unit/quantity and
    asdf://weldx.bam.de/weldx/schemas/unit/unit schemas [#522]
  • use asdf://weldx.bam.de/weldx/schemas/unit/quantity instead of
    tag:stsci.edu:asdf/unit/quantity-1.1.0 [#542].
  • refactor properties named unit to units and use unit/unit
    tag [#551].
  • reworked the optional syntax for wx_shape validation [#571].

dependencies

  • set k3d!=2.10 because of conda dependency bugs [#577] [#474].
  • Python 3.10 is not supported in this version. [#575]

Merged PRs

  • Update changelog by @vhirtham in #438
  • [WeldxFile] fix show header in non interactive sessions by @m...
Read more

0.4.1

20 Jul 06:56
18516c3
Compare
Choose a tag to compare

0.4.1 (20.07.2021)

added

  • closed_mesh parameter to Geometry.spatial_data and SpatialData.from_geometry_raster [#414]
  • TimeSeries.plot and Signal.plot [#420]

changes

  • TimeSeries.__init__ accepts xarray.DataArray as data parameter [#429]

ASDF

  • sort List[str] before serialization of most weldx classes to avoid random reordering in the same file and enforce consistency. [#430]

deprecations

  • lcs_coords_from_ts will be removed in version 0.5.0 [#426]

Merged PRs

Full Changelog: v0.4.0...v0.4.1

0.4.0

13 Jul 15:25
426ad3a
Compare
Choose a tag to compare

0.4.0 (13.07.2021)

Release 0.4.0 brings many new major features to weldx

Highlights

  • Quality Standards:
    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:
    Create/Load/Modify asdf files directly using WeldxFile with many helpful utility functions included.
  • TimeSeries support
    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
    The 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.
    [#211]
  • added asdf.util.get_schema_path helper function [#325]
  • added util.compare_nested to check equality of two nested data
    structures. [#328]
  • added WeldxFile wrapper to handle asdf files with history and schemas more
    easily. [#341].
  • add "step" as additional method to util.xr_interp_like [#363]
  • add util.compare_nested_eq decorator for dataclasses with array-like
    fields [#378]
  • adds a dataclass_serialization_class utility function that automatically generates the asdf serialization class for
    python dataclasses. [#380]
  • Added method to set the interpolation method to the TimeSeries [#353]
  • Add is_discrete and is_expression properties to TimeSeries [#366]
  • Add MeasurementChain.output_signal property that returns the output signal of the MeasurementChain
    [#394]

changes

  • WXRotation.from_euler() now accepts a pint.Quantity as input. [#318]
  • move tests folder to weldx/tests [#323]
  • get_yaml_header received a new option parse, which optionally returns the parsed YAML header
    as asdf.tagged.TaggedDict. [#338]
  • refactor asdf_json_repr into view_tree [#339]
  • TimeSeries.interp_time [#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 MeasurementChain is now internally based on a networkx.DiGraph. New functions are also added to the class to
    simplify its usage. [#326]
    The following additional changes were applied during the update of the MeasurementChain:
    • renamed DataTransformation class to SignalTransformation
    • renamed Source to SignalSource
    • Added additional functionality to Signal, 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 [#402] [#416]
  • LocalCoordinateSystem.__init__ now accepts a TimeSeries as input. All methods of the CoordinateSystemManager
    also support this new behavior [#366]
  • During the creation of a WeldxFile the path of a passed custom schema is resolved automatically
    [#412].

documentation

  • Add new tutorial about the MeasurementChain [#326]
  • Updated the measurement tutorial [#326]

ASDF

  • fix inline array serialization for new 64bit inline limit [#218]
  • add yaml_tag_handles to WeldxExtension [#218]
  • add uuid-1.0.0.yaml schema as basic version 4 UUID
    implementation [#330]
  • add core/graph/di_node, core/graph/di_edge & core/graph/di_graph for implementing a
    generic networkx.DiGraph [#330]
  • compatibility with ASDF-2.8 [#355]
  • data attached to an instance of the CoordinateSystemManger is now also stored in a WelDX file
    [#364]
  • replace references to base asdf tags with -1.* version wildcard [#373]
  • update single-pass-weldx.1.0.0.schema to allow groove types by
    wildcard [#373]
  • fix attributes serialization of DataSet children [#384].
  • update wx_shape syntax in local_coordinate_system-1.0.0 [#366]
  • add custom wx_shape validation to variable-1.0.0 [#366]
  • remove outdated TimeSeries shape validation code [#399]
  • use asdf tag validation pattern for wx_property_tag [#410]
  • update MathematicalExpression schema [#410]

fixes

  • added check for symmetric key difference for mappings
    with util.compare_nested [#377]

deprecations

  • deprecate wx_tag validator (use default asdf uri pattern
    matching) [#410]

Merged PRs

Read more

0.3.3

30 Mar 08:55
bd64385
Compare
Choose a tag to compare

0.3.3 (30.03.2021)

This is a bugfix release to correctly include the asdf schema files in conda builds. [#314]

ASDF

  • fix required welding wire metadata in single-pass-weldx.1.0.0.schema [#316]

Merged PRs

Full Changelog: v0.3.2...v0.3.3

0.3.2

29 Mar 10:52
5f8cd94
Compare
Choose a tag to compare

0.3.2 (29.03.2021)

added

  • weldx.util.deprecated decorator [#295]

dependencies

  • restrict scipy!=1.6.0,scipy!=1.6.1 [#300]

ASDF

  • add validators to rotation-1.0.0.yaml & gas_component-1.0.0.yaml [#303]
  • update descriptions in single-pass-weldx.1.0.0.schema [#308]

fixes

  • prevent creation of IsoBaseGroove with negative parameters [#306]

Merged PRs

Full Changelog: v0.3.1...v0.3.2

0.3.1

21 Mar 18:17
93b3e1f
Compare
Choose a tag to compare

0.3.1 (21.03.2021)

added

  • plot function for MeasurementChain [#288]

ASDF

  • remove the additionalProperties restriction
    from single_pass_weld-1.0.0.schema.yaml [#283]
  • allow scalar integer value in anyOf of time_series-1.0.0.yaml to
    fix #282 [#286]
  • add examples to schema files [#274]

changes

  • plot_graph of the CSM now renders static and time-dependent edges differently
    [#291]
  • use pint compatible array syntax in IsoBaseGroove.to_profile()
    methods [#189]
  • CSM and LCS plot function get a scale_vectors parameter. It scales the plotted coordinate system vectors when using
    matplotlib as backend [#293]

fixes

  • A warning is now emitted if a LocalCoordinateSystem drops a provided time during construction. This usually happens
    if the coordinates and orientation only contain a single data point.
    [#285]

0.3.0

12 Mar 12:40
1f57069
Compare
Choose a tag to compare

0.3.0 (12.03.2021)

added

  • add weldx.transformations.CoordinateSystemManager.relabel
    function [#219]
  • add SpatialDate class for storing 3D point data with optional
    triangulation [#234]
  • add plot function to SpatialData[#251]
  • add plot function to visualize LocalCoordinateSystem and CoordinateSystemManager instances in 3d space
    [#231]
  • add weldx.welding.groove.iso_9692_1.IsoBaseGroove.cross_sect_area property to compute cross sectional area between
    the workpieces [#248].
  • add weldx.welding.util.compute_welding_speed function [#248].

ASDF

  • Add possibility to store meta data and content of an external file in an ASDF
    file [#215]
    • Python class: weldx.asdf.ExternalFile
    • Schema: 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_metadata and wx_user
  • None values are removed from the asdf tree for all weldx
    classes. [#212]
  • add datamodels directory and example http://weldx.bam.de/schemas/weldx/datamodels/single_pass_weld-1.0.0.schema
    schema [#190]
    • schemas in the datamodels directory do not define any tags and can be referenced in other schemas and
      as custom_schema when reading/writing ASDF-files
    • the single_pass_weld-1.0.0.schema is an example schema for a simple, linear, single pass GMAW application
    • add core/geometry/point_cloud-1.0.0.yaml schema [#234]
  • add file schema describing a simple linear welding
    application datamodels/single_pass_weld-1.0.0.schema [#256]

documentation

  • Simplify tutorial code and enhance plots by using newly implemented plot functions
    [#231] [#251]
  • add AWS shielding gas descriptions to documentation [#270]

changes

  • pass variable names as tuple to sympy.lambdify in MathematicalExpression to prevent sympy
    deprecation [#214]
  • set conda-forge as primary channel in environment.yaml
    and build_env.yaml [#214]
  • set minimum Python version to 3.7 [#220]
  • geometry.Profile.rasterize can return list of rasterized shapes instead of flat ndarray (with
    setting stack=False) [#223]
  • geometry.Profile.plot plots individual line objects for each shape (instead of a single line
    object) [#223]
  • remove jinja templates and related code [#228]
  • add stack option to most geometry classes for rasterization [#234]
  • The graph of a CoordinateSystemManager is now plotted with plot_graph instead of plot.
    [#231]
  • add custom wx_shape validation for TimeSeries and Quantity [#256]
  • refactor the transformations and visualization module into smaller
    files [#247]
  • refactor weldx.utility into weldx.util [#247]
  • refactor weldx.asdf.utils into weldx.asdf.util [#247]
  • it is now allowed to merge a time-dependent timedelta subsystem into another CSM instance 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_restore not working correctly if no time_ref was
    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_shape validation for scalar Quantity and TimeSeries
    objects [#256]
  • fix a case where CSM.time_union() would return with mixed DateTimeIndex and TimeDeltaIndex
    types [#268]

dependencies

0.2.2

30 Nov 11:42
Compare
Choose a tag to compare
0.2.2 Pre-release
Pre-release

0.2.2 (30.11.2020)

added

  • Added weldx.utility.ureg_check_class class decorator to enable pint dimensionality 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_ts function [#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 _meta attribute to subclasses that map class attributes (dataclass parameters) to common names
    • rework get_groove to make use of new class layout and parse function arguments
  • create weldx.welding module (contains GMAW processes and groove definitions) [#181]
  • move GmawProcessTypeAsdf to asdf.tags folder [#181]
  • reorder module imports in weldx.__init__ [#181]
  • support timedelta dtypes in ASDF data_array/variable [#191]
  • add set_axes_equal option to some geometry plot functions (now defaults to False) [#199]
  • make utility.sine public function [#199]
  • switch to setuptools_scm versioning and move package metadata to setup.cfg [#206]

ASDF

  • refactor ISO 9692-1 groove schema definitions and classes [#181]
    • move base schema definitions in file terms-1.0.0.yaml to weldx/groove
    • split old schema into multiple files (1 per groove type) and create folder iso_9692_1_2013_12