core/transformations/coordinate_system_hierarchy-0.1.0#

Schema that describes a local coordinate system hierarchy

Description

It stores information how the different coordinate systems are arranged towards each other. The basic data structure is a tree.

Outline

Schema Definitions

This type is an object with the following properties:
  • name
    stringRequired
    Name of the coordinate system hierarchy

    No length restriction
  • reference_time
    asdf://weldx.bam.de/weldx/tags/time/timestamp-0.1.*
    The reference time of the coordinate systeme hierarchy.

  • graph
    objectRequired
    A graph that describes how the different coordinate systems are organized.

    This node must validate against all of the following:

  • subsystems
    subsystem_info
    A list of all subsystems.

Examples

An abstract example of a coordinate system hierarchy with nested subsystems and without data:

!<asdf://weldx.bam.de/weldx/tags/core/transformations/coordinate_system_hierarchy-0.1.0>
  name: CSM
  graph: !<asdf://weldx.bam.de/weldx/tags/core/graph/di_graph-0.1.0>
    root_node: !<asdf://weldx.bam.de/weldx/tags/core/graph/di_node-0.1.0>
      name: R
      attributes:
        data: {}
      edges:
      - !<asdf://weldx.bam.de/weldx/tags/core/graph/di_edge-0.1.0>
        direction: bwd
        attributes:
          defined: true
          transformation: !<asdf://weldx.bam.de/weldx/tags/core/transformations/local_coordinate_system-0.1.0> {}
        target_node: !<asdf://weldx.bam.de/weldx/tags/core/graph/di_node-0.1.0>
          name: A
          attributes:
            data: {}
      - !<asdf://weldx.bam.de/weldx/tags/core/graph/di_edge-0.1.0>
        direction: bwd
        attributes:
          defined: true
          transformation: !<asdf://weldx.bam.de/weldx/tags/core/transformations/local_coordinate_system-0.1.0> {}
        target_node: !<asdf://weldx.bam.de/weldx/tags/core/graph/di_node-0.1.0>
          name: B
          attributes:
            data: {}
          edges:
          - !<asdf://weldx.bam.de/weldx/tags/core/graph/di_edge-0.1.0>
            direction: bwd
            attributes:
              defined: true
              transformation: !<asdf://weldx.bam.de/weldx/tags/core/transformations/local_coordinate_system-0.1.0> {}
            target_node: !<asdf://weldx.bam.de/weldx/tags/core/graph/di_node-0.1.0>
              name: Y
              attributes:
                data: {}
              edges:
              - !<asdf://weldx.bam.de/weldx/tags/core/graph/di_edge-0.1.0>
                direction: bwd
                attributes:
                  defined: true
                  transformation: !<asdf://weldx.bam.de/weldx/tags/core/transformations/local_coordinate_system-0.1.0> {}
                target_node: !<asdf://weldx.bam.de/weldx/tags/core/graph/di_node-0.1.0>
                  name: Z
                  attributes:
                    data: {}
                  edges:
                  - !<asdf://weldx.bam.de/weldx/tags/core/graph/di_edge-0.1.0>
                    direction: bwd
                    attributes:
                      defined: true
                      transformation: !<asdf://weldx.bam.de/weldx/tags/core/transformations/local_coordinate_system-0.1.0> {}
                    target_node: !<asdf://weldx.bam.de/weldx/tags/core/graph/di_node-0.1.0>
                      name: V
                      attributes:
                        data: {}
  subsystems:
  - common_node: B
    data: []
    members: [V, Z, Y, B]
    name: Child
    root_node: B
    subsystems:
    - common_node: Z
      data: []
      members: [V, Z]
      name: ChildChild
      root_node: Z
      subsystems: []

Internal Definitions

  • coordinate_system_node
    object
    A graph node that represents a coordinate system.

    This node must validate against all of the following:

    • This type is an object with the following properties:
      • attributes
        objectRequired
        This type is an object with the following properties:
        • data
          object
          An object that contains all the data attached to the coordinate system. The name of each data set is it’s yaml key inside of the object.

          This node must validate against any of the following:

          • This node has no type definition (unrestricted)
          • This node has no type definition (unrestricted)
      • edges
        array
        No length restriction
        Items in the array are restricted to the following types:
  • coordinate_transformation_edge
    object
    A graph edge that represents the transformation between to coordinate systems.

    This node must validate against all of the following:

  • subsystem_info
    array
    A list of a coordinate system hierarchy’s subsystems.

    No length restriction
    Items in the array are restricted to the following types:
    This type is an object with the following properties:
    • name
      string
      Name of the subsystem.

      No length restriction
    • reference_time
      asdf://weldx.bam.de/weldx/tags/time/timestamp-0.1.*
      The reference time of the subsystem.

    • common_node
      string
      The coordinate system that is shared between the subsystem and its parent coordinate system hierarchy.

      No length restriction
    • root_node
      string
      The root node of the subsystem.

      No length restriction
    • members
      array
      The names of all coordinate systems that belong to the subsystem.

      No length restriction
      Items in the array are restricted to the following types:
      string
      No length restriction
    • data
      array
      The names of all data sets that belong to the subsystem.

      No length restriction
      Items in the array are restricted to the following types:
      string
      No length restriction
    • subsystems
      subsystem_info
      A list of nested subsystems.

  • Original Schema

    %YAML 1.1
    ---
    $schema: "http://stsci.edu/schemas/yaml-schema/draft-01"
    id: "asdf://weldx.bam.de/weldx/schemas/core/transformations/coordinate_system_hierarchy-0.1.0"
    
    title: |
      Schema that describes a local coordinate system hierarchy
    description: |
      It stores information how the different coordinate systems are arranged towards each other. The basic data structure
      is a tree.
    type: object
    examples:
      -
        - An abstract example of a coordinate system hierarchy with nested subsystems and without data
        - |
          !<asdf://weldx.bam.de/weldx/tags/core/transformations/coordinate_system_hierarchy-0.1.0>
            name: CSM
            graph: !<asdf://weldx.bam.de/weldx/tags/core/graph/di_graph-0.1.0>
              root_node: !<asdf://weldx.bam.de/weldx/tags/core/graph/di_node-0.1.0>
                name: R
                attributes:
                  data: {}
                edges:
                - !<asdf://weldx.bam.de/weldx/tags/core/graph/di_edge-0.1.0>
                  direction: bwd
                  attributes:
                    defined: true
                    transformation: !<asdf://weldx.bam.de/weldx/tags/core/transformations/local_coordinate_system-0.1.0> {}
                  target_node: !<asdf://weldx.bam.de/weldx/tags/core/graph/di_node-0.1.0>
                    name: A
                    attributes:
                      data: {}
                - !<asdf://weldx.bam.de/weldx/tags/core/graph/di_edge-0.1.0>
                  direction: bwd
                  attributes:
                    defined: true
                    transformation: !<asdf://weldx.bam.de/weldx/tags/core/transformations/local_coordinate_system-0.1.0> {}
                  target_node: !<asdf://weldx.bam.de/weldx/tags/core/graph/di_node-0.1.0>
                    name: B
                    attributes:
                      data: {}
                    edges:
                    - !<asdf://weldx.bam.de/weldx/tags/core/graph/di_edge-0.1.0>
                      direction: bwd
                      attributes:
                        defined: true
                        transformation: !<asdf://weldx.bam.de/weldx/tags/core/transformations/local_coordinate_system-0.1.0> {}
                      target_node: !<asdf://weldx.bam.de/weldx/tags/core/graph/di_node-0.1.0>
                        name: Y
                        attributes:
                          data: {}
                        edges:
                        - !<asdf://weldx.bam.de/weldx/tags/core/graph/di_edge-0.1.0>
                          direction: bwd
                          attributes:
                            defined: true
                            transformation: !<asdf://weldx.bam.de/weldx/tags/core/transformations/local_coordinate_system-0.1.0> {}
                          target_node: !<asdf://weldx.bam.de/weldx/tags/core/graph/di_node-0.1.0>
                            name: Z
                            attributes:
                              data: {}
                            edges:
                            - !<asdf://weldx.bam.de/weldx/tags/core/graph/di_edge-0.1.0>
                              direction: bwd
                              attributes:
                                defined: true
                                transformation: !<asdf://weldx.bam.de/weldx/tags/core/transformations/local_coordinate_system-0.1.0> {}
                              target_node: !<asdf://weldx.bam.de/weldx/tags/core/graph/di_node-0.1.0>
                                name: V
                                attributes:
                                  data: {}
            subsystems:
            - common_node: B
              data: []
              members: [V, Z, Y, B]
              name: Child
              root_node: B
              subsystems:
              - common_node: Z
                data: []
                members: [V, Z]
                name: ChildChild
                root_node: Z
                subsystems: []
    
    
    definitions:
      coordinate_system_node:
        description: |
          A graph node that represents a coordinate system.
        allOf:
          - tag: "asdf://weldx.bam.de/weldx/tags/core/graph/di_node-0.1.*"
          - type: object
            properties:
              attributes:
                type: object
                properties:
                  data:
                    description: |
                      An object that contains all the data attached to the coordinate system. The name of each data set
                      is it's yaml key inside of the object.
                    type: object
                    anyOf:
                      - wx_property_tag: "asdf://weldx.bam.de/weldx/tags/core/data_array-0.1.*"
                      - wx_property_tag: "asdf://weldx.bam.de/weldx/tags/core/geometry/spatial_data-0.1.*"
              edges:
                type: array
                items:
                  $ref: "#/definitions/coordinate_transformation_edge"
            required: [ attributes ]
    
      coordinate_transformation_edge:
        description: |
          A graph edge that represents the transformation between to coordinate systems.
        allOf:
        - tag: "asdf://weldx.bam.de/weldx/tags/core/graph/di_edge-0.1.*"
        - type: object
          properties:
            attributes:
              type: object
              properties:
                transformation:
                  description: |
                    The transformation between two coordinate systems
                  tag: "asdf://weldx.bam.de/weldx/tags/core/transformations/local_coordinate_system-0.1.*"
              required: [transformation]
            target_node:
              $ref: "#/definitions/coordinate_system_node"
          required: [attributes]
    
      subsystem_info:
        description: |
          A list of a coordinate system hierarchy's subsystems.
        type: array
        items:
          type: object
          description: |
            Information about a subsystem.
          properties:
            name:
              description: |
                Name of the subsystem.
              type: string
            reference_time:
              description: |
                The reference time of the subsystem.
              tag: "asdf://weldx.bam.de/weldx/tags/time/timestamp-0.1.*"
            common_node:
              description: |
                The coordinate system that is shared between the subsystem and its parent coordinate system hierarchy.
              type: string
            root_node:
              description: |
                The root node of the subsystem.
              type: string
            members:
              description: |
                The names of all coordinate systems that belong to the subsystem.
              type: array
              items:
                type: string
            data:
              description: |
                The names of all data sets that belong to the subsystem.
              type: array
              items:
                type: string
            subsystems:
              description: |
                A list of nested subsystems.
              $ref: "#/definitions/subsystem_info"
    
    properties:
      name:
        description: |
          Name of the coordinate system hierarchy
        type: string
      reference_time:
        description: |
          The reference time of the coordinate systeme hierarchy.
        tag: "asdf://weldx.bam.de/weldx/tags/time/timestamp-0.1.*"
      graph:
        description:
          A graph that describes how the different coordinate systems are organized.
        allOf:
          - tag: "asdf://weldx.bam.de/weldx/tags/core/graph/di_graph-0.1.*"
          - type: object
            properties:
              root_node:
                $ref: "#/definitions/coordinate_system_node"
      subsystems:
        description:
          A list of all subsystems.
        $ref: "#/definitions/subsystem_info"
    
    propertyOrder: [name, reference_time, graph, subsystems]
    required: [name, graph]
    flowStyle: block
    ...