property/bounding_box-1.0.0

Bounding box for a model.

Description

This object contains the bounding box for a model, which defines the domain of valid inputs to the model. The bounds for each input is are listed as a map under the interval keyword as ordered pairs of lower/upper bounds with key being the input name. If any model inputs are to be ignored by the bounding box then they need to be listed under the ignore keyword. Finally, the tuple representation’s input ordering can be listed under the order keyword, C for C-ordering, F for Fortran ordering.

Outline

Schema Definitions

This type is an object with the following properties:

Examples

A 1D bounding box:

!transform/constant-1.4.0
  value: 1
  dimensions: 1
  bounding_box: !transform/property/bounding_box-1.0.0
    intervals:
      x: [1.0, 2.0]

A 2D bounding box:

!transform/constant-1.4.0
  value: 1
  dimensions: 2
  bounding_box: !transform/property/bounding_box-1.0.0
    intervals:
      x: [1.0, 2.0]
      y: [3.0, 4.0]
    order: C

A 3D bounding box:

!transform/concatenate-1.2.0
  forward:
    - !transform/concatenate-1.2.0
      forward:
        - !transform/shift-1.2.0
          offset: 1.0
        - !transform/shift-1.2.0
          offset: 2.0
    - !transform/shift-1.2.0
      offset: 3.0
  bounding_box: !transform/property/bounding_box-1.0.0
    intervals:
      x0: [1.0, 2.0]
      x1: [3.0, 4.0]
      x: [5.0, 6.0]
    order: F

A 3D bounding box with ignored inputs:

!transform/concatenate-1.2.0
  forward:
    - !transform/concatenate-1.2.0
      forward:
        - !transform/shift-1.2.0
          offset: 1.0
        - !transform/shift-1.2.0
          offset: 2.0
    - !transform/shift-1.2.0
      offset: 3.0
  bounding_box: !transform/property/bounding_box-1.0.0
    intervals:
      x: [1.0, 2.0]
    ignore: [x0, x1]
    order: F

Internal Definitions

  • bound

    object

    This node must validate against any of the following:

  • interval

    array

    Minimum length: 2

    Maximum length: 2

    The first 2 items in the list must be the following types:

  • ignore

    array
    No length restriction

    Items in the array are restricted to the following types:

    string

    No length restriction
  • order

    object
    This node has no type definition (unrestricted)
  • Original Schema

    %YAML 1.1
    ---
    $schema: "http://stsci.edu/schemas/yaml-schema/draft-01"
    id: "http://stsci.edu/schemas/asdf/transform/property/bounding_box-1.0.0"
    title: >
      Bounding box for a model.
    
    description: |
      This object contains the bounding box for a model, which defines
      the domain of valid inputs to the model. The bounds for each input
      is are listed as a map under the interval keyword as ordered pairs of
      lower/upper bounds with key being the input name. If any model inputs
      are to be ignored by the bounding box then they need to be listed under
      the ignore keyword. Finally, the tuple representation's input ordering
      can be listed under the order keyword, C for C-ordering, F for Fortran
      ordering.
    
    examples:
      -
        - A 1D bounding box
        - |
          !transform/constant-1.4.0
            value: 1
            dimensions: 1
            bounding_box: !transform/property/bounding_box-1.0.0
              intervals:
                x: [1.0, 2.0]
      -
        - A 2D bounding box
        - |
          !transform/constant-1.4.0
            value: 1
            dimensions: 2
            bounding_box: !transform/property/bounding_box-1.0.0
              intervals:
                x: [1.0, 2.0]
                y: [3.0, 4.0]
              order: C
      -
        - A 3D bounding box
        - |
          !transform/concatenate-1.2.0
            forward:
              - !transform/concatenate-1.2.0
                forward:
                  - !transform/shift-1.2.0
                    offset: 1.0
                  - !transform/shift-1.2.0
                    offset: 2.0
              - !transform/shift-1.2.0
                offset: 3.0
            bounding_box: !transform/property/bounding_box-1.0.0
              intervals:
                x0: [1.0, 2.0]
                x1: [3.0, 4.0]
                x: [5.0, 6.0]
              order: F
      -
        - A 3D bounding box with ignored inputs
        - |
          !transform/concatenate-1.2.0
            forward:
              - !transform/concatenate-1.2.0
                forward:
                  - !transform/shift-1.2.0
                    offset: 1.0
                  - !transform/shift-1.2.0
                    offset: 2.0
              - !transform/shift-1.2.0
                offset: 3.0
            bounding_box: !transform/property/bounding_box-1.0.0
              intervals:
                x: [1.0, 2.0]
              ignore: [x0, x1]
              order: F
    
    definitions:
      bound:
        anyOf:
          - tag: tag:stsci.edu:asdf/unit/quantity-1.1.0
          - type: number
    
      interval:
        type: array
        minItems: 2
        maxItems: 2
        items:
          - $ref: "#/definitions/bound"
          - $ref: "#/definitions/bound"
    
      ignore:
        type: array
        items:
          type: string
    
      order:
        enum: ['C', 'F']
    
    type: object
    properties:
      intervals:
        type: object
        additionalProperties:
          $ref: "#/definitions/interval"
        minProperties: 1
      ignore:
        $ref: "#/definitions/ignore"
      order:
        $ref: "#/definitions/order"
    required: [intervals]
    ...