diff --git a/previews/PR615/404.html b/previews/PR615/404.html index 193521175..fbef6a05e 100644 --- a/previews/PR615/404.html +++ b/previews/PR615/404.html @@ -8,14 +8,14 @@ - +
Skip to content

404

PAGE NOT FOUND

But if you don't change your direction, and if you keep looking, you may end up where you are heading.
- + \ No newline at end of file diff --git a/previews/PR615/api/dimensions.html b/previews/PR615/api/dimensions.html index 2df940d1d..786d321c9 100644 --- a/previews/PR615/api/dimensions.html +++ b/previews/PR615/api/dimensions.html @@ -8,17 +8,17 @@ - + - - + +
Skip to content

Dimensions

Dimensions are kept in the sub-module Dimensions.

# DimensionalData.DimensionsModule.

Dimensions

Sub-module for Dimensions wrappers, and operations on them used in DimensionalData.jl.

To load Dimensions types and methods into scope:

julia
using DimensionalData
-using DimensionalData.Dimensions

source


Dimensions have a type-heirarchy that organises plotting and dimension matching.

# DimensionalData.Dimensions.DimensionType.
julia
Dimension

Abstract supertype of all dimension types.

Example concrete implementations are X, Y, Z, Ti (Time), and the custom [Dim]@ref) dimension.

Dimensions label the axes of an AbstractDimArray, or other dimensional objects, and are used to index into the array.

They may also provide an alternate index to lookup for each array axis. This may be any AbstractVector matching the array axis length, or a Val holding a tuple for compile-time index lookups.

Dimensions also have lookup and metadata fields.

lookup gives more details about the dimension, such as that it is Categorical or Sampled as Points or Intervals along some transect. DimensionalData will attempt to guess the lookup from the passed-in index value.

Example:

julia
using DimensionalData, Dates
+using DimensionalData.Dimensions

source


Dimensions have a type-heirarchy that organises plotting and dimension matching.

# DimensionalData.Dimensions.DimensionType.
julia
Dimension

Abstract supertype of all dimension types.

Example concrete implementations are X, Y, Z, Ti (Time), and the custom [Dim]@ref) dimension.

Dimensions label the axes of an AbstractDimArray, or other dimensional objects, and are used to index into the array.

They may also provide an alternate index to lookup for each array axis. This may be any AbstractVector matching the array axis length, or a Val holding a tuple for compile-time index lookups.

Dimensions also have lookup and metadata fields.

lookup gives more details about the dimension, such as that it is Categorical or Sampled as Points or Intervals along some transect. DimensionalData will attempt to guess the lookup from the passed-in index value.

Example:

julia
using DimensionalData, Dates
 
 x = X(2:2:10)
 y = Y(['a', 'b', 'c'])
@@ -63,35 +63,35 @@
 and reference dimensions:
   Y Categorical{Char} Char['b'] ForwardOrdered
      2021-01-01T00:00:002021-12-01T00:00:00
- 4  0.0                                  0.0

Dimension objects may have lookup and metadata fields to track additional information about the data and the index, and their relationship.

source


# DimensionalData.Dimensions.DependentDimType.
julia
DependentDim <: Dimension

Abstract supertype for Dependent dimensions. These will plot on the Y axis.

source


# DimensionalData.Dimensions.IndependentDimType.
julia
IndependentDim <: Dimension

Abstract supertype for independent dimensions. Thise will plot on the X axis.

source


# DimensionalData.Dimensions.XDimType.
julia
XDim <: IndependentDim

Abstract supertype for all X dimensions.

source


# DimensionalData.Dimensions.YDimType.
julia
YDim <: DependentDim

Abstract supertype for all Y dimensions.

source


# DimensionalData.Dimensions.ZDimType.
julia
ZDim <: DependentDim

Abstract supertype for all Z dimensions.

source


# DimensionalData.Dimensions.TimeDimType.
julia
TimeDim <: IndependentDim

Abstract supertype for all time dimensions.

In a TimeDime with Interval sampling the locus will automatically be set to Start(). Dates and times generally refer to the start of a month, hour, second etc., not the central point as is more common with spatial data. `

source


# DimensionalData.Dimensions.XType.
julia
X <: XDim
+ 4  0.0                                  0.0

Dimension objects may have lookup and metadata fields to track additional information about the data and the index, and their relationship.

source


# DimensionalData.Dimensions.DependentDimType.
julia
DependentDim <: Dimension

Abstract supertype for Dependent dimensions. These will plot on the Y axis.

source


# DimensionalData.Dimensions.IndependentDimType.
julia
IndependentDim <: Dimension

Abstract supertype for independent dimensions. Thise will plot on the X axis.

source


# DimensionalData.Dimensions.XDimType.
julia
XDim <: IndependentDim

Abstract supertype for all X dimensions.

source


# DimensionalData.Dimensions.YDimType.
julia
YDim <: DependentDim

Abstract supertype for all Y dimensions.

source


# DimensionalData.Dimensions.ZDimType.
julia
ZDim <: DependentDim

Abstract supertype for all Z dimensions.

source


# DimensionalData.Dimensions.TimeDimType.
julia
TimeDim <: IndependentDim

Abstract supertype for all time dimensions.

In a TimeDime with Interval sampling the locus will automatically be set to Start(). Dates and times generally refer to the start of a month, hour, second etc., not the central point as is more common with spatial data. `

source


# DimensionalData.Dimensions.XType.
julia
X <: XDim
 
 X(val=:)

X Dimension. X <: XDim <: IndependentDim

Example:

julia
xdim = X(2:2:10)
 # Or
 val = A[X(1)]
 # Or
-mean(A; dims=X)

source


# DimensionalData.Dimensions.YType.
julia
Y <: YDim
+mean(A; dims=X)

source


# DimensionalData.Dimensions.YType.
julia
Y <: YDim
 
 Y(val=:)

Y Dimension. Y <: YDim <: DependentDim

Example:

julia
ydim = Y(['a', 'b', 'c'])
 # Or
 val = A[Y(1)]
 # Or
-mean(A; dims=Y)

source


# DimensionalData.Dimensions.ZType.
julia
Z <: ZDim
+mean(A; dims=Y)

source


# DimensionalData.Dimensions.ZType.
julia
Z <: ZDim
 
 Z(val=:)

Z Dimension. Z <: ZDim <: Dimension

Example:

julia
zdim = Z(10:10:100)
 # Or
 val = A[Z(1)]
 # Or
-mean(A; dims=Z)

source


# DimensionalData.Dimensions.TiType.

m Ti <: TimeDim

Ti(val=:)

Time Dimension. Ti <: TimeDim <: IndependentDim

Time is already used by Dates, and T is a common type parameter, We use Ti to avoid clashes.

Example:

julia
timedim = Ti(DateTime(2021, 1):Month(1):DateTime(2021, 12))
+mean(A; dims=Z)

source


# DimensionalData.Dimensions.TiType.

m Ti <: TimeDim

Ti(val=:)

Time Dimension. Ti <: TimeDim <: IndependentDim

Time is already used by Dates, and T is a common type parameter, We use Ti to avoid clashes.

Example:

julia
timedim = Ti(DateTime(2021, 1):Month(1):DateTime(2021, 12))
 # Or
 val = A[Ti(1)]
 # Or
-mean(A; dims=Ti)

source


# DimensionalData.Dimensions.DimType.
julia
Dim{S}(val=:)

A generic dimension. For use when custom dims are required when loading data from a file. Can be used as keyword arguments for indexing.

Dimension types take precedence over same named Dim types when indexing with symbols, or e.g. creating Tables.jl keys.

julia
using DimensionalData
+mean(A; dims=Ti)

source


# DimensionalData.Dimensions.DimType.
julia
Dim{S}(val=:)

A generic dimension. For use when custom dims are required when loading data from a file. Can be used as keyword arguments for indexing.

Dimension types take precedence over same named Dim types when indexing with symbols, or e.g. creating Tables.jl keys.

julia
using DimensionalData
 
 dim = Dim{:custom}(['a', 'b', 'c'])
 
 # output
 
-Dim{:custom} Char['a', 'b', 'c']

source


# DimensionalData.Dimensions.CoordType.
julia
Coord <: Dimension

A coordinate dimension itself holds dimensions.

This allows combining point data with other dimensions, such as time.

Example

julia
julia> using DimensionalData
+Dim{:custom} Char['a', 'b', 'c']

source


# DimensionalData.Dimensions.CoordType.
julia
Coord <: Dimension

A coordinate dimension itself holds dimensions.

This allows combining point data with other dimensions, such as time.

Example

julia
julia> using DimensionalData
 
 julia> dim = Coord([(1.0,1.0,1.0), (1.0,2.0,2.0), (3.0,4.0,4.0), (1.0,3.0,4.0)], (X(), Y(), Z()))
 Coord ::
@@ -124,10 +124,10 @@
 2-element DimArray{Float64,1} with dimensions:
   Coord (): Tuple{Float64, Float64, Float64}[(3.0, 4.0, 4.0), (1.0, 3.0, 4.0)] MergedLookup
  0.3
- 0.4

source


# DimensionalData.Dimensions.AnonDimType.
julia
AnonDim <: Dimension
+ 0.4

source


# DimensionalData.Dimensions.AnonDimType.
julia
AnonDim <: Dimension
 
-AnonDim()

Anonymous dimension. Used when extra dimensions are created, such as during transpose of a vector.

source


Exported methods

These are widely useful methods for working with dimensions.

# DimensionalData.Dimensions.dimsFunction.
julia
dims(x, [dims::Tuple]) => Tuple{Vararg{Dimension}}
-dims(x, dim) => Dimension

Return a tuple of Dimensions for an object, in the order that matches the axes or columns of the underlying data.

dims can be Dimension, Dimension types, or Symbols for Dim{Symbol}.

The default is to return nothing.

source


# DimensionalData.Dimensions.dimnumFunction.
julia
dimnum(x, query::Tuple) => NTuple{Int}
+AnonDim()

Anonymous dimension. Used when extra dimensions are created, such as during transpose of a vector.

source


Exported methods

These are widely useful methods for working with dimensions.

# DimensionalData.Dimensions.dimsFunction.
julia
dims(x, [dims::Tuple]) => Tuple{Vararg{Dimension}}
+dims(x, dim) => Dimension

Return a tuple of Dimensions for an object, in the order that matches the axes or columns of the underlying data.

dims can be Dimension, Dimension types, or Symbols for Dim{Symbol}.

The default is to return nothing.

source


# DimensionalData.Dimensions.dimnumFunction.
julia
dimnum(x, query::Tuple) => NTuple{Int}
 dimnum(x, query) => Int

Get the number(s) of Dimension(s) as ordered in the dimensions of an object.

Arguments

  • x: any object with a dims method, a Tuple of Dimension or a single Dimension.

  • query: Tuple, Array or single Dimension or dimension Type.

The return type will be a Tuple of Int or a single Int, depending on wether query is a Tuple or single Dimension.

Example

julia
julia> using DimensionalData
 
 julia> A = DimArray(ones(10, 10, 10), (X, Y, Z));
@@ -136,7 +136,7 @@
 (3, 1, 2)
 
 julia> dimnum(A, Y)
-2

source


# DimensionalData.Dimensions.hasdimFunction.
julia
hasdim([f], x, query::Tuple) => NTUple{Bool}
+2

source


# DimensionalData.Dimensions.hasdimFunction.
julia
hasdim([f], x, query::Tuple) => NTUple{Bool}
 hasdim([f], x, query...) => NTUple{Bool}
 hasdim([f], x, query) => Bool

Check if an object x has dimensions that match or inherit from the query dimensions.

Arguments

  • x: any object with a dims method, a Tuple of Dimension or a single Dimension.

  • query: Tuple or single Dimension or dimension Type.

  • f: <: by default, but can be >: to match abstract types to concrete types.

Check if an object or tuple contains an Dimension, or a tuple of dimensions.

Example

julia
julia> using DimensionalData
 
@@ -149,7 +149,7 @@
 (true, true, true)
 
 julia> hasdim(A, Ti)
-false

source


# DimensionalData.Dimensions.otherdimsFunction.
julia
otherdims(x, query) => Tuple{Vararg{Dimension,N}}

Get the dimensions of an object not in query.

Arguments

  • x: any object with a dims method, a Tuple of Dimension.

  • query: Tuple or single Dimension or dimension Type.

  • f: <: by default, but can be >: to match abstract types to concrete types.

A tuple holding the unmatched dimensions is always returned.

Example

julia
julia> using DimensionalData, DimensionalData.Dimensions
+false

source


# DimensionalData.Dimensions.otherdimsFunction.
julia
otherdims(x, query) => Tuple{Vararg{Dimension,N}}

Get the dimensions of an object not in query.

Arguments

  • x: any object with a dims method, a Tuple of Dimension.

  • query: Tuple or single Dimension or dimension Type.

  • f: <: by default, but can be >: to match abstract types to concrete types.

A tuple holding the unmatched dimensions is always returned.

Example

julia
julia> using DimensionalData, DimensionalData.Dimensions
 
 julia> A = DimArray(ones(10, 10, 10), (X, Y, Z));
 
@@ -157,10 +157,10 @@
 Y, Z
 
 julia> otherdims(A, (Y, Z))
-X

source


Non-exported methods

# DimensionalData.Dimensions.labelFunction.
julia
label(x) => String
+X

source


Non-exported methods

# DimensionalData.Dimensions.labelFunction.
julia
label(x) => String
 label(x, dims::Tuple) => NTuple{N,String}
 label(x, dim) => String
-label(xs::Tuple) => NTuple{N,String}

Get a plot label for data or a dimension. This will include the name and units if they exist, and anything else that should be shown on a plot.

Second argument dims can be Dimensions, Dimension types, or Symbols for Dim{Symbol}.

source


# DimensionalData.Dimensions.formatFunction.
julia
format(dims, x) => Tuple{Vararg{Dimension,N}}

Format the passed-in dimension(s) dims to match the object x.

Errors are thrown if dims don't match the array dims or size, and any fields holding Auto- objects are filled with guessed objects.

If a LookupArray hasn't been specified, a lookup is chosen based on the type and element type of the index.

source


# DimensionalData.Dimensions.dims2indicesFunction.
julia
dims2indices(dim::Dimension, I) => NTuple{Union{Colon,AbstractArray,Int}}

Convert a Dimension or Selector I to indices of Int, AbstractArray or Colon.

source


# DimensionalData.Dimensions.LookupArrays.selectindicesFunction.
julia
selectindices(lookups, selectors)

Converts Selector to regular indices.

source


Primitive methods

These low-level methods are really for internal use, but can be useful for writing dimensional algorithms.

They are not guaranteed to keep their interface, but usually will.

# DimensionalData.Dimensions.commondimsFunction.
julia
commondims([f], x, query) => Tuple{Vararg{Dimension}}

This is basically dims(x, query) where the order of the original is kept, unlike dims where the query tuple determines the order

Also unlike dims,commondims always returns a Tuple, no matter the input. No errors are thrown if dims are absent from either x or query.

f is <: by default, but can be >: to sort abstract types by concrete types.

julia
julia> using DimensionalData, .Dimensions
+label(xs::Tuple) => NTuple{N,String}

Get a plot label for data or a dimension. This will include the name and units if they exist, and anything else that should be shown on a plot.

Second argument dims can be Dimensions, Dimension types, or Symbols for Dim{Symbol}.

source


# DimensionalData.Dimensions.formatFunction.
julia
format(dims, x) => Tuple{Vararg{Dimension,N}}

Format the passed-in dimension(s) dims to match the object x.

Errors are thrown if dims don't match the array dims or size, and any fields holding Auto- objects are filled with guessed objects.

If a LookupArray hasn't been specified, a lookup is chosen based on the type and element type of the index.

source


# DimensionalData.Dimensions.dims2indicesFunction.
julia
dims2indices(dim::Dimension, I) => NTuple{Union{Colon,AbstractArray,Int}}

Convert a Dimension or Selector I to indices of Int, AbstractArray or Colon.

source


# DimensionalData.Dimensions.LookupArrays.selectindicesFunction.
julia
selectindices(lookups, selectors)

Converts Selector to regular indices.

source


Primitive methods

These low-level methods are really for internal use, but can be useful for writing dimensional algorithms.

They are not guaranteed to keep their interface, but usually will.

# DimensionalData.Dimensions.commondimsFunction.
julia
commondims([f], x, query) => Tuple{Vararg{Dimension}}

This is basically dims(x, query) where the order of the original is kept, unlike dims where the query tuple determines the order

Also unlike dims,commondims always returns a Tuple, no matter the input. No errors are thrown if dims are absent from either x or query.

f is <: by default, but can be >: to sort abstract types by concrete types.

julia
julia> using DimensionalData, .Dimensions
 
 julia> A = DimArray(ones(10, 10, 10), (X, Y, Z));
 
@@ -171,11 +171,11 @@
 X, Z
 
 julia> commondims(A, Ti)
-()

source


# DimensionalData.Dimensions.dim2keyFunction.
julia
dim2key(dim::Dimension) => Symbol
+()

source


# DimensionalData.Dimensions.dim2keyFunction.
julia
dim2key(dim::Dimension) => Symbol
 dim2key(dims::Type{<:Dimension}) => Symbol
-dim2key(dims::Tuple) => Tuple{Symbol,Vararg}

Convert a dimension object to a simbol. X(), Y(), Ti() etc will be converted. to :X, :Y, :Ti, as with any other dims generated with the @dim macro.

All other Dim{S}() dimensions will generate Symbols S.

source


# DimensionalData.Dimensions.key2dimFunction.
julia
key2dim(s::Symbol) => Dimension
+dim2key(dims::Tuple) => Tuple{Symbol,Vararg}

Convert a dimension object to a simbol. X(), Y(), Ti() etc will be converted. to :X, :Y, :Ti, as with any other dims generated with the @dim macro.

All other Dim{S}() dimensions will generate Symbols S.

source


# DimensionalData.Dimensions.key2dimFunction.
julia
key2dim(s::Symbol) => Dimension
 key2dim(dims...) => Tuple{Dimension,Vararg}
-key2dim(dims::Tuple) => Tuple{Dimension,Vararg}

Convert a symbol to a dimension object. :X, :Y, :Ti etc will be converted. to X(), Y(), Ti(), as with any other dims generated with the @dim macro.

All other Symbols S will generate Dim{S}() dimensions.

source


# DimensionalData.Dimensions.reducedimsFunction.
julia
reducedims(x, dimstoreduce) => Tuple{Vararg{Dimension}}

Replace the specified dimensions with an index of length 1. This is usually to match a new array size where an axis has been reduced with a method like mean or reduce to a length of 1, but the number of dimensions has not changed.

LookupArray traits are also updated to correspond to the change in cell step, sampling type and order.

source


# DimensionalData.Dimensions.swapdimsFunction.
julia
swapdims(x::T, newdims) => T
+key2dim(dims::Tuple) => Tuple{Dimension,Vararg}

Convert a symbol to a dimension object. :X, :Y, :Ti etc will be converted. to X(), Y(), Ti(), as with any other dims generated with the @dim macro.

All other Symbols S will generate Dim{S}() dimensions.

source


# DimensionalData.Dimensions.reducedimsFunction.
julia
reducedims(x, dimstoreduce) => Tuple{Vararg{Dimension}}

Replace the specified dimensions with an index of length 1. This is usually to match a new array size where an axis has been reduced with a method like mean or reduce to a length of 1, but the number of dimensions has not changed.

LookupArray traits are also updated to correspond to the change in cell step, sampling type and order.

source


# DimensionalData.Dimensions.swapdimsFunction.
julia
swapdims(x::T, newdims) => T
 swapdims(dims::Tuple, newdims) => Tuple{Vararg{Dimension}}

Swap dimensions for the passed in dimensions, in the order passed.

Passing in the Dimension types rewraps the dimension index, keeping the index values and metadata, while constructed Dimension objectes replace the original dimension. nothing leaves the original dimension as-is.

Arguments

  • x: any object with a dims method or a Tuple of Dimension.

  • newdim: Tuple of Dimension or dimension Type.

Example

julia
using DimensionalData
 A = ones(X(2), Y(4), Z(2))
 Dimensions.swapdims(A, (Dim{:a}, Dim{:b}, Dim{:c}))
@@ -185,23 +185,23 @@
 [:, :, 1]
  1.0  1.0  1.0  1.0
  1.0  1.0  1.0  1.0
-[and 1 more slices...]

source


# DimensionalData.Dimensions.slicedimsFunction.
julia
slicedims(x, I) => Tuple{Tuple,Tuple}
-slicedims(f, x, I) => Tuple{Tuple,Tuple}

Slice the dimensions to match the axis values of the new array.

All methods return a tuple conatining two tuples: the new dimensions, and the reference dimensions. The ref dimensions are no longer used in the new struct but are useful to give context to plots.

Called at the array level the returned tuple will also include the previous reference dims attached to the array.

Arguments

  • f: a function getindex, view or dotview. This will be used for slicing getindex is the default if f is not included.

  • x: An AbstractDimArray, Tuple of Dimension, or Dimension

  • I: A tuple of Integer, Colon or AbstractArray

source


# DimensionalData.Dimensions.comparedimsFunction.
julia
comparedims(A::AbstractDimArray...; kw...)
+[and 1 more slices...]

source


# DimensionalData.Dimensions.slicedimsFunction.
julia
slicedims(x, I) => Tuple{Tuple,Tuple}
+slicedims(f, x, I) => Tuple{Tuple,Tuple}

Slice the dimensions to match the axis values of the new array.

All methods return a tuple conatining two tuples: the new dimensions, and the reference dimensions. The ref dimensions are no longer used in the new struct but are useful to give context to plots.

Called at the array level the returned tuple will also include the previous reference dims attached to the array.

Arguments

  • f: a function getindex, view or dotview. This will be used for slicing getindex is the default if f is not included.

  • x: An AbstractDimArray, Tuple of Dimension, or Dimension

  • I: A tuple of Integer, Colon or AbstractArray

source


# DimensionalData.Dimensions.comparedimsFunction.
julia
comparedims(A::AbstractDimArray...; kw...)
 comparedims(A::Tuple...; kw...)
 comparedims(A::Dimension...; kw...)
-comparedims(::Type{Bool}, args...; kw...)

Check that dimensions or tuples of dimensions passed as each argument are the same, and return the first valid dimension. If AbstractDimArrays are passed as arguments their dimensions are compared.

Empty tuples and nothing dimension values are ignored, returning the Dimension value if it exists.

Passing Bool as the first argument means true/false will be returned, rather than throwing an error.

Keywords

These are all Bool flags:

  • type: compare dimension type, true by default.

  • valtype: compare wrapped value type, false by default.

  • val: compare wrapped values, false by default.

  • order: compare order, false by default.

  • length: compare lengths, true by default.

  • ignore_length_one: ignore length 1 in comparisons, and return whichever dimension is not length 1, if any. This is useful in e.g. broadcasting comparisons. false by default.

  • warn: a String or nothing. Used only for Bool methods, to give a warning for false values and include warn in the warning text.

source


# DimensionalData.Dimensions.combinedimsFunction.
julia
combinedims(xs; check=true)

Combine the dimensions of each object in xs, in the order they are found.

source


# DimensionalData.Dimensions.sortdimsFunction.
julia
sortdims([f], tosort, order) => Tuple

Sort dimensions tosort by order. Dimensions in order but missing from tosort are replaced with nothing.

tosort and order can be Tuples or Vectors or Dimension or dimension type. Abstract supertypes like TimeDim can be used in order.

f is <: by default, but can be >: to sort abstract types by concrete types.

source


# DimensionalData.Dimensions.LookupArrays.basetypeofFunction.
julia
basetypeof(x) => Type

Get the "base" type of an object - the minimum required to define the object without it's fields. By default this is the full UnionAll for the type. But custom basetypeof methods can be defined for types with free type parameters.

In DimensionalData this is primariliy used for comparing Dimensions, where Dim{:x} is different from Dim{:y}.

source


# DimensionalData.Dimensions.basedimsFunction.
julia
basedims(ds::Tuple)
-basedims(d::Union{Dimension,Symbol,Type})

Returns basetypeof(d)() or a Tuple of called on a Tuple.

See basetypeof

source


# DimensionalData.Dimensions.setdimsFunction.
julia
setdims(X, newdims) => AbstractArray
+comparedims(::Type{Bool}, args...; kw...)

Check that dimensions or tuples of dimensions passed as each argument are the same, and return the first valid dimension. If AbstractDimArrays are passed as arguments their dimensions are compared.

Empty tuples and nothing dimension values are ignored, returning the Dimension value if it exists.

Passing Bool as the first argument means true/false will be returned, rather than throwing an error.

Keywords

These are all Bool flags:

  • type: compare dimension type, true by default.

  • valtype: compare wrapped value type, false by default.

  • val: compare wrapped values, false by default.

  • order: compare order, false by default.

  • length: compare lengths, true by default.

  • ignore_length_one: ignore length 1 in comparisons, and return whichever dimension is not length 1, if any. This is useful in e.g. broadcasting comparisons. false by default.

  • warn: a String or nothing. Used only for Bool methods, to give a warning for false values and include warn in the warning text.

source


# DimensionalData.Dimensions.combinedimsFunction.
julia
combinedims(xs; check=true)

Combine the dimensions of each object in xs, in the order they are found.

source


# DimensionalData.Dimensions.sortdimsFunction.
julia
sortdims([f], tosort, order) => Tuple

Sort dimensions tosort by order. Dimensions in order but missing from tosort are replaced with nothing.

tosort and order can be Tuples or Vectors or Dimension or dimension type. Abstract supertypes like TimeDim can be used in order.

f is <: by default, but can be >: to sort abstract types by concrete types.

source


# DimensionalData.Dimensions.LookupArrays.basetypeofFunction.
julia
basetypeof(x) => Type

Get the "base" type of an object - the minimum required to define the object without it's fields. By default this is the full UnionAll for the type. But custom basetypeof methods can be defined for types with free type parameters.

In DimensionalData this is primariliy used for comparing Dimensions, where Dim{:x} is different from Dim{:y}.

source


# DimensionalData.Dimensions.basedimsFunction.
julia
basedims(ds::Tuple)
+basedims(d::Union{Dimension,Symbol,Type})

Returns basetypeof(d)() or a Tuple of called on a Tuple.

See basetypeof

source


# DimensionalData.Dimensions.setdimsFunction.
julia
setdims(X, newdims) => AbstractArray
 setdims(::Tuple, newdims) => Tuple{Vararg{Dimension,N}}

Replaces the first dim matching <: basetypeof(newdim) with newdim, and returns a new object or tuple with the dimension updated.

Arguments

  • x: any object with a dims method, a Tuple of Dimension or a single Dimension.

  • newdim: Tuple or single Dimension, Type or Symbol.

Example

julia
using DimensionalData, DimensionalData.Dimensions, DimensionalData.LookupArrays
 A = ones(X(10), Y(10:10:100))
 B = setdims(A, Y(Categorical('a':'j'; order=ForwardOrdered())))
 lookup(B, Y)
 # output
 Categorical{Char} ForwardOrdered
-wrapping: 'a':1:'j'

source


# DimensionalData.Dimensions.dimsmatchFunction.
julia
dimsmatch([f], dim, query) => Bool
-dimsmatch([f], dims::Tuple, query::Tuple) => Bool

Compare 2 dimensions or Tuple of Dimension are of the same base type, or are at least rotations/transformations of the same type.

f is <: by default, but can be >: to match abstract types to concrete types.

source


# DimensionalData.Dimensions.dimstrideFunction.
julia
dimstride(x, dim) => Int

Get the stride of the dimension relative to the other dimensions.

This may or may not be equal to the stride of the related array, although it will be for Array.

Arguments

  • x is any object with a dims method, or a Tuple of Dimension.

  • dim is a Dimension, Dimension type, or and Int. Using an Int is not type-stable.

source


# DimensionalData.refdims_titleFunction.
julia
refdims_title(A::AbstractDimArray)
+wrapping: 'a':1:'j'

source


# DimensionalData.Dimensions.dimsmatchFunction.
julia
dimsmatch([f], dim, query) => Bool
+dimsmatch([f], dims::Tuple, query::Tuple) => Bool

Compare 2 dimensions or Tuple of Dimension are of the same base type, or are at least rotations/transformations of the same type.

f is <: by default, but can be >: to match abstract types to concrete types.

source


# DimensionalData.Dimensions.dimstrideFunction.
julia
dimstride(x, dim) => Int

Get the stride of the dimension relative to the other dimensions.

This may or may not be equal to the stride of the related array, although it will be for Array.

Arguments

  • x is any object with a dims method, or a Tuple of Dimension.

  • dim is a Dimension, Dimension type, or and Int. Using an Int is not type-stable.

source


# DimensionalData.refdims_titleFunction.
julia
refdims_title(A::AbstractDimArray)
 refdims_title(refdims::Tuple)
-refdims_title(refdim::Dimension)

Generate a title string based on reference dimension values.

source


- +refdims_title(refdim::Dimension)

Generate a title string based on reference dimension values.

source


+ \ No newline at end of file diff --git a/previews/PR615/api/lookuparrays.html b/previews/PR615/api/lookuparrays.html index 1ef5daf93..67b1774a3 100644 --- a/previews/PR615/api/lookuparrays.html +++ b/previews/PR615/api/lookuparrays.html @@ -8,17 +8,17 @@ - + - - + +
Skip to content

LookupArrays

# DimensionalData.Dimensions.LookupArraysModule.
julia
LookupArrays

Module for LookupArrays and [Selector]s used in DimensionalData.jl

LookupArrays defines traits and AbstractArray wrappers that give specific behaviours for a lookup index when indexed with Selector.

For example, these allow tracking over array order so fast indexing works evne when the array is reversed.

To load LookupArrays types and methods into scope:

julia
using DimensionalData
-using DimensionalData.LookupArrays

source


# DimensionalData.Dimensions.LookupArrays.LookupArrayType.
julia
LookupArray

Types defining the behaviour of a lookup index, how it is plotted and how Selectors like Between work.

A LookupArray may be NoLookup indicating that the index is just the underlying array axis, Categorical for ordered or unordered categories, or a Sampled index for Points or Intervals.

source


# DimensionalData.Dimensions.LookupArrays.AlignedType.
julia
Aligned <: LookupArray

Abstract supertype for LookupArrays where the index is aligned with the array axes.

This is by far the most common supertype for LookupArray.

source


# DimensionalData.Dimensions.LookupArrays.AbstractSampledType.
julia
AbstractSampled <: Aligned

Abstract supertype for LookupArrays where the index is aligned with the array, and is independent of other dimensions. Sampled is provided by this package.

AbstractSampled must have order, span and sampling fields, or a rebuild method that accpts them as keyword arguments.

source


# DimensionalData.Dimensions.LookupArrays.SampledType.
julia
Sampled <: AbstractSampled
+using DimensionalData.LookupArrays

source


# DimensionalData.Dimensions.LookupArrays.LookupArrayType.
julia
LookupArray

Types defining the behaviour of a lookup index, how it is plotted and how Selectors like Between work.

A LookupArray may be NoLookup indicating that the index is just the underlying array axis, Categorical for ordered or unordered categories, or a Sampled index for Points or Intervals.

source


# DimensionalData.Dimensions.LookupArrays.AlignedType.
julia
Aligned <: LookupArray

Abstract supertype for LookupArrays where the index is aligned with the array axes.

This is by far the most common supertype for LookupArray.

source


# DimensionalData.Dimensions.LookupArrays.AbstractSampledType.
julia
AbstractSampled <: Aligned

Abstract supertype for LookupArrays where the index is aligned with the array, and is independent of other dimensions. Sampled is provided by this package.

AbstractSampled must have order, span and sampling fields, or a rebuild method that accpts them as keyword arguments.

source


# DimensionalData.Dimensions.LookupArrays.SampledType.
julia
Sampled <: AbstractSampled
 
 Sampled(data::AbstractVector, order::Order, span::Span, sampling::Sampling, metadata)
 Sampled(data=AutoIndex(); order=AutoOrder(), span=AutoSpan(), sampling=Points(), metadata=NoMetadata())

A concrete implementation of the LookupArray AbstractSampled. It can be used to represent Points or Intervals.

Sampled is capable of representing gridded data from a wide range of sources, allowing correct bounds and Selectors for points or intervals of regular, irregular, forward and reverse indexes.

On AbstractDimArray construction, Sampled lookup is assigned for all lookups of AbstractRange not assigned to Categorical.

Arguments

  • data: An AbstractVector of index values, matching the length of the curresponding array axis.

  • order: Order) indicating the order of the index, AutoOrder by default, detected from the order of data to be ForwardOrdered, ReverseOrdered or Unordered. These can be provided explicitly if they are known and performance is important.

  • span: indicates the size of intervals or distance between points, and will be set to Regular for AbstractRange and Irregular for AbstractArray, unless assigned manually.

  • sampling: is assigned to Points, unless set to Intervals manually. Using Intervals will change the behaviour of bounds and Selectorss to take account for the full size of the interval, rather than the point alone.

  • metadata: a Dict or Metadata wrapper that holds any metadata object adding more information about the array axis - useful for extending DimensionalData for specific contexts, like geospatial data in GeoData.jl. By default it is NoMetadata().

Example

Create an array with [Interval] sampling, and Regular span for a vector with known spacing.

We set the Locus of the Intervals to Start specifying that the index values are for the positions at the start of each interval.

julia
using DimensionalData, DimensionalData.LookupArrays
@@ -36,9 +36,9 @@
   80  1.0  1.0  1.0   1.0
   60  1.0  1.0  1.0   1.0
   40  1.0  1.0  1.0   1.0
-  20  1.0  1.0  1.0   1.0

source


# DimensionalData.Dimensions.LookupArrays.AbstractCyclicType.
julia
AbstractCyclic <: AbstractSampled end

An abstract supertype for cyclic lookups.

These are AbstractSampled lookups that are cyclic for Selectors.

source


# DimensionalData.Dimensions.LookupArrays.CyclicType.
julia
Cyclic <: AbstractCyclic
+  20  1.0  1.0  1.0   1.0

source


# DimensionalData.Dimensions.LookupArrays.AbstractCyclicType.
julia
AbstractCyclic <: AbstractSampled end

An abstract supertype for cyclic lookups.

These are AbstractSampled lookups that are cyclic for Selectors.

source


# DimensionalData.Dimensions.LookupArrays.CyclicType.
julia
Cyclic <: AbstractCyclic
 
-Cyclic(data; order=AutoOrder(), span=AutoSpan(), sampling=Points(), metadata=NoMetadata(), cycle)

A Cyclic lookup is similar to Sampled but out of range Selectors At, Near, Contains will cycle the values to typemin or typemax over the length of cycle. Where and .. work as for Sampled.

This is useful when we are using mean annual datasets over a real time-span, or for wrapping longitudes so that -360 and 360 are the same.

Arguments

  • data: An AbstractVector of index values, matching the length of the curresponding array axis.

  • order: Order) indicating the order of the index, AutoOrder by default, detected from the order of data to be ForwardOrdered, ReverseOrdered or Unordered. These can be provided explicitly if they are known and performance is important.

  • span: indicates the size of intervals or distance between points, and will be set to Regular for AbstractRange and Irregular for AbstractArray, unless assigned manually.

  • sampling: is assigned to Points, unless set to Intervals manually. Using Intervals will change the behaviour of bounds and Selectorss to take account for the full size of the interval, rather than the point alone.

  • metadata: a Dict or Metadata wrapper that holds any metadata object adding more information about the array axis - useful for extending DimensionalData for specific contexts, like geospatial data in GeoData.jl. By default it is NoMetadata().

  • cycle: the length of the cycle. This does not have to exactly match the data, the step size is Week(1) the cycle can be Years(1).

Notes

  1. If you use dates and e.g. cycle over a Year, every year will have the number and spacing of Weeks and Days as the cycle year. Using At may not be reliable in terms of exact dates, as it will be applied to the specified date plus or minus n years.

  2. Indexing into a Cycled with any AbstractArray or AbstractRange will return a Sampled as the full cycle is likely no longer available.

  3. .. or Between selectors do not work in a cycled way: they work as for Sampled. This may change in future to return cycled values, but there are problems with this, such as leap years breaking correct date cycling of a single year. If you actually need this behaviour, please make a GitHub issue.

source


# DimensionalData.Dimensions.LookupArrays.AbstractCategoricalType.
julia
AbstractCategorical <: Aligned

LookupArrays where the values are categories.

Categorical is the provided concrete implementation. but this can easily be extended - all methods are defined for AbstractCategorical.

All AbstractCategorical must provide a rebuild method with data, order and metadata keyword arguments.

source


# DimensionalData.Dimensions.LookupArrays.CategoricalType.
julia
Categorical <: AbstractCategorical
+Cyclic(data; order=AutoOrder(), span=AutoSpan(), sampling=Points(), metadata=NoMetadata(), cycle)

A Cyclic lookup is similar to Sampled but out of range Selectors At, Near, Contains will cycle the values to typemin or typemax over the length of cycle. Where and .. work as for Sampled.

This is useful when we are using mean annual datasets over a real time-span, or for wrapping longitudes so that -360 and 360 are the same.

Arguments

  • data: An AbstractVector of index values, matching the length of the curresponding array axis.

  • order: Order) indicating the order of the index, AutoOrder by default, detected from the order of data to be ForwardOrdered, ReverseOrdered or Unordered. These can be provided explicitly if they are known and performance is important.

  • span: indicates the size of intervals or distance between points, and will be set to Regular for AbstractRange and Irregular for AbstractArray, unless assigned manually.

  • sampling: is assigned to Points, unless set to Intervals manually. Using Intervals will change the behaviour of bounds and Selectorss to take account for the full size of the interval, rather than the point alone.

  • metadata: a Dict or Metadata wrapper that holds any metadata object adding more information about the array axis - useful for extending DimensionalData for specific contexts, like geospatial data in GeoData.jl. By default it is NoMetadata().

  • cycle: the length of the cycle. This does not have to exactly match the data, the step size is Week(1) the cycle can be Years(1).

Notes

  1. If you use dates and e.g. cycle over a Year, every year will have the number and spacing of Weeks and Days as the cycle year. Using At may not be reliable in terms of exact dates, as it will be applied to the specified date plus or minus n years.

  2. Indexing into a Cycled with any AbstractArray or AbstractRange will return a Sampled as the full cycle is likely no longer available.

  3. .. or Between selectors do not work in a cycled way: they work as for Sampled. This may change in future to return cycled values, but there are problems with this, such as leap years breaking correct date cycling of a single year. If you actually need this behaviour, please make a GitHub issue.

source


# DimensionalData.Dimensions.LookupArrays.AbstractCategoricalType.
julia
AbstractCategorical <: Aligned

LookupArrays where the values are categories.

Categorical is the provided concrete implementation. but this can easily be extended - all methods are defined for AbstractCategorical.

All AbstractCategorical must provide a rebuild method with data, order and metadata keyword arguments.

source


# DimensionalData.Dimensions.LookupArrays.CategoricalType.
julia
Categorical <: AbstractCategorical
 
 Categorical(o::Order)
 Categorical(; order=Unordered())

An LookupArray where the values are categories.

This will be automatically assigned if the index contains AbstractString, Symbol or Char. Otherwise it can be assigned manually.

Order will be determined automatically where possible.

Arguments

  • data: An AbstractVector of index values, matching the length of the curresponding array axis.

  • order: Order) indicating the order of the index, AutoOrder by default, detected from the order of data to be ForwardOrdered, ReverseOrdered or Unordered. Can be provided if this is known and performance is important.

  • metadata: a Dict or Metadata wrapper that holds any metadata object adding more information about the array axis - useful for extending DimensionalData for specific contexts, like geospatial data in GeoData.jl. By default it is NoMetadata().

Example

Create an array with [Interval] sampling.

julia
using DimensionalData
@@ -50,7 +50,7 @@
 # output
 
 Categorical{String} String["one", "two", "three"] Unordered,
-Categorical{Symbol} Symbol[:a, :b, :c, :d] ForwardOrdered

source


# DimensionalData.Dimensions.LookupArrays.UnalignedType.
julia
Unaligned <: LookupArray

Abstract supertype for LookupArray where the index is not aligned to the grid.

Indexing an Unaligned with Selectors must provide all other Unaligned dimensions.

source


# DimensionalData.Dimensions.LookupArrays.TransformedType.
julia
Transformed <: Unaligned
+Categorical{Symbol} Symbol[:a, :b, :c, :d] ForwardOrdered

source


# DimensionalData.Dimensions.LookupArrays.UnalignedType.
julia
Unaligned <: LookupArray

Abstract supertype for LookupArray where the index is not aligned to the grid.

Indexing an Unaligned with Selectors must provide all other Unaligned dimensions.

source


# DimensionalData.Dimensions.LookupArrays.TransformedType.
julia
Transformed <: Unaligned
 
 Transformed(f, dim::Dimension; metadata=NoMetadata())

LookupArray that uses an affine transformation to convert dimensions from dims(lookup) to dims(array). This can be useful when the dimensions are e.g. rotated from a more commonly used axis.

Any function can be used to do the transformation, but transformations from CoordinateTransformations.jl may be useful.

Arguments

  • f: transformation function

  • dim: a dimension to transform to.

Keyword Arguments

  • metdata:

Example

julia
using DimensionalData, DimensionalData.LookupArrays, CoordinateTransformations
 
@@ -63,9 +63,9 @@
 da[X(At(6)), Y(At(2))]
 
 # output
-9

source


# DimensionalData.Dimensions.MergedLookupType.
julia
MergedLookup <: LookupArray
+9

source


# DimensionalData.Dimensions.MergedLookupType.
julia
MergedLookup <: LookupArray
 
-MergedLookup(data, dims; [metadata])

A LookupArray that holds multiple combined dimensions.

MergedLookup can be indexed with Selectors like At, Between, and Where although Near has undefined meaning.

Arguments

  • data: A Vector of Tuple.

  • dims: A Tuple of Dimension indicating the dimensions in the tuples in data.

Keywords

  • metadata: a Dict or Metadata object to attach dimension metadata.

source


# DimensionalData.Dimensions.LookupArrays.NoLookupType.
julia
NoLookup <: LookupArray
+MergedLookup(data, dims; [metadata])

A LookupArray that holds multiple combined dimensions.

MergedLookup can be indexed with Selectors like At, Between, and Where although Near has undefined meaning.

Arguments

  • data: A Vector of Tuple.

  • dims: A Tuple of Dimension indicating the dimensions in the tuples in data.

Keywords

  • metadata: a Dict or Metadata object to attach dimension metadata.

source


# DimensionalData.Dimensions.LookupArrays.NoLookupType.
julia
NoLookup <: LookupArray
 
 NoLookup()

A LookupArray that is identical to the array axis. Selectors can't be used on this lookup.

Example

Defining a DimArray without passing an index to the dimensions, it will be assigned NoLookup:

julia
using DimensionalData
 
@@ -80,30 +80,30 @@
 
 # output
 
-NoLookup, NoLookup

source


# DimensionalData.Dimensions.LookupArrays.AutoLookupType.
julia
AutoLookup <: LookupArray
+NoLookup, NoLookup

source


# DimensionalData.Dimensions.LookupArrays.AutoLookupType.
julia
AutoLookup <: LookupArray
 
 AutoLookup()
-AutoLookup(index=AutoIndex(); kw...)

Automatic LookupArray, the default lookup. It will be converted automatically to another LookupArray when it is possible to detect it from the index.

Keywords will be used in the detected LookupArray constructor.

source


# DimensionalData.Dimensions.LookupArrays.AutoIndexType.
julia
AutoIndex

Detect a LookupArray index from the context. This is used in NoLookup to simply use the array axis as the index when the array is constructed, and in set to change the LookupArray type without changing the index values.

source


The generic value getter val

# DimensionalData.Dimensions.LookupArrays.valFunction.
julia
val(x)
-val(dims::Tuple) => Tuple

Return the contained value of a wrapper object.

dims can be Dimension, Dimension types, or Symbols for Dim{Symbol}.

Objects that don't define a val method are returned unaltered.

source


Lookup methods:

# DimensionalData.Dimensions.LookupArrays.boundsFunction.
julia
bounds(xs, [dims::Tuple]) => Tuple{Vararg{Tuple{T,T}}}
+AutoLookup(index=AutoIndex(); kw...)

Automatic LookupArray, the default lookup. It will be converted automatically to another LookupArray when it is possible to detect it from the index.

Keywords will be used in the detected LookupArray constructor.

source


# DimensionalData.Dimensions.LookupArrays.AutoIndexType.
julia
AutoIndex

Detect a LookupArray index from the context. This is used in NoLookup to simply use the array axis as the index when the array is constructed, and in set to change the LookupArray type without changing the index values.

source


The generic value getter val

# DimensionalData.Dimensions.LookupArrays.valFunction.
julia
val(x)
+val(dims::Tuple) => Tuple

Return the contained value of a wrapper object.

dims can be Dimension, Dimension types, or Symbols for Dim{Symbol}.

Objects that don't define a val method are returned unaltered.

source


Lookup methods:

# DimensionalData.Dimensions.LookupArrays.boundsFunction.
julia
bounds(xs, [dims::Tuple]) => Tuple{Vararg{Tuple{T,T}}}
 bounds(xs::Tuple) => Tuple{Vararg{Tuple{T,T}}}
 bounds(x, dim) => Tuple{T,T}
-bounds(dim::Union{Dimension,LookupArray}) => Tuple{T,T}

Return the bounds of all dimensions of an object, of a specific dimension, or of a tuple of dimensions.

If bounds are not known, one or both values may be nothing.

dims can be a Dimension, a dimension type, or a tuple of either.

source


# DimensionalData.Dimensions.LookupArrays.hasselectionFunction.
julia
hasselection(x, selector) => Bool
-hasselection(x, selectors::Tuple) => Bool

Check if indexing into x with selectors can be performed, where x is some object with a dims method, and selectors is a Selector or Dimension or a tuple of either.

source


# DimensionalData.Dimensions.LookupArrays.indexFunction.
julia
index(x) => Tuple{Vararg{AbstractArray}}
+bounds(dim::Union{Dimension,LookupArray}) => Tuple{T,T}

Return the bounds of all dimensions of an object, of a specific dimension, or of a tuple of dimensions.

If bounds are not known, one or both values may be nothing.

dims can be a Dimension, a dimension type, or a tuple of either.

source


# DimensionalData.Dimensions.LookupArrays.hasselectionFunction.
julia
hasselection(x, selector) => Bool
+hasselection(x, selectors::Tuple) => Bool

Check if indexing into x with selectors can be performed, where x is some object with a dims method, and selectors is a Selector or Dimension or a tuple of either.

source


# DimensionalData.Dimensions.LookupArrays.indexFunction.
julia
index(x) => Tuple{Vararg{AbstractArray}}
 index(x, dims::Tuple) => Tuple{Vararg{AbstractArray}}
 index(dims::Tuple) => Tuple{Vararg{AbstractArray}}}
 index(x, dim) => AbstractArray
-index(dim::Dimension) => AbstractArray

Return the contained index of a Dimension.

Only valid when a Dimension contains an AbstractArray or a Val tuple like Val{(:a, :b)}(). The Val is unwrapped to return just the Tuple

dims can be a Dimension, or a tuple of Dimension.

source


# DimensionalData.Dimensions.LookupArrays.samplingFunction.
julia
sampling(x, [dims::Tuple]) => Tuple
+index(dim::Dimension) => AbstractArray

Return the contained index of a Dimension.

Only valid when a Dimension contains an AbstractArray or a Val tuple like Val{(:a, :b)}(). The Val is unwrapped to return just the Tuple

dims can be a Dimension, or a tuple of Dimension.

source


# DimensionalData.Dimensions.LookupArrays.samplingFunction.
julia
sampling(x, [dims::Tuple]) => Tuple
 sampling(x, dim) => Sampling
 sampling(xs::Tuple) => Tuple{Vararg{Sampling}}
-sampling(x:Union{Dimension,LookupArray}) => Sampling

Return the Sampling for each dimension.

Second argument dims can be Dimensions, Dimension types, or Symbols for Dim{Symbol}.

source


# DimensionalData.Dimensions.LookupArrays.spanFunction.
julia
span(x, [dims::Tuple]) => Tuple
+sampling(x:Union{Dimension,LookupArray}) => Sampling

Return the Sampling for each dimension.

Second argument dims can be Dimensions, Dimension types, or Symbols for Dim{Symbol}.

source


# DimensionalData.Dimensions.LookupArrays.spanFunction.
julia
span(x, [dims::Tuple]) => Tuple
 span(x, dim) => Span
 span(xs::Tuple) => Tuple{Vararg{Span,N}}
-span(x::Union{Dimension,LookupArray}) => Span

Return the Span for each dimension.

Second argument dims can be Dimensions, Dimension types, or Symbols for Dim{Symbol}.

source


# DimensionalData.Dimensions.LookupArrays.orderFunction.
julia
order(x, [dims::Tuple]) => Tuple
+span(x::Union{Dimension,LookupArray}) => Span

Return the Span for each dimension.

Second argument dims can be Dimensions, Dimension types, or Symbols for Dim{Symbol}.

source


# DimensionalData.Dimensions.LookupArrays.orderFunction.
julia
order(x, [dims::Tuple]) => Tuple
 order(xs::Tuple) => Tuple
-order(x::Union{Dimension,LookupArray}) => Order

Return the Ordering of the dimension index for each dimension: ForwardOrdered, ReverseOrdered, or Unordered

Second argument dims can be Dimensions, Dimension types, or Symbols for Dim{Symbol}.

source


# DimensionalData.Dimensions.LookupArrays.locusFunction.
julia
locus(x, [dims::Tuple]) => Tuple
+order(x::Union{Dimension,LookupArray}) => Order

Return the Ordering of the dimension index for each dimension: ForwardOrdered, ReverseOrdered, or Unordered

Second argument dims can be Dimensions, Dimension types, or Symbols for Dim{Symbol}.

source


# DimensionalData.Dimensions.LookupArrays.locusFunction.
julia
locus(x, [dims::Tuple]) => Tuple
 locus(x, dim) => Locus
 locus(xs::Tuple) => Tuple{Vararg{Locus,N}}
-locus(x::Union{Dimension,LookupArray}) => Locus

Return the Locus for each dimension.

Second argument dims can be Dimensions, Dimension types, or Symbols for Dim{Symbol}.

source


# DimensionalData.Dimensions.LookupArrays.shiftlocusFunction.
julia
shiftlocus(locus::Locus, x)

Shift the index of x from the current locus to the new locus.

We only shift Sampled, Regular or Explicit, Intervals.

source


Selectors

# DimensionalData.Dimensions.LookupArrays.SelectorType.
julia
Selector

Abstract supertype for all selectors.

Selectors are wrappers that indicate that passed values are not the array indices, but values to be selected from the dimension index, such as DateTime objects for a Ti dimension.

Selectors provided in DimensionalData are:

source


# DimensionalData.Dimensions.LookupArrays.IntSelectorType.
julia
IntSelector <: Selector

Abstract supertype for Selectors that return a single Int index.

IntSelectors provided by DimensionalData are:

source


# DimensionalData.Dimensions.LookupArrays.ArraySelectorType.
julia
ArraySelector <: Selector

Abstract supertype for Selectors that return an AbstractArray.

ArraySelectors provided by DimensionalData are:

source


# DimensionalData.Dimensions.LookupArrays.AtType.
julia
At <: IntSelector
+locus(x::Union{Dimension,LookupArray}) => Locus

Return the Locus for each dimension.

Second argument dims can be Dimensions, Dimension types, or Symbols for Dim{Symbol}.

source


# DimensionalData.Dimensions.LookupArrays.shiftlocusFunction.
julia
shiftlocus(locus::Locus, x)

Shift the index of x from the current locus to the new locus.

We only shift Sampled, Regular or Explicit, Intervals.

source


Selectors

# DimensionalData.Dimensions.LookupArrays.SelectorType.
julia
Selector

Abstract supertype for all selectors.

Selectors are wrappers that indicate that passed values are not the array indices, but values to be selected from the dimension index, such as DateTime objects for a Ti dimension.

Selectors provided in DimensionalData are:

source


# DimensionalData.Dimensions.LookupArrays.IntSelectorType.
julia
IntSelector <: Selector

Abstract supertype for Selectors that return a single Int index.

IntSelectors provided by DimensionalData are:

source


# DimensionalData.Dimensions.LookupArrays.ArraySelectorType.
julia
ArraySelector <: Selector

Abstract supertype for Selectors that return an AbstractArray.

ArraySelectors provided by DimensionalData are:

source


# DimensionalData.Dimensions.LookupArrays.AtType.
julia
At <: IntSelector
 
 At(x, atol, rtol)
 At(x; atol=nothing, rtol=nothing)

Selector that exactly matches the value on the passed-in dimensions, or throws an error. For ranges and arrays, every intermediate value must match an existing value - not just the end points.

x can be any value or Vector of values.

atol and rtol are passed to isapprox. For Number rtol will be set to Base.rtoldefault, otherwise nothing, and wont be used.

Example

julia
using DimensionalData
@@ -113,7 +113,7 @@
 
 # output
 
-5

source


# DimensionalData.Dimensions.LookupArrays.NearType.
julia
Near <: IntSelector
+5

source


# DimensionalData.Dimensions.LookupArrays.NearType.
julia
Near <: IntSelector
 
 Near(x)

Selector that selects the nearest index to x.

With Points this is simply the index values nearest to the x, however with Intervals it is the interval center nearest to x. This will be offset from the index value for Start and End loci.

Example

julia
using DimensionalData
 
@@ -121,7 +121,7 @@
 A[X(Near(23)), Y(Near(5.1))]
 
 # output
-4

source


# DimensionalData.Dimensions.LookupArrays.BetweenType.
julia
Between <: ArraySelector
+4

source


# DimensionalData.Dimensions.LookupArrays.BetweenType.
julia
Between <: ArraySelector
 
 Between(a, b)

Depreciated: use a..b instead of Between(a, b). Other Interval objects from IntervalSets.jl, like `OpenInterval(a, b) will also work, giving the correct open/closed boundaries.

Between will e removed in furture to avoid clashes with DataFrames.Between.

Selector that retreive all indices located between 2 values, evaluated with >= for the lower value, and < for the upper value. This means the same value will not be counted twice in 2 adjacent Between selections.

For Intervals the whole interval must be lie between the values. For Points the points must fall between the values. Different Sampling types may give different results with the same input - this is the intended behaviour.

Between for Irregular intervals is a little complicated. The interval is the distance between a value and the next (for Start locus) or previous (for End locus) value.

For Center, we take the mid point between two index values as the start and end of each interval. This may or may not make sense for the values in your indes, so use Between with Irregular Intervals(Center()) with caution.

Example

julia
using DimensionalData
 
@@ -134,7 +134,7 @@
   X Sampled{Int64} 20:10:20 ForwardOrdered Regular Points,
   Y Sampled{Int64} 5:6 ForwardOrdered Regular Points
      5  6
- 20  4  5

source


# DimensionalData.Dimensions.LookupArrays.TouchesType.
julia
Touches <: ArraySelector
+ 20  4  5

source


# DimensionalData.Dimensions.LookupArrays.TouchesType.
julia
Touches <: ArraySelector
 
 Touches(a, b)

Selector that retreives all indices touching the closed interval 2 values, for the maximum possible area that could interact with the supplied range.

This can be better than .. when e.g. subsetting an area to rasterize, as you may wish to include pixels that just touch the area, rather than those that fall within it.

Touches is different to using closed intervals when the lookups also contain intervals - if any of the intervals touch, they are included. With .. they are discarded unless the whole cell interval falls inside the selector interval.

Example

julia
using DimensionalData
 
@@ -146,7 +146,7 @@
   X Sampled{Int64} 20:10:20 ForwardOrdered Regular Points,
   Y Sampled{Int64} 5:6 ForwardOrdered Regular Points
      5  6
- 20  4  5

source


# DimensionalData.Dimensions.LookupArrays.ContainsType.
julia
Contains <: IntSelector
+ 20  4  5

source


# DimensionalData.Dimensions.LookupArrays.ContainsType.
julia
Contains <: IntSelector
 
 Contains(x)

Selector that selects the interval the value is contained by. If the interval is not present in the index, an error will be thrown.

Can only be used for Intervals or Categorical. For Categorical it falls back to using At. Contains should not be confused with Base.contains - use Where(contains(x)) to check for if values are contain in categorical values like strings.

Example

julia
using DimensionalData; const DD = DimensionalData
 dims_ = X(10:10:20; sampling=DD.Intervals(DD.Center())),
@@ -155,7 +155,7 @@
 A[X(Contains(8)), Y(Contains(6.8))]
 
 # output
-3

source


# DimensionalData.Dimensions.LookupArrays.WhereType.
julia
Where <: ArraySelector
+3

source


# DimensionalData.Dimensions.LookupArrays.WhereType.
julia
Where <: ArraySelector
 
 Where(f::Function)

Selector that filters a dimension lookup by any function that accepts a single value and returns a Bool.

Example

julia
using DimensionalData
 
@@ -168,7 +168,7 @@
   X Sampled{Int64} Int64[20] ForwardOrdered Regular Points,
   Y Sampled{Int64} Int64[19, 21] ForwardOrdered Regular Points
      19  21
- 20   4   6

source


# DimensionalData.Dimensions.LookupArrays.AllType.
julia
All <: Selector
+ 20   4   6

source


# DimensionalData.Dimensions.LookupArrays.AllType.
julia
All <: Selector
 
 All(selectors::Selector...)

Selector that combines the results of other selectors. The indices used will be the union of all result sorted in ascending order.

Example

julia
using DimensionalData, Unitful
 
@@ -183,41 +183,41 @@
   Ti Sampled{Quantity{Int64, 𝐓, Unitful.FreeUnits{(s,), 𝐓, nothing}}} Quantity{Int64, 𝐓, Unitful.FreeUnits{(s,), 𝐓, nothing}}[1 s, 6 s, 91 s, 96 s] ForwardOrdered Regular Points
        1 s  6 s  91 s  96 s
  10.0    1    2    19    20
- 50.0    3    6    57    60

source


LookupArray traits

# DimensionalData.Dimensions.LookupArrays.LookupArrayTraitType.
julia
LookupArrayTrait

Abstract supertype of all traits of a LookupArray.

These modify the behaviour of the lookup index.

The term "Trait" is used loosely - these may be fields of an object of traits hard-coded to specific types.

source


Order

# DimensionalData.Dimensions.LookupArrays.OrderType.
julia
Order <: LookupArrayTrait

Traits for the order of a LookupArray. These determine how searchsorted finds values in the index, and how objects are plotted.

source


# DimensionalData.Dimensions.LookupArrays.OrderedType.
julia
Ordered <: Order

Supertype for the order of an ordered LookupArray, including ForwardOrdered and ReverseOrdered.

source


# DimensionalData.Dimensions.LookupArrays.ForwardOrderedType.
julia
ForwardOrdered <: Ordered
+ 50.0    3    6    57    60

source


LookupArray traits

# DimensionalData.Dimensions.LookupArrays.LookupArrayTraitType.
julia
LookupArrayTrait

Abstract supertype of all traits of a LookupArray.

These modify the behaviour of the lookup index.

The term "Trait" is used loosely - these may be fields of an object of traits hard-coded to specific types.

source


Order

# DimensionalData.Dimensions.LookupArrays.OrderType.
julia
Order <: LookupArrayTrait

Traits for the order of a LookupArray. These determine how searchsorted finds values in the index, and how objects are plotted.

source


# DimensionalData.Dimensions.LookupArrays.OrderedType.
julia
Ordered <: Order

Supertype for the order of an ordered LookupArray, including ForwardOrdered and ReverseOrdered.

source


# DimensionalData.Dimensions.LookupArrays.ForwardOrderedType.
julia
ForwardOrdered <: Ordered
 
-ForwardOrdered()

Indicates that the LookupArray index is in the normal forward order.

source


# DimensionalData.Dimensions.LookupArrays.ReverseOrderedType.
julia
ReverseOrdered <: Ordered
+ForwardOrdered()

Indicates that the LookupArray index is in the normal forward order.

source


# DimensionalData.Dimensions.LookupArrays.ReverseOrderedType.
julia
ReverseOrdered <: Ordered
 
-ReverseOrdered()

Indicates that the LookupArray index is in the reverse order.

source


# DimensionalData.Dimensions.LookupArrays.UnorderedType.
julia
Unordered <: Order
+ReverseOrdered()

Indicates that the LookupArray index is in the reverse order.

source


# DimensionalData.Dimensions.LookupArrays.UnorderedType.
julia
Unordered <: Order
 
-Unordered()

Indicates that LookupArray is unordered.

This means the index cannot be searched with searchsortedfirst or similar optimised methods - instead it will use findfirst.

source


# DimensionalData.Dimensions.LookupArrays.AutoOrderType.
julia
AutoOrder <: Order
+Unordered()

Indicates that LookupArray is unordered.

This means the index cannot be searched with searchsortedfirst or similar optimised methods - instead it will use findfirst.

source


# DimensionalData.Dimensions.LookupArrays.AutoOrderType.
julia
AutoOrder <: Order
 
-AutoOrder()

Specifies that the Order of a LookupArray will be found automatically where possible.

source


Span

# DimensionalData.Dimensions.LookupArrays.SpanType.
julia
Span <: LookupArrayTrait

Defines the type of span used in a Sampling index. These are Regular or Irregular.

source


# DimensionalData.Dimensions.LookupArrays.RegularType.
julia
Regular <: Span
+AutoOrder()

Specifies that the Order of a LookupArray will be found automatically where possible.

source


Span

# DimensionalData.Dimensions.LookupArrays.SpanType.
julia
Span <: LookupArrayTrait

Defines the type of span used in a Sampling index. These are Regular or Irregular.

source


# DimensionalData.Dimensions.LookupArrays.RegularType.
julia
Regular <: Span
 
-Regular(step=AutoStep())

Points or Intervals that have a fixed, regular step.

source


# DimensionalData.Dimensions.LookupArrays.IrregularType.
julia
Irregular <: Span
+Regular(step=AutoStep())

Points or Intervals that have a fixed, regular step.

source


# DimensionalData.Dimensions.LookupArrays.IrregularType.
julia
Irregular <: Span
 
 Irregular(bounds::Tuple)
-Irregular(lowerbound, upperbound)

Points or Intervals that have an Irrigular step size. To enable bounds tracking and accuract selectors, the starting bounds are provided as a 2 tuple, or 2 arguments. (nothing, nothing) is acceptable input, the bounds will be guessed from the index, but may be innaccurate.

source


# DimensionalData.Dimensions.LookupArrays.ExplicitType.
julia
Explicit(bounds::AbstractMatix)

Intervals where the span is explicitly listed for every interval.

This uses a matrix where with length 2 columns for each index value, holding the lower and upper bounds for that specific index.

source


# DimensionalData.Dimensions.LookupArrays.AutoSpanType.
julia
AutoSpan <: Span
+Irregular(lowerbound, upperbound)

Points or Intervals that have an Irrigular step size. To enable bounds tracking and accuract selectors, the starting bounds are provided as a 2 tuple, or 2 arguments. (nothing, nothing) is acceptable input, the bounds will be guessed from the index, but may be innaccurate.

source


# DimensionalData.Dimensions.LookupArrays.ExplicitType.
julia
Explicit(bounds::AbstractMatix)

Intervals where the span is explicitly listed for every interval.

This uses a matrix where with length 2 columns for each index value, holding the lower and upper bounds for that specific index.

source


# DimensionalData.Dimensions.LookupArrays.AutoSpanType.
julia
AutoSpan <: Span
 
-AutoSpan()

The span will be guessed and replaced in format or set.

source


Sampling

# DimensionalData.Dimensions.LookupArrays.SamplingType.
julia
Sampling <: LookupArrayTrait

Indicates the sampling method used by the index: Points or Intervals.

source


# DimensionalData.Dimensions.LookupArrays.PointsType.
julia
Points <: Sampling
+AutoSpan()

The span will be guessed and replaced in format or set.

source


Sampling

# DimensionalData.Dimensions.LookupArrays.SamplingType.
julia
Sampling <: LookupArrayTrait

Indicates the sampling method used by the index: Points or Intervals.

source


# DimensionalData.Dimensions.LookupArrays.PointsType.
julia
Points <: Sampling
 
-Points()

Sampling lookup where single samples at exact points.

These are always plotted at the center of array cells.

source


# DimensionalData.Dimensions.LookupArrays.IntervalsType.
julia
Intervals <: Sampling
+Points()

Sampling lookup where single samples at exact points.

These are always plotted at the center of array cells.

source


# DimensionalData.Dimensions.LookupArrays.IntervalsType.
julia
Intervals <: Sampling
 
-Intervals(locus::Locus)

Sampling specifying that sampled values are the mean (or similar) value over an interval, rather than at one specific point.

Intervals require a Locus of Start, Center or End to define the location in the interval that the index values refer to.

source


Loci

# DimensionalData.Dimensions.LookupArrays.LocusType.

Locus <: LookupArrayTrait

Abstract supertype of types that indicate the position of index values where they represent Intervals.

These allow for values array cells to align with the Start, Center, or End of values in the lookup index.

This means they can be plotted with correct axis markers, and allows automatic converrsions to between formats with different standards (such as NetCDF and GeoTiff).

source


# DimensionalData.Dimensions.LookupArrays.CenterType.
julia
Center <: Locus
+Intervals(locus::Locus)

Sampling specifying that sampled values are the mean (or similar) value over an interval, rather than at one specific point.

Intervals require a Locus of Start, Center or End to define the location in the interval that the index values refer to.

source


Loci

# DimensionalData.Dimensions.LookupArrays.LocusType.

Locus <: LookupArrayTrait

Abstract supertype of types that indicate the position of index values where they represent Intervals.

These allow for values array cells to align with the Start, Center, or End of values in the lookup index.

This means they can be plotted with correct axis markers, and allows automatic converrsions to between formats with different standards (such as NetCDF and GeoTiff).

source


# DimensionalData.Dimensions.LookupArrays.CenterType.
julia
Center <: Locus
 
-Center()

Indicates a lookup value is for the center of its corresponding array cell.

source


# DimensionalData.Dimensions.LookupArrays.StartType.
julia
Start <: Locus
+Center()

Indicates a lookup value is for the center of its corresponding array cell.

source


# DimensionalData.Dimensions.LookupArrays.StartType.
julia
Start <: Locus
 
-Start()

Indicates a lookup value is for the start of its corresponding array cell, in the direction of the lookup index order.

source


# DimensionalData.Dimensions.LookupArrays.EndType.
julia
End <: Locus
+Start()

Indicates a lookup value is for the start of its corresponding array cell, in the direction of the lookup index order.

source


# DimensionalData.Dimensions.LookupArrays.EndType.
julia
End <: Locus
 
-End()

Indicates a lookup value is for the end of its corresponding array cell, in the direction of the lookup index order.

source


# DimensionalData.Dimensions.LookupArrays.AutoLocusType.
julia
AutoLocus <: Locus
+End()

Indicates a lookup value is for the end of its corresponding array cell, in the direction of the lookup index order.

source


# DimensionalData.Dimensions.LookupArrays.AutoLocusType.
julia
AutoLocus <: Locus
 
-AutoLocus()

Indicates a interval where the index position is not yet known. This will be filled with a default value on object construction.

source


Metadata

# DimensionalData.Dimensions.LookupArrays.AbstractMetadataType.
julia
AbstractMetadata{X,T}

Abstract supertype for all metadata wrappers.

Metadata wrappers allow tracking the contents and origin of metadata. This can facilitate conversion between metadata types (for saving a file to a differenet format) or simply saving data back to the same file type with identical metadata.

Using a wrapper instead of Dict or NamedTuple also lets us pass metadata objects to set without ambiguity about where to put them.

source


# DimensionalData.Dimensions.LookupArrays.MetadataType.
julia
Metadata <: AbstractMetadata
+AutoLocus()

Indicates a interval where the index position is not yet known. This will be filled with a default value on object construction.

source


Metadata

# DimensionalData.Dimensions.LookupArrays.AbstractMetadataType.
julia
AbstractMetadata{X,T}

Abstract supertype for all metadata wrappers.

Metadata wrappers allow tracking the contents and origin of metadata. This can facilitate conversion between metadata types (for saving a file to a differenet format) or simply saving data back to the same file type with identical metadata.

Using a wrapper instead of Dict or NamedTuple also lets us pass metadata objects to set without ambiguity about where to put them.

source


# DimensionalData.Dimensions.LookupArrays.MetadataType.
julia
Metadata <: AbstractMetadata
 
 Metadata{X}(val::Union{Dict,NamedTuple})
 Metadata{X}(pairs::Pair...) => Metadata{Dict}
-Metadata{X}(; kw...) => Metadata{NamedTuple}

General Metadata object. The X type parameter categorises the metadata for method dispatch, if required.

source


# DimensionalData.Dimensions.LookupArrays.NoMetadataType.
julia
NoMetadata <: AbstractMetadata
+Metadata{X}(; kw...) => Metadata{NamedTuple}

General Metadata object. The X type parameter categorises the metadata for method dispatch, if required.

source


# DimensionalData.Dimensions.LookupArrays.NoMetadataType.
julia
NoMetadata <: AbstractMetadata
 
-NoMetadata()

Indicates an object has no metadata. But unlike using nothing, get, keys and haskey will still work on it, get always returning the fallback argument. keys returns () while haskey always returns false.

source


- +NoMetadata()

Indicates an object has no metadata. But unlike using nothing, get, keys and haskey will still work on it, get always returning the fallback argument. keys returns () while haskey always returns false.

source


+ \ No newline at end of file diff --git a/previews/PR615/api/reference.html b/previews/PR615/api/reference.html index b41fe227d..6963c2f8d 100644 --- a/previews/PR615/api/reference.html +++ b/previews/PR615/api/reference.html @@ -8,16 +8,16 @@ - + - - + + -
Skip to content

API Reference

Arrays

# DimensionalData.AbstractDimArrayType.
julia
AbstractDimArray <: AbstractBasicArray

Abstract supertype for all "dim" arrays.

These arrays return a Tuple of Dimension from a dims method, and can be rebuilt using rebuild.

parent must return the source array.

They should have metadata, name and refdims methods, although these are optional.

A rebuild method for AbstractDimArray must accept data, dims, refdims, name, metadata arguments.

Indexing AbstractDimArray with non-range AbstractArray has undefined effects on the Dimension index. Use forward-ordered arrays only"

source


# DimensionalData.DimArrayType.
julia
DimArray <: AbstractDimArray
+    
Skip to content

API Reference

Arrays

# DimensionalData.AbstractDimArrayType.
julia
AbstractDimArray <: AbstractBasicArray

Abstract supertype for all "dim" arrays.

These arrays return a Tuple of Dimension from a dims method, and can be rebuilt using rebuild.

parent must return the source array.

They should have metadata, name and refdims methods, although these are optional.

A rebuild method for AbstractDimArray must accept data, dims, refdims, name, metadata arguments.

Indexing AbstractDimArray with non-range AbstractArray has undefined effects on the Dimension index. Use forward-ordered arrays only"

source


# DimensionalData.DimArrayType.
julia
DimArray <: AbstractDimArray
 
 DimArray(data, dims, refdims, name, metadata)
 DimArray(data, dims::Tuple; refdims=(), name=NoName(), metadata=NoMetadata())

The main concrete subtype of AbstractDimArray.

DimArray maintains and updates its Dimensions through transformations and moves dimensions to reference dimension refdims after reducing operations (like e.g. mean).

Arguments

  • data: An AbstractArray.

  • dims: A Tuple of Dimension

  • name: A string name for the array. Shows in plots and tables.

  • refdims: refence dimensions. Usually set programmatically to track past slices and reductions of dimension for labelling and reconstruction.

  • metadata: Dict or Metadata object, or NoMetadata()

Indexing can be done with all regular indices, or with Dimensions and/or Selectors.

Indexing AbstractDimArray with non-range AbstractArray has undefined effects on the Dimension index. Use forward-ordered arrays only"

Example:

julia
using Dates, DimensionalData
@@ -28,7 +28,7 @@
 
 julia> A[X(Near([12, 35])), Ti(At(DateTime(2001,5)))];
 
-julia> A[Near(DateTime(2001, 5, 4)), Between(20, 50)];

source


Shorthand AbstractDimArray constructors:

# Base.fillFunction.
julia
fill(value, dims::Tuple)
+julia> A[Near(DateTime(2001, 5, 4)), Between(20, 50)];

source


Shorthand AbstractDimArray constructors:

# Base.fillFunction.
julia
fill(value, dims::Tuple)
 fill(value, dims...)

Create an array of size dims with every location set to value.

For example, fill(1.0, (5,5)) returns a 5×5 array of floats, with 1.0 in every location of the array.

The dimension lengths dims may be specified as either a tuple or a sequence of arguments. An N-length tuple or N arguments following the value specify an N-dimensional array. Thus, a common idiom for creating a zero-dimensional array with its only location set to x is fill(x).

Every location of the returned array is set to (and is thus === to) the value that was passed; this means that if the value is itself modified, all elements of the filled array will reflect that modification because they're still that very value. This is of no concern with fill(1.0, (5,5)) as the value 1.0 is immutable and cannot itself be modified, but can be unexpected with mutable values like — most commonly — arrays. For example, fill([], 3) places the very same empty array in all three locations of the returned vector:

julia
julia> v = fill([], 3)
 3-element Vector{Vector{Any}}:
  []
@@ -91,7 +91,7 @@
 julia> rand(Bool, X(2), Y(4))
 2×4 DimArray{Bool,2} with dimensions: X, Y
  1  0  0  1
- 1  0  1  1

source


# Base.randFunction.
julia
rand([rng=default_rng()], [S], [dims...])

Pick a random element or array of random elements from the set of values specified by S; S can be

  • an indexable collection (for example 1:9 or ('x', "y", :z)),

  • an AbstractDict or AbstractSet object,

  • a string (considered as a collection of characters), or

  • a type: the set of values to pick from is then equivalent to typemin(S):typemax(S) for integers (this is not applicable to BigInt), to $[0, 1)$ for floating point numbers and to $[0, 1)+i[0, 1)$ for complex floating point numbers;

S defaults to Float64. When only one argument is passed besides the optional rng and is a Tuple, it is interpreted as a collection of values (S) and not as dims.

See also randn for normally distributed numbers, and rand! and randn! for the in-place equivalents.

::: compat Julia 1.1

Support for S as a tuple requires at least Julia 1.1.

:::

Examples

julia
julia> rand(Int, 2)
+ 1  0  1  1

source


# Base.randFunction.
julia
rand([rng=default_rng()], [S], [dims...])

Pick a random element or array of random elements from the set of values specified by S; S can be

  • an indexable collection (for example 1:9 or ('x', "y", :z)),

  • an AbstractDict or AbstractSet object,

  • a string (considered as a collection of characters), or

  • a type: the set of values to pick from is then equivalent to typemin(S):typemax(S) for integers (this is not applicable to BigInt), to $[0, 1)$ for floating point numbers and to $[0, 1)+i[0, 1)$ for complex floating point numbers;

S defaults to Float64. When only one argument is passed besides the optional rng and is a Tuple, it is interpreted as a collection of values (S) and not as dims.

See also randn for normally distributed numbers, and rand! and randn! for the in-place equivalents.

::: compat Julia 1.1

Support for S as a tuple requires at least Julia 1.1.

:::

Examples

julia
julia> rand(Int, 2)
 2-element Array{Int64,1}:
  1339893410598768192
  1575814717733606317
@@ -123,7 +123,7 @@
   Y: 100.0:50.0:200.0 Sampled: Ordered Regular Points
  0.43204   0.835111  0.624231
  0.752868  0.471638  0.193652
- 0.484558  0.846559  0.455256

source


# Base.zerosFunction.
julia
zeros([T=Float64,] dims::Tuple)
+ 0.484558  0.846559  0.455256

source


# Base.zerosFunction.
julia
zeros([T=Float64,] dims::Tuple)
 zeros([T=Float64,] dims...)

Create an Array, with element type T, of all zeros with size specified by dims. See also fill, ones, zero.

Examples

julia
julia> zeros(1)
 1-element Vector{Float64}:
  0.0
@@ -145,7 +145,7 @@
   Y: 100.0:50.0:200.0 Sampled: Ordered Regular Points
  0.0  0.0  0.0
  0.0  0.0  0.0
- 0.0  0.0  0.0

source


# Base.onesFunction.
julia
ones([T=Float64,] dims::Tuple)
+ 0.0  0.0  0.0

source


# Base.onesFunction.
julia
ones([T=Float64,] dims::Tuple)
 ones([T=Float64,] dims...)

Create an Array, with element type T, of all ones with size specified by dims. See also fill, zeros.

Examples

julia
julia> ones(1,2)
 1×2 Matrix{Float64}:
  1.0  1.0
@@ -167,14 +167,14 @@
   Y: 100.0:50.0:200.0 Sampled: Ordered Regular Points
  1.0  1.0  1.0
  1.0  1.0  1.0
- 1.0  1.0  1.0

source


Functions for getting information from objects:

# DimensionalData.Dimensions.dimsFunction.
julia
dims(x, [dims::Tuple]) => Tuple{Vararg{Dimension}}
-dims(x, dim) => Dimension

Return a tuple of Dimensions for an object, in the order that matches the axes or columns of the underlying data.

dims can be Dimension, Dimension types, or Symbols for Dim{Symbol}.

The default is to return nothing.

source


# DimensionalData.Dimensions.refdimsFunction.
julia
refdims(x, [dims::Tuple]) => Tuple{Vararg{Dimension}}
-refdims(x, dim) => Dimension

Reference dimensions for an array that is a slice or view of another array with more dimensions.

slicedims(a, dims) returns a tuple containing the current new dimensions and the new reference dimensions. Refdims can be stored in a field or disgarded, as it is mostly to give context to plots. Ignoring refdims will simply leave some captions empty.

The default is to return an empty Tuple ().

source


# DimensionalData.Dimensions.LookupArrays.metadataFunction.
julia
metadata(x) => (object metadata)
+ 1.0  1.0  1.0

source


Functions for getting information from objects:

# DimensionalData.Dimensions.dimsFunction.
julia
dims(x, [dims::Tuple]) => Tuple{Vararg{Dimension}}
+dims(x, dim) => Dimension

Return a tuple of Dimensions for an object, in the order that matches the axes or columns of the underlying data.

dims can be Dimension, Dimension types, or Symbols for Dim{Symbol}.

The default is to return nothing.

source


# DimensionalData.Dimensions.refdimsFunction.
julia
refdims(x, [dims::Tuple]) => Tuple{Vararg{Dimension}}
+refdims(x, dim) => Dimension

Reference dimensions for an array that is a slice or view of another array with more dimensions.

slicedims(a, dims) returns a tuple containing the current new dimensions and the new reference dimensions. Refdims can be stored in a field or disgarded, as it is mostly to give context to plots. Ignoring refdims will simply leave some captions empty.

The default is to return an empty Tuple ().

source


# DimensionalData.Dimensions.LookupArrays.metadataFunction.
julia
metadata(x) => (object metadata)
 metadata(x, dims::Tuple)  => Tuple (Dimension metadata)
-metadata(xs::Tuple) => Tuple

Returns the metadata for an object or for the specified dimension(s)

Second argument dims can be Dimensions, Dimension types, or Symbols for Dim{Symbol}.

source


# DimensionalData.Dimensions.nameFunction.
julia
name(x) => Symbol
+metadata(xs::Tuple) => Tuple

Returns the metadata for an object or for the specified dimension(s)

Second argument dims can be Dimensions, Dimension types, or Symbols for Dim{Symbol}.

source


# DimensionalData.Dimensions.nameFunction.
julia
name(x) => Symbol
 name(xs:Tuple) => NTuple{N,Symbol}
 name(x, dims::Tuple) => NTuple{N,Symbol}
-name(x, dim) => Symbol

Get the name of an array or Dimension, or a tuple of of either as a Symbol.

Second argument dims can be Dimensions, Dimension types, or Symbols for Dim{Symbol}.

source


Multi-array datasets

# DimensionalData.AbstractDimStackType.
julia
AbstractDimStack

Abstract supertype for dimensional stacks.

These have multiple layers of data, but share dimensions.

Notably, their behaviour lies somewhere between a DimArray and a NamedTuple:

  • indexing with a Symbol as in dimstack[:symbol] returns a DimArray layer.

  • iteration amd map are apply over array layers, as indexed with a Symbol.

  • getindex and many base methods are applied as for DimArray - to avoid the need to allways use map.

This design gives very succinct code when working with many-layered, mixed-dimension objects. But it may be jarring initially - the most surprising outcome is that dimstack[1] will return a NamedTuple of values for the first index in all layers, while first(dimstack) will return the first value of the iterator - the DimArray for the first layer.

See DimStack for the concrete implementation. Most methods are defined on the abstract type.

To extend AbstractDimStack, implement argument and keyword version of rebuild and also rebuild_from_arrays.

The constructor of an AbstractDimStack must accept a NamedTuple.

source


# DimensionalData.DimStackType.
julia
DimStack <: AbstractDimStack
+name(x, dim) => Symbol

Get the name of an array or Dimension, or a tuple of of either as a Symbol.

Second argument dims can be Dimensions, Dimension types, or Symbols for Dim{Symbol}.

source


Multi-array datasets

# DimensionalData.AbstractDimStackType.
julia
AbstractDimStack

Abstract supertype for dimensional stacks.

These have multiple layers of data, but share dimensions.

Notably, their behaviour lies somewhere between a DimArray and a NamedTuple:

  • indexing with a Symbol as in dimstack[:symbol] returns a DimArray layer.

  • iteration amd map are apply over array layers, as indexed with a Symbol.

  • getindex and many base methods are applied as for DimArray - to avoid the need to allways use map.

This design gives very succinct code when working with many-layered, mixed-dimension objects. But it may be jarring initially - the most surprising outcome is that dimstack[1] will return a NamedTuple of values for the first index in all layers, while first(dimstack) will return the first value of the iterator - the DimArray for the first layer.

See DimStack for the concrete implementation. Most methods are defined on the abstract type.

To extend AbstractDimStack, implement argument and keyword version of rebuild and also rebuild_from_arrays.

The constructor of an AbstractDimStack must accept a NamedTuple.

source


# DimensionalData.DimStackType.
julia
DimStack <: AbstractDimStack
 
 DimStack(data::AbstractDimArray...)
 DimStack(data::Tuple{Vararg{AbstractDimArray}})
@@ -199,7 +199,7 @@
 (one = 4.0, two = 8.0, three = 12.0)
 
 julia> s[X(At(:a))] isa DimStack
-true

source


Dimension generators

# DimensionalData.DimIndicesType.
julia
DimIndices <: AbstractArray
+true

source


Dimension generators

# DimensionalData.DimIndicesType.
julia
DimIndices <: AbstractArray
 
 DimIndices(x)
 DimIndices(dims::Tuple)
@@ -209,7 +209,7 @@
 julia> A[di] # Index A with these indices dims(d) = (X{StepRange{Int64, Int64}}(1:2:3), Y{StepRange{Int64, Int64}}(1:2:3)) ╭─────────────────────────╮ │ 2×2 DimArray{Float64,2} │ ├─────────────────────────┴─────────────────────────────────── dims ┐   ↓ Y Sampled{Float64} 0.0:0.6:0.6 ForwardOrdered Regular Points,   → X Categorical{Char} 'a':2:'c' ForwardOrdered └───────────────────────────────────────────────────────────────────┘  ↓ →   'a'       'c'  0.0  0.513225  0.771862  0.6  0.837621  0.441426
 
 
-[source](https://github.com/rafaqz/DimensionalData.jl/blob/fa50f93ce32c000c962544242fd0a4b9d0cf9ece/src/dimindices.jl#L29-L89)
+[source](https://github.com/rafaqz/DimensionalData.jl/blob/cd43d14c21d48af4b605b43bffce088f272c3adc/src/dimindices.jl#L44-L104)
 
 </div>
 <br>
@@ -230,7 +230,7 @@
 
 DimPoints(x; order)
 DimPoints(dims::Tuple; order)
-DimPoints(dims::Dimension; order)

Like CartesianIndices, but for the point values of the dimension index. Behaves as an Array of Tuple lookup values (whatever they are) for all combinations of the lookup values of dims.

Either a Dimension, a Tuple of Dimension or an object x that defines a dims method can be passed in.

Keywords

  • order: determines the order of the points, the same as the order of dims by default.

source


Tables.jl/TableTraits.jl interface

# DimensionalData.AbstractDimTableType.
julia
AbstractDimTable <: Tables.AbstractColumns

Abstract supertype for dim tables

source


# DimensionalData.DimTableType.
julia
DimTable <: AbstractDimTable
+DimPoints(dims::Dimension; order)

Like CartesianIndices, but for the point values of the dimension index. Behaves as an Array of Tuple lookup values (whatever they are) for all combinations of the lookup values of dims.

Either a Dimension, a Tuple of Dimension or an object x that defines a dims method can be passed in.

Keywords

  • order: determines the order of the points, the same as the order of dims by default.

source


Tables.jl/TableTraits.jl interface

# DimensionalData.AbstractDimTableType.
julia
AbstractDimTable <: Tables.AbstractColumns

Abstract supertype for dim tables

source


# DimensionalData.DimTableType.
julia
DimTable <: AbstractDimTable
 
 DimTable(s::AbstractDimStack; mergedims=nothing)
 DimTable(x::AbstractDimArray; layersfrom=nothing, mergedims=nothing)
@@ -241,10 +241,7 @@
  :geometry  Tuple{Int64, Int64}
  :band_1    Float64
  :band_2    Float64
- :band_3    Float64

source


# DimensionalData.DimColumnType.
julia
DimColumn{T,D<:Dimension} <: AbstractVector{T}
-
-DimColumn(dim::Dimension, dims::Tuple{Vararg{DimTuple}})
-DimColumn(dim::DimColumn, length::Int, dimstride::Int)

A table column based on a Dimension and it's relationship with other Dimensions in dims.

length is the product of all dim lengths (usually the length of the corresponding array data), while stride is the product of the preceding dimension lengths, which may or may not be the real stride of the corresponding array depending on the data type. For A isa Array, the dimstride will match the stride.

When the second argument is a Tuple of Dimension, the length and dimstride fields are calculated from the dimensions, relative to the column dimension dim.

This object will be returned as a column of DimTable.

source


Utility methods

For transforming DimensionalData objects:

# DimensionalData.Dimensions.LookupArrays.setFunction.
julia
set(x, val)
+ :band_3    Float64

source


Missing docstring.

Missing docstring for DimensionalData.DimColumn. Check Documenter's build log for details.

Utility methods

For transforming DimensionalData objects:

# DimensionalData.Dimensions.LookupArrays.setFunction.
julia
set(x, val)
 set(x, args::Pairs...) => x with updated field/s
 set(x, args...; kw...) => x with updated field/s
 set(x, args::Tuple{Vararg{Dimension}}; kw...) => x with updated field/s
@@ -291,16 +288,16 @@
        -20.0  -10.0  0.0  10.0
  10.0    0.0    0.0  0.0   0.0
  20.0    0.0    0.0  0.0   0.0
- 30.0    0.0    0.0  0.0   0.0

source


# DimensionalData.Dimensions.LookupArrays.rebuildFunction.
julia
rebuild(x; kw...)

Rebuild an object struct with updated field values.

x can be a AbstractDimArray, a Dimension, LookupArray or other custom types.

This is an abstraction that alows inbuilt and custom types to be rebuilt to update their fields, as most objects in DimensionalData.jl are immutable.

Rebuild is mostly automated using ConstructionBase.setproperties. It should only be defined if your object has fields with with different names to DimensionalData objects. Try not to do that!

The arguments required are defined for the abstract type that has a rebuild method.

AbstractBasicDimArray:

  • dims: a Tuple of Dimension

AbstractDimArray:

  • data: the parent object - an AbstractArray

  • dims: a Tuple of Dimension

  • refdims: a Tuple of Dimension

  • name: A Symbol, or NoName and Name on GPU.

  • metadata: A Dict-like object

AbstractDimStack:

  • data: the parent object, often a NamedTuple

  • dims, refdims, metadata

Dimension:

  • val: anything.

LookupArray:

  • data: the parent object, an AbstractArray

  • Note: argument rebuild is deprecated on AbstractDimArray and

AbstractDimStack in favour of allways using the keyword version. In future the argument version will only be used on Dimension, which only have one argument.

source


# DimensionalData.modifyFunction.
julia
modify(f, A::AbstractDimArray) => AbstractDimArray
+ 30.0    0.0    0.0  0.0   0.0

source


# DimensionalData.Dimensions.LookupArrays.rebuildFunction.
julia
rebuild(x; kw...)

Rebuild an object struct with updated field values.

x can be a AbstractDimArray, a Dimension, LookupArray or other custom types.

This is an abstraction that alows inbuilt and custom types to be rebuilt to update their fields, as most objects in DimensionalData.jl are immutable.

Rebuild is mostly automated using ConstructionBase.setproperties. It should only be defined if your object has fields with with different names to DimensionalData objects. Try not to do that!

The arguments required are defined for the abstract type that has a rebuild method.

AbstractBasicDimArray:

  • dims: a Tuple of Dimension

AbstractDimArray:

  • data: the parent object - an AbstractArray

  • dims: a Tuple of Dimension

  • refdims: a Tuple of Dimension

  • name: A Symbol, or NoName and Name on GPU.

  • metadata: A Dict-like object

AbstractDimStack:

  • data: the parent object, often a NamedTuple

  • dims, refdims, metadata

Dimension:

  • val: anything.

LookupArray:

  • data: the parent object, an AbstractArray

  • Note: argument rebuild is deprecated on AbstractDimArray and

AbstractDimStack in favour of allways using the keyword version. In future the argument version will only be used on Dimension, which only have one argument.

source


# DimensionalData.modifyFunction.
julia
modify(f, A::AbstractDimArray) => AbstractDimArray
 modify(f, s::AbstractDimStack) => AbstractDimStack
 modify(f, dim::Dimension) => Dimension
 modify(f, x, lookupdim::Dimension) => typeof(x)

Modify the parent data, rebuilding the object wrapper without change. f must return a AbstractArray of the same size as the original.

This method is mostly useful as a way of swapping the parent array type of an object.

Example

If we have a previously-defined DimArray, we can copy it to an Nvidia GPU with:

julia
A = DimArray(rand(100, 100), (X, Y))
-modify(CuArray, A)

This also works for all the data layers in a DimStack.

source


# DimensionalData.broadcast_dimsFunction.
julia
broadcast_dims(f, sources::AbstractDimArray...) => AbstractDimArray

Broadcast function f over the AbstractDimArrays in sources, permuting and reshaping dimensions to match where required. The result will contain all the dimensions in all passed in arrays in the order in which they are found.

Arguments

  • sources: AbstractDimArrays to broadcast over with f.

This is like broadcasting over every slice of A if it is sliced by the dimensions of B.

source


# DimensionalData.broadcast_dims!Function.
julia
broadcast_dims!(f, dest::AbstractDimArray, sources::AbstractDimArray...) => dest

Broadcast function f over the AbstractDimArrays in sources, writing to dest. sources are permuting and reshaping dimensions to match where required.

The result will contain all the dimensions in all passed in arrays, in the order in which they are found.

Arguments

  • dest: AbstractDimArray to update.

  • sources: AbstractDimArrays to broadcast over with f.

source


# DimensionalData.mergedimsFunction.
julia
mergedims(old_dims => new_dim) => Dimension

Return a dimension new_dim whose indices are a MergedLookup of the indices of old_dims.

source

julia
mergedims(dims, old_dims => new_dim, others::Pair...) => dims_new

If dimensions old_dims, new_dim, etc. are found in dims, then return new dims_new where all dims in old_dims have been combined into a single dim new_dim. The returned dimension will keep only the name of new_dim. Its coords will be a MergedLookup of the coords of the dims in old_dims. New dimensions are always placed at the end of dims_new. others contains other dimension pairs to be merged.

Example

julia
julia> ds = (X(0:0.1:0.4), Y(10:10:100), Ti([0, 3, 4]));
+modify(CuArray, A)

This also works for all the data layers in a DimStack.

source


# DimensionalData.broadcast_dimsFunction.
julia
broadcast_dims(f, sources::AbstractDimArray...) => AbstractDimArray

Broadcast function f over the AbstractDimArrays in sources, permuting and reshaping dimensions to match where required. The result will contain all the dimensions in all passed in arrays in the order in which they are found.

Arguments

  • sources: AbstractDimArrays to broadcast over with f.

This is like broadcasting over every slice of A if it is sliced by the dimensions of B.

source


# DimensionalData.broadcast_dims!Function.
julia
broadcast_dims!(f, dest::AbstractDimArray, sources::AbstractDimArray...) => dest

Broadcast function f over the AbstractDimArrays in sources, writing to dest. sources are permuting and reshaping dimensions to match where required.

The result will contain all the dimensions in all passed in arrays, in the order in which they are found.

Arguments

  • dest: AbstractDimArray to update.

  • sources: AbstractDimArrays to broadcast over with f.

source


# DimensionalData.mergedimsFunction.
julia
mergedims(old_dims => new_dim) => Dimension

Return a dimension new_dim whose indices are a MergedLookup of the indices of old_dims.

source

julia
mergedims(dims, old_dims => new_dim, others::Pair...) => dims_new

If dimensions old_dims, new_dim, etc. are found in dims, then return new dims_new where all dims in old_dims have been combined into a single dim new_dim. The returned dimension will keep only the name of new_dim. Its coords will be a MergedLookup of the coords of the dims in old_dims. New dimensions are always placed at the end of dims_new. others contains other dimension pairs to be merged.

Example

julia
julia> ds = (X(0:0.1:0.4), Y(10:10:100), Ti([0, 3, 4]));
 julia> mergedims(ds, Ti => :time, (X, Y) => :space)
 Dim{:time} MergedLookup{Tuple{Int64}} Tuple{Int64}[(0,), (3,), (4,)] Ti,
-Dim{:space} MergedLookup{Tuple{Float64, Int64}} Tuple{Float64, Int64}[(0.0, 10), (0.1, 10), …, (0.3, 100), (0.4, 100)] X, Y

source

julia
mergedims(A::AbstractDimArray, dim_pairs::Pair...) => AbstractDimArray
-mergedims(A::AbstractDimStack, dim_pairs::Pair...) => AbstractDimStack

Return a new array or stack whose dimensions are the result of mergedims(dims(A), dim_pairs).

source


# DimensionalData.unmergedimsFunction.
julia
unmergedims(merged_dims::Tuple{Vararg{Dimension}}) => Tuple{Vararg{Dimension}}

Return the unmerged dimensions from a tuple of merged dimensions. However, the order of the original dimensions are not necessarily preserved.

source

julia
unmergedims(A::AbstractDimArray, original_dims) => AbstractDimArray
-unmergedims(A::AbstractDimStack, original_dims) => AbstractDimStack

Return a new array or stack whose dimensions are restored to their original prior to calling mergedims(A, dim_pairs).

source


# DimensionalData.reorderFunction.
julia
reorder(A::Union{AbstractDimArray,AbstractDimStack}, order::Pair...)
+Dim{:space} MergedLookup{Tuple{Float64, Int64}} Tuple{Float64, Int64}[(0.0, 10), (0.1, 10), …, (0.3, 100), (0.4, 100)] X, Y

source

julia
mergedims(A::AbstractDimArray, dim_pairs::Pair...) => AbstractDimArray
+mergedims(A::AbstractDimStack, dim_pairs::Pair...) => AbstractDimStack

Return a new array or stack whose dimensions are the result of mergedims(dims(A), dim_pairs).

source


# DimensionalData.unmergedimsFunction.
julia
unmergedims(merged_dims::Tuple{Vararg{Dimension}}) => Tuple{Vararg{Dimension}}

Return the unmerged dimensions from a tuple of merged dimensions. However, the order of the original dimensions are not necessarily preserved.

source

julia
unmergedims(A::AbstractDimArray, original_dims) => AbstractDimArray
+unmergedims(A::AbstractDimStack, original_dims) => AbstractDimStack

Return a new array or stack whose dimensions are restored to their original prior to calling mergedims(A, dim_pairs).

source


# DimensionalData.reorderFunction.
julia
reorder(A::Union{AbstractDimArray,AbstractDimStack}, order::Pair...)
 reorder(A::Union{AbstractDimArray,AbstractDimStack}, order)
 reorder(A::Dimension, order::Order)

Reorder every dims index/array to order, or reorder index for the the given dimension(s) in order.

order can be an Order, Dimension => Order pairs. A Tuple of Dimensions or any object that defines dims can be used in which case dimensions are

If no axis reversal is required the same objects will be returned, without allocation.

Example

jldoctest

 **Create a DimArray**
@@ -320,7 +317,7 @@
 true
 
 
-[source](https://github.com/rafaqz/DimensionalData.jl/blob/fa50f93ce32c000c962544242fd0a4b9d0cf9ece/src/utils.jl#L2-L27)
+[source](https://github.com/rafaqz/DimensionalData.jl/blob/cd43d14c21d48af4b605b43bffce088f272c3adc/src/utils.jl#L2-L27)
 
 </div>
 <br>
@@ -348,7 +345,7 @@
 
 julia> cat(1, [2], [3;;]; dims=Val(2))
 1×3 Matrix{Int64}:
- 1  2  3

source

julia
Base.cat(stacks::AbstractDimStack...; [keys=keys(stacks[1])], dims)

Concatenate all or a subset of layers for all passed in stacks.

Keywords

  • keys: Tuple of Symbol for the stack keys to concatenate.

  • dims: Dimension of child array to concatenate on.

Example

Concatenate the :sea_surface_temp and :humidity layers in the time dimension:

julia
cat(stacks...; keys=(:sea_surface_temp, :humidity), dims=Ti)

source


# Base.mapFunction.
julia
map(f, c...) -> collection

Transform collection c by applying f to each element. For multiple collection arguments, apply f elementwise, and stop when any of them is exhausted.

See also map!, foreach, mapreduce, mapslices, zip, Iterators.map.

Examples

julia
julia> map(x -> x * 2, [1, 2, 3])
+ 1  2  3

source

julia
Base.cat(stacks::AbstractDimStack...; [keys=keys(stacks[1])], dims)

Concatenate all or a subset of layers for all passed in stacks.

Keywords

  • keys: Tuple of Symbol for the stack keys to concatenate.

  • dims: Dimension of child array to concatenate on.

Example

Concatenate the :sea_surface_temp and :humidity layers in the time dimension:

julia
cat(stacks...; keys=(:sea_surface_temp, :humidity), dims=Ti)

source


# Base.mapFunction.
julia
map(f, c...) -> collection

Transform collection c by applying f to each element. For multiple collection arguments, apply f elementwise, and stop when any of them is exhausted.

See also map!, foreach, mapreduce, mapslices, zip, Iterators.map.

Examples

julia
julia> map(x -> x * 2, [1, 2, 3])
 3-element Vector{Int64}:
  2
  4
@@ -370,7 +367,7 @@
 3-element Vector{Float64}:
    2.0
   13.0
- 102.0

source

julia
Base.map(f, stacks::AbstractDimStack...)

Apply function f to each layer of the stacks.

If f returns DimArrays the result will be another DimStack. Other values will be returned in a NamedTuple.

source


# Base.copy!Function.
julia
copy!(dst, src) -> dst

In-place copy of src into dst, discarding any pre-existing elements in dst. If dst and src are of the same type, dst == src should hold after the call. If dst and src are multidimensional arrays, they must have equal axes.

Warning

Behavior can be unexpected when any mutated argument shares memory with any other argument.

See also copyto!.

::: compat Julia 1.1

This method requires at least Julia 1.1. In Julia 1.0 this method is available from the Future standard library as Future.copy!.

:::

source

julia
Base.copy!(dst::AbstractArray, src::AbstractGimStack, key::Key)

Copy the stack layer key to dst, which can be any AbstractArray.

Example

Copy the :humidity layer from stack to array.

julia
copy!(array, stack, :humidity)

source

julia
Base.copy!(dst::AbstractDimStack, src::AbstractDimStack, [keys=keys(dst)])

Copy all or a subset of layers from one stack to another.

Example

Copy just the :sea_surface_temp and :humidity layers from src to dst.

julia
copy!(dst::AbstractDimStack, src::AbstractDimStack, keys=(:sea_surface_temp, :humidity))

source


# Base.eachsliceFunction.
julia
eachslice(A::AbstractArray; dims, drop=true)

Create a Slices object that is an array of slices over dimensions dims of A, returning views that select all the data from the other dimensions in A. dims can either by an integer or a tuple of integers.

If drop = true (the default), the outer Slices will drop the inner dimensions, and the ordering of the dimensions will match those in dims. If drop = false, then the Slices will have the same dimensionality as the underlying array, with inner dimensions having size 1.

See stack(slices; dims) for the inverse of eachslice(A; dims::Integer).

See also eachrow, eachcol, mapslices and selectdim.

::: compat Julia 1.1

This function requires at least Julia 1.1.

:::

::: compat Julia 1.9

Prior to Julia 1.9, this returned an iterator, and only a single dimension dims was supported.

:::

Example

julia
julia> m = [1 2 3; 4 5 6; 7 8 9]
+ 102.0

source

julia
Base.map(f, stacks::AbstractDimStack...)

Apply function f to each layer of the stacks.

If f returns DimArrays the result will be another DimStack. Other values will be returned in a NamedTuple.

source


# Base.copy!Function.
julia
copy!(dst, src) -> dst

In-place copy of src into dst, discarding any pre-existing elements in dst. If dst and src are of the same type, dst == src should hold after the call. If dst and src are multidimensional arrays, they must have equal axes.

Warning

Behavior can be unexpected when any mutated argument shares memory with any other argument.

See also copyto!.

::: compat Julia 1.1

This method requires at least Julia 1.1. In Julia 1.0 this method is available from the Future standard library as Future.copy!.

:::

source

julia
Base.copy!(dst::AbstractArray, src::AbstractGimStack, key::Key)

Copy the stack layer key to dst, which can be any AbstractArray.

Example

Copy the :humidity layer from stack to array.

julia
copy!(array, stack, :humidity)

source

julia
Base.copy!(dst::AbstractDimStack, src::AbstractDimStack, [keys=keys(dst)])

Copy all or a subset of layers from one stack to another.

Example

Copy just the :sea_surface_temp and :humidity layers from src to dst.

julia
copy!(dst::AbstractDimStack, src::AbstractDimStack, keys=(:sea_surface_temp, :humidity))

source


# Base.eachsliceFunction.
julia
eachslice(A::AbstractArray; dims, drop=true)

Create a Slices object that is an array of slices over dimensions dims of A, returning views that select all the data from the other dimensions in A. dims can either by an integer or a tuple of integers.

If drop = true (the default), the outer Slices will drop the inner dimensions, and the ordering of the dimensions will match those in dims. If drop = false, then the Slices will have the same dimensionality as the underlying array, with inner dimensions having size 1.

See stack(slices; dims) for the inverse of eachslice(A; dims::Integer).

See also eachrow, eachcol, mapslices and selectdim.

::: compat Julia 1.1

This function requires at least Julia 1.1.

:::

::: compat Julia 1.9

Prior to Julia 1.9, this returned an iterator, and only a single dimension dims was supported.

:::

Example

julia
julia> m = [1 2 3; 4 5 6; 7 8 9]
 3×3 Matrix{Int64}:
  1  2  3
  4  5  6
@@ -412,15 +409,15 @@
   Ti
 and 2 layers:
   :x Float64 dims: Y (3)
-  :y Float64 dims: Y, Ti (3×5)

source


Most base methods work as expected, using Dimension wherever a dims keyword is used. They are not allspecifically documented here.

Name

# DimensionalData.AbstractNameType.
julia
AbstractName

Abstract supertype for name wrappers.

source


# DimensionalData.NameType.
julia
Name <: AbstractName
+  :y Float64 dims: Y, Ti (3×5)

source


Most base methods work as expected, using Dimension wherever a dims keyword is used. They are not allspecifically documented here.

Name

# DimensionalData.AbstractNameType.
julia
AbstractName

Abstract supertype for name wrappers.

source


# DimensionalData.NameType.
julia
Name <: AbstractName
 
 Name(name::Union{Symbol,Name) => Name
-Name(name::NoName) => NoName

Name wrapper. This lets arrays keep symbol names when the array wrapper neeeds to be `isbits, like for use on GPUs. It makes the name a property of the type. It's not necessary to use in normal use, a symbol is probably easier.

source


# DimensionalData.NoNameType.
julia
NoName <: AbstractName
+Name(name::NoName) => NoName

Name wrapper. This lets arrays keep symbol names when the array wrapper neeeds to be `isbits, like for use on GPUs. It makes the name a property of the type. It's not necessary to use in normal use, a symbol is probably easier.

source


# DimensionalData.NoNameType.
julia
NoName <: AbstractName
 
-NoName()

NoName specifies an array is not named, and is the default name value for all AbstractDimArrays.

source


Internal interface methods

# DimensionalData.rebuild_from_arraysFunction.
julia
rebuild_from_arrays(s::AbstractDimStack, das::NamedTuple{<:Any,<:Tuple{Vararg{AbstractDimArray}}}; kw...)

Rebuild an AbstractDimStack from a Tuple or NamedTuple of AbstractDimArray and an existing stack.

Keywords

Keywords are simply the fields of the stack object:

  • data

  • dims

  • refdims

  • metadata

  • layerdims

  • layermetadata

source


# DimensionalData.show_mainFunction.
julia
show_main(io::IO, mime, A::AbstractDimArray; maxlen, kw...)
-show_main(io::IO, mime, A::AbstractDimStack; maxlen, kw...)

Interface methods for adding the main part of show

At the least, you likely want to call:

'''julia print_top(io, mime, A) '''

But read the DimensionalData.jl show.jl code for details.

source


# DimensionalData.show_afterFunction.
julia
show_after(io::IO, mime, A::AbstractDimArray; maxlen, kw...)
-show_after(io::IO, mime, A::AbstractDimStack; maxlen, kw...)

Interface methods for adding addional show text for AbstractDimArray/AbstractDimStack subtypes.

Always include kw to avoid future breaking changes

Additional keywords may be added at any time.

Note - a anssi box is left unclosed. This method needs to close it, or add more. maxlen is the maximum length of the inner text.

Most likely you always want to at least close the show blocks with:

'''julia print_block_close(io, maxlen) '''

But read the DimensionalData.jl show.jl code for details.

source


- +NoName()

NoName specifies an array is not named, and is the default name value for all AbstractDimArrays.

source


Internal interface methods

# DimensionalData.rebuild_from_arraysFunction.
julia
rebuild_from_arrays(s::AbstractDimStack, das::NamedTuple{<:Any,<:Tuple{Vararg{AbstractDimArray}}}; kw...)

Rebuild an AbstractDimStack from a Tuple or NamedTuple of AbstractDimArray and an existing stack.

Keywords

Keywords are simply the fields of the stack object:

  • data

  • dims

  • refdims

  • metadata

  • layerdims

  • layermetadata

source


# DimensionalData.show_mainFunction.
julia
show_main(io::IO, mime, A::AbstractDimArray; maxlen, kw...)
+show_main(io::IO, mime, A::AbstractDimStack; maxlen, kw...)

Interface methods for adding the main part of show

At the least, you likely want to call:

'''julia print_top(io, mime, A) '''

But read the DimensionalData.jl show.jl code for details.

source


# DimensionalData.show_afterFunction.
julia
show_after(io::IO, mime, A::AbstractDimArray; maxlen, kw...)
+show_after(io::IO, mime, A::AbstractDimStack; maxlen, kw...)

Interface methods for adding addional show text for AbstractDimArray/AbstractDimStack subtypes.

Always include kw to avoid future breaking changes

Additional keywords may be added at any time.

Note - a anssi box is left unclosed. This method needs to close it, or add more. maxlen is the maximum length of the inner text.

Most likely you always want to at least close the show blocks with:

'''julia print_block_close(io, maxlen) '''

But read the DimensionalData.jl show.jl code for details.

source


+ \ No newline at end of file diff --git a/previews/PR615/assets/api_dimensions.md.IA-RwmZA.js b/previews/PR615/assets/api_dimensions.md.fXHWWrqM.js similarity index 97% rename from previews/PR615/assets/api_dimensions.md.IA-RwmZA.js rename to previews/PR615/assets/api_dimensions.md.fXHWWrqM.js index 9beda6dcb..a074e0145 100644 --- a/previews/PR615/assets/api_dimensions.md.IA-RwmZA.js +++ b/previews/PR615/assets/api_dimensions.md.fXHWWrqM.js @@ -1,5 +1,5 @@ import{_ as s,c as i,o as a,V as n}from"./chunks/framework.uHRfREZ8.js";const c=JSON.parse('{"title":"Dimensions","description":"","frontmatter":{},"headers":[],"relativePath":"api/dimensions.md","filePath":"api/dimensions.md","lastUpdated":null}'),e={name:"api/dimensions.md"},t=n(`

Dimensions

Dimensions are kept in the sub-module Dimensions.

# DimensionalData.DimensionsModule.

Dimensions

Sub-module for Dimensions wrappers, and operations on them used in DimensionalData.jl.

To load Dimensions types and methods into scope:

julia
using DimensionalData
-using DimensionalData.Dimensions

source


Dimensions have a type-heirarchy that organises plotting and dimension matching.

# DimensionalData.Dimensions.DimensionType.
julia
Dimension

Abstract supertype of all dimension types.

Example concrete implementations are X, Y, Z, Ti (Time), and the custom [Dim]@ref) dimension.

Dimensions label the axes of an AbstractDimArray, or other dimensional objects, and are used to index into the array.

They may also provide an alternate index to lookup for each array axis. This may be any AbstractVector matching the array axis length, or a Val holding a tuple for compile-time index lookups.

Dimensions also have lookup and metadata fields.

lookup gives more details about the dimension, such as that it is Categorical or Sampled as Points or Intervals along some transect. DimensionalData will attempt to guess the lookup from the passed-in index value.

Example:

julia
using DimensionalData, Dates
+using DimensionalData.Dimensions

source


Dimensions have a type-heirarchy that organises plotting and dimension matching.

# DimensionalData.Dimensions.DimensionType.
julia
Dimension

Abstract supertype of all dimension types.

Example concrete implementations are X, Y, Z, Ti (Time), and the custom [Dim]@ref) dimension.

Dimensions label the axes of an AbstractDimArray, or other dimensional objects, and are used to index into the array.

They may also provide an alternate index to lookup for each array axis. This may be any AbstractVector matching the array axis length, or a Val holding a tuple for compile-time index lookups.

Dimensions also have lookup and metadata fields.

lookup gives more details about the dimension, such as that it is Categorical or Sampled as Points or Intervals along some transect. DimensionalData will attempt to guess the lookup from the passed-in index value.

Example:

julia
using DimensionalData, Dates
 
 x = X(2:2:10)
 y = Y(['a', 'b', 'c'])
@@ -44,35 +44,35 @@ import{_ as s,c as i,o as a,V as n}from"./chunks/framework.uHRfREZ8.js";const c=
 and reference dimensions:
   Y Categorical{Char} Char['b'] ForwardOrdered
      2021-01-01T00:00:002021-12-01T00:00:00
- 4  0.0                                  0.0

Dimension objects may have lookup and metadata fields to track additional information about the data and the index, and their relationship.

source


# DimensionalData.Dimensions.DependentDimType.
julia
DependentDim <: Dimension

Abstract supertype for Dependent dimensions. These will plot on the Y axis.

source


# DimensionalData.Dimensions.IndependentDimType.
julia
IndependentDim <: Dimension

Abstract supertype for independent dimensions. Thise will plot on the X axis.

source


# DimensionalData.Dimensions.XDimType.
julia
XDim <: IndependentDim

Abstract supertype for all X dimensions.

source


# DimensionalData.Dimensions.YDimType.
julia
YDim <: DependentDim

Abstract supertype for all Y dimensions.

source


# DimensionalData.Dimensions.ZDimType.
julia
ZDim <: DependentDim

Abstract supertype for all Z dimensions.

source


# DimensionalData.Dimensions.TimeDimType.
julia
TimeDim <: IndependentDim

Abstract supertype for all time dimensions.

In a TimeDime with Interval sampling the locus will automatically be set to Start(). Dates and times generally refer to the start of a month, hour, second etc., not the central point as is more common with spatial data. \`

source


# DimensionalData.Dimensions.XType.
julia
X <: XDim
+ 4  0.0                                  0.0

Dimension objects may have lookup and metadata fields to track additional information about the data and the index, and their relationship.

source


# DimensionalData.Dimensions.DependentDimType.
julia
DependentDim <: Dimension

Abstract supertype for Dependent dimensions. These will plot on the Y axis.

source


# DimensionalData.Dimensions.IndependentDimType.
julia
IndependentDim <: Dimension

Abstract supertype for independent dimensions. Thise will plot on the X axis.

source


# DimensionalData.Dimensions.XDimType.
julia
XDim <: IndependentDim

Abstract supertype for all X dimensions.

source


# DimensionalData.Dimensions.YDimType.
julia
YDim <: DependentDim

Abstract supertype for all Y dimensions.

source


# DimensionalData.Dimensions.ZDimType.
julia
ZDim <: DependentDim

Abstract supertype for all Z dimensions.

source


# DimensionalData.Dimensions.TimeDimType.
julia
TimeDim <: IndependentDim

Abstract supertype for all time dimensions.

In a TimeDime with Interval sampling the locus will automatically be set to Start(). Dates and times generally refer to the start of a month, hour, second etc., not the central point as is more common with spatial data. \`

source


# DimensionalData.Dimensions.XType.
julia
X <: XDim
 
 X(val=:)

X Dimension. X <: XDim <: IndependentDim

Example:

julia
xdim = X(2:2:10)
 # Or
 val = A[X(1)]
 # Or
-mean(A; dims=X)

source


# DimensionalData.Dimensions.YType.
julia
Y <: YDim
+mean(A; dims=X)

source


# DimensionalData.Dimensions.YType.
julia
Y <: YDim
 
 Y(val=:)

Y Dimension. Y <: YDim <: DependentDim

Example:

julia
ydim = Y(['a', 'b', 'c'])
 # Or
 val = A[Y(1)]
 # Or
-mean(A; dims=Y)

source


# DimensionalData.Dimensions.ZType.
julia
Z <: ZDim
+mean(A; dims=Y)

source


# DimensionalData.Dimensions.ZType.
julia
Z <: ZDim
 
 Z(val=:)

Z Dimension. Z <: ZDim <: Dimension

Example:

julia
zdim = Z(10:10:100)
 # Or
 val = A[Z(1)]
 # Or
-mean(A; dims=Z)

source


# DimensionalData.Dimensions.TiType.

m Ti <: TimeDim

Ti(val=:)

Time Dimension. Ti <: TimeDim <: IndependentDim

Time is already used by Dates, and T is a common type parameter, We use Ti to avoid clashes.

Example:

julia
timedim = Ti(DateTime(2021, 1):Month(1):DateTime(2021, 12))
+mean(A; dims=Z)

source


# DimensionalData.Dimensions.TiType.

m Ti <: TimeDim

Ti(val=:)

Time Dimension. Ti <: TimeDim <: IndependentDim

Time is already used by Dates, and T is a common type parameter, We use Ti to avoid clashes.

Example:

julia
timedim = Ti(DateTime(2021, 1):Month(1):DateTime(2021, 12))
 # Or
 val = A[Ti(1)]
 # Or
-mean(A; dims=Ti)

source


# DimensionalData.Dimensions.DimType.
julia
Dim{S}(val=:)

A generic dimension. For use when custom dims are required when loading data from a file. Can be used as keyword arguments for indexing.

Dimension types take precedence over same named Dim types when indexing with symbols, or e.g. creating Tables.jl keys.

julia
using DimensionalData
+mean(A; dims=Ti)

source


# DimensionalData.Dimensions.DimType.
julia
Dim{S}(val=:)

A generic dimension. For use when custom dims are required when loading data from a file. Can be used as keyword arguments for indexing.

Dimension types take precedence over same named Dim types when indexing with symbols, or e.g. creating Tables.jl keys.

julia
using DimensionalData
 
 dim = Dim{:custom}(['a', 'b', 'c'])
 
 # output
 
-Dim{:custom} Char['a', 'b', 'c']

source


# DimensionalData.Dimensions.CoordType.
julia
Coord <: Dimension

A coordinate dimension itself holds dimensions.

This allows combining point data with other dimensions, such as time.

Example

julia
julia> using DimensionalData
+Dim{:custom} Char['a', 'b', 'c']

source


# DimensionalData.Dimensions.CoordType.
julia
Coord <: Dimension

A coordinate dimension itself holds dimensions.

This allows combining point data with other dimensions, such as time.

Example

julia
julia> using DimensionalData
 
 julia> dim = Coord([(1.0,1.0,1.0), (1.0,2.0,2.0), (3.0,4.0,4.0), (1.0,3.0,4.0)], (X(), Y(), Z()))
 Coord ::
@@ -105,10 +105,10 @@ import{_ as s,c as i,o as a,V as n}from"./chunks/framework.uHRfREZ8.js";const c=
 2-element DimArray{Float64,1} with dimensions:
   Coord (): Tuple{Float64, Float64, Float64}[(3.0, 4.0, 4.0), (1.0, 3.0, 4.0)] MergedLookup
  0.3
- 0.4

source


# DimensionalData.Dimensions.AnonDimType.
julia
AnonDim <: Dimension
+ 0.4

source


# DimensionalData.Dimensions.AnonDimType.
julia
AnonDim <: Dimension
 
-AnonDim()

Anonymous dimension. Used when extra dimensions are created, such as during transpose of a vector.

source


Exported methods

These are widely useful methods for working with dimensions.

# DimensionalData.Dimensions.dimsFunction.
julia
dims(x, [dims::Tuple]) => Tuple{Vararg{Dimension}}
-dims(x, dim) => Dimension

Return a tuple of Dimensions for an object, in the order that matches the axes or columns of the underlying data.

dims can be Dimension, Dimension types, or Symbols for Dim{Symbol}.

The default is to return nothing.

source


# DimensionalData.Dimensions.dimnumFunction.
julia
dimnum(x, query::Tuple) => NTuple{Int}
+AnonDim()

Anonymous dimension. Used when extra dimensions are created, such as during transpose of a vector.

source


Exported methods

These are widely useful methods for working with dimensions.

# DimensionalData.Dimensions.dimsFunction.
julia
dims(x, [dims::Tuple]) => Tuple{Vararg{Dimension}}
+dims(x, dim) => Dimension

Return a tuple of Dimensions for an object, in the order that matches the axes or columns of the underlying data.

dims can be Dimension, Dimension types, or Symbols for Dim{Symbol}.

The default is to return nothing.

source


# DimensionalData.Dimensions.dimnumFunction.
julia
dimnum(x, query::Tuple) => NTuple{Int}
 dimnum(x, query) => Int

Get the number(s) of Dimension(s) as ordered in the dimensions of an object.

Arguments

The return type will be a Tuple of Int or a single Int, depending on wether query is a Tuple or single Dimension.

Example

julia
julia> using DimensionalData
 
 julia> A = DimArray(ones(10, 10, 10), (X, Y, Z));
@@ -117,7 +117,7 @@ import{_ as s,c as i,o as a,V as n}from"./chunks/framework.uHRfREZ8.js";const c=
 (3, 1, 2)
 
 julia> dimnum(A, Y)
-2

source


# DimensionalData.Dimensions.hasdimFunction.
julia
hasdim([f], x, query::Tuple) => NTUple{Bool}
+2

source


# DimensionalData.Dimensions.hasdimFunction.
julia
hasdim([f], x, query::Tuple) => NTUple{Bool}
 hasdim([f], x, query...) => NTUple{Bool}
 hasdim([f], x, query) => Bool

Check if an object x has dimensions that match or inherit from the query dimensions.

Arguments

Check if an object or tuple contains an Dimension, or a tuple of dimensions.

Example

julia
julia> using DimensionalData
 
@@ -130,7 +130,7 @@ import{_ as s,c as i,o as a,V as n}from"./chunks/framework.uHRfREZ8.js";const c=
 (true, true, true)
 
 julia> hasdim(A, Ti)
-false

source


# DimensionalData.Dimensions.otherdimsFunction.
julia
otherdims(x, query) => Tuple{Vararg{Dimension,N}}

Get the dimensions of an object not in query.

Arguments

A tuple holding the unmatched dimensions is always returned.

Example

julia
julia> using DimensionalData, DimensionalData.Dimensions
+false

source


# DimensionalData.Dimensions.otherdimsFunction.
julia
otherdims(x, query) => Tuple{Vararg{Dimension,N}}

Get the dimensions of an object not in query.

Arguments

A tuple holding the unmatched dimensions is always returned.

Example

julia
julia> using DimensionalData, DimensionalData.Dimensions
 
 julia> A = DimArray(ones(10, 10, 10), (X, Y, Z));
 
@@ -138,10 +138,10 @@ import{_ as s,c as i,o as a,V as n}from"./chunks/framework.uHRfREZ8.js";const c=
 Y, Z
 
 julia> otherdims(A, (Y, Z))
-X

source


Non-exported methods

# DimensionalData.Dimensions.labelFunction.
julia
label(x) => String
+X

source


Non-exported methods

# DimensionalData.Dimensions.labelFunction.
julia
label(x) => String
 label(x, dims::Tuple) => NTuple{N,String}
 label(x, dim) => String
-label(xs::Tuple) => NTuple{N,String}

Get a plot label for data or a dimension. This will include the name and units if they exist, and anything else that should be shown on a plot.

Second argument dims can be Dimensions, Dimension types, or Symbols for Dim{Symbol}.

source


# DimensionalData.Dimensions.formatFunction.
julia
format(dims, x) => Tuple{Vararg{Dimension,N}}

Format the passed-in dimension(s) dims to match the object x.

Errors are thrown if dims don't match the array dims or size, and any fields holding Auto- objects are filled with guessed objects.

If a LookupArray hasn't been specified, a lookup is chosen based on the type and element type of the index.

source


# DimensionalData.Dimensions.dims2indicesFunction.
julia
dims2indices(dim::Dimension, I) => NTuple{Union{Colon,AbstractArray,Int}}

Convert a Dimension or Selector I to indices of Int, AbstractArray or Colon.

source


# DimensionalData.Dimensions.LookupArrays.selectindicesFunction.
julia
selectindices(lookups, selectors)

Converts Selector to regular indices.

source


Primitive methods

These low-level methods are really for internal use, but can be useful for writing dimensional algorithms.

They are not guaranteed to keep their interface, but usually will.

# DimensionalData.Dimensions.commondimsFunction.
julia
commondims([f], x, query) => Tuple{Vararg{Dimension}}

This is basically dims(x, query) where the order of the original is kept, unlike dims where the query tuple determines the order

Also unlike dims,commondims always returns a Tuple, no matter the input. No errors are thrown if dims are absent from either x or query.

f is <: by default, but can be >: to sort abstract types by concrete types.

julia
julia> using DimensionalData, .Dimensions
+label(xs::Tuple) => NTuple{N,String}

Get a plot label for data or a dimension. This will include the name and units if they exist, and anything else that should be shown on a plot.

Second argument dims can be Dimensions, Dimension types, or Symbols for Dim{Symbol}.

source


# DimensionalData.Dimensions.formatFunction.
julia
format(dims, x) => Tuple{Vararg{Dimension,N}}

Format the passed-in dimension(s) dims to match the object x.

Errors are thrown if dims don't match the array dims or size, and any fields holding Auto- objects are filled with guessed objects.

If a LookupArray hasn't been specified, a lookup is chosen based on the type and element type of the index.

source


# DimensionalData.Dimensions.dims2indicesFunction.
julia
dims2indices(dim::Dimension, I) => NTuple{Union{Colon,AbstractArray,Int}}

Convert a Dimension or Selector I to indices of Int, AbstractArray or Colon.

source


# DimensionalData.Dimensions.LookupArrays.selectindicesFunction.
julia
selectindices(lookups, selectors)

Converts Selector to regular indices.

source


Primitive methods

These low-level methods are really for internal use, but can be useful for writing dimensional algorithms.

They are not guaranteed to keep their interface, but usually will.

# DimensionalData.Dimensions.commondimsFunction.
julia
commondims([f], x, query) => Tuple{Vararg{Dimension}}

This is basically dims(x, query) where the order of the original is kept, unlike dims where the query tuple determines the order

Also unlike dims,commondims always returns a Tuple, no matter the input. No errors are thrown if dims are absent from either x or query.

f is <: by default, but can be >: to sort abstract types by concrete types.

julia
julia> using DimensionalData, .Dimensions
 
 julia> A = DimArray(ones(10, 10, 10), (X, Y, Z));
 
@@ -152,11 +152,11 @@ import{_ as s,c as i,o as a,V as n}from"./chunks/framework.uHRfREZ8.js";const c=
 X, Z
 
 julia> commondims(A, Ti)
-()

source


# DimensionalData.Dimensions.dim2keyFunction.
julia
dim2key(dim::Dimension) => Symbol
+()

source


# DimensionalData.Dimensions.dim2keyFunction.
julia
dim2key(dim::Dimension) => Symbol
 dim2key(dims::Type{<:Dimension}) => Symbol
-dim2key(dims::Tuple) => Tuple{Symbol,Vararg}

Convert a dimension object to a simbol. X(), Y(), Ti() etc will be converted. to :X, :Y, :Ti, as with any other dims generated with the @dim macro.

All other Dim{S}() dimensions will generate Symbols S.

source


# DimensionalData.Dimensions.key2dimFunction.
julia
key2dim(s::Symbol) => Dimension
+dim2key(dims::Tuple) => Tuple{Symbol,Vararg}

Convert a dimension object to a simbol. X(), Y(), Ti() etc will be converted. to :X, :Y, :Ti, as with any other dims generated with the @dim macro.

All other Dim{S}() dimensions will generate Symbols S.

source


# DimensionalData.Dimensions.key2dimFunction.
julia
key2dim(s::Symbol) => Dimension
 key2dim(dims...) => Tuple{Dimension,Vararg}
-key2dim(dims::Tuple) => Tuple{Dimension,Vararg}

Convert a symbol to a dimension object. :X, :Y, :Ti etc will be converted. to X(), Y(), Ti(), as with any other dims generated with the @dim macro.

All other Symbols S will generate Dim{S}() dimensions.

source


# DimensionalData.Dimensions.reducedimsFunction.
julia
reducedims(x, dimstoreduce) => Tuple{Vararg{Dimension}}

Replace the specified dimensions with an index of length 1. This is usually to match a new array size where an axis has been reduced with a method like mean or reduce to a length of 1, but the number of dimensions has not changed.

LookupArray traits are also updated to correspond to the change in cell step, sampling type and order.

source


# DimensionalData.Dimensions.swapdimsFunction.
julia
swapdims(x::T, newdims) => T
+key2dim(dims::Tuple) => Tuple{Dimension,Vararg}

Convert a symbol to a dimension object. :X, :Y, :Ti etc will be converted. to X(), Y(), Ti(), as with any other dims generated with the @dim macro.

All other Symbols S will generate Dim{S}() dimensions.

source


# DimensionalData.Dimensions.reducedimsFunction.
julia
reducedims(x, dimstoreduce) => Tuple{Vararg{Dimension}}

Replace the specified dimensions with an index of length 1. This is usually to match a new array size where an axis has been reduced with a method like mean or reduce to a length of 1, but the number of dimensions has not changed.

LookupArray traits are also updated to correspond to the change in cell step, sampling type and order.

source


# DimensionalData.Dimensions.swapdimsFunction.
julia
swapdims(x::T, newdims) => T
 swapdims(dims::Tuple, newdims) => Tuple{Vararg{Dimension}}

Swap dimensions for the passed in dimensions, in the order passed.

Passing in the Dimension types rewraps the dimension index, keeping the index values and metadata, while constructed Dimension objectes replace the original dimension. nothing leaves the original dimension as-is.

Arguments

Example

julia
using DimensionalData
 A = ones(X(2), Y(4), Z(2))
 Dimensions.swapdims(A, (Dim{:a}, Dim{:b}, Dim{:c}))
@@ -166,19 +166,19 @@ import{_ as s,c as i,o as a,V as n}from"./chunks/framework.uHRfREZ8.js";const c=
 [:, :, 1]
  1.0  1.0  1.0  1.0
  1.0  1.0  1.0  1.0
-[and 1 more slices...]

source


# DimensionalData.Dimensions.slicedimsFunction.
julia
slicedims(x, I) => Tuple{Tuple,Tuple}
-slicedims(f, x, I) => Tuple{Tuple,Tuple}

Slice the dimensions to match the axis values of the new array.

All methods return a tuple conatining two tuples: the new dimensions, and the reference dimensions. The ref dimensions are no longer used in the new struct but are useful to give context to plots.

Called at the array level the returned tuple will also include the previous reference dims attached to the array.

Arguments

source


# DimensionalData.Dimensions.comparedimsFunction.
julia
comparedims(A::AbstractDimArray...; kw...)
+[and 1 more slices...]

source


# DimensionalData.Dimensions.slicedimsFunction.
julia
slicedims(x, I) => Tuple{Tuple,Tuple}
+slicedims(f, x, I) => Tuple{Tuple,Tuple}

Slice the dimensions to match the axis values of the new array.

All methods return a tuple conatining two tuples: the new dimensions, and the reference dimensions. The ref dimensions are no longer used in the new struct but are useful to give context to plots.

Called at the array level the returned tuple will also include the previous reference dims attached to the array.

Arguments

source


# DimensionalData.Dimensions.comparedimsFunction.
julia
comparedims(A::AbstractDimArray...; kw...)
 comparedims(A::Tuple...; kw...)
 comparedims(A::Dimension...; kw...)
-comparedims(::Type{Bool}, args...; kw...)

Check that dimensions or tuples of dimensions passed as each argument are the same, and return the first valid dimension. If AbstractDimArrays are passed as arguments their dimensions are compared.

Empty tuples and nothing dimension values are ignored, returning the Dimension value if it exists.

Passing Bool as the first argument means true/false will be returned, rather than throwing an error.

Keywords

These are all Bool flags:

source


# DimensionalData.Dimensions.combinedimsFunction.
julia
combinedims(xs; check=true)

Combine the dimensions of each object in xs, in the order they are found.

source


# DimensionalData.Dimensions.sortdimsFunction.
julia
sortdims([f], tosort, order) => Tuple

Sort dimensions tosort by order. Dimensions in order but missing from tosort are replaced with nothing.

tosort and order can be Tuples or Vectors or Dimension or dimension type. Abstract supertypes like TimeDim can be used in order.

f is <: by default, but can be >: to sort abstract types by concrete types.

source


# DimensionalData.Dimensions.LookupArrays.basetypeofFunction.
julia
basetypeof(x) => Type

Get the "base" type of an object - the minimum required to define the object without it's fields. By default this is the full UnionAll for the type. But custom basetypeof methods can be defined for types with free type parameters.

In DimensionalData this is primariliy used for comparing Dimensions, where Dim{:x} is different from Dim{:y}.

source


# DimensionalData.Dimensions.basedimsFunction.
julia
basedims(ds::Tuple)
-basedims(d::Union{Dimension,Symbol,Type})

Returns basetypeof(d)() or a Tuple of called on a Tuple.

See basetypeof

source


# DimensionalData.Dimensions.setdimsFunction.
julia
setdims(X, newdims) => AbstractArray
+comparedims(::Type{Bool}, args...; kw...)

Check that dimensions or tuples of dimensions passed as each argument are the same, and return the first valid dimension. If AbstractDimArrays are passed as arguments their dimensions are compared.

Empty tuples and nothing dimension values are ignored, returning the Dimension value if it exists.

Passing Bool as the first argument means true/false will be returned, rather than throwing an error.

Keywords

These are all Bool flags:

source


# DimensionalData.Dimensions.combinedimsFunction.
julia
combinedims(xs; check=true)

Combine the dimensions of each object in xs, in the order they are found.

source


# DimensionalData.Dimensions.sortdimsFunction.
julia
sortdims([f], tosort, order) => Tuple

Sort dimensions tosort by order. Dimensions in order but missing from tosort are replaced with nothing.

tosort and order can be Tuples or Vectors or Dimension or dimension type. Abstract supertypes like TimeDim can be used in order.

f is <: by default, but can be >: to sort abstract types by concrete types.

source


# DimensionalData.Dimensions.LookupArrays.basetypeofFunction.
julia
basetypeof(x) => Type

Get the "base" type of an object - the minimum required to define the object without it's fields. By default this is the full UnionAll for the type. But custom basetypeof methods can be defined for types with free type parameters.

In DimensionalData this is primariliy used for comparing Dimensions, where Dim{:x} is different from Dim{:y}.

source


# DimensionalData.Dimensions.basedimsFunction.
julia
basedims(ds::Tuple)
+basedims(d::Union{Dimension,Symbol,Type})

Returns basetypeof(d)() or a Tuple of called on a Tuple.

See basetypeof

source


# DimensionalData.Dimensions.setdimsFunction.
julia
setdims(X, newdims) => AbstractArray
 setdims(::Tuple, newdims) => Tuple{Vararg{Dimension,N}}

Replaces the first dim matching <: basetypeof(newdim) with newdim, and returns a new object or tuple with the dimension updated.

Arguments

Example

julia
using DimensionalData, DimensionalData.Dimensions, DimensionalData.LookupArrays
 A = ones(X(10), Y(10:10:100))
 B = setdims(A, Y(Categorical('a':'j'; order=ForwardOrdered())))
 lookup(B, Y)
 # output
 Categorical{Char} ForwardOrdered
-wrapping: 'a':1:'j'

source


# DimensionalData.Dimensions.dimsmatchFunction.
julia
dimsmatch([f], dim, query) => Bool
-dimsmatch([f], dims::Tuple, query::Tuple) => Bool

Compare 2 dimensions or Tuple of Dimension are of the same base type, or are at least rotations/transformations of the same type.

f is <: by default, but can be >: to match abstract types to concrete types.

source


# DimensionalData.Dimensions.dimstrideFunction.
julia
dimstride(x, dim) => Int

Get the stride of the dimension relative to the other dimensions.

This may or may not be equal to the stride of the related array, although it will be for Array.

Arguments

source


# DimensionalData.refdims_titleFunction.
julia
refdims_title(A::AbstractDimArray)
+wrapping: 'a':1:'j'

source


# DimensionalData.Dimensions.dimsmatchFunction.
julia
dimsmatch([f], dim, query) => Bool
+dimsmatch([f], dims::Tuple, query::Tuple) => Bool

Compare 2 dimensions or Tuple of Dimension are of the same base type, or are at least rotations/transformations of the same type.

f is <: by default, but can be >: to match abstract types to concrete types.

source


# DimensionalData.Dimensions.dimstrideFunction.
julia
dimstride(x, dim) => Int

Get the stride of the dimension relative to the other dimensions.

This may or may not be equal to the stride of the related array, although it will be for Array.

Arguments

source


# DimensionalData.refdims_titleFunction.
julia
refdims_title(A::AbstractDimArray)
 refdims_title(refdims::Tuple)
-refdims_title(refdim::Dimension)

Generate a title string based on reference dimension values.

source


`,85),l=[t];function h(p,k,d,r,o,E){return a(),i("div",null,l)}const y=s(e,[["render",h]]);export{c as __pageData,y as default}; +refdims_title(refdim::Dimension)

Generate a title string based on reference dimension values.

source


`,85),l=[t];function h(p,k,d,r,o,E){return a(),i("div",null,l)}const y=s(e,[["render",h]]);export{c as __pageData,y as default}; diff --git a/previews/PR615/assets/api_dimensions.md.IA-RwmZA.lean.js b/previews/PR615/assets/api_dimensions.md.fXHWWrqM.lean.js similarity index 100% rename from previews/PR615/assets/api_dimensions.md.IA-RwmZA.lean.js rename to previews/PR615/assets/api_dimensions.md.fXHWWrqM.lean.js diff --git a/previews/PR615/assets/api_lookuparrays.md.OlFlnEnJ.js b/previews/PR615/assets/api_lookuparrays.md.ZxU9xJQZ.js similarity index 96% rename from previews/PR615/assets/api_lookuparrays.md.OlFlnEnJ.js rename to previews/PR615/assets/api_lookuparrays.md.ZxU9xJQZ.js index db6273f6a..25bd98567 100644 --- a/previews/PR615/assets/api_lookuparrays.md.OlFlnEnJ.js +++ b/previews/PR615/assets/api_lookuparrays.md.ZxU9xJQZ.js @@ -1,5 +1,5 @@ import{_ as s,c as i,o as a,V as e}from"./chunks/framework.uHRfREZ8.js";const g=JSON.parse('{"title":"LookupArrays","description":"","frontmatter":{},"headers":[],"relativePath":"api/lookuparrays.md","filePath":"api/lookuparrays.md","lastUpdated":null}'),n={name:"api/lookuparrays.md"},t=e(`

LookupArrays

# DimensionalData.Dimensions.LookupArraysModule.
julia
LookupArrays

Module for LookupArrays and [Selector]s used in DimensionalData.jl

LookupArrays defines traits and AbstractArray wrappers that give specific behaviours for a lookup index when indexed with Selector.

For example, these allow tracking over array order so fast indexing works evne when the array is reversed.

To load LookupArrays types and methods into scope:

julia
using DimensionalData
-using DimensionalData.LookupArrays

source


# DimensionalData.Dimensions.LookupArrays.LookupArrayType.
julia
LookupArray

Types defining the behaviour of a lookup index, how it is plotted and how Selectors like Between work.

A LookupArray may be NoLookup indicating that the index is just the underlying array axis, Categorical for ordered or unordered categories, or a Sampled index for Points or Intervals.

source


# DimensionalData.Dimensions.LookupArrays.AlignedType.
julia
Aligned <: LookupArray

Abstract supertype for LookupArrays where the index is aligned with the array axes.

This is by far the most common supertype for LookupArray.

source


# DimensionalData.Dimensions.LookupArrays.AbstractSampledType.
julia
AbstractSampled <: Aligned

Abstract supertype for LookupArrays where the index is aligned with the array, and is independent of other dimensions. Sampled is provided by this package.

AbstractSampled must have order, span and sampling fields, or a rebuild method that accpts them as keyword arguments.

source


# DimensionalData.Dimensions.LookupArrays.SampledType.
julia
Sampled <: AbstractSampled
+using DimensionalData.LookupArrays

source


# DimensionalData.Dimensions.LookupArrays.LookupArrayType.
julia
LookupArray

Types defining the behaviour of a lookup index, how it is plotted and how Selectors like Between work.

A LookupArray may be NoLookup indicating that the index is just the underlying array axis, Categorical for ordered or unordered categories, or a Sampled index for Points or Intervals.

source


# DimensionalData.Dimensions.LookupArrays.AlignedType.
julia
Aligned <: LookupArray

Abstract supertype for LookupArrays where the index is aligned with the array axes.

This is by far the most common supertype for LookupArray.

source


# DimensionalData.Dimensions.LookupArrays.AbstractSampledType.
julia
AbstractSampled <: Aligned

Abstract supertype for LookupArrays where the index is aligned with the array, and is independent of other dimensions. Sampled is provided by this package.

AbstractSampled must have order, span and sampling fields, or a rebuild method that accpts them as keyword arguments.

source


# DimensionalData.Dimensions.LookupArrays.SampledType.
julia
Sampled <: AbstractSampled
 
 Sampled(data::AbstractVector, order::Order, span::Span, sampling::Sampling, metadata)
 Sampled(data=AutoIndex(); order=AutoOrder(), span=AutoSpan(), sampling=Points(), metadata=NoMetadata())

A concrete implementation of the LookupArray AbstractSampled. It can be used to represent Points or Intervals.

Sampled is capable of representing gridded data from a wide range of sources, allowing correct bounds and Selectors for points or intervals of regular, irregular, forward and reverse indexes.

On AbstractDimArray construction, Sampled lookup is assigned for all lookups of AbstractRange not assigned to Categorical.

Arguments

Example

Create an array with [Interval] sampling, and Regular span for a vector with known spacing.

We set the Locus of the Intervals to Start specifying that the index values are for the positions at the start of each interval.

julia
using DimensionalData, DimensionalData.LookupArrays
@@ -17,9 +17,9 @@ import{_ as s,c as i,o as a,V as e}from"./chunks/framework.uHRfREZ8.js";const g=
   80  1.0  1.0  1.0   1.0
   60  1.0  1.0  1.0   1.0
   40  1.0  1.0  1.0   1.0
-  20  1.0  1.0  1.0   1.0

source


# DimensionalData.Dimensions.LookupArrays.AbstractCyclicType.
julia
AbstractCyclic <: AbstractSampled end

An abstract supertype for cyclic lookups.

These are AbstractSampled lookups that are cyclic for Selectors.

source


# DimensionalData.Dimensions.LookupArrays.CyclicType.
julia
Cyclic <: AbstractCyclic
+  20  1.0  1.0  1.0   1.0

source


# DimensionalData.Dimensions.LookupArrays.AbstractCyclicType.
julia
AbstractCyclic <: AbstractSampled end

An abstract supertype for cyclic lookups.

These are AbstractSampled lookups that are cyclic for Selectors.

source


# DimensionalData.Dimensions.LookupArrays.CyclicType.
julia
Cyclic <: AbstractCyclic
 
-Cyclic(data; order=AutoOrder(), span=AutoSpan(), sampling=Points(), metadata=NoMetadata(), cycle)

A Cyclic lookup is similar to Sampled but out of range Selectors At, Near, Contains will cycle the values to typemin or typemax over the length of cycle. Where and .. work as for Sampled.

This is useful when we are using mean annual datasets over a real time-span, or for wrapping longitudes so that -360 and 360 are the same.

Arguments

Notes

  1. If you use dates and e.g. cycle over a Year, every year will have the number and spacing of Weeks and Days as the cycle year. Using At may not be reliable in terms of exact dates, as it will be applied to the specified date plus or minus n years.

  2. Indexing into a Cycled with any AbstractArray or AbstractRange will return a Sampled as the full cycle is likely no longer available.

  3. .. or Between selectors do not work in a cycled way: they work as for Sampled. This may change in future to return cycled values, but there are problems with this, such as leap years breaking correct date cycling of a single year. If you actually need this behaviour, please make a GitHub issue.

source


# DimensionalData.Dimensions.LookupArrays.AbstractCategoricalType.
julia
AbstractCategorical <: Aligned

LookupArrays where the values are categories.

Categorical is the provided concrete implementation. but this can easily be extended - all methods are defined for AbstractCategorical.

All AbstractCategorical must provide a rebuild method with data, order and metadata keyword arguments.

source


# DimensionalData.Dimensions.LookupArrays.CategoricalType.
julia
Categorical <: AbstractCategorical
+Cyclic(data; order=AutoOrder(), span=AutoSpan(), sampling=Points(), metadata=NoMetadata(), cycle)

A Cyclic lookup is similar to Sampled but out of range Selectors At, Near, Contains will cycle the values to typemin or typemax over the length of cycle. Where and .. work as for Sampled.

This is useful when we are using mean annual datasets over a real time-span, or for wrapping longitudes so that -360 and 360 are the same.

Arguments

Notes

  1. If you use dates and e.g. cycle over a Year, every year will have the number and spacing of Weeks and Days as the cycle year. Using At may not be reliable in terms of exact dates, as it will be applied to the specified date plus or minus n years.

  2. Indexing into a Cycled with any AbstractArray or AbstractRange will return a Sampled as the full cycle is likely no longer available.

  3. .. or Between selectors do not work in a cycled way: they work as for Sampled. This may change in future to return cycled values, but there are problems with this, such as leap years breaking correct date cycling of a single year. If you actually need this behaviour, please make a GitHub issue.

source


# DimensionalData.Dimensions.LookupArrays.AbstractCategoricalType.
julia
AbstractCategorical <: Aligned

LookupArrays where the values are categories.

Categorical is the provided concrete implementation. but this can easily be extended - all methods are defined for AbstractCategorical.

All AbstractCategorical must provide a rebuild method with data, order and metadata keyword arguments.

source


# DimensionalData.Dimensions.LookupArrays.CategoricalType.
julia
Categorical <: AbstractCategorical
 
 Categorical(o::Order)
 Categorical(; order=Unordered())

An LookupArray where the values are categories.

This will be automatically assigned if the index contains AbstractString, Symbol or Char. Otherwise it can be assigned manually.

Order will be determined automatically where possible.

Arguments

Example

Create an array with [Interval] sampling.

julia
using DimensionalData
@@ -31,7 +31,7 @@ import{_ as s,c as i,o as a,V as e}from"./chunks/framework.uHRfREZ8.js";const g=
 # output
 
 Categorical{String} String["one", "two", "three"] Unordered,
-Categorical{Symbol} Symbol[:a, :b, :c, :d] ForwardOrdered

source


# DimensionalData.Dimensions.LookupArrays.UnalignedType.
julia
Unaligned <: LookupArray

Abstract supertype for LookupArray where the index is not aligned to the grid.

Indexing an Unaligned with Selectors must provide all other Unaligned dimensions.

source


# DimensionalData.Dimensions.LookupArrays.TransformedType.
julia
Transformed <: Unaligned
+Categorical{Symbol} Symbol[:a, :b, :c, :d] ForwardOrdered

source


# DimensionalData.Dimensions.LookupArrays.UnalignedType.
julia
Unaligned <: LookupArray

Abstract supertype for LookupArray where the index is not aligned to the grid.

Indexing an Unaligned with Selectors must provide all other Unaligned dimensions.

source


# DimensionalData.Dimensions.LookupArrays.TransformedType.
julia
Transformed <: Unaligned
 
 Transformed(f, dim::Dimension; metadata=NoMetadata())

LookupArray that uses an affine transformation to convert dimensions from dims(lookup) to dims(array). This can be useful when the dimensions are e.g. rotated from a more commonly used axis.

Any function can be used to do the transformation, but transformations from CoordinateTransformations.jl may be useful.

Arguments

Keyword Arguments

Example

julia
using DimensionalData, DimensionalData.LookupArrays, CoordinateTransformations
 
@@ -44,9 +44,9 @@ import{_ as s,c as i,o as a,V as e}from"./chunks/framework.uHRfREZ8.js";const g=
 da[X(At(6)), Y(At(2))]
 
 # output
-9

source


# DimensionalData.Dimensions.MergedLookupType.
julia
MergedLookup <: LookupArray
+9

source


# DimensionalData.Dimensions.MergedLookupType.
julia
MergedLookup <: LookupArray
 
-MergedLookup(data, dims; [metadata])

A LookupArray that holds multiple combined dimensions.

MergedLookup can be indexed with Selectors like At, Between, and Where although Near has undefined meaning.

Arguments

Keywords

source


# DimensionalData.Dimensions.LookupArrays.NoLookupType.
julia
NoLookup <: LookupArray
+MergedLookup(data, dims; [metadata])

A LookupArray that holds multiple combined dimensions.

MergedLookup can be indexed with Selectors like At, Between, and Where although Near has undefined meaning.

Arguments

Keywords

source


# DimensionalData.Dimensions.LookupArrays.NoLookupType.
julia
NoLookup <: LookupArray
 
 NoLookup()

A LookupArray that is identical to the array axis. Selectors can't be used on this lookup.

Example

Defining a DimArray without passing an index to the dimensions, it will be assigned NoLookup:

julia
using DimensionalData
 
@@ -61,30 +61,30 @@ import{_ as s,c as i,o as a,V as e}from"./chunks/framework.uHRfREZ8.js";const g=
 
 # output
 
-NoLookup, NoLookup

source


# DimensionalData.Dimensions.LookupArrays.AutoLookupType.
julia
AutoLookup <: LookupArray
+NoLookup, NoLookup

source


# DimensionalData.Dimensions.LookupArrays.AutoLookupType.
julia
AutoLookup <: LookupArray
 
 AutoLookup()
-AutoLookup(index=AutoIndex(); kw...)

Automatic LookupArray, the default lookup. It will be converted automatically to another LookupArray when it is possible to detect it from the index.

Keywords will be used in the detected LookupArray constructor.

source


# DimensionalData.Dimensions.LookupArrays.AutoIndexType.
julia
AutoIndex

Detect a LookupArray index from the context. This is used in NoLookup to simply use the array axis as the index when the array is constructed, and in set to change the LookupArray type without changing the index values.

source


The generic value getter val

# DimensionalData.Dimensions.LookupArrays.valFunction.
julia
val(x)
-val(dims::Tuple) => Tuple

Return the contained value of a wrapper object.

dims can be Dimension, Dimension types, or Symbols for Dim{Symbol}.

Objects that don't define a val method are returned unaltered.

source


Lookup methods:

# DimensionalData.Dimensions.LookupArrays.boundsFunction.
julia
bounds(xs, [dims::Tuple]) => Tuple{Vararg{Tuple{T,T}}}
+AutoLookup(index=AutoIndex(); kw...)

Automatic LookupArray, the default lookup. It will be converted automatically to another LookupArray when it is possible to detect it from the index.

Keywords will be used in the detected LookupArray constructor.

source


# DimensionalData.Dimensions.LookupArrays.AutoIndexType.
julia
AutoIndex

Detect a LookupArray index from the context. This is used in NoLookup to simply use the array axis as the index when the array is constructed, and in set to change the LookupArray type without changing the index values.

source


The generic value getter val

# DimensionalData.Dimensions.LookupArrays.valFunction.
julia
val(x)
+val(dims::Tuple) => Tuple

Return the contained value of a wrapper object.

dims can be Dimension, Dimension types, or Symbols for Dim{Symbol}.

Objects that don't define a val method are returned unaltered.

source


Lookup methods:

# DimensionalData.Dimensions.LookupArrays.boundsFunction.
julia
bounds(xs, [dims::Tuple]) => Tuple{Vararg{Tuple{T,T}}}
 bounds(xs::Tuple) => Tuple{Vararg{Tuple{T,T}}}
 bounds(x, dim) => Tuple{T,T}
-bounds(dim::Union{Dimension,LookupArray}) => Tuple{T,T}

Return the bounds of all dimensions of an object, of a specific dimension, or of a tuple of dimensions.

If bounds are not known, one or both values may be nothing.

dims can be a Dimension, a dimension type, or a tuple of either.

source


# DimensionalData.Dimensions.LookupArrays.hasselectionFunction.
julia
hasselection(x, selector) => Bool
-hasselection(x, selectors::Tuple) => Bool

Check if indexing into x with selectors can be performed, where x is some object with a dims method, and selectors is a Selector or Dimension or a tuple of either.

source


# DimensionalData.Dimensions.LookupArrays.indexFunction.
julia
index(x) => Tuple{Vararg{AbstractArray}}
+bounds(dim::Union{Dimension,LookupArray}) => Tuple{T,T}

Return the bounds of all dimensions of an object, of a specific dimension, or of a tuple of dimensions.

If bounds are not known, one or both values may be nothing.

dims can be a Dimension, a dimension type, or a tuple of either.

source


# DimensionalData.Dimensions.LookupArrays.hasselectionFunction.
julia
hasselection(x, selector) => Bool
+hasselection(x, selectors::Tuple) => Bool

Check if indexing into x with selectors can be performed, where x is some object with a dims method, and selectors is a Selector or Dimension or a tuple of either.

source


# DimensionalData.Dimensions.LookupArrays.indexFunction.
julia
index(x) => Tuple{Vararg{AbstractArray}}
 index(x, dims::Tuple) => Tuple{Vararg{AbstractArray}}
 index(dims::Tuple) => Tuple{Vararg{AbstractArray}}}
 index(x, dim) => AbstractArray
-index(dim::Dimension) => AbstractArray

Return the contained index of a Dimension.

Only valid when a Dimension contains an AbstractArray or a Val tuple like Val{(:a, :b)}(). The Val is unwrapped to return just the Tuple

dims can be a Dimension, or a tuple of Dimension.

source


# DimensionalData.Dimensions.LookupArrays.samplingFunction.
julia
sampling(x, [dims::Tuple]) => Tuple
+index(dim::Dimension) => AbstractArray

Return the contained index of a Dimension.

Only valid when a Dimension contains an AbstractArray or a Val tuple like Val{(:a, :b)}(). The Val is unwrapped to return just the Tuple

dims can be a Dimension, or a tuple of Dimension.

source


# DimensionalData.Dimensions.LookupArrays.samplingFunction.
julia
sampling(x, [dims::Tuple]) => Tuple
 sampling(x, dim) => Sampling
 sampling(xs::Tuple) => Tuple{Vararg{Sampling}}
-sampling(x:Union{Dimension,LookupArray}) => Sampling

Return the Sampling for each dimension.

Second argument dims can be Dimensions, Dimension types, or Symbols for Dim{Symbol}.

source


# DimensionalData.Dimensions.LookupArrays.spanFunction.
julia
span(x, [dims::Tuple]) => Tuple
+sampling(x:Union{Dimension,LookupArray}) => Sampling

Return the Sampling for each dimension.

Second argument dims can be Dimensions, Dimension types, or Symbols for Dim{Symbol}.

source


# DimensionalData.Dimensions.LookupArrays.spanFunction.
julia
span(x, [dims::Tuple]) => Tuple
 span(x, dim) => Span
 span(xs::Tuple) => Tuple{Vararg{Span,N}}
-span(x::Union{Dimension,LookupArray}) => Span

Return the Span for each dimension.

Second argument dims can be Dimensions, Dimension types, or Symbols for Dim{Symbol}.

source


# DimensionalData.Dimensions.LookupArrays.orderFunction.
julia
order(x, [dims::Tuple]) => Tuple
+span(x::Union{Dimension,LookupArray}) => Span

Return the Span for each dimension.

Second argument dims can be Dimensions, Dimension types, or Symbols for Dim{Symbol}.

source


# DimensionalData.Dimensions.LookupArrays.orderFunction.
julia
order(x, [dims::Tuple]) => Tuple
 order(xs::Tuple) => Tuple
-order(x::Union{Dimension,LookupArray}) => Order

Return the Ordering of the dimension index for each dimension: ForwardOrdered, ReverseOrdered, or Unordered

Second argument dims can be Dimensions, Dimension types, or Symbols for Dim{Symbol}.

source


# DimensionalData.Dimensions.LookupArrays.locusFunction.
julia
locus(x, [dims::Tuple]) => Tuple
+order(x::Union{Dimension,LookupArray}) => Order

Return the Ordering of the dimension index for each dimension: ForwardOrdered, ReverseOrdered, or Unordered

Second argument dims can be Dimensions, Dimension types, or Symbols for Dim{Symbol}.

source


# DimensionalData.Dimensions.LookupArrays.locusFunction.
julia
locus(x, [dims::Tuple]) => Tuple
 locus(x, dim) => Locus
 locus(xs::Tuple) => Tuple{Vararg{Locus,N}}
-locus(x::Union{Dimension,LookupArray}) => Locus

Return the Locus for each dimension.

Second argument dims can be Dimensions, Dimension types, or Symbols for Dim{Symbol}.

source


# DimensionalData.Dimensions.LookupArrays.shiftlocusFunction.
julia
shiftlocus(locus::Locus, x)

Shift the index of x from the current locus to the new locus.

We only shift Sampled, Regular or Explicit, Intervals.

source


Selectors

# DimensionalData.Dimensions.LookupArrays.SelectorType.
julia
Selector

Abstract supertype for all selectors.

Selectors are wrappers that indicate that passed values are not the array indices, but values to be selected from the dimension index, such as DateTime objects for a Ti dimension.

Selectors provided in DimensionalData are:

source


# DimensionalData.Dimensions.LookupArrays.IntSelectorType.
julia
IntSelector <: Selector

Abstract supertype for Selectors that return a single Int index.

IntSelectors provided by DimensionalData are:

source


# DimensionalData.Dimensions.LookupArrays.ArraySelectorType.
julia
ArraySelector <: Selector

Abstract supertype for Selectors that return an AbstractArray.

ArraySelectors provided by DimensionalData are:

source


# DimensionalData.Dimensions.LookupArrays.AtType.
julia
At <: IntSelector
+locus(x::Union{Dimension,LookupArray}) => Locus

Return the Locus for each dimension.

Second argument dims can be Dimensions, Dimension types, or Symbols for Dim{Symbol}.

source


# DimensionalData.Dimensions.LookupArrays.shiftlocusFunction.
julia
shiftlocus(locus::Locus, x)

Shift the index of x from the current locus to the new locus.

We only shift Sampled, Regular or Explicit, Intervals.

source


Selectors

# DimensionalData.Dimensions.LookupArrays.SelectorType.
julia
Selector

Abstract supertype for all selectors.

Selectors are wrappers that indicate that passed values are not the array indices, but values to be selected from the dimension index, such as DateTime objects for a Ti dimension.

Selectors provided in DimensionalData are:

source


# DimensionalData.Dimensions.LookupArrays.IntSelectorType.
julia
IntSelector <: Selector

Abstract supertype for Selectors that return a single Int index.

IntSelectors provided by DimensionalData are:

source


# DimensionalData.Dimensions.LookupArrays.ArraySelectorType.
julia
ArraySelector <: Selector

Abstract supertype for Selectors that return an AbstractArray.

ArraySelectors provided by DimensionalData are:

source


# DimensionalData.Dimensions.LookupArrays.AtType.
julia
At <: IntSelector
 
 At(x, atol, rtol)
 At(x; atol=nothing, rtol=nothing)

Selector that exactly matches the value on the passed-in dimensions, or throws an error. For ranges and arrays, every intermediate value must match an existing value - not just the end points.

x can be any value or Vector of values.

atol and rtol are passed to isapprox. For Number rtol will be set to Base.rtoldefault, otherwise nothing, and wont be used.

Example

julia
using DimensionalData
@@ -94,7 +94,7 @@ import{_ as s,c as i,o as a,V as e}from"./chunks/framework.uHRfREZ8.js";const g=
 
 # output
 
-5

source


# DimensionalData.Dimensions.LookupArrays.NearType.
julia
Near <: IntSelector
+5

source


# DimensionalData.Dimensions.LookupArrays.NearType.
julia
Near <: IntSelector
 
 Near(x)

Selector that selects the nearest index to x.

With Points this is simply the index values nearest to the x, however with Intervals it is the interval center nearest to x. This will be offset from the index value for Start and End loci.

Example

julia
using DimensionalData
 
@@ -102,7 +102,7 @@ import{_ as s,c as i,o as a,V as e}from"./chunks/framework.uHRfREZ8.js";const g=
 A[X(Near(23)), Y(Near(5.1))]
 
 # output
-4

source


# DimensionalData.Dimensions.LookupArrays.BetweenType.
julia
Between <: ArraySelector
+4

source


# DimensionalData.Dimensions.LookupArrays.BetweenType.
julia
Between <: ArraySelector
 
 Between(a, b)

Depreciated: use a..b instead of Between(a, b). Other Interval objects from IntervalSets.jl, like \`OpenInterval(a, b) will also work, giving the correct open/closed boundaries.

Between will e removed in furture to avoid clashes with DataFrames.Between.

Selector that retreive all indices located between 2 values, evaluated with >= for the lower value, and < for the upper value. This means the same value will not be counted twice in 2 adjacent Between selections.

For Intervals the whole interval must be lie between the values. For Points the points must fall between the values. Different Sampling types may give different results with the same input - this is the intended behaviour.

Between for Irregular intervals is a little complicated. The interval is the distance between a value and the next (for Start locus) or previous (for End locus) value.

For Center, we take the mid point between two index values as the start and end of each interval. This may or may not make sense for the values in your indes, so use Between with Irregular Intervals(Center()) with caution.

Example

julia
using DimensionalData
 
@@ -115,7 +115,7 @@ import{_ as s,c as i,o as a,V as e}from"./chunks/framework.uHRfREZ8.js";const g=
   X Sampled{Int64} 20:10:20 ForwardOrdered Regular Points,
   Y Sampled{Int64} 5:6 ForwardOrdered Regular Points
      5  6
- 20  4  5

source


# DimensionalData.Dimensions.LookupArrays.TouchesType.
julia
Touches <: ArraySelector
+ 20  4  5

source


# DimensionalData.Dimensions.LookupArrays.TouchesType.
julia
Touches <: ArraySelector
 
 Touches(a, b)

Selector that retreives all indices touching the closed interval 2 values, for the maximum possible area that could interact with the supplied range.

This can be better than .. when e.g. subsetting an area to rasterize, as you may wish to include pixels that just touch the area, rather than those that fall within it.

Touches is different to using closed intervals when the lookups also contain intervals - if any of the intervals touch, they are included. With .. they are discarded unless the whole cell interval falls inside the selector interval.

Example

julia
using DimensionalData
 
@@ -127,7 +127,7 @@ import{_ as s,c as i,o as a,V as e}from"./chunks/framework.uHRfREZ8.js";const g=
   X Sampled{Int64} 20:10:20 ForwardOrdered Regular Points,
   Y Sampled{Int64} 5:6 ForwardOrdered Regular Points
      5  6
- 20  4  5

source


# DimensionalData.Dimensions.LookupArrays.ContainsType.
julia
Contains <: IntSelector
+ 20  4  5

source


# DimensionalData.Dimensions.LookupArrays.ContainsType.
julia
Contains <: IntSelector
 
 Contains(x)

Selector that selects the interval the value is contained by. If the interval is not present in the index, an error will be thrown.

Can only be used for Intervals or Categorical. For Categorical it falls back to using At. Contains should not be confused with Base.contains - use Where(contains(x)) to check for if values are contain in categorical values like strings.

Example

julia
using DimensionalData; const DD = DimensionalData
 dims_ = X(10:10:20; sampling=DD.Intervals(DD.Center())),
@@ -136,7 +136,7 @@ import{_ as s,c as i,o as a,V as e}from"./chunks/framework.uHRfREZ8.js";const g=
 A[X(Contains(8)), Y(Contains(6.8))]
 
 # output
-3

source


# DimensionalData.Dimensions.LookupArrays.WhereType.
julia
Where <: ArraySelector
+3

source


# DimensionalData.Dimensions.LookupArrays.WhereType.
julia
Where <: ArraySelector
 
 Where(f::Function)

Selector that filters a dimension lookup by any function that accepts a single value and returns a Bool.

Example

julia
using DimensionalData
 
@@ -149,7 +149,7 @@ import{_ as s,c as i,o as a,V as e}from"./chunks/framework.uHRfREZ8.js";const g=
   X Sampled{Int64} Int64[20] ForwardOrdered Regular Points,
   Y Sampled{Int64} Int64[19, 21] ForwardOrdered Regular Points
      19  21
- 20   4   6

source


# DimensionalData.Dimensions.LookupArrays.AllType.
julia
All <: Selector
+ 20   4   6

source


# DimensionalData.Dimensions.LookupArrays.AllType.
julia
All <: Selector
 
 All(selectors::Selector...)

Selector that combines the results of other selectors. The indices used will be the union of all result sorted in ascending order.

Example

julia
using DimensionalData, Unitful
 
@@ -164,37 +164,37 @@ import{_ as s,c as i,o as a,V as e}from"./chunks/framework.uHRfREZ8.js";const g=
   Ti Sampled{Quantity{Int64, 𝐓, Unitful.FreeUnits{(s,), 𝐓, nothing}}} Quantity{Int64, 𝐓, Unitful.FreeUnits{(s,), 𝐓, nothing}}[1 s, 6 s, 91 s, 96 s] ForwardOrdered Regular Points
        1 s  6 s  91 s  96 s
  10.0    1    2    19    20
- 50.0    3    6    57    60

source


LookupArray traits

# DimensionalData.Dimensions.LookupArrays.LookupArrayTraitType.
julia
LookupArrayTrait

Abstract supertype of all traits of a LookupArray.

These modify the behaviour of the lookup index.

The term "Trait" is used loosely - these may be fields of an object of traits hard-coded to specific types.

source


Order

# DimensionalData.Dimensions.LookupArrays.OrderType.
julia
Order <: LookupArrayTrait

Traits for the order of a LookupArray. These determine how searchsorted finds values in the index, and how objects are plotted.

source


# DimensionalData.Dimensions.LookupArrays.OrderedType.
julia
Ordered <: Order

Supertype for the order of an ordered LookupArray, including ForwardOrdered and ReverseOrdered.

source


# DimensionalData.Dimensions.LookupArrays.ForwardOrderedType.
julia
ForwardOrdered <: Ordered
+ 50.0    3    6    57    60

source


LookupArray traits

# DimensionalData.Dimensions.LookupArrays.LookupArrayTraitType.
julia
LookupArrayTrait

Abstract supertype of all traits of a LookupArray.

These modify the behaviour of the lookup index.

The term "Trait" is used loosely - these may be fields of an object of traits hard-coded to specific types.

source


Order

# DimensionalData.Dimensions.LookupArrays.OrderType.
julia
Order <: LookupArrayTrait

Traits for the order of a LookupArray. These determine how searchsorted finds values in the index, and how objects are plotted.

source


# DimensionalData.Dimensions.LookupArrays.OrderedType.
julia
Ordered <: Order

Supertype for the order of an ordered LookupArray, including ForwardOrdered and ReverseOrdered.

source


# DimensionalData.Dimensions.LookupArrays.ForwardOrderedType.
julia
ForwardOrdered <: Ordered
 
-ForwardOrdered()

Indicates that the LookupArray index is in the normal forward order.

source


# DimensionalData.Dimensions.LookupArrays.ReverseOrderedType.
julia
ReverseOrdered <: Ordered
+ForwardOrdered()

Indicates that the LookupArray index is in the normal forward order.

source


# DimensionalData.Dimensions.LookupArrays.ReverseOrderedType.
julia
ReverseOrdered <: Ordered
 
-ReverseOrdered()

Indicates that the LookupArray index is in the reverse order.

source


# DimensionalData.Dimensions.LookupArrays.UnorderedType.
julia
Unordered <: Order
+ReverseOrdered()

Indicates that the LookupArray index is in the reverse order.

source


# DimensionalData.Dimensions.LookupArrays.UnorderedType.
julia
Unordered <: Order
 
-Unordered()

Indicates that LookupArray is unordered.

This means the index cannot be searched with searchsortedfirst or similar optimised methods - instead it will use findfirst.

source


# DimensionalData.Dimensions.LookupArrays.AutoOrderType.
julia
AutoOrder <: Order
+Unordered()

Indicates that LookupArray is unordered.

This means the index cannot be searched with searchsortedfirst or similar optimised methods - instead it will use findfirst.

source


# DimensionalData.Dimensions.LookupArrays.AutoOrderType.
julia
AutoOrder <: Order
 
-AutoOrder()

Specifies that the Order of a LookupArray will be found automatically where possible.

source


Span

# DimensionalData.Dimensions.LookupArrays.SpanType.
julia
Span <: LookupArrayTrait

Defines the type of span used in a Sampling index. These are Regular or Irregular.

source


# DimensionalData.Dimensions.LookupArrays.RegularType.
julia
Regular <: Span
+AutoOrder()

Specifies that the Order of a LookupArray will be found automatically where possible.

source


Span

# DimensionalData.Dimensions.LookupArrays.SpanType.
julia
Span <: LookupArrayTrait

Defines the type of span used in a Sampling index. These are Regular or Irregular.

source


# DimensionalData.Dimensions.LookupArrays.RegularType.
julia
Regular <: Span
 
-Regular(step=AutoStep())

Points or Intervals that have a fixed, regular step.

source


# DimensionalData.Dimensions.LookupArrays.IrregularType.
julia
Irregular <: Span
+Regular(step=AutoStep())

Points or Intervals that have a fixed, regular step.

source


# DimensionalData.Dimensions.LookupArrays.IrregularType.
julia
Irregular <: Span
 
 Irregular(bounds::Tuple)
-Irregular(lowerbound, upperbound)

Points or Intervals that have an Irrigular step size. To enable bounds tracking and accuract selectors, the starting bounds are provided as a 2 tuple, or 2 arguments. (nothing, nothing) is acceptable input, the bounds will be guessed from the index, but may be innaccurate.

source


# DimensionalData.Dimensions.LookupArrays.ExplicitType.
julia
Explicit(bounds::AbstractMatix)

Intervals where the span is explicitly listed for every interval.

This uses a matrix where with length 2 columns for each index value, holding the lower and upper bounds for that specific index.

source


# DimensionalData.Dimensions.LookupArrays.AutoSpanType.
julia
AutoSpan <: Span
+Irregular(lowerbound, upperbound)

Points or Intervals that have an Irrigular step size. To enable bounds tracking and accuract selectors, the starting bounds are provided as a 2 tuple, or 2 arguments. (nothing, nothing) is acceptable input, the bounds will be guessed from the index, but may be innaccurate.

source


# DimensionalData.Dimensions.LookupArrays.ExplicitType.
julia
Explicit(bounds::AbstractMatix)

Intervals where the span is explicitly listed for every interval.

This uses a matrix where with length 2 columns for each index value, holding the lower and upper bounds for that specific index.

source


# DimensionalData.Dimensions.LookupArrays.AutoSpanType.
julia
AutoSpan <: Span
 
-AutoSpan()

The span will be guessed and replaced in format or set.

source


Sampling

# DimensionalData.Dimensions.LookupArrays.SamplingType.
julia
Sampling <: LookupArrayTrait

Indicates the sampling method used by the index: Points or Intervals.

source


# DimensionalData.Dimensions.LookupArrays.PointsType.
julia
Points <: Sampling
+AutoSpan()

The span will be guessed and replaced in format or set.

source


Sampling

# DimensionalData.Dimensions.LookupArrays.SamplingType.
julia
Sampling <: LookupArrayTrait

Indicates the sampling method used by the index: Points or Intervals.

source


# DimensionalData.Dimensions.LookupArrays.PointsType.
julia
Points <: Sampling
 
-Points()

Sampling lookup where single samples at exact points.

These are always plotted at the center of array cells.

source


# DimensionalData.Dimensions.LookupArrays.IntervalsType.
julia
Intervals <: Sampling
+Points()

Sampling lookup where single samples at exact points.

These are always plotted at the center of array cells.

source


# DimensionalData.Dimensions.LookupArrays.IntervalsType.
julia
Intervals <: Sampling
 
-Intervals(locus::Locus)

Sampling specifying that sampled values are the mean (or similar) value over an interval, rather than at one specific point.

Intervals require a Locus of Start, Center or End to define the location in the interval that the index values refer to.

source


Loci

# DimensionalData.Dimensions.LookupArrays.LocusType.

Locus <: LookupArrayTrait

Abstract supertype of types that indicate the position of index values where they represent Intervals.

These allow for values array cells to align with the Start, Center, or End of values in the lookup index.

This means they can be plotted with correct axis markers, and allows automatic converrsions to between formats with different standards (such as NetCDF and GeoTiff).

source


# DimensionalData.Dimensions.LookupArrays.CenterType.
julia
Center <: Locus
+Intervals(locus::Locus)

Sampling specifying that sampled values are the mean (or similar) value over an interval, rather than at one specific point.

Intervals require a Locus of Start, Center or End to define the location in the interval that the index values refer to.

source


Loci

# DimensionalData.Dimensions.LookupArrays.LocusType.

Locus <: LookupArrayTrait

Abstract supertype of types that indicate the position of index values where they represent Intervals.

These allow for values array cells to align with the Start, Center, or End of values in the lookup index.

This means they can be plotted with correct axis markers, and allows automatic converrsions to between formats with different standards (such as NetCDF and GeoTiff).

source


# DimensionalData.Dimensions.LookupArrays.CenterType.
julia
Center <: Locus
 
-Center()

Indicates a lookup value is for the center of its corresponding array cell.

source


# DimensionalData.Dimensions.LookupArrays.StartType.
julia
Start <: Locus
+Center()

Indicates a lookup value is for the center of its corresponding array cell.

source


# DimensionalData.Dimensions.LookupArrays.StartType.
julia
Start <: Locus
 
-Start()

Indicates a lookup value is for the start of its corresponding array cell, in the direction of the lookup index order.

source


# DimensionalData.Dimensions.LookupArrays.EndType.
julia
End <: Locus
+Start()

Indicates a lookup value is for the start of its corresponding array cell, in the direction of the lookup index order.

source


# DimensionalData.Dimensions.LookupArrays.EndType.
julia
End <: Locus
 
-End()

Indicates a lookup value is for the end of its corresponding array cell, in the direction of the lookup index order.

source


# DimensionalData.Dimensions.LookupArrays.AutoLocusType.
julia
AutoLocus <: Locus
+End()

Indicates a lookup value is for the end of its corresponding array cell, in the direction of the lookup index order.

source


# DimensionalData.Dimensions.LookupArrays.AutoLocusType.
julia
AutoLocus <: Locus
 
-AutoLocus()

Indicates a interval where the index position is not yet known. This will be filled with a default value on object construction.

source


Metadata

# DimensionalData.Dimensions.LookupArrays.AbstractMetadataType.
julia
AbstractMetadata{X,T}

Abstract supertype for all metadata wrappers.

Metadata wrappers allow tracking the contents and origin of metadata. This can facilitate conversion between metadata types (for saving a file to a differenet format) or simply saving data back to the same file type with identical metadata.

Using a wrapper instead of Dict or NamedTuple also lets us pass metadata objects to set without ambiguity about where to put them.

source


# DimensionalData.Dimensions.LookupArrays.MetadataType.
julia
Metadata <: AbstractMetadata
+AutoLocus()

Indicates a interval where the index position is not yet known. This will be filled with a default value on object construction.

source


Metadata

# DimensionalData.Dimensions.LookupArrays.AbstractMetadataType.
julia
AbstractMetadata{X,T}

Abstract supertype for all metadata wrappers.

Metadata wrappers allow tracking the contents and origin of metadata. This can facilitate conversion between metadata types (for saving a file to a differenet format) or simply saving data back to the same file type with identical metadata.

Using a wrapper instead of Dict or NamedTuple also lets us pass metadata objects to set without ambiguity about where to put them.

source


# DimensionalData.Dimensions.LookupArrays.MetadataType.
julia
Metadata <: AbstractMetadata
 
 Metadata{X}(val::Union{Dict,NamedTuple})
 Metadata{X}(pairs::Pair...) => Metadata{Dict}
-Metadata{X}(; kw...) => Metadata{NamedTuple}

General Metadata object. The X type parameter categorises the metadata for method dispatch, if required.

source


# DimensionalData.Dimensions.LookupArrays.NoMetadataType.
julia
NoMetadata <: AbstractMetadata
+Metadata{X}(; kw...) => Metadata{NamedTuple}

General Metadata object. The X type parameter categorises the metadata for method dispatch, if required.

source


# DimensionalData.Dimensions.LookupArrays.NoMetadataType.
julia
NoMetadata <: AbstractMetadata
 
-NoMetadata()

Indicates an object has no metadata. But unlike using nothing, get, keys and haskey will still work on it, get always returning the fallback argument. keys returns () while haskey always returns false.

source


`,124),l=[t];function p(r,h,o,k,d,c){return a(),i("div",null,l)}const u=s(n,[["render",p]]);export{g as __pageData,u as default}; +NoMetadata()

Indicates an object has no metadata. But unlike using nothing, get, keys and haskey will still work on it, get always returning the fallback argument. keys returns () while haskey always returns false.

source


`,124),l=[t];function p(r,h,o,k,d,c){return a(),i("div",null,l)}const u=s(n,[["render",p]]);export{g as __pageData,u as default}; diff --git a/previews/PR615/assets/api_lookuparrays.md.OlFlnEnJ.lean.js b/previews/PR615/assets/api_lookuparrays.md.ZxU9xJQZ.lean.js similarity index 100% rename from previews/PR615/assets/api_lookuparrays.md.OlFlnEnJ.lean.js rename to previews/PR615/assets/api_lookuparrays.md.ZxU9xJQZ.lean.js diff --git a/previews/PR615/assets/api_reference.md.2x9n2k84.js b/previews/PR615/assets/api_reference.md.Qucofgn7.js similarity index 96% rename from previews/PR615/assets/api_reference.md.2x9n2k84.js rename to previews/PR615/assets/api_reference.md.Qucofgn7.js index 07a68d6f0..63a99c939 100644 --- a/previews/PR615/assets/api_reference.md.2x9n2k84.js +++ b/previews/PR615/assets/api_reference.md.Qucofgn7.js @@ -1,4 +1,4 @@ -import{_ as s,c as i,o as a,V as n}from"./chunks/framework.uHRfREZ8.js";const c=JSON.parse('{"title":"API Reference","description":"","frontmatter":{},"headers":[],"relativePath":"api/reference.md","filePath":"api/reference.md","lastUpdated":null}'),e={name:"api/reference.md"},h=n(`

API Reference

Arrays

# DimensionalData.AbstractDimArrayType.
julia
AbstractDimArray <: AbstractBasicArray

Abstract supertype for all "dim" arrays.

These arrays return a Tuple of Dimension from a dims method, and can be rebuilt using rebuild.

parent must return the source array.

They should have metadata, name and refdims methods, although these are optional.

A rebuild method for AbstractDimArray must accept data, dims, refdims, name, metadata arguments.

Indexing AbstractDimArray with non-range AbstractArray has undefined effects on the Dimension index. Use forward-ordered arrays only"

source


# DimensionalData.DimArrayType.
julia
DimArray <: AbstractDimArray
+import{_ as s,c as i,o as a,V as n}from"./chunks/framework.uHRfREZ8.js";const c=JSON.parse('{"title":"API Reference","description":"","frontmatter":{},"headers":[],"relativePath":"api/reference.md","filePath":"api/reference.md","lastUpdated":null}'),e={name:"api/reference.md"},h=n(`

API Reference

Arrays

# DimensionalData.AbstractDimArrayType.
julia
AbstractDimArray <: AbstractBasicArray

Abstract supertype for all "dim" arrays.

These arrays return a Tuple of Dimension from a dims method, and can be rebuilt using rebuild.

parent must return the source array.

They should have metadata, name and refdims methods, although these are optional.

A rebuild method for AbstractDimArray must accept data, dims, refdims, name, metadata arguments.

Indexing AbstractDimArray with non-range AbstractArray has undefined effects on the Dimension index. Use forward-ordered arrays only"

source


# DimensionalData.DimArrayType.
julia
DimArray <: AbstractDimArray
 
 DimArray(data, dims, refdims, name, metadata)
 DimArray(data, dims::Tuple; refdims=(), name=NoName(), metadata=NoMetadata())

The main concrete subtype of AbstractDimArray.

DimArray maintains and updates its Dimensions through transformations and moves dimensions to reference dimension refdims after reducing operations (like e.g. mean).

Arguments

  • data: An AbstractArray.

  • dims: A Tuple of Dimension

  • name: A string name for the array. Shows in plots and tables.

  • refdims: refence dimensions. Usually set programmatically to track past slices and reductions of dimension for labelling and reconstruction.

  • metadata: Dict or Metadata object, or NoMetadata()

Indexing can be done with all regular indices, or with Dimensions and/or Selectors.

Indexing AbstractDimArray with non-range AbstractArray has undefined effects on the Dimension index. Use forward-ordered arrays only"

Example:

julia
using Dates, DimensionalData
@@ -9,7 +9,7 @@ import{_ as s,c as i,o as a,V as n}from"./chunks/framework.uHRfREZ8.js";const c=
 
 julia> A[X(Near([12, 35])), Ti(At(DateTime(2001,5)))];
 
-julia> A[Near(DateTime(2001, 5, 4)), Between(20, 50)];

source


Shorthand AbstractDimArray constructors:

# Base.fillFunction.
julia
fill(value, dims::Tuple)
+julia> A[Near(DateTime(2001, 5, 4)), Between(20, 50)];

source


Shorthand AbstractDimArray constructors:

# Base.fillFunction.
julia
fill(value, dims::Tuple)
 fill(value, dims...)

Create an array of size dims with every location set to value.

For example, fill(1.0, (5,5)) returns a 5×5 array of floats, with 1.0 in every location of the array.

The dimension lengths dims may be specified as either a tuple or a sequence of arguments. An N-length tuple or N arguments following the value specify an N-dimensional array. Thus, a common idiom for creating a zero-dimensional array with its only location set to x is fill(x).

Every location of the returned array is set to (and is thus === to) the value that was passed; this means that if the value is itself modified, all elements of the filled array will reflect that modification because they're still that very value. This is of no concern with fill(1.0, (5,5)) as the value 1.0 is immutable and cannot itself be modified, but can be unexpected with mutable values like — most commonly — arrays. For example, fill([], 3) places the very same empty array in all three locations of the returned vector:

julia
julia> v = fill([], 3)
 3-element Vector{Vector{Any}}:
  []
@@ -72,7 +72,7 @@ import{_ as s,c as i,o as a,V as n}from"./chunks/framework.uHRfREZ8.js";const c=
 julia> rand(Bool, X(2), Y(4))
 2×4 DimArray{Bool,2} with dimensions: X, Y
  1  0  0  1
- 1  0  1  1

source


# Base.randFunction.
julia
rand([rng=default_rng()], [S], [dims...])

Pick a random element or array of random elements from the set of values specified by S; S can be

  • an indexable collection (for example 1:9 or ('x', "y", :z)),

  • an AbstractDict or AbstractSet object,

  • a string (considered as a collection of characters), or

  • a type: the set of values to pick from is then equivalent to typemin(S):typemax(S) for integers (this is not applicable to BigInt), to $[0, 1)$ for floating point numbers and to $[0, 1)+i[0, 1)$ for complex floating point numbers;

S defaults to Float64. When only one argument is passed besides the optional rng and is a Tuple, it is interpreted as a collection of values (S) and not as dims.

See also randn for normally distributed numbers, and rand! and randn! for the in-place equivalents.

::: compat Julia 1.1

Support for S as a tuple requires at least Julia 1.1.

:::

Examples

julia
julia> rand(Int, 2)
+ 1  0  1  1

source


# Base.randFunction.
julia
rand([rng=default_rng()], [S], [dims...])

Pick a random element or array of random elements from the set of values specified by S; S can be

  • an indexable collection (for example 1:9 or ('x', "y", :z)),

  • an AbstractDict or AbstractSet object,

  • a string (considered as a collection of characters), or

  • a type: the set of values to pick from is then equivalent to typemin(S):typemax(S) for integers (this is not applicable to BigInt), to $[0, 1)$ for floating point numbers and to $[0, 1)+i[0, 1)$ for complex floating point numbers;

S defaults to Float64. When only one argument is passed besides the optional rng and is a Tuple, it is interpreted as a collection of values (S) and not as dims.

See also randn for normally distributed numbers, and rand! and randn! for the in-place equivalents.

::: compat Julia 1.1

Support for S as a tuple requires at least Julia 1.1.

:::

Examples

julia
julia> rand(Int, 2)
 2-element Array{Int64,1}:
  1339893410598768192
  1575814717733606317
@@ -104,7 +104,7 @@ import{_ as s,c as i,o as a,V as n}from"./chunks/framework.uHRfREZ8.js";const c=
   Y: 100.0:50.0:200.0 Sampled: Ordered Regular Points
  0.43204   0.835111  0.624231
  0.752868  0.471638  0.193652
- 0.484558  0.846559  0.455256

source


# Base.zerosFunction.
julia
zeros([T=Float64,] dims::Tuple)
+ 0.484558  0.846559  0.455256

source


# Base.zerosFunction.
julia
zeros([T=Float64,] dims::Tuple)
 zeros([T=Float64,] dims...)

Create an Array, with element type T, of all zeros with size specified by dims. See also fill, ones, zero.

Examples

julia
julia> zeros(1)
 1-element Vector{Float64}:
  0.0
@@ -126,7 +126,7 @@ import{_ as s,c as i,o as a,V as n}from"./chunks/framework.uHRfREZ8.js";const c=
   Y: 100.0:50.0:200.0 Sampled: Ordered Regular Points
  0.0  0.0  0.0
  0.0  0.0  0.0
- 0.0  0.0  0.0

source


# Base.onesFunction.
julia
ones([T=Float64,] dims::Tuple)
+ 0.0  0.0  0.0

source


# Base.onesFunction.
julia
ones([T=Float64,] dims::Tuple)
 ones([T=Float64,] dims...)

Create an Array, with element type T, of all ones with size specified by dims. See also fill, zeros.

Examples

julia
julia> ones(1,2)
 1×2 Matrix{Float64}:
  1.0  1.0
@@ -148,14 +148,14 @@ import{_ as s,c as i,o as a,V as n}from"./chunks/framework.uHRfREZ8.js";const c=
   Y: 100.0:50.0:200.0 Sampled: Ordered Regular Points
  1.0  1.0  1.0
  1.0  1.0  1.0
- 1.0  1.0  1.0

source


Functions for getting information from objects:

# DimensionalData.Dimensions.dimsFunction.
julia
dims(x, [dims::Tuple]) => Tuple{Vararg{Dimension}}
-dims(x, dim) => Dimension

Return a tuple of Dimensions for an object, in the order that matches the axes or columns of the underlying data.

dims can be Dimension, Dimension types, or Symbols for Dim{Symbol}.

The default is to return nothing.

source


# DimensionalData.Dimensions.refdimsFunction.
julia
refdims(x, [dims::Tuple]) => Tuple{Vararg{Dimension}}
-refdims(x, dim) => Dimension

Reference dimensions for an array that is a slice or view of another array with more dimensions.

slicedims(a, dims) returns a tuple containing the current new dimensions and the new reference dimensions. Refdims can be stored in a field or disgarded, as it is mostly to give context to plots. Ignoring refdims will simply leave some captions empty.

The default is to return an empty Tuple ().

source


# DimensionalData.Dimensions.LookupArrays.metadataFunction.
julia
metadata(x) => (object metadata)
+ 1.0  1.0  1.0

source


Functions for getting information from objects:

# DimensionalData.Dimensions.dimsFunction.
julia
dims(x, [dims::Tuple]) => Tuple{Vararg{Dimension}}
+dims(x, dim) => Dimension

Return a tuple of Dimensions for an object, in the order that matches the axes or columns of the underlying data.

dims can be Dimension, Dimension types, or Symbols for Dim{Symbol}.

The default is to return nothing.

source


# DimensionalData.Dimensions.refdimsFunction.
julia
refdims(x, [dims::Tuple]) => Tuple{Vararg{Dimension}}
+refdims(x, dim) => Dimension

Reference dimensions for an array that is a slice or view of another array with more dimensions.

slicedims(a, dims) returns a tuple containing the current new dimensions and the new reference dimensions. Refdims can be stored in a field or disgarded, as it is mostly to give context to plots. Ignoring refdims will simply leave some captions empty.

The default is to return an empty Tuple ().

source


# DimensionalData.Dimensions.LookupArrays.metadataFunction.
julia
metadata(x) => (object metadata)
 metadata(x, dims::Tuple)  => Tuple (Dimension metadata)
-metadata(xs::Tuple) => Tuple

Returns the metadata for an object or for the specified dimension(s)

Second argument dims can be Dimensions, Dimension types, or Symbols for Dim{Symbol}.

source


# DimensionalData.Dimensions.nameFunction.
julia
name(x) => Symbol
+metadata(xs::Tuple) => Tuple

Returns the metadata for an object or for the specified dimension(s)

Second argument dims can be Dimensions, Dimension types, or Symbols for Dim{Symbol}.

source


# DimensionalData.Dimensions.nameFunction.
julia
name(x) => Symbol
 name(xs:Tuple) => NTuple{N,Symbol}
 name(x, dims::Tuple) => NTuple{N,Symbol}
-name(x, dim) => Symbol

Get the name of an array or Dimension, or a tuple of of either as a Symbol.

Second argument dims can be Dimensions, Dimension types, or Symbols for Dim{Symbol}.

source


Multi-array datasets

# DimensionalData.AbstractDimStackType.
julia
AbstractDimStack

Abstract supertype for dimensional stacks.

These have multiple layers of data, but share dimensions.

Notably, their behaviour lies somewhere between a DimArray and a NamedTuple:

  • indexing with a Symbol as in dimstack[:symbol] returns a DimArray layer.

  • iteration amd map are apply over array layers, as indexed with a Symbol.

  • getindex and many base methods are applied as for DimArray - to avoid the need to allways use map.

This design gives very succinct code when working with many-layered, mixed-dimension objects. But it may be jarring initially - the most surprising outcome is that dimstack[1] will return a NamedTuple of values for the first index in all layers, while first(dimstack) will return the first value of the iterator - the DimArray for the first layer.

See DimStack for the concrete implementation. Most methods are defined on the abstract type.

To extend AbstractDimStack, implement argument and keyword version of rebuild and also rebuild_from_arrays.

The constructor of an AbstractDimStack must accept a NamedTuple.

source


# DimensionalData.DimStackType.
julia
DimStack <: AbstractDimStack
+name(x, dim) => Symbol

Get the name of an array or Dimension, or a tuple of of either as a Symbol.

Second argument dims can be Dimensions, Dimension types, or Symbols for Dim{Symbol}.

source


Multi-array datasets

# DimensionalData.AbstractDimStackType.
julia
AbstractDimStack

Abstract supertype for dimensional stacks.

These have multiple layers of data, but share dimensions.

Notably, their behaviour lies somewhere between a DimArray and a NamedTuple:

  • indexing with a Symbol as in dimstack[:symbol] returns a DimArray layer.

  • iteration amd map are apply over array layers, as indexed with a Symbol.

  • getindex and many base methods are applied as for DimArray - to avoid the need to allways use map.

This design gives very succinct code when working with many-layered, mixed-dimension objects. But it may be jarring initially - the most surprising outcome is that dimstack[1] will return a NamedTuple of values for the first index in all layers, while first(dimstack) will return the first value of the iterator - the DimArray for the first layer.

See DimStack for the concrete implementation. Most methods are defined on the abstract type.

To extend AbstractDimStack, implement argument and keyword version of rebuild and also rebuild_from_arrays.

The constructor of an AbstractDimStack must accept a NamedTuple.

source


# DimensionalData.DimStackType.
julia
DimStack <: AbstractDimStack
 
 DimStack(data::AbstractDimArray...)
 DimStack(data::Tuple{Vararg{AbstractDimArray}})
@@ -180,7 +180,7 @@ import{_ as s,c as i,o as a,V as n}from"./chunks/framework.uHRfREZ8.js";const c=
 (one = 4.0, two = 8.0, three = 12.0)
 
 julia> s[X(At(:a))] isa DimStack
-true

source


Dimension generators

# DimensionalData.DimIndicesType.
julia
DimIndices <: AbstractArray
+true

source


Dimension generators

# DimensionalData.DimIndicesType.
julia
DimIndices <: AbstractArray
 
 DimIndices(x)
 DimIndices(dims::Tuple)
@@ -190,7 +190,7 @@ import{_ as s,c as i,o as a,V as n}from"./chunks/framework.uHRfREZ8.js";const c=
 julia> A[di] # Index A with these indices dims(d) = (X{StepRange{Int64, Int64}}(1:2:3), Y{StepRange{Int64, Int64}}(1:2:3)) ╭─────────────────────────╮ │ 2×2 DimArray{Float64,2} │ ├─────────────────────────┴─────────────────────────────────── dims ┐   ↓ Y Sampled{Float64} 0.0:0.6:0.6 ForwardOrdered Regular Points,   → X Categorical{Char} 'a':2:'c' ForwardOrdered └───────────────────────────────────────────────────────────────────┘  ↓ →   'a'       'c'  0.0  0.513225  0.771862  0.6  0.837621  0.441426
 
 
-[source](https://github.com/rafaqz/DimensionalData.jl/blob/fa50f93ce32c000c962544242fd0a4b9d0cf9ece/src/dimindices.jl#L29-L89)
+[source](https://github.com/rafaqz/DimensionalData.jl/blob/cd43d14c21d48af4b605b43bffce088f272c3adc/src/dimindices.jl#L44-L104)
 
 </div>
 <br>
@@ -211,7 +211,7 @@ import{_ as s,c as i,o as a,V as n}from"./chunks/framework.uHRfREZ8.js";const c=
 
 DimPoints(x; order)
 DimPoints(dims::Tuple; order)
-DimPoints(dims::Dimension; order)

Like CartesianIndices, but for the point values of the dimension index. Behaves as an Array of Tuple lookup values (whatever they are) for all combinations of the lookup values of dims.

Either a Dimension, a Tuple of Dimension or an object x that defines a dims method can be passed in.

Keywords

  • order: determines the order of the points, the same as the order of dims by default.

source


Tables.jl/TableTraits.jl interface

# DimensionalData.AbstractDimTableType.
julia
AbstractDimTable <: Tables.AbstractColumns

Abstract supertype for dim tables

source


# DimensionalData.DimTableType.
julia
DimTable <: AbstractDimTable
+DimPoints(dims::Dimension; order)

Like CartesianIndices, but for the point values of the dimension index. Behaves as an Array of Tuple lookup values (whatever they are) for all combinations of the lookup values of dims.

Either a Dimension, a Tuple of Dimension or an object x that defines a dims method can be passed in.

Keywords

  • order: determines the order of the points, the same as the order of dims by default.

source


Tables.jl/TableTraits.jl interface

# DimensionalData.AbstractDimTableType.
julia
AbstractDimTable <: Tables.AbstractColumns

Abstract supertype for dim tables

source


# DimensionalData.DimTableType.
julia
DimTable <: AbstractDimTable
 
 DimTable(s::AbstractDimStack; mergedims=nothing)
 DimTable(x::AbstractDimArray; layersfrom=nothing, mergedims=nothing)
@@ -222,10 +222,7 @@ import{_ as s,c as i,o as a,V as n}from"./chunks/framework.uHRfREZ8.js";const c=
  :geometry  Tuple{Int64, Int64}
  :band_1    Float64
  :band_2    Float64
- :band_3    Float64

source


# DimensionalData.DimColumnType.
julia
DimColumn{T,D<:Dimension} <: AbstractVector{T}
-
-DimColumn(dim::Dimension, dims::Tuple{Vararg{DimTuple}})
-DimColumn(dim::DimColumn, length::Int, dimstride::Int)

A table column based on a Dimension and it's relationship with other Dimensions in dims.

length is the product of all dim lengths (usually the length of the corresponding array data), while stride is the product of the preceding dimension lengths, which may or may not be the real stride of the corresponding array depending on the data type. For A isa Array, the dimstride will match the stride.

When the second argument is a Tuple of Dimension, the length and dimstride fields are calculated from the dimensions, relative to the column dimension dim.

This object will be returned as a column of DimTable.

source


Utility methods

For transforming DimensionalData objects:

# DimensionalData.Dimensions.LookupArrays.setFunction.
julia
set(x, val)
+ :band_3    Float64

source


Missing docstring.

Missing docstring for DimensionalData.DimColumn. Check Documenter's build log for details.

Utility methods

For transforming DimensionalData objects:

# DimensionalData.Dimensions.LookupArrays.setFunction.
julia
set(x, val)
 set(x, args::Pairs...) => x with updated field/s
 set(x, args...; kw...) => x with updated field/s
 set(x, args::Tuple{Vararg{Dimension}}; kw...) => x with updated field/s
@@ -272,16 +269,16 @@ import{_ as s,c as i,o as a,V as n}from"./chunks/framework.uHRfREZ8.js";const c=
        -20.0  -10.0  0.0  10.0
  10.0    0.0    0.0  0.0   0.0
  20.0    0.0    0.0  0.0   0.0
- 30.0    0.0    0.0  0.0   0.0

source


# DimensionalData.Dimensions.LookupArrays.rebuildFunction.
julia
rebuild(x; kw...)

Rebuild an object struct with updated field values.

x can be a AbstractDimArray, a Dimension, LookupArray or other custom types.

This is an abstraction that alows inbuilt and custom types to be rebuilt to update their fields, as most objects in DimensionalData.jl are immutable.

Rebuild is mostly automated using ConstructionBase.setproperties. It should only be defined if your object has fields with with different names to DimensionalData objects. Try not to do that!

The arguments required are defined for the abstract type that has a rebuild method.

AbstractBasicDimArray:

  • dims: a Tuple of Dimension

AbstractDimArray:

  • data: the parent object - an AbstractArray

  • dims: a Tuple of Dimension

  • refdims: a Tuple of Dimension

  • name: A Symbol, or NoName and Name on GPU.

  • metadata: A Dict-like object

AbstractDimStack:

  • data: the parent object, often a NamedTuple

  • dims, refdims, metadata

Dimension:

  • val: anything.

LookupArray:

  • data: the parent object, an AbstractArray

  • Note: argument rebuild is deprecated on AbstractDimArray and

AbstractDimStack in favour of allways using the keyword version. In future the argument version will only be used on Dimension, which only have one argument.

source


# DimensionalData.modifyFunction.
julia
modify(f, A::AbstractDimArray) => AbstractDimArray
+ 30.0    0.0    0.0  0.0   0.0

source


# DimensionalData.Dimensions.LookupArrays.rebuildFunction.
julia
rebuild(x; kw...)

Rebuild an object struct with updated field values.

x can be a AbstractDimArray, a Dimension, LookupArray or other custom types.

This is an abstraction that alows inbuilt and custom types to be rebuilt to update their fields, as most objects in DimensionalData.jl are immutable.

Rebuild is mostly automated using ConstructionBase.setproperties. It should only be defined if your object has fields with with different names to DimensionalData objects. Try not to do that!

The arguments required are defined for the abstract type that has a rebuild method.

AbstractBasicDimArray:

  • dims: a Tuple of Dimension

AbstractDimArray:

  • data: the parent object - an AbstractArray

  • dims: a Tuple of Dimension

  • refdims: a Tuple of Dimension

  • name: A Symbol, or NoName and Name on GPU.

  • metadata: A Dict-like object

AbstractDimStack:

  • data: the parent object, often a NamedTuple

  • dims, refdims, metadata

Dimension:

  • val: anything.

LookupArray:

  • data: the parent object, an AbstractArray

  • Note: argument rebuild is deprecated on AbstractDimArray and

AbstractDimStack in favour of allways using the keyword version. In future the argument version will only be used on Dimension, which only have one argument.

source


# DimensionalData.modifyFunction.
julia
modify(f, A::AbstractDimArray) => AbstractDimArray
 modify(f, s::AbstractDimStack) => AbstractDimStack
 modify(f, dim::Dimension) => Dimension
 modify(f, x, lookupdim::Dimension) => typeof(x)

Modify the parent data, rebuilding the object wrapper without change. f must return a AbstractArray of the same size as the original.

This method is mostly useful as a way of swapping the parent array type of an object.

Example

If we have a previously-defined DimArray, we can copy it to an Nvidia GPU with:

julia
A = DimArray(rand(100, 100), (X, Y))
-modify(CuArray, A)

This also works for all the data layers in a DimStack.

source


# DimensionalData.broadcast_dimsFunction.
julia
broadcast_dims(f, sources::AbstractDimArray...) => AbstractDimArray

Broadcast function f over the AbstractDimArrays in sources, permuting and reshaping dimensions to match where required. The result will contain all the dimensions in all passed in arrays in the order in which they are found.

Arguments

  • sources: AbstractDimArrays to broadcast over with f.

This is like broadcasting over every slice of A if it is sliced by the dimensions of B.

source


# DimensionalData.broadcast_dims!Function.
julia
broadcast_dims!(f, dest::AbstractDimArray, sources::AbstractDimArray...) => dest

Broadcast function f over the AbstractDimArrays in sources, writing to dest. sources are permuting and reshaping dimensions to match where required.

The result will contain all the dimensions in all passed in arrays, in the order in which they are found.

Arguments

  • dest: AbstractDimArray to update.

  • sources: AbstractDimArrays to broadcast over with f.

source


# DimensionalData.mergedimsFunction.
julia
mergedims(old_dims => new_dim) => Dimension

Return a dimension new_dim whose indices are a MergedLookup of the indices of old_dims.

source

julia
mergedims(dims, old_dims => new_dim, others::Pair...) => dims_new

If dimensions old_dims, new_dim, etc. are found in dims, then return new dims_new where all dims in old_dims have been combined into a single dim new_dim. The returned dimension will keep only the name of new_dim. Its coords will be a MergedLookup of the coords of the dims in old_dims. New dimensions are always placed at the end of dims_new. others contains other dimension pairs to be merged.

Example

julia
julia> ds = (X(0:0.1:0.4), Y(10:10:100), Ti([0, 3, 4]));
+modify(CuArray, A)

This also works for all the data layers in a DimStack.

source


# DimensionalData.broadcast_dimsFunction.
julia
broadcast_dims(f, sources::AbstractDimArray...) => AbstractDimArray

Broadcast function f over the AbstractDimArrays in sources, permuting and reshaping dimensions to match where required. The result will contain all the dimensions in all passed in arrays in the order in which they are found.

Arguments

  • sources: AbstractDimArrays to broadcast over with f.

This is like broadcasting over every slice of A if it is sliced by the dimensions of B.

source


# DimensionalData.broadcast_dims!Function.
julia
broadcast_dims!(f, dest::AbstractDimArray, sources::AbstractDimArray...) => dest

Broadcast function f over the AbstractDimArrays in sources, writing to dest. sources are permuting and reshaping dimensions to match where required.

The result will contain all the dimensions in all passed in arrays, in the order in which they are found.

Arguments

  • dest: AbstractDimArray to update.

  • sources: AbstractDimArrays to broadcast over with f.

source


# DimensionalData.mergedimsFunction.
julia
mergedims(old_dims => new_dim) => Dimension

Return a dimension new_dim whose indices are a MergedLookup of the indices of old_dims.

source

julia
mergedims(dims, old_dims => new_dim, others::Pair...) => dims_new

If dimensions old_dims, new_dim, etc. are found in dims, then return new dims_new where all dims in old_dims have been combined into a single dim new_dim. The returned dimension will keep only the name of new_dim. Its coords will be a MergedLookup of the coords of the dims in old_dims. New dimensions are always placed at the end of dims_new. others contains other dimension pairs to be merged.

Example

julia
julia> ds = (X(0:0.1:0.4), Y(10:10:100), Ti([0, 3, 4]));
 julia> mergedims(ds, Ti => :time, (X, Y) => :space)
 Dim{:time} MergedLookup{Tuple{Int64}} Tuple{Int64}[(0,), (3,), (4,)] Ti,
-Dim{:space} MergedLookup{Tuple{Float64, Int64}} Tuple{Float64, Int64}[(0.0, 10), (0.1, 10), …, (0.3, 100), (0.4, 100)] X, Y

source

julia
mergedims(A::AbstractDimArray, dim_pairs::Pair...) => AbstractDimArray
-mergedims(A::AbstractDimStack, dim_pairs::Pair...) => AbstractDimStack

Return a new array or stack whose dimensions are the result of mergedims(dims(A), dim_pairs).

source


# DimensionalData.unmergedimsFunction.
julia
unmergedims(merged_dims::Tuple{Vararg{Dimension}}) => Tuple{Vararg{Dimension}}

Return the unmerged dimensions from a tuple of merged dimensions. However, the order of the original dimensions are not necessarily preserved.

source

julia
unmergedims(A::AbstractDimArray, original_dims) => AbstractDimArray
-unmergedims(A::AbstractDimStack, original_dims) => AbstractDimStack

Return a new array or stack whose dimensions are restored to their original prior to calling mergedims(A, dim_pairs).

source


# DimensionalData.reorderFunction.
julia
reorder(A::Union{AbstractDimArray,AbstractDimStack}, order::Pair...)
+Dim{:space} MergedLookup{Tuple{Float64, Int64}} Tuple{Float64, Int64}[(0.0, 10), (0.1, 10), …, (0.3, 100), (0.4, 100)] X, Y

source

julia
mergedims(A::AbstractDimArray, dim_pairs::Pair...) => AbstractDimArray
+mergedims(A::AbstractDimStack, dim_pairs::Pair...) => AbstractDimStack

Return a new array or stack whose dimensions are the result of mergedims(dims(A), dim_pairs).

source


# DimensionalData.unmergedimsFunction.
julia
unmergedims(merged_dims::Tuple{Vararg{Dimension}}) => Tuple{Vararg{Dimension}}

Return the unmerged dimensions from a tuple of merged dimensions. However, the order of the original dimensions are not necessarily preserved.

source

julia
unmergedims(A::AbstractDimArray, original_dims) => AbstractDimArray
+unmergedims(A::AbstractDimStack, original_dims) => AbstractDimStack

Return a new array or stack whose dimensions are restored to their original prior to calling mergedims(A, dim_pairs).

source


# DimensionalData.reorderFunction.
julia
reorder(A::Union{AbstractDimArray,AbstractDimStack}, order::Pair...)
 reorder(A::Union{AbstractDimArray,AbstractDimStack}, order)
 reorder(A::Dimension, order::Order)

Reorder every dims index/array to order, or reorder index for the the given dimension(s) in order.

order can be an Order, Dimension => Order pairs. A Tuple of Dimensions or any object that defines dims can be used in which case dimensions are

If no axis reversal is required the same objects will be returned, without allocation.

Example

jldoctest

 **Create a DimArray**
@@ -301,7 +298,7 @@ import{_ as s,c as i,o as a,V as n}from"./chunks/framework.uHRfREZ8.js";const c=
 true
 
 
-[source](https://github.com/rafaqz/DimensionalData.jl/blob/fa50f93ce32c000c962544242fd0a4b9d0cf9ece/src/utils.jl#L2-L27)
+[source](https://github.com/rafaqz/DimensionalData.jl/blob/cd43d14c21d48af4b605b43bffce088f272c3adc/src/utils.jl#L2-L27)
 
 </div>
 <br>
@@ -329,7 +326,7 @@ import{_ as s,c as i,o as a,V as n}from"./chunks/framework.uHRfREZ8.js";const c=
 
 julia> cat(1, [2], [3;;]; dims=Val(2))
 1×3 Matrix{Int64}:
- 1  2  3

source

julia
Base.cat(stacks::AbstractDimStack...; [keys=keys(stacks[1])], dims)

Concatenate all or a subset of layers for all passed in stacks.

Keywords

  • keys: Tuple of Symbol for the stack keys to concatenate.

  • dims: Dimension of child array to concatenate on.

Example

Concatenate the :sea_surface_temp and :humidity layers in the time dimension:

julia
cat(stacks...; keys=(:sea_surface_temp, :humidity), dims=Ti)

source


# Base.mapFunction.
julia
map(f, c...) -> collection

Transform collection c by applying f to each element. For multiple collection arguments, apply f elementwise, and stop when any of them is exhausted.

See also map!, foreach, mapreduce, mapslices, zip, Iterators.map.

Examples

julia
julia> map(x -> x * 2, [1, 2, 3])
+ 1  2  3

source

julia
Base.cat(stacks::AbstractDimStack...; [keys=keys(stacks[1])], dims)

Concatenate all or a subset of layers for all passed in stacks.

Keywords

  • keys: Tuple of Symbol for the stack keys to concatenate.

  • dims: Dimension of child array to concatenate on.

Example

Concatenate the :sea_surface_temp and :humidity layers in the time dimension:

julia
cat(stacks...; keys=(:sea_surface_temp, :humidity), dims=Ti)

source


# Base.mapFunction.
julia
map(f, c...) -> collection

Transform collection c by applying f to each element. For multiple collection arguments, apply f elementwise, and stop when any of them is exhausted.

See also map!, foreach, mapreduce, mapslices, zip, Iterators.map.

Examples

julia
julia> map(x -> x * 2, [1, 2, 3])
 3-element Vector{Int64}:
  2
  4
@@ -351,7 +348,7 @@ import{_ as s,c as i,o as a,V as n}from"./chunks/framework.uHRfREZ8.js";const c=
 3-element Vector{Float64}:
    2.0
   13.0
- 102.0

source

julia
Base.map(f, stacks::AbstractDimStack...)

Apply function f to each layer of the stacks.

If f returns DimArrays the result will be another DimStack. Other values will be returned in a NamedTuple.

source


# Base.copy!Function.
julia
copy!(dst, src) -> dst

In-place copy of src into dst, discarding any pre-existing elements in dst. If dst and src are of the same type, dst == src should hold after the call. If dst and src are multidimensional arrays, they must have equal axes.

Warning

Behavior can be unexpected when any mutated argument shares memory with any other argument.

See also copyto!.

::: compat Julia 1.1

This method requires at least Julia 1.1. In Julia 1.0 this method is available from the Future standard library as Future.copy!.

:::

source

julia
Base.copy!(dst::AbstractArray, src::AbstractGimStack, key::Key)

Copy the stack layer key to dst, which can be any AbstractArray.

Example

Copy the :humidity layer from stack to array.

julia
copy!(array, stack, :humidity)

source

julia
Base.copy!(dst::AbstractDimStack, src::AbstractDimStack, [keys=keys(dst)])

Copy all or a subset of layers from one stack to another.

Example

Copy just the :sea_surface_temp and :humidity layers from src to dst.

julia
copy!(dst::AbstractDimStack, src::AbstractDimStack, keys=(:sea_surface_temp, :humidity))

source


# Base.eachsliceFunction.
julia
eachslice(A::AbstractArray; dims, drop=true)

Create a Slices object that is an array of slices over dimensions dims of A, returning views that select all the data from the other dimensions in A. dims can either by an integer or a tuple of integers.

If drop = true (the default), the outer Slices will drop the inner dimensions, and the ordering of the dimensions will match those in dims. If drop = false, then the Slices will have the same dimensionality as the underlying array, with inner dimensions having size 1.

See stack(slices; dims) for the inverse of eachslice(A; dims::Integer).

See also eachrow, eachcol, mapslices and selectdim.

::: compat Julia 1.1

This function requires at least Julia 1.1.

:::

::: compat Julia 1.9

Prior to Julia 1.9, this returned an iterator, and only a single dimension dims was supported.

:::

Example

julia
julia> m = [1 2 3; 4 5 6; 7 8 9]
+ 102.0

source

julia
Base.map(f, stacks::AbstractDimStack...)

Apply function f to each layer of the stacks.

If f returns DimArrays the result will be another DimStack. Other values will be returned in a NamedTuple.

source


# Base.copy!Function.
julia
copy!(dst, src) -> dst

In-place copy of src into dst, discarding any pre-existing elements in dst. If dst and src are of the same type, dst == src should hold after the call. If dst and src are multidimensional arrays, they must have equal axes.

Warning

Behavior can be unexpected when any mutated argument shares memory with any other argument.

See also copyto!.

::: compat Julia 1.1

This method requires at least Julia 1.1. In Julia 1.0 this method is available from the Future standard library as Future.copy!.

:::

source

julia
Base.copy!(dst::AbstractArray, src::AbstractGimStack, key::Key)

Copy the stack layer key to dst, which can be any AbstractArray.

Example

Copy the :humidity layer from stack to array.

julia
copy!(array, stack, :humidity)

source

julia
Base.copy!(dst::AbstractDimStack, src::AbstractDimStack, [keys=keys(dst)])

Copy all or a subset of layers from one stack to another.

Example

Copy just the :sea_surface_temp and :humidity layers from src to dst.

julia
copy!(dst::AbstractDimStack, src::AbstractDimStack, keys=(:sea_surface_temp, :humidity))

source


# Base.eachsliceFunction.
julia
eachslice(A::AbstractArray; dims, drop=true)

Create a Slices object that is an array of slices over dimensions dims of A, returning views that select all the data from the other dimensions in A. dims can either by an integer or a tuple of integers.

If drop = true (the default), the outer Slices will drop the inner dimensions, and the ordering of the dimensions will match those in dims. If drop = false, then the Slices will have the same dimensionality as the underlying array, with inner dimensions having size 1.

See stack(slices; dims) for the inverse of eachslice(A; dims::Integer).

See also eachrow, eachcol, mapslices and selectdim.

::: compat Julia 1.1

This function requires at least Julia 1.1.

:::

::: compat Julia 1.9

Prior to Julia 1.9, this returned an iterator, and only a single dimension dims was supported.

:::

Example

julia
julia> m = [1 2 3; 4 5 6; 7 8 9]
 3×3 Matrix{Int64}:
  1  2  3
  4  5  6
@@ -393,11 +390,11 @@ import{_ as s,c as i,o as a,V as n}from"./chunks/framework.uHRfREZ8.js";const c=
   Ti
 and 2 layers:
   :x Float64 dims: Y (3)
-  :y Float64 dims: Y, Ti (3×5)

source


Most base methods work as expected, using Dimension wherever a dims keyword is used. They are not allspecifically documented here.

Name

# DimensionalData.AbstractNameType.
julia
AbstractName

Abstract supertype for name wrappers.

source


# DimensionalData.NameType.
julia
Name <: AbstractName
+  :y Float64 dims: Y, Ti (3×5)

source


Most base methods work as expected, using Dimension wherever a dims keyword is used. They are not allspecifically documented here.

Name

# DimensionalData.AbstractNameType.
julia
AbstractName

Abstract supertype for name wrappers.

source


# DimensionalData.NameType.
julia
Name <: AbstractName
 
 Name(name::Union{Symbol,Name) => Name
-Name(name::NoName) => NoName

Name wrapper. This lets arrays keep symbol names when the array wrapper neeeds to be \`isbits, like for use on GPUs. It makes the name a property of the type. It's not necessary to use in normal use, a symbol is probably easier.

source


# DimensionalData.NoNameType.
julia
NoName <: AbstractName
+Name(name::NoName) => NoName

Name wrapper. This lets arrays keep symbol names when the array wrapper neeeds to be \`isbits, like for use on GPUs. It makes the name a property of the type. It's not necessary to use in normal use, a symbol is probably easier.

source


# DimensionalData.NoNameType.
julia
NoName <: AbstractName
 
-NoName()

NoName specifies an array is not named, and is the default name value for all AbstractDimArrays.

source


Internal interface methods

# DimensionalData.rebuild_from_arraysFunction.
julia
rebuild_from_arrays(s::AbstractDimStack, das::NamedTuple{<:Any,<:Tuple{Vararg{AbstractDimArray}}}; kw...)

Rebuild an AbstractDimStack from a Tuple or NamedTuple of AbstractDimArray and an existing stack.

Keywords

Keywords are simply the fields of the stack object:

  • data

  • dims

  • refdims

  • metadata

  • layerdims

  • layermetadata

source


# DimensionalData.show_mainFunction.
julia
show_main(io::IO, mime, A::AbstractDimArray; maxlen, kw...)
-show_main(io::IO, mime, A::AbstractDimStack; maxlen, kw...)

Interface methods for adding the main part of show

At the least, you likely want to call:

'''julia print_top(io, mime, A) '''

But read the DimensionalData.jl show.jl code for details.

source


# DimensionalData.show_afterFunction.
julia
show_after(io::IO, mime, A::AbstractDimArray; maxlen, kw...)
-show_after(io::IO, mime, A::AbstractDimStack; maxlen, kw...)

Interface methods for adding addional show text for AbstractDimArray/AbstractDimStack subtypes.

Always include kw to avoid future breaking changes

Additional keywords may be added at any time.

Note - a anssi box is left unclosed. This method needs to close it, or add more. maxlen is the maximum length of the inner text.

Most likely you always want to at least close the show blocks with:

'''julia print_block_close(io, maxlen) '''

But read the DimensionalData.jl show.jl code for details.

source


`,78),t=[h];function l(p,k,r,d,o,E){return a(),i("div",null,t)}const y=s(e,[["render",l]]);export{c as __pageData,y as default}; +NoName()

NoName specifies an array is not named, and is the default name value for all AbstractDimArrays.

source


Internal interface methods

# DimensionalData.rebuild_from_arraysFunction.
julia
rebuild_from_arrays(s::AbstractDimStack, das::NamedTuple{<:Any,<:Tuple{Vararg{AbstractDimArray}}}; kw...)

Rebuild an AbstractDimStack from a Tuple or NamedTuple of AbstractDimArray and an existing stack.

Keywords

Keywords are simply the fields of the stack object:

source


# DimensionalData.show_mainFunction.
julia
show_main(io::IO, mime, A::AbstractDimArray; maxlen, kw...)
+show_main(io::IO, mime, A::AbstractDimStack; maxlen, kw...)

Interface methods for adding the main part of show

At the least, you likely want to call:

'''julia print_top(io, mime, A) '''

But read the DimensionalData.jl show.jl code for details.

source


# DimensionalData.show_afterFunction.
julia
show_after(io::IO, mime, A::AbstractDimArray; maxlen, kw...)
+show_after(io::IO, mime, A::AbstractDimStack; maxlen, kw...)

Interface methods for adding addional show text for AbstractDimArray/AbstractDimStack subtypes.

Always include kw to avoid future breaking changes

Additional keywords may be added at any time.

Note - a anssi box is left unclosed. This method needs to close it, or add more. maxlen is the maximum length of the inner text.

Most likely you always want to at least close the show blocks with:

'''julia print_block_close(io, maxlen) '''

But read the DimensionalData.jl show.jl code for details.

source


`,77),t=[h];function l(p,k,r,d,o,E){return a(),i("div",null,t)}const y=s(e,[["render",l]]);export{c as __pageData,y as default}; diff --git a/previews/PR615/assets/api_reference.md.2x9n2k84.lean.js b/previews/PR615/assets/api_reference.md.Qucofgn7.lean.js similarity index 84% rename from previews/PR615/assets/api_reference.md.2x9n2k84.lean.js rename to previews/PR615/assets/api_reference.md.Qucofgn7.lean.js index 061564e86..315826886 100644 --- a/previews/PR615/assets/api_reference.md.2x9n2k84.lean.js +++ b/previews/PR615/assets/api_reference.md.Qucofgn7.lean.js @@ -1 +1 @@ -import{_ as s,c as i,o as a,V as n}from"./chunks/framework.uHRfREZ8.js";const c=JSON.parse('{"title":"API Reference","description":"","frontmatter":{},"headers":[],"relativePath":"api/reference.md","filePath":"api/reference.md","lastUpdated":null}'),e={name:"api/reference.md"},h=n("",78),t=[h];function l(p,k,r,d,o,E){return a(),i("div",null,t)}const y=s(e,[["render",l]]);export{c as __pageData,y as default}; +import{_ as s,c as i,o as a,V as n}from"./chunks/framework.uHRfREZ8.js";const c=JSON.parse('{"title":"API Reference","description":"","frontmatter":{},"headers":[],"relativePath":"api/reference.md","filePath":"api/reference.md","lastUpdated":null}'),e={name:"api/reference.md"},h=n("",77),t=[h];function l(p,k,r,d,o,E){return a(),i("div",null,t)}const y=s(e,[["render",l]]);export{c as __pageData,y as default}; diff --git a/previews/PR615/assets/app.e4UbLYAj.js b/previews/PR615/assets/app.FphDyMGP.js similarity index 95% rename from previews/PR615/assets/app.e4UbLYAj.js rename to previews/PR615/assets/app.FphDyMGP.js index b31b3ba8b..bb3ed2d80 100644 --- a/previews/PR615/assets/app.e4UbLYAj.js +++ b/previews/PR615/assets/app.FphDyMGP.js @@ -1,4 +1,4 @@ -import{j as o,a7 as p,a8 as u,a9 as c,aa as l,ab as f,ac as d,ad as m,ae as h,af as A,ag as g,Y as v,d as P,u as w,l as y,z as C,ah as R,ai as _,aj as b,a6 as E}from"./chunks/framework.uHRfREZ8.js";import{R as j}from"./chunks/theme.his4gRmt.js";function i(e){if(e.extends){const a=i(e.extends);return{...a,...e,async enhanceApp(t){a.enhanceApp&&await a.enhanceApp(t),e.enhanceApp&&await e.enhanceApp(t)}}}return e}const s=i(j),D=P({name:"VitePressApp",setup(){const{site:e,lang:a,dir:t}=w();return y(()=>{C(()=>{document.documentElement.lang=a.value,document.documentElement.dir=t.value})}),e.value.router.prefetchLinks&&R(),_(),b(),s.setup&&s.setup(),()=>E(s.Layout)}});async function T(){const e=O(),a=L();a.provide(u,e);const t=c(e.route);return a.provide(l,t),a.component("Content",f),a.component("ClientOnly",d),Object.defineProperties(a.config.globalProperties,{$frontmatter:{get(){return t.frontmatter.value}},$params:{get(){return t.page.value.params}}}),s.enhanceApp&&await s.enhanceApp({app:a,router:e,siteData:m}),{app:a,router:e,data:t}}function L(){return h(D)}function O(){let e=o,a;return A(t=>{let n=g(t),r=null;return n&&(e&&(a=n),(e||a===n)&&(n=n.replace(/\.js$/,".lean.js")),r=v(()=>import(n),__vite__mapDeps([]))),o&&(e=!1),r},s.NotFound)}o&&T().then(({app:e,router:a,data:t})=>{a.go().then(()=>{p(a.route,t.site),e.mount("#app")})});export{T as createApp}; +import{j as o,a7 as p,a8 as u,a9 as c,aa as l,ab as f,ac as d,ad as m,ae as h,af as A,ag as g,Y as v,d as P,u as w,l as y,z as C,ah as R,ai as _,aj as b,a6 as E}from"./chunks/framework.uHRfREZ8.js";import{R as j}from"./chunks/theme.mnLIwujL.js";function i(e){if(e.extends){const a=i(e.extends);return{...a,...e,async enhanceApp(t){a.enhanceApp&&await a.enhanceApp(t),e.enhanceApp&&await e.enhanceApp(t)}}}return e}const s=i(j),D=P({name:"VitePressApp",setup(){const{site:e,lang:a,dir:t}=w();return y(()=>{C(()=>{document.documentElement.lang=a.value,document.documentElement.dir=t.value})}),e.value.router.prefetchLinks&&R(),_(),b(),s.setup&&s.setup(),()=>E(s.Layout)}});async function T(){const e=O(),a=L();a.provide(u,e);const t=c(e.route);return a.provide(l,t),a.component("Content",f),a.component("ClientOnly",d),Object.defineProperties(a.config.globalProperties,{$frontmatter:{get(){return t.frontmatter.value}},$params:{get(){return t.page.value.params}}}),s.enhanceApp&&await s.enhanceApp({app:a,router:e,siteData:m}),{app:a,router:e,data:t}}function L(){return h(D)}function O(){let e=o,a;return A(t=>{let n=g(t),r=null;return n&&(e&&(a=n),(e||a===n)&&(n=n.replace(/\.js$/,".lean.js")),r=v(()=>import(n),__vite__mapDeps([]))),o&&(e=!1),r},s.NotFound)}o&&T().then(({app:e,router:a,data:t})=>{a.go().then(()=>{p(a.route,t.site),e.mount("#app")})});export{T as createApp}; function __vite__mapDeps(indexes) { if (!__vite__mapDeps.viteFileDeps) { __vite__mapDeps.viteFileDeps = [] diff --git a/previews/PR615/assets/chunks/@localSearchIndexroot.nbThz6Vz.js b/previews/PR615/assets/chunks/@localSearchIndexroot.nbThz6Vz.js new file mode 100644 index 000000000..ee09e573d --- /dev/null +++ b/previews/PR615/assets/chunks/@localSearchIndexroot.nbThz6Vz.js @@ -0,0 +1 @@ +const e='{"documentCount":80,"nextId":80,"documentIds":{"0":"/DimensionalData.jl/previews/PR615/api/dimensions#Dimensions","1":"/DimensionalData.jl/previews/PR615/api/dimensions#Exported-methods","2":"/DimensionalData.jl/previews/PR615/api/dimensions#Non-exported-methods","3":"/DimensionalData.jl/previews/PR615/api/dimensions#Primitive-methods","4":"/DimensionalData.jl/previews/PR615/api/lookuparrays#LookupArrays","5":"/DimensionalData.jl/previews/PR615/api/lookuparrays#Selectors","6":"/DimensionalData.jl/previews/PR615/api/lookuparrays#LookupArray-traits","7":"/DimensionalData.jl/previews/PR615/api/lookuparrays#Order","8":"/DimensionalData.jl/previews/PR615/api/lookuparrays#Span","9":"/DimensionalData.jl/previews/PR615/api/lookuparrays#Sampling","10":"/DimensionalData.jl/previews/PR615/api/lookuparrays#Loci","11":"/DimensionalData.jl/previews/PR615/api/lookuparrays#Metadata","12":"/DimensionalData.jl/previews/PR615/api/reference#API-Reference","13":"/DimensionalData.jl/previews/PR615/api/reference#Arrays","14":"/DimensionalData.jl/previews/PR615/api/reference#Multi-array-datasets","15":"/DimensionalData.jl/previews/PR615/api/reference#Dimension-generators","16":"/DimensionalData.jl/previews/PR615/api/reference#Tables.jl/TableTraits.jl-interface","17":"/DimensionalData.jl/previews/PR615/api/reference#Utility-methods","18":"/DimensionalData.jl/previews/PR615/api/reference#Name","19":"/DimensionalData.jl/previews/PR615/api/reference#Internal-interface-methods","20":"/DimensionalData.jl/previews/PR615/basics#Installation","21":"/DimensionalData.jl/previews/PR615/cuda#CUDA-and-GPUs","22":"/DimensionalData.jl/previews/PR615/dimensions#Dimensions","23":"/DimensionalData.jl/previews/PR615/dimensions#Examples","24":"/DimensionalData.jl/previews/PR615/dimensions#Use-in-a-DimArray","25":"/DimensionalData.jl/previews/PR615/dimensions#Dimensional-Indexing","26":"/DimensionalData.jl/previews/PR615/dimensions#Indexing-Performance","27":"/DimensionalData.jl/previews/PR615/dimensions#dims-keywords","28":"/DimensionalData.jl/previews/PR615/dimensions#DimIndices","29":"/DimensionalData.jl/previews/PR615/dimensions#Vectors-of-Dimensions","30":"/DimensionalData.jl/previews/PR615/dimensions#How-to-name-dimensions?","31":"/DimensionalData.jl/previews/PR615/dimensions#How-to-name-an-array?","32":"/DimensionalData.jl/previews/PR615/dimensions#Adding-metadata","33":"/DimensionalData.jl/previews/PR615/diskarrays#Example","34":"/DimensionalData.jl/previews/PR615/diskarrays#How-big-is-this-thing?","35":"/DimensionalData.jl/previews/PR615/ext_dd#Extending-DimensionalData","36":"/DimensionalData.jl/previews/PR615/ext_dd#dims","37":"/DimensionalData.jl/previews/PR615/ext_dd#Dimension-axes","38":"/DimensionalData.jl/previews/PR615/ext_dd#dims-keywords","39":"/DimensionalData.jl/previews/PR615/ext_dd#rebuild","40":"/DimensionalData.jl/previews/PR615/ext_dd#rebuild(obj,-...)-argument-table","41":"/DimensionalData.jl/previews/PR615/groupby#groupby","42":"/DimensionalData.jl/previews/PR615/groupby#Basics:-DateTime-operations-we-can-use-for-grouping","43":"/DimensionalData.jl/previews/PR615/groupby#hour","44":"/DimensionalData.jl/previews/PR615/groupby#dayofweek","45":"/DimensionalData.jl/previews/PR615/groupby#month","46":"/DimensionalData.jl/previews/PR615/groupby#dayofyear","47":"/DimensionalData.jl/previews/PR615/groupby#Tuple-grouping","48":"/DimensionalData.jl/previews/PR615/groupby#yearmonth","49":"/DimensionalData.jl/previews/PR615/groupby#Grouping-and-reducing","50":"/DimensionalData.jl/previews/PR615/groupby#Binning","51":"/DimensionalData.jl/previews/PR615/groupby#select-by-month,-days,-years-and-seasons","52":"/DimensionalData.jl/previews/PR615/groupby#select-by-dimension-select-by-dimension","53":"/DimensionalData.jl/previews/PR615/groupby#Group-by-Dims.","54":"/DimensionalData.jl/previews/PR615/groupby#Apply-custom-function-(i.e.-normalization)-to-grouped-output.","55":"/DimensionalData.jl/previews/PR615/integrations#Integrations","56":"/DimensionalData.jl/previews/PR615/integrations#Spatial-sciences","57":"/DimensionalData.jl/previews/PR615/integrations#Rasters.jl","58":"/DimensionalData.jl/previews/PR615/integrations#YAXArrays.jl","59":"/DimensionalData.jl/previews/PR615/integrations#ClimateBase.jl","60":"/DimensionalData.jl/previews/PR615/integrations#Statistics","61":"/DimensionalData.jl/previews/PR615/integrations#ArviZ.jl","62":"/DimensionalData.jl/previews/PR615/integrations#Optimization","63":"/DimensionalData.jl/previews/PR615/integrations#JuMP.jl","64":"/DimensionalData.jl/previews/PR615/integrations#Simulations","65":"/DimensionalData.jl/previews/PR615/integrations#CryoGrid.jl","66":"/DimensionalData.jl/previews/PR615/integrations#DynamicGrids.jl","67":"/DimensionalData.jl/previews/PR615/integrations#Analysis","68":"/DimensionalData.jl/previews/PR615/integrations#AstroImages.jl","69":"/DimensionalData.jl/previews/PR615/integrations#TimeseriesTools.jl","70":"/DimensionalData.jl/previews/PR615/lookup_customization#lookup-customization","71":"/DimensionalData.jl/previews/PR615/lookup_customization#Defaults","72":"/DimensionalData.jl/previews/PR615/lookup_customization#custom-lookup-properties","73":"/DimensionalData.jl/previews/PR615/lookup_customization#modifying-existing-lookups","74":"/DimensionalData.jl/previews/PR615/plots#Plots.jl","75":"/DimensionalData.jl/previews/PR615/plots#Makie.jl","76":"/DimensionalData.jl/previews/PR615/selectors#Selectors-and-LookupArrays","77":"/DimensionalData.jl/previews/PR615/stacks#Stacks","78":"/DimensionalData.jl/previews/PR615/stacks#Performance","79":"/DimensionalData.jl/previews/PR615/tables#Tables-and-DataFrames"},"fieldIds":{"title":0,"titles":1,"text":2},"fieldLength":{"0":[1,1,292],"1":[2,2,118],"2":[3,2,105],"3":[2,2,360],"4":[1,1,494],"5":[1,1,317],"6":[2,1,41],"7":[1,3,73],"8":[1,3,94],"9":[1,3,66],"10":[1,3,87],"11":[1,1,105],"12":[2,1,1],"13":[1,2,443],"14":[3,2,221],"15":[2,2,185],"16":[4,2,123],"17":[2,1,587],"18":[1,2,61],"19":[3,2,107],"20":[1,1,14],"21":[3,1,179],"22":[1,1,99],"23":[1,1,1],"24":[4,1,135],"25":[2,1,311],"26":[2,1,94],"27":[2,1,184],"28":[1,1,1],"29":[3,1,1],"30":[5,1,1],"31":[6,1,1],"32":[2,1,1],"33":[1,1,92],"34":[6,1,120],"35":[2,1,67],"36":[1,2,18],"37":[2,3,55],"38":[2,3,46],"39":[1,2,106],"40":[4,2,47],"41":[1,1,22],"42":[8,1,70],"43":[1,8,36],"44":[1,8,11],"45":[1,8,11],"46":[1,8,11],"47":[2,8,22],"48":[1,8,54],"49":[3,1,186],"50":[1,1,186],"51":[7,1,98],"52":[2,1,196],"53":[4,2,57],"54":[10,2,1],"55":[1,1,1],"56":[2,1,1],"57":[2,3,69],"58":[2,3,37],"59":[2,3,12],"60":[1,1,1],"61":[2,1,18],"62":[1,1,1],"63":[2,2,24],"64":[1,1,1],"65":[2,2,18],"66":[2,2,34],"67":[1,1,1],"68":[2,2,15],"69":[2,2,15],"70":[2,1,1],"71":[1,2,1],"72":[3,2,1],"73":[3,2,1],"74":[2,1,50],"75":[2,1,74],"76":[3,1,166],"77":[1,1,92],"78":[1,1,46],"79":[3,1,76]},"averageFieldLength":[2.2,2.025000000000001,89.62500000000004],"storedFields":{"0":{"title":"Dimensions","titles":[]},"1":{"title":"Exported methods","titles":["Dimensions",null]},"2":{"title":"Non-exported methods","titles":["Dimensions",null]},"3":{"title":"Primitive methods","titles":["Dimensions",null]},"4":{"title":"LookupArrays","titles":[]},"5":{"title":"Selectors","titles":["LookupArrays"]},"6":{"title":"LookupArray traits","titles":["LookupArrays"]},"7":{"title":"Order","titles":["LookupArrays","LookupArray traits"]},"8":{"title":"Span","titles":["LookupArrays","LookupArray traits"]},"9":{"title":"Sampling","titles":["LookupArrays","LookupArray traits"]},"10":{"title":"Loci","titles":["LookupArrays","LookupArray traits"]},"11":{"title":"Metadata","titles":["LookupArrays"]},"12":{"title":"API Reference","titles":[]},"13":{"title":"Arrays","titles":["API Reference"]},"14":{"title":"Multi-array datasets","titles":["API Reference"]},"15":{"title":"Dimension generators","titles":["API Reference"]},"16":{"title":"Tables.jl/TableTraits.jl interface","titles":["API Reference"]},"17":{"title":"Utility methods","titles":[]},"18":{"title":"Name","titles":["Utility methods"]},"19":{"title":"Internal interface methods","titles":["Utility methods"]},"20":{"title":"Installation","titles":[]},"21":{"title":"CUDA & GPUs","titles":[]},"22":{"title":"Dimensions","titles":[]},"23":{"title":"Examples","titles":["Dimensions"]},"24":{"title":"Use in a DimArray","titles":["Dimensions"]},"25":{"title":"Dimensional Indexing","titles":["Dimensions"]},"26":{"title":"Indexing Performance","titles":["Dimensions"]},"27":{"title":"dims keywords","titles":["Dimensions"]},"28":{"title":"DimIndices","titles":["Dimensions"]},"29":{"title":"Vectors of Dimensions","titles":["Dimensions"]},"30":{"title":"How to name dimensions?","titles":["Dimensions"]},"31":{"title":"How to name an array?","titles":["Dimensions"]},"32":{"title":"Adding metadata","titles":["Dimensions"]},"33":{"title":"Example","titles":[]},"34":{"title":"How big is this thing?","titles":[]},"35":{"title":"Extending DimensionalData","titles":[]},"36":{"title":"dims","titles":["Extending DimensionalData"]},"37":{"title":"Dimension axes","titles":["Extending DimensionalData","dims"]},"38":{"title":"dims keywords","titles":["Extending DimensionalData","dims"]},"39":{"title":"rebuild","titles":["Extending DimensionalData"]},"40":{"title":"rebuild(obj, ...) argument table","titles":["Extending DimensionalData"]},"41":{"title":"groupby","titles":[]},"42":{"title":"Basics: DateTime operations we can use for grouping","titles":[]},"43":{"title":"hour","titles":["Basics: DateTime operations we can use for grouping"]},"44":{"title":"dayofweek","titles":["Basics: DateTime operations we can use for grouping"]},"45":{"title":"month","titles":["Basics: DateTime operations we can use for grouping"]},"46":{"title":"dayofyear","titles":["Basics: DateTime operations we can use for grouping"]},"47":{"title":"Tuple grouping","titles":["Basics: DateTime operations we can use for grouping"]},"48":{"title":"yearmonth","titles":["Basics: DateTime operations we can use for grouping"]},"49":{"title":"Grouping and reducing","titles":[]},"50":{"title":"Binning","titles":[]},"51":{"title":"select by month, days, years and seasons","titles":["Binning"]},"52":{"title":"Select by","titles":[]},"53":{"title":"Group by Dims.","titles":["Select by"]},"54":{"title":"Apply custom function (i.e. normalization) to grouped output.","titles":["Select by"]},"55":{"title":"Integrations","titles":[]},"56":{"title":"Spatial sciences","titles":["Integrations"]},"57":{"title":"Rasters.jl","titles":["Integrations","Spatial sciences"]},"58":{"title":"YAXArrays.jl","titles":["Integrations","Spatial sciences"]},"59":{"title":"ClimateBase.jl","titles":["Integrations","Spatial sciences"]},"60":{"title":"Statistics","titles":["Integrations"]},"61":{"title":"ArviZ.jl","titles":["Integrations"]},"62":{"title":"Optimization","titles":["Integrations"]},"63":{"title":"JuMP.jl","titles":["Integrations","Optimization"]},"64":{"title":"Simulations","titles":["Integrations"]},"65":{"title":"CryoGrid.jl","titles":["Integrations","Simulations"]},"66":{"title":"DynamicGrids.jl","titles":["Integrations","Simulations"]},"67":{"title":"Analysis","titles":["Integrations"]},"68":{"title":"AstroImages.jl","titles":["Integrations","Analysis"]},"69":{"title":"TimeseriesTools.jl","titles":["Integrations","Analysis"]},"70":{"title":"lookup customization","titles":[]},"71":{"title":"Defaults","titles":["lookup customization"]},"72":{"title":"custom lookup properties","titles":["lookup customization"]},"73":{"title":"modifying existing lookups","titles":["lookup customization"]},"74":{"title":"Plots.jl","titles":[]},"75":{"title":"Makie.jl","titles":[]},"76":{"title":"Selectors and LookupArrays","titles":[]},"77":{"title":"Stacks","titles":[]},"78":{"title":"Performance","titles":[]},"79":{"title":"Tables and DataFrames","titles":[]}},"dirtCount":0,"index":[["⋱",{"2":{"33":1,"34":1,"49":1,"52":3}}],["▂",{"2":{"26":1}}],["▆█",{"2":{"26":2}}],["██▁▁▁▁▁▁▁▁▁▁▁▁██▁▁▁▁▁▁▁▁▁▁▁▁▆█▁▃▁▁▁▁▁▁▁▁▁▁██▁▁▁▁▁▁▁▁▁▁▁▁██",{"2":{"26":1}}],["██▁▁▁▁▁▁▁▁▁▁▁▁██▁▁▁▁▁▁▁▁▁▁▁▁█▁█▁▁▁▁▁▁▁▁▁▁▁▁█▇▁▁▁▁▁▁▁▁▁▁▁▁▇",{"2":{"26":1}}],["█",{"2":{"26":2}}],["█▆",{"2":{"26":1}}],["▁",{"2":{"26":2}}],["▃",{"2":{"26":2}}],["▅",{"2":{"26":1}}],["▅▃",{"2":{"26":1}}],["σ",{"2":{"26":4}}],["±",{"2":{"26":8}}],["┊",{"2":{"26":6}}],["⬒",{"2":{"25":1}}],["◩",{"2":{"25":1}}],["⬔",{"2":{"25":1}}],["↗",{"2":{"25":2,"27":3}}],["└─────────────────────────┘",{"2":{"24":1,"25":1,"26":1,"27":1}}],["└───────────────────────────┘",{"2":{"27":3}}],["└────────────────────────────┘",{"2":{"25":1}}],["└──────────────────────────────────┘",{"2":{"25":1}}],["└───────────────────────────────────────────────────────────────┘",{"2":{"50":1}}],["└─────────────────────────────────────────────────────────────────────────┘",{"2":{"49":1}}],["└──────────────────────────────────────────────────────────────────────────────┘",{"2":{"49":4,"50":4,"51":2,"52":6,"53":1}}],["└───────────────────────────────────────────────────────────────────────┘",{"2":{"49":3}}],["└──────────────────────────────────────────────────────────────────────┘",{"2":{"33":1}}],["└───────────────────────────────────────────────────────────────────┘",{"2":{"15":1,"34":1}}],["└───────────────────────────────────────────────────────┘",{"2":{"15":1,"50":1}}],["└────────────────────────────────┘",{"2":{"24":1}}],["└───────────────────────────────┘",{"2":{"24":1}}],["└──────────────────────────┘",{"2":{"24":1}}],["├───────────────────",{"2":{"24":1,"25":1,"26":1,"27":1}}],["├─────────────────────",{"2":{"27":3}}],["├──────────────────────",{"2":{"25":1}}],["├───────────────────────────┴─────────────────────────────────",{"2":{"34":1}}],["├────────────────────────────┴───────────────────────────────────────────",{"2":{"52":2}}],["├───────────────────────────────┴─────────────────────────",{"2":{"50":1}}],["├───────────────────────────────┴────────────────────────────────────────",{"2":{"49":1,"50":3,"51":2,"52":1}}],["├───────────────────────────────┴────────────────────────────────",{"2":{"33":1}}],["├───────────────────────────────┴─────────────────",{"2":{"50":1}}],["├───────────────────────────────────┴────────────────────────────────────",{"2":{"53":1}}],["├─────────────────────────────────────────────",{"2":{"50":1}}],["├─────────────────────────────────────────────────────",{"2":{"50":1}}],["├───────────────────────────────────────────────────────────",{"2":{"49":1}}],["├────────────────────────────────────────────────────────────────────",{"2":{"49":3,"50":4,"51":2,"52":4,"53":1}}],["├───────────────────────────────────────────────────────────────",{"2":{"49":1}}],["├─────────────────────────────────────────────────────────────",{"2":{"49":3}}],["├──────────────────────────────────────────────┴──",{"2":{"15":1}}],["├────────────────────────────────────────┴────────────────────────",{"2":{"49":1}}],["├─────────────────────────────────┴──────────────────────────────────────",{"2":{"49":2}}],["├─────────────────────────────────┴─────────────────────────────────",{"2":{"49":1}}],["├────────────────────────────────┴───────────────────────────────────────",{"2":{"49":1,"50":1,"52":3}}],["├────────────────────────────────┴────────────────────────────────",{"2":{"49":2}}],["├────────────────────────────",{"2":{"25":1}}],["├──────────────────────────",{"2":{"24":1}}],["├─────────────────────────",{"2":{"24":1}}],["├─────────────────────────┴───────────────────────────────────",{"2":{"15":1}}],["├────────────────────",{"2":{"24":1}}],["┤",{"2":{"24":4,"25":3,"26":1,"27":4,"49":8,"50":6,"51":2,"52":4,"53":1}}],["+",{"2":{"17":3}}],["+i",{"2":{"13":1}}],["╭───────────────────────────╮",{"2":{"27":3,"34":1}}],["╭────────────────────────────╮",{"2":{"25":1,"52":2}}],["╭─────────────────────────────────╮",{"2":{"49":3}}],["╭───────────────────────────────────╮",{"2":{"53":1}}],["╭────────────────────────────────────────╮",{"2":{"49":1}}],["╭──────────────────────────────────────────────╮",{"2":{"15":1}}],["╭──────────────────────────────────╮",{"2":{"25":1}}],["╭────────────────────────────────╮",{"2":{"24":1,"49":3,"50":1,"52":3}}],["╭───────────────────────────────╮",{"2":{"24":1,"33":1,"49":1,"50":5,"51":2,"52":1}}],["╭──────────────────────────╮",{"2":{"24":1}}],["╭─────────────────────────╮",{"2":{"15":1,"24":1,"25":1,"26":1,"27":1}}],["→",{"2":{"15":7,"24":2,"25":3,"26":1,"27":4,"33":2,"34":2,"49":3,"52":6}}],["↓",{"2":{"15":7,"24":4,"25":3,"26":1,"27":5,"33":2,"34":2,"49":10,"50":6,"51":2,"52":9,"53":1}}],["┐",{"2":{"15":2,"33":1,"34":1,"49":8,"50":6,"51":2,"52":6,"53":1}}],["│",{"2":{"15":4,"24":8,"25":6,"26":2,"27":8,"33":2,"34":2,"49":16,"50":12,"51":4,"52":12,"53":2}}],["$a2",{"2":{"26":2}}],["$",{"2":{"13":4}}],["𝐓",{"2":{"5":4}}],[">",{"2":{"5":3,"14":1,"15":2,"17":6,"50":2,"52":1}}],["98",{"2":{"33":2,"34":1,"49":2,"52":2}}],["989111",{"2":{"25":1}}],["94",{"2":{"33":1}}],["94754",{"2":{"27":1}}],["944133",{"2":{"25":1}}],["952888",{"2":{"25":1}}],["951395",{"2":{"25":1}}],["93793",{"2":{"25":1}}],["938235",{"2":{"13":1}}],["92949e",{"2":{"49":1}}],["929476",{"2":{"25":1}}],["929342",{"2":{"24":1}}],["920968",{"2":{"25":1}}],["920632",{"2":{"25":1}}],["975583",{"2":{"25":1}}],["979994",{"2":{"25":1}}],["97007",{"2":{"25":1}}],["972994",{"2":{"24":1}}],["998837",{"2":{"49":1}}],["99",{"2":{"33":1,"34":1,"49":2,"52":2}}],["999741",{"2":{"49":1}}],["999717",{"2":{"13":1}}],["999671",{"2":{"49":1}}],["999661",{"2":{"49":1}}],["9992",{"2":{"34":1}}],["99999",{"2":{"34":1}}],["999",{"2":{"33":5}}],["99389",{"2":{"24":1}}],["961429",{"2":{"52":1}}],["961574",{"2":{"24":1}}],["965629",{"2":{"25":1}}],["96",{"2":{"5":2,"33":1}}],["91858",{"2":{"52":2}}],["9185833333333333",{"2":{"52":2}}],["918031",{"2":{"25":1}}],["91402",{"2":{"25":1}}],["911592",{"2":{"25":1}}],["915945",{"2":{"24":1}}],["91",{"2":{"5":2}}],["90u",{"2":{"5":1}}],["9",{"2":{"4":2,"13":1,"17":8,"25":1,"43":1,"50":8,"51":4,"52":3}}],["765988",{"2":{"52":1}}],["763169",{"2":{"27":2}}],["768661",{"2":{"25":1}}],["72",{"2":{"50":1}}],["724304",{"2":{"49":1,"52":1}}],["724983",{"2":{"27":1}}],["726701",{"2":{"25":1}}],["7475e",{"2":{"49":1}}],["746619",{"2":{"25":1}}],["749707",{"2":{"25":1}}],["78",{"2":{"26":1}}],["785",{"2":{"26":1}}],["787081",{"2":{"25":1}}],["780547",{"2":{"25":1}}],["783786",{"2":{"25":1}}],["783855",{"2":{"13":1}}],["717744",{"2":{"25":1}}],["71441",{"2":{"24":1}}],["75275",{"2":{"51":4}}],["752868",{"2":{"13":1}}],["750123",{"2":{"25":1}}],["755677",{"2":{"25":1}}],["753309",{"2":{"25":1}}],["757139",{"2":{"25":1}}],["776753",{"2":{"25":1}}],["771862",{"2":{"15":1}}],["73",{"2":{"50":1}}],["730",{"2":{"49":2}}],["73873",{"2":{"27":1}}],["739143",{"2":{"25":1}}],["732953",{"2":{"25":1}}],["731713",{"2":{"25":1}}],["79",{"2":{"34":1,"49":1}}],["795",{"2":{"26":1}}],["79595",{"2":{"24":1}}],["790923",{"2":{"24":1}}],["7",{"2":{"4":4,"5":5,"17":4,"25":3,"43":1,"44":9,"50":4,"51":3,"52":2}}],["quantity",{"2":{"5":2}}],["quot",{"2":{"3":2,"6":2,"13":6,"22":2}}],["query",{"2":{"1":12,"3":6}}],["right",{"2":{"47":1,"75":2}}],["runs",{"2":{"34":1}}],["runtime",{"2":{"26":1}}],["running",{"2":{"21":1,"50":1}}],["rowslices",{"2":{"17":1}}],["rows",{"2":{"16":1}}],["rotated",{"2":{"4":1}}],["rotations",{"2":{"3":1}}],["r",{"2":{"13":2}}],["rng",{"2":{"13":6}}],["rng=default",{"2":{"13":1}}],["rtoldefault",{"2":{"5":1}}],["rtol=nothing",{"2":{"5":1}}],["rtol",{"2":{"5":3}}],["rainclouds",{"2":{"75":1}}],["raw",{"2":{"50":1}}],["rasterization",{"2":{"57":1}}],["rasterize",{"2":{"5":1}}],["rasters",{"0":{"57":1},"2":{"35":1,"53":1,"57":1,"58":1}}],["rasterstack",{"2":{"35":1,"57":1}}],["raster",{"2":{"35":1,"57":4}}],["ram",{"2":{"34":1}}],["rational",{"2":{"17":1}}],["rather",{"2":{"3":1,"4":2,"5":1,"9":1,"21":1}}],["radius",{"2":{"15":1,"17":1}}],["rafaqz",{"2":{"15":1,"17":1}}],["randn",{"2":{"13":2,"17":2}}],["random",{"2":{"13":4}}],["rand",{"2":{"4":3,"13":18,"16":1,"17":1,"21":1,"24":2,"25":2,"27":1,"49":1,"75":1}}],["ranges",{"2":{"5":1,"50":3}}],["range",{"2":{"4":2,"5":1,"13":2,"17":1,"24":1,"26":2,"42":2,"50":1,"57":1}}],["receive",{"2":{"39":1}}],["reconstruction",{"2":{"13":1,"39":1}}],["regurn",{"2":{"25":1}}],["regular",{"2":{"0":6,"2":1,"4":7,"5":8,"8":4,"13":4,"15":1,"16":1,"17":10,"21":1,"25":2,"33":2,"34":2,"35":1,"38":1,"49":2,"50":1,"52":6,"53":1}}],["remaining",{"2":{"25":1}}],["removing",{"2":{"14":1}}],["removed",{"2":{"5":1}}],["reasons",{"2":{"57":1}}],["reason",{"2":{"21":1,"57":1}}],["reads",{"2":{"34":1}}],["read",{"2":{"19":2}}],["real",{"2":{"4":1,"34":1}}],["really",{"2":{"3":1}}],["rev",{"2":{"17":2}}],["reversal",{"2":{"17":1}}],["reverseordered",{"2":{"4":5,"7":3}}],["reverse",{"2":{"4":1,"7":1,"17":4,"27":1,"77":1}}],["reversed",{"2":{"4":1}}],["reorder",{"2":{"17":8,"75":1}}],["resolution",{"2":{"52":1}}],["resolve",{"2":{"14":1,"25":1}}],["resample",{"2":{"52":3}}],["restored",{"2":{"17":1}}],["reshaping",{"2":{"17":2}}],["result",{"2":{"5":1,"14":1,"17":4,"25":1,"79":1}}],["results",{"2":{"5":2,"74":1}}],["re",{"2":{"13":1}}],["reductions",{"2":{"13":1}}],["reducing",{"0":{"49":1},"2":{"13":1}}],["reduce",{"2":{"3":1,"27":1}}],["reduced",{"2":{"3":1}}],["reducedims",{"2":{"3":1}}],["rebuilt",{"2":{"13":1,"17":1}}],["rebuilding",{"2":{"17":1}}],["rebuild",{"0":{"39":1,"40":1},"2":{"4":2,"13":2,"14":2,"17":5,"19":2,"21":1,"35":1,"39":7,"40":1}}],["requires",{"2":{"13":1,"17":2}}],["require",{"2":{"9":1}}],["required",{"2":{"0":1,"3":1,"11":1,"16":1,"17":4,"21":1}}],["retreives",{"2":{"5":1}}],["retreive",{"2":{"5":1}}],["returning",{"2":{"3":1,"11":1,"17":2,"77":2}}],["returns",{"2":{"3":3,"5":1,"11":2,"13":3,"14":2,"17":1,"50":1,"77":1}}],["returned",{"2":{"1":1,"3":2,"4":1,"13":2,"17":4,"22":1}}],["return",{"2":{"1":3,"3":3,"4":10,"5":2,"13":5,"14":7,"17":7,"36":1,"37":2,"38":2,"47":1,"48":1,"78":1}}],["reliable",{"2":{"4":1}}],["related",{"2":{"3":1,"21":1,"25":1}}],["relative",{"2":{"3":1}}],["relationship",{"2":{"0":1}}],["repl",{"2":{"34":1,"76":1}}],["replaces",{"2":{"3":1,"21":1}}],["replaced",{"2":{"3":1,"8":1}}],["replace",{"2":{"3":2,"17":1}}],["repeat",{"2":{"17":1}}],["represents",{"2":{"37":1,"77":1}}],["representing",{"2":{"4":1}}],["represent",{"2":{"4":1,"10":1}}],["rewraps",{"2":{"3":1}}],["refvalue",{"2":{"34":1}}],["reflect",{"2":{"13":1}}],["refence",{"2":{"13":1}}],["refer",{"2":{"0":1,"9":1}}],["reference",{"0":{"12":1},"1":{"13":1,"14":1,"15":1,"16":1},"2":{"0":2,"3":3,"13":3,"35":1,"76":1}}],["refdim",{"2":{"3":1}}],["refdims=",{"2":{"13":1}}],["refdims",{"2":{"3":4,"13":9,"17":2,"19":1,"39":1,"40":2}}],["ref",{"2":{"0":1,"3":1,"13":1,"76":4}}],["kind",{"2":{"42":1}}],["kinds",{"2":{"13":4}}],["knows",{"2":{"35":1}}],["know",{"2":{"25":1,"27":1}}],["knowing",{"2":{"25":1}}],["known",{"2":{"4":5,"10":1,"25":1}}],["kw",{"2":{"3":4,"4":1,"11":1,"13":10,"17":3,"19":6,"39":2,"40":2}}],["kernels",{"2":{"21":1}}],["kernelabstractions",{"2":{"21":1}}],["kernel",{"2":{"21":1}}],["keeping",{"2":{"3":1,"25":1}}],["keep",{"2":{"3":1,"17":2,"18":1,"50":1}}],["key",{"2":{"17":3,"35":1,"79":1}}],["key2dim",{"2":{"3":3}}],["keys=",{"2":{"17":2}}],["keys=keys",{"2":{"17":2}}],["keys",{"2":{"0":1,"11":2,"14":1,"17":2}}],["keywords",{"0":{"27":1,"38":1},"2":{"3":1,"4":2,"13":4,"15":1,"16":1,"17":1,"19":3,"24":2,"27":1,"39":1,"40":3}}],["keyword",{"2":{"0":1,"4":3,"14":1,"17":4,"38":1,"39":2}}],["kept",{"2":{"0":1,"3":1}}],["ui",{"2":{"69":1}}],["utils",{"2":{"17":1}}],["utility",{"0":{"17":1},"1":{"18":1,"19":1}}],["u>base",{"2":{"17":1}}],["u>",{"2":{"15":1,"17":1}}],["u>dimensionaldata",{"2":{"15":1}}],["updating",{"2":{"39":1}}],["update",{"2":{"17":3}}],["updates",{"2":{"13":1}}],["updated",{"2":{"3":2,"17":4}}],["up",{"2":{"21":1}}],["upperbound",{"2":{"8":1}}],["upper",{"2":{"5":1,"8":1}}],["unevenly",{"2":{"79":1}}],["unexpected",{"2":{"13":1,"17":1}}],["unrolled",{"2":{"79":1}}],["unclosed",{"2":{"19":1}}],["until",{"2":{"17":1,"34":1}}],["unmerged",{"2":{"17":1}}],["unmergedims",{"2":{"17":2}}],["unmatched",{"2":{"1":1}}],["unknown",{"2":{"15":1}}],["unwrapped",{"2":{"4":1}}],["unaltered",{"2":{"4":1}}],["unaligned",{"2":{"4":4}}],["undefined",{"2":{"4":1,"13":2}}],["underlying",{"2":{"1":1,"4":1,"13":1,"17":1}}],["unless",{"2":{"4":4,"5":1,"13":1,"25":1,"79":1}}],["unlike",{"2":{"3":2,"11":1,"15":1,"25":1}}],["unordered",{"2":{"4":6,"7":3,"13":3,"50":1,"51":1,"52":2}}],["unitrange",{"2":{"50":3,"52":2}}],["unitful",{"2":{"5":3}}],["units",{"2":{"2":1}}],["unionall",{"2":{"3":1}}],["union",{"2":{"2":1,"3":1,"4":5,"5":1,"11":1,"13":1,"17":2,"18":1}}],["us",{"2":{"11":1,"21":1,"22":1,"25":1,"27":1}}],["usually",{"2":{"3":2,"13":1,"42":1,"76":1}}],["uses",{"2":{"4":1,"8":1,"21":2,"22":1,"65":1,"69":1}}],["useful",{"2":{"1":1,"3":3,"4":6,"15":1,"17":1,"27":1}}],["use",{"0":{"24":1,"42":1},"1":{"43":1,"44":1,"45":1,"46":1,"47":1,"48":1},"2":{"0":2,"3":1,"4":2,"5":3,"7":1,"13":4,"14":3,"17":1,"18":3,"21":1,"24":2,"25":1,"39":1,"47":1,"49":1,"50":2,"51":1,"79":1}}],["used",{"2":{"0":6,"3":5,"4":7,"5":3,"6":1,"8":1,"9":1,"14":2,"15":2,"17":3,"22":1,"24":1,"25":2,"27":1,"39":3,"42":1,"48":1,"66":1,"75":1}}],["usingally",{"2":{"78":1}}],["using",{"2":{"0":2,"1":3,"3":2,"4":5,"5":2,"11":2,"13":6,"14":1,"16":1,"17":7,"20":1,"21":1,"22":1,"24":2,"25":1,"27":2,"39":2,"42":2,"49":1,"76":1}}],["v1",{"2":{"78":1}}],["visualise",{"2":{"68":1}}],["views",{"2":{"17":2,"65":1}}],["view",{"2":{"3":1,"13":1,"14":2,"15":1,"17":1,"25":1,"34":1}}],["vcat",{"2":{"17":1}}],["v2",{"2":{"13":6}}],["v",{"2":{"13":6}}],["versions",{"2":{"39":2}}],["version",{"2":{"14":1,"17":2,"20":1,"39":1,"79":1}}],["very",{"2":{"13":3,"14":2,"58":1,"78":1}}],["vectors",{"0":{"29":1},"2":{"3":1,"25":1}}],["vector",{"2":{"0":2,"4":2,"5":1,"13":18,"14":1,"17":5,"25":2,"43":1,"44":1,"45":1,"46":1,"48":2,"50":4,"76":4}}],["varable",{"2":{"75":1}}],["vararg",{"2":{"1":2,"2":1,"3":7,"4":8,"13":7,"14":2,"16":1,"17":3,"19":1,"25":1}}],["var",{"2":{"27":1}}],["valtype",{"2":{"3":1}}],["valid",{"2":{"3":1,"4":1}}],["val=",{"2":{"0":5}}],["values",{"2":{"3":6,"4":10,"5":12,"7":1,"9":2,"10":3,"13":5,"14":3,"15":3,"17":3,"25":1,"37":1,"39":1,"42":1,"47":1,"50":1,"74":1,"76":8}}],["value",{"2":{"0":1,"3":2,"4":2,"5":12,"8":1,"9":1,"10":4,"13":16,"14":3,"18":1,"24":2,"76":3,"77":1,"78":1}}],["val",{"2":{"0":6,"3":1,"4":7,"11":1,"17":7,"38":2,"40":4}}],["`selector`s",{"2":{"76":1}}],["`sampled",{"2":{"76":1}}],["`regular`",{"2":{"76":1}}],["`points`",{"2":{"76":1}}],["`unordered`",{"2":{"76":1}}],["`unitrange`",{"2":{"76":4}}],["`ordered`",{"2":{"76":1}}],["`openinterval",{"2":{"5":1,"76":1}}],["`touches",{"2":{"76":1}}],["`b`",{"2":{"76":2}}],["`bitarray`",{"2":{"33":1}}],["`abstractsampled`",{"2":{"76":1}}],["`a`",{"2":{"76":2}}],["`a",{"2":{"76":1}}],["`at",{"2":{"76":1}}],["`x`",{"2":{"76":1}}],["`nolookup",{"2":{"76":1}}],["`not",{"2":{"76":1}}],["`near",{"2":{"76":1}}],["`vector",{"2":{"76":2}}],["`where",{"2":{"76":1}}],["`cyclic",{"2":{"76":1}}],["`categorical",{"2":{"76":1}}],["`contains",{"2":{"76":1}}],["`cuarray`",{"2":{"21":1}}],["`irregular`",{"2":{"76":1}}],["`intervals`",{"2":{"76":1}}],["`interval",{"2":{"76":1}}],["`int",{"2":{"76":3}}],["`isbits",{"2":{"18":1}}],["`modify`",{"2":{"21":1}}],["`da`",{"2":{"17":1}}],["`dimkeys`",{"2":{"15":1}}],["```julia",{"2":{"15":1,"17":1}}],["`",{"2":{"0":1,"76":21}}],["night",{"2":{"50":1}}],["nice",{"2":{"33":1}}],["nanoseconds",{"2":{"78":1}}],["nan",{"2":{"50":5,"51":3,"52":7}}],["names",{"2":{"16":1,"17":1,"18":1,"22":2,"24":1}}],["name=",{"2":{"14":3}}],["name=noname",{"2":{"13":1}}],["name",{"0":{"18":1,"30":1,"31":1},"2":{"2":1,"13":10,"16":1,"17":3,"18":11,"21":3,"22":1,"24":1,"38":1,"39":1,"40":1,"77":2,"79":1}}],["namedtuple",{"2":{"11":3,"14":12,"17":2,"19":2,"77":2,"78":1}}],["named",{"2":{"0":1,"18":1,"22":1,"63":1}}],["ns",{"2":{"26":14}}],["ndims",{"2":{"17":1}}],["nvidia",{"2":{"17":1}}],["necessary",{"2":{"18":1}}],["necessarily",{"2":{"17":1}}],["neeeds",{"2":{"18":1}}],["needed",{"2":{"21":1}}],["needs",{"2":{"19":1}}],["need",{"2":{"4":1,"14":3,"17":2,"21":3,"27":1}}],["netcdf",{"2":{"10":1}}],["next",{"2":{"5":1}}],["nearly",{"2":{"35":1}}],["nearest",{"2":{"5":3}}],["near",{"2":{"4":2,"5":6,"13":2,"76":2}}],["newdim",{"2":{"3":4}}],["newdims",{"2":{"3":4}}],["new",{"2":{"3":5,"4":1,"13":3,"16":1,"17":13,"21":1,"35":1,"39":1,"77":2}}],["n",{"2":{"1":1,"2":3,"3":1,"4":3,"13":5,"17":1}}],["numbers",{"2":{"13":3}}],["number",{"2":{"1":1,"3":1,"4":1,"5":1,"17":1,"24":1}}],["ntuple",{"2":{"1":3,"2":3,"13":2}}],["now",{"2":{"25":1,"34":1,"42":1,"49":1,"63":1}}],["normalization",{"0":{"54":1}}],["normally",{"2":{"13":1}}],["normal",{"2":{"7":1,"18":1}}],["nolookup",{"2":{"4":11,"13":4,"17":1}}],["no",{"2":{"3":3,"4":1,"11":1,"13":1,"17":2,"26":1,"33":1,"76":1}}],["noname",{"2":{"17":1,"18":5}}],["non",{"0":{"2":1},"2":{"13":2,"14":1}}],["nometada",{"2":{"0":1}}],["nometadata",{"2":{"0":3,"4":3,"11":2,"13":1}}],["notice",{"2":{"15":1}}],["notably",{"2":{"14":2,"66":1}}],["note",{"2":{"13":2,"17":1,"19":1,"21":1,"76":1}}],["notes",{"2":{"4":1,"17":1}}],["nothing",{"2":{"1":1,"3":4,"4":1,"5":3,"8":2,"11":1,"13":1,"34":1}}],["not",{"2":{"0":1,"1":1,"3":6,"4":6,"5":6,"10":1,"13":2,"15":2,"17":6,"18":2,"21":2,"25":5,"27":1,"39":1,"57":1,"74":1,"76":4,"77":1,"79":1}}],["nbsp",{"2":{"0":15,"1":4,"2":4,"3":15,"4":24,"5":10,"6":1,"7":6,"8":5,"9":3,"10":5,"11":3,"13":10,"14":2,"15":2,"16":2,"17":12,"18":3,"19":3}}],["⋮",{"2":{"0":1,"33":3,"34":2,"43":1,"44":1,"45":1,"46":1,"48":2,"49":8,"50":2,"51":1,"52":6,"53":1}}],["8daily",{"2":{"52":1}}],["872746",{"2":{"49":1,"52":1}}],["872946",{"2":{"25":1}}],["892361",{"2":{"49":1,"52":3}}],["894369",{"2":{"25":1}}],["895077",{"2":{"25":1}}],["858837",{"2":{"25":1}}],["810712",{"2":{"52":2}}],["81584",{"2":{"27":1}}],["814319",{"2":{"25":1}}],["818366",{"2":{"25":1}}],["82",{"2":{"26":1}}],["827946",{"2":{"25":1}}],["828036",{"2":{"24":2}}],["841016",{"2":{"25":1}}],["842811",{"2":{"25":1}}],["846559",{"2":{"13":1}}],["860821",{"2":{"49":1,"52":1}}],["865733",{"2":{"25":1}}],["865492",{"2":{"25":1}}],["86959",{"2":{"25":1}}],["8675309",{"2":{"13":7}}],["867",{"2":{"13":1}}],["83717",{"2":{"52":1}}],["8371666666666666",{"2":{"52":1}}],["837621",{"2":{"15":1}}],["832",{"2":{"26":1}}],["835111",{"2":{"13":1}}],["801426",{"2":{"52":1}}],["801966",{"2":{"49":1,"52":1}}],["804",{"2":{"26":1}}],["809188",{"2":{"25":1}}],["802554",{"2":{"25":1}}],["80",{"2":{"4":1,"50":1}}],["8",{"2":{"0":1,"4":1,"5":2,"14":1,"17":6,"25":2,"43":1,"50":10,"51":1,"52":4}}],["697914",{"2":{"52":1}}],["69",{"2":{"49":1}}],["691603",{"2":{"49":1,"52":3}}],["696556",{"2":{"13":1}}],["638012",{"2":{"49":1,"52":1}}],["631059",{"2":{"27":1}}],["65",{"2":{"50":1}}],["658332",{"2":{"27":2}}],["659743",{"2":{"25":1}}],["61808e",{"2":{"49":1}}],["610399",{"2":{"49":1,"52":2}}],["615034",{"2":{"49":1,"52":2}}],["615907",{"2":{"25":1}}],["616222",{"2":{"25":1}}],["625",{"2":{"34":1}}],["623302",{"2":{"25":1}}],["624931",{"2":{"25":1}}],["624231",{"2":{"13":1}}],["671247",{"2":{"25":1}}],["672131",{"2":{"25":1}}],["681925",{"2":{"49":1,"52":1}}],["681658",{"2":{"25":1}}],["687289",{"2":{"24":1}}],["64",{"2":{"34":1,"50":1}}],["644385",{"2":{"25":1}}],["644091",{"2":{"24":1}}],["641016",{"2":{"25":1}}],["664071",{"2":{"24":1}}],["605376",{"2":{"27":2}}],["602401",{"2":{"27":1}}],["606364",{"2":{"25":1}}],["603358",{"2":{"25":1}}],["60",{"2":{"4":1,"5":1}}],["6",{"2":{"0":1,"4":2,"5":18,"14":1,"15":3,"17":9,"25":3,"43":1,"44":10,"49":2,"50":11,"51":4,"52":1}}],["4991",{"2":{"51":1}}],["499792",{"2":{"51":1}}],["499801",{"2":{"51":1}}],["499859",{"2":{"50":1}}],["499817",{"2":{"49":1,"50":2}}],["499661",{"2":{"50":1}}],["499688",{"2":{"50":1}}],["499687",{"2":{"50":1}}],["499308",{"2":{"50":1}}],["49",{"2":{"50":1}}],["498446",{"2":{"50":1,"52":1}}],["498531",{"2":{"49":1}}],["498047",{"2":{"49":1}}],["498734",{"2":{"49":1}}],["498786",{"2":{"49":1}}],["491236",{"2":{"49":1,"52":1}}],["490208",{"2":{"27":2}}],["41",{"2":{"50":1}}],["415",{"2":{"26":1}}],["412067",{"2":{"25":1}}],["411554",{"2":{"25":1}}],["462236",{"2":{"53":1}}],["46607",{"2":{"52":2}}],["46631",{"2":{"25":1}}],["4602",{"2":{"27":2}}],["468886",{"2":{"27":2}}],["464327",{"2":{"24":2}}],["453717",{"2":{"27":2}}],["453234",{"2":{"25":1}}],["45104",{"2":{"27":1}}],["456929",{"2":{"25":1}}],["455256",{"2":{"13":1}}],["443411",{"2":{"53":1}}],["447415",{"2":{"49":1,"52":2}}],["447833",{"2":{"25":1}}],["4444",{"2":{"25":1}}],["444732",{"2":{"25":1}}],["441426",{"2":{"15":1}}],["48",{"2":{"50":1}}],["488616",{"2":{"49":1}}],["480335",{"2":{"25":1}}],["484558",{"2":{"13":1}}],["431064",{"2":{"27":2}}],["431413",{"2":{"25":1}}],["43",{"2":{"26":1}}],["438835",{"2":{"24":2}}],["438654",{"2":{"24":1}}],["43204",{"2":{"13":1}}],["47",{"2":{"50":2,"52":1}}],["473",{"2":{"26":1}}],["471555",{"2":{"25":1}}],["471638",{"2":{"13":1}}],["478834",{"2":{"24":1}}],["4×7",{"2":{"17":1}}],["422341",{"2":{"52":2}}],["42",{"2":{"13":6}}],["400818",{"2":{"25":1}}],["400",{"2":{"17":1}}],["40",{"2":{"4":1,"50":1}}],["4",{"2":{"0":26,"3":1,"4":5,"5":12,"13":5,"14":2,"15":2,"16":1,"17":26,"25":1,"27":1,"34":1,"43":1,"50":12,"51":8,"52":5}}],["07",{"2":{"52":1}}],["080037",{"2":{"52":1}}],["08",{"2":{"33":1,"52":1}}],["0877124",{"2":{"25":1}}],["09",{"2":{"52":1}}],["095",{"2":{"26":1}}],["0945557",{"2":{"25":1}}],["05",{"2":{"52":1}}],["05t03",{"2":{"52":4}}],["0516323",{"2":{"25":1}}],["0547605",{"2":{"25":1}}],["06",{"2":{"33":1,"52":1}}],["0640237",{"2":{"27":1}}],["0623382",{"2":{"25":1}}],["0678402",{"2":{"24":1}}],["0im",{"2":{"13":6}}],["0+0",{"2":{"13":6}}],["0433661",{"2":{"27":1}}],["0422181",{"2":{"25":1}}],["04",{"2":{"0":1,"33":1,"34":1,"52":1}}],["0398404",{"2":{"49":1,"52":1}}],["03",{"2":{"0":1,"33":1,"34":1,"52":1}}],["023",{"2":{"52":2}}],["0224376",{"2":{"49":1,"52":1}}],["0292776",{"2":{"49":1,"52":1}}],["0293911",{"2":{"25":1}}],["02688",{"2":{"27":1}}],["0210621",{"2":{"25":1}}],["02",{"2":{"0":1,"33":6,"34":4,"49":1,"52":3}}],["0",{"2":{"0":106,"3":8,"4":26,"5":8,"13":119,"14":16,"15":11,"17":204,"21":4,"24":150,"25":164,"26":25,"27":36,"33":20,"34":18,"42":1,"43":1,"49":40,"50":13,"51":6,"52":64,"53":4}}],["000",{"2":{"33":3}}],["00299252",{"2":{"25":1}}],["00",{"2":{"0":30,"26":10,"42":4,"49":10,"52":30,"53":15}}],["011",{"2":{"51":2}}],["01t03",{"2":{"52":2}}],["01t01",{"2":{"49":1,"52":1,"53":2}}],["01t00",{"2":{"0":15,"42":1,"49":2,"52":6,"53":3}}],["0139829",{"2":{"25":1}}],["0101357",{"2":{"25":1}}],["010",{"2":{"17":2}}],["0143835",{"2":{"13":1}}],["01",{"2":{"0":5,"33":5,"34":3,"42":1,"49":6,"52":19,"53":5}}],["527892",{"2":{"53":1}}],["526513",{"2":{"27":1}}],["56",{"2":{"50":1}}],["561575",{"2":{"24":1}}],["590101",{"2":{"25":1}}],["596303",{"2":{"25":1}}],["553437",{"2":{"25":1}}],["581922",{"2":{"52":1}}],["585991",{"2":{"27":1}}],["58012",{"2":{"25":1}}],["582108",{"2":{"25":1}}],["589752",{"2":{"25":1}}],["547745",{"2":{"27":2}}],["54225",{"2":{"27":1}}],["543156",{"2":{"25":1}}],["54105",{"2":{"25":1}}],["540787",{"2":{"13":1}}],["533024",{"2":{"24":1}}],["5309",{"2":{"13":1}}],["5173",{"2":{"76":1}}],["517169",{"2":{"24":1}}],["515693",{"2":{"53":1}}],["512082",{"2":{"25":1}}],["513225",{"2":{"15":1}}],["5×3",{"2":{"25":1}}],["5×10",{"2":{"24":1}}],["5×5",{"2":{"13":1,"24":1}}],["5×4",{"2":{"4":1}}],["576648",{"2":{"27":1}}],["579898",{"2":{"25":1}}],["57",{"2":{"5":1,"50":1}}],["5055",{"2":{"51":4}}],["505092",{"2":{"49":1}}],["502074",{"2":{"49":1}}],["501211",{"2":{"50":1,"52":1}}],["501121",{"2":{"50":1}}],["5011",{"2":{"49":1}}],["501419",{"2":{"49":1}}],["5005",{"2":{"51":1}}],["500566",{"2":{"49":1,"50":1}}],["500493",{"2":{"50":1}}],["500317",{"2":{"50":1}}],["500774",{"2":{"49":1}}],["5000",{"2":{"17":1}}],["50",{"2":{"5":3,"13":7,"33":2}}],["5u",{"2":{"5":1}}],["5",{"2":{"0":2,"4":3,"5":21,"13":6,"14":1,"17":9,"24":3,"25":5,"27":1,"43":1,"49":4,"50":14,"51":1}}],["376",{"2":{"50":3,"52":2}}],["370",{"2":{"50":2,"52":1}}],["37252e",{"2":{"49":1}}],["371115",{"2":{"25":1}}],["389508",{"2":{"27":2}}],["386713",{"2":{"25":1}}],["369",{"2":{"50":3,"52":2}}],["368",{"2":{"50":2,"52":1}}],["361",{"2":{"50":2,"52":1}}],["363",{"2":{"49":2}}],["365",{"2":{"49":2}}],["366",{"2":{"49":3}}],["36622",{"2":{"27":1}}],["364",{"2":{"46":9,"48":9,"49":2}}],["360",{"2":{"4":2,"50":1}}],["345",{"2":{"50":1}}],["345457",{"2":{"25":1}}],["344",{"2":{"50":1}}],["34443",{"2":{"27":1}}],["348897",{"2":{"27":1}}],["347865",{"2":{"25":1}}],["313",{"2":{"50":1}}],["312",{"2":{"50":1}}],["31235",{"2":{"25":1}}],["318652",{"2":{"25":1}}],["396482",{"2":{"25":1}}],["390208",{"2":{"25":1}}],["3rd",{"2":{"17":1}}],["337",{"2":{"50":1}}],["336",{"2":{"50":1}}],["330307",{"2":{"25":1}}],["338969",{"2":{"25":1}}],["33",{"2":{"17":1,"50":2,"52":1}}],["327324",{"2":{"52":1}}],["329",{"2":{"50":1}}],["328",{"2":{"50":1}}],["321",{"2":{"50":1}}],["320",{"2":{"50":1}}],["32gb",{"2":{"34":1}}],["323553",{"2":{"25":1}}],["326852",{"2":{"25":1}}],["32",{"2":{"16":2,"50":2,"52":1}}],["3a",{"2":{"14":1}}],["30t22",{"2":{"53":1}}],["30t23",{"2":{"42":1,"49":2,"52":2,"53":2}}],["306891",{"2":{"52":2}}],["305",{"2":{"50":1}}],["308451",{"2":{"27":2}}],["301",{"2":{"27":1}}],["301622",{"2":{"25":1}}],["307984",{"2":{"25":1}}],["304844",{"2":{"25":1}}],["300",{"2":{"17":1}}],["30",{"2":{"14":2,"17":10,"49":2}}],["3×5",{"2":{"17":1}}],["3×5×12",{"2":{"0":1}}],["3×1",{"2":{"17":1}}],["3×4×1",{"2":{"27":2}}],["3×4×5",{"2":{"27":1}}],["3×4",{"2":{"17":5,"27":1}}],["3×3",{"2":{"13":3,"17":1,"26":1}}],["3=>4",{"2":{"13":1}}],["353",{"2":{"50":1}}],["352",{"2":{"50":1}}],["351912",{"2":{"27":1}}],["35",{"2":{"13":1}}],["3",{"2":{"0":15,"1":1,"3":1,"4":7,"5":8,"13":15,"14":1,"15":8,"16":2,"17":39,"24":2,"25":7,"26":7,"27":7,"43":1,"50":15,"51":6,"52":7}}],["16",{"2":{"43":1,"50":6,"52":4}}],["164346",{"2":{"25":1}}],["177755",{"2":{"49":1,"52":1}}],["178462",{"2":{"49":1,"52":1}}],["17",{"2":{"43":1,"50":4,"52":1}}],["17520",{"2":{"43":1,"44":1,"45":1,"46":1,"48":2,"53":1}}],["172701",{"2":{"25":1}}],["185833333333335",{"2":{"52":1}}],["18",{"2":{"34":1,"43":1,"50":2}}],["184685",{"2":{"25":1}}],["1e9",{"2":{"34":2}}],["1em",{"2":{"15":1,"17":1}}],["148322",{"2":{"27":1}}],["148638",{"2":{"25":1}}],["14",{"2":{"26":1,"50":2}}],["144139",{"2":{"25":1}}],["146772",{"2":{"24":1}}],["14159",{"2":{"17":2}}],["13",{"2":{"17":1,"26":1,"50":2,"51":3}}],["1339893410598768192",{"2":{"13":1}}],["1px",{"2":{"15":1,"17":1}}],["1a",{"2":{"14":1}}],["1=>2",{"2":{"13":2}}],["1u",{"2":{"5":2}}],["194793",{"2":{"25":1}}],["193652",{"2":{"13":1}}],["19",{"2":{"5":5,"43":1,"50":2,"52":2}}],["1×3",{"2":{"17":1}}],["1×2",{"2":{"5":3,"13":1}}],["1×12",{"2":{"0":1}}],["15532",{"2":{"27":1}}],["154533",{"2":{"25":1}}],["159176",{"2":{"25":1}}],["1575814717733606317",{"2":{"13":1}}],["15",{"2":{"5":3,"43":1,"50":2}}],["116",{"2":{"26":1}}],["11",{"2":{"0":2,"4":1,"17":1,"49":8,"50":4,"78":1}}],["1202",{"2":{"49":1}}],["1226",{"2":{"49":1}}],["128",{"2":{"33":1}}],["124215",{"2":{"25":1}}],["12",{"2":{"0":9,"4":1,"13":3,"14":1,"17":1,"42":1,"45":9,"48":9,"49":17,"50":5,"51":3,"52":5,"53":3}}],["1",{"2":{"0":43,"1":1,"3":15,"4":26,"5":12,"13":69,"14":3,"15":10,"16":1,"17":70,"21":2,"24":3,"25":8,"26":12,"27":6,"33":55,"34":2,"42":2,"43":1,"45":10,"46":10,"48":21,"49":41,"50":36,"51":12,"52":46,"53":3,"74":1,"75":1}}],["1044",{"2":{"52":1}}],["104416666666665",{"2":{"52":2}}],["101×34",{"2":{"52":2}}],["101×1464",{"2":{"49":1}}],["101×1440",{"2":{"49":1}}],["101×1488",{"2":{"49":1}}],["101×1368",{"2":{"49":1}}],["101×17520",{"2":{"49":1,"52":1}}],["10396",{"2":{"27":1}}],["105",{"2":{"26":1}}],["10×9×8×7×6×5",{"2":{"25":1}}],["10×7×5",{"2":{"25":1}}],["102",{"2":{"17":1}}],["1024",{"2":{"16":1}}],["10u",{"2":{"5":1}}],["100×10",{"2":{"34":1}}],["100000×50000",{"2":{"33":1}}],["10000",{"2":{"26":2}}],["1000",{"2":{"17":1,"21":1,"26":2,"33":6}}],["100u",{"2":{"5":2}}],["100",{"2":{"0":1,"3":1,"4":3,"13":7,"17":8,"33":5,"34":1,"52":1}}],["10",{"2":{"0":7,"1":9,"3":6,"4":5,"5":19,"13":3,"14":5,"17":41,"24":2,"25":2,"34":1,"50":4,"51":3,"74":1,"75":1}}],["b`",{"2":{"76":1}}],["b=1",{"2":{"24":1}}],["b>",{"2":{"15":2,"17":2}}],["blocks",{"2":{"19":1}}],["block",{"2":{"17":2,"19":1}}],["blob",{"2":{"15":1,"17":1}}],["black",{"2":{"15":1,"17":1}}],["build",{"2":{"15":1,"16":1}}],["but",{"2":{"1":2,"3":9,"4":4,"5":1,"8":1,"11":1,"13":1,"14":3,"15":2,"19":2,"21":1,"25":2,"27":1,"34":2,"35":1,"40":1,"42":1,"57":1,"63":1,"75":1,"76":2}}],["bin",{"2":{"50":2}}],["binning",{"0":{"50":1},"1":{"51":1}}],["bins",{"2":{"41":1,"50":3,"51":1}}],["big",{"0":{"34":1}}],["bigint",{"2":{"13":1,"33":1,"34":2}}],["bitarray",{"2":{"33":1}}],["bitsets",{"2":{"13":1}}],["bayesian",{"2":{"61":1}}],["band",{"2":{"16":5}}],["backend",{"2":{"21":1}}],["back",{"2":{"5":1,"11":1}}],["basics",{"0":{"42":1},"1":{"43":1,"44":1,"45":1,"46":1,"47":1,"48":1}}],["basically",{"2":{"3":1}}],["base",{"2":{"3":2,"5":2,"13":10,"14":3,"17":14,"21":1,"25":1,"34":1,"77":1}}],["basetypeof",{"2":{"3":5}}],["basedims",{"2":{"3":2}}],["based",{"2":{"2":1,"3":1}}],["brought",{"2":{"22":1}}],["broadcasts",{"2":{"21":1,"77":1}}],["broadcast",{"2":{"17":7,"21":1,"77":2}}],["broadcasting",{"2":{"3":1,"17":1,"49":1}}],["br>",{"2":{"15":1,"17":1}}],["breaking",{"2":{"4":1,"19":1}}],["box",{"2":{"19":1,"33":1,"74":1}}],["border",{"2":{"15":4,"17":4}}],["boundaries",{"2":{"5":1}}],["bounds",{"2":{"4":9,"8":6}}],["both",{"2":{"4":1,"13":2,"58":1}}],["bool",{"2":{"1":3,"3":6,"4":2,"5":1,"13":8,"17":1,"33":1,"76":2}}],["bytes",{"2":{"26":2}}],["by",{"0":{"51":1,"52":1,"53":1},"1":{"53":1,"54":1},"2":{"0":1,"1":2,"3":13,"4":8,"5":4,"9":1,"13":3,"15":1,"17":3,"22":1,"24":2,"26":2,"33":1,"34":1,"39":2,"47":1,"49":1,"75":1,"76":3,"77":1}}],["b",{"2":{"0":8,"3":4,"4":3,"5":5,"13":6,"14":3,"17":4,"24":3,"25":4,"52":4,"74":1,"75":1,"76":4}}],["behviour",{"2":{"76":1}}],["behavior",{"2":{"17":1}}],["behaviour",{"2":{"4":4,"5":1,"6":1,"14":2,"74":1,"77":1}}],["behaviours",{"2":{"4":1,"58":1}}],["behaves",{"2":{"15":2,"35":1}}],["benchmarktools",{"2":{"26":3}}],["benchmark",{"2":{"26":3}}],["beginning",{"2":{"21":1}}],["becomes",{"2":{"16":2}}],["because",{"2":{"13":1}}],["besides",{"2":{"13":1}}],["better",{"2":{"5":1}}],["between",{"2":{"0":3,"4":5,"5":17,"10":1,"11":1,"13":1,"14":2,"76":3}}],["been",{"2":{"2":1,"3":1,"14":1,"17":1}}],["be",{"2":{"0":3,"1":4,"2":2,"3":13,"4":34,"5":12,"6":1,"7":2,"8":3,"10":2,"13":11,"14":4,"15":3,"17":15,"18":1,"19":1,"21":5,"22":2,"24":2,"25":5,"27":2,"34":2,"35":1,"37":1,"39":1,"42":1,"48":1,"76":3}}],["2427",{"2":{"49":1}}],["24",{"2":{"42":1,"49":1,"50":4,"52":3}}],["26859",{"2":{"27":1}}],["26778",{"2":{"25":1}}],["273243",{"2":{"27":2}}],["27386",{"2":{"25":1}}],["276175",{"2":{"25":1}}],["276421",{"2":{"25":1}}],["287099",{"2":{"25":1}}],["284378",{"2":{"24":1}}],["29",{"2":{"49":2}}],["29166",{"2":{"27":1}}],["29038",{"2":{"25":1}}],["292016",{"2":{"25":1}}],["292804",{"2":{"25":1}}],["296311",{"2":{"25":1}}],["299247",{"2":{"24":1}}],["226789",{"2":{"52":1}}],["229",{"2":{"26":1}}],["227212",{"2":{"25":1}}],["228228",{"2":{"25":1}}],["22",{"2":{"17":1,"43":1,"50":2,"52":3}}],["2a",{"2":{"14":1}}],["2×6×1",{"2":{"17":1}}],["2×2",{"2":{"15":2,"17":1}}],["2×3",{"2":{"13":4}}],["2×4",{"2":{"5":1,"13":4}}],["2×4×2",{"2":{"3":1}}],["219084",{"2":{"25":1}}],["21",{"2":{"5":4,"43":1,"50":2,"52":3}}],["25825",{"2":{"51":4}}],["251537",{"2":{"24":1}}],["25px",{"2":{"15":1,"17":1}}],["25",{"2":{"5":2,"50":2,"52":3}}],["2394",{"2":{"49":1}}],["23101",{"2":{"25":1}}],["23",{"2":{"5":1,"42":1,"43":1,"50":2,"52":2}}],["204465",{"2":{"49":1,"52":2}}],["204773",{"2":{"25":1}}],["208",{"2":{"34":1}}],["202782",{"2":{"25":1}}],["2021",{"2":{"0":19}}],["203254",{"2":{"25":1}}],["209883",{"2":{"24":1}}],["200000000000",{"2":{"34":25}}],["2000",{"2":{"21":1,"42":2,"48":20,"49":15,"50":4,"51":4,"52":21,"53":5}}],["2001",{"2":{"13":4,"42":1,"48":18,"49":14,"50":4,"51":3,"52":8,"53":3}}],["200",{"2":{"5":1,"13":6}}],["20",{"2":{"4":4,"5":18,"13":1,"17":13,"43":1,"50":2}}],["2",{"2":{"0":19,"1":2,"3":3,"4":3,"5":14,"8":3,"13":27,"14":1,"15":9,"16":1,"17":38,"21":1,"24":3,"25":5,"26":8,"27":7,"33":1,"34":4,"42":1,"43":1,"49":19,"50":16,"51":1,"52":9}}],["=>",{"2":{"1":8,"2":6,"3":19,"4":27,"11":2,"13":21,"16":1,"17":30,"18":2,"49":7,"50":10,"51":2,"52":4,"53":1}}],["===",{"2":{"13":5}}],["==",{"2":{"0":1,"17":2,"52":2}}],["=",{"2":{"0":17,"1":3,"3":4,"4":10,"5":11,"13":8,"14":9,"15":2,"16":1,"17":17,"21":3,"24":2,"25":2,"26":1,"27":2,"33":3,"34":3,"42":2,"48":2,"49":2,"52":2,"75":1}}],["grouped",{"0":{"54":1}}],["groups",{"2":{"50":1}}],["group",{"0":{"53":1},"2":{"42":1,"49":5,"51":1}}],["groupings",{"2":{"50":1}}],["grouping",{"0":{"42":1,"47":1,"49":1},"1":{"43":1,"44":1,"45":1,"46":1,"47":1,"48":1},"2":{"41":4,"47":1}}],["groupbys",{"2":{"49":1}}],["groupby",{"0":{"41":1},"2":{"41":1,"48":1,"49":13,"50":12,"51":4,"52":8,"53":2}}],["grid",{"2":{"4":1}}],["gridded",{"2":{"4":1}}],["gc",{"2":{"26":6}}],["goals",{"2":{"21":1}}],["good",{"2":{"14":1}}],["gpus",{"0":{"21":1},"2":{"18":1,"21":1,"66":1}}],["gpu",{"2":{"17":2,"21":12}}],["gis",{"2":{"57":2}}],["giving",{"2":{"5":1,"79":1}}],["given",{"2":{"17":1,"79":1}}],["give",{"2":{"3":2,"4":1,"5":1,"13":1}}],["gives",{"2":{"0":1,"14":2}}],["github",{"2":{"4":1,"15":1,"17":1,"21":1}}],["guide",{"2":{"41":1}}],["guaranteed",{"2":{"3":1}}],["guessed",{"2":{"2":1,"8":2}}],["guess",{"2":{"0":1,"48":1}}],["gt",{"2":{"1":2,"3":3,"5":1,"17":2}}],["g",{"2":{"0":1,"3":1,"4":2,"5":1,"13":1,"35":1}}],["geometry",{"2":{"16":2}}],["geotiff",{"2":{"10":1}}],["geodata",{"2":{"4":3}}],["geospatial",{"2":{"4":3,"57":1}}],["getting",{"2":{"13":1}}],["getter",{"2":{"4":1}}],["get",{"2":{"1":2,"2":1,"3":2,"11":2,"13":1,"16":1,"24":1,"34":1,"76":7}}],["getindex",{"2":{"0":1,"3":2,"14":3,"15":1,"25":1,"34":1}}],["generator",{"2":{"17":2}}],["generators",{"0":{"15":1}}],["generate",{"2":{"3":3}}],["generated",{"2":{"3":2,"16":1,"39":1}}],["general",{"2":{"11":1,"69":1}}],["generally",{"2":{"0":1}}],["generic",{"2":{"0":1,"4":1,"22":1,"48":1}}],["wont",{"2":{"5":1}}],["work",{"2":{"4":4,"5":1,"11":1,"14":1,"17":1,"21":3,"22":1,"24":1,"27":1,"33":1,"39":2,"40":1,"42":1,"58":1,"74":1,"75":2,"76":1,"77":1}}],["works",{"2":{"4":1,"17":1,"25":1,"27":1,"66":1,"77":2}}],["working",{"2":{"1":1,"14":2,"27":1}}],["wants",{"2":{"21":1}}],["want",{"2":{"19":2,"25":1,"50":2,"52":1}}],["was",{"2":{"13":1,"17":2}}],["way",{"2":{"4":1,"17":1,"27":1,"39":1}}],["warning",{"2":{"3":2,"15":1,"17":1}}],["warn",{"2":{"3":2}}],["whose",{"2":{"17":3}}],["whole",{"2":{"5":2}}],["what",{"2":{"17":1,"48":1}}],["whatever",{"2":{"15":1,"25":1}}],["which",{"2":{"4":1,"13":1,"17":7,"27":1,"57":1,"76":1}}],["whichever",{"2":{"3":1}}],["while",{"2":{"3":1,"11":1,"14":2}}],["wherever",{"2":{"17":1}}],["where",{"2":{"3":4,"4":9,"5":7,"7":1,"8":2,"9":1,"10":2,"11":1,"14":1,"17":4,"27":1,"76":2}}],["whenever",{"2":{"21":1}}],["when",{"2":{"0":4,"4":7,"5":2,"13":1,"14":2,"15":1,"17":4,"18":1,"21":1,"25":1,"27":1,"34":1,"37":1,"50":1}}],["writing",{"2":{"3":1,"17":1,"34":1}}],["wraps",{"2":{"37":1}}],["wrapping",{"2":{"3":1,"4":1,"58":1}}],["wrapper",{"2":{"4":4,"11":1,"17":2,"18":2,"22":1,"50":1}}],["wrappers",{"2":{"0":2,"4":1,"5":1,"11":2,"18":1,"25":1}}],["wrapped",{"2":{"3":2,"17":1}}],["wrap",{"2":{"0":1,"22":3,"76":2}}],["well",{"2":{"16":1,"25":1}}],["weeks",{"2":{"4":1}}],["week",{"2":{"4":1}}],["wether",{"2":{"1":1}}],["we",{"0":{"42":1},"1":{"43":1,"44":1,"45":1,"46":1,"47":1,"48":1},"2":{"0":1,"4":3,"5":1,"14":1,"17":2,"21":2,"22":1,"24":3,"25":6,"27":2,"33":1,"34":3,"47":1,"48":1,"49":3,"50":4,"51":1,"52":3,"58":1,"75":1}}],["wiht",{"2":{"37":1}}],["width",{"2":{"15":1,"17":1}}],["wide",{"2":{"4":1,"57":1,"79":1}}],["widely",{"2":{"1":1}}],["wish",{"2":{"5":1}}],["within",{"2":{"5":1,"76":1}}],["without",{"2":{"3":1,"4":2,"11":1,"14":1,"17":2,"24":1,"25":1,"39":1}}],["with",{"2":{"0":10,"1":4,"2":1,"3":14,"4":14,"5":14,"7":1,"8":1,"10":4,"11":1,"13":23,"14":8,"15":4,"16":2,"17":19,"19":1,"21":3,"22":3,"24":5,"25":6,"26":3,"27":3,"33":1,"34":1,"39":2,"40":3,"41":3,"43":1,"48":1,"49":7,"50":6,"51":2,"52":4,"53":1,"58":2,"59":1,"74":2,"75":1,"76":3,"77":5,"78":1,"79":1}}],["will",{"2":{"0":4,"1":1,"2":1,"3":9,"4":13,"5":7,"7":2,"8":2,"10":1,"11":1,"13":10,"14":7,"16":1,"17":17,"21":1,"25":3,"27":1,"33":1,"34":1,"38":2,"39":2,"40":1,"41":1,"42":2,"49":1,"52":1,"74":1,"75":3,"76":1,"77":1,"78":1}}],["due",{"2":{"21":1}}],["during",{"2":{"0":1,"66":1}}],["dynamicgrids",{"0":{"66":1},"2":{"21":1,"66":2}}],["dropdims",{"2":{"27":2}}],["drop=false",{"2":{"17":1}}],["drop=true",{"2":{"17":1}}],["drop",{"2":{"17":3}}],["dd",{"2":{"5":3,"17":3,"22":1,"38":2,"42":1,"57":1,"59":1,"79":1}}],["d",{"2":{"3":2,"4":2,"15":1,"17":5,"25":4,"27":1}}],["dsl",{"2":{"63":1}}],["dst",{"2":{"17":13}}],["ds",{"2":{"3":1,"4":2,"17":4}}],["difficult",{"2":{"21":1}}],["differenet",{"2":{"11":1}}],["different",{"2":{"3":1,"5":3,"10":1,"17":2,"49":1,"51":1,"52":1}}],["diagonal",{"2":{"17":2}}],["div",{"2":{"15":1,"17":1}}],["div>",{"2":{"15":1,"17":1}}],["di",{"2":{"15":2}}],["directly",{"2":{"15":1,"26":1,"50":1}}],["direction",{"2":{"10":2}}],["disk",{"2":{"34":1}}],["diskarray",{"2":{"58":1}}],["diskarrays",{"2":{"33":3}}],["diska",{"2":{"33":2}}],["discarding",{"2":{"17":1}}],["discarded",{"2":{"5":1}}],["disgarded",{"2":{"13":1}}],["distributed",{"2":{"13":1}}],["distinct",{"2":{"13":1}}],["distance",{"2":{"4":2,"5":1}}],["dispatch",{"2":{"11":1}}],["dicts",{"2":{"21":1}}],["dict",{"2":{"4":4,"11":3,"13":4,"17":1,"49":7,"50":6,"51":2,"52":4,"53":1}}],["dimmatrix",{"2":{"75":1}}],["dimgroupbyarray",{"2":{"49":1}}],["dimb",{"2":{"34":3}}],["dima",{"2":{"33":1,"34":1}}],["dimarrays",{"2":{"17":1}}],["dimarray",{"0":{"24":1},"2":{"0":8,"1":3,"3":2,"4":6,"5":11,"13":30,"14":11,"15":2,"16":1,"17":10,"21":2,"24":6,"25":4,"26":1,"27":4,"33":2,"34":1,"49":12,"50":6,"51":2,"52":6,"53":1,"65":1,"69":1}}],["dimcolumn",{"2":{"16":2}}],["dimtable",{"2":{"16":6}}],["dimtuple",{"2":{"14":1}}],["dimpoints",{"2":{"15":7}}],["dimindices",{"0":{"28":1},"2":{"15":9,"25":4,"37":1}}],["dimz",{"2":{"5":2,"14":4}}],["dim2key",{"2":{"3":3,"16":1,"79":1}}],["dimnum",{"2":{"1":4,"38":1}}],["dimsions",{"2":{"25":1}}],["dimstack",{"2":{"14":18,"17":4,"79":1}}],["dimstride",{"2":{"3":1}}],["dimstoreduce",{"2":{"3":1}}],["dimsmatch",{"2":{"3":2}}],["dims2indices",{"2":{"2":1}}],["dims",{"0":{"27":1,"36":1,"38":1,"53":1},"1":{"37":1,"38":1},"2":{"0":1,"1":7,"2":6,"3":16,"4":20,"5":2,"13":37,"14":3,"15":11,"17":49,"19":1,"22":1,"24":5,"25":6,"26":1,"27":8,"33":1,"34":1,"35":1,"36":1,"37":1,"38":5,"39":2,"40":2,"49":9,"50":6,"51":2,"52":6,"53":2,"77":1}}],["dims=d",{"2":{"27":2}}],["dims=val",{"2":{"17":1}}],["dims=2",{"2":{"17":2}}],["dims=1",{"2":{"17":3}}],["dims=",{"2":{"17":3}}],["dims=ti",{"2":{"0":1,"14":2,"17":1,"27":2}}],["dims=z",{"2":{"0":1}}],["dims=y",{"2":{"0":1,"17":1}}],["dims=x",{"2":{"0":1}}],["dim",{"2":{"0":8,"1":2,"2":3,"3":17,"4":14,"13":7,"16":3,"17":22,"22":2,"24":1,"27":1,"37":1}}],["dimensionmismatch",{"2":{"17":1}}],["dimensionality",{"2":{"17":1}}],["dimensional",{"0":{"25":1},"2":{"0":1,"3":1,"13":3,"14":1,"17":2,"37":1,"41":1}}],["dimensionaldata",{"0":{"35":1},"1":{"36":1,"37":1,"38":1,"39":1,"40":1},"2":{"0":23,"1":8,"2":4,"3":21,"4":36,"5":21,"6":1,"7":6,"8":5,"9":3,"10":5,"11":3,"13":11,"14":3,"15":4,"16":4,"17":16,"18":3,"19":5,"20":3,"21":5,"22":2,"24":1,"33":2,"35":1,"36":1,"39":1,"41":1,"42":3,"57":1,"58":1,"75":1,"76":6,"79":1}}],["dimension",{"0":{"15":1,"37":1},"2":{"0":21,"1":19,"2":6,"3":41,"4":29,"5":3,"13":52,"14":3,"15":8,"16":7,"17":37,"22":4,"24":2,"25":4,"27":5,"37":1,"38":5,"39":1,"40":1,"41":1,"76":2,"77":2,"79":2}}],["dimensions",{"0":{"0":1,"22":1,"29":1,"30":1},"1":{"1":1,"2":1,"3":1,"23":1,"24":1,"25":1,"26":1,"27":1,"28":1,"29":1,"30":1,"31":1,"32":1},"2":{"0":41,"1":13,"2":5,"3":37,"4":41,"5":15,"6":1,"7":6,"8":5,"9":3,"10":5,"11":3,"13":22,"14":3,"15":4,"16":1,"17":36,"22":6,"24":3,"25":4,"26":1,"27":3,"36":2,"37":1,"75":1,"76":5,"77":2,"79":2}}],["documented",{"2":{"17":1}}],["documenter",{"2":{"15":1,"16":1}}],["docstring",{"2":{"15":2,"16":2}}],["doctestjulia>",{"2":{"13":3}}],["do",{"2":{"4":2,"17":3,"21":1,"27":1,"43":1,"48":1,"50":1,"51":1,"52":3}}],["doesn",{"2":{"15":1,"25":1}}],["does",{"2":{"4":1,"39":1,"49":3,"52":1,"77":1,"79":1}}],["dotview",{"2":{"3":1}}],["done",{"2":{"13":1,"17":1,"79":1}}],["don",{"2":{"2":1,"4":1,"25":1,"27":1}}],["daily",{"2":{"49":2,"52":1}}],["dayofyear",{"0":{"46":1},"2":{"46":1,"48":1,"50":2,"52":2}}],["dayofweek",{"0":{"44":1},"2":{"44":1}}],["day",{"2":{"42":1,"49":1,"50":1,"52":2}}],["days",{"0":{"51":1},"2":{"4":1,"51":1}}],["das",{"2":{"19":1}}],["da3",{"2":{"14":2}}],["da2",{"2":{"14":2}}],["da1",{"2":{"14":2}}],["da",{"2":{"0":4,"4":2,"17":10}}],["dataset",{"2":{"35":2,"61":1}}],["datasets",{"0":{"14":1},"2":{"4":1,"58":1}}],["dataframes",{"0":{"79":1},"2":{"5":1,"79":1}}],["data=autoindex",{"2":{"4":1}}],["data",{"2":{"0":4,"1":1,"2":1,"4":17,"11":1,"13":5,"14":6,"16":1,"17":8,"19":1,"21":3,"22":1,"33":2,"34":1,"39":2,"40":3,"50":1,"57":2,"58":1,"59":1,"65":1,"66":1,"69":1,"79":1}}],["date",{"2":{"4":2}}],["datetime",{"0":{"42":1},"1":{"43":1,"44":1,"45":1,"46":1,"47":1,"48":1},"2":{"0":13,"5":1,"13":4,"42":5,"48":1,"49":3,"52":9,"53":5}}],["dates",{"2":{"0":3,"4":2,"13":1,"42":4,"49":4,"52":12,"53":4}}],["development",{"2":{"74":1}}],["developers",{"2":{"39":1,"58":1}}],["demo",{"2":{"42":1}}],["description",{"2":{"76":2}}],["dest",{"2":{"17":4}}],["designed",{"2":{"35":1}}],["design",{"2":{"14":2}}],["dense",{"2":{"13":1}}],["deprecated",{"2":{"17":1,"74":1}}],["depreciated",{"2":{"5":1}}],["dependencies",{"2":{"57":1}}],["dependent",{"2":{"0":1}}],["dependentdim",{"2":{"0":4}}],["depending",{"2":{"1":1}}],["defualt",{"2":{"75":1}}],["defining",{"2":{"4":2}}],["defines",{"2":{"4":1,"8":1,"15":1,"17":1,"63":1}}],["defined",{"2":{"3":1,"4":1,"14":1,"17":3,"22":1,"39":1,"49":1}}],["define",{"2":{"3":1,"4":1,"9":1,"22":1,"49":1}}],["defaults",{"0":{"71":1},"2":{"13":1}}],["default",{"2":{"1":3,"3":11,"4":7,"10":1,"13":2,"15":1,"17":1,"18":1,"74":1}}],["detect",{"2":{"4":2,"13":4}}],["detected",{"2":{"4":4}}],["determine",{"2":{"7":1}}],["determined",{"2":{"4":1}}],["determines",{"2":{"3":1,"15":1}}],["details",{"2":{"0":1,"15":1,"16":1,"19":2,"22":1}}],["features",{"2":{"76":1}}],["few",{"2":{"13":1}}],["fact",{"2":{"77":1}}],["facilitate",{"2":{"11":1,"76":2}}],["favour",{"2":{"17":1,"75":1}}],["fallback",{"2":{"11":1}}],["falls",{"2":{"5":2,"76":1}}],["fall",{"2":{"5":2}}],["false",{"2":{"1":1,"3":6,"11":1,"13":1,"17":1}}],["far",{"2":{"4":1}}],["fast",{"2":{"4":1,"76":2,"78":1}}],["frequency",{"2":{"26":2}}],["freely",{"2":{"15":1}}],["freeunits",{"2":{"5":2}}],["free",{"2":{"3":1,"25":1}}],["friendly",{"2":{"21":1}}],["from",{"2":{"0":2,"1":1,"3":3,"4":10,"5":3,"8":1,"13":4,"14":3,"16":1,"17":7,"19":3,"21":1,"22":2,"25":2,"27":1,"35":1,"36":1,"37":1,"49":2,"51":1,"52":1,"57":1,"78":1}}],["further",{"2":{"39":1,"50":1}}],["furture",{"2":{"5":1}}],["funcions",{"2":{"21":1}}],["functionality",{"2":{"58":1}}],["functional",{"2":{"21":1}}],["functions",{"2":{"13":1,"27":1,"42":2,"47":1,"48":1,"49":1,"74":1,"75":1,"77":2}}],["function",{"0":{"54":1},"2":{"1":4,"2":4,"3":16,"4":11,"5":2,"13":8,"17":15,"19":3,"39":1,"41":2,"42":1,"48":2,"49":1,"50":3,"76":1}}],["future",{"2":{"4":1,"17":3,"19":1,"75":1}}],["full",{"2":{"3":1,"4":3}}],["follow",{"2":{"42":1,"74":1}}],["following",{"2":{"13":1}}],["found",{"2":{"3":1,"7":1,"17":3}}],["forms",{"2":{"21":1}}],["formats",{"2":{"10":1}}],["format",{"2":{"2":2,"8":1,"11":1}}],["foreach",{"2":{"17":1}}],["forward",{"2":{"4":1,"7":1,"13":2}}],["forwardordered",{"2":{"0":9,"3":1,"4":6,"5":8,"7":3,"15":2,"17":12,"33":2,"34":2,"49":9,"50":5,"51":1,"52":7,"53":1}}],["for",{"0":{"42":1},"1":{"43":1,"44":1,"45":1,"46":1,"47":1,"48":1},"2":{"0":12,"1":3,"2":2,"3":10,"4":40,"5":20,"7":2,"8":3,"10":4,"11":3,"13":29,"14":10,"15":6,"16":5,"17":11,"18":3,"19":5,"21":1,"22":1,"24":3,"25":2,"34":2,"38":1,"39":5,"41":1,"47":1,"50":1,"51":1,"52":1,"57":3,"59":1,"61":1,"65":1,"66":2,"69":1,"75":2,"76":2,"77":3,"78":1,"79":1}}],["flexible",{"2":{"39":1}}],["float32",{"2":{"21":2}}],["floating",{"2":{"13":2}}],["floats",{"2":{"13":1}}],["float64",{"2":{"0":21,"3":1,"4":1,"5":2,"13":11,"15":2,"16":3,"17":18,"24":4,"25":3,"26":1,"27":4,"33":2,"34":3,"49":8,"50":6,"51":3,"52":10,"53":1}}],["flags",{"2":{"3":1}}],["f",{"2":{"1":5,"3":10,"4":2,"5":1,"17":18,"25":6,"76":1}}],["fixes",{"2":{"78":1}}],["fixed",{"2":{"8":1}}],["field",{"2":{"13":1,"17":5,"39":1}}],["fields",{"2":{"0":2,"2":1,"3":1,"4":1,"6":1,"17":4,"19":1,"21":2,"39":3,"40":1}}],["find",{"2":{"76":1}}],["findfirst",{"2":{"7":1}}],["finds",{"2":{"7":1}}],["firstindex",{"2":{"27":1}}],["first",{"2":{"3":3,"14":8,"17":1,"24":1,"42":1}}],["filter",{"2":{"76":1}}],["filters",{"2":{"5":1}}],["filling",{"2":{"17":1}}],["fill",{"2":{"13":16,"17":1,"24":1}}],["filled",{"2":{"2":1,"10":1,"13":2,"25":1}}],["file",{"2":{"0":1,"11":2,"57":1}}],["ecosystem",{"2":{"79":1}}],["ebetween",{"2":{"77":1}}],["estimate",{"2":{"26":4}}],["especially",{"2":{"15":1,"27":1,"75":1}}],["e=6",{"2":{"25":1}}],["equivalents",{"2":{"13":1}}],["equivalent",{"2":{"13":1,"14":1,"17":1}}],["equal",{"2":{"3":1,"17":1}}],["effects",{"2":{"13":2}}],["enforce",{"2":{"77":1}}],["engine",{"2":{"66":1}}],["entry",{"2":{"49":7,"50":6,"51":2,"52":4,"53":1}}],["enable",{"2":{"8":1}}],["end",{"2":{"4":1,"5":4,"9":1,"10":4,"17":1}}],["easiest",{"2":{"39":1}}],["easier",{"2":{"18":1,"38":1}}],["easily",{"2":{"4":1,"35":2}}],["eachindex",{"2":{"37":2}}],["eachcol",{"2":{"17":1}}],["eachrow",{"2":{"17":1}}],["eachslice",{"2":{"17":6,"27":1}}],["each",{"2":{"0":1,"3":2,"4":5,"5":1,"8":1,"13":1,"14":1,"15":1,"16":1,"17":3,"24":1,"49":1,"74":1,"76":1}}],["evaluations",{"2":{"26":2}}],["evaluated",{"2":{"5":1}}],["even",{"2":{"15":1,"25":1,"27":1,"51":1,"77":1}}],["everything",{"2":{"35":1}}],["everywhere",{"2":{"22":1}}],["every",{"2":{"4":1,"5":1,"8":1,"13":3,"17":2,"52":1}}],["evne",{"2":{"4":1}}],["error",{"2":{"3":1,"5":2,"17":1,"25":2,"52":1}}],["errors",{"2":{"2":1,"3":1}}],["empty",{"2":{"3":1,"13":3}}],["either",{"2":{"3":1,"4":2,"13":3,"15":1,"17":1,"24":1,"27":1,"76":1,"77":1}}],["eltype",{"2":{"17":1,"34":1}}],["elsewhere",{"2":{"17":1}}],["else",{"2":{"2":1}}],["elementwise",{"2":{"17":1}}],["elements",{"2":{"13":3,"17":1}}],["element",{"2":{"0":4,"2":1,"13":13,"17":6,"24":2,"43":1,"44":1,"45":1,"46":1,"48":2,"49":7,"50":7,"51":2,"52":3,"53":1}}],["exclusively",{"2":{"76":1}}],["except",{"2":{"21":1,"77":1}}],["exhausted",{"2":{"17":2}}],["exact",{"2":{"4":1,"9":1}}],["exactly",{"2":{"4":1,"5":1,"76":1}}],["examplea1",{"2":{"25":1}}],["examples",{"0":{"23":1},"2":{"13":4,"17":5,"35":2,"49":1}}],["example",{"0":{"33":1},"2":{"0":7,"1":3,"3":2,"4":5,"5":7,"13":9,"14":2,"15":1,"16":1,"17":7,"21":1,"24":1,"39":1}}],["extension",{"2":{"63":1}}],["extensible",{"2":{"35":1,"39":1}}],["extends",{"2":{"57":1,"59":1}}],["extend",{"2":{"14":1}}],["extended",{"2":{"4":1,"35":2}}],["extending",{"0":{"35":1},"1":{"36":1,"37":1,"38":1,"39":1,"40":1},"2":{"4":3,"36":1}}],["extrema",{"2":{"27":1}}],["extra",{"2":{"0":1,"27":1}}],["exploratory",{"2":{"61":1}}],["explicit",{"2":{"4":1,"8":1}}],["explicitly",{"2":{"4":2,"8":1}}],["expected",{"2":{"17":1}}],["exported",{"0":{"1":1,"2":1}}],["existing",{"0":{"73":1},"2":{"5":1,"17":2,"19":1,"41":1}}],["exists",{"2":{"3":1,"57":1}}],["exist",{"2":{"2":1}}],["e",{"0":{"54":1},"2":{"0":1,"3":1,"4":2,"5":2,"13":1,"25":3,"35":1,"51":1}}],["etc",{"2":{"0":1,"3":2,"14":1,"17":1}}],["pkg>",{"2":{"20":2}}],["permafrost",{"2":{"65":1}}],["permutation",{"2":{"77":1}}],["permute",{"2":{"75":1}}],["permutedims",{"2":{"27":1,"34":1}}],["permuting",{"2":{"17":2}}],["periods",{"2":{"43":1}}],["perform",{"2":{"27":1}}],["performace",{"2":{"14":1}}],["performance",{"0":{"26":1,"78":1},"2":{"4":3,"57":1}}],["performed",{"2":{"4":1}}],["pi",{"2":{"17":2}}],["pick",{"2":{"13":2}}],["pixels",{"2":{"5":1}}],["push",{"2":{"13":2}}],["put",{"2":{"11":1}}],["planned",{"2":{"75":1,"78":1}}],["play",{"2":{"33":1}}],["placed",{"2":{"17":1}}],["place",{"2":{"13":1,"17":1,"21":1}}],["places",{"2":{"13":1,"75":2}}],["please",{"2":{"4":1,"21":1}}],["plus",{"2":{"4":1}}],["plotted",{"2":{"4":1,"7":1,"9":1,"10":1}}],["plotting",{"2":{"0":1}}],["plots",{"0":{"74":1},"2":{"3":1,"13":2,"74":2,"75":2}}],["plot",{"2":{"0":2,"2":2,"74":2,"75":2}}],["powerful",{"2":{"63":1}}],["polygon",{"2":{"57":1}}],["position",{"2":{"10":2}}],["positions",{"2":{"4":1,"17":1}}],["possible",{"2":{"4":2,"5":1,"7":1,"21":1,"27":1,"74":1}}],["point",{"2":{"0":2,"4":2,"5":1,"9":1,"13":2,"15":1,"76":1}}],["points",{"2":{"0":7,"4":7,"5":12,"8":2,"9":4,"13":3,"15":2,"17":10,"33":2,"34":2,"49":9,"50":6,"51":1,"52":9,"53":1}}],["pr",{"2":{"21":1}}],["principles",{"2":{"42":1}}],["printing",{"2":{"34":1,"76":1}}],["print",{"2":{"19":2}}],["prior",{"2":{"17":2}}],["primariliy",{"2":{"3":1}}],["primitive",{"0":{"3":1}}],["process",{"2":{"66":1}}],["providing",{"2":{"57":1}}],["provides",{"2":{"41":1,"68":1,"79":1}}],["provided",{"2":{"4":5,"5":3,"8":1,"17":1,"76":1}}],["provide",{"2":{"0":1,"4":2}}],["projected",{"2":{"35":1,"57":1}}],["prod",{"2":{"27":1,"34":1}}],["probably",{"2":{"18":1,"48":1}}],["problems",{"2":{"4":1}}],["property",{"2":{"18":1}}],["properties",{"0":{"72":1},"2":{"17":1}}],["programmatically",{"2":{"13":1}}],["pretty",{"2":{"22":1}}],["pre",{"2":{"17":1}}],["preserved",{"2":{"17":1}}],["present",{"2":{"5":1}}],["previously",{"2":{"17":1}}],["previous",{"2":{"3":1,"5":1}}],["precedence",{"2":{"0":1}}],["packed",{"2":{"17":1}}],["packages",{"2":{"35":1,"42":1,"69":1,"74":1,"79":1}}],["package",{"2":{"4":1,"20":1,"58":1,"61":1,"63":1}}],["padding",{"2":{"15":1,"17":1}}],["past",{"2":{"13":1}}],["pass",{"2":{"11":1,"14":1}}],["passing",{"2":{"3":2,"4":1}}],["passed",{"2":{"0":1,"2":1,"3":4,"5":3,"13":2,"15":1,"17":4,"21":1,"39":1,"76":2}}],["part",{"2":{"19":1}}],["parent",{"2":{"13":1,"17":5,"21":2,"26":2}}],["parameters",{"2":{"3":1}}],["parameter",{"2":{"0":1,"11":1}}],["pair",{"2":{"11":1,"17":4}}],["pairs",{"2":{"11":1,"17":8}}],["l27",{"2":{"17":1}}],["l2",{"2":{"17":1}}],["l104",{"2":{"15":1}}],["l44",{"2":{"15":1}}],["lazily",{"2":{"79":1}}],["lazy",{"2":{"16":1}}],["largest",{"2":{"77":1,"79":1}}],["large",{"2":{"58":1}}],["larger",{"2":{"33":1,"34":1}}],["last",{"2":{"51":1}}],["lastindex",{"2":{"27":1}}],["laptop",{"2":{"34":1}}],["language",{"2":{"21":1}}],["layermetadata",{"2":{"19":1,"40":1}}],["layerdims",{"2":{"19":1,"40":1}}],["layernames=nothing",{"2":{"16":1}}],["layered",{"2":{"14":2}}],["layer",{"2":{"14":5,"17":3,"21":2,"25":1,"77":3,"79":2}}],["layersfrom=dim",{"2":{"16":1}}],["layersfrom=nothing",{"2":{"16":1}}],["layersfrom",{"2":{"16":1}}],["layers",{"2":{"14":9,"16":1,"17":6,"77":8,"78":2,"79":2}}],["labels",{"2":{"75":1}}],["labels=x",{"2":{"50":2}}],["labelled",{"2":{"24":1,"74":1}}],["labelling",{"2":{"13":1}}],["label",{"2":{"0":1,"2":5,"22":1,"24":1}}],["line",{"2":{"74":1}}],["linear",{"2":{"13":1}}],["linearmap",{"2":{"4":1}}],["limitations",{"2":{"21":1}}],["library",{"2":{"17":1}}],["listed",{"2":{"8":1}}],["little",{"2":{"5":1}}],["lies",{"2":{"14":2}}],["lie",{"2":{"5":1}}],["likely",{"2":{"4":1,"19":2}}],["like",{"2":{"0":1,"3":2,"4":6,"5":2,"13":2,"14":1,"15":3,"17":3,"18":1,"22":1,"25":3,"27":1,"37":1,"57":1,"76":1,"77":1}}],["legend",{"2":{"74":1}}],["let",{"2":{"52":2}}],["letting",{"2":{"22":1}}],["lets",{"2":{"11":1,"18":1,"26":1,"42":2,"49":1}}],["left",{"2":{"19":1,"47":1}}],["leans",{"2":{"21":1}}],["leaveing",{"2":{"27":1}}],["leave",{"2":{"13":1}}],["leaves",{"2":{"3":1}}],["leap",{"2":{"4":1}}],["least",{"2":{"3":1,"13":1,"17":2,"19":2}}],["level",{"2":{"3":2}}],["length=365",{"2":{"42":1}}],["lengths",{"2":{"3":1,"13":1}}],["length",{"2":{"0":1,"3":6,"4":5,"8":1,"13":6,"19":1,"24":2,"37":1,"79":1}}],["lt",{"2":{"0":9,"1":2,"3":4,"5":1,"10":1,"38":3,"66":1,"68":1}}],["lot",{"2":{"75":1}}],["log",{"2":{"15":1,"16":1,"26":2}}],["look",{"2":{"42":1}}],["lookupdim",{"2":{"17":1}}],["lookupcomponent",{"2":{"17":1}}],["lookuparraytrait",{"2":{"6":1,"7":1,"8":1,"9":1,"10":1,"17":1}}],["lookuparrays",{"0":{"4":1,"76":1},"1":{"5":1,"6":1,"7":1,"8":1,"9":1,"10":1,"11":1},"2":{"2":1,"3":2,"4":33,"5":10,"6":1,"7":6,"8":5,"9":3,"10":5,"11":3,"13":1,"17":2,"22":1,"76":11}}],["lookuparray",{"0":{"6":1},"1":{"7":1,"8":1,"9":1,"10":1},"2":{"2":1,"3":1,"4":24,"6":1,"7":6,"17":7,"24":1,"35":1,"37":1,"40":1,"76":3}}],["lookups",{"0":{"73":1},"2":{"0":1,"2":1,"4":3,"5":1,"22":1,"37":1,"57":1,"76":2}}],["lookup",{"0":{"70":1,"72":1},"1":{"71":1,"72":1,"73":1},"2":{"0":6,"2":1,"3":1,"4":11,"5":1,"6":1,"9":1,"10":6,"13":8,"15":2,"17":4,"24":1,"25":1,"35":2,"76":4,"77":1}}],["looping",{"2":{"79":1}}],["loop",{"2":{"13":1,"79":1}}],["loosely",{"2":{"6":1}}],["localhost",{"2":{"76":1}}],["locations",{"2":{"13":1}}],["location",{"2":{"9":1,"13":4}}],["located",{"2":{"5":1}}],["loci",{"0":{"10":1},"2":{"5":1}}],["locus",{"2":{"0":1,"4":13,"5":2,"9":3,"10":6}}],["long",{"2":{"38":1,"39":1,"78":1}}],["longitudes",{"2":{"4":1}}],["longer",{"2":{"3":1,"4":1}}],["lowerbound",{"2":{"8":1}}],["lower",{"2":{"5":1,"8":1}}],["low",{"2":{"3":1}}],["loading",{"2":{"0":1}}],["load",{"2":{"0":1,"4":1,"42":1,"57":1,"68":1}}],["csv",{"2":{"79":1}}],["cryogridoutput",{"2":{"65":1}}],["cryogrid",{"0":{"65":1},"2":{"65":2}}],["crs",{"2":{"57":1}}],["creates",{"2":{"13":1}}],["create",{"2":{"4":2,"13":8,"17":3,"21":1,"42":1,"48":1}}],["created",{"2":{"0":1}}],["creating",{"2":{"0":1,"13":1,"50":1}}],["ci",{"2":{"21":2,"33":1}}],["cd43d14c21d48af4b605b43bffce088f272c3adc",{"2":{"15":1,"17":1}}],["climate",{"2":{"59":1}}],["climatebase",{"0":{"59":1},"2":{"59":1}}],["clos",{"2":{"51":1}}],["closest",{"2":{"76":1}}],["closely",{"2":{"58":1}}],["close",{"2":{"19":3,"52":1}}],["closed`",{"2":{"76":1}}],["closed",{"2":{"5":3,"51":18,"52":17}}],["clashes",{"2":{"0":1,"5":1}}],["cycling",{"2":{"4":1}}],["cyclical",{"2":{"76":1}}],["cyclic",{"2":{"4":5}}],["cycle=24",{"2":{"50":1}}],["cycle=12",{"2":{"50":1}}],["cycled",{"2":{"4":3}}],["cycle",{"2":{"4":9}}],["cua2",{"2":{"21":1}}],["cua",{"2":{"21":2}}],["cuarray",{"2":{"17":1,"21":1}}],["cuda",{"0":{"21":1},"2":{"21":2}}],["currently",{"2":{"21":1}}],["current",{"2":{"4":1,"13":1}}],["curresponding",{"2":{"4":3}}],["customization",{"0":{"70":1},"1":{"71":1,"72":1,"73":1}}],["custom=dd",{"2":{"17":1}}],["custom=10",{"2":{"17":1}}],["custom",{"0":{"54":1,"72":1},"2":{"0":4,"3":1,"16":2,"17":9,"21":1,"35":2}}],["center",{"2":{"5":5,"9":2,"10":4}}],["central",{"2":{"0":1}}],["cellular",{"2":{"66":1}}],["cells",{"2":{"9":1,"10":1,"76":1}}],["cell",{"2":{"3":1,"5":1,"10":3}}],["choose",{"2":{"39":1,"74":1}}],["chosen",{"2":{"2":1}}],["chunked",{"2":{"34":1}}],["chunksize=",{"2":{"33":1}}],["child",{"2":{"17":1}}],["changing",{"2":{"4":1,"17":1}}],["changes",{"2":{"19":1}}],["change",{"2":{"3":1,"4":4,"17":5}}],["changed",{"2":{"3":1}}],["characters",{"2":{"13":1}}],["char",{"2":{"0":7,"3":1,"4":1,"15":1}}],["check=true",{"2":{"3":1}}],["check",{"2":{"1":2,"3":1,"4":1,"5":1,"15":1,"16":1,"20":1}}],["cairomakie",{"2":{"75":1}}],["calulations",{"2":{"34":1}}],["call",{"2":{"17":1,"19":1}}],["calling",{"2":{"17":1,"38":1}}],["calls",{"2":{"13":1,"40":1}}],["called",{"2":{"3":2,"21":1}}],["cartesianindex",{"2":{"25":2}}],["cartesianindices",{"2":{"15":4,"25":1}}],["cat",{"2":{"17":9,"27":1}}],["categorises",{"2":{"11":1}}],["categories",{"2":{"4":3,"76":1}}],["categorical",{"2":{"0":4,"3":2,"4":8,"5":3,"13":3,"15":1,"17":1,"75":1,"76":1}}],["captions",{"2":{"13":1}}],["capable",{"2":{"4":1}}],["cases",{"2":{"35":1,"37":1}}],["case",{"2":{"13":1,"17":2,"27":1}}],["caution",{"2":{"5":1}}],["cannot",{"2":{"7":1,"13":1}}],["can",{"0":{"42":1},"1":{"43":1,"44":1,"45":1,"46":1,"47":1,"48":1},"2":{"0":2,"1":3,"2":1,"3":7,"4":19,"5":3,"10":1,"11":1,"13":8,"14":2,"15":3,"16":1,"17":8,"22":4,"24":5,"25":7,"27":3,"35":1,"39":1,"40":1,"42":1,"47":1,"48":3,"49":1,"50":2,"76":2,"78":1}}],["c",{"2":{"0":7,"3":2,"4":2,"13":6,"15":2,"17":5,"25":6,"52":1,"74":1,"75":1}}],["cover",{"2":{"41":1}}],["cov",{"2":{"27":1}}],["cor",{"2":{"27":1}}],["correct",{"2":{"4":2,"5":1,"10":1,"21":1}}],["corresponding",{"2":{"10":3,"24":1}}],["correspond",{"2":{"3":1}}],["cost",{"2":{"26":1}}],["copyto",{"2":{"17":1}}],["copy",{"2":{"17":10}}],["code",{"2":{"14":2,"19":2,"21":1}}],["coded",{"2":{"6":1}}],["count",{"2":{"34":1}}],["counted",{"2":{"5":1}}],["could",{"2":{"5":1,"52":1}}],["confusing",{"2":{"39":1}}],["confused",{"2":{"5":1}}],["consecutive",{"2":{"25":2}}],["consistency",{"2":{"77":1}}],["consistent",{"2":{"25":1}}],["considered",{"2":{"13":1}}],["constraint",{"2":{"25":1}}],["construct",{"2":{"16":1,"17":1,"24":1}}],["constructors",{"2":{"13":1}}],["constructor",{"2":{"4":1,"14":1,"21":1}}],["constructionbase",{"2":{"17":1,"39":2}}],["construction",{"2":{"4":1,"10":1}}],["constructed",{"2":{"3":1,"4":1,"14":1,"24":1,"36":1}}],["constant",{"2":{"13":1}}],["const",{"2":{"5":1,"17":1,"42":1}}],["concatenate",{"2":{"17":5}}],["concern",{"2":{"13":1}}],["concrete",{"2":{"0":1,"1":2,"3":3,"4":2,"13":1,"14":1}}],["converging",{"2":{"58":1}}],["conversion",{"2":{"11":1}}],["converrsions",{"2":{"10":1}}],["convertable",{"2":{"21":1}}],["converted",{"2":{"3":2,"4":1,"16":1,"21":1}}],["converts",{"2":{"2":1,"21":1}}],["convert",{"2":{"2":1,"3":2,"4":1,"21":1}}],["contents",{"2":{"11":1}}],["contexts",{"2":{"4":3}}],["context",{"2":{"3":1,"4":1,"13":1}}],["containing",{"2":{"13":1,"17":1}}],["contain",{"2":{"5":2,"17":2}}],["contained",{"2":{"4":2,"5":1,"15":1}}],["contains",{"2":{"1":1,"4":3,"5":9,"17":1,"76":2}}],["conatining",{"2":{"3":1}}],["column",{"2":{"16":2}}],["columns",{"2":{"1":1,"8":1,"13":1,"16":4,"79":2}}],["colormap=",{"2":{"75":1}}],["color",{"2":{"15":1,"17":1}}],["colons",{"2":{"25":1}}],["colon",{"2":{"0":3,"2":2,"3":1,"14":1,"17":1}}],["collected",{"2":{"79":1}}],["collect",{"2":{"13":1,"25":1}}],["collection",{"2":{"13":3,"17":3,"77":1}}],["coords",{"2":{"17":2}}],["coordinatetransformations",{"2":{"4":2}}],["coordinate",{"2":{"0":1,"35":1}}],["coord",{"2":{"0":10}}],["com",{"2":{"15":1,"17":1,"69":1}}],["combinations",{"2":{"15":2}}],["combines",{"2":{"5":1}}],["combined",{"2":{"4":1,"15":1,"17":1,"25":2}}],["combinedims",{"2":{"3":1}}],["combine",{"2":{"3":1,"16":1,"49":1,"52":1}}],["combining",{"2":{"0":1,"51":1}}],["compilation",{"2":{"78":1}}],["compiler",{"2":{"78":1}}],["compile",{"2":{"0":1,"78":1}}],["compatible",{"2":{"16":1}}],["compat",{"2":{"13":1,"17":4}}],["comparing",{"2":{"3":1}}],["comparisons",{"2":{"3":2}}],["compare",{"2":{"3":6}}],["compared",{"2":{"3":1}}],["comparedims",{"2":{"3":4}}],["completely",{"2":{"24":1}}],["complexf64",{"2":{"13":2}}],["complexity",{"2":{"13":2}}],["complex",{"2":{"13":1}}],["complicated",{"2":{"5":1}}],["comprehensions",{"2":{"13":1}}],["comprehension",{"2":{"13":1}}],["commonly",{"2":{"4":1,"13":1}}],["commondims",{"2":{"3":5}}],["common",{"2":{"0":2,"4":1,"13":1,"42":1,"57":1,"76":1}}],["zip",{"2":{"17":1}}],["z=dd",{"2":{"17":1}}],["z=",{"2":{"17":1}}],["zero",{"2":{"13":2,"17":1}}],["zeros",{"2":{"0":1,"13":13,"17":3,"24":2}}],["zdim",{"2":{"0":3}}],["z",{"2":{"0":11,"1":7,"3":4,"13":1,"17":12,"22":1,"25":7,"27":2,"75":1}}],["yaxarrays",{"0":{"58":1},"2":{"58":1}}],["yaxarray",{"2":{"35":1,"58":1}}],["y=1",{"2":{"34":1}}],["y=dimarray",{"2":{"17":1}}],["yet",{"2":{"10":1,"25":4}}],["yearday",{"2":{"48":1,"50":2}}],["yearhour",{"2":{"48":2,"52":4}}],["yearmonth",{"0":{"48":1},"2":{"48":1,"51":2}}],["year",{"2":{"4":4,"48":2,"49":1,"52":1}}],["years",{"0":{"51":1},"2":{"4":3,"51":2}}],["yourdimarray",{"2":{"39":1}}],["your",{"2":{"5":1,"17":1,"39":2,"40":2}}],["you",{"2":{"4":2,"5":1,"16":1,"17":2,"19":2,"22":1,"27":2,"39":1,"40":1,"48":1}}],["ydim",{"2":{"0":3}}],["y",{"2":{"0":20,"1":8,"3":10,"4":9,"5":15,"13":15,"14":2,"15":9,"16":2,"17":11,"21":1,"22":1,"24":4,"25":7,"26":3,"27":5,"33":2,"34":2,"75":2}}],["x+7",{"2":{"52":1}}],["x2",{"2":{"17":3}}],["x26",{"2":{"15":2,"17":2}}],["x1",{"2":{"17":3}}],["x=>",{"2":{"52":1}}],["x=1",{"2":{"34":2}}],["x=3",{"2":{"24":1}}],["x=dimarray",{"2":{"17":1}}],["x=all",{"2":{"5":1}}],["xs",{"2":{"2":1,"3":2,"4":6,"13":2,"16":1}}],["xdim",{"2":{"0":3}}],["x3c",{"2":{"0":11,"3":1,"4":12,"5":9,"7":6,"8":4,"9":3,"10":4,"11":2,"13":2,"14":1,"15":13,"16":2,"17":11,"18":2,"19":2,"26":2}}],["x",{"2":{"0":19,"1":20,"2":5,"3":26,"4":31,"5":30,"11":5,"13":41,"14":3,"15":12,"16":5,"17":26,"21":1,"22":2,"24":3,"25":14,"26":3,"27":5,"33":3,"34":3,"39":1,"48":6,"49":3,"50":2,"52":5,"74":1,"75":3,"76":9}}],["ie",{"2":{"34":1}}],["io",{"2":{"19":10}}],["i>function",{"2":{"17":1}}],["i>",{"2":{"15":1,"17":1}}],["i>type",{"2":{"15":1}}],["ignoring",{"2":{"13":1}}],["ignore",{"2":{"3":2,"22":1,"39":1,"75":1}}],["ignored",{"2":{"3":1}}],["images",{"2":{"68":1}}],["immutable",{"2":{"13":1,"17":1,"21":1,"39":1}}],["improve",{"2":{"78":1}}],["implements",{"2":{"79":1}}],["implemented",{"2":{"38":1}}],["implement",{"2":{"14":1,"39":1,"79":1}}],["implementation",{"2":{"4":2,"14":1,"65":1}}],["implementations",{"2":{"0":1}}],["important",{"2":{"4":3}}],["id=",{"2":{"15":1,"17":1}}],["idiom",{"2":{"13":1}}],["identical",{"2":{"4":2,"11":1,"77":1}}],["irrigular",{"2":{"8":1}}],["irregular",{"2":{"4":3,"5":2,"8":4,"17":2,"49":7,"50":5,"51":2,"52":3}}],["i",{"0":{"54":1},"2":{"2":2,"3":3,"15":1,"34":1,"37":1,"51":1,"52":1}}],["if",{"2":{"1":2,"2":3,"3":5,"4":8,"5":3,"11":1,"13":1,"14":1,"15":2,"17":12,"21":1,"27":1,"34":1,"37":1,"39":1,"52":1,"75":1,"77":2}}],["isbits",{"2":{"21":1}}],["isa",{"2":{"14":1}}],["isapprox",{"2":{"5":1}}],["issue",{"2":{"4":1}}],["is",{"0":{"34":1},"2":{"0":4,"1":3,"2":1,"3":17,"4":33,"5":8,"6":1,"7":3,"8":2,"10":4,"13":18,"14":3,"15":1,"17":20,"18":3,"19":2,"21":3,"22":2,"25":1,"27":1,"33":1,"34":1,"35":2,"38":2,"39":5,"50":1,"51":2,"57":4,"58":3,"61":2,"63":1,"66":1,"68":1,"74":2,"75":1,"77":2,"78":1,"79":1}}],["iterable",{"2":{"17":1}}],["iterates",{"2":{"17":2}}],["iterate",{"2":{"15":1}}],["iterators",{"2":{"17":1}}],["iterator",{"2":{"14":2,"17":1}}],["iteration",{"2":{"13":1,"14":2}}],["its",{"2":{"10":3,"13":2,"17":3,"21":1,"35":1,"58":1,"63":1}}],["itself",{"2":{"0":1,"13":2}}],["it",{"2":{"0":1,"3":3,"4":11,"5":3,"7":1,"11":1,"13":2,"14":2,"15":1,"17":5,"18":2,"19":1,"21":1,"22":3,"25":2,"26":1,"27":3,"33":1,"37":1,"38":1,"39":1,"49":1,"52":2,"57":1,"58":1,"63":1,"75":1,"76":1,"77":1}}],["inferno",{"2":{"75":1}}],["information",{"2":{"0":1,"4":3,"13":1}}],["invalid",{"2":{"25":1}}],["inverse",{"2":{"17":1}}],["inclusively",{"2":{"76":1}}],["including",{"2":{"7":1}}],["includes",{"2":{"76":1}}],["included",{"2":{"3":1,"5":1}}],["include",{"2":{"2":1,"3":2,"5":1,"19":1,"53":1}}],["incorporate",{"2":{"52":1}}],["increased",{"2":{"17":1}}],["inbuilt",{"2":{"17":1}}],["initially",{"2":{"14":2}}],["inner",{"2":{"13":1,"17":2,"19":1}}],["innaccurate",{"2":{"8":1}}],["instantly",{"2":{"34":1}}],["installed",{"2":{"20":1}}],["installation",{"0":{"20":1}}],["instead",{"2":{"5":1,"7":1,"11":1,"13":2,"75":1}}],["inside",{"2":{"5":1,"25":1,"76":1}}],["inputs",{"2":{"38":1}}],["input",{"2":{"3":1,"5":1,"8":1,"17":3,"53":1}}],["individual",{"2":{"15":1}}],["indicate",{"2":{"5":1,"10":1,"27":1}}],["indicates",{"2":{"4":2,"7":3,"9":1,"10":4,"11":1}}],["indicating",{"2":{"4":5}}],["indices",{"2":{"2":2,"5":4,"13":1,"15":3,"17":2,"22":1,"76":7}}],["indes",{"2":{"5":1}}],["independent",{"2":{"0":1,"4":1,"13":1}}],["independentdim",{"2":{"0":5}}],["indexable",{"2":{"13":1}}],["index=autoindex",{"2":{"4":1}}],["indexes",{"2":{"4":1,"77":1}}],["indexed",{"2":{"4":2,"14":2}}],["indexing",{"0":{"25":1,"26":1},"2":{"0":2,"4":4,"13":3,"14":2,"24":1,"25":7,"26":1,"57":1,"76":1,"77":2,"78":2}}],["index",{"2":{"0":5,"2":1,"3":3,"4":28,"5":7,"6":1,"7":4,"8":4,"9":2,"10":5,"13":6,"14":2,"15":4,"16":2,"17":5,"22":1,"24":2,"25":4,"34":1,"76":4}}],["inherits",{"2":{"58":1}}],["inherit",{"2":{"1":1,"22":1}}],["int8",{"2":{"13":2}}],["intselectors",{"2":{"5":1}}],["intselector",{"2":{"5":4}}],["integrations",{"0":{"55":1},"1":{"56":1,"57":1,"58":1,"59":1,"60":1,"61":1,"62":1,"63":1,"64":1,"65":1,"66":1,"67":1,"68":1,"69":1}}],["integration",{"2":{"33":1}}],["integers",{"2":{"13":1,"17":1,"42":1}}],["integer",{"2":{"3":1,"13":4,"17":2,"38":1}}],["intended",{"2":{"5":1}}],["interop",{"2":{"79":1}}],["interpreted",{"2":{"13":1}}],["interact",{"2":{"5":1}}],["intermediate",{"2":{"5":1}}],["interface",{"0":{"16":1,"19":1},"2":{"3":1,"19":2,"35":1,"79":2}}],["internal",{"0":{"19":1},"2":{"3":1,"17":1}}],["interval",{"2":{"0":1,"4":5,"5":10,"8":1,"9":2,"10":1,"51":4,"52":3,"76":3}}],["intervalsets",{"2":{"5":1,"51":2,"52":2}}],["intervals",{"2":{"0":1,"4":13,"5":10,"8":3,"9":4,"10":1,"51":2,"52":1}}],["int",{"2":{"1":4,"2":2,"3":3,"5":1,"13":1,"14":2,"16":1,"22":1,"25":2,"27":1,"38":1,"50":1,"76":5}}],["int64",{"2":{"0":3,"4":3,"5":14,"13":2,"15":6,"16":2,"17":28,"25":2,"34":1,"43":1,"44":1,"45":1,"46":1,"48":4,"49":11,"50":9,"51":3,"52":6}}],["into",{"2":{"0":2,"4":3,"15":1,"16":1,"17":2,"21":2,"22":2,"25":1,"65":1,"75":1}}],["in",{"0":{"24":1},"2":{"0":5,"1":3,"2":1,"3":13,"4":12,"5":9,"7":3,"8":2,"9":1,"10":3,"13":8,"14":6,"15":4,"17":33,"18":1,"21":2,"22":1,"24":1,"25":3,"27":4,"33":2,"34":1,"35":2,"37":1,"39":2,"40":2,"48":1,"50":1,"74":1,"75":3,"76":6,"77":3,"78":1,"79":1}}],["http",{"2":{"76":1}}],["https",{"2":{"15":1,"17":1,"69":1}}],["hundreds",{"2":{"79":1}}],["huge",{"2":{"33":2}}],["humidity",{"2":{"17":6}}],["histogram",{"2":{"26":2}}],["higher",{"2":{"17":1}}],["hvncat",{"2":{"17":1}}],["hvcat",{"2":{"17":1}}],["hcat",{"2":{"17":2}}],["href=",{"2":{"15":1,"17":1}}],["heatmap",{"2":{"75":1}}],["helper",{"2":{"50":1}}],["here",{"2":{"14":1,"17":1,"27":1,"49":1,"75":1}}],["heirarchy",{"2":{"0":1}}],["happen",{"2":{"34":1}}],["happens",{"2":{"34":1}}],["had",{"2":{"21":1}}],["having",{"2":{"17":1}}],["have",{"2":{"0":3,"4":3,"8":2,"13":1,"14":2,"16":1,"17":7,"25":1,"35":1,"36":1,"37":1,"39":1,"52":1,"75":1,"77":1}}],["hard",{"2":{"6":1}}],["haskey",{"2":{"11":2}}],["hasselection",{"2":{"4":2}}],["hasn",{"2":{"2":1}}],["has",{"2":{"1":1,"3":2,"4":1,"11":1,"13":2,"14":1,"17":3,"21":2,"24":1,"26":1,"27":1,"37":1,"39":2}}],["hasdim",{"2":{"1":6}}],["hopefully",{"2":{"78":1}}],["however",{"2":{"5":1,"17":1}}],["how",{"0":{"30":1,"31":1,"34":1},"2":{"4":2,"7":2,"22":1,"42":1,"51":1,"52":2}}],["hold",{"2":{"17":1,"37":1,"76":1}}],["holds",{"2":{"0":1,"4":4,"14":1,"33":1,"76":1}}],["holding",{"2":{"0":1,"1":1,"2":1,"8":1,"13":8}}],["hourly",{"2":{"52":1}}],["hours",{"2":{"50":1,"52":1}}],["hour12",{"2":{"49":1}}],["hour",{"0":{"43":1},"2":{"0":1,"42":3,"43":1,"48":1,"49":1,"50":1,"52":4,"53":1}}],["join",{"2":{"50":1}}],["jarring",{"2":{"14":2}}],["juia",{"2":{"65":1}}],["jump",{"0":{"63":1},"2":{"63":1}}],["just",{"2":{"4":2,"5":2,"17":1,"22":2,"34":1,"37":1,"39":1,"50":2,"76":1}}],["juliahub",{"2":{"69":1}}],["juliahasselection",{"2":{"4":1}}],["juliahasdim",{"2":{"1":1}}],["juliagb",{"2":{"34":2}}],["juliamakie",{"2":{"75":1}}],["juliamap",{"2":{"14":1,"17":2}}],["juliamodify",{"2":{"17":1}}],["juliamergedims",{"2":{"17":3}}],["juliamergedlookup",{"2":{"4":1}}],["juliamean",{"2":{"14":1}}],["juliametadata",{"2":{"11":1,"13":1}}],["julia",{"2":{"13":2,"15":1,"17":9,"19":2,"21":2,"27":1,"61":1,"78":1,"79":1}}],["juliarand",{"2":{"13":1}}],["juliareorder",{"2":{"17":1}}],["juliarebuild",{"2":{"17":1,"19":1,"39":1}}],["juliaregular",{"2":{"8":1}}],["juliareverseordered",{"2":{"7":1}}],["juliarefdims",{"2":{"3":1,"13":1}}],["juliareducedims",{"2":{"3":1}}],["juliafill",{"2":{"13":1}}],["juliaforwardordered",{"2":{"7":1}}],["juliaformat",{"2":{"2":1}}],["juliaeachslice",{"2":{"17":1}}],["juliaend",{"2":{"10":1}}],["juliaexplicit",{"2":{"8":1}}],["juliapoints",{"2":{"9":1}}],["juliairregular",{"2":{"8":1}}],["juliaintervals",{"2":{"9":1}}],["juliaintselector",{"2":{"5":1}}],["juliaindex",{"2":{"4":1}}],["juliaindependentdim",{"2":{"0":1}}],["juliawhere",{"2":{"5":1}}],["julianame",{"2":{"13":1,"18":1}}],["julianoname",{"2":{"18":1}}],["julianometadata",{"2":{"11":1}}],["julianolookup",{"2":{"4":1}}],["julianear",{"2":{"5":1}}],["juliaones",{"2":{"13":1}}],["juliaordered",{"2":{"7":1}}],["juliaorder",{"2":{"4":1,"7":1}}],["juliaotherdims",{"2":{"1":1}}],["juliabroadcast",{"2":{"17":2}}],["juliabetween",{"2":{"5":1}}],["juliabounds",{"2":{"4":1}}],["juliabase",{"2":{"13":4,"17":5}}],["juliabasedims",{"2":{"3":1}}],["juliabasetypeof",{"2":{"3":1}}],["juliaval",{"2":{"4":1}}],["juliatouches",{"2":{"5":1}}],["juliatransformed",{"2":{"4":1}}],["juliatimedim",{"2":{"0":2}}],["juliaunmergedims",{"2":{"17":2}}],["juliaunordered",{"2":{"7":1}}],["juliaunaligned",{"2":{"4":1}}],["juliausing",{"2":{"0":3,"3":2,"4":6,"5":7,"13":1,"20":1,"21":1,"22":1,"26":1,"27":1,"33":1,"42":1,"75":1}}],["juliacat",{"2":{"17":1}}],["juliacategorical",{"2":{"4":1}}],["juliacenter",{"2":{"10":1}}],["juliacyclic",{"2":{"4":1}}],["juliacopy",{"2":{"17":3}}],["juliacontains",{"2":{"5":1}}],["juliacombinedims",{"2":{"3":1}}],["juliacomparedims",{"2":{"3":1}}],["juliacommondims",{"2":{"3":1}}],["juliacoord",{"2":{"0":1}}],["juliaa",{"2":{"17":1}}],["juliaall",{"2":{"5":1}}],["juliaaligned",{"2":{"4":1}}],["juliaat",{"2":{"5":1}}],["juliaarrayselector",{"2":{"5":1}}],["juliaautolocus",{"2":{"10":1}}],["juliaautolookup",{"2":{"4":1}}],["juliaautospan",{"2":{"8":1}}],["juliaautoorder",{"2":{"7":1}}],["juliaautoindex",{"2":{"4":1}}],["juliaabstractname",{"2":{"18":1}}],["juliaabstractdimtable",{"2":{"16":1}}],["juliaabstractdimstack",{"2":{"14":1}}],["juliaabstractdimarray",{"2":{"13":1}}],["juliaabstractmetadata",{"2":{"11":1}}],["juliaabstractcategorical",{"2":{"4":1}}],["juliaabstractcyclic",{"2":{"4":1}}],["juliaabstractsampled",{"2":{"4":1}}],["juliaanondim",{"2":{"0":1}}],["julialocus",{"2":{"4":1}}],["julialookuparraytrait",{"2":{"6":1}}],["julialookuparray",{"2":{"4":1}}],["julialookuparrays",{"2":{"4":1}}],["julialabel",{"2":{"2":1}}],["juliashow",{"2":{"19":2}}],["juliashiftlocus",{"2":{"4":1}}],["juliastart",{"2":{"10":1}}],["juliaspan",{"2":{"4":1,"8":1}}],["juliasampling",{"2":{"4":1,"9":1}}],["juliasampled",{"2":{"4":1}}],["juliaset",{"2":{"17":1}}],["juliasetdims",{"2":{"3":1}}],["juliaselector",{"2":{"5":1}}],["juliaselectindices",{"2":{"2":1}}],["juliasortdims",{"2":{"3":1}}],["juliaslicedims",{"2":{"3":1}}],["juliaswapdims",{"2":{"3":1}}],["juliakey2dim",{"2":{"3":1}}],["julia>",{"2":{"0":5,"1":10,"3":4,"13":26,"14":8,"15":2,"16":1,"17":16,"24":1}}],["juliajulia>",{"2":{"0":1,"1":3,"3":1,"13":7,"14":1,"16":1,"17":10,"24":5,"25":7,"26":3,"27":5,"42":1,"43":1,"44":1,"45":1,"46":1,"48":2,"49":8,"50":7,"51":2,"52":7,"53":1}}],["juliazeros",{"2":{"13":1}}],["juliaz",{"2":{"0":1}}],["juliazdim",{"2":{"0":2}}],["juliayearday",{"2":{"48":1}}],["juliay",{"2":{"0":1}}],["juliaydim",{"2":{"0":2}}],["juliadiska",{"2":{"34":1}}],["juliadimb",{"2":{"34":2}}],["juliadimtable",{"2":{"16":1}}],["juliadimindices",{"2":{"15":1}}],["juliadimarray",{"2":{"13":1}}],["juliadim2key",{"2":{"3":1}}],["juliadimnum",{"2":{"1":1}}],["juliadimstack",{"2":{"14":1}}],["juliadimstride",{"2":{"3":1}}],["juliadimsmatch",{"2":{"3":1}}],["juliadims2indices",{"2":{"2":1}}],["juliadims",{"2":{"1":1,"13":1}}],["juliadim",{"2":{"0":1}}],["juliadimension",{"2":{"0":1}}],["juliadependentdim",{"2":{"0":1}}],["juliaxdim",{"2":{"0":2}}],["juliax",{"2":{"0":3}}],["j",{"2":{"3":2}}],["jldoctest",{"2":{"17":1}}],["jl",{"0":{"16":2,"57":1,"58":1,"59":1,"61":1,"63":1,"65":1,"66":1,"68":1,"69":1,"74":1,"75":1},"2":{"0":2,"4":5,"5":1,"15":2,"16":2,"17":3,"19":4,"21":8,"22":1,"33":2,"35":1,"36":1,"37":2,"39":3,"41":1,"57":3,"58":4,"59":1,"61":1,"63":1,"65":1,"66":2,"68":1,"69":1,"74":4,"75":2,"76":2,"79":5}}],["small",{"2":{"77":1}}],["slowly",{"2":{"58":1}}],["slicing",{"2":{"3":1}}],["sliced",{"2":{"14":1,"17":1}}],["slicedims",{"2":{"3":2,"13":1}}],["slice",{"2":{"3":1,"13":1,"17":3}}],["slices",{"2":{"0":1,"3":1,"13":1,"17":10}}],["synchronisation",{"2":{"66":1}}],["symmetry",{"2":{"22":1}}],["symbol",{"2":{"1":1,"2":1,"3":7,"4":8,"13":11,"14":7,"16":1,"17":6,"18":3,"38":2,"49":7,"50":6,"51":2,"52":4,"53":1,"79":1}}],["symbols",{"2":{"0":1,"1":1,"2":1,"3":2,"4":5,"13":3,"21":1,"24":1,"27":1}}],["system",{"2":{"21":1,"35":1}}],["scalars",{"2":{"77":1}}],["scalar",{"2":{"77":1}}],["sciences",{"0":{"56":1},"1":{"57":1,"58":1,"59":1}}],["schema",{"2":{"16":1}}],["scope",{"2":{"0":1,"4":1,"22":1}}],["src",{"2":{"15":1,"17":10}}],["save",{"2":{"57":1}}],["saving",{"2":{"11":2}}],["say",{"2":{"52":2}}],["samples",{"2":{"9":1,"26":2}}],["sampled",{"2":{"0":7,"4":16,"5":8,"9":1,"13":3,"15":1,"17":11,"33":2,"34":2,"35":1,"49":9,"50":6,"51":2,"52":9,"53":1,"76":1}}],["sampling=dd",{"2":{"5":2}}],["sampling=intervals",{"2":{"4":2}}],["sampling=points",{"2":{"4":2}}],["sampling",{"0":{"9":1},"2":{"0":1,"3":1,"4":15,"5":1,"8":1,"9":6,"17":1,"40":1,"53":1}}],["same",{"2":{"0":2,"3":3,"4":1,"5":2,"11":1,"13":7,"15":2,"17":8,"25":1,"26":1,"27":1,"37":2,"39":1,"42":1,"49":1,"51":1,"52":1,"74":1,"77":2,"79":1}}],["shelljulia>",{"2":{"20":2}}],["sharing",{"2":{"14":1}}],["shares",{"2":{"17":1}}],["share",{"2":{"14":1,"77":1}}],["shift",{"2":{"4":2}}],["shiftlocus",{"2":{"4":1}}],["shorthand",{"2":{"13":1}}],["show",{"2":{"19":9,"76":1}}],["shows",{"2":{"13":1}}],["shown",{"2":{"2":1,"24":1}}],["should",{"2":{"2":1,"5":1,"13":1,"17":3,"21":1,"34":1,"37":1,"38":1,"39":1,"53":1}}],["swapping",{"2":{"17":1}}],["swap",{"2":{"3":1}}],["swapdims",{"2":{"3":3}}],["special",{"2":{"17":1}}],["specify",{"2":{"13":1,"17":2,"22":1,"27":1}}],["specifying",{"2":{"4":1,"9":1}}],["specifing",{"2":{"76":1}}],["specifies",{"2":{"7":1,"18":1,"25":1}}],["specified",{"2":{"2":1,"3":1,"4":1,"13":5,"17":1}}],["specific",{"2":{"4":5,"6":1,"8":1,"9":1,"22":1}}],["space",{"2":{"17":2}}],["spacing",{"2":{"4":2}}],["span=regular",{"2":{"4":1}}],["span=autospan",{"2":{"4":2}}],["span",{"0":{"8":1},"2":{"4":15,"8":7,"40":1}}],["spatial",{"0":{"56":1},"1":{"57":1,"58":1,"59":1},"2":{"0":1,"57":1,"58":1,"66":2}}],["std",{"2":{"27":1}}],["storage",{"2":{"57":1}}],["stored",{"2":{"13":1,"77":1}}],["stop",{"2":{"17":1}}],["style",{"2":{"15":1,"17":1,"21":1,"76":1}}],["style=",{"2":{"15":1,"17":1}}],["still",{"2":{"11":1,"13":1,"21":1,"25":1}}],["status",{"2":{"20":1}}],["statistics",{"0":{"60":1},"2":{"14":2,"27":2,"42":1}}],["standard",{"2":{"17":1,"79":1}}],["standards",{"2":{"10":1}}],["stack",{"2":{"14":2,"17":12,"19":2,"77":3,"78":1,"79":1}}],["stacks",{"0":{"77":1},"2":{"14":1,"17":7,"78":1}}],["stable",{"2":{"3":1}}],["start=6",{"2":{"50":2}}],["start=12",{"2":{"50":1}}],["start=december",{"2":{"50":1}}],["starting",{"2":{"8":1}}],["start",{"2":{"0":2,"4":4,"5":3,"9":1,"10":4,"20":1,"51":1}}],["strongly",{"2":{"17":1}}],["stripped",{"2":{"21":1}}],["strides",{"2":{"79":1}}],["stride",{"2":{"3":2}}],["strings",{"2":{"5":1}}],["string",{"2":{"2":4,"3":2,"4":2,"13":2,"50":1}}],["struct",{"2":{"3":1,"17":1}}],["step=12",{"2":{"50":1}}],["step=3",{"2":{"50":1}}],["step=hour",{"2":{"42":1}}],["step=autostep",{"2":{"8":1}}],["steprange",{"2":{"15":2}}],["step",{"2":{"3":1,"4":1,"8":2,"17":1}}],["side",{"2":{"51":1}}],["signature",{"2":{"39":1}}],["sits",{"2":{"25":1}}],["simulation",{"2":{"66":1}}],["simulations",{"0":{"64":1},"1":{"65":1,"66":1},"2":{"66":1}}],["simulate",{"2":{"33":1}}],["simulataneously",{"2":{"14":1}}],["simultaneously",{"2":{"17":1}}],["simpler",{"2":{"42":1}}],["simple",{"2":{"41":1,"49":1}}],["simply",{"2":{"4":1,"5":1,"11":1,"13":1,"19":1,"24":1}}],["simplicity",{"2":{"0":1}}],["similarly",{"2":{"79":1}}],["similar",{"2":{"4":1,"7":1,"9":1,"13":1,"43":1,"52":1}}],["simbol",{"2":{"3":1}}],["sizeof",{"2":{"34":3}}],["sizes",{"2":{"17":1}}],["size",{"2":{"2":1,"3":1,"4":5,"8":1,"13":3,"17":9,"24":1,"27":2,"33":1,"34":2,"52":4,"77":1,"79":2}}],["single",{"2":{"1":7,"3":2,"4":1,"5":2,"9":1,"14":1,"17":3,"25":2,"39":1,"76":1,"78":1}}],["s",{"2":{"0":1,"1":2,"2":1,"3":6,"4":1,"5":17,"13":14,"14":3,"15":1,"16":2,"17":7,"18":1,"19":1,"52":2,"58":1,"76":2}}],["series",{"2":{"69":1}}],["separate",{"2":{"57":1}}],["seasons",{"0":{"51":1},"2":{"51":1}}],["season",{"2":{"50":1}}],["seamlessly",{"2":{"21":1}}],["sea",{"2":{"17":4}}],["searched",{"2":{"7":1}}],["searchsortedfirst",{"2":{"7":1}}],["searchsorted",{"2":{"7":1}}],["several",{"2":{"17":1}}],["sequence",{"2":{"13":1}}],["sense",{"2":{"5":1,"57":1}}],["see",{"2":{"3":1,"13":4,"14":1,"17":6,"42":1}}],["selectdim",{"2":{"17":1}}],["select",{"0":{"51":1,"52":1},"1":{"53":1,"54":1},"2":{"17":2,"51":1,"76":1}}],["selections",{"2":{"5":1}}],["selectindices",{"2":{"2":1}}],["selects",{"2":{"5":2}}],["selected",{"2":{"5":1,"76":1}}],["selectorss",{"2":{"4":2}}],["selectors",{"0":{"5":1,"76":1},"2":{"2":1,"4":11,"5":7,"8":1,"13":1,"14":1,"25":1,"76":1,"77":1}}],["selector",{"2":{"0":1,"2":2,"4":4,"5":13,"22":1,"39":1,"40":1,"76":3}}],["second",{"2":{"0":1,"2":1,"4":4,"13":2}}],["setproperties",{"2":{"17":1}}],["setting",{"2":{"17":1}}],["setindex",{"2":{"14":1,"25":1}}],["sets",{"2":{"13":1}}],["setdims",{"2":{"3":3}}],["set",{"2":{"0":1,"4":6,"5":1,"8":1,"11":1,"13":20,"17":18,"21":1}}],["sounds",{"2":{"38":1}}],["sources",{"2":{"4":1,"17":7,"57":1}}],["source",{"2":{"0":15,"1":4,"2":4,"3":15,"4":24,"5":10,"6":1,"7":6,"8":5,"9":3,"10":5,"11":3,"13":14,"14":2,"15":2,"16":2,"17":21,"18":3,"19":3}}],["solid",{"2":{"15":1,"17":1}}],["so",{"2":{"4":2,"5":1,"17":1,"25":1,"76":1,"79":1}}],["sorted",{"2":{"5":1,"47":1}}],["sortdims",{"2":{"3":1}}],["sort",{"2":{"3":3}}],["sometimes",{"2":{"50":1}}],["somewhere",{"2":{"14":2,"77":1}}],["some",{"2":{"0":1,"4":1,"13":1,"14":1,"22":1,"27":1,"33":1,"37":1,"39":1,"42":2,"47":1,"49":1,"76":1,"77":1,"78":1}}],["surface",{"2":{"17":4}}],["surprising",{"2":{"14":2}}],["sum",{"2":{"14":1,"17":1,"27":3,"49":1}}],["succinct",{"2":{"14":2}}],["such",{"2":{"0":3,"4":1,"5":1,"10":1}}],["supported",{"2":{"17":1}}],["support",{"2":{"13":1,"74":1}}],["supplied",{"2":{"5":1}}],["supertypes",{"2":{"3":1}}],["supertype",{"2":{"0":7,"4":5,"5":3,"6":1,"7":1,"10":1,"11":1,"13":1,"14":1,"16":1,"18":1,"22":1}}],["submodule",{"2":{"22":1}}],["subarray",{"2":{"17":2}}],["subset",{"2":{"17":2}}],["subsetting",{"2":{"5":1}}],["subtypes",{"2":{"19":1}}],["subtype",{"2":{"13":1}}],["sub",{"2":{"0":2}}],["t=float64",{"2":{"13":4}}],["twice",{"2":{"5":1}}],["two",{"2":{"3":1,"4":2,"5":1,"13":4,"14":2,"16":1,"21":1,"76":1,"77":1}}],["t2=transformed",{"2":{"4":1}}],["t1=transformed",{"2":{"4":1}}],["testtypes",{"2":{"33":1}}],["test",{"2":{"21":1}}],["temporal",{"2":{"66":1}}],["tempo",{"2":{"42":1,"43":1,"44":1,"45":1,"46":1,"48":2,"49":1}}],["temp",{"2":{"17":4}}],["term",{"2":{"6":1}}],["terms",{"2":{"4":1}}],["text",{"2":{"3":1,"19":2}}],["trick",{"2":{"34":1}}],["trial",{"2":{"26":2}}],["try",{"2":{"17":1}}],["treat",{"2":{"16":1}}],["trues",{"2":{"17":2,"33":1}}],["true",{"2":{"0":1,"1":4,"3":3,"13":1,"14":1,"17":5}}],["trait",{"2":{"6":1,"17":1}}],["traits",{"0":{"6":1},"1":{"7":1,"8":1,"9":1,"10":1},"2":{"3":1,"4":1,"6":2,"7":1,"17":1,"76":1}}],["transforming",{"2":{"17":1}}],["transform",{"2":{"4":1,"17":1,"42":1}}],["transformation",{"2":{"4":3}}],["transformations",{"2":{"3":1,"4":1,"13":1}}],["transformed",{"2":{"4":2}}],["transpose",{"2":{"0":1,"27":2}}],["transect",{"2":{"0":1}}],["tracking",{"2":{"4":1,"8":1,"11":1}}],["track",{"2":{"0":1,"13":1}}],["tabular",{"2":{"79":1}}],["table",{"0":{"40":1},"2":{"16":1}}],["tabletraits",{"0":{"16":1},"2":{"16":1}}],["tables",{"0":{"16":1,"79":1},"2":{"0":1,"13":1,"16":3,"79":2}}],["ta",{"2":{"0":1}}],["take",{"2":{"0":1,"4":2,"5":1,"14":1,"27":1,"49":1,"78":1}}],["t",{"2":{"0":1,"2":2,"3":2,"4":10,"11":1,"13":2,"15":1,"25":2,"27":1}}],["tuples",{"2":{"3":4,"4":1,"15":1,"25":2,"47":1,"48":1}}],["tuple",{"0":{"47":1},"2":{"0":7,"1":17,"2":3,"3":38,"4":40,"8":2,"13":29,"14":3,"15":6,"16":1,"17":20,"19":2,"25":1,"36":1,"47":1,"48":2,"49":3,"50":1,"51":1,"52":2}}],["ti=>",{"2":{"53":1}}],["ti=>cyclicbins",{"2":{"50":2}}],["ti=>bins",{"2":{"50":6,"51":4,"52":6}}],["ti=>yearday",{"2":{"49":2}}],["ti=>yearmonth",{"2":{"49":2}}],["ti=>yearmonthday",{"2":{"49":2}}],["ti=>hour12",{"2":{"49":1}}],["ti=>dates",{"2":{"49":1}}],["ti=>dayofyear",{"2":{"49":2}}],["ti=>month",{"2":{"49":3}}],["ti=all",{"2":{"5":1}}],["tightly",{"2":{"17":1}}],["title",{"2":{"3":5}}],["timeseriestools",{"0":{"69":1},"2":{"69":2}}],["times",{"2":{"0":1}}],["timedime",{"2":{"0":1}}],["timedim",{"2":{"0":3,"3":1}}],["time",{"2":{"0":6,"4":1,"14":1,"17":3,"19":1,"26":6,"43":1,"69":1,"77":1,"78":1}}],["ti",{"2":{"0":14,"1":1,"3":5,"5":3,"13":4,"16":2,"17":8,"22":1,"27":5,"49":10,"50":10,"51":2,"52":6,"53":2,"75":1}}],["though",{"2":{"78":1}}],["those",{"2":{"5":1,"17":3,"22":1,"40":1}}],["thing",{"0":{"34":1}}],["things",{"2":{"21":1,"43":1}}],["thise",{"2":{"0":1}}],["this",{"0":{"34":1},"2":{"0":2,"2":1,"3":7,"4":13,"5":6,"7":1,"8":1,"10":2,"11":1,"13":4,"14":4,"15":1,"16":2,"17":11,"18":1,"19":1,"21":3,"22":1,"25":2,"27":5,"33":2,"34":2,"37":1,"38":1,"41":1,"49":3,"50":1,"52":1,"53":1,"66":1,"74":1,"77":2,"78":2}}],["thus",{"2":{"13":2}}],["through",{"2":{"13":1,"63":1}}],["throw",{"2":{"25":1}}],["throws",{"2":{"5":1}}],["throwing",{"2":{"3":1}}],["thrown",{"2":{"2":1,"3":1,"5":1}}],["three",{"2":{"4":2,"13":1,"14":2,"51":1}}],["than",{"2":{"3":1,"4":2,"5":2,"9":1,"13":1,"21":1,"38":1,"39":1,"52":1}}],["thats",{"2":{"27":1}}],["that",{"2":{"0":2,"1":2,"2":1,"3":1,"4":13,"5":15,"7":4,"8":3,"9":2,"10":1,"13":10,"14":4,"15":2,"17":10,"21":3,"22":3,"25":2,"34":1,"35":1,"36":1,"37":1,"38":1,"39":3,"42":1,"48":1,"76":2,"77":1,"79":1}}],["then",{"2":{"13":1,"17":2}}],["there",{"2":{"4":1,"13":4,"17":1,"39":1,"78":1}}],["these",{"2":{"0":1,"1":1,"3":2,"4":4,"6":2,"7":1,"8":1,"9":1,"10":1,"13":2,"14":1,"15":1,"16":1,"17":1,"22":1,"25":1,"34":1,"35":1,"38":1,"39":3,"40":1,"43":1,"48":1,"50":1,"76":1}}],["their",{"2":{"0":1,"3":2,"14":2,"17":4,"57":1,"76":1}}],["they",{"2":{"0":1,"2":1,"3":2,"4":3,"5":2,"10":2,"13":2,"15":2,"17":5,"21":1,"22":2,"25":1,"34":1,"47":1,"48":1,"74":1,"79":1}}],["them",{"2":{"0":1,"4":1,"11":1,"17":1,"21":1,"25":1,"51":1}}],["the",{"2":{"0":16,"1":10,"2":6,"3":50,"4":90,"5":41,"6":3,"7":9,"8":7,"9":7,"10":11,"11":5,"13":60,"14":24,"15":11,"16":4,"17":87,"18":4,"19":9,"20":2,"21":13,"22":9,"24":6,"25":7,"26":2,"27":7,"33":3,"34":5,"35":1,"37":7,"38":3,"39":6,"42":5,"47":1,"49":6,"50":3,"51":3,"52":2,"53":1,"57":1,"58":1,"65":1,"74":4,"75":5,"76":10,"77":9,"79":10}}],["typeof",{"2":{"17":1}}],["typed",{"2":{"17":1}}],["typemax",{"2":{"4":1,"13":1}}],["typemin",{"2":{"4":1,"13":1}}],["type",{"2":{"0":16,"1":4,"2":2,"3":18,"4":16,"5":10,"6":1,"7":6,"8":6,"9":3,"10":5,"11":5,"13":5,"14":3,"15":1,"16":4,"17":5,"18":4,"21":1,"25":1,"38":2,"40":1}}],["types",{"2":{"0":5,"1":5,"2":1,"3":8,"4":7,"5":1,"6":1,"10":1,"11":1,"13":3,"16":1,"17":2,"22":2,"27":2,"35":2,"42":1,"57":1,"63":1}}],["todo",{"2":{"25":4}}],["top",{"2":{"19":1,"25":1}}],["tools",{"2":{"57":2,"68":1}}],["too",{"2":{"17":1,"21":1,"34":1,"63":1}}],["touched",{"2":{"76":1}}],["touches",{"2":{"5":7}}],["touch",{"2":{"5":2}}],["touching",{"2":{"5":1}}],["tosort",{"2":{"3":4}}],["to",{"0":{"30":1,"31":1,"54":1},"2":{"0":8,"1":5,"2":3,"3":21,"4":36,"5":12,"6":1,"8":1,"9":2,"10":2,"11":4,"13":27,"14":8,"15":2,"16":1,"17":35,"18":2,"19":4,"21":15,"22":5,"24":3,"25":3,"27":4,"33":2,"35":4,"37":1,"38":1,"39":3,"40":1,"42":2,"47":1,"50":3,"52":2,"57":1,"66":1,"68":1,"74":2,"76":4,"77":2,"78":2,"79":2}}],["omptimisation",{"2":{"63":1}}],["own",{"2":{"40":1,"48":1,"63":1}}],["ownd",{"2":{"40":1}}],["objs",{"2":{"38":1}}],["obj",{"0":{"40":1},"2":{"36":1,"38":2,"39":2}}],["objectes",{"2":{"3":1}}],["object",{"2":{"1":8,"2":1,"3":9,"4":7,"6":1,"10":1,"11":2,"13":5,"15":1,"16":1,"17":11,"19":1,"22":2,"39":1}}],["objects",{"2":{"0":2,"2":2,"4":1,"5":2,"7":1,"11":1,"13":1,"14":3,"17":4,"21":1,"22":1,"25":1,"27":1,"36":1,"37":1,"38":1,"39":3,"40":2,"48":1,"77":1}}],["our",{"2":{"21":1,"24":1,"25":2,"48":1,"50":2}}],["outer",{"2":{"17":1}}],["outcome",{"2":{"14":2}}],["out",{"2":{"4":1,"16":1,"22":1,"33":1,"57":1,"74":1}}],["outputs",{"2":{"66":1}}],["output",{"0":{"54":1},"2":{"0":4,"3":2,"4":5,"5":7,"17":3,"65":1}}],["old",{"2":{"17":6}}],["optimization",{"0":{"62":1},"1":{"63":1}}],["optimized",{"2":{"13":1}}],["optimised",{"2":{"7":1}}],["optional",{"2":{"13":2}}],["operation",{"2":{"27":1}}],["operations",{"0":{"42":1},"1":{"43":1,"44":1,"45":1,"46":1,"47":1,"48":1},"2":{"0":1,"13":1,"21":1}}],["open`",{"2":{"76":1}}],["open",{"2":{"5":1,"51":19,"52":17}}],["o",{"2":{"4":1}}],["overheads",{"2":{"78":1}}],["over",{"2":{"0":1,"4":4,"9":1,"14":3,"15":2,"17":7,"27":1,"49":1,"77":1,"79":1}}],["others",{"2":{"17":2,"22":1}}],["otherwise",{"2":{"4":1,"5":1,"35":1}}],["otherdims",{"2":{"1":3,"15":1,"27":2}}],["other",{"2":{"0":2,"3":5,"4":2,"5":2,"17":7,"21":1,"27":1,"35":1,"40":1,"41":1,"42":1,"43":1,"75":1,"76":1,"79":1}}],["organised",{"2":{"22":1}}],["organises",{"2":{"0":1}}],["origin",{"2":{"11":1}}],["original",{"2":{"3":3,"17":7}}],["ordering",{"2":{"4":1,"17":1}}],["order=unordered",{"2":{"4":1}}],["order=autoorder",{"2":{"4":2}}],["order=forwardordered",{"2":{"3":1}}],["ordered",{"2":{"1":1,"4":1,"7":4,"13":5,"76":1}}],["order",{"0":{"7":1},"2":{"0":1,"1":1,"3":12,"4":23,"5":1,"7":9,"10":2,"13":1,"15":7,"17":15,"25":5,"40":3,"75":1}}],["or",{"2":{"0":13,"1":15,"2":5,"3":22,"4":35,"5":5,"7":1,"8":5,"9":3,"10":1,"11":2,"13":21,"14":7,"15":3,"16":4,"17":13,"19":2,"21":1,"22":2,"24":1,"25":4,"27":3,"34":1,"35":3,"37":1,"38":1,"40":1,"41":1,"50":2,"51":1,"76":6,"77":3,"79":2}}],["often",{"2":{"17":1,"21":1,"57":1,"76":1}}],["offsetarrays",{"2":{"37":2}}],["offset",{"2":{"5":1}}],["of",{"0":{"29":1},"2":{"0":4,"1":10,"2":2,"3":20,"4":47,"5":6,"6":5,"7":3,"8":1,"9":2,"10":8,"11":2,"13":41,"14":10,"15":13,"16":3,"17":41,"18":1,"19":4,"21":3,"22":2,"24":2,"25":11,"27":1,"33":2,"35":1,"36":1,"37":1,"38":1,"39":2,"42":2,"48":1,"49":1,"50":2,"51":2,"57":2,"59":1,"61":1,"65":1,"74":1,"76":3,"77":5,"79":4}}],["only",{"2":{"3":1,"4":2,"5":1,"13":4,"17":5,"34":1,"38":1,"39":2,"40":2,"77":1}}],["oneto",{"2":{"17":5}}],["one",{"2":{"3":1,"4":3,"9":1,"13":1,"14":2,"17":3,"21":2,"39":2,"76":1,"77":1}}],["ones",{"2":{"1":3,"3":3,"4":1,"13":12,"17":2,"24":1,"26":1}}],["on",{"2":{"0":3,"1":1,"2":2,"3":2,"4":2,"5":1,"10":1,"11":1,"13":3,"14":2,"17":5,"18":1,"21":5,"25":1,"34":1,"40":1,"48":1,"66":1,"74":2}}],["aimmed",{"2":{"58":1}}],["aware",{"2":{"57":1}}],["aggregate",{"2":{"50":1}}],["aggregation",{"2":{"49":3,"52":1}}],["again",{"2":{"14":1,"25":1,"75":1}}],["a4",{"2":{"25":4}}],["a3",{"2":{"25":5,"27":6}}],["a=3",{"2":{"24":1,"25":1}}],["a2",{"2":{"24":2,"26":1,"27":1}}],["a1",{"2":{"24":3,"25":3,"27":2}}],["aare",{"2":{"22":1}}],["auxiliary",{"2":{"21":1,"66":1}}],["automata",{"2":{"66":1}}],["automated",{"2":{"17":1}}],["automatic",{"2":{"4":1,"10":1}}],["automatically",{"2":{"0":1,"4":3,"7":1,"21":1,"39":1}}],["autolocus",{"2":{"10":2}}],["autolookup",{"2":{"0":3,"4":3}}],["autospan",{"2":{"8":2}}],["autoindex",{"2":{"4":1}}],["autoorder",{"2":{"0":2,"4":3,"7":2}}],["auto",{"2":{"0":1,"2":1}}],["a>",{"2":{"15":1,"17":1}}],["amazing",{"2":{"21":1}}],["amp",{"0":{"21":1}}],["amd",{"2":{"14":2}}],["ambiguity",{"2":{"11":1,"17":1}}],["after",{"2":{"13":1,"17":1,"19":3,"50":1}}],["affine",{"2":{"4":1}}],["applying",{"2":{"17":1}}],["apply",{"0":{"54":1},"2":{"14":3,"17":2}}],["applicable",{"2":{"13":1,"17":1}}],["applied",{"2":{"4":1,"14":1,"77":1}}],["appropriate",{"2":{"13":1}}],["api",{"0":{"12":1},"1":{"13":1,"14":1,"15":1,"16":1},"2":{"76":4}}],["aditional",{"2":{"76":1}}],["adjoint",{"2":{"27":1}}],["adjacent",{"2":{"5":1}}],["adapt",{"2":{"21":3}}],["add",{"2":{"19":1,"20":1,"40":1,"76":1}}],["added",{"2":{"17":1,"19":1,"35":1,"76":1}}],["addional",{"2":{"19":1}}],["adding",{"0":{"32":1},"2":{"4":3,"19":2}}],["additional",{"2":{"0":1,"19":1}}],["actions",{"2":{"21":1}}],["acting",{"2":{"17":1}}],["actual",{"2":{"21":1}}],["actually",{"2":{"4":1,"34":1}}],["acepted",{"2":{"13":4}}],["accurate",{"2":{"76":1}}],["accuract",{"2":{"8":1}}],["accesscountdiskarray",{"2":{"33":1}}],["accessing",{"2":{"26":1}}],["access",{"2":{"22":1,"24":1,"34":1}}],["accept",{"2":{"13":1,"14":1,"38":1}}],["acceptable",{"2":{"8":1}}],["accepts",{"2":{"5":1,"17":1,"63":1}}],["account",{"2":{"4":2}}],["accpts",{"2":{"4":1}}],["available",{"2":{"4":1,"13":1,"17":1,"21":1}}],["avoids",{"2":{"14":1}}],["avoid",{"2":{"0":1,"5":1,"14":1,"19":1}}],["atol=nothing",{"2":{"5":1}}],["atol",{"2":{"5":2,"40":1}}],["attach",{"2":{"4":1}}],["attached",{"2":{"3":1,"37":1}}],["attempt",{"2":{"0":1}}],["at",{"2":{"0":3,"3":2,"4":6,"5":10,"9":3,"13":2,"14":3,"17":3,"19":3,"25":2,"27":1,"42":1,"57":1,"58":1,"76":2,"77":1}}],["astroimage",{"2":{"68":1}}],["astroimages",{"0":{"68":1},"2":{"68":1}}],["astromical",{"2":{"68":1}}],["assertionerror",{"2":{"52":1}}],["assert",{"2":{"52":1}}],["associate",{"2":{"22":2}}],["assigned",{"2":{"4":9}}],["ascending",{"2":{"5":1}}],["as",{"2":{"0":7,"1":1,"3":6,"4":8,"5":3,"8":1,"10":1,"13":13,"14":6,"15":3,"16":5,"17":9,"21":4,"24":1,"26":1,"27":2,"35":1,"37":1,"38":2,"39":4,"40":2,"74":3,"75":1,"76":1,"77":2}}],["above",{"2":{"24":1,"49":2}}],["about",{"2":{"0":2,"4":3,"11":1,"21":1}}],["abstactdimstack",{"2":{"76":1}}],["abstracdimarray",{"2":{"25":1}}],["abstractname",{"2":{"18":3}}],["abstractgimstack",{"2":{"17":1}}],["abstractbasicdimarray",{"2":{"17":1}}],["abstractbasicarray",{"2":{"13":1}}],["abstraction",{"2":{"17":1}}],["abstractrng",{"2":{"13":2}}],["abstractrange",{"2":{"4":4,"76":1}}],["abstractdimarry",{"2":{"41":1}}],["abstractdimarrays",{"2":{"3":1,"17":4,"18":1,"25":1}}],["abstractdimarray",{"2":{"0":1,"3":3,"4":1,"13":7,"14":4,"16":4,"17":16,"19":5,"21":2,"27":1,"35":1,"39":3,"40":1,"57":1,"58":1,"63":1,"66":2,"68":1,"74":1,"75":1,"76":1,"77":4,"79":1}}],["abstractdimtable",{"2":{"16":2}}],["abstractdimstack",{"2":{"14":4,"16":3,"17":17,"19":5,"35":1,"40":1,"57":1,"61":1,"77":4,"79":1}}],["abstractdict",{"2":{"13":2}}],["abstractmetadata",{"2":{"11":3,"17":1}}],["abstractmatix",{"2":{"8":1}}],["abstractsample",{"2":{"57":1}}],["abstractsampled",{"2":{"4":6,"35":1}}],["abstractset",{"2":{"13":2}}],["abstractstring",{"2":{"4":1}}],["abstractcolumns",{"2":{"16":1}}],["abstractcategorical",{"2":{"4":4,"35":1}}],["abstractcyclic",{"2":{"4":2}}],["abstractarray",{"2":{"2":2,"3":2,"4":10,"5":1,"13":3,"14":2,"15":2,"17":8,"37":1,"76":3,"77":1}}],["abstractvector",{"2":{"0":1,"4":4,"13":8}}],["abstract",{"2":{"0":7,"1":2,"3":4,"4":4,"5":3,"6":1,"10":1,"11":1,"13":1,"14":2,"16":1,"17":1,"18":1,"22":1}}],["absent",{"2":{"3":1}}],["axis",{"2":{"0":4,"3":2,"4":10,"10":1,"13":4,"15":1,"17":1,"24":2,"37":1,"74":1,"75":2,"76":2}}],["axes",{"0":{"37":1},"2":{"0":1,"1":1,"4":1,"13":1,"17":4,"25":2,"27":1,"37":2,"75":2}}],["alows",{"2":{"17":1}}],["alone",{"2":{"4":2}}],["along",{"2":{"0":1,"17":6,"27":1,"76":1}}],["align",{"2":{"10":1}}],["aligned",{"2":{"4":6}}],["although",{"2":{"3":1,"4":1,"13":1,"74":1}}],["alternate",{"2":{"0":1}}],["algorithms",{"2":{"3":1}}],["always",{"2":{"1":1,"3":1,"9":1,"11":2,"14":1,"17":1,"19":2,"39":1,"40":1,"57":1}}],["already",{"2":{"0":1,"21":1}}],["also",{"2":{"0":4,"3":3,"5":2,"11":1,"13":4,"14":1,"17":9,"24":1,"27":2,"37":1,"39":1,"47":1,"49":1,"57":1,"75":2}}],["allspecifically",{"2":{"17":1}}],["allocate",{"2":{"79":1}}],["allocation",{"2":{"17":1}}],["allocs",{"2":{"26":2}}],["allowing",{"2":{"4":1}}],["allow",{"2":{"4":1,"10":1,"11":1,"66":1}}],["allows",{"2":{"0":1,"10":1,"17":2}}],["allways",{"2":{"14":1,"17":1}}],["all",{"2":{"0":5,"3":4,"4":5,"5":6,"6":1,"11":1,"13":6,"14":5,"15":3,"17":13,"18":1,"21":1,"25":3,"27":2,"33":1,"39":2,"48":1,"57":1,"66":2,"76":5,"77":5,"78":1,"79":1}}],["arviz",{"0":{"61":1},"2":{"35":1,"61":2}}],["arbitrarily",{"2":{"25":1}}],["arbitrary",{"2":{"15":1,"24":1}}],["args",{"2":{"3":1,"17":3,"39":1}}],["argumenterror",{"2":{"25":1}}],["argument",{"0":{"40":1},"2":{"2":1,"3":2,"4":4,"11":1,"13":3,"14":1,"17":5,"38":1,"39":3}}],["arguments",{"2":{"0":1,"1":3,"3":5,"4":8,"8":1,"13":4,"14":1,"17":6,"21":1,"39":1,"40":1}}],["arrays",{"0":{"13":1},"2":{"5":1,"13":6,"14":1,"17":7,"18":1,"19":2,"24":1,"34":1,"50":1}}],["arrayselectors",{"2":{"5":1}}],["arrayselector",{"2":{"5":4}}],["array",{"0":{"14":1,"31":1},"2":{"0":3,"1":1,"2":1,"3":6,"4":17,"5":1,"9":1,"10":4,"13":21,"14":3,"15":3,"16":1,"17":15,"18":2,"21":5,"24":1,"26":1,"27":1,"35":2,"37":3,"49":1,"50":1,"63":1,"76":1,"79":2}}],["area",{"2":{"5":3}}],["are",{"2":{"0":6,"1":1,"2":2,"3":16,"4":14,"5":9,"7":1,"8":2,"9":2,"13":10,"14":5,"15":3,"16":2,"17":18,"19":1,"21":2,"22":3,"25":2,"27":1,"34":1,"35":5,"39":2,"42":1,"47":1,"49":1,"57":2,"66":2,"75":1,"76":2,"77":2,"78":1,"79":3}}],["analysis",{"0":{"67":1},"1":{"68":1,"69":1},"2":{"59":1,"61":1}}],["analogues",{"2":{"17":1}}],["anssi",{"2":{"19":1}}],["answer",{"2":{"17":1}}],["another",{"2":{"4":1,"13":1,"14":1,"17":2,"58":1,"76":1}}],["anonymous",{"2":{"0":1,"48":1}}],["anondim",{"2":{"0":2}}],["annual",{"2":{"4":1}}],["anyone",{"2":{"21":1}}],["anything",{"2":{"2":1,"17":1}}],["any",{"2":{"0":1,"1":3,"2":1,"3":6,"4":5,"5":3,"13":7,"17":6,"19":2,"21":1,"22":1,"38":3,"39":1,"49":7,"50":6,"51":2,"52":4,"53":1,"63":1,"77":2}}],["an",{"0":{"31":1},"2":{"0":2,"1":6,"3":6,"4":12,"5":5,"6":1,"7":1,"8":1,"9":1,"11":1,"13":23,"14":1,"15":4,"16":3,"17":12,"18":1,"19":2,"21":1,"22":1,"25":3,"27":1,"37":1,"39":1,"49":1,"50":2,"61":2,"76":6,"77":4,"79":1}}],["and",{"0":{"49":1,"51":1,"76":1,"79":1},"2":{"0":14,"2":4,"3":11,"4":27,"5":8,"7":2,"8":3,"10":2,"11":2,"13":27,"14":11,"15":2,"16":4,"17":21,"18":1,"19":1,"21":5,"22":3,"24":4,"25":8,"33":1,"34":1,"35":1,"37":2,"38":1,"39":3,"48":1,"51":2,"57":7,"58":2,"66":2,"68":1,"74":3,"75":4,"76":6,"77":3,"78":1,"79":5}}],["a",{"0":{"24":1},"2":{"0":28,"1":24,"2":6,"3":41,"4":56,"5":26,"6":1,"7":2,"8":4,"9":1,"10":5,"11":3,"13":54,"14":29,"15":9,"16":6,"17":61,"18":2,"19":7,"21":8,"22":2,"24":9,"25":6,"33":5,"34":2,"35":2,"36":1,"37":2,"39":1,"41":2,"42":1,"47":1,"49":10,"50":9,"51":3,"52":9,"53":2,"57":5,"58":1,"61":1,"63":2,"65":1,"66":1,"74":2,"75":7,"76":8,"77":7,"78":3}}],["mydimstack",{"2":{"14":2}}],["mullti",{"2":{"37":1}}],["multiply",{"2":{"34":1}}],["multiplying",{"2":{"33":1}}],["multiple",{"2":{"4":1,"14":3,"17":2,"27":1,"76":1}}],["multidimensional",{"2":{"17":1}}],["multi",{"0":{"14":1},"2":{"17":1}}],["much",{"2":{"21":1,"22":1,"74":1}}],["mutated",{"2":{"17":1}}],["mutable",{"2":{"13":1}}],["must",{"2":{"4":3,"5":3,"13":2,"14":2,"17":3,"21":2,"36":1,"37":3,"39":1,"77":1}}],["mixing",{"2":{"25":1}}],["mix",{"2":{"25":1,"77":1}}],["mixed",{"2":{"14":2,"15":1,"35":1}}],["mime",{"2":{"19":5}}],["mismatched",{"2":{"17":1}}],["missingval",{"2":{"57":1}}],["missing",{"2":{"3":1,"15":2,"16":2,"57":1}}],["mid",{"2":{"5":1}}],["min",{"2":{"26":4}}],["minus",{"2":{"4":1}}],["minimum",{"2":{"3":1,"27":1,"49":1}}],["m",{"2":{"0":1,"4":3,"17":3,"34":1}}],["measures",{"2":{"78":1}}],["meant",{"2":{"33":1}}],["meaning",{"2":{"4":1}}],["means",{"2":{"3":1,"5":1,"7":1,"10":1,"13":1,"16":1,"21":1,"22":1,"37":1}}],["mean",{"2":{"0":4,"3":1,"4":1,"9":1,"13":1,"14":4,"26":4,"27":4,"49":6,"50":6,"51":2,"52":5,"53":1,"77":1}}],["median",{"2":{"26":4,"27":1,"49":1}}],["memory",{"2":{"17":1,"26":2,"33":1}}],["merge",{"2":{"25":1}}],["merged",{"2":{"17":3,"25":4}}],["mergedims=",{"2":{"16":1}}],["mergedims=nothing",{"2":{"16":3}}],["mergedims",{"2":{"16":1,"17":5}}],["mergedlookup",{"2":{"0":5,"4":3,"17":4}}],["mersennetwister",{"2":{"13":1}}],["metdata",{"2":{"4":1}}],["method",{"2":{"1":3,"3":4,"4":4,"9":1,"11":1,"13":3,"15":1,"17":4,"19":1,"39":1,"48":1}}],["methods",{"0":{"1":1,"2":1,"3":1,"17":1,"19":1},"1":{"18":1,"19":1},"2":{"0":1,"1":1,"3":4,"4":3,"7":1,"13":1,"14":5,"17":2,"19":2,"22":1,"27":2,"35":1,"39":1,"59":1}}],["metadata=nometadata",{"2":{"4":3,"13":1,"14":1}}],["metadata",{"0":{"11":1,"32":1},"2":{"0":2,"3":1,"4":15,"11":15,"13":11,"17":3,"19":1,"21":1,"39":1,"40":3,"49":7,"50":6,"51":2,"52":4,"53":1}}],["moving",{"2":{"74":1}}],["move",{"2":{"21":1}}],["moved",{"2":{"21":2}}],["moves",{"2":{"13":1}}],["models",{"2":{"61":1,"66":1}}],["model",{"2":{"21":1,"65":1}}],["modifies",{"2":{"13":1}}],["modified",{"2":{"13":2}}],["modification",{"2":{"13":1,"21":1}}],["modifying",{"0":{"73":1}}],["modify",{"2":{"6":1,"17":6,"21":1}}],["module",{"2":{"0":3,"4":2}}],["mostly",{"2":{"13":1,"17":2,"74":1,"75":1}}],["most",{"2":{"4":1,"13":1,"14":4,"17":2,"19":1,"21":1,"35":1}}],["monthly",{"2":{"49":1}}],["month",{"0":{"45":1,"51":1},"2":{"0":6,"13":1,"45":1,"50":5,"51":5}}],["more",{"2":{"0":3,"3":1,"4":4,"13":2,"16":1,"19":1,"39":2,"49":1,"52":1,"58":1,"75":1}}],["makie",{"0":{"75":1},"2":{"74":2,"75":3}}],["makes",{"2":{"18":1}}],["make",{"2":{"4":1,"5":1,"21":1,"33":2,"75":1}}],["made",{"2":{"57":1}}],["masking",{"2":{"57":1}}],["marks",{"2":{"38":1}}],["markers",{"2":{"10":1}}],["max",{"2":{"26":4}}],["maxlen",{"2":{"19":6}}],["maximum",{"2":{"5":1,"19":1,"27":1,"49":1,"77":1}}],["machines",{"2":{"21":1}}],["maching",{"2":{"14":1}}],["macro",{"2":{"3":2,"22":1}}],["mapped",{"2":{"57":1}}],["mapslices",{"2":{"17":2,"27":1}}],["mapreduce",{"2":{"17":1,"27":1}}],["map",{"2":{"14":5,"17":10,"52":1}}],["manipulation",{"2":{"57":1}}],["man",{"2":{"13":1}}],["many",{"2":{"13":1,"14":4,"27":1,"78":1}}],["manually",{"2":{"4":5,"22":1,"39":1}}],["maintains",{"2":{"13":1}}],["main",{"2":{"13":1,"19":4}}],["matrices",{"2":{"17":2}}],["matrix",{"2":{"8":1,"13":4,"17":9}}],["matter",{"2":{"3":1,"15":1,"33":1}}],["match",{"2":{"1":3,"2":2,"3":3,"4":1,"5":1,"17":4,"24":1,"77":1,"79":1}}],["matches",{"2":{"1":1,"5":1,"13":1}}],["matching",{"2":{"0":2,"3":1,"4":3,"14":1,"38":2,"76":1}}],["may",{"2":{"0":3,"3":2,"4":5,"5":4,"6":1,"8":1,"13":1,"14":2,"19":1,"76":2}}],["mdash",{"2":{"0":15,"1":4,"2":4,"3":15,"4":24,"5":10,"6":1,"7":6,"8":5,"9":3,"10":5,"11":3,"13":10,"14":2,"15":2,"16":2,"17":12,"18":3,"19":3}}]],"serializationVersion":2}';export{e as default}; diff --git a/previews/PR615/assets/chunks/@localSearchIndexroot.rJf7ysQq.js b/previews/PR615/assets/chunks/@localSearchIndexroot.rJf7ysQq.js deleted file mode 100644 index 92a2d5923..000000000 --- a/previews/PR615/assets/chunks/@localSearchIndexroot.rJf7ysQq.js +++ /dev/null @@ -1 +0,0 @@ -const e='{"documentCount":80,"nextId":80,"documentIds":{"0":"/DimensionalData.jl/previews/PR615/api/dimensions#Dimensions","1":"/DimensionalData.jl/previews/PR615/api/dimensions#Exported-methods","2":"/DimensionalData.jl/previews/PR615/api/dimensions#Non-exported-methods","3":"/DimensionalData.jl/previews/PR615/api/dimensions#Primitive-methods","4":"/DimensionalData.jl/previews/PR615/api/lookuparrays#LookupArrays","5":"/DimensionalData.jl/previews/PR615/api/lookuparrays#Selectors","6":"/DimensionalData.jl/previews/PR615/api/lookuparrays#LookupArray-traits","7":"/DimensionalData.jl/previews/PR615/api/lookuparrays#Order","8":"/DimensionalData.jl/previews/PR615/api/lookuparrays#Span","9":"/DimensionalData.jl/previews/PR615/api/lookuparrays#Sampling","10":"/DimensionalData.jl/previews/PR615/api/lookuparrays#Loci","11":"/DimensionalData.jl/previews/PR615/api/lookuparrays#Metadata","12":"/DimensionalData.jl/previews/PR615/api/reference#API-Reference","13":"/DimensionalData.jl/previews/PR615/api/reference#Arrays","14":"/DimensionalData.jl/previews/PR615/api/reference#Multi-array-datasets","15":"/DimensionalData.jl/previews/PR615/api/reference#Dimension-generators","16":"/DimensionalData.jl/previews/PR615/api/reference#Tables.jl/TableTraits.jl-interface","17":"/DimensionalData.jl/previews/PR615/api/reference#Utility-methods","18":"/DimensionalData.jl/previews/PR615/api/reference#Name","19":"/DimensionalData.jl/previews/PR615/api/reference#Internal-interface-methods","20":"/DimensionalData.jl/previews/PR615/basics#Installation","21":"/DimensionalData.jl/previews/PR615/cuda#CUDA-and-GPUs","22":"/DimensionalData.jl/previews/PR615/dimensions#Dimensions","23":"/DimensionalData.jl/previews/PR615/dimensions#Examples","24":"/DimensionalData.jl/previews/PR615/dimensions#Use-in-a-DimArray","25":"/DimensionalData.jl/previews/PR615/dimensions#Dimensional-Indexing","26":"/DimensionalData.jl/previews/PR615/dimensions#Indexing-Performance","27":"/DimensionalData.jl/previews/PR615/dimensions#dims-keywords","28":"/DimensionalData.jl/previews/PR615/dimensions#DimIndices","29":"/DimensionalData.jl/previews/PR615/dimensions#Vectors-of-Dimensions","30":"/DimensionalData.jl/previews/PR615/dimensions#How-to-name-dimensions?","31":"/DimensionalData.jl/previews/PR615/dimensions#How-to-name-an-array?","32":"/DimensionalData.jl/previews/PR615/dimensions#Adding-metadata","33":"/DimensionalData.jl/previews/PR615/diskarrays#Example","34":"/DimensionalData.jl/previews/PR615/diskarrays#How-big-is-this-thing?","35":"/DimensionalData.jl/previews/PR615/ext_dd#Extending-DimensionalData","36":"/DimensionalData.jl/previews/PR615/ext_dd#dims","37":"/DimensionalData.jl/previews/PR615/ext_dd#Dimension-axes","38":"/DimensionalData.jl/previews/PR615/ext_dd#dims-keywords","39":"/DimensionalData.jl/previews/PR615/ext_dd#rebuild","40":"/DimensionalData.jl/previews/PR615/ext_dd#rebuild(obj,-...)-argument-table","41":"/DimensionalData.jl/previews/PR615/groupby#groupby","42":"/DimensionalData.jl/previews/PR615/groupby#Basics:-DateTime-operations-we-can-use-for-grouping","43":"/DimensionalData.jl/previews/PR615/groupby#hour","44":"/DimensionalData.jl/previews/PR615/groupby#dayofweek","45":"/DimensionalData.jl/previews/PR615/groupby#month","46":"/DimensionalData.jl/previews/PR615/groupby#dayofyear","47":"/DimensionalData.jl/previews/PR615/groupby#Tuple-grouping","48":"/DimensionalData.jl/previews/PR615/groupby#yearmonth","49":"/DimensionalData.jl/previews/PR615/groupby#Grouping-and-reducing","50":"/DimensionalData.jl/previews/PR615/groupby#Binning","51":"/DimensionalData.jl/previews/PR615/groupby#select-by-month,-days,-years-and-seasons","52":"/DimensionalData.jl/previews/PR615/groupby#select-by-dimension-select-by-dimension","53":"/DimensionalData.jl/previews/PR615/groupby#Group-by-Dims.","54":"/DimensionalData.jl/previews/PR615/groupby#Apply-custom-function-(i.e.-normalization)-to-grouped-output.","55":"/DimensionalData.jl/previews/PR615/integrations#Integrations","56":"/DimensionalData.jl/previews/PR615/integrations#Spatial-sciences","57":"/DimensionalData.jl/previews/PR615/integrations#Rasters.jl","58":"/DimensionalData.jl/previews/PR615/integrations#YAXArrays.jl","59":"/DimensionalData.jl/previews/PR615/integrations#ClimateBase.jl","60":"/DimensionalData.jl/previews/PR615/integrations#Statistics","61":"/DimensionalData.jl/previews/PR615/integrations#ArviZ.jl","62":"/DimensionalData.jl/previews/PR615/integrations#Optimization","63":"/DimensionalData.jl/previews/PR615/integrations#JuMP.jl","64":"/DimensionalData.jl/previews/PR615/integrations#Simulations","65":"/DimensionalData.jl/previews/PR615/integrations#CryoGrid.jl","66":"/DimensionalData.jl/previews/PR615/integrations#DynamicGrids.jl","67":"/DimensionalData.jl/previews/PR615/integrations#Analysis","68":"/DimensionalData.jl/previews/PR615/integrations#AstroImages.jl","69":"/DimensionalData.jl/previews/PR615/integrations#TimeseriesTools.jl","70":"/DimensionalData.jl/previews/PR615/lookup_customization#lookup-customization","71":"/DimensionalData.jl/previews/PR615/lookup_customization#Defaults","72":"/DimensionalData.jl/previews/PR615/lookup_customization#custom-lookup-properties","73":"/DimensionalData.jl/previews/PR615/lookup_customization#modifying-existing-lookups","74":"/DimensionalData.jl/previews/PR615/plots#Plots.jl","75":"/DimensionalData.jl/previews/PR615/plots#Makie.jl","76":"/DimensionalData.jl/previews/PR615/selectors#Selectors-and-LookupArrays","77":"/DimensionalData.jl/previews/PR615/stacks#Stacks","78":"/DimensionalData.jl/previews/PR615/stacks#Performance","79":"/DimensionalData.jl/previews/PR615/tables#Tables-and-DataFrames"},"fieldIds":{"title":0,"titles":1,"text":2},"fieldLength":{"0":[1,1,292],"1":[2,2,118],"2":[3,2,105],"3":[2,2,360],"4":[1,1,494],"5":[1,1,317],"6":[2,1,41],"7":[1,3,73],"8":[1,3,94],"9":[1,3,66],"10":[1,3,87],"11":[1,1,105],"12":[2,1,1],"13":[1,2,443],"14":[3,2,221],"15":[2,2,185],"16":[4,2,159],"17":[2,1,587],"18":[1,2,61],"19":[3,2,107],"20":[1,1,14],"21":[3,1,179],"22":[1,1,99],"23":[1,1,1],"24":[4,1,135],"25":[2,1,321],"26":[2,1,89],"27":[2,1,184],"28":[1,1,1],"29":[3,1,1],"30":[5,1,1],"31":[6,1,1],"32":[2,1,1],"33":[1,1,92],"34":[6,1,120],"35":[2,1,67],"36":[1,2,18],"37":[2,3,55],"38":[2,3,46],"39":[1,2,106],"40":[4,2,47],"41":[1,1,22],"42":[8,1,70],"43":[1,8,36],"44":[1,8,11],"45":[1,8,11],"46":[1,8,11],"47":[2,8,22],"48":[1,8,54],"49":[3,1,189],"50":[1,1,186],"51":[7,1,98],"52":[2,1,196],"53":[4,2,57],"54":[10,2,1],"55":[1,1,1],"56":[2,1,1],"57":[2,3,69],"58":[2,3,37],"59":[2,3,12],"60":[1,1,1],"61":[2,1,18],"62":[1,1,1],"63":[2,2,24],"64":[1,1,1],"65":[2,2,18],"66":[2,2,34],"67":[1,1,1],"68":[2,2,15],"69":[2,2,15],"70":[2,1,1],"71":[1,2,1],"72":[3,2,1],"73":[3,2,1],"74":[2,1,50],"75":[2,1,74],"76":[3,1,166],"77":[1,1,92],"78":[1,1,46],"79":[3,1,76]},"averageFieldLength":[2.2,2.025000000000001,90.17500000000001],"storedFields":{"0":{"title":"Dimensions","titles":[]},"1":{"title":"Exported methods","titles":["Dimensions",null]},"2":{"title":"Non-exported methods","titles":["Dimensions",null]},"3":{"title":"Primitive methods","titles":["Dimensions",null]},"4":{"title":"LookupArrays","titles":[]},"5":{"title":"Selectors","titles":["LookupArrays"]},"6":{"title":"LookupArray traits","titles":["LookupArrays"]},"7":{"title":"Order","titles":["LookupArrays","LookupArray traits"]},"8":{"title":"Span","titles":["LookupArrays","LookupArray traits"]},"9":{"title":"Sampling","titles":["LookupArrays","LookupArray traits"]},"10":{"title":"Loci","titles":["LookupArrays","LookupArray traits"]},"11":{"title":"Metadata","titles":["LookupArrays"]},"12":{"title":"API Reference","titles":[]},"13":{"title":"Arrays","titles":["API Reference"]},"14":{"title":"Multi-array datasets","titles":["API Reference"]},"15":{"title":"Dimension generators","titles":["API Reference"]},"16":{"title":"Tables.jl/TableTraits.jl interface","titles":["API Reference"]},"17":{"title":"Utility methods","titles":[]},"18":{"title":"Name","titles":["Utility methods"]},"19":{"title":"Internal interface methods","titles":["Utility methods"]},"20":{"title":"Installation","titles":[]},"21":{"title":"CUDA & GPUs","titles":[]},"22":{"title":"Dimensions","titles":[]},"23":{"title":"Examples","titles":["Dimensions"]},"24":{"title":"Use in a DimArray","titles":["Dimensions"]},"25":{"title":"Dimensional Indexing","titles":["Dimensions"]},"26":{"title":"Indexing Performance","titles":["Dimensions"]},"27":{"title":"dims keywords","titles":["Dimensions"]},"28":{"title":"DimIndices","titles":["Dimensions"]},"29":{"title":"Vectors of Dimensions","titles":["Dimensions"]},"30":{"title":"How to name dimensions?","titles":["Dimensions"]},"31":{"title":"How to name an array?","titles":["Dimensions"]},"32":{"title":"Adding metadata","titles":["Dimensions"]},"33":{"title":"Example","titles":[]},"34":{"title":"How big is this thing?","titles":[]},"35":{"title":"Extending DimensionalData","titles":[]},"36":{"title":"dims","titles":["Extending DimensionalData"]},"37":{"title":"Dimension axes","titles":["Extending DimensionalData","dims"]},"38":{"title":"dims keywords","titles":["Extending DimensionalData","dims"]},"39":{"title":"rebuild","titles":["Extending DimensionalData"]},"40":{"title":"rebuild(obj, ...) argument table","titles":["Extending DimensionalData"]},"41":{"title":"groupby","titles":[]},"42":{"title":"Basics: DateTime operations we can use for grouping","titles":[]},"43":{"title":"hour","titles":["Basics: DateTime operations we can use for grouping"]},"44":{"title":"dayofweek","titles":["Basics: DateTime operations we can use for grouping"]},"45":{"title":"month","titles":["Basics: DateTime operations we can use for grouping"]},"46":{"title":"dayofyear","titles":["Basics: DateTime operations we can use for grouping"]},"47":{"title":"Tuple grouping","titles":["Basics: DateTime operations we can use for grouping"]},"48":{"title":"yearmonth","titles":["Basics: DateTime operations we can use for grouping"]},"49":{"title":"Grouping and reducing","titles":[]},"50":{"title":"Binning","titles":[]},"51":{"title":"select by month, days, years and seasons","titles":["Binning"]},"52":{"title":"Select by","titles":[]},"53":{"title":"Group by Dims.","titles":["Select by"]},"54":{"title":"Apply custom function (i.e. normalization) to grouped output.","titles":["Select by"]},"55":{"title":"Integrations","titles":[]},"56":{"title":"Spatial sciences","titles":["Integrations"]},"57":{"title":"Rasters.jl","titles":["Integrations","Spatial sciences"]},"58":{"title":"YAXArrays.jl","titles":["Integrations","Spatial sciences"]},"59":{"title":"ClimateBase.jl","titles":["Integrations","Spatial sciences"]},"60":{"title":"Statistics","titles":["Integrations"]},"61":{"title":"ArviZ.jl","titles":["Integrations"]},"62":{"title":"Optimization","titles":["Integrations"]},"63":{"title":"JuMP.jl","titles":["Integrations","Optimization"]},"64":{"title":"Simulations","titles":["Integrations"]},"65":{"title":"CryoGrid.jl","titles":["Integrations","Simulations"]},"66":{"title":"DynamicGrids.jl","titles":["Integrations","Simulations"]},"67":{"title":"Analysis","titles":["Integrations"]},"68":{"title":"AstroImages.jl","titles":["Integrations","Analysis"]},"69":{"title":"TimeseriesTools.jl","titles":["Integrations","Analysis"]},"70":{"title":"lookup customization","titles":[]},"71":{"title":"Defaults","titles":["lookup customization"]},"72":{"title":"custom lookup properties","titles":["lookup customization"]},"73":{"title":"modifying existing lookups","titles":["lookup customization"]},"74":{"title":"Plots.jl","titles":[]},"75":{"title":"Makie.jl","titles":[]},"76":{"title":"Selectors and LookupArrays","titles":[]},"77":{"title":"Stacks","titles":[]},"78":{"title":"Performance","titles":[]},"79":{"title":"Tables and DataFrames","titles":[]}},"dirtCount":0,"index":[["⋱",{"2":{"33":1,"34":1,"49":1,"52":3}}],["▆▃▁▁▁▁▁▁▁▁▁▁▂▁█▆▁▁▁▁▁▁▁▁▁▁▁▁▃▂▁▁▁▁▁▁▁▁▁▁▁▁▃▃▁▁▁▁▁▁▁▁▁▁▁▁▄▃",{"2":{"26":1}}],["▂",{"2":{"26":2}}],["▅█▁▁▁▁▁▁▁▁▁▁▁▄▁█▁▁▁▁▁▁▁▁▁▁▁▂▂▁▁▁▁▁▁▁▁▁▁▁▁▅█▁▁▁▁▁▁▁▁▁▁▁▁▃█▂",{"2":{"26":1}}],["▁",{"2":{"26":1}}],["█",{"2":{"26":2}}],["▃",{"2":{"26":2}}],["σ",{"2":{"26":4}}],["±",{"2":{"26":8}}],["┊",{"2":{"26":6}}],["⬒",{"2":{"25":1}}],["◩",{"2":{"25":1}}],["⬔",{"2":{"25":1}}],["↗",{"2":{"25":2,"27":3}}],["└─────────────────────────┘",{"2":{"24":1,"25":1,"26":1,"27":1}}],["└───────────────────────────┘",{"2":{"27":3}}],["└────────────────────────────┘",{"2":{"25":1}}],["└──────────────────────────────────┘",{"2":{"25":1}}],["└───────────────────────────────────────────────────────────────┘",{"2":{"50":1}}],["└─────────────────────────────────────────────────────────────────────────┘",{"2":{"49":1}}],["└──────────────────────────────────────────────────────────────────────────────┘",{"2":{"49":4,"50":4,"51":2,"52":6,"53":1}}],["└───────────────────────────────────────────────────────────────────────┘",{"2":{"49":3}}],["└──────────────────────────────────────────────────────────────────────┘",{"2":{"33":1}}],["└───────────────────────────────────────────────────────────────────┘",{"2":{"15":1,"34":1}}],["└───────────────────────────────────────────────────────┘",{"2":{"15":1,"50":1}}],["└────────────────────────────────┘",{"2":{"24":1}}],["└───────────────────────────────┘",{"2":{"24":1}}],["└──────────────────────────┘",{"2":{"24":1}}],["├───────────────────",{"2":{"24":1,"25":1,"26":1,"27":1}}],["├─────────────────────",{"2":{"27":3}}],["├──────────────────────",{"2":{"25":1}}],["├───────────────────────────┴─────────────────────────────────",{"2":{"34":1}}],["├────────────────────────────┴───────────────────────────────────────────",{"2":{"52":2}}],["├───────────────────────────────┴─────────────────────────",{"2":{"50":1}}],["├───────────────────────────────┴────────────────────────────────────────",{"2":{"49":1,"50":3,"51":2,"52":1}}],["├───────────────────────────────┴────────────────────────────────",{"2":{"33":1}}],["├───────────────────────────────┴─────────────────",{"2":{"50":1}}],["├───────────────────────────────────┴────────────────────────────────────",{"2":{"53":1}}],["├─────────────────────────────────────────────",{"2":{"50":1}}],["├─────────────────────────────────────────────────────",{"2":{"50":1}}],["├───────────────────────────────────────────────────────────",{"2":{"49":1}}],["├────────────────────────────────────────────────────────────────────",{"2":{"49":3,"50":4,"51":2,"52":4,"53":1}}],["├───────────────────────────────────────────────────────────────",{"2":{"49":1}}],["├─────────────────────────────────────────────────────────────",{"2":{"49":3}}],["├──────────────────────────────────────────────┴──",{"2":{"15":1}}],["├────────────────────────────────────────┴────────────────────────",{"2":{"49":1}}],["├─────────────────────────────────┴──────────────────────────────────────",{"2":{"49":2}}],["├─────────────────────────────────┴─────────────────────────────────",{"2":{"49":1}}],["├────────────────────────────────┴───────────────────────────────────────",{"2":{"49":1,"50":1,"52":3}}],["├────────────────────────────────┴────────────────────────────────",{"2":{"49":2}}],["├────────────────────────────",{"2":{"25":1}}],["├──────────────────────────",{"2":{"24":1}}],["├─────────────────────────",{"2":{"24":1}}],["├─────────────────────────┴───────────────────────────────────",{"2":{"15":1}}],["├────────────────────",{"2":{"24":1}}],["┤",{"2":{"24":4,"25":3,"26":1,"27":4,"49":8,"50":6,"51":2,"52":4,"53":1}}],["+",{"2":{"17":3}}],["+i",{"2":{"13":1}}],["╭───────────────────────────╮",{"2":{"27":3,"34":1}}],["╭────────────────────────────╮",{"2":{"25":1,"52":2}}],["╭─────────────────────────────────╮",{"2":{"49":3}}],["╭───────────────────────────────────╮",{"2":{"53":1}}],["╭────────────────────────────────────────╮",{"2":{"49":1}}],["╭──────────────────────────────────────────────╮",{"2":{"15":1}}],["╭──────────────────────────────────╮",{"2":{"25":1}}],["╭────────────────────────────────╮",{"2":{"24":1,"49":3,"50":1,"52":3}}],["╭───────────────────────────────╮",{"2":{"24":1,"33":1,"49":1,"50":5,"51":2,"52":1}}],["╭──────────────────────────╮",{"2":{"24":1}}],["╭─────────────────────────╮",{"2":{"15":1,"24":1,"25":1,"26":1,"27":1}}],["→",{"2":{"15":7,"24":2,"25":3,"26":1,"27":4,"33":2,"34":2,"49":3,"52":6}}],["↓",{"2":{"15":7,"24":4,"25":3,"26":1,"27":5,"33":2,"34":2,"49":10,"50":6,"51":2,"52":9,"53":1}}],["┐",{"2":{"15":2,"33":1,"34":1,"49":8,"50":6,"51":2,"52":6,"53":1}}],["│",{"2":{"15":4,"24":8,"25":6,"26":2,"27":8,"33":2,"34":2,"49":16,"50":12,"51":4,"52":12,"53":2}}],["$a2",{"2":{"26":2}}],["$",{"2":{"13":4}}],["𝐓",{"2":{"5":4}}],[">",{"2":{"5":3,"14":1,"15":2,"17":6,"50":2,"52":1}}],["925952",{"2":{"49":1,"52":1}}],["927033",{"2":{"25":1}}],["95679",{"2":{"49":1,"52":1}}],["98",{"2":{"33":2,"34":1,"49":1,"52":2}}],["94",{"2":{"33":1}}],["94415",{"2":{"25":1}}],["97054",{"2":{"27":1}}],["978339",{"2":{"25":1}}],["979656",{"2":{"25":1}}],["972535",{"2":{"25":1}}],["976901",{"2":{"25":1}}],["995228",{"2":{"49":1,"52":1}}],["99",{"2":{"33":1,"34":1,"49":1,"52":2}}],["999583",{"2":{"49":1}}],["999049",{"2":{"49":1}}],["999956",{"2":{"49":1}}],["99999",{"2":{"34":1}}],["99968",{"2":{"49":1}}],["9992",{"2":{"34":1}}],["999",{"2":{"33":5}}],["999717",{"2":{"13":1}}],["992449",{"2":{"25":1}}],["997637",{"2":{"25":1}}],["907333",{"2":{"25":1}}],["90121",{"2":{"25":1}}],["906171",{"2":{"25":1}}],["908267",{"2":{"25":1}}],["905595",{"2":{"25":1}}],["90u",{"2":{"5":1}}],["938235",{"2":{"13":1}}],["969799",{"2":{"25":1}}],["96",{"2":{"5":2,"33":1}}],["91858",{"2":{"52":2}}],["9185833333333333",{"2":{"52":2}}],["91365e",{"2":{"49":1}}],["917004",{"2":{"25":1}}],["91",{"2":{"5":2}}],["9",{"2":{"4":2,"13":1,"17":8,"25":1,"43":1,"50":8,"51":4,"52":3}}],["72",{"2":{"50":1}}],["721678",{"2":{"25":1}}],["721564",{"2":{"25":1}}],["73",{"2":{"50":1}}],["730",{"2":{"49":2}}],["730568",{"2":{"25":1}}],["739734",{"2":{"25":1}}],["75275",{"2":{"51":4}}],["752868",{"2":{"13":1}}],["755564",{"2":{"25":1}}],["76248",{"2":{"52":1}}],["763028",{"2":{"27":2}}],["760081",{"2":{"25":1}}],["761104",{"2":{"25":1}}],["744058",{"2":{"52":2}}],["748988",{"2":{"25":1}}],["747865",{"2":{"25":1}}],["740959",{"2":{"25":1}}],["742017",{"2":{"24":1}}],["78913",{"2":{"27":1}}],["78",{"2":{"26":1}}],["785",{"2":{"26":1}}],["785646",{"2":{"25":1}}],["788611",{"2":{"25":1}}],["783658",{"2":{"25":1}}],["783855",{"2":{"13":1}}],["775566",{"2":{"25":1}}],["771862",{"2":{"15":1}}],["799031",{"2":{"49":1,"52":2}}],["799058",{"2":{"25":1}}],["79",{"2":{"34":1}}],["795",{"2":{"26":1}}],["795658",{"2":{"25":1}}],["791817",{"2":{"25":1}}],["794328",{"2":{"25":1}}],["793889",{"2":{"24":1}}],["796612",{"2":{"24":1}}],["7",{"2":{"4":4,"5":5,"17":4,"25":3,"43":1,"44":9,"50":4,"51":3,"52":2}}],["quantity",{"2":{"5":2}}],["quot",{"2":{"3":2,"6":2,"13":6,"22":2}}],["query",{"2":{"1":12,"3":6}}],["right",{"2":{"47":1,"75":2}}],["runs",{"2":{"34":1}}],["runtime",{"2":{"26":1}}],["running",{"2":{"21":1,"50":1}}],["rowslices",{"2":{"17":1}}],["rows",{"2":{"16":1}}],["rotated",{"2":{"4":1}}],["rotations",{"2":{"3":1}}],["r",{"2":{"13":2}}],["rng",{"2":{"13":6}}],["rng=default",{"2":{"13":1}}],["rtoldefault",{"2":{"5":1}}],["rtol=nothing",{"2":{"5":1}}],["rtol",{"2":{"5":3}}],["rainclouds",{"2":{"75":1}}],["raw",{"2":{"50":1}}],["rasterization",{"2":{"57":1}}],["rasterize",{"2":{"5":1}}],["rasters",{"0":{"57":1},"2":{"35":1,"53":1,"57":1,"58":1}}],["rasterstack",{"2":{"35":1,"57":1}}],["raster",{"2":{"35":1,"57":4}}],["ram",{"2":{"34":1}}],["rational",{"2":{"17":1}}],["rather",{"2":{"3":1,"4":2,"5":1,"9":1,"21":1}}],["radius",{"2":{"15":1,"17":1}}],["rafaqz",{"2":{"15":1,"17":1}}],["randn",{"2":{"13":2,"17":2}}],["random",{"2":{"13":4}}],["rand",{"2":{"4":3,"13":18,"16":1,"17":1,"21":1,"24":2,"25":2,"27":1,"49":1,"75":1}}],["ranges",{"2":{"5":1,"50":3}}],["range",{"2":{"4":2,"5":1,"13":2,"17":1,"24":1,"26":2,"42":2,"50":1,"57":1}}],["receive",{"2":{"39":1}}],["reconstruction",{"2":{"13":1,"39":1}}],["regurn",{"2":{"25":1}}],["regular",{"2":{"0":6,"2":1,"4":7,"5":8,"8":4,"13":4,"15":1,"16":1,"17":10,"21":1,"25":2,"33":2,"34":2,"35":1,"38":1,"49":2,"50":1,"52":6,"53":1}}],["remaining",{"2":{"25":1}}],["removing",{"2":{"14":1}}],["removed",{"2":{"5":1}}],["reasons",{"2":{"57":1}}],["reason",{"2":{"21":1,"57":1}}],["reads",{"2":{"34":1}}],["read",{"2":{"19":2}}],["real",{"2":{"4":1,"16":1,"34":1}}],["really",{"2":{"3":1}}],["rev",{"2":{"17":2}}],["reversal",{"2":{"17":1}}],["reverseordered",{"2":{"4":5,"7":3}}],["reverse",{"2":{"4":1,"7":1,"17":4,"27":1,"77":1}}],["reversed",{"2":{"4":1}}],["reorder",{"2":{"17":8,"75":1}}],["resolution",{"2":{"52":1}}],["resolve",{"2":{"14":1,"25":1}}],["resample",{"2":{"52":3}}],["restored",{"2":{"17":1}}],["reshaping",{"2":{"17":2}}],["result",{"2":{"5":1,"14":1,"17":4,"25":1,"79":1}}],["results",{"2":{"5":2,"74":1}}],["re",{"2":{"13":1}}],["reductions",{"2":{"13":1}}],["reducing",{"0":{"49":1},"2":{"13":1}}],["reduce",{"2":{"3":1,"27":1}}],["reduced",{"2":{"3":1}}],["reducedims",{"2":{"3":1}}],["rebuilt",{"2":{"13":1,"17":1}}],["rebuilding",{"2":{"17":1}}],["rebuild",{"0":{"39":1,"40":1},"2":{"4":2,"13":2,"14":2,"17":5,"19":2,"21":1,"35":1,"39":7,"40":1}}],["requires",{"2":{"13":1,"17":2}}],["require",{"2":{"9":1}}],["required",{"2":{"0":1,"3":1,"11":1,"16":1,"17":4,"21":1}}],["retreives",{"2":{"5":1}}],["retreive",{"2":{"5":1}}],["returning",{"2":{"3":1,"11":1,"17":2,"77":2}}],["returns",{"2":{"3":3,"5":1,"11":2,"13":3,"14":2,"17":1,"50":1,"77":1}}],["returned",{"2":{"1":1,"3":2,"4":1,"13":2,"16":1,"17":4,"22":1}}],["return",{"2":{"1":3,"3":3,"4":10,"5":2,"13":5,"14":7,"17":7,"36":1,"37":2,"38":2,"47":1,"48":1,"78":1}}],["reliable",{"2":{"4":1}}],["related",{"2":{"3":1,"21":1,"25":1}}],["relative",{"2":{"3":1,"16":1}}],["relationship",{"2":{"0":1,"16":1}}],["repl",{"2":{"34":1,"76":1}}],["replaces",{"2":{"3":1,"21":1}}],["replaced",{"2":{"3":1,"8":1}}],["replace",{"2":{"3":2,"17":1}}],["repeat",{"2":{"17":1}}],["represents",{"2":{"37":1,"77":1}}],["representing",{"2":{"4":1}}],["represent",{"2":{"4":1,"10":1}}],["rewraps",{"2":{"3":1}}],["refvalue",{"2":{"34":1}}],["reflect",{"2":{"13":1}}],["refence",{"2":{"13":1}}],["refer",{"2":{"0":1,"9":1}}],["reference",{"0":{"12":1},"1":{"13":1,"14":1,"15":1,"16":1},"2":{"0":2,"3":3,"13":3,"35":1,"76":1}}],["refdim",{"2":{"3":1}}],["refdims=",{"2":{"13":1}}],["refdims",{"2":{"3":4,"13":9,"17":2,"19":1,"39":1,"40":2}}],["ref",{"2":{"0":1,"3":1,"13":1,"76":4}}],["kind",{"2":{"42":1}}],["kinds",{"2":{"13":4}}],["knows",{"2":{"35":1}}],["know",{"2":{"25":1,"27":1}}],["knowing",{"2":{"25":1}}],["known",{"2":{"4":5,"10":1,"25":1}}],["kw",{"2":{"3":4,"4":1,"11":1,"13":10,"17":3,"19":6,"39":2,"40":2}}],["kernels",{"2":{"21":1}}],["kernelabstractions",{"2":{"21":1}}],["kernel",{"2":{"21":1}}],["keeping",{"2":{"3":1,"25":1}}],["keep",{"2":{"3":1,"17":2,"18":1,"50":1}}],["key",{"2":{"17":3,"35":1,"79":1}}],["key2dim",{"2":{"3":3}}],["keys=",{"2":{"17":2}}],["keys=keys",{"2":{"17":2}}],["keys",{"2":{"0":1,"11":2,"14":1,"17":2}}],["keywords",{"0":{"27":1,"38":1},"2":{"3":1,"4":2,"13":4,"15":1,"16":1,"17":1,"19":3,"24":2,"27":1,"39":1,"40":3}}],["keyword",{"2":{"0":1,"4":3,"14":1,"17":4,"38":1,"39":2}}],["kept",{"2":{"0":1,"3":1}}],["ui",{"2":{"69":1}}],["utils",{"2":{"17":1}}],["utility",{"0":{"17":1},"1":{"18":1,"19":1}}],["u>base",{"2":{"17":1}}],["u>",{"2":{"15":1,"17":1}}],["u>dimensionaldata",{"2":{"15":1}}],["updating",{"2":{"39":1}}],["update",{"2":{"17":3}}],["updates",{"2":{"13":1}}],["updated",{"2":{"3":2,"17":4}}],["up",{"2":{"21":1}}],["upperbound",{"2":{"8":1}}],["upper",{"2":{"5":1,"8":1}}],["unevenly",{"2":{"79":1}}],["unexpected",{"2":{"13":1,"17":1}}],["unrolled",{"2":{"79":1}}],["unclosed",{"2":{"19":1}}],["until",{"2":{"17":1,"34":1}}],["unmerged",{"2":{"17":1}}],["unmergedims",{"2":{"17":2}}],["unmatched",{"2":{"1":1}}],["unknown",{"2":{"15":1}}],["unwrapped",{"2":{"4":1}}],["unaltered",{"2":{"4":1}}],["unaligned",{"2":{"4":4}}],["undefined",{"2":{"4":1,"13":2}}],["underlying",{"2":{"1":1,"4":1,"13":1,"17":1}}],["unless",{"2":{"4":4,"5":1,"13":1,"25":1,"79":1}}],["unlike",{"2":{"3":2,"11":1,"15":1,"25":1}}],["unordered",{"2":{"4":6,"7":3,"13":3,"50":1,"51":1,"52":2}}],["unitrange",{"2":{"50":3,"52":2}}],["unitful",{"2":{"5":3}}],["units",{"2":{"2":1}}],["unionall",{"2":{"3":1}}],["union",{"2":{"2":1,"3":1,"4":5,"5":1,"11":1,"13":1,"17":2,"18":1}}],["us",{"2":{"11":1,"21":1,"22":1,"25":1,"27":1}}],["usually",{"2":{"3":2,"13":1,"16":1,"42":1,"76":1}}],["uses",{"2":{"4":1,"8":1,"21":2,"22":1,"65":1,"69":1}}],["useful",{"2":{"1":1,"3":3,"4":6,"15":1,"17":1,"27":1}}],["use",{"0":{"24":1,"42":1},"1":{"43":1,"44":1,"45":1,"46":1,"47":1,"48":1},"2":{"0":2,"3":1,"4":2,"5":3,"7":1,"13":4,"14":3,"17":1,"18":3,"21":1,"24":2,"25":1,"39":1,"47":1,"49":1,"50":2,"51":1,"79":1}}],["used",{"2":{"0":6,"3":5,"4":7,"5":3,"6":1,"8":1,"9":1,"14":2,"15":2,"17":3,"22":1,"24":1,"25":2,"27":1,"39":3,"42":1,"48":1,"66":1,"75":1}}],["usingally",{"2":{"78":1}}],["using",{"2":{"0":2,"1":3,"3":2,"4":5,"5":2,"11":2,"13":6,"14":1,"16":1,"17":7,"20":1,"21":1,"22":1,"24":2,"25":1,"27":2,"39":2,"42":2,"49":1,"76":1}}],["v1",{"2":{"78":1}}],["visualise",{"2":{"68":1}}],["views",{"2":{"17":2,"65":1}}],["view",{"2":{"3":1,"13":1,"14":2,"15":1,"17":1,"25":1,"34":1}}],["vcat",{"2":{"17":1}}],["v2",{"2":{"13":6}}],["v",{"2":{"13":6}}],["versions",{"2":{"39":2}}],["version",{"2":{"14":1,"17":2,"20":1,"39":1,"79":1}}],["very",{"2":{"13":3,"14":2,"58":1,"78":1}}],["vectors",{"0":{"29":1},"2":{"3":1,"25":1}}],["vector",{"2":{"0":2,"4":2,"5":1,"13":18,"14":1,"17":5,"25":2,"43":1,"44":1,"45":1,"46":1,"48":2,"50":4,"76":4}}],["varable",{"2":{"75":1}}],["vararg",{"2":{"1":2,"2":1,"3":7,"4":8,"13":7,"14":2,"16":2,"17":3,"19":1,"25":1}}],["var",{"2":{"27":1}}],["valtype",{"2":{"3":1}}],["valid",{"2":{"3":1,"4":1}}],["val=",{"2":{"0":5}}],["values",{"2":{"3":6,"4":10,"5":12,"7":1,"9":2,"10":3,"13":5,"14":3,"15":3,"17":3,"25":1,"37":1,"39":1,"42":1,"47":1,"50":1,"74":1,"76":8}}],["value",{"2":{"0":1,"3":2,"4":2,"5":12,"8":1,"9":1,"10":4,"13":16,"14":3,"18":1,"24":2,"76":3,"77":1,"78":1}}],["val",{"2":{"0":6,"3":1,"4":7,"11":1,"17":7,"38":2,"40":4}}],["`selector`s",{"2":{"76":1}}],["`sampled",{"2":{"76":1}}],["`regular`",{"2":{"76":1}}],["`points`",{"2":{"76":1}}],["`unordered`",{"2":{"76":1}}],["`unitrange`",{"2":{"76":4}}],["`ordered`",{"2":{"76":1}}],["`openinterval",{"2":{"5":1,"76":1}}],["`touches",{"2":{"76":1}}],["`b`",{"2":{"76":2}}],["`bitarray`",{"2":{"33":1}}],["`abstractsampled`",{"2":{"76":1}}],["`a`",{"2":{"76":2}}],["`a",{"2":{"76":1}}],["`at",{"2":{"76":1}}],["`x`",{"2":{"76":1}}],["`nolookup",{"2":{"76":1}}],["`not",{"2":{"76":1}}],["`near",{"2":{"76":1}}],["`vector",{"2":{"76":2}}],["`where",{"2":{"76":1}}],["`cyclic",{"2":{"76":1}}],["`categorical",{"2":{"76":1}}],["`contains",{"2":{"76":1}}],["`cuarray`",{"2":{"21":1}}],["`irregular`",{"2":{"76":1}}],["`intervals`",{"2":{"76":1}}],["`interval",{"2":{"76":1}}],["`int",{"2":{"76":3}}],["`isbits",{"2":{"18":1}}],["`modify`",{"2":{"21":1}}],["`da`",{"2":{"17":1}}],["`dimkeys`",{"2":{"15":1}}],["```julia",{"2":{"15":1,"17":1}}],["`",{"2":{"0":1,"76":21}}],["night",{"2":{"50":1}}],["nice",{"2":{"33":1}}],["nanoseconds",{"2":{"78":1}}],["nan",{"2":{"50":5,"51":3,"52":7}}],["names",{"2":{"16":1,"17":1,"18":1,"22":2,"24":1}}],["name=",{"2":{"14":3}}],["name=noname",{"2":{"13":1}}],["name",{"0":{"18":1,"30":1,"31":1},"2":{"2":1,"13":10,"16":1,"17":3,"18":11,"21":3,"22":1,"24":1,"38":1,"39":1,"40":1,"77":2,"79":1}}],["namedtuple",{"2":{"11":3,"14":12,"17":2,"19":2,"77":2,"78":1}}],["named",{"2":{"0":1,"18":1,"22":1,"63":1}}],["ns",{"2":{"26":14}}],["ndims",{"2":{"17":1}}],["nvidia",{"2":{"17":1}}],["necessary",{"2":{"18":1}}],["necessarily",{"2":{"17":1}}],["neeeds",{"2":{"18":1}}],["needed",{"2":{"21":1}}],["needs",{"2":{"19":1}}],["need",{"2":{"4":1,"14":3,"17":2,"21":3,"27":1}}],["netcdf",{"2":{"10":1}}],["next",{"2":{"5":1}}],["nearly",{"2":{"35":1}}],["nearest",{"2":{"5":3}}],["near",{"2":{"4":2,"5":6,"13":2,"76":2}}],["newdim",{"2":{"3":4}}],["newdims",{"2":{"3":4}}],["new",{"2":{"3":5,"4":1,"13":3,"16":1,"17":13,"21":1,"35":1,"39":1,"77":2}}],["n",{"2":{"1":1,"2":3,"3":1,"4":3,"13":5,"17":1}}],["numbers",{"2":{"13":3}}],["number",{"2":{"1":1,"3":1,"4":1,"5":1,"17":1,"24":1}}],["ntuple",{"2":{"1":3,"2":3,"13":2}}],["now",{"2":{"25":1,"34":1,"42":1,"49":1,"63":1}}],["normalization",{"0":{"54":1}}],["normally",{"2":{"13":1}}],["normal",{"2":{"7":1,"18":1}}],["nolookup",{"2":{"4":11,"13":4,"17":1}}],["no",{"2":{"3":3,"4":1,"11":1,"13":1,"17":2,"26":1,"33":1,"76":1}}],["noname",{"2":{"17":1,"18":5}}],["non",{"0":{"2":1},"2":{"13":2,"14":1}}],["nometada",{"2":{"0":1}}],["nometadata",{"2":{"0":3,"4":3,"11":2,"13":1}}],["notice",{"2":{"15":1}}],["notably",{"2":{"14":2,"66":1}}],["note",{"2":{"13":2,"17":1,"19":1,"21":1,"76":1}}],["notes",{"2":{"4":1,"17":1}}],["nothing",{"2":{"1":1,"3":4,"4":1,"5":3,"8":2,"11":1,"13":1,"34":1}}],["not",{"2":{"0":1,"1":1,"3":6,"4":6,"5":6,"10":1,"13":2,"15":2,"16":1,"17":6,"18":2,"21":2,"25":5,"27":1,"39":1,"57":1,"74":1,"76":4,"77":1,"79":1}}],["nbsp",{"2":{"0":15,"1":4,"2":4,"3":15,"4":24,"5":10,"6":1,"7":6,"8":5,"9":3,"10":5,"11":3,"13":10,"14":2,"15":2,"16":3,"17":12,"18":3,"19":3}}],["⋮",{"2":{"0":1,"33":3,"34":2,"43":1,"44":1,"45":1,"46":1,"48":2,"49":8,"50":2,"51":1,"52":6,"53":1}}],["8daily",{"2":{"52":1}}],["88",{"2":{"49":1}}],["889182",{"2":{"49":1,"52":1}}],["88629",{"2":{"27":1}}],["81834",{"2":{"52":1}}],["81514",{"2":{"27":1}}],["816405",{"2":{"52":2}}],["816",{"2":{"26":1}}],["816747",{"2":{"25":1}}],["853501",{"2":{"27":1}}],["855822",{"2":{"25":1}}],["825722",{"2":{"49":1,"52":2}}],["82596",{"2":{"27":1}}],["826409",{"2":{"27":1}}],["827195",{"2":{"25":1}}],["898891",{"2":{"25":1}}],["865305",{"2":{"25":1}}],["8675309",{"2":{"13":7}}],["867",{"2":{"13":1}}],["874853",{"2":{"27":1}}],["874899",{"2":{"25":1}}],["87028",{"2":{"25":1}}],["842417",{"2":{"52":1}}],["847367",{"2":{"24":1}}],["846559",{"2":{"13":1}}],["83717",{"2":{"52":1}}],["8371666666666666",{"2":{"52":1}}],["837648",{"2":{"24":1}}],["837621",{"2":{"15":1}}],["83096",{"2":{"27":1}}],["83",{"2":{"26":1}}],["835111",{"2":{"13":1}}],["802359",{"2":{"52":1}}],["808039",{"2":{"25":1}}],["80",{"2":{"4":1,"50":1}}],["8",{"2":{"0":1,"4":1,"5":2,"14":1,"17":6,"25":2,"43":1,"49":1,"50":10,"51":1,"52":4}}],["692856",{"2":{"27":2}}],["696556",{"2":{"13":1}}],["63",{"2":{"49":1}}],["63438",{"2":{"27":1}}],["638871",{"2":{"25":1}}],["68663",{"2":{"27":1}}],["683179",{"2":{"25":1}}],["666578",{"2":{"49":1,"52":3}}],["666952",{"2":{"25":1}}],["667948",{"2":{"25":1}}],["610073",{"2":{"27":2}}],["613373",{"2":{"25":1}}],["611697",{"2":{"25":1}}],["65",{"2":{"50":1}}],["654678",{"2":{"27":2}}],["658017",{"2":{"25":1}}],["657815",{"2":{"25":1}}],["656843",{"2":{"25":1}}],["659805",{"2":{"25":1}}],["675435",{"2":{"25":1}}],["621011",{"2":{"49":1,"52":1}}],["621192",{"2":{"25":1}}],["625",{"2":{"34":1}}],["629581",{"2":{"25":1}}],["629314",{"2":{"24":1}}],["622698",{"2":{"25":1}}],["624231",{"2":{"13":1}}],["641411",{"2":{"49":1,"52":1}}],["64",{"2":{"34":1,"50":1}}],["645865",{"2":{"24":1}}],["64486",{"2":{"24":1}}],["607",{"2":{"26":1}}],["601521",{"2":{"52":1}}],["601934",{"2":{"25":1}}],["601363",{"2":{"24":1}}],["605937",{"2":{"24":2}}],["609188",{"2":{"24":1}}],["60",{"2":{"4":1,"5":1}}],["6",{"2":{"0":1,"4":2,"5":18,"14":1,"15":3,"17":9,"25":3,"43":1,"44":10,"49":1,"50":11,"51":4,"52":1}}],["49",{"2":{"50":1}}],["498237",{"2":{"49":1}}],["498975",{"2":{"49":1}}],["498315",{"2":{"25":1}}],["496624",{"2":{"49":1}}],["493986",{"2":{"49":1}}],["49752",{"2":{"49":1}}],["497156",{"2":{"49":1}}],["499767",{"2":{"51":1}}],["499744",{"2":{"49":1}}],["499956",{"2":{"51":1}}],["499571",{"2":{"51":1}}],["499591",{"2":{"50":1}}],["499897",{"2":{"50":1}}],["49989",{"2":{"50":1}}],["499852",{"2":{"49":1,"50":2}}],["499245",{"2":{"50":1}}],["499243",{"2":{"49":1,"50":1}}],["499233",{"2":{"50":1,"52":1}}],["499201",{"2":{"50":1}}],["492631",{"2":{"27":2}}],["46316",{"2":{"27":1}}],["46428",{"2":{"27":1}}],["467494",{"2":{"27":1}}],["467493",{"2":{"25":1}}],["453056",{"2":{"25":1}}],["450477",{"2":{"25":1}}],["455256",{"2":{"13":1}}],["482983",{"2":{"53":1}}],["48",{"2":{"50":1}}],["483",{"2":{"26":1}}],["480116",{"2":{"25":1}}],["480024",{"2":{"25":1}}],["484558",{"2":{"13":1}}],["41",{"2":{"50":1}}],["41031e",{"2":{"49":1}}],["412503",{"2":{"27":2}}],["418556",{"2":{"27":1}}],["415288",{"2":{"25":1}}],["413825",{"2":{"25":1}}],["416586",{"2":{"25":1}}],["419134",{"2":{"25":1}}],["435899",{"2":{"53":1}}],["437562",{"2":{"49":1,"52":1}}],["430912",{"2":{"25":1}}],["430207",{"2":{"25":1}}],["436701",{"2":{"25":1}}],["43204",{"2":{"13":1}}],["472027",{"2":{"52":1}}],["47",{"2":{"50":2,"52":1}}],["47644e",{"2":{"49":1}}],["471334",{"2":{"25":1}}],["471638",{"2":{"13":1}}],["477316",{"2":{"25":1}}],["447451",{"2":{"49":1,"52":2}}],["441511",{"2":{"27":1}}],["441426",{"2":{"15":1}}],["442305",{"2":{"25":1}}],["449569",{"2":{"25":1}}],["4×7",{"2":{"17":1}}],["429658",{"2":{"25":1}}],["427827",{"2":{"25":1}}],["42",{"2":{"13":6}}],["40186",{"2":{"25":1}}],["400295",{"2":{"25":1}}],["400",{"2":{"17":1}}],["40",{"2":{"4":1,"50":1}}],["4",{"2":{"0":26,"3":1,"4":5,"5":12,"13":5,"14":2,"15":2,"16":1,"17":26,"25":1,"27":1,"34":1,"43":1,"49":1,"50":12,"51":8,"52":5}}],["08",{"2":{"33":1,"52":1}}],["0823128",{"2":{"25":1}}],["0824814",{"2":{"25":1}}],["06",{"2":{"33":1,"52":1}}],["06252",{"2":{"27":1}}],["0697824",{"2":{"25":1}}],["09",{"2":{"52":1}}],["095",{"2":{"26":1}}],["0979917",{"2":{"24":1}}],["05",{"2":{"52":1}}],["05t03",{"2":{"52":4}}],["05037",{"2":{"27":1}}],["0555482",{"2":{"25":1}}],["0557819",{"2":{"25":1}}],["0545244",{"2":{"25":1}}],["07",{"2":{"52":1}}],["0752473",{"2":{"25":1}}],["0763198",{"2":{"25":1}}],["0763553",{"2":{"24":2}}],["0im",{"2":{"13":6}}],["0+0",{"2":{"13":6}}],["0474785",{"2":{"25":1}}],["0482527",{"2":{"25":1}}],["0437424",{"2":{"25":1}}],["04",{"2":{"0":1,"33":1,"34":1,"52":1}}],["0320612",{"2":{"25":1}}],["03",{"2":{"0":1,"33":1,"34":1,"52":1}}],["023",{"2":{"52":2}}],["0207301",{"2":{"25":1}}],["02",{"2":{"0":1,"33":6,"34":4,"49":1,"52":3}}],["0",{"2":{"0":106,"3":8,"4":26,"5":8,"13":119,"14":16,"15":11,"17":204,"21":4,"24":150,"25":174,"26":25,"27":36,"33":20,"34":18,"42":1,"43":1,"49":40,"50":13,"51":6,"52":64,"53":4}}],["00506e",{"2":{"49":1}}],["00117147",{"2":{"49":1,"52":1}}],["000",{"2":{"33":3}}],["00632258",{"2":{"25":1}}],["00",{"2":{"0":30,"26":10,"42":4,"49":10,"52":30,"53":15}}],["011",{"2":{"51":2}}],["01t03",{"2":{"52":2}}],["01t01",{"2":{"49":1,"52":1,"53":2}}],["01t00",{"2":{"0":15,"42":1,"49":2,"52":6,"53":3}}],["0184523",{"2":{"25":1}}],["0169041",{"2":{"25":1}}],["010",{"2":{"17":2}}],["0143835",{"2":{"13":1}}],["01",{"2":{"0":5,"33":5,"34":3,"42":1,"49":6,"52":19,"53":5}}],["590071",{"2":{"49":1,"52":1}}],["59101",{"2":{"25":1}}],["537327",{"2":{"27":2}}],["5309",{"2":{"13":1}}],["581539",{"2":{"49":1,"52":1}}],["58822",{"2":{"25":1}}],["589043",{"2":{"25":1}}],["56",{"2":{"50":1}}],["566192",{"2":{"27":2}}],["569516",{"2":{"25":1}}],["561814",{"2":{"25":1}}],["523272",{"2":{"49":1,"52":1}}],["526876",{"2":{"27":2}}],["526559",{"2":{"25":1}}],["524263",{"2":{"25":1}}],["525423",{"2":{"24":1}}],["553437",{"2":{"25":1}}],["55623",{"2":{"24":1}}],["540209",{"2":{"25":1}}],["540787",{"2":{"13":1}}],["543564",{"2":{"25":1}}],["5173",{"2":{"76":1}}],["517524",{"2":{"53":1}}],["518935",{"2":{"25":1}}],["51036",{"2":{"25":1}}],["513225",{"2":{"15":1}}],["5×3",{"2":{"25":1}}],["5×10",{"2":{"24":1}}],["5×5",{"2":{"13":1,"24":1}}],["5×4",{"2":{"4":1}}],["572498",{"2":{"25":1}}],["579312",{"2":{"25":1}}],["57",{"2":{"5":1,"50":1}}],["506432",{"2":{"53":1}}],["5055",{"2":{"51":4}}],["501722",{"2":{"50":1,"52":1}}],["501566",{"2":{"25":1}}],["500346",{"2":{"51":1}}],["500463",{"2":{"50":1}}],["500557",{"2":{"49":1}}],["50067",{"2":{"49":1}}],["500986",{"2":{"49":1}}],["500056",{"2":{"50":1}}],["500043",{"2":{"50":1}}],["5000",{"2":{"17":1}}],["507149",{"2":{"49":1,"52":3}}],["508876",{"2":{"24":1}}],["504147",{"2":{"24":1}}],["50",{"2":{"5":3,"13":7,"33":2}}],["5u",{"2":{"5":1}}],["5",{"2":{"0":2,"4":3,"5":21,"13":6,"14":1,"17":9,"24":3,"25":5,"27":1,"43":1,"49":3,"50":14,"51":1}}],["369",{"2":{"50":3,"52":2}}],["368",{"2":{"50":2,"52":1}}],["361",{"2":{"50":2,"52":1}}],["363",{"2":{"49":2}}],["365",{"2":{"49":2}}],["366",{"2":{"49":3}}],["364",{"2":{"46":9,"48":9,"49":2}}],["360",{"2":{"4":2,"50":1}}],["394109",{"2":{"27":2}}],["389283",{"2":{"52":1}}],["389738",{"2":{"24":1}}],["38544",{"2":{"27":1}}],["376",{"2":{"50":3,"52":2}}],["370",{"2":{"50":2,"52":1}}],["377258",{"2":{"27":2}}],["371716",{"2":{"27":1}}],["378221",{"2":{"25":1}}],["313",{"2":{"50":1}}],["312",{"2":{"50":1}}],["312995",{"2":{"25":1}}],["318122",{"2":{"25":1}}],["345",{"2":{"50":1}}],["344",{"2":{"50":1}}],["344856",{"2":{"25":1}}],["347597",{"2":{"25":1}}],["346192",{"2":{"24":1}}],["3rd",{"2":{"17":1}}],["337",{"2":{"50":1}}],["336",{"2":{"50":1}}],["338524",{"2":{"27":1}}],["338496",{"2":{"25":1}}],["33",{"2":{"17":1,"50":2,"52":1}}],["329",{"2":{"50":1}}],["328",{"2":{"50":1}}],["321",{"2":{"50":1}}],["320",{"2":{"50":1}}],["32gb",{"2":{"34":1}}],["326",{"2":{"26":1}}],["327768",{"2":{"25":1}}],["324902",{"2":{"25":1}}],["32",{"2":{"16":2,"50":2,"52":1}}],["3a",{"2":{"14":1}}],["30t22",{"2":{"53":1}}],["30t23",{"2":{"42":1,"49":2,"52":2,"53":2}}],["305",{"2":{"50":1}}],["304424",{"2":{"25":1}}],["300",{"2":{"17":1}}],["30",{"2":{"14":2,"17":10,"49":2}}],["3×5",{"2":{"17":1}}],["3×5×12",{"2":{"0":1}}],["3×1",{"2":{"17":1}}],["3×4×1",{"2":{"27":2}}],["3×4×5",{"2":{"27":1}}],["3×4",{"2":{"17":5,"27":1}}],["3×3",{"2":{"13":3,"17":1,"26":1}}],["3=>4",{"2":{"13":1}}],["353",{"2":{"50":1}}],["352",{"2":{"50":1}}],["357827",{"2":{"27":2}}],["35",{"2":{"13":1}}],["3",{"2":{"0":15,"1":1,"3":1,"4":7,"5":8,"13":15,"14":1,"15":8,"16":2,"17":39,"24":2,"25":7,"26":7,"27":8,"43":1,"50":15,"51":6,"52":7}}],["167146",{"2":{"52":2}}],["16",{"2":{"43":1,"50":6,"52":4}}],["165293",{"2":{"24":1}}],["1e9",{"2":{"34":2}}],["1em",{"2":{"15":1,"17":1}}],["185833333333335",{"2":{"52":1}}],["18",{"2":{"26":1,"34":1,"43":1,"49":1,"50":2}}],["181203",{"2":{"25":1}}],["17",{"2":{"43":1,"50":4,"52":1}}],["17520",{"2":{"43":1,"44":1,"45":1,"46":1,"48":2,"53":1}}],["170415",{"2":{"25":1}}],["173433",{"2":{"25":1}}],["143",{"2":{"26":1}}],["14",{"2":{"26":1,"50":2}}],["146381",{"2":{"24":1}}],["14159",{"2":{"17":2}}],["138",{"2":{"26":1}}],["137287",{"2":{"25":1}}],["131239",{"2":{"25":1}}],["136077",{"2":{"25":1}}],["130019",{"2":{"24":1}}],["13",{"2":{"17":1,"50":2,"51":3}}],["1339893410598768192",{"2":{"13":1}}],["1px",{"2":{"15":1,"17":1}}],["1a",{"2":{"14":1}}],["1=>2",{"2":{"13":2}}],["1u",{"2":{"5":2}}],["195376",{"2":{"27":1}}],["194872",{"2":{"25":1}}],["193652",{"2":{"13":1}}],["19",{"2":{"5":5,"43":1,"50":2,"52":2}}],["1×3",{"2":{"17":1}}],["1×2",{"2":{"5":3,"13":1}}],["1×12",{"2":{"0":1}}],["1575814717733606317",{"2":{"13":1}}],["15",{"2":{"5":3,"43":1,"50":2}}],["114333",{"2":{"25":1}}],["11",{"2":{"0":2,"4":1,"17":1,"49":8,"50":4,"78":1}}],["1204",{"2":{"49":1}}],["1219",{"2":{"49":1}}],["128",{"2":{"33":1}}],["125357",{"2":{"49":1,"52":1}}],["125",{"2":{"26":1}}],["125877",{"2":{"25":1}}],["126105",{"2":{"25":1}}],["12",{"2":{"0":9,"4":1,"13":3,"14":1,"17":1,"42":1,"45":9,"48":9,"49":18,"50":5,"51":3,"52":5,"53":3}}],["1",{"2":{"0":43,"1":1,"3":15,"4":26,"5":12,"13":69,"14":3,"15":10,"16":1,"17":70,"21":2,"24":3,"25":8,"26":12,"27":6,"33":55,"34":2,"42":2,"43":1,"45":10,"46":10,"48":21,"49":40,"50":36,"51":12,"52":46,"53":3,"74":1,"75":1}}],["1044",{"2":{"52":1}}],["104416666666665",{"2":{"52":2}}],["106081",{"2":{"52":1}}],["101×34",{"2":{"52":2}}],["101×1464",{"2":{"49":1}}],["101×1440",{"2":{"49":1}}],["101×1488",{"2":{"49":1}}],["101×1368",{"2":{"49":1}}],["101×17520",{"2":{"49":1,"52":1}}],["10×9×8×7×6×5",{"2":{"25":1}}],["10×7×5",{"2":{"25":1}}],["102946",{"2":{"52":2}}],["102",{"2":{"17":1}}],["1024",{"2":{"16":1}}],["10u",{"2":{"5":1}}],["100×10",{"2":{"34":1}}],["100949",{"2":{"27":1}}],["100000×50000",{"2":{"33":1}}],["10000",{"2":{"26":2}}],["1000",{"2":{"17":1,"21":1,"26":2,"33":6}}],["100u",{"2":{"5":2}}],["100",{"2":{"0":1,"3":1,"4":3,"13":7,"17":8,"33":5,"34":1,"52":1}}],["10",{"2":{"0":7,"1":9,"3":6,"4":5,"5":19,"13":3,"14":5,"17":41,"24":2,"25":2,"34":1,"50":4,"51":3,"74":1,"75":1}}],["b`",{"2":{"76":1}}],["b=1",{"2":{"24":1}}],["b>",{"2":{"15":2,"17":2}}],["blocks",{"2":{"19":1}}],["block",{"2":{"17":2,"19":1}}],["blob",{"2":{"15":1,"17":1}}],["black",{"2":{"15":1,"17":1}}],["build",{"2":{"15":1}}],["but",{"2":{"1":2,"3":9,"4":4,"5":1,"8":1,"11":1,"13":1,"14":3,"15":2,"19":2,"21":1,"25":2,"27":1,"34":2,"35":1,"40":1,"42":1,"57":1,"63":1,"75":1,"76":2}}],["bin",{"2":{"50":2}}],["binning",{"0":{"50":1},"1":{"51":1}}],["bins",{"2":{"41":1,"50":3,"51":1}}],["big",{"0":{"34":1}}],["bigint",{"2":{"13":1,"33":1,"34":2}}],["bitarray",{"2":{"33":1}}],["bitsets",{"2":{"13":1}}],["bayesian",{"2":{"61":1}}],["band",{"2":{"16":5}}],["backend",{"2":{"21":1}}],["back",{"2":{"5":1,"11":1}}],["basics",{"0":{"42":1},"1":{"43":1,"44":1,"45":1,"46":1,"47":1,"48":1}}],["basically",{"2":{"3":1}}],["base",{"2":{"3":2,"5":2,"13":10,"14":3,"17":14,"21":1,"25":1,"34":1,"77":1}}],["basetypeof",{"2":{"3":5}}],["basedims",{"2":{"3":2}}],["based",{"2":{"2":1,"3":1,"16":1}}],["brought",{"2":{"22":1}}],["broadcasts",{"2":{"21":1,"77":1}}],["broadcast",{"2":{"17":7,"21":1,"77":2}}],["broadcasting",{"2":{"3":1,"17":1,"49":1}}],["br>",{"2":{"15":1,"17":1}}],["breaking",{"2":{"4":1,"19":1}}],["box",{"2":{"19":1,"33":1,"74":1}}],["border",{"2":{"15":4,"17":4}}],["boundaries",{"2":{"5":1}}],["bounds",{"2":{"4":9,"8":6}}],["both",{"2":{"4":1,"13":2,"58":1}}],["bool",{"2":{"1":3,"3":6,"4":2,"5":1,"13":8,"17":1,"33":1,"76":2}}],["bytes",{"2":{"26":2}}],["by",{"0":{"51":1,"52":1,"53":1},"1":{"53":1,"54":1},"2":{"0":1,"1":2,"3":13,"4":8,"5":4,"9":1,"13":3,"15":1,"17":3,"22":1,"24":2,"26":2,"33":1,"34":1,"39":2,"47":1,"49":1,"75":1,"76":3,"77":1}}],["b",{"2":{"0":8,"3":4,"4":3,"5":5,"13":6,"14":3,"17":4,"24":3,"25":4,"52":4,"74":1,"75":1,"76":4}}],["behviour",{"2":{"76":1}}],["behavior",{"2":{"17":1}}],["behaviour",{"2":{"4":4,"5":1,"6":1,"14":2,"74":1,"77":1}}],["behaviours",{"2":{"4":1,"58":1}}],["behaves",{"2":{"15":2,"35":1}}],["benchmarktools",{"2":{"26":3}}],["benchmark",{"2":{"26":3}}],["beginning",{"2":{"21":1}}],["becomes",{"2":{"16":2}}],["because",{"2":{"13":1}}],["besides",{"2":{"13":1}}],["better",{"2":{"5":1}}],["between",{"2":{"0":3,"4":5,"5":17,"10":1,"11":1,"13":1,"14":2,"76":3}}],["been",{"2":{"2":1,"3":1,"14":1,"17":1}}],["be",{"2":{"0":3,"1":4,"2":2,"3":13,"4":34,"5":12,"6":1,"7":2,"8":3,"10":2,"13":11,"14":4,"15":3,"16":2,"17":15,"18":1,"19":1,"21":5,"22":2,"24":2,"25":5,"27":2,"34":2,"35":1,"37":1,"39":1,"42":1,"48":1,"76":3}}],["29",{"2":{"49":2}}],["297063",{"2":{"25":1}}],["27339",{"2":{"27":1}}],["279857",{"2":{"25":1}}],["286901",{"2":{"25":1}}],["268029",{"2":{"25":1}}],["269007",{"2":{"25":1}}],["2413",{"2":{"49":1}}],["246641",{"2":{"49":1,"52":2}}],["24",{"2":{"42":1,"49":1,"50":4,"52":3}}],["243243",{"2":{"25":1}}],["249178",{"2":{"25":1}}],["224188",{"2":{"25":1}}],["22",{"2":{"17":1,"43":1,"50":2,"52":3}}],["2a",{"2":{"14":1}}],["2×6×1",{"2":{"17":1}}],["2×2",{"2":{"15":2,"17":1}}],["2×3",{"2":{"13":4}}],["2×4",{"2":{"5":1,"13":4}}],["2×4×2",{"2":{"3":1}}],["21",{"2":{"5":4,"43":1,"50":2,"52":3}}],["25825",{"2":{"51":4}}],["256698",{"2":{"25":1}}],["25px",{"2":{"15":1,"17":1}}],["25",{"2":{"5":2,"26":1,"50":2,"52":3}}],["2388",{"2":{"49":1}}],["238298",{"2":{"25":1}}],["232963",{"2":{"25":1}}],["23691",{"2":{"24":1}}],["230198",{"2":{"24":1}}],["23",{"2":{"5":1,"42":1,"43":1,"50":2,"52":2}}],["208",{"2":{"34":1}}],["204171",{"2":{"25":1}}],["202616",{"2":{"24":2}}],["2021",{"2":{"0":19}}],["200605",{"2":{"25":1}}],["200000000000",{"2":{"34":25}}],["2000",{"2":{"21":1,"42":2,"48":20,"49":15,"50":4,"51":4,"52":21,"53":5}}],["2001",{"2":{"13":4,"42":1,"48":18,"49":14,"50":4,"51":3,"52":8,"53":3}}],["200",{"2":{"5":1,"13":6}}],["20",{"2":{"4":4,"5":18,"13":1,"17":13,"43":1,"50":2}}],["2",{"2":{"0":19,"1":2,"3":3,"4":3,"5":14,"8":3,"13":27,"14":1,"15":9,"16":1,"17":38,"21":1,"24":3,"25":5,"26":8,"27":6,"33":1,"34":4,"42":1,"43":1,"49":20,"50":16,"51":1,"52":9}}],["=>",{"2":{"1":8,"2":6,"3":19,"4":27,"11":2,"13":21,"16":1,"17":30,"18":2,"49":7,"50":10,"51":2,"52":4,"53":1}}],["===",{"2":{"13":5}}],["==",{"2":{"0":1,"17":2,"52":2}}],["=",{"2":{"0":17,"1":3,"3":4,"4":10,"5":11,"13":8,"14":9,"15":2,"16":1,"17":17,"21":3,"24":2,"25":2,"26":1,"27":2,"33":3,"34":3,"42":2,"48":2,"49":2,"52":2,"75":1}}],["grouped",{"0":{"54":1}}],["groups",{"2":{"50":1}}],["group",{"0":{"53":1},"2":{"42":1,"49":5,"51":1}}],["groupings",{"2":{"50":1}}],["grouping",{"0":{"42":1,"47":1,"49":1},"1":{"43":1,"44":1,"45":1,"46":1,"47":1,"48":1},"2":{"41":4,"47":1}}],["groupbys",{"2":{"49":1}}],["groupby",{"0":{"41":1},"2":{"41":1,"48":1,"49":13,"50":12,"51":4,"52":8,"53":2}}],["grid",{"2":{"4":1}}],["gridded",{"2":{"4":1}}],["gc",{"2":{"26":6}}],["goals",{"2":{"21":1}}],["good",{"2":{"14":1}}],["gpus",{"0":{"21":1},"2":{"18":1,"21":1,"66":1}}],["gpu",{"2":{"17":2,"21":12}}],["gis",{"2":{"57":2}}],["giving",{"2":{"5":1,"79":1}}],["given",{"2":{"17":1,"79":1}}],["give",{"2":{"3":2,"4":1,"5":1,"13":1}}],["gives",{"2":{"0":1,"14":2}}],["github",{"2":{"4":1,"15":1,"17":1,"21":1}}],["guide",{"2":{"41":1}}],["guaranteed",{"2":{"3":1}}],["guessed",{"2":{"2":1,"8":2}}],["guess",{"2":{"0":1,"48":1}}],["gt",{"2":{"1":2,"3":3,"5":1,"17":2}}],["g",{"2":{"0":1,"3":1,"4":2,"5":1,"13":1,"35":1}}],["geometry",{"2":{"16":2}}],["geotiff",{"2":{"10":1}}],["geodata",{"2":{"4":3}}],["geospatial",{"2":{"4":3,"57":1}}],["getting",{"2":{"13":1}}],["getter",{"2":{"4":1}}],["get",{"2":{"1":2,"2":1,"3":2,"11":2,"13":1,"16":1,"24":1,"34":1,"76":7}}],["getindex",{"2":{"0":1,"3":2,"14":3,"15":1,"25":1,"34":1}}],["generator",{"2":{"17":2}}],["generators",{"0":{"15":1}}],["generate",{"2":{"3":3}}],["generated",{"2":{"3":2,"16":1,"39":1}}],["general",{"2":{"11":1,"69":1}}],["generally",{"2":{"0":1}}],["generic",{"2":{"0":1,"4":1,"22":1,"48":1}}],["wont",{"2":{"5":1}}],["work",{"2":{"4":4,"5":1,"11":1,"14":1,"17":1,"21":3,"22":1,"24":1,"27":1,"33":1,"39":2,"40":1,"42":1,"58":1,"74":1,"75":2,"76":1,"77":1}}],["works",{"2":{"4":1,"17":1,"25":1,"27":1,"66":1,"77":2}}],["working",{"2":{"1":1,"14":2,"27":1}}],["wants",{"2":{"21":1}}],["want",{"2":{"19":2,"25":1,"50":2,"52":1}}],["was",{"2":{"13":1,"17":2}}],["way",{"2":{"4":1,"17":1,"27":1,"39":1}}],["warning",{"2":{"3":2,"15":1,"17":1}}],["warn",{"2":{"3":2}}],["whose",{"2":{"17":3}}],["whole",{"2":{"5":2}}],["what",{"2":{"17":1,"48":1}}],["whatever",{"2":{"15":1,"25":1}}],["which",{"2":{"4":1,"13":1,"16":1,"17":7,"27":1,"57":1,"76":1}}],["whichever",{"2":{"3":1}}],["while",{"2":{"3":1,"11":1,"14":2,"16":1}}],["wherever",{"2":{"17":1}}],["where",{"2":{"3":4,"4":9,"5":7,"7":1,"8":2,"9":1,"10":2,"11":1,"14":1,"17":4,"27":1,"76":2}}],["whenever",{"2":{"21":1}}],["when",{"2":{"0":4,"4":7,"5":2,"13":1,"14":2,"15":1,"16":1,"17":4,"18":1,"21":1,"25":1,"27":1,"34":1,"37":1,"50":1}}],["writing",{"2":{"3":1,"17":1,"34":1}}],["wraps",{"2":{"37":1}}],["wrapping",{"2":{"3":1,"4":1,"58":1}}],["wrapper",{"2":{"4":4,"11":1,"17":2,"18":2,"22":1,"50":1}}],["wrappers",{"2":{"0":2,"4":1,"5":1,"11":2,"18":1,"25":1}}],["wrapped",{"2":{"3":2,"17":1}}],["wrap",{"2":{"0":1,"22":3,"76":2}}],["well",{"2":{"16":1,"25":1}}],["weeks",{"2":{"4":1}}],["week",{"2":{"4":1}}],["wether",{"2":{"1":1}}],["we",{"0":{"42":1},"1":{"43":1,"44":1,"45":1,"46":1,"47":1,"48":1},"2":{"0":1,"4":3,"5":1,"14":1,"17":2,"21":2,"22":1,"24":3,"25":6,"27":2,"33":1,"34":3,"47":1,"48":1,"49":3,"50":4,"51":1,"52":3,"58":1,"75":1}}],["wiht",{"2":{"37":1}}],["width",{"2":{"15":1,"17":1}}],["wide",{"2":{"4":1,"57":1,"79":1}}],["widely",{"2":{"1":1}}],["wish",{"2":{"5":1}}],["within",{"2":{"5":1,"76":1}}],["without",{"2":{"3":1,"4":2,"11":1,"14":1,"17":2,"24":1,"25":1,"39":1}}],["with",{"2":{"0":10,"1":4,"2":1,"3":14,"4":14,"5":14,"7":1,"8":1,"10":4,"11":1,"13":23,"14":8,"15":4,"16":3,"17":19,"19":1,"21":3,"22":3,"24":5,"25":6,"26":3,"27":3,"33":1,"34":1,"39":2,"40":3,"41":3,"43":1,"48":1,"49":7,"50":6,"51":2,"52":4,"53":1,"58":2,"59":1,"74":2,"75":1,"76":3,"77":5,"78":1,"79":1}}],["will",{"2":{"0":4,"1":1,"2":1,"3":9,"4":13,"5":7,"7":2,"8":2,"10":1,"11":1,"13":10,"14":7,"16":3,"17":17,"21":1,"25":3,"27":1,"33":1,"34":1,"38":2,"39":2,"40":1,"41":1,"42":2,"49":1,"52":1,"74":1,"75":3,"76":1,"77":1,"78":1}}],["due",{"2":{"21":1}}],["during",{"2":{"0":1,"66":1}}],["dynamicgrids",{"0":{"66":1},"2":{"21":1,"66":2}}],["dropdims",{"2":{"27":2}}],["drop=false",{"2":{"17":1}}],["drop=true",{"2":{"17":1}}],["drop",{"2":{"17":3}}],["dd",{"2":{"5":3,"17":3,"22":1,"38":2,"42":1,"57":1,"59":1,"79":1}}],["d",{"2":{"3":2,"4":2,"15":1,"16":1,"17":5,"25":4,"27":1}}],["dsl",{"2":{"63":1}}],["dst",{"2":{"17":13}}],["ds",{"2":{"3":1,"4":2,"17":4}}],["difficult",{"2":{"21":1}}],["differenet",{"2":{"11":1}}],["different",{"2":{"3":1,"5":3,"10":1,"17":2,"49":1,"51":1,"52":1}}],["diagonal",{"2":{"17":2}}],["div",{"2":{"15":1,"17":1}}],["div>",{"2":{"15":1,"17":1}}],["di",{"2":{"15":2}}],["directly",{"2":{"15":1,"26":1,"50":1}}],["direction",{"2":{"10":2}}],["disk",{"2":{"34":1}}],["diskarray",{"2":{"58":1}}],["diskarrays",{"2":{"33":3}}],["diska",{"2":{"33":2}}],["discarding",{"2":{"17":1}}],["discarded",{"2":{"5":1}}],["disgarded",{"2":{"13":1}}],["distributed",{"2":{"13":1}}],["distinct",{"2":{"13":1}}],["distance",{"2":{"4":2,"5":1}}],["dispatch",{"2":{"11":1}}],["dicts",{"2":{"21":1}}],["dict",{"2":{"4":4,"11":3,"13":4,"17":1,"49":7,"50":6,"51":2,"52":4,"53":1}}],["dimmatrix",{"2":{"75":1}}],["dimgroupbyarray",{"2":{"49":1}}],["dimb",{"2":{"34":3}}],["dima",{"2":{"33":1,"34":1}}],["dimarrays",{"2":{"17":1}}],["dimarray",{"0":{"24":1},"2":{"0":8,"1":3,"3":2,"4":6,"5":11,"13":30,"14":11,"15":2,"16":1,"17":10,"21":2,"24":6,"25":4,"26":1,"27":4,"33":2,"34":1,"49":12,"50":6,"51":2,"52":6,"53":1,"65":1,"69":1}}],["dimcolumn",{"2":{"16":5}}],["dimtable",{"2":{"16":7}}],["dimtuple",{"2":{"14":1,"16":1}}],["dimpoints",{"2":{"15":7}}],["dimindices",{"0":{"28":1},"2":{"15":9,"25":4,"37":1}}],["dimz",{"2":{"5":2,"14":4}}],["dim2key",{"2":{"3":3,"16":1,"79":1}}],["dimnum",{"2":{"1":4,"38":1}}],["dimsions",{"2":{"25":1}}],["dimstack",{"2":{"14":18,"17":4,"79":1}}],["dimstride",{"2":{"3":1,"16":3}}],["dimstoreduce",{"2":{"3":1}}],["dimsmatch",{"2":{"3":2}}],["dims2indices",{"2":{"2":1}}],["dims",{"0":{"27":1,"36":1,"38":1,"53":1},"1":{"37":1,"38":1},"2":{"0":1,"1":7,"2":6,"3":16,"4":20,"5":2,"13":37,"14":3,"15":11,"16":2,"17":49,"19":1,"22":1,"24":5,"25":6,"26":1,"27":8,"33":1,"34":1,"35":1,"36":1,"37":1,"38":5,"39":2,"40":2,"49":9,"50":6,"51":2,"52":6,"53":2,"77":1}}],["dims=d",{"2":{"27":2}}],["dims=val",{"2":{"17":1}}],["dims=2",{"2":{"17":2}}],["dims=1",{"2":{"17":3}}],["dims=",{"2":{"17":3}}],["dims=ti",{"2":{"0":1,"14":2,"17":1,"27":2}}],["dims=z",{"2":{"0":1}}],["dims=y",{"2":{"0":1,"17":1}}],["dims=x",{"2":{"0":1}}],["dim",{"2":{"0":8,"1":2,"2":3,"3":17,"4":14,"13":7,"16":7,"17":22,"22":2,"24":1,"27":1,"37":1}}],["dimensionmismatch",{"2":{"17":1}}],["dimensionality",{"2":{"17":1}}],["dimensional",{"0":{"25":1},"2":{"0":1,"3":1,"13":3,"14":1,"17":2,"37":1,"41":1}}],["dimensionaldata",{"0":{"35":1},"1":{"36":1,"37":1,"38":1,"39":1,"40":1},"2":{"0":23,"1":8,"2":4,"3":21,"4":36,"5":21,"6":1,"7":6,"8":5,"9":3,"10":5,"11":3,"13":11,"14":3,"15":4,"16":4,"17":16,"18":3,"19":5,"20":3,"21":5,"22":2,"24":1,"33":2,"35":1,"36":1,"39":1,"41":1,"42":3,"57":1,"58":1,"75":1,"76":6,"79":1}}],["dimension",{"0":{"15":1,"37":1},"2":{"0":21,"1":19,"2":6,"3":41,"4":29,"5":3,"13":52,"14":3,"15":8,"16":13,"17":37,"22":4,"24":2,"25":4,"27":5,"37":1,"38":5,"39":1,"40":1,"41":1,"76":2,"77":2,"79":2}}],["dimensions",{"0":{"0":1,"22":1,"29":1,"30":1},"1":{"1":1,"2":1,"3":1,"23":1,"24":1,"25":1,"26":1,"27":1,"28":1,"29":1,"30":1,"31":1,"32":1},"2":{"0":41,"1":13,"2":5,"3":37,"4":41,"5":15,"6":1,"7":6,"8":5,"9":3,"10":5,"11":3,"13":22,"14":3,"15":4,"16":3,"17":36,"22":6,"24":3,"25":4,"26":1,"27":3,"36":2,"37":1,"75":1,"76":5,"77":2,"79":2}}],["documented",{"2":{"17":1}}],["documenter",{"2":{"15":1}}],["docstring",{"2":{"15":2}}],["doctestjulia>",{"2":{"13":3}}],["do",{"2":{"4":2,"17":3,"21":1,"27":1,"43":1,"48":1,"50":1,"51":1,"52":3}}],["doesn",{"2":{"15":1,"25":1}}],["does",{"2":{"4":1,"39":1,"49":3,"52":1,"77":1,"79":1}}],["dotview",{"2":{"3":1}}],["done",{"2":{"13":1,"17":1,"79":1}}],["don",{"2":{"2":1,"4":1,"25":1,"27":1}}],["daily",{"2":{"49":2,"52":1}}],["dayofyear",{"0":{"46":1},"2":{"46":1,"48":1,"50":2,"52":2}}],["dayofweek",{"0":{"44":1},"2":{"44":1}}],["day",{"2":{"42":1,"49":1,"50":1,"52":2}}],["days",{"0":{"51":1},"2":{"4":1,"51":1}}],["das",{"2":{"19":1}}],["da3",{"2":{"14":2}}],["da2",{"2":{"14":2}}],["da1",{"2":{"14":2}}],["da",{"2":{"0":4,"4":2,"17":10}}],["dataset",{"2":{"35":2,"61":1}}],["datasets",{"0":{"14":1},"2":{"4":1,"58":1}}],["dataframes",{"0":{"79":1},"2":{"5":1,"79":1}}],["data=autoindex",{"2":{"4":1}}],["data",{"2":{"0":4,"1":1,"2":1,"4":17,"11":1,"13":5,"14":6,"16":3,"17":8,"19":1,"21":3,"22":1,"33":2,"34":1,"39":2,"40":3,"50":1,"57":2,"58":1,"59":1,"65":1,"66":1,"69":1,"79":1}}],["date",{"2":{"4":2}}],["datetime",{"0":{"42":1},"1":{"43":1,"44":1,"45":1,"46":1,"47":1,"48":1},"2":{"0":13,"5":1,"13":4,"42":5,"48":1,"49":3,"52":9,"53":5}}],["dates",{"2":{"0":3,"4":2,"13":1,"42":4,"49":4,"52":12,"53":4}}],["development",{"2":{"74":1}}],["developers",{"2":{"39":1,"58":1}}],["demo",{"2":{"42":1}}],["description",{"2":{"76":2}}],["dest",{"2":{"17":4}}],["designed",{"2":{"35":1}}],["design",{"2":{"14":2}}],["dense",{"2":{"13":1}}],["deprecated",{"2":{"17":1,"74":1}}],["depreciated",{"2":{"5":1}}],["dependencies",{"2":{"57":1}}],["dependent",{"2":{"0":1}}],["dependentdim",{"2":{"0":4}}],["depending",{"2":{"1":1,"16":1}}],["defualt",{"2":{"75":1}}],["defining",{"2":{"4":2}}],["defines",{"2":{"4":1,"8":1,"15":1,"17":1,"63":1}}],["defined",{"2":{"3":1,"4":1,"14":1,"17":3,"22":1,"39":1,"49":1}}],["define",{"2":{"3":1,"4":1,"9":1,"22":1,"49":1}}],["defaults",{"0":{"71":1},"2":{"13":1}}],["default",{"2":{"1":3,"3":11,"4":7,"10":1,"13":2,"15":1,"17":1,"18":1,"74":1}}],["detect",{"2":{"4":2,"13":4}}],["detected",{"2":{"4":4}}],["determine",{"2":{"7":1}}],["determined",{"2":{"4":1}}],["determines",{"2":{"3":1,"15":1}}],["details",{"2":{"0":1,"15":1,"19":2,"22":1}}],["features",{"2":{"76":1}}],["few",{"2":{"13":1}}],["fact",{"2":{"77":1}}],["facilitate",{"2":{"11":1,"76":2}}],["favour",{"2":{"17":1,"75":1}}],["fa50f93ce32c000c962544242fd0a4b9d0cf9ece",{"2":{"15":1,"17":1}}],["fallback",{"2":{"11":1}}],["falls",{"2":{"5":2,"76":1}}],["fall",{"2":{"5":2}}],["false",{"2":{"1":1,"3":6,"11":1,"13":1,"17":1}}],["far",{"2":{"4":1}}],["fast",{"2":{"4":1,"76":2,"78":1}}],["frequency",{"2":{"26":2}}],["freely",{"2":{"15":1}}],["freeunits",{"2":{"5":2}}],["free",{"2":{"3":1,"25":1}}],["friendly",{"2":{"21":1}}],["from",{"2":{"0":2,"1":1,"3":3,"4":10,"5":3,"8":1,"13":4,"14":3,"16":2,"17":7,"19":3,"21":1,"22":2,"25":2,"27":1,"35":1,"36":1,"37":1,"49":2,"51":1,"52":1,"57":1,"78":1}}],["further",{"2":{"39":1,"50":1}}],["furture",{"2":{"5":1}}],["funcions",{"2":{"21":1}}],["functionality",{"2":{"58":1}}],["functional",{"2":{"21":1}}],["functions",{"2":{"13":1,"27":1,"42":2,"47":1,"48":1,"49":1,"74":1,"75":1,"77":2}}],["function",{"0":{"54":1},"2":{"1":4,"2":4,"3":16,"4":11,"5":2,"13":8,"17":15,"19":3,"39":1,"41":2,"42":1,"48":2,"49":1,"50":3,"76":1}}],["future",{"2":{"4":1,"17":3,"19":1,"75":1}}],["full",{"2":{"3":1,"4":3}}],["follow",{"2":{"42":1,"74":1}}],["following",{"2":{"13":1}}],["found",{"2":{"3":1,"7":1,"17":3}}],["forms",{"2":{"21":1}}],["formats",{"2":{"10":1}}],["format",{"2":{"2":2,"8":1,"11":1}}],["foreach",{"2":{"17":1}}],["forward",{"2":{"4":1,"7":1,"13":2}}],["forwardordered",{"2":{"0":9,"3":1,"4":6,"5":8,"7":3,"15":2,"17":12,"33":2,"34":2,"49":9,"50":5,"51":1,"52":7,"53":1}}],["for",{"0":{"42":1},"1":{"43":1,"44":1,"45":1,"46":1,"47":1,"48":1},"2":{"0":12,"1":3,"2":2,"3":10,"4":40,"5":20,"7":2,"8":3,"10":4,"11":3,"13":29,"14":10,"15":6,"16":4,"17":11,"18":3,"19":5,"21":1,"22":1,"24":3,"25":2,"34":2,"38":1,"39":5,"41":1,"47":1,"50":1,"51":1,"52":1,"57":3,"59":1,"61":1,"65":1,"66":2,"69":1,"75":2,"76":2,"77":3,"78":1,"79":1}}],["flexible",{"2":{"39":1}}],["float32",{"2":{"21":2}}],["floating",{"2":{"13":2}}],["floats",{"2":{"13":1}}],["float64",{"2":{"0":21,"3":1,"4":1,"5":2,"13":11,"15":2,"16":3,"17":18,"24":4,"25":3,"26":1,"27":4,"33":2,"34":3,"49":8,"50":6,"51":3,"52":10,"53":1}}],["flags",{"2":{"3":1}}],["f",{"2":{"1":5,"3":10,"4":2,"5":1,"17":18,"25":6,"76":1}}],["fixes",{"2":{"78":1}}],["fixed",{"2":{"8":1}}],["field",{"2":{"13":1,"17":5,"39":1}}],["fields",{"2":{"0":2,"2":1,"3":1,"4":1,"6":1,"16":1,"17":4,"19":1,"21":2,"39":3,"40":1}}],["find",{"2":{"76":1}}],["findfirst",{"2":{"7":1}}],["finds",{"2":{"7":1}}],["firstindex",{"2":{"27":1}}],["first",{"2":{"3":3,"14":8,"17":1,"24":1,"42":1}}],["filter",{"2":{"76":1}}],["filters",{"2":{"5":1}}],["filling",{"2":{"17":1}}],["fill",{"2":{"13":16,"17":1,"24":1}}],["filled",{"2":{"2":1,"10":1,"13":2,"25":1}}],["file",{"2":{"0":1,"11":2,"57":1}}],["ecosystem",{"2":{"79":1}}],["ebetween",{"2":{"77":1}}],["estimate",{"2":{"26":4}}],["especially",{"2":{"15":1,"27":1,"75":1}}],["e=6",{"2":{"25":1}}],["equivalents",{"2":{"13":1}}],["equivalent",{"2":{"13":1,"14":1,"17":1}}],["equal",{"2":{"3":1,"17":1}}],["effects",{"2":{"13":2}}],["enforce",{"2":{"77":1}}],["engine",{"2":{"66":1}}],["entry",{"2":{"49":7,"50":6,"51":2,"52":4,"53":1}}],["enable",{"2":{"8":1}}],["end",{"2":{"4":1,"5":4,"9":1,"10":4,"17":1}}],["easiest",{"2":{"39":1}}],["easier",{"2":{"18":1,"38":1}}],["easily",{"2":{"4":1,"35":2}}],["eachindex",{"2":{"37":2}}],["eachcol",{"2":{"17":1}}],["eachrow",{"2":{"17":1}}],["eachslice",{"2":{"17":6,"27":1}}],["each",{"2":{"0":1,"3":2,"4":5,"5":1,"8":1,"13":1,"14":1,"15":1,"16":1,"17":3,"24":1,"49":1,"74":1,"76":1}}],["evaluations",{"2":{"26":2}}],["evaluated",{"2":{"5":1}}],["even",{"2":{"15":1,"25":1,"27":1,"51":1,"77":1}}],["everything",{"2":{"35":1}}],["everywhere",{"2":{"22":1}}],["every",{"2":{"4":1,"5":1,"8":1,"13":3,"17":2,"52":1}}],["evne",{"2":{"4":1}}],["error",{"2":{"3":1,"5":2,"17":1,"25":2,"52":1}}],["errors",{"2":{"2":1,"3":1}}],["empty",{"2":{"3":1,"13":3}}],["either",{"2":{"3":1,"4":2,"13":3,"15":1,"17":1,"24":1,"27":1,"76":1,"77":1}}],["eltype",{"2":{"17":1,"34":1}}],["elsewhere",{"2":{"17":1}}],["else",{"2":{"2":1}}],["elementwise",{"2":{"17":1}}],["elements",{"2":{"13":3,"17":1}}],["element",{"2":{"0":4,"2":1,"13":13,"17":6,"24":2,"43":1,"44":1,"45":1,"46":1,"48":2,"49":7,"50":7,"51":2,"52":3,"53":1}}],["exclusively",{"2":{"76":1}}],["except",{"2":{"21":1,"77":1}}],["exhausted",{"2":{"17":2}}],["exact",{"2":{"4":1,"9":1}}],["exactly",{"2":{"4":1,"5":1,"76":1}}],["examplea1",{"2":{"25":1}}],["examples",{"0":{"23":1},"2":{"13":4,"17":5,"35":2,"49":1}}],["example",{"0":{"33":1},"2":{"0":7,"1":3,"3":2,"4":5,"5":7,"13":9,"14":2,"15":1,"16":1,"17":7,"21":1,"24":1,"39":1}}],["extension",{"2":{"63":1}}],["extensible",{"2":{"35":1,"39":1}}],["extends",{"2":{"57":1,"59":1}}],["extend",{"2":{"14":1}}],["extended",{"2":{"4":1,"35":2}}],["extending",{"0":{"35":1},"1":{"36":1,"37":1,"38":1,"39":1,"40":1},"2":{"4":3,"36":1}}],["extrema",{"2":{"27":1}}],["extra",{"2":{"0":1,"27":1}}],["exploratory",{"2":{"61":1}}],["explicit",{"2":{"4":1,"8":1}}],["explicitly",{"2":{"4":2,"8":1}}],["expected",{"2":{"17":1}}],["exported",{"0":{"1":1,"2":1}}],["existing",{"0":{"73":1},"2":{"5":1,"17":2,"19":1,"41":1}}],["exists",{"2":{"3":1,"57":1}}],["exist",{"2":{"2":1}}],["e",{"0":{"54":1},"2":{"0":1,"3":1,"4":2,"5":2,"13":1,"25":3,"35":1,"51":1}}],["etc",{"2":{"0":1,"3":2,"14":1,"17":1}}],["pkg>",{"2":{"20":2}}],["permafrost",{"2":{"65":1}}],["permutation",{"2":{"77":1}}],["permute",{"2":{"75":1}}],["permutedims",{"2":{"27":1,"34":1}}],["permuting",{"2":{"17":2}}],["periods",{"2":{"43":1}}],["perform",{"2":{"27":1}}],["performace",{"2":{"14":1}}],["performance",{"0":{"26":1,"78":1},"2":{"4":3,"57":1}}],["performed",{"2":{"4":1}}],["pi",{"2":{"17":2}}],["pick",{"2":{"13":2}}],["pixels",{"2":{"5":1}}],["push",{"2":{"13":2}}],["put",{"2":{"11":1}}],["planned",{"2":{"75":1,"78":1}}],["play",{"2":{"33":1}}],["placed",{"2":{"17":1}}],["place",{"2":{"13":1,"17":1,"21":1}}],["places",{"2":{"13":1,"75":2}}],["please",{"2":{"4":1,"21":1}}],["plus",{"2":{"4":1}}],["plotted",{"2":{"4":1,"7":1,"9":1,"10":1}}],["plotting",{"2":{"0":1}}],["plots",{"0":{"74":1},"2":{"3":1,"13":2,"74":2,"75":2}}],["plot",{"2":{"0":2,"2":2,"74":2,"75":2}}],["powerful",{"2":{"63":1}}],["polygon",{"2":{"57":1}}],["position",{"2":{"10":2}}],["positions",{"2":{"4":1,"17":1}}],["possible",{"2":{"4":2,"5":1,"7":1,"21":1,"27":1,"74":1}}],["point",{"2":{"0":2,"4":2,"5":1,"9":1,"13":2,"15":1,"76":1}}],["points",{"2":{"0":7,"4":7,"5":12,"8":2,"9":4,"13":3,"15":2,"17":10,"33":2,"34":2,"49":9,"50":6,"51":1,"52":9,"53":1}}],["pr",{"2":{"21":1}}],["principles",{"2":{"42":1}}],["printing",{"2":{"34":1,"76":1}}],["print",{"2":{"19":2}}],["prior",{"2":{"17":2}}],["primariliy",{"2":{"3":1}}],["primitive",{"0":{"3":1}}],["process",{"2":{"66":1}}],["providing",{"2":{"57":1}}],["provides",{"2":{"41":1,"68":1,"79":1}}],["provided",{"2":{"4":5,"5":3,"8":1,"17":1,"76":1}}],["provide",{"2":{"0":1,"4":2}}],["projected",{"2":{"35":1,"57":1}}],["prod",{"2":{"27":1,"34":1}}],["product",{"2":{"16":2}}],["probably",{"2":{"18":1,"48":1}}],["problems",{"2":{"4":1}}],["property",{"2":{"18":1}}],["properties",{"0":{"72":1},"2":{"17":1}}],["programmatically",{"2":{"13":1}}],["pretty",{"2":{"22":1}}],["pre",{"2":{"17":1}}],["preserved",{"2":{"17":1}}],["present",{"2":{"5":1}}],["preceding",{"2":{"16":1}}],["precedence",{"2":{"0":1}}],["previously",{"2":{"17":1}}],["previous",{"2":{"3":1,"5":1}}],["packed",{"2":{"17":1}}],["packages",{"2":{"35":1,"42":1,"69":1,"74":1,"79":1}}],["package",{"2":{"4":1,"20":1,"58":1,"61":1,"63":1}}],["padding",{"2":{"15":1,"17":1}}],["past",{"2":{"13":1}}],["pass",{"2":{"11":1,"14":1}}],["passing",{"2":{"3":2,"4":1}}],["passed",{"2":{"0":1,"2":1,"3":4,"5":3,"13":2,"15":1,"17":4,"21":1,"39":1,"76":2}}],["part",{"2":{"19":1}}],["parent",{"2":{"13":1,"17":5,"21":2,"26":2}}],["parameters",{"2":{"3":1}}],["parameter",{"2":{"0":1,"11":1}}],["pair",{"2":{"11":1,"17":4}}],["pairs",{"2":{"11":1,"17":8}}],["l27",{"2":{"17":1}}],["l2",{"2":{"17":1}}],["l29",{"2":{"15":1}}],["l89",{"2":{"15":1}}],["lazily",{"2":{"79":1}}],["lazy",{"2":{"16":1}}],["largest",{"2":{"77":1,"79":1}}],["large",{"2":{"58":1}}],["larger",{"2":{"33":1,"34":1}}],["last",{"2":{"51":1}}],["lastindex",{"2":{"27":1}}],["laptop",{"2":{"34":1}}],["language",{"2":{"21":1}}],["layermetadata",{"2":{"19":1,"40":1}}],["layerdims",{"2":{"19":1,"40":1}}],["layernames=nothing",{"2":{"16":1}}],["layered",{"2":{"14":2}}],["layer",{"2":{"14":5,"17":3,"21":2,"25":1,"77":3,"79":2}}],["layersfrom=dim",{"2":{"16":1}}],["layersfrom=nothing",{"2":{"16":1}}],["layersfrom",{"2":{"16":1}}],["layers",{"2":{"14":9,"16":1,"17":6,"77":8,"78":2,"79":2}}],["labels",{"2":{"75":1}}],["labels=x",{"2":{"50":2}}],["labelled",{"2":{"24":1,"74":1}}],["labelling",{"2":{"13":1}}],["label",{"2":{"0":1,"2":5,"22":1,"24":1}}],["line",{"2":{"74":1}}],["linear",{"2":{"13":1}}],["linearmap",{"2":{"4":1}}],["limitations",{"2":{"21":1}}],["library",{"2":{"17":1}}],["listed",{"2":{"8":1}}],["little",{"2":{"5":1}}],["lies",{"2":{"14":2}}],["lie",{"2":{"5":1}}],["likely",{"2":{"4":1,"19":2}}],["like",{"2":{"0":1,"3":2,"4":6,"5":2,"13":2,"14":1,"15":3,"17":3,"18":1,"22":1,"25":3,"27":1,"37":1,"57":1,"76":1,"77":1}}],["legend",{"2":{"74":1}}],["let",{"2":{"52":2}}],["letting",{"2":{"22":1}}],["lets",{"2":{"11":1,"18":1,"26":1,"42":2,"49":1}}],["left",{"2":{"19":1,"47":1}}],["leans",{"2":{"21":1}}],["leaveing",{"2":{"27":1}}],["leave",{"2":{"13":1}}],["leaves",{"2":{"3":1}}],["leap",{"2":{"4":1}}],["least",{"2":{"3":1,"13":1,"17":2,"19":2}}],["level",{"2":{"3":2}}],["length=365",{"2":{"42":1}}],["lengths",{"2":{"3":1,"13":1,"16":2}}],["length",{"2":{"0":1,"3":6,"4":5,"8":1,"13":6,"16":4,"19":1,"24":2,"37":1,"79":1}}],["lt",{"2":{"0":9,"1":2,"3":4,"5":1,"10":1,"38":3,"66":1,"68":1}}],["lot",{"2":{"75":1}}],["log",{"2":{"15":1}}],["look",{"2":{"42":1}}],["lookupdim",{"2":{"17":1}}],["lookupcomponent",{"2":{"17":1}}],["lookuparraytrait",{"2":{"6":1,"7":1,"8":1,"9":1,"10":1,"17":1}}],["lookuparrays",{"0":{"4":1,"76":1},"1":{"5":1,"6":1,"7":1,"8":1,"9":1,"10":1,"11":1},"2":{"2":1,"3":2,"4":33,"5":10,"6":1,"7":6,"8":5,"9":3,"10":5,"11":3,"13":1,"17":2,"22":1,"76":11}}],["lookuparray",{"0":{"6":1},"1":{"7":1,"8":1,"9":1,"10":1},"2":{"2":1,"3":1,"4":24,"6":1,"7":6,"17":7,"24":1,"35":1,"37":1,"40":1,"76":3}}],["lookups",{"0":{"73":1},"2":{"0":1,"2":1,"4":3,"5":1,"22":1,"37":1,"57":1,"76":2}}],["lookup",{"0":{"70":1,"72":1},"1":{"71":1,"72":1,"73":1},"2":{"0":6,"2":1,"3":1,"4":11,"5":1,"6":1,"9":1,"10":6,"13":8,"15":2,"17":4,"24":1,"25":1,"35":2,"76":4,"77":1}}],["looping",{"2":{"79":1}}],["loop",{"2":{"13":1,"79":1}}],["loosely",{"2":{"6":1}}],["localhost",{"2":{"76":1}}],["locations",{"2":{"13":1}}],["location",{"2":{"9":1,"13":4}}],["located",{"2":{"5":1}}],["loci",{"0":{"10":1},"2":{"5":1}}],["locus",{"2":{"0":1,"4":13,"5":2,"9":3,"10":6}}],["long",{"2":{"38":1,"39":1,"78":1}}],["longitudes",{"2":{"4":1}}],["longer",{"2":{"3":1,"4":1}}],["lowerbound",{"2":{"8":1}}],["lower",{"2":{"5":1,"8":1}}],["low",{"2":{"3":1}}],["loading",{"2":{"0":1}}],["load",{"2":{"0":1,"4":1,"42":1,"57":1,"68":1}}],["csv",{"2":{"79":1}}],["cryogridoutput",{"2":{"65":1}}],["cryogrid",{"0":{"65":1},"2":{"65":2}}],["crs",{"2":{"57":1}}],["creates",{"2":{"13":1}}],["create",{"2":{"4":2,"13":8,"17":3,"21":1,"42":1,"48":1}}],["created",{"2":{"0":1}}],["creating",{"2":{"0":1,"13":1,"50":1}}],["ci",{"2":{"21":2,"33":1}}],["climate",{"2":{"59":1}}],["climatebase",{"0":{"59":1},"2":{"59":1}}],["clos",{"2":{"51":1}}],["closest",{"2":{"76":1}}],["closely",{"2":{"58":1}}],["close",{"2":{"19":3,"52":1}}],["closed`",{"2":{"76":1}}],["closed",{"2":{"5":3,"51":18,"52":17}}],["clashes",{"2":{"0":1,"5":1}}],["cycling",{"2":{"4":1}}],["cyclical",{"2":{"76":1}}],["cyclic",{"2":{"4":5}}],["cycle=24",{"2":{"50":1}}],["cycle=12",{"2":{"50":1}}],["cycled",{"2":{"4":3}}],["cycle",{"2":{"4":9}}],["cua2",{"2":{"21":1}}],["cua",{"2":{"21":2}}],["cuarray",{"2":{"17":1,"21":1}}],["cuda",{"0":{"21":1},"2":{"21":2}}],["currently",{"2":{"21":1}}],["current",{"2":{"4":1,"13":1}}],["curresponding",{"2":{"4":3}}],["customization",{"0":{"70":1},"1":{"71":1,"72":1,"73":1}}],["custom=dd",{"2":{"17":1}}],["custom=10",{"2":{"17":1}}],["custom",{"0":{"54":1,"72":1},"2":{"0":4,"3":1,"16":2,"17":9,"21":1,"35":2}}],["center",{"2":{"5":5,"9":2,"10":4}}],["central",{"2":{"0":1}}],["cellular",{"2":{"66":1}}],["cells",{"2":{"9":1,"10":1,"76":1}}],["cell",{"2":{"3":1,"5":1,"10":3}}],["choose",{"2":{"39":1,"74":1}}],["chosen",{"2":{"2":1}}],["chunked",{"2":{"34":1}}],["chunksize=",{"2":{"33":1}}],["child",{"2":{"17":1}}],["changing",{"2":{"4":1,"17":1}}],["changes",{"2":{"19":1}}],["change",{"2":{"3":1,"4":4,"17":5}}],["changed",{"2":{"3":1}}],["characters",{"2":{"13":1}}],["char",{"2":{"0":7,"3":1,"4":1,"15":1}}],["check=true",{"2":{"3":1}}],["check",{"2":{"1":2,"3":1,"4":1,"5":1,"15":1,"20":1}}],["cairomakie",{"2":{"75":1}}],["cartesianindex",{"2":{"25":2}}],["cartesianindices",{"2":{"15":4,"25":1}}],["cat",{"2":{"17":9,"27":1}}],["categorises",{"2":{"11":1}}],["categories",{"2":{"4":3,"76":1}}],["categorical",{"2":{"0":4,"3":2,"4":8,"5":3,"13":3,"15":1,"17":1,"75":1,"76":1}}],["calulations",{"2":{"34":1}}],["calculated",{"2":{"16":1}}],["call",{"2":{"17":1,"19":1}}],["calling",{"2":{"17":1,"38":1}}],["calls",{"2":{"13":1,"40":1}}],["called",{"2":{"3":2,"21":1}}],["captions",{"2":{"13":1}}],["capable",{"2":{"4":1}}],["cases",{"2":{"35":1,"37":1}}],["case",{"2":{"13":1,"17":2,"27":1}}],["caution",{"2":{"5":1}}],["cannot",{"2":{"7":1,"13":1}}],["can",{"0":{"42":1},"1":{"43":1,"44":1,"45":1,"46":1,"47":1,"48":1},"2":{"0":2,"1":3,"2":1,"3":7,"4":19,"5":3,"10":1,"11":1,"13":8,"14":2,"15":3,"16":1,"17":8,"22":4,"24":5,"25":7,"27":3,"35":1,"39":1,"40":1,"42":1,"47":1,"48":3,"49":1,"50":2,"76":2,"78":1}}],["c",{"2":{"0":7,"3":2,"4":2,"13":6,"15":2,"17":5,"25":6,"52":1,"74":1,"75":1}}],["cover",{"2":{"41":1}}],["cov",{"2":{"27":1}}],["cor",{"2":{"27":1}}],["correct",{"2":{"4":2,"5":1,"10":1,"21":1}}],["corresponding",{"2":{"10":3,"16":2,"24":1}}],["correspond",{"2":{"3":1}}],["cost",{"2":{"26":1}}],["copyto",{"2":{"17":1}}],["copy",{"2":{"17":10}}],["code",{"2":{"14":2,"19":2,"21":1}}],["coded",{"2":{"6":1}}],["count",{"2":{"34":1}}],["counted",{"2":{"5":1}}],["could",{"2":{"5":1,"52":1}}],["confusing",{"2":{"39":1}}],["confused",{"2":{"5":1}}],["consecutive",{"2":{"25":2}}],["consistency",{"2":{"77":1}}],["consistent",{"2":{"25":1}}],["considered",{"2":{"13":1}}],["constraint",{"2":{"25":1}}],["construct",{"2":{"16":1,"17":1,"24":1}}],["constructors",{"2":{"13":1}}],["constructor",{"2":{"4":1,"14":1,"21":1}}],["constructionbase",{"2":{"17":1,"39":2}}],["construction",{"2":{"4":1,"10":1}}],["constructed",{"2":{"3":1,"4":1,"14":1,"24":1,"36":1}}],["constant",{"2":{"13":1}}],["const",{"2":{"5":1,"17":1,"42":1}}],["concatenate",{"2":{"17":5}}],["concern",{"2":{"13":1}}],["concrete",{"2":{"0":1,"1":2,"3":3,"4":2,"13":1,"14":1}}],["converging",{"2":{"58":1}}],["conversion",{"2":{"11":1}}],["converrsions",{"2":{"10":1}}],["convertable",{"2":{"21":1}}],["converted",{"2":{"3":2,"4":1,"16":1,"21":1}}],["converts",{"2":{"2":1,"21":1}}],["convert",{"2":{"2":1,"3":2,"4":1,"21":1}}],["contents",{"2":{"11":1}}],["contexts",{"2":{"4":3}}],["context",{"2":{"3":1,"4":1,"13":1}}],["containing",{"2":{"13":1,"17":1}}],["contain",{"2":{"5":2,"17":2}}],["contained",{"2":{"4":2,"5":1,"15":1}}],["contains",{"2":{"1":1,"4":3,"5":9,"17":1,"76":2}}],["conatining",{"2":{"3":1}}],["column",{"2":{"16":5}}],["columns",{"2":{"1":1,"8":1,"13":1,"16":4,"79":2}}],["colormap=",{"2":{"75":1}}],["color",{"2":{"15":1,"17":1}}],["colons",{"2":{"25":1}}],["colon",{"2":{"0":3,"2":2,"3":1,"14":1,"17":1}}],["collected",{"2":{"79":1}}],["collect",{"2":{"13":1,"25":1}}],["collection",{"2":{"13":3,"17":3,"77":1}}],["coords",{"2":{"17":2}}],["coordinatetransformations",{"2":{"4":2}}],["coordinate",{"2":{"0":1,"35":1}}],["coord",{"2":{"0":10}}],["com",{"2":{"15":1,"17":1,"69":1}}],["combinations",{"2":{"15":2}}],["combines",{"2":{"5":1}}],["combined",{"2":{"4":1,"15":1,"17":1,"25":2}}],["combinedims",{"2":{"3":1}}],["combine",{"2":{"3":1,"16":1,"49":1,"52":1}}],["combining",{"2":{"0":1,"51":1}}],["compilation",{"2":{"78":1}}],["compiler",{"2":{"78":1}}],["compile",{"2":{"0":1,"78":1}}],["compatible",{"2":{"16":1}}],["compat",{"2":{"13":1,"17":4}}],["comparing",{"2":{"3":1}}],["comparisons",{"2":{"3":2}}],["compare",{"2":{"3":6}}],["compared",{"2":{"3":1}}],["comparedims",{"2":{"3":4}}],["completely",{"2":{"24":1}}],["complexf64",{"2":{"13":2}}],["complexity",{"2":{"13":2}}],["complex",{"2":{"13":1}}],["complicated",{"2":{"5":1}}],["comprehensions",{"2":{"13":1}}],["comprehension",{"2":{"13":1}}],["commonly",{"2":{"4":1,"13":1}}],["commondims",{"2":{"3":5}}],["common",{"2":{"0":2,"4":1,"13":1,"42":1,"57":1,"76":1}}],["zip",{"2":{"17":1}}],["z=dd",{"2":{"17":1}}],["z=",{"2":{"17":1}}],["zero",{"2":{"13":2,"17":1}}],["zeros",{"2":{"0":1,"13":13,"17":3,"24":2}}],["zdim",{"2":{"0":3}}],["z",{"2":{"0":11,"1":7,"3":4,"13":1,"17":12,"22":1,"25":7,"27":2,"75":1}}],["yaxarrays",{"0":{"58":1},"2":{"58":1}}],["yaxarray",{"2":{"35":1,"58":1}}],["y=1",{"2":{"34":1}}],["y=dimarray",{"2":{"17":1}}],["yet",{"2":{"10":1,"25":4}}],["yearday",{"2":{"48":1,"50":2}}],["yearhour",{"2":{"48":2,"52":4}}],["yearmonth",{"0":{"48":1},"2":{"48":1,"51":2}}],["year",{"2":{"4":4,"48":2,"49":1,"52":1}}],["years",{"0":{"51":1},"2":{"4":3,"51":2}}],["yourdimarray",{"2":{"39":1}}],["your",{"2":{"5":1,"17":1,"39":2,"40":2}}],["you",{"2":{"4":2,"5":1,"16":1,"17":2,"19":2,"22":1,"27":2,"39":1,"40":1,"48":1}}],["ydim",{"2":{"0":3}}],["y",{"2":{"0":20,"1":8,"3":10,"4":9,"5":15,"13":15,"14":2,"15":9,"16":2,"17":11,"21":1,"22":1,"24":4,"25":7,"26":3,"27":5,"33":2,"34":2,"75":2}}],["x+7",{"2":{"52":1}}],["x2",{"2":{"17":3}}],["x26",{"2":{"15":2,"17":2}}],["x1",{"2":{"17":3}}],["x=>",{"2":{"52":1}}],["x=1",{"2":{"34":2}}],["x=3",{"2":{"24":1}}],["x=dimarray",{"2":{"17":1}}],["x=all",{"2":{"5":1}}],["xs",{"2":{"2":1,"3":2,"4":6,"13":2,"16":1}}],["xdim",{"2":{"0":3}}],["x3c",{"2":{"0":11,"3":1,"4":12,"5":9,"7":6,"8":4,"9":3,"10":4,"11":2,"13":2,"14":1,"15":13,"16":4,"17":11,"18":2,"19":2,"26":2}}],["x",{"2":{"0":19,"1":20,"2":5,"3":26,"4":31,"5":30,"11":5,"13":41,"14":3,"15":12,"16":5,"17":26,"21":1,"22":2,"24":3,"25":14,"26":3,"27":5,"33":3,"34":3,"39":1,"48":6,"49":3,"50":2,"52":5,"74":1,"75":3,"76":9}}],["ie",{"2":{"34":1}}],["io",{"2":{"19":10}}],["i>function",{"2":{"17":1}}],["i>",{"2":{"15":1,"17":1}}],["i>type",{"2":{"15":1}}],["ignoring",{"2":{"13":1}}],["ignore",{"2":{"3":2,"22":1,"39":1,"75":1}}],["ignored",{"2":{"3":1}}],["images",{"2":{"68":1}}],["immutable",{"2":{"13":1,"17":1,"21":1,"39":1}}],["improve",{"2":{"78":1}}],["implements",{"2":{"79":1}}],["implemented",{"2":{"38":1}}],["implement",{"2":{"14":1,"39":1,"79":1}}],["implementation",{"2":{"4":2,"14":1,"65":1}}],["implementations",{"2":{"0":1}}],["important",{"2":{"4":3}}],["id=",{"2":{"15":1,"17":1}}],["idiom",{"2":{"13":1}}],["identical",{"2":{"4":2,"11":1,"77":1}}],["irrigular",{"2":{"8":1}}],["irregular",{"2":{"4":3,"5":2,"8":4,"17":2,"49":7,"50":5,"51":2,"52":3}}],["i",{"0":{"54":1},"2":{"2":2,"3":3,"15":1,"34":1,"37":1,"51":1,"52":1}}],["if",{"2":{"1":2,"2":3,"3":5,"4":8,"5":3,"11":1,"13":1,"14":1,"15":2,"17":12,"21":1,"27":1,"34":1,"37":1,"39":1,"52":1,"75":1,"77":2}}],["isbits",{"2":{"21":1}}],["isa",{"2":{"14":1,"16":1}}],["isapprox",{"2":{"5":1}}],["issue",{"2":{"4":1}}],["is",{"0":{"34":1},"2":{"0":4,"1":3,"2":1,"3":17,"4":33,"5":8,"6":1,"7":3,"8":2,"10":4,"13":18,"14":3,"15":1,"16":3,"17":20,"18":3,"19":2,"21":3,"22":2,"25":1,"27":1,"33":1,"34":1,"35":2,"38":2,"39":5,"50":1,"51":2,"57":4,"58":3,"61":2,"63":1,"66":1,"68":1,"74":2,"75":1,"77":2,"78":1,"79":1}}],["iterable",{"2":{"17":1}}],["iterates",{"2":{"17":2}}],["iterate",{"2":{"15":1}}],["iterators",{"2":{"17":1}}],["iterator",{"2":{"14":2,"17":1}}],["iteration",{"2":{"13":1,"14":2}}],["its",{"2":{"10":3,"13":2,"17":3,"21":1,"35":1,"58":1,"63":1}}],["itself",{"2":{"0":1,"13":2}}],["it",{"2":{"0":1,"3":3,"4":11,"5":3,"7":1,"11":1,"13":2,"14":2,"15":1,"16":1,"17":5,"18":2,"19":1,"21":1,"22":3,"25":2,"26":1,"27":3,"33":1,"37":1,"38":1,"39":1,"49":1,"52":2,"57":1,"58":1,"63":1,"75":1,"76":1,"77":1}}],["inferno",{"2":{"75":1}}],["information",{"2":{"0":1,"4":3,"13":1}}],["invalid",{"2":{"25":1}}],["inverse",{"2":{"17":1}}],["inclusively",{"2":{"76":1}}],["including",{"2":{"7":1}}],["includes",{"2":{"76":1}}],["included",{"2":{"3":1,"5":1}}],["include",{"2":{"2":1,"3":2,"5":1,"19":1,"53":1}}],["incorporate",{"2":{"52":1}}],["increased",{"2":{"17":1}}],["inbuilt",{"2":{"17":1}}],["initially",{"2":{"14":2}}],["inner",{"2":{"13":1,"17":2,"19":1}}],["innaccurate",{"2":{"8":1}}],["instantly",{"2":{"34":1}}],["installed",{"2":{"20":1}}],["installation",{"0":{"20":1}}],["instead",{"2":{"5":1,"7":1,"11":1,"13":2,"75":1}}],["inside",{"2":{"5":1,"25":1,"76":1}}],["inputs",{"2":{"38":1}}],["input",{"2":{"3":1,"5":1,"8":1,"17":3,"53":1}}],["individual",{"2":{"15":1}}],["indicate",{"2":{"5":1,"10":1,"27":1}}],["indicates",{"2":{"4":2,"7":3,"9":1,"10":4,"11":1}}],["indicating",{"2":{"4":5}}],["indices",{"2":{"2":2,"5":4,"13":1,"15":3,"17":2,"22":1,"76":7}}],["indes",{"2":{"5":1}}],["independent",{"2":{"0":1,"4":1,"13":1}}],["independentdim",{"2":{"0":5}}],["indexable",{"2":{"13":1}}],["index=autoindex",{"2":{"4":1}}],["indexes",{"2":{"4":1,"77":1}}],["indexed",{"2":{"4":2,"14":2}}],["indexing",{"0":{"25":1,"26":1},"2":{"0":2,"4":4,"13":3,"14":2,"24":1,"25":7,"26":1,"57":1,"76":1,"77":2,"78":2}}],["index",{"2":{"0":5,"2":1,"3":3,"4":28,"5":7,"6":1,"7":4,"8":4,"9":2,"10":5,"13":6,"14":2,"15":4,"16":2,"17":5,"22":1,"24":2,"25":4,"34":1,"76":4}}],["inherits",{"2":{"58":1}}],["inherit",{"2":{"1":1,"22":1}}],["int8",{"2":{"13":2}}],["intselectors",{"2":{"5":1}}],["intselector",{"2":{"5":4}}],["integrations",{"0":{"55":1},"1":{"56":1,"57":1,"58":1,"59":1,"60":1,"61":1,"62":1,"63":1,"64":1,"65":1,"66":1,"67":1,"68":1,"69":1}}],["integration",{"2":{"33":1}}],["integers",{"2":{"13":1,"17":1,"42":1}}],["integer",{"2":{"3":1,"13":4,"17":2,"38":1}}],["intended",{"2":{"5":1}}],["interop",{"2":{"79":1}}],["interpreted",{"2":{"13":1}}],["interact",{"2":{"5":1}}],["intermediate",{"2":{"5":1}}],["interface",{"0":{"16":1,"19":1},"2":{"3":1,"19":2,"35":1,"79":2}}],["internal",{"0":{"19":1},"2":{"3":1,"17":1}}],["interval",{"2":{"0":1,"4":5,"5":10,"8":1,"9":2,"10":1,"51":4,"52":3,"76":3}}],["intervalsets",{"2":{"5":1,"51":2,"52":2}}],["intervals",{"2":{"0":1,"4":13,"5":10,"8":3,"9":4,"10":1,"51":2,"52":1}}],["int",{"2":{"1":4,"2":2,"3":3,"5":1,"13":1,"14":2,"16":3,"22":1,"25":2,"27":1,"38":1,"50":1,"76":5}}],["int64",{"2":{"0":3,"4":3,"5":14,"13":2,"15":6,"16":2,"17":28,"25":2,"34":1,"43":1,"44":1,"45":1,"46":1,"48":4,"49":11,"50":9,"51":3,"52":6}}],["into",{"2":{"0":2,"4":3,"15":1,"16":1,"17":2,"21":2,"22":2,"25":1,"65":1,"75":1}}],["in",{"0":{"24":1},"2":{"0":5,"1":3,"2":1,"3":13,"4":12,"5":9,"7":3,"8":2,"9":1,"10":3,"13":8,"14":6,"15":4,"16":1,"17":33,"18":1,"21":2,"22":1,"24":1,"25":3,"27":4,"33":2,"34":1,"35":2,"37":1,"39":2,"40":2,"48":1,"50":1,"74":1,"75":3,"76":6,"77":3,"78":1,"79":1}}],["http",{"2":{"76":1}}],["https",{"2":{"15":1,"17":1,"69":1}}],["hundreds",{"2":{"79":1}}],["huge",{"2":{"33":2}}],["humidity",{"2":{"17":6}}],["histogram",{"2":{"26":2}}],["higher",{"2":{"17":1}}],["hvncat",{"2":{"17":1}}],["hvcat",{"2":{"17":1}}],["hcat",{"2":{"17":2}}],["href=",{"2":{"15":1,"17":1}}],["heatmap",{"2":{"75":1}}],["helper",{"2":{"50":1}}],["here",{"2":{"14":1,"17":1,"27":1,"49":1,"75":1}}],["heirarchy",{"2":{"0":1}}],["happen",{"2":{"34":1}}],["happens",{"2":{"34":1}}],["had",{"2":{"21":1}}],["having",{"2":{"17":1}}],["have",{"2":{"0":3,"4":3,"8":2,"13":1,"14":2,"16":1,"17":7,"25":1,"35":1,"36":1,"37":1,"39":1,"52":1,"75":1,"77":1}}],["hard",{"2":{"6":1}}],["haskey",{"2":{"11":2}}],["hasselection",{"2":{"4":2}}],["hasn",{"2":{"2":1}}],["has",{"2":{"1":1,"3":2,"4":1,"11":1,"13":2,"14":1,"17":3,"21":2,"24":1,"26":1,"27":1,"37":1,"39":2}}],["hasdim",{"2":{"1":6}}],["hopefully",{"2":{"78":1}}],["however",{"2":{"5":1,"17":1}}],["how",{"0":{"30":1,"31":1,"34":1},"2":{"4":2,"7":2,"22":1,"42":1,"51":1,"52":2}}],["hold",{"2":{"17":1,"37":1,"76":1}}],["holds",{"2":{"0":1,"4":4,"14":1,"33":1,"76":1}}],["holding",{"2":{"0":1,"1":1,"2":1,"8":1,"13":8}}],["hourly",{"2":{"52":1}}],["hours",{"2":{"50":1,"52":1}}],["hour12",{"2":{"49":1}}],["hour",{"0":{"43":1},"2":{"0":1,"42":3,"43":1,"48":1,"49":1,"50":1,"52":4,"53":1}}],["join",{"2":{"50":1}}],["jarring",{"2":{"14":2}}],["juia",{"2":{"65":1}}],["jump",{"0":{"63":1},"2":{"63":1}}],["just",{"2":{"4":2,"5":2,"17":1,"22":2,"34":1,"37":1,"39":1,"50":2,"76":1}}],["juliahub",{"2":{"69":1}}],["juliahasselection",{"2":{"4":1}}],["juliahasdim",{"2":{"1":1}}],["juliagb",{"2":{"34":2}}],["juliamakie",{"2":{"75":1}}],["juliamap",{"2":{"14":1,"17":2}}],["juliamodify",{"2":{"17":1}}],["juliamergedims",{"2":{"17":3}}],["juliamergedlookup",{"2":{"4":1}}],["juliamean",{"2":{"14":1}}],["juliametadata",{"2":{"11":1,"13":1}}],["julia",{"2":{"13":2,"15":1,"17":9,"19":2,"21":2,"27":1,"61":1,"78":1,"79":1}}],["juliarand",{"2":{"13":1}}],["juliareorder",{"2":{"17":1}}],["juliarebuild",{"2":{"17":1,"19":1,"39":1}}],["juliaregular",{"2":{"8":1}}],["juliareverseordered",{"2":{"7":1}}],["juliarefdims",{"2":{"3":1,"13":1}}],["juliareducedims",{"2":{"3":1}}],["juliafill",{"2":{"13":1}}],["juliaforwardordered",{"2":{"7":1}}],["juliaformat",{"2":{"2":1}}],["juliaeachslice",{"2":{"17":1}}],["juliaend",{"2":{"10":1}}],["juliaexplicit",{"2":{"8":1}}],["juliapoints",{"2":{"9":1}}],["juliairregular",{"2":{"8":1}}],["juliaintervals",{"2":{"9":1}}],["juliaintselector",{"2":{"5":1}}],["juliaindex",{"2":{"4":1}}],["juliaindependentdim",{"2":{"0":1}}],["juliawhere",{"2":{"5":1}}],["julianame",{"2":{"13":1,"18":1}}],["julianoname",{"2":{"18":1}}],["julianometadata",{"2":{"11":1}}],["julianolookup",{"2":{"4":1}}],["julianear",{"2":{"5":1}}],["juliaones",{"2":{"13":1}}],["juliaordered",{"2":{"7":1}}],["juliaorder",{"2":{"4":1,"7":1}}],["juliaotherdims",{"2":{"1":1}}],["juliabroadcast",{"2":{"17":2}}],["juliabetween",{"2":{"5":1}}],["juliabounds",{"2":{"4":1}}],["juliabase",{"2":{"13":4,"17":5}}],["juliabasedims",{"2":{"3":1}}],["juliabasetypeof",{"2":{"3":1}}],["juliaval",{"2":{"4":1}}],["juliatouches",{"2":{"5":1}}],["juliatransformed",{"2":{"4":1}}],["juliatimedim",{"2":{"0":2}}],["juliaunmergedims",{"2":{"17":2}}],["juliaunordered",{"2":{"7":1}}],["juliaunaligned",{"2":{"4":1}}],["juliausing",{"2":{"0":3,"3":2,"4":6,"5":7,"13":1,"20":1,"21":1,"22":1,"26":1,"27":1,"33":1,"42":1,"75":1}}],["juliacat",{"2":{"17":1}}],["juliacategorical",{"2":{"4":1}}],["juliacenter",{"2":{"10":1}}],["juliacyclic",{"2":{"4":1}}],["juliacopy",{"2":{"17":3}}],["juliacontains",{"2":{"5":1}}],["juliacombinedims",{"2":{"3":1}}],["juliacomparedims",{"2":{"3":1}}],["juliacommondims",{"2":{"3":1}}],["juliacoord",{"2":{"0":1}}],["juliaa",{"2":{"17":1}}],["juliaall",{"2":{"5":1}}],["juliaaligned",{"2":{"4":1}}],["juliaat",{"2":{"5":1}}],["juliaarrayselector",{"2":{"5":1}}],["juliaautolocus",{"2":{"10":1}}],["juliaautolookup",{"2":{"4":1}}],["juliaautospan",{"2":{"8":1}}],["juliaautoorder",{"2":{"7":1}}],["juliaautoindex",{"2":{"4":1}}],["juliaabstractname",{"2":{"18":1}}],["juliaabstractdimtable",{"2":{"16":1}}],["juliaabstractdimstack",{"2":{"14":1}}],["juliaabstractdimarray",{"2":{"13":1}}],["juliaabstractmetadata",{"2":{"11":1}}],["juliaabstractcategorical",{"2":{"4":1}}],["juliaabstractcyclic",{"2":{"4":1}}],["juliaabstractsampled",{"2":{"4":1}}],["juliaanondim",{"2":{"0":1}}],["julialocus",{"2":{"4":1}}],["julialookuparraytrait",{"2":{"6":1}}],["julialookuparray",{"2":{"4":1}}],["julialookuparrays",{"2":{"4":1}}],["julialabel",{"2":{"2":1}}],["juliashow",{"2":{"19":2}}],["juliashiftlocus",{"2":{"4":1}}],["juliastart",{"2":{"10":1}}],["juliaspan",{"2":{"4":1,"8":1}}],["juliasampling",{"2":{"4":1,"9":1}}],["juliasampled",{"2":{"4":1}}],["juliaset",{"2":{"17":1}}],["juliasetdims",{"2":{"3":1}}],["juliaselector",{"2":{"5":1}}],["juliaselectindices",{"2":{"2":1}}],["juliasortdims",{"2":{"3":1}}],["juliaslicedims",{"2":{"3":1}}],["juliaswapdims",{"2":{"3":1}}],["juliakey2dim",{"2":{"3":1}}],["julia>",{"2":{"0":5,"1":10,"3":4,"13":26,"14":8,"15":2,"16":1,"17":16,"24":1}}],["juliajulia>",{"2":{"0":1,"1":3,"3":1,"13":7,"14":1,"16":1,"17":10,"24":5,"25":7,"26":3,"27":5,"42":1,"43":1,"44":1,"45":1,"46":1,"48":2,"49":8,"50":7,"51":2,"52":7,"53":1}}],["juliazeros",{"2":{"13":1}}],["juliaz",{"2":{"0":1}}],["juliazdim",{"2":{"0":2}}],["juliayearday",{"2":{"48":1}}],["juliay",{"2":{"0":1}}],["juliaydim",{"2":{"0":2}}],["juliadiska",{"2":{"34":1}}],["juliadimb",{"2":{"34":2}}],["juliadimcolumn",{"2":{"16":1}}],["juliadimtable",{"2":{"16":1}}],["juliadimindices",{"2":{"15":1}}],["juliadimarray",{"2":{"13":1}}],["juliadim2key",{"2":{"3":1}}],["juliadimnum",{"2":{"1":1}}],["juliadimstack",{"2":{"14":1}}],["juliadimstride",{"2":{"3":1}}],["juliadimsmatch",{"2":{"3":1}}],["juliadims2indices",{"2":{"2":1}}],["juliadims",{"2":{"1":1,"13":1}}],["juliadim",{"2":{"0":1}}],["juliadimension",{"2":{"0":1}}],["juliadependentdim",{"2":{"0":1}}],["juliaxdim",{"2":{"0":2}}],["juliax",{"2":{"0":3}}],["j",{"2":{"3":2}}],["jldoctest",{"2":{"17":1}}],["jl",{"0":{"16":2,"57":1,"58":1,"59":1,"61":1,"63":1,"65":1,"66":1,"68":1,"69":1,"74":1,"75":1},"2":{"0":2,"4":5,"5":1,"15":2,"16":2,"17":3,"19":4,"21":8,"22":1,"33":2,"35":1,"36":1,"37":2,"39":3,"41":1,"57":3,"58":4,"59":1,"61":1,"63":1,"65":1,"66":2,"68":1,"69":1,"74":4,"75":2,"76":2,"79":5}}],["small",{"2":{"77":1}}],["slowly",{"2":{"58":1}}],["slicing",{"2":{"3":1}}],["sliced",{"2":{"14":1,"17":1}}],["slicedims",{"2":{"3":2,"13":1}}],["slice",{"2":{"3":1,"13":1,"17":3}}],["slices",{"2":{"0":1,"3":1,"13":1,"17":10}}],["synchronisation",{"2":{"66":1}}],["symmetry",{"2":{"22":1}}],["symbol",{"2":{"1":1,"2":1,"3":7,"4":8,"13":11,"14":7,"16":1,"17":6,"18":3,"38":2,"49":7,"50":6,"51":2,"52":4,"53":1,"79":1}}],["symbols",{"2":{"0":1,"1":1,"2":1,"3":2,"4":5,"13":3,"21":1,"24":1,"27":1}}],["system",{"2":{"21":1,"35":1}}],["scalars",{"2":{"77":1}}],["scalar",{"2":{"77":1}}],["sciences",{"0":{"56":1},"1":{"57":1,"58":1,"59":1}}],["schema",{"2":{"16":1}}],["scope",{"2":{"0":1,"4":1,"22":1}}],["src",{"2":{"15":1,"17":10}}],["save",{"2":{"57":1}}],["saving",{"2":{"11":2}}],["say",{"2":{"52":2}}],["samples",{"2":{"9":1,"26":2}}],["sampled",{"2":{"0":7,"4":16,"5":8,"9":1,"13":3,"15":1,"17":11,"33":2,"34":2,"35":1,"49":9,"50":6,"51":2,"52":9,"53":1,"76":1}}],["sampling=dd",{"2":{"5":2}}],["sampling=intervals",{"2":{"4":2}}],["sampling=points",{"2":{"4":2}}],["sampling",{"0":{"9":1},"2":{"0":1,"3":1,"4":15,"5":1,"8":1,"9":6,"17":1,"40":1,"53":1}}],["same",{"2":{"0":2,"3":3,"4":1,"5":2,"11":1,"13":7,"15":2,"17":8,"25":1,"26":1,"27":1,"37":2,"39":1,"42":1,"49":1,"51":1,"52":1,"74":1,"77":2,"79":1}}],["shelljulia>",{"2":{"20":2}}],["sharing",{"2":{"14":1}}],["shares",{"2":{"17":1}}],["share",{"2":{"14":1,"77":1}}],["shift",{"2":{"4":2}}],["shiftlocus",{"2":{"4":1}}],["shorthand",{"2":{"13":1}}],["show",{"2":{"19":9,"76":1}}],["shows",{"2":{"13":1}}],["shown",{"2":{"2":1,"24":1}}],["should",{"2":{"2":1,"5":1,"13":1,"17":3,"21":1,"34":1,"37":1,"38":1,"39":1,"53":1}}],["swapping",{"2":{"17":1}}],["swap",{"2":{"3":1}}],["swapdims",{"2":{"3":3}}],["special",{"2":{"17":1}}],["specify",{"2":{"13":1,"17":2,"22":1,"27":1}}],["specifying",{"2":{"4":1,"9":1}}],["specifing",{"2":{"76":1}}],["specifies",{"2":{"7":1,"18":1,"25":1}}],["specified",{"2":{"2":1,"3":1,"4":1,"13":5,"17":1}}],["specific",{"2":{"4":5,"6":1,"8":1,"9":1,"22":1}}],["space",{"2":{"17":2}}],["spacing",{"2":{"4":2}}],["span=regular",{"2":{"4":1}}],["span=autospan",{"2":{"4":2}}],["span",{"0":{"8":1},"2":{"4":15,"8":7,"40":1}}],["spatial",{"0":{"56":1},"1":{"57":1,"58":1,"59":1},"2":{"0":1,"57":1,"58":1,"66":2}}],["std",{"2":{"27":1}}],["storage",{"2":{"57":1}}],["stored",{"2":{"13":1,"77":1}}],["stop",{"2":{"17":1}}],["style",{"2":{"15":1,"17":1,"21":1,"76":1}}],["style=",{"2":{"15":1,"17":1}}],["still",{"2":{"11":1,"13":1,"21":1,"25":1}}],["status",{"2":{"20":1}}],["statistics",{"0":{"60":1},"2":{"14":2,"27":2,"42":1}}],["standard",{"2":{"17":1,"79":1}}],["standards",{"2":{"10":1}}],["stack",{"2":{"14":2,"17":12,"19":2,"77":3,"78":1,"79":1}}],["stacks",{"0":{"77":1},"2":{"14":1,"17":7,"78":1}}],["stable",{"2":{"3":1}}],["start=6",{"2":{"50":2}}],["start=12",{"2":{"50":1}}],["start=december",{"2":{"50":1}}],["starting",{"2":{"8":1}}],["start",{"2":{"0":2,"4":4,"5":3,"9":1,"10":4,"20":1,"51":1}}],["strongly",{"2":{"17":1}}],["stripped",{"2":{"21":1}}],["strides",{"2":{"79":1}}],["stride",{"2":{"3":2,"16":3}}],["strings",{"2":{"5":1}}],["string",{"2":{"2":4,"3":2,"4":2,"13":2,"50":1}}],["struct",{"2":{"3":1,"17":1}}],["step=12",{"2":{"50":1}}],["step=3",{"2":{"50":1}}],["step=hour",{"2":{"42":1}}],["step=autostep",{"2":{"8":1}}],["steprange",{"2":{"15":2}}],["step",{"2":{"3":1,"4":1,"8":2,"17":1}}],["side",{"2":{"51":1}}],["signature",{"2":{"39":1}}],["sits",{"2":{"25":1}}],["simulation",{"2":{"66":1}}],["simulations",{"0":{"64":1},"1":{"65":1,"66":1},"2":{"66":1}}],["simulate",{"2":{"33":1}}],["simulataneously",{"2":{"14":1}}],["simultaneously",{"2":{"17":1}}],["simpler",{"2":{"42":1}}],["simple",{"2":{"41":1,"49":1}}],["simply",{"2":{"4":1,"5":1,"11":1,"13":1,"19":1,"24":1}}],["simplicity",{"2":{"0":1}}],["similarly",{"2":{"79":1}}],["similar",{"2":{"4":1,"7":1,"9":1,"13":1,"43":1,"52":1}}],["simbol",{"2":{"3":1}}],["sizeof",{"2":{"34":3}}],["sizes",{"2":{"17":1}}],["size",{"2":{"2":1,"3":1,"4":5,"8":1,"13":3,"17":9,"24":1,"27":2,"33":1,"34":2,"52":4,"77":1,"79":2}}],["single",{"2":{"1":7,"3":2,"4":1,"5":2,"9":1,"14":1,"17":3,"25":2,"39":1,"76":1,"78":1}}],["s",{"2":{"0":1,"1":2,"2":1,"3":6,"4":1,"5":17,"13":14,"14":3,"15":1,"16":2,"17":7,"18":1,"19":1,"52":2,"58":1,"76":2}}],["series",{"2":{"69":1}}],["separate",{"2":{"57":1}}],["seasons",{"0":{"51":1},"2":{"51":1}}],["season",{"2":{"50":1}}],["seamlessly",{"2":{"21":1}}],["sea",{"2":{"17":4}}],["searched",{"2":{"7":1}}],["searchsortedfirst",{"2":{"7":1}}],["searchsorted",{"2":{"7":1}}],["several",{"2":{"17":1}}],["sequence",{"2":{"13":1}}],["sense",{"2":{"5":1,"57":1}}],["see",{"2":{"3":1,"13":4,"14":1,"17":6,"42":1}}],["selectdim",{"2":{"17":1}}],["select",{"0":{"51":1,"52":1},"1":{"53":1,"54":1},"2":{"17":2,"51":1,"76":1}}],["selections",{"2":{"5":1}}],["selectindices",{"2":{"2":1}}],["selects",{"2":{"5":2}}],["selected",{"2":{"5":1,"76":1}}],["selectorss",{"2":{"4":2}}],["selectors",{"0":{"5":1,"76":1},"2":{"2":1,"4":11,"5":7,"8":1,"13":1,"14":1,"25":1,"76":1,"77":1}}],["selector",{"2":{"0":1,"2":2,"4":4,"5":13,"22":1,"39":1,"40":1,"76":3}}],["second",{"2":{"0":1,"2":1,"4":4,"13":2,"16":1}}],["setproperties",{"2":{"17":1}}],["setting",{"2":{"17":1}}],["setindex",{"2":{"14":1,"25":1}}],["sets",{"2":{"13":1}}],["setdims",{"2":{"3":3}}],["set",{"2":{"0":1,"4":6,"5":1,"8":1,"11":1,"13":20,"17":18,"21":1}}],["sounds",{"2":{"38":1}}],["sources",{"2":{"4":1,"17":7,"57":1}}],["source",{"2":{"0":15,"1":4,"2":4,"3":15,"4":24,"5":10,"6":1,"7":6,"8":5,"9":3,"10":5,"11":3,"13":14,"14":2,"15":2,"16":3,"17":21,"18":3,"19":3}}],["solid",{"2":{"15":1,"17":1}}],["so",{"2":{"4":2,"5":1,"17":1,"25":1,"76":1,"79":1}}],["sorted",{"2":{"5":1,"47":1}}],["sortdims",{"2":{"3":1}}],["sort",{"2":{"3":3}}],["sometimes",{"2":{"50":1}}],["somewhere",{"2":{"14":2,"77":1}}],["some",{"2":{"0":1,"4":1,"13":1,"14":1,"22":1,"27":1,"33":1,"37":1,"39":1,"42":2,"47":1,"49":1,"76":1,"77":1,"78":1}}],["surface",{"2":{"17":4}}],["surprising",{"2":{"14":2}}],["sum",{"2":{"14":1,"17":1,"27":3,"49":1}}],["succinct",{"2":{"14":2}}],["such",{"2":{"0":3,"4":1,"5":1,"10":1}}],["supported",{"2":{"17":1}}],["support",{"2":{"13":1,"74":1}}],["supplied",{"2":{"5":1}}],["supertypes",{"2":{"3":1}}],["supertype",{"2":{"0":7,"4":5,"5":3,"6":1,"7":1,"10":1,"11":1,"13":1,"14":1,"16":1,"18":1,"22":1}}],["submodule",{"2":{"22":1}}],["subarray",{"2":{"17":2}}],["subset",{"2":{"17":2}}],["subsetting",{"2":{"5":1}}],["subtypes",{"2":{"19":1}}],["subtype",{"2":{"13":1}}],["sub",{"2":{"0":2}}],["t=float64",{"2":{"13":4}}],["twice",{"2":{"5":1}}],["two",{"2":{"3":1,"4":2,"5":1,"13":4,"14":2,"16":1,"21":1,"76":1,"77":1}}],["t2=transformed",{"2":{"4":1}}],["t1=transformed",{"2":{"4":1}}],["testtypes",{"2":{"33":1}}],["test",{"2":{"21":1}}],["temporal",{"2":{"66":1}}],["tempo",{"2":{"42":1,"43":1,"44":1,"45":1,"46":1,"48":2,"49":1}}],["temp",{"2":{"17":4}}],["term",{"2":{"6":1}}],["terms",{"2":{"4":1}}],["text",{"2":{"3":1,"19":2}}],["trick",{"2":{"34":1}}],["trial",{"2":{"26":2}}],["try",{"2":{"17":1}}],["treat",{"2":{"16":1}}],["trues",{"2":{"17":2,"33":1}}],["true",{"2":{"0":1,"1":4,"3":3,"13":1,"14":1,"17":5}}],["trait",{"2":{"6":1,"17":1}}],["traits",{"0":{"6":1},"1":{"7":1,"8":1,"9":1,"10":1},"2":{"3":1,"4":1,"6":2,"7":1,"17":1,"76":1}}],["transforming",{"2":{"17":1}}],["transform",{"2":{"4":1,"17":1,"42":1}}],["transformation",{"2":{"4":3}}],["transformations",{"2":{"3":1,"4":1,"13":1}}],["transformed",{"2":{"4":2}}],["transpose",{"2":{"0":1,"27":2}}],["transect",{"2":{"0":1}}],["tracking",{"2":{"4":1,"8":1,"11":1}}],["track",{"2":{"0":1,"13":1}}],["tabular",{"2":{"79":1}}],["table",{"0":{"40":1},"2":{"16":2}}],["tabletraits",{"0":{"16":1},"2":{"16":1}}],["tables",{"0":{"16":1,"79":1},"2":{"0":1,"13":1,"16":3,"79":2}}],["ta",{"2":{"0":1}}],["take",{"2":{"0":1,"4":2,"5":1,"14":1,"27":1,"49":1,"78":1}}],["t",{"2":{"0":1,"2":2,"3":2,"4":10,"11":1,"13":2,"15":1,"16":2,"25":2,"27":1}}],["tuples",{"2":{"3":4,"4":1,"15":1,"25":2,"47":1,"48":1}}],["tuple",{"0":{"47":1},"2":{"0":7,"1":17,"2":3,"3":38,"4":40,"8":2,"13":29,"14":3,"15":6,"16":3,"17":20,"19":2,"25":1,"36":1,"47":1,"48":2,"49":3,"50":1,"51":1,"52":2}}],["ti=>",{"2":{"53":1}}],["ti=>cyclicbins",{"2":{"50":2}}],["ti=>bins",{"2":{"50":6,"51":4,"52":6}}],["ti=>yearday",{"2":{"49":2}}],["ti=>yearmonth",{"2":{"49":2}}],["ti=>yearmonthday",{"2":{"49":2}}],["ti=>hour12",{"2":{"49":1}}],["ti=>dates",{"2":{"49":1}}],["ti=>dayofyear",{"2":{"49":2}}],["ti=>month",{"2":{"49":3}}],["ti=all",{"2":{"5":1}}],["tightly",{"2":{"17":1}}],["title",{"2":{"3":5}}],["timeseriestools",{"0":{"69":1},"2":{"69":2}}],["times",{"2":{"0":1}}],["timedime",{"2":{"0":1}}],["timedim",{"2":{"0":3,"3":1}}],["time",{"2":{"0":6,"4":1,"14":1,"17":3,"19":1,"26":6,"43":1,"69":1,"77":1,"78":1}}],["ti",{"2":{"0":14,"1":1,"3":5,"5":3,"13":4,"16":2,"17":8,"22":1,"27":5,"49":10,"50":10,"51":2,"52":6,"53":2,"75":1}}],["though",{"2":{"78":1}}],["those",{"2":{"5":1,"17":3,"22":1,"40":1}}],["thing",{"0":{"34":1}}],["things",{"2":{"21":1,"43":1}}],["thise",{"2":{"0":1}}],["this",{"0":{"34":1},"2":{"0":2,"2":1,"3":7,"4":13,"5":6,"7":1,"8":1,"10":2,"11":1,"13":4,"14":4,"15":1,"16":3,"17":11,"18":1,"19":1,"21":3,"22":1,"25":2,"27":5,"33":2,"34":2,"37":1,"38":1,"41":1,"49":3,"50":1,"52":1,"53":1,"66":1,"74":1,"77":2,"78":2}}],["thus",{"2":{"13":2}}],["through",{"2":{"13":1,"63":1}}],["throw",{"2":{"25":1}}],["throws",{"2":{"5":1}}],["throwing",{"2":{"3":1}}],["thrown",{"2":{"2":1,"3":1,"5":1}}],["three",{"2":{"4":2,"13":1,"14":2,"51":1}}],["than",{"2":{"3":1,"4":2,"5":2,"9":1,"13":1,"21":1,"38":1,"39":1,"52":1}}],["thats",{"2":{"27":1}}],["that",{"2":{"0":2,"1":2,"2":1,"3":1,"4":13,"5":15,"7":4,"8":3,"9":2,"10":1,"13":10,"14":4,"15":2,"17":10,"21":3,"22":3,"25":2,"34":1,"35":1,"36":1,"37":1,"38":1,"39":3,"42":1,"48":1,"76":2,"77":1,"79":1}}],["then",{"2":{"13":1,"17":2}}],["there",{"2":{"4":1,"13":4,"17":1,"39":1,"78":1}}],["these",{"2":{"0":1,"1":1,"3":2,"4":4,"6":2,"7":1,"8":1,"9":1,"10":1,"13":2,"14":1,"15":1,"16":1,"17":1,"22":1,"25":1,"34":1,"35":1,"38":1,"39":3,"40":1,"43":1,"48":1,"50":1,"76":1}}],["their",{"2":{"0":1,"3":2,"14":2,"17":4,"57":1,"76":1}}],["they",{"2":{"0":1,"2":1,"3":2,"4":3,"5":2,"10":2,"13":2,"15":2,"17":5,"21":1,"22":2,"25":1,"34":1,"47":1,"48":1,"74":1,"79":1}}],["them",{"2":{"0":1,"4":1,"11":1,"17":1,"21":1,"25":1,"51":1}}],["the",{"2":{"0":16,"1":10,"2":6,"3":50,"4":90,"5":41,"6":3,"7":9,"8":7,"9":7,"10":11,"11":5,"13":60,"14":24,"15":11,"16":18,"17":87,"18":4,"19":9,"20":2,"21":13,"22":9,"24":6,"25":7,"26":2,"27":7,"33":3,"34":5,"35":1,"37":7,"38":3,"39":6,"42":5,"47":1,"49":6,"50":3,"51":3,"52":2,"53":1,"57":1,"58":1,"65":1,"74":4,"75":5,"76":10,"77":9,"79":10}}],["typeof",{"2":{"17":1}}],["typed",{"2":{"17":1}}],["typemax",{"2":{"4":1,"13":1}}],["typemin",{"2":{"4":1,"13":1}}],["type",{"2":{"0":16,"1":4,"2":2,"3":18,"4":16,"5":10,"6":1,"7":6,"8":6,"9":3,"10":5,"11":5,"13":5,"14":3,"15":1,"16":6,"17":5,"18":4,"21":1,"25":1,"38":2,"40":1}}],["types",{"2":{"0":5,"1":5,"2":1,"3":8,"4":7,"5":1,"6":1,"10":1,"11":1,"13":3,"16":1,"17":2,"22":2,"27":2,"35":2,"42":1,"57":1,"63":1}}],["todo",{"2":{"25":4}}],["top",{"2":{"19":1,"25":1}}],["tools",{"2":{"57":2,"68":1}}],["too",{"2":{"17":1,"21":1,"34":1,"63":1}}],["touched",{"2":{"76":1}}],["touches",{"2":{"5":7}}],["touch",{"2":{"5":2}}],["touching",{"2":{"5":1}}],["tosort",{"2":{"3":4}}],["to",{"0":{"30":1,"31":1,"54":1},"2":{"0":8,"1":5,"2":3,"3":21,"4":36,"5":12,"6":1,"8":1,"9":2,"10":2,"11":4,"13":27,"14":8,"15":2,"16":2,"17":35,"18":2,"19":4,"21":15,"22":5,"24":3,"25":3,"27":4,"33":2,"35":4,"37":1,"38":1,"39":3,"40":1,"42":2,"47":1,"50":3,"52":2,"57":1,"66":1,"68":1,"74":2,"76":4,"77":2,"78":2,"79":2}}],["omptimisation",{"2":{"63":1}}],["own",{"2":{"40":1,"48":1,"63":1}}],["ownd",{"2":{"40":1}}],["objs",{"2":{"38":1}}],["obj",{"0":{"40":1},"2":{"36":1,"38":2,"39":2}}],["objectes",{"2":{"3":1}}],["object",{"2":{"1":8,"2":1,"3":9,"4":7,"6":1,"10":1,"11":2,"13":5,"15":1,"16":2,"17":11,"19":1,"22":2,"39":1}}],["objects",{"2":{"0":2,"2":2,"4":1,"5":2,"7":1,"11":1,"13":1,"14":3,"17":4,"21":1,"22":1,"25":1,"27":1,"36":1,"37":1,"38":1,"39":3,"40":2,"48":1,"77":1}}],["our",{"2":{"21":1,"24":1,"25":2,"48":1,"50":2}}],["outer",{"2":{"17":1}}],["outcome",{"2":{"14":2}}],["out",{"2":{"4":1,"16":1,"22":1,"33":1,"57":1,"74":1}}],["outputs",{"2":{"66":1}}],["output",{"0":{"54":1},"2":{"0":4,"3":2,"4":5,"5":7,"17":3,"65":1}}],["old",{"2":{"17":6}}],["optimization",{"0":{"62":1},"1":{"63":1}}],["optimized",{"2":{"13":1}}],["optimised",{"2":{"7":1}}],["optional",{"2":{"13":2}}],["operation",{"2":{"27":1}}],["operations",{"0":{"42":1},"1":{"43":1,"44":1,"45":1,"46":1,"47":1,"48":1},"2":{"0":1,"13":1,"21":1}}],["open`",{"2":{"76":1}}],["open",{"2":{"5":1,"51":19,"52":17}}],["o",{"2":{"4":1}}],["overheads",{"2":{"78":1}}],["over",{"2":{"0":1,"4":4,"9":1,"14":3,"15":2,"17":7,"27":1,"49":1,"77":1,"79":1}}],["others",{"2":{"17":2,"22":1}}],["otherwise",{"2":{"4":1,"5":1,"35":1}}],["otherdims",{"2":{"1":3,"15":1,"27":2}}],["other",{"2":{"0":2,"3":5,"4":2,"5":2,"16":1,"17":7,"21":1,"27":1,"35":1,"40":1,"41":1,"42":1,"43":1,"75":1,"76":1,"79":1}}],["organised",{"2":{"22":1}}],["organises",{"2":{"0":1}}],["origin",{"2":{"11":1}}],["original",{"2":{"3":3,"17":7}}],["ordering",{"2":{"4":1,"17":1}}],["order=unordered",{"2":{"4":1}}],["order=autoorder",{"2":{"4":2}}],["order=forwardordered",{"2":{"3":1}}],["ordered",{"2":{"1":1,"4":1,"7":4,"13":5,"76":1}}],["order",{"0":{"7":1},"2":{"0":1,"1":1,"3":12,"4":23,"5":1,"7":9,"10":2,"13":1,"15":7,"17":15,"25":5,"40":3,"75":1}}],["or",{"2":{"0":13,"1":15,"2":5,"3":22,"4":35,"5":5,"7":1,"8":5,"9":3,"10":1,"11":2,"13":21,"14":7,"15":3,"16":5,"17":13,"19":2,"21":1,"22":2,"24":1,"25":4,"27":3,"34":1,"35":3,"37":1,"38":1,"40":1,"41":1,"50":2,"51":1,"76":6,"77":3,"79":2}}],["often",{"2":{"17":1,"21":1,"57":1,"76":1}}],["offsetarrays",{"2":{"37":2}}],["offset",{"2":{"5":1}}],["of",{"0":{"29":1},"2":{"0":4,"1":10,"2":2,"3":20,"4":47,"5":6,"6":5,"7":3,"8":1,"9":2,"10":8,"11":2,"13":41,"14":10,"15":13,"16":9,"17":41,"18":1,"19":4,"21":3,"22":2,"24":2,"25":11,"27":1,"33":2,"35":1,"36":1,"37":1,"38":1,"39":2,"42":2,"48":1,"49":1,"50":2,"51":2,"57":2,"59":1,"61":1,"65":1,"74":1,"76":3,"77":5,"79":4}}],["only",{"2":{"3":1,"4":2,"5":1,"13":4,"17":5,"34":1,"38":1,"39":2,"40":2,"77":1}}],["oneto",{"2":{"17":5}}],["one",{"2":{"3":1,"4":3,"9":1,"13":1,"14":2,"17":3,"21":2,"39":2,"76":1,"77":1}}],["ones",{"2":{"1":3,"3":3,"4":1,"13":12,"17":2,"24":1,"26":1}}],["on",{"2":{"0":3,"1":1,"2":2,"3":2,"4":2,"5":1,"10":1,"11":1,"13":3,"14":2,"16":2,"17":5,"18":1,"21":5,"25":1,"34":1,"40":1,"48":1,"66":1,"74":2}}],["aimmed",{"2":{"58":1}}],["aware",{"2":{"57":1}}],["aggregate",{"2":{"50":1}}],["aggregation",{"2":{"49":3,"52":1}}],["again",{"2":{"14":1,"25":1,"75":1}}],["a4",{"2":{"25":4}}],["a3",{"2":{"25":5,"27":6}}],["a=3",{"2":{"24":1,"25":1}}],["a2",{"2":{"24":2,"26":1,"27":1}}],["a1",{"2":{"24":3,"25":3,"27":2}}],["aare",{"2":{"22":1}}],["auxiliary",{"2":{"21":1,"66":1}}],["automata",{"2":{"66":1}}],["automated",{"2":{"17":1}}],["automatic",{"2":{"4":1,"10":1}}],["automatically",{"2":{"0":1,"4":3,"7":1,"21":1,"39":1}}],["autolocus",{"2":{"10":2}}],["autolookup",{"2":{"0":3,"4":3}}],["autospan",{"2":{"8":2}}],["autoindex",{"2":{"4":1}}],["autoorder",{"2":{"0":2,"4":3,"7":2}}],["auto",{"2":{"0":1,"2":1}}],["a>",{"2":{"15":1,"17":1}}],["amazing",{"2":{"21":1}}],["amp",{"0":{"21":1}}],["amd",{"2":{"14":2}}],["ambiguity",{"2":{"11":1,"17":1}}],["after",{"2":{"13":1,"17":1,"19":3,"50":1}}],["affine",{"2":{"4":1}}],["applying",{"2":{"17":1}}],["apply",{"0":{"54":1},"2":{"14":3,"17":2}}],["applicable",{"2":{"13":1,"17":1}}],["applied",{"2":{"4":1,"14":1,"77":1}}],["appropriate",{"2":{"13":1}}],["api",{"0":{"12":1},"1":{"13":1,"14":1,"15":1,"16":1},"2":{"76":4}}],["aditional",{"2":{"76":1}}],["adjoint",{"2":{"27":1}}],["adjacent",{"2":{"5":1}}],["adapt",{"2":{"21":3}}],["add",{"2":{"19":1,"20":1,"40":1,"76":1}}],["added",{"2":{"17":1,"19":1,"35":1,"76":1}}],["addional",{"2":{"19":1}}],["adding",{"0":{"32":1},"2":{"4":3,"19":2}}],["additional",{"2":{"0":1,"19":1}}],["actions",{"2":{"21":1}}],["acting",{"2":{"17":1}}],["actual",{"2":{"21":1}}],["actually",{"2":{"4":1,"34":1}}],["acepted",{"2":{"13":4}}],["accurate",{"2":{"76":1}}],["accuract",{"2":{"8":1}}],["accesscountdiskarray",{"2":{"33":1}}],["accessing",{"2":{"26":1}}],["access",{"2":{"22":1,"24":1,"34":1}}],["accept",{"2":{"13":1,"14":1,"38":1}}],["acceptable",{"2":{"8":1}}],["accepts",{"2":{"5":1,"17":1,"63":1}}],["account",{"2":{"4":2}}],["accpts",{"2":{"4":1}}],["available",{"2":{"4":1,"13":1,"17":1,"21":1}}],["avoids",{"2":{"14":1}}],["avoid",{"2":{"0":1,"5":1,"14":1,"19":1}}],["atol=nothing",{"2":{"5":1}}],["atol",{"2":{"5":2,"40":1}}],["attach",{"2":{"4":1}}],["attached",{"2":{"3":1,"37":1}}],["attempt",{"2":{"0":1}}],["at",{"2":{"0":3,"3":2,"4":6,"5":10,"9":3,"13":2,"14":3,"17":3,"19":3,"25":2,"27":1,"42":1,"57":1,"58":1,"76":2,"77":1}}],["astroimage",{"2":{"68":1}}],["astroimages",{"0":{"68":1},"2":{"68":1}}],["astromical",{"2":{"68":1}}],["assertionerror",{"2":{"52":1}}],["assert",{"2":{"52":1}}],["associate",{"2":{"22":2}}],["assigned",{"2":{"4":9}}],["ascending",{"2":{"5":1}}],["as",{"2":{"0":7,"1":1,"3":6,"4":8,"5":3,"8":1,"10":1,"13":13,"14":6,"15":3,"16":6,"17":9,"21":4,"24":1,"26":1,"27":2,"35":1,"37":1,"38":2,"39":4,"40":2,"74":3,"75":1,"76":1,"77":2}}],["above",{"2":{"24":1,"49":2}}],["about",{"2":{"0":2,"4":3,"11":1,"21":1}}],["abstactdimstack",{"2":{"76":1}}],["abstracdimarray",{"2":{"25":1}}],["abstractname",{"2":{"18":3}}],["abstractgimstack",{"2":{"17":1}}],["abstractbasicdimarray",{"2":{"17":1}}],["abstractbasicarray",{"2":{"13":1}}],["abstraction",{"2":{"17":1}}],["abstractrng",{"2":{"13":2}}],["abstractrange",{"2":{"4":4,"76":1}}],["abstractdimarry",{"2":{"41":1}}],["abstractdimarrays",{"2":{"3":1,"17":4,"18":1,"25":1}}],["abstractdimarray",{"2":{"0":1,"3":3,"4":1,"13":7,"14":4,"16":4,"17":16,"19":5,"21":2,"27":1,"35":1,"39":3,"40":1,"57":1,"58":1,"63":1,"66":2,"68":1,"74":1,"75":1,"76":1,"77":4,"79":1}}],["abstractdimtable",{"2":{"16":2}}],["abstractdimstack",{"2":{"14":4,"16":3,"17":17,"19":5,"35":1,"40":1,"57":1,"61":1,"77":4,"79":1}}],["abstractdict",{"2":{"13":2}}],["abstractmetadata",{"2":{"11":3,"17":1}}],["abstractmatix",{"2":{"8":1}}],["abstractsample",{"2":{"57":1}}],["abstractsampled",{"2":{"4":6,"35":1}}],["abstractset",{"2":{"13":2}}],["abstractstring",{"2":{"4":1}}],["abstractcolumns",{"2":{"16":1}}],["abstractcategorical",{"2":{"4":4,"35":1}}],["abstractcyclic",{"2":{"4":2}}],["abstractarray",{"2":{"2":2,"3":2,"4":10,"5":1,"13":3,"14":2,"15":2,"17":8,"37":1,"76":3,"77":1}}],["abstractvector",{"2":{"0":1,"4":4,"13":8,"16":1}}],["abstract",{"2":{"0":7,"1":2,"3":4,"4":4,"5":3,"6":1,"10":1,"11":1,"13":1,"14":2,"16":1,"17":1,"18":1,"22":1}}],["absent",{"2":{"3":1}}],["axis",{"2":{"0":4,"3":2,"4":10,"10":1,"13":4,"15":1,"17":1,"24":2,"37":1,"74":1,"75":2,"76":2}}],["axes",{"0":{"37":1},"2":{"0":1,"1":1,"4":1,"13":1,"17":4,"25":2,"27":1,"37":2,"75":2}}],["alows",{"2":{"17":1}}],["alone",{"2":{"4":2}}],["along",{"2":{"0":1,"17":6,"27":1,"76":1}}],["align",{"2":{"10":1}}],["aligned",{"2":{"4":6}}],["although",{"2":{"3":1,"4":1,"13":1,"74":1}}],["alternate",{"2":{"0":1}}],["algorithms",{"2":{"3":1}}],["always",{"2":{"1":1,"3":1,"9":1,"11":2,"14":1,"17":1,"19":2,"39":1,"40":1,"57":1}}],["already",{"2":{"0":1,"21":1}}],["also",{"2":{"0":4,"3":3,"5":2,"11":1,"13":4,"14":1,"17":9,"24":1,"27":2,"37":1,"39":1,"47":1,"49":1,"57":1,"75":2}}],["allspecifically",{"2":{"17":1}}],["allocate",{"2":{"79":1}}],["allocation",{"2":{"17":1}}],["allocs",{"2":{"26":2}}],["allowing",{"2":{"4":1}}],["allow",{"2":{"4":1,"10":1,"11":1,"66":1}}],["allows",{"2":{"0":1,"10":1,"17":2}}],["allways",{"2":{"14":1,"17":1}}],["all",{"2":{"0":5,"3":4,"4":5,"5":6,"6":1,"11":1,"13":6,"14":5,"15":3,"16":1,"17":13,"18":1,"21":1,"25":3,"27":2,"33":1,"39":2,"48":1,"57":1,"66":2,"76":5,"77":5,"78":1,"79":1}}],["arviz",{"0":{"61":1},"2":{"35":1,"61":2}}],["arbitrarily",{"2":{"25":1}}],["arbitrary",{"2":{"15":1,"24":1}}],["args",{"2":{"3":1,"17":3,"39":1}}],["argumenterror",{"2":{"25":1}}],["argument",{"0":{"40":1},"2":{"2":1,"3":2,"4":4,"11":1,"13":3,"14":1,"16":1,"17":5,"38":1,"39":3}}],["arguments",{"2":{"0":1,"1":3,"3":5,"4":8,"8":1,"13":4,"14":1,"17":6,"21":1,"39":1,"40":1}}],["arrays",{"0":{"13":1},"2":{"5":1,"13":6,"14":1,"17":7,"18":1,"19":2,"24":1,"34":1,"50":1}}],["arrayselectors",{"2":{"5":1}}],["arrayselector",{"2":{"5":4}}],["array",{"0":{"14":1,"31":1},"2":{"0":3,"1":1,"2":1,"3":6,"4":17,"5":1,"9":1,"10":4,"13":21,"14":3,"15":3,"16":4,"17":15,"18":2,"21":5,"24":1,"26":1,"27":1,"35":2,"37":3,"49":1,"50":1,"63":1,"76":1,"79":2}}],["area",{"2":{"5":3}}],["are",{"2":{"0":6,"1":1,"2":2,"3":16,"4":14,"5":9,"7":1,"8":2,"9":2,"13":10,"14":5,"15":3,"16":3,"17":18,"19":1,"21":2,"22":3,"25":2,"27":1,"34":1,"35":5,"39":2,"42":1,"47":1,"49":1,"57":2,"66":2,"75":1,"76":2,"77":2,"78":1,"79":3}}],["analysis",{"0":{"67":1},"1":{"68":1,"69":1},"2":{"59":1,"61":1}}],["analogues",{"2":{"17":1}}],["anssi",{"2":{"19":1}}],["answer",{"2":{"17":1}}],["another",{"2":{"4":1,"13":1,"14":1,"17":2,"58":1,"76":1}}],["anonymous",{"2":{"0":1,"48":1}}],["anondim",{"2":{"0":2}}],["annual",{"2":{"4":1}}],["anyone",{"2":{"21":1}}],["anything",{"2":{"2":1,"17":1}}],["any",{"2":{"0":1,"1":3,"2":1,"3":6,"4":5,"5":3,"13":7,"17":6,"19":2,"21":1,"22":1,"38":3,"39":1,"49":7,"50":6,"51":2,"52":4,"53":1,"63":1,"77":2}}],["an",{"0":{"31":1},"2":{"0":2,"1":6,"3":6,"4":12,"5":5,"6":1,"7":1,"8":1,"9":1,"11":1,"13":23,"14":1,"15":4,"16":3,"17":12,"18":1,"19":2,"21":1,"22":1,"25":3,"27":1,"37":1,"39":1,"49":1,"50":2,"61":2,"76":6,"77":4,"79":1}}],["and",{"0":{"49":1,"51":1,"76":1,"79":1},"2":{"0":14,"2":4,"3":11,"4":27,"5":8,"7":2,"8":3,"10":2,"11":2,"13":27,"14":11,"15":2,"16":6,"17":21,"18":1,"19":1,"21":5,"22":3,"24":4,"25":8,"33":1,"34":1,"35":1,"37":2,"38":1,"39":3,"48":1,"51":2,"57":7,"58":2,"66":2,"68":1,"74":3,"75":4,"76":6,"77":3,"78":1,"79":5}}],["a",{"0":{"24":1},"2":{"0":28,"1":24,"2":6,"3":41,"4":56,"5":26,"6":1,"7":2,"8":4,"9":1,"10":5,"11":3,"13":54,"14":29,"15":9,"16":11,"17":61,"18":2,"19":7,"21":8,"22":2,"24":9,"25":6,"33":5,"34":2,"35":2,"36":1,"37":2,"39":1,"41":2,"42":1,"47":1,"49":10,"50":9,"51":3,"52":9,"53":2,"57":5,"58":1,"61":1,"63":2,"65":1,"66":1,"74":2,"75":7,"76":8,"77":7,"78":3}}],["mydimstack",{"2":{"14":2}}],["mullti",{"2":{"37":1}}],["multiply",{"2":{"34":1}}],["multiplying",{"2":{"33":1}}],["multiple",{"2":{"4":1,"14":3,"17":2,"27":1,"76":1}}],["multidimensional",{"2":{"17":1}}],["multi",{"0":{"14":1},"2":{"17":1}}],["much",{"2":{"21":1,"22":1,"74":1}}],["mutated",{"2":{"17":1}}],["mutable",{"2":{"13":1}}],["must",{"2":{"4":3,"5":3,"13":2,"14":2,"17":3,"21":2,"36":1,"37":3,"39":1,"77":1}}],["mixing",{"2":{"25":1}}],["mix",{"2":{"25":1,"77":1}}],["mixed",{"2":{"14":2,"15":1,"35":1}}],["mime",{"2":{"19":5}}],["mismatched",{"2":{"17":1}}],["missingval",{"2":{"57":1}}],["missing",{"2":{"3":1,"15":2,"57":1}}],["mid",{"2":{"5":1}}],["min",{"2":{"26":4}}],["minus",{"2":{"4":1}}],["minimum",{"2":{"3":1,"27":1,"49":1}}],["m",{"2":{"0":1,"4":3,"17":3,"34":1}}],["measures",{"2":{"78":1}}],["meant",{"2":{"33":1}}],["meaning",{"2":{"4":1}}],["means",{"2":{"3":1,"5":1,"7":1,"10":1,"13":1,"16":1,"21":1,"22":1,"37":1}}],["mean",{"2":{"0":4,"3":1,"4":1,"9":1,"13":1,"14":4,"26":4,"27":4,"49":6,"50":6,"51":2,"52":5,"53":1,"77":1}}],["median",{"2":{"26":4,"27":1,"49":1}}],["memory",{"2":{"17":1,"26":2,"33":1}}],["merge",{"2":{"25":1}}],["merged",{"2":{"17":3,"25":4}}],["mergedims=",{"2":{"16":1}}],["mergedims=nothing",{"2":{"16":3}}],["mergedims",{"2":{"16":1,"17":5}}],["mergedlookup",{"2":{"0":5,"4":3,"17":4}}],["mersennetwister",{"2":{"13":1}}],["metdata",{"2":{"4":1}}],["method",{"2":{"1":3,"3":4,"4":4,"9":1,"11":1,"13":3,"15":1,"17":4,"19":1,"39":1,"48":1}}],["methods",{"0":{"1":1,"2":1,"3":1,"17":1,"19":1},"1":{"18":1,"19":1},"2":{"0":1,"1":1,"3":4,"4":3,"7":1,"13":1,"14":5,"17":2,"19":2,"22":1,"27":2,"35":1,"39":1,"59":1}}],["metadata=nometadata",{"2":{"4":3,"13":1,"14":1}}],["metadata",{"0":{"11":1,"32":1},"2":{"0":2,"3":1,"4":15,"11":15,"13":11,"17":3,"19":1,"21":1,"39":1,"40":3,"49":7,"50":6,"51":2,"52":4,"53":1}}],["moving",{"2":{"74":1}}],["move",{"2":{"21":1}}],["moved",{"2":{"21":2}}],["moves",{"2":{"13":1}}],["models",{"2":{"61":1,"66":1}}],["model",{"2":{"21":1,"65":1}}],["modifies",{"2":{"13":1}}],["modified",{"2":{"13":2}}],["modification",{"2":{"13":1,"21":1}}],["modifying",{"0":{"73":1}}],["modify",{"2":{"6":1,"17":6,"21":1}}],["module",{"2":{"0":3,"4":2}}],["mostly",{"2":{"13":1,"17":2,"74":1,"75":1}}],["most",{"2":{"4":1,"13":1,"14":4,"17":2,"19":1,"21":1,"35":1}}],["monthly",{"2":{"49":1}}],["month",{"0":{"45":1,"51":1},"2":{"0":6,"13":1,"45":1,"50":5,"51":5}}],["more",{"2":{"0":3,"3":1,"4":4,"13":2,"16":1,"19":1,"39":2,"49":1,"52":1,"58":1,"75":1}}],["makie",{"0":{"75":1},"2":{"74":2,"75":3}}],["makes",{"2":{"18":1}}],["make",{"2":{"4":1,"5":1,"21":1,"33":2,"75":1}}],["made",{"2":{"57":1}}],["masking",{"2":{"57":1}}],["marks",{"2":{"38":1}}],["markers",{"2":{"10":1}}],["max",{"2":{"26":4}}],["maxlen",{"2":{"19":6}}],["maximum",{"2":{"5":1,"19":1,"27":1,"49":1,"77":1}}],["machines",{"2":{"21":1}}],["maching",{"2":{"14":1}}],["macro",{"2":{"3":2,"22":1}}],["mapped",{"2":{"57":1}}],["mapslices",{"2":{"17":2,"27":1}}],["mapreduce",{"2":{"17":1,"27":1}}],["map",{"2":{"14":5,"17":10,"52":1}}],["manipulation",{"2":{"57":1}}],["man",{"2":{"13":1}}],["many",{"2":{"13":1,"14":4,"27":1,"78":1}}],["manually",{"2":{"4":5,"22":1,"39":1}}],["maintains",{"2":{"13":1}}],["main",{"2":{"13":1,"19":4}}],["matrices",{"2":{"17":2}}],["matrix",{"2":{"8":1,"13":4,"17":9}}],["matter",{"2":{"3":1,"15":1,"33":1}}],["match",{"2":{"1":3,"2":2,"3":3,"4":1,"5":1,"16":1,"17":4,"24":1,"77":1,"79":1}}],["matches",{"2":{"1":1,"5":1,"13":1}}],["matching",{"2":{"0":2,"3":1,"4":3,"14":1,"38":2,"76":1}}],["may",{"2":{"0":3,"3":2,"4":5,"5":4,"6":1,"8":1,"13":1,"14":2,"16":2,"19":1,"76":2}}],["mdash",{"2":{"0":15,"1":4,"2":4,"3":15,"4":24,"5":10,"6":1,"7":6,"8":5,"9":3,"10":5,"11":3,"13":10,"14":2,"15":2,"16":3,"17":12,"18":3,"19":3}}]],"serializationVersion":2}';export{e as default}; diff --git a/previews/PR615/assets/chunks/VPLocalSearchBox.kW8cNXQ4.js b/previews/PR615/assets/chunks/VPLocalSearchBox.6MNQoLhv.js similarity index 99% rename from previews/PR615/assets/chunks/VPLocalSearchBox.kW8cNXQ4.js rename to previews/PR615/assets/chunks/VPLocalSearchBox.6MNQoLhv.js index 71d2636cc..f156372f8 100644 --- a/previews/PR615/assets/chunks/VPLocalSearchBox.kW8cNXQ4.js +++ b/previews/PR615/assets/chunks/VPLocalSearchBox.6MNQoLhv.js @@ -1,4 +1,4 @@ -var kt=Object.defineProperty;var It=(o,e,t)=>e in o?kt(o,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):o[e]=t;var Oe=(o,e,t)=>(It(o,typeof e!="symbol"?e+"":e,t),t);import{Y as mt,h as oe,y as $e,ak as Dt,al as Ot,d as _t,H as xe,am as tt,k as Fe,an as Rt,ao as Mt,z as Lt,ap as zt,l as _e,S as de,Q as Ee,aq as Pt,ar as Bt,Z as Vt,j as $t,as as Wt,o as ee,b as Kt,m as E,a2 as jt,p as U,at as Jt,au as Ut,av as Ht,c as re,n as rt,e as Se,G as at,F as nt,a as ve,t as pe,aw as Gt,q as qt,s as Qt,ax as it,ay as Yt,aa as Zt,ag as Xt,az as er,_ as tr}from"./framework.uHRfREZ8.js";import{u as rr,c as ar}from"./theme.his4gRmt.js";const nr={root:()=>mt(()=>import("./@localSearchIndexroot.rJf7ysQq.js"),__vite__mapDeps([]))};/*! +var kt=Object.defineProperty;var It=(o,e,t)=>e in o?kt(o,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):o[e]=t;var Oe=(o,e,t)=>(It(o,typeof e!="symbol"?e+"":e,t),t);import{Y as mt,h as oe,y as $e,ak as Dt,al as Ot,d as _t,H as xe,am as tt,k as Fe,an as Rt,ao as Mt,z as Lt,ap as zt,l as _e,S as de,Q as Ee,aq as Pt,ar as Bt,Z as Vt,j as $t,as as Wt,o as ee,b as Kt,m as E,a2 as jt,p as U,at as Jt,au as Ut,av as Ht,c as re,n as rt,e as Se,G as at,F as nt,a as ve,t as pe,aw as Gt,q as qt,s as Qt,ax as it,ay as Yt,aa as Zt,ag as Xt,az as er,_ as tr}from"./framework.uHRfREZ8.js";import{u as rr,c as ar}from"./theme.mnLIwujL.js";const nr={root:()=>mt(()=>import("./@localSearchIndexroot.nbThz6Vz.js"),__vite__mapDeps([]))};/*! * tabbable 6.2.0 * @license MIT, https://github.com/focus-trap/tabbable/blob/master/LICENSE */var yt=["input:not([inert])","select:not([inert])","textarea:not([inert])","a[href]:not([inert])","button:not([inert])","[tabindex]:not(slot):not([inert])","audio[controls]:not([inert])","video[controls]:not([inert])",'[contenteditable]:not([contenteditable="false"]):not([inert])',"details>summary:first-of-type:not([inert])","details:not([inert])"],Te=yt.join(","),gt=typeof Element>"u",ue=gt?function(){}:Element.prototype.matches||Element.prototype.msMatchesSelector||Element.prototype.webkitMatchesSelector,Ne=!gt&&Element.prototype.getRootNode?function(o){var e;return o==null||(e=o.getRootNode)===null||e===void 0?void 0:e.call(o)}:function(o){return o==null?void 0:o.ownerDocument},ke=function o(e,t){var r;t===void 0&&(t=!0);var n=e==null||(r=e.getAttribute)===null||r===void 0?void 0:r.call(e,"inert"),a=n===""||n==="true",i=a||t&&e&&o(e.parentNode);return i},ir=function(e){var t,r=e==null||(t=e.getAttribute)===null||t===void 0?void 0:t.call(e,"contenteditable");return r===""||r==="true"},bt=function(e,t,r){if(ke(e))return[];var n=Array.prototype.slice.apply(e.querySelectorAll(Te));return t&&ue.call(e,Te)&&n.unshift(e),n=n.filter(r),n},wt=function o(e,t,r){for(var n=[],a=Array.from(e);a.length;){var i=a.shift();if(!ke(i,!1))if(i.tagName==="SLOT"){var s=i.assignedElements(),u=s.length?s:i.children,l=o(u,!0,r);r.flatten?n.push.apply(n,l):n.push({scopeParent:i,candidates:l})}else{var h=ue.call(i,Te);h&&r.filter(i)&&(t||!e.includes(i))&&n.push(i);var d=i.shadowRoot||typeof r.getShadowRoot=="function"&&r.getShadowRoot(i),v=!ke(d,!1)&&(!r.shadowRootFilter||r.shadowRootFilter(i));if(d&&v){var m=o(d===!0?i.children:d.children,!0,r);r.flatten?n.push.apply(n,m):n.push({scopeParent:i,candidates:m})}else a.unshift.apply(a,i.children)}}return n},xt=function(e){return!isNaN(parseInt(e.getAttribute("tabindex"),10))},se=function(e){if(!e)throw new Error("No node provided");return e.tabIndex<0&&(/^(AUDIO|VIDEO|DETAILS)$/.test(e.tagName)||ir(e))&&!xt(e)?0:e.tabIndex},or=function(e,t){var r=se(e);return r<0&&t&&!xt(e)?0:r},sr=function(e,t){return e.tabIndex===t.tabIndex?e.documentOrder-t.documentOrder:e.tabIndex-t.tabIndex},Ft=function(e){return e.tagName==="INPUT"},ur=function(e){return Ft(e)&&e.type==="hidden"},lr=function(e){var t=e.tagName==="DETAILS"&&Array.prototype.slice.apply(e.children).some(function(r){return r.tagName==="SUMMARY"});return t},cr=function(e,t){for(var r=0;rsummary:first-of-type"),i=a?e.parentElement:e;if(ue.call(i,"details:not([open]) *"))return!0;if(!r||r==="full"||r==="legacy-full"){if(typeof n=="function"){for(var s=e;e;){var u=e.parentElement,l=Ne(e);if(u&&!u.shadowRoot&&n(u)===!0)return ot(e);e.assignedSlot?e=e.assignedSlot:!u&&l!==e.ownerDocument?e=l.host:e=u}e=s}if(vr(e))return!e.getClientRects().length;if(r!=="legacy-full")return!0}else if(r==="non-zero-area")return ot(e);return!1},mr=function(e){if(/^(INPUT|BUTTON|SELECT|TEXTAREA)$/.test(e.tagName))for(var t=e.parentElement;t;){if(t.tagName==="FIELDSET"&&t.disabled){for(var r=0;r=0)},gr=function o(e){var t=[],r=[];return e.forEach(function(n,a){var i=!!n.scopeParent,s=i?n.scopeParent:n,u=or(s,i),l=i?o(n.candidates):s;u===0?i?t.push.apply(t,l):t.push(s):r.push({documentOrder:a,tabIndex:u,item:n,isScope:i,content:l})}),r.sort(sr).reduce(function(n,a){return a.isScope?n.push.apply(n,a.content):n.push(a.content),n},[]).concat(t)},br=function(e,t){t=t||{};var r;return t.getShadowRoot?r=wt([e],t.includeContainer,{filter:We.bind(null,t),flatten:!1,getShadowRoot:t.getShadowRoot,shadowRootFilter:yr}):r=bt(e,t.includeContainer,We.bind(null,t)),gr(r)},wr=function(e,t){t=t||{};var r;return t.getShadowRoot?r=wt([e],t.includeContainer,{filter:Ie.bind(null,t),flatten:!0,getShadowRoot:t.getShadowRoot}):r=bt(e,t.includeContainer,Ie.bind(null,t)),r},le=function(e,t){if(t=t||{},!e)throw new Error("No node provided");return ue.call(e,Te)===!1?!1:We(t,e)},xr=yt.concat("iframe").join(","),Re=function(e,t){if(t=t||{},!e)throw new Error("No node provided");return ue.call(e,xr)===!1?!1:Ie(t,e)};/*! diff --git a/previews/PR615/assets/chunks/theme.his4gRmt.js b/previews/PR615/assets/chunks/theme.mnLIwujL.js similarity index 99% rename from previews/PR615/assets/chunks/theme.his4gRmt.js rename to previews/PR615/assets/chunks/theme.mnLIwujL.js index eee058c60..91bedd2fd 100644 --- a/previews/PR615/assets/chunks/theme.his4gRmt.js +++ b/previews/PR615/assets/chunks/theme.mnLIwujL.js @@ -1,7 +1,7 @@ -import{d as g,o as a,c as l,r as u,n as N,a as H,t as L,b as y,w as p,T as he,e as _,_ as m,u as We,i as Je,f as Ye,g as pe,h as M,j as q,k,l as j,m as d,p as i,q as E,s as D,v as G,x as le,y as x,z as te,A as fe,B as Le,C as Xe,D as Ze,E as R,F as C,G as B,H as Me,I as se,J as f,K as U,L as Te,M as oe,N as Z,O as W,P as Qe,Q as ce,R as et,S as Ce,U as Ie,V as tt,W as st,X as ot,Y as nt,Z as Ne,$ as _e,a0 as at,a1 as rt,a2 as it,a3 as Ae,a4 as lt,a5 as ct,a6 as ut}from"./framework.uHRfREZ8.js";const dt=g({__name:"VPBadge",props:{text:{},type:{default:"tip"}},setup(s){return(e,t)=>(a(),l("span",{class:N(["VPBadge",e.type])},[u(e.$slots,"default",{},()=>[H(L(e.text),1)])],2))}}),vt={key:0,class:"VPBackdrop"},ht=g({__name:"VPBackdrop",props:{show:{type:Boolean}},setup(s){return(e,t)=>(a(),y(he,{name:"fade"},{default:p(()=>[e.show?(a(),l("div",vt)):_("",!0)]),_:1}))}}),pt=m(ht,[["__scopeId","data-v-c79a1216"]]),S=We;function ft(s,e){let t,o=!1;return()=>{t&&clearTimeout(t),o?t=setTimeout(s,e):(s(),(o=!0)&&setTimeout(()=>o=!1,e))}}function ue(s){return/^\//.test(s)?s:`/${s}`}function me(s){const{pathname:e,search:t,hash:o,protocol:n}=new URL(s,"http://a.com");if(Je(s)||s.startsWith("#")||!n.startsWith("http")||!Ye(e))return s;const{site:r}=S(),c=e.endsWith("/")||e.endsWith(".html")?s:s.replace(/(?:(^\.+)\/)?.*$/,`$1${e.replace(/(\.md)?$/,r.value.cleanUrls?"":".html")}${t}${o}`);return pe(c)}const ge=M(q?location.hash:"");q&&window.addEventListener("hashchange",()=>{ge.value=location.hash});function Y({removeCurrent:s=!0,correspondingLink:e=!1}={}){const{site:t,localeIndex:o,page:n,theme:r}=S(),c=k(()=>{var v,b;return{label:(v=t.value.locales[o.value])==null?void 0:v.label,link:((b=t.value.locales[o.value])==null?void 0:b.link)||(o.value==="root"?"/":`/${o.value}/`)}});return{localeLinks:k(()=>Object.entries(t.value.locales).flatMap(([v,b])=>s&&c.value.label===b.label?[]:{text:b.label,link:_t(b.link||(v==="root"?"/":`/${v}/`),r.value.i18nRouting!==!1&&e,n.value.relativePath.slice(c.value.link.length-1),!t.value.cleanUrls)+ge.value})),currentLang:c}}function _t(s,e,t,o){return e?s.replace(/\/$/,"")+ue(t.replace(/(^|\/)index\.md$/,"$1").replace(/\.md$/,o?".html":"")):s}const mt=s=>(E("data-v-f87ff6e4"),s=s(),D(),s),gt={class:"NotFound"},bt={class:"code"},$t={class:"title"},kt=mt(()=>d("div",{class:"divider"},null,-1)),yt={class:"quote"},Pt={class:"action"},wt=["href","aria-label"],Vt=g({__name:"NotFound",setup(s){const{site:e,theme:t}=S(),{localeLinks:o}=Y({removeCurrent:!1}),n=M("/");return j(()=>{var c;const r=window.location.pathname.replace(e.value.base,"").replace(/(^.*?\/).*$/,"/$1");o.value.length&&(n.value=((c=o.value.find(({link:h})=>h.startsWith(r)))==null?void 0:c.link)||o.value[0].link)}),(r,c)=>{var h,v,b,P,$;return a(),l("div",gt,[d("p",bt,L(((h=i(t).notFound)==null?void 0:h.code)??"404"),1),d("h1",$t,L(((v=i(t).notFound)==null?void 0:v.title)??"PAGE NOT FOUND"),1),kt,d("blockquote",yt,L(((b=i(t).notFound)==null?void 0:b.quote)??"But if you don't change your direction, and if you keep looking, you may end up where you are heading."),1),d("div",Pt,[d("a",{class:"link",href:i(pe)(n.value),"aria-label":((P=i(t).notFound)==null?void 0:P.linkLabel)??"go to home"},L((($=i(t).notFound)==null?void 0:$.linkText)??"Take me home"),9,wt)])])}}}),St=m(Vt,[["__scopeId","data-v-f87ff6e4"]]);function Be(s,e){if(Array.isArray(s))return Q(s);if(s==null)return[];e=ue(e);const t=Object.keys(s).sort((n,r)=>r.split("/").length-n.split("/").length).find(n=>e.startsWith(ue(n))),o=t?s[t]:[];return Array.isArray(o)?Q(o):Q(o.items,o.base)}function Lt(s){const e=[];let t=0;for(const o in s){const n=s[o];if(n.items){t=e.push(n);continue}e[t]||e.push({items:[]}),e[t].items.push(n)}return e}function Mt(s){const e=[];function t(o){for(const n of o)n.text&&n.link&&e.push({text:n.text,link:n.link,docFooterText:n.docFooterText}),n.items&&t(n.items)}return t(s),e}function de(s,e){return Array.isArray(e)?e.some(t=>de(s,t)):G(s,e.link)?!0:e.items?de(s,e.items):!1}function Q(s,e){return[...s].map(t=>{const o={...t},n=o.base||e;return n&&o.link&&(o.link=n+o.link),o.items&&(o.items=Q(o.items,n)),o})}function F(){const{frontmatter:s,page:e,theme:t}=S(),o=le("(min-width: 960px)"),n=M(!1),r=k(()=>{const A=t.value.sidebar,T=e.value.relativePath;return A?Be(A,T):[]}),c=M(r.value);x(r,(A,T)=>{JSON.stringify(A)!==JSON.stringify(T)&&(c.value=r.value)});const h=k(()=>s.value.sidebar!==!1&&c.value.length>0&&s.value.layout!=="home"),v=k(()=>b?s.value.aside==null?t.value.aside==="left":s.value.aside==="left":!1),b=k(()=>s.value.layout==="home"?!1:s.value.aside!=null?!!s.value.aside:t.value.aside!==!1),P=k(()=>h.value&&o.value),$=k(()=>h.value?Lt(c.value):[]);function V(){n.value=!0}function w(){n.value=!1}function I(){n.value?w():V()}return{isOpen:n,sidebar:c,sidebarGroups:$,hasSidebar:h,hasAside:b,leftAside:v,isSidebarEnabled:P,open:V,close:w,toggle:I}}function Tt(s,e){let t;te(()=>{t=s.value?document.activeElement:void 0}),j(()=>{window.addEventListener("keyup",o)}),fe(()=>{window.removeEventListener("keyup",o)});function o(n){n.key==="Escape"&&s.value&&(e(),t==null||t.focus())}}function Ct(s){const{page:e}=S(),t=M(!1),o=k(()=>s.value.collapsed!=null),n=k(()=>!!s.value.link),r=M(!1),c=()=>{r.value=G(e.value.relativePath,s.value.link)};x([e,s,ge],c),j(c);const h=k(()=>r.value?!0:s.value.items?de(e.value.relativePath,s.value.items):!1),v=k(()=>!!(s.value.items&&s.value.items.length));te(()=>{t.value=!!(o.value&&s.value.collapsed)}),Le(()=>{(r.value||h.value)&&(t.value=!1)});function b(){o.value&&(t.value=!t.value)}return{collapsed:t,collapsible:o,isLink:n,isActiveLink:r,hasActiveLink:h,hasChildren:v,toggle:b}}function It(){const{hasSidebar:s}=F(),e=le("(min-width: 960px)"),t=le("(min-width: 1280px)");return{isAsideEnabled:k(()=>!t.value&&!e.value?!1:s.value?t.value:e.value)}}const ve=[];function He(s){return typeof s.outline=="object"&&!Array.isArray(s.outline)&&s.outline.label||s.outlineTitle||"On this page"}function be(s){const e=[...document.querySelectorAll(".VPDoc :where(h1,h2,h3,h4,h5,h6)")].filter(t=>t.id&&t.hasChildNodes()).map(t=>{const o=Number(t.tagName[1]);return{element:t,title:Nt(t),link:"#"+t.id,level:o}});return At(e,s)}function Nt(s){let e="";for(const t of s.childNodes)if(t.nodeType===1){if(t.classList.contains("VPBadge")||t.classList.contains("header-anchor")||t.classList.contains("ignore-header"))continue;e+=t.textContent}else t.nodeType===3&&(e+=t.textContent);return e.trim()}function At(s,e){if(e===!1)return[];const t=(typeof e=="object"&&!Array.isArray(e)?e.level:e)||2,[o,n]=typeof t=="number"?[t,t]:t==="deep"?[2,6]:t;s=s.filter(c=>c.level>=o&&c.level<=n),ve.length=0;for(const{element:c,link:h}of s)ve.push({element:c,link:h});const r=[];e:for(let c=0;c=0;v--){const b=s[v];if(b.level{requestAnimationFrame(r),window.addEventListener("scroll",o)}),Xe(()=>{c(location.hash)}),fe(()=>{window.removeEventListener("scroll",o)});function r(){if(!t.value)return;const h=window.scrollY,v=window.innerHeight,b=document.body.offsetHeight,P=Math.abs(h+v-b)<1,$=ve.map(({element:w,link:I})=>({link:I,top:Ht(w)})).filter(({top:w})=>!Number.isNaN(w)).sort((w,I)=>w.top-I.top);if(!$.length){c(null);return}if(h<1){c(null);return}if(P){c($[$.length-1].link);return}let V=null;for(const{link:w,top:I}of $){if(I>h+Ze()+4)break;V=w}c(V)}function c(h){n&&n.classList.remove("active"),h==null?n=null:n=s.value.querySelector(`a[href="${decodeURIComponent(h)}"]`);const v=n;v?(v.classList.add("active"),e.value.style.top=v.offsetTop+39+"px",e.value.style.opacity="1"):(e.value.style.top="33px",e.value.style.opacity="0")}}function Ht(s){let e=0;for(;s!==document.body;){if(s===null)return NaN;e+=s.offsetTop,s=s.offsetParent}return e}const zt=["href","title"],Et=g({__name:"VPDocOutlineItem",props:{headers:{},root:{type:Boolean}},setup(s){function e({target:t}){const o=t.href.split("#")[1],n=document.getElementById(decodeURIComponent(o));n==null||n.focus({preventScroll:!0})}return(t,o)=>{const n=R("VPDocOutlineItem",!0);return a(),l("ul",{class:N(["VPDocOutlineItem",t.root?"root":"nested"])},[(a(!0),l(C,null,B(t.headers,({children:r,link:c,title:h})=>(a(),l("li",null,[d("a",{class:"outline-link",href:c,onClick:e,title:h},L(h),9,zt),r!=null&&r.length?(a(),y(n,{key:0,headers:r},null,8,["headers"])):_("",!0)]))),256))],2)}}}),ze=m(Et,[["__scopeId","data-v-b933a997"]]),Dt=s=>(E("data-v-935f8a84"),s=s(),D(),s),Ft={class:"content"},Ot={class:"outline-title",role:"heading","aria-level":"2"},jt={"aria-labelledby":"doc-outline-aria-label"},xt=Dt(()=>d("span",{class:"visually-hidden",id:"doc-outline-aria-label"}," Table of Contents for current page ",-1)),Ut=g({__name:"VPDocAsideOutline",setup(s){const{frontmatter:e,theme:t}=S(),o=Me([]);se(()=>{o.value=be(e.value.outline??t.value.outline)});const n=M(),r=M();return Bt(n,r),(c,h)=>(a(),l("div",{class:N(["VPDocAsideOutline",{"has-outline":o.value.length>0}]),ref_key:"container",ref:n,role:"navigation"},[d("div",Ft,[d("div",{class:"outline-marker",ref_key:"marker",ref:r},null,512),d("div",Ot,L(i(He)(i(t))),1),d("nav",jt,[xt,f(ze,{headers:o.value,root:!0},null,8,["headers"])])])],2))}}),Gt=m(Ut,[["__scopeId","data-v-935f8a84"]]),Rt={class:"VPDocAsideCarbonAds"},Kt=g({__name:"VPDocAsideCarbonAds",props:{carbonAds:{}},setup(s){const e=()=>null;return(t,o)=>(a(),l("div",Rt,[f(i(e),{"carbon-ads":t.carbonAds},null,8,["carbon-ads"])]))}}),qt=s=>(E("data-v-3f215769"),s=s(),D(),s),Wt={class:"VPDocAside"},Jt=qt(()=>d("div",{class:"spacer"},null,-1)),Yt=g({__name:"VPDocAside",setup(s){const{theme:e}=S();return(t,o)=>(a(),l("div",Wt,[u(t.$slots,"aside-top",{},void 0,!0),u(t.$slots,"aside-outline-before",{},void 0,!0),f(Gt),u(t.$slots,"aside-outline-after",{},void 0,!0),Jt,u(t.$slots,"aside-ads-before",{},void 0,!0),i(e).carbonAds?(a(),y(Kt,{key:0,"carbon-ads":i(e).carbonAds},null,8,["carbon-ads"])):_("",!0),u(t.$slots,"aside-ads-after",{},void 0,!0),u(t.$slots,"aside-bottom",{},void 0,!0)]))}}),Xt=m(Yt,[["__scopeId","data-v-3f215769"]]);function Zt(){const{theme:s,page:e}=S();return k(()=>{const{text:t="Edit this page",pattern:o=""}=s.value.editLink||{};let n;return typeof o=="function"?n=o(e.value):n=o.replace(/:path/g,e.value.filePath),{url:n,text:t}})}function Qt(){const{page:s,theme:e,frontmatter:t}=S();return k(()=>{var v,b,P,$,V,w,I,A;const o=Be(e.value.sidebar,s.value.relativePath),n=Mt(o),r=n.findIndex(T=>G(s.value.relativePath,T.link)),c=((v=e.value.docFooter)==null?void 0:v.prev)===!1&&!t.value.prev||t.value.prev===!1,h=((b=e.value.docFooter)==null?void 0:b.next)===!1&&!t.value.next||t.value.next===!1;return{prev:c?void 0:{text:(typeof t.value.prev=="string"?t.value.prev:typeof t.value.prev=="object"?t.value.prev.text:void 0)??((P=n[r-1])==null?void 0:P.docFooterText)??(($=n[r-1])==null?void 0:$.text),link:(typeof t.value.prev=="object"?t.value.prev.link:void 0)??((V=n[r-1])==null?void 0:V.link)},next:h?void 0:{text:(typeof t.value.next=="string"?t.value.next:typeof t.value.next=="object"?t.value.next.text:void 0)??((w=n[r+1])==null?void 0:w.docFooterText)??((I=n[r+1])==null?void 0:I.text),link:(typeof t.value.next=="object"?t.value.next.link:void 0)??((A=n[r+1])==null?void 0:A.link)}}})}const es={},ts={xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},ss=d("path",{d:"M18,23H4c-1.7,0-3-1.3-3-3V6c0-1.7,1.3-3,3-3h7c0.6,0,1,0.4,1,1s-0.4,1-1,1H4C3.4,5,3,5.4,3,6v14c0,0.6,0.4,1,1,1h14c0.6,0,1-0.4,1-1v-7c0-0.6,0.4-1,1-1s1,0.4,1,1v7C21,21.7,19.7,23,18,23z"},null,-1),os=d("path",{d:"M8,17c-0.3,0-0.5-0.1-0.7-0.3C7,16.5,6.9,16.1,7,15.8l1-4c0-0.2,0.1-0.3,0.3-0.5l9.5-9.5c1.2-1.2,3.2-1.2,4.4,0c1.2,1.2,1.2,3.2,0,4.4l-9.5,9.5c-0.1,0.1-0.3,0.2-0.5,0.3l-4,1C8.2,17,8.1,17,8,17zM9.9,12.5l-0.5,2.1l2.1-0.5l9.3-9.3c0.4-0.4,0.4-1.1,0-1.6c-0.4-0.4-1.2-0.4-1.6,0l0,0L9.9,12.5z M18.5,2.5L18.5,2.5L18.5,2.5z"},null,-1),ns=[ss,os];function as(s,e){return a(),l("svg",ts,ns)}const rs=m(es,[["render",as]]),z=g({__name:"VPLink",props:{tag:{},href:{},noIcon:{type:Boolean},target:{},rel:{}},setup(s){const e=s,t=k(()=>e.tag??(e.href?"a":"span")),o=k(()=>e.href&&Te.test(e.href));return(n,r)=>(a(),y(U(t.value),{class:N(["VPLink",{link:n.href,"vp-external-link-icon":o.value,"no-icon":n.noIcon}]),href:n.href?i(me)(n.href):void 0,target:n.target??(o.value?"_blank":void 0),rel:n.rel??(o.value?"noreferrer":void 0)},{default:p(()=>[u(n.$slots,"default")]),_:3},8,["class","href","target","rel"]))}}),is={class:"VPLastUpdated"},ls=["datetime"],cs=g({__name:"VPDocFooterLastUpdated",setup(s){const{theme:e,page:t,frontmatter:o,lang:n}=S(),r=k(()=>new Date(o.value.lastUpdated??t.value.lastUpdated)),c=k(()=>r.value.toISOString()),h=M("");return j(()=>{te(()=>{var v,b,P;h.value=new Intl.DateTimeFormat((b=(v=e.value.lastUpdated)==null?void 0:v.formatOptions)!=null&&b.forceLocale?n.value:void 0,((P=e.value.lastUpdated)==null?void 0:P.formatOptions)??{dateStyle:"short",timeStyle:"short"}).format(r.value)})}),(v,b)=>{var P;return a(),l("p",is,[H(L(((P=i(e).lastUpdated)==null?void 0:P.text)||i(e).lastUpdatedText||"Last updated")+": ",1),d("time",{datetime:c.value},L(h.value),9,ls)])}}}),us=m(cs,[["__scopeId","data-v-7e05ebdb"]]),ds={key:0,class:"VPDocFooter"},vs={key:0,class:"edit-info"},hs={key:0,class:"edit-link"},ps={key:1,class:"last-updated"},fs={key:1,class:"prev-next"},_s={class:"pager"},ms=["innerHTML"],gs=["innerHTML"],bs={class:"pager"},$s=["innerHTML"],ks=["innerHTML"],ys=g({__name:"VPDocFooter",setup(s){const{theme:e,page:t,frontmatter:o}=S(),n=Zt(),r=Qt(),c=k(()=>e.value.editLink&&o.value.editLink!==!1),h=k(()=>t.value.lastUpdated&&o.value.lastUpdated!==!1),v=k(()=>c.value||h.value||r.value.prev||r.value.next);return(b,P)=>{var $,V,w,I;return v.value?(a(),l("footer",ds,[u(b.$slots,"doc-footer-before",{},void 0,!0),c.value||h.value?(a(),l("div",vs,[c.value?(a(),l("div",hs,[f(z,{class:"edit-link-button",href:i(n).url,"no-icon":!0},{default:p(()=>[f(rs,{class:"edit-link-icon","aria-label":"edit icon"}),H(" "+L(i(n).text),1)]),_:1},8,["href"])])):_("",!0),h.value?(a(),l("div",ps,[f(us)])):_("",!0)])):_("",!0),($=i(r).prev)!=null&&$.link||(V=i(r).next)!=null&&V.link?(a(),l("nav",fs,[d("div",_s,[(w=i(r).prev)!=null&&w.link?(a(),y(z,{key:0,class:"pager-link prev",href:i(r).prev.link},{default:p(()=>{var A;return[d("span",{class:"desc",innerHTML:((A=i(e).docFooter)==null?void 0:A.prev)||"Previous page"},null,8,ms),d("span",{class:"title",innerHTML:i(r).prev.text},null,8,gs)]}),_:1},8,["href"])):_("",!0)]),d("div",bs,[(I=i(r).next)!=null&&I.link?(a(),y(z,{key:0,class:"pager-link next",href:i(r).next.link},{default:p(()=>{var A;return[d("span",{class:"desc",innerHTML:((A=i(e).docFooter)==null?void 0:A.next)||"Next page"},null,8,$s),d("span",{class:"title",innerHTML:i(r).next.text},null,8,ks)]}),_:1},8,["href"])):_("",!0)])])):_("",!0)])):_("",!0)}}}),Ps=m(ys,[["__scopeId","data-v-48f9bb55"]]),ws=s=>(E("data-v-39a288b8"),s=s(),D(),s),Vs={class:"container"},Ss=ws(()=>d("div",{class:"aside-curtain"},null,-1)),Ls={class:"aside-container"},Ms={class:"aside-content"},Ts={class:"content"},Cs={class:"content-container"},Is={class:"main"},Ns=g({__name:"VPDoc",setup(s){const{theme:e}=S(),t=oe(),{hasSidebar:o,hasAside:n,leftAside:r}=F(),c=k(()=>t.path.replace(/[./]+/g,"_").replace(/_html$/,""));return(h,v)=>{const b=R("Content");return a(),l("div",{class:N(["VPDoc",{"has-sidebar":i(o),"has-aside":i(n)}])},[u(h.$slots,"doc-top",{},void 0,!0),d("div",Vs,[i(n)?(a(),l("div",{key:0,class:N(["aside",{"left-aside":i(r)}])},[Ss,d("div",Ls,[d("div",Ms,[f(Xt,null,{"aside-top":p(()=>[u(h.$slots,"aside-top",{},void 0,!0)]),"aside-bottom":p(()=>[u(h.$slots,"aside-bottom",{},void 0,!0)]),"aside-outline-before":p(()=>[u(h.$slots,"aside-outline-before",{},void 0,!0)]),"aside-outline-after":p(()=>[u(h.$slots,"aside-outline-after",{},void 0,!0)]),"aside-ads-before":p(()=>[u(h.$slots,"aside-ads-before",{},void 0,!0)]),"aside-ads-after":p(()=>[u(h.$slots,"aside-ads-after",{},void 0,!0)]),_:3})])])],2)):_("",!0),d("div",Ts,[d("div",Cs,[u(h.$slots,"doc-before",{},void 0,!0),d("main",Is,[f(b,{class:N(["vp-doc",[c.value,i(e).externalLinkIcon&&"external-link-icon-enabled"]])},null,8,["class"])]),f(Ps,null,{"doc-footer-before":p(()=>[u(h.$slots,"doc-footer-before",{},void 0,!0)]),_:3}),u(h.$slots,"doc-after",{},void 0,!0)])])]),u(h.$slots,"doc-bottom",{},void 0,!0)],2)}}}),As=m(Ns,[["__scopeId","data-v-39a288b8"]]),Bs=g({__name:"VPButton",props:{tag:{},size:{default:"medium"},theme:{default:"brand"},text:{},href:{},target:{},rel:{}},setup(s){const e=s,t=k(()=>e.href&&Te.test(e.href)),o=k(()=>e.tag||e.href?"a":"button");return(n,r)=>(a(),y(U(o.value),{class:N(["VPButton",[n.size,n.theme]]),href:n.href?i(me)(n.href):void 0,target:e.target??(t.value?"_blank":void 0),rel:e.rel??(t.value?"noreferrer":void 0)},{default:p(()=>[H(L(n.text),1)]),_:1},8,["class","href","target","rel"]))}}),Hs=m(Bs,[["__scopeId","data-v-cad61b99"]]),zs=["src","alt"],Es=g({inheritAttrs:!1,__name:"VPImage",props:{image:{},alt:{}},setup(s){return(e,t)=>{const o=R("VPImage",!0);return e.image?(a(),l(C,{key:0},[typeof e.image=="string"||"src"in e.image?(a(),l("img",Z({key:0,class:"VPImage"},typeof e.image=="string"?e.$attrs:{...e.image,...e.$attrs},{src:i(pe)(typeof e.image=="string"?e.image:e.image.src),alt:e.alt??(typeof e.image=="string"?"":e.image.alt||"")}),null,16,zs)):(a(),l(C,{key:1},[f(o,Z({class:"dark",image:e.image.dark,alt:e.image.alt},e.$attrs),null,16,["image","alt"]),f(o,Z({class:"light",image:e.image.light,alt:e.image.alt},e.$attrs),null,16,["image","alt"])],64))],64)):_("",!0)}}}),ee=m(Es,[["__scopeId","data-v-8426fc1a"]]),Ds=s=>(E("data-v-303bb580"),s=s(),D(),s),Fs={class:"container"},Os={class:"main"},js={key:0,class:"name"},xs=["innerHTML"],Us=["innerHTML"],Gs=["innerHTML"],Rs={key:0,class:"actions"},Ks={key:0,class:"image"},qs={class:"image-container"},Ws=Ds(()=>d("div",{class:"image-bg"},null,-1)),Js=g({__name:"VPHero",props:{name:{},text:{},tagline:{},image:{},actions:{}},setup(s){const e=W("hero-image-slot-exists");return(t,o)=>(a(),l("div",{class:N(["VPHero",{"has-image":t.image||i(e)}])},[d("div",Fs,[d("div",Os,[u(t.$slots,"home-hero-info-before",{},void 0,!0),u(t.$slots,"home-hero-info",{},()=>[t.name?(a(),l("h1",js,[d("span",{innerHTML:t.name,class:"clip"},null,8,xs)])):_("",!0),t.text?(a(),l("p",{key:1,innerHTML:t.text,class:"text"},null,8,Us)):_("",!0),t.tagline?(a(),l("p",{key:2,innerHTML:t.tagline,class:"tagline"},null,8,Gs)):_("",!0)],!0),u(t.$slots,"home-hero-info-after",{},void 0,!0),t.actions?(a(),l("div",Rs,[(a(!0),l(C,null,B(t.actions,n=>(a(),l("div",{key:n.link,class:"action"},[f(Hs,{tag:"a",size:"medium",theme:n.theme,text:n.text,href:n.link,target:n.target,rel:n.rel},null,8,["theme","text","href","target","rel"])]))),128))])):_("",!0),u(t.$slots,"home-hero-actions-after",{},void 0,!0)]),t.image||i(e)?(a(),l("div",Ks,[d("div",qs,[Ws,u(t.$slots,"home-hero-image",{},()=>[t.image?(a(),y(ee,{key:0,class:"image-src",image:t.image},null,8,["image"])):_("",!0)],!0)])])):_("",!0)])],2))}}),Ys=m(Js,[["__scopeId","data-v-303bb580"]]),Xs=g({__name:"VPHomeHero",setup(s){const{frontmatter:e}=S();return(t,o)=>i(e).hero?(a(),y(Ys,{key:0,class:"VPHomeHero",name:i(e).hero.name,text:i(e).hero.text,tagline:i(e).hero.tagline,image:i(e).hero.image,actions:i(e).hero.actions},{"home-hero-info-before":p(()=>[u(t.$slots,"home-hero-info-before")]),"home-hero-info":p(()=>[u(t.$slots,"home-hero-info")]),"home-hero-info-after":p(()=>[u(t.$slots,"home-hero-info-after")]),"home-hero-actions-after":p(()=>[u(t.$slots,"home-hero-actions-after")]),"home-hero-image":p(()=>[u(t.$slots,"home-hero-image")]),_:3},8,["name","text","tagline","image","actions"])):_("",!0)}}),Zs={},Qs={xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},eo=d("path",{d:"M19.9,12.4c0.1-0.2,0.1-0.5,0-0.8c-0.1-0.1-0.1-0.2-0.2-0.3l-7-7c-0.4-0.4-1-0.4-1.4,0s-0.4,1,0,1.4l5.3,5.3H5c-0.6,0-1,0.4-1,1s0.4,1,1,1h11.6l-5.3,5.3c-0.4,0.4-0.4,1,0,1.4c0.2,0.2,0.5,0.3,0.7,0.3s0.5-0.1,0.7-0.3l7-7C19.8,12.6,19.9,12.5,19.9,12.4z"},null,-1),to=[eo];function so(s,e){return a(),l("svg",Qs,to)}const oo=m(Zs,[["render",so]]),no={class:"box"},ao={key:0,class:"icon"},ro=["innerHTML"],io=["innerHTML"],lo=["innerHTML"],co={key:4,class:"link-text"},uo={class:"link-text-value"},vo=g({__name:"VPFeature",props:{icon:{},title:{},details:{},link:{},linkText:{},rel:{},target:{}},setup(s){return(e,t)=>(a(),y(z,{class:"VPFeature",href:e.link,rel:e.rel,target:e.target,"no-icon":!0,tag:e.link?"a":"div"},{default:p(()=>[d("article",no,[typeof e.icon=="object"&&e.icon.wrap?(a(),l("div",ao,[f(ee,{image:e.icon,alt:e.icon.alt,height:e.icon.height||48,width:e.icon.width||48},null,8,["image","alt","height","width"])])):typeof e.icon=="object"?(a(),y(ee,{key:1,image:e.icon,alt:e.icon.alt,height:e.icon.height||48,width:e.icon.width||48},null,8,["image","alt","height","width"])):e.icon?(a(),l("div",{key:2,class:"icon",innerHTML:e.icon},null,8,ro)):_("",!0),d("h2",{class:"title",innerHTML:e.title},null,8,io),e.details?(a(),l("p",{key:3,class:"details",innerHTML:e.details},null,8,lo)):_("",!0),e.linkText?(a(),l("div",co,[d("p",uo,[H(L(e.linkText)+" ",1),f(oo,{class:"link-text-icon"})])])):_("",!0)])]),_:1},8,["href","rel","target","tag"]))}}),ho=m(vo,[["__scopeId","data-v-33204567"]]),po={key:0,class:"VPFeatures"},fo={class:"container"},_o={class:"items"},mo=g({__name:"VPFeatures",props:{features:{}},setup(s){const e=s,t=k(()=>{const o=e.features.length;if(o){if(o===2)return"grid-2";if(o===3)return"grid-3";if(o%3===0)return"grid-6";if(o>3)return"grid-4"}else return});return(o,n)=>o.features?(a(),l("div",po,[d("div",fo,[d("div",_o,[(a(!0),l(C,null,B(o.features,r=>(a(),l("div",{key:r.title,class:N(["item",[t.value]])},[f(ho,{icon:r.icon,title:r.title,details:r.details,link:r.link,"link-text":r.linkText,rel:r.rel,target:r.target},null,8,["icon","title","details","link","link-text","rel","target"])],2))),128))])])])):_("",!0)}}),go=m(mo,[["__scopeId","data-v-a6181336"]]),bo=g({__name:"VPHomeFeatures",setup(s){const{frontmatter:e}=S();return(t,o)=>i(e).features?(a(),y(go,{key:0,class:"VPHomeFeatures",features:i(e).features},null,8,["features"])):_("",!0)}}),$o={class:"VPHome"},ko=g({__name:"VPHome",setup(s){return(e,t)=>{const o=R("Content");return a(),l("div",$o,[u(e.$slots,"home-hero-before",{},void 0,!0),f(Xs,null,{"home-hero-info-before":p(()=>[u(e.$slots,"home-hero-info-before",{},void 0,!0)]),"home-hero-info":p(()=>[u(e.$slots,"home-hero-info",{},void 0,!0)]),"home-hero-info-after":p(()=>[u(e.$slots,"home-hero-info-after",{},void 0,!0)]),"home-hero-actions-after":p(()=>[u(e.$slots,"home-hero-actions-after",{},void 0,!0)]),"home-hero-image":p(()=>[u(e.$slots,"home-hero-image",{},void 0,!0)]),_:3}),u(e.$slots,"home-hero-after",{},void 0,!0),u(e.$slots,"home-features-before",{},void 0,!0),f(bo),u(e.$slots,"home-features-after",{},void 0,!0),f(o)])}}}),yo=m(ko,[["__scopeId","data-v-c71b6826"]]),Po={},wo={class:"VPPage"};function Vo(s,e){const t=R("Content");return a(),l("div",wo,[u(s.$slots,"page-top"),f(t),u(s.$slots,"page-bottom")])}const So=m(Po,[["render",Vo]]),Lo=g({__name:"VPContent",setup(s){const{page:e,frontmatter:t}=S(),{hasSidebar:o}=F();return(n,r)=>(a(),l("div",{class:N(["VPContent",{"has-sidebar":i(o),"is-home":i(t).layout==="home"}]),id:"VPContent"},[i(e).isNotFound?u(n.$slots,"not-found",{key:0},()=>[f(St)],!0):i(t).layout==="page"?(a(),y(So,{key:1},{"page-top":p(()=>[u(n.$slots,"page-top",{},void 0,!0)]),"page-bottom":p(()=>[u(n.$slots,"page-bottom",{},void 0,!0)]),_:3})):i(t).layout==="home"?(a(),y(yo,{key:2},{"home-hero-before":p(()=>[u(n.$slots,"home-hero-before",{},void 0,!0)]),"home-hero-info-before":p(()=>[u(n.$slots,"home-hero-info-before",{},void 0,!0)]),"home-hero-info":p(()=>[u(n.$slots,"home-hero-info",{},void 0,!0)]),"home-hero-info-after":p(()=>[u(n.$slots,"home-hero-info-after",{},void 0,!0)]),"home-hero-actions-after":p(()=>[u(n.$slots,"home-hero-actions-after",{},void 0,!0)]),"home-hero-image":p(()=>[u(n.$slots,"home-hero-image",{},void 0,!0)]),"home-hero-after":p(()=>[u(n.$slots,"home-hero-after",{},void 0,!0)]),"home-features-before":p(()=>[u(n.$slots,"home-features-before",{},void 0,!0)]),"home-features-after":p(()=>[u(n.$slots,"home-features-after",{},void 0,!0)]),_:3})):i(t).layout&&i(t).layout!=="doc"?(a(),y(U(i(t).layout),{key:3})):(a(),y(As,{key:4},{"doc-top":p(()=>[u(n.$slots,"doc-top",{},void 0,!0)]),"doc-bottom":p(()=>[u(n.$slots,"doc-bottom",{},void 0,!0)]),"doc-footer-before":p(()=>[u(n.$slots,"doc-footer-before",{},void 0,!0)]),"doc-before":p(()=>[u(n.$slots,"doc-before",{},void 0,!0)]),"doc-after":p(()=>[u(n.$slots,"doc-after",{},void 0,!0)]),"aside-top":p(()=>[u(n.$slots,"aside-top",{},void 0,!0)]),"aside-outline-before":p(()=>[u(n.$slots,"aside-outline-before",{},void 0,!0)]),"aside-outline-after":p(()=>[u(n.$slots,"aside-outline-after",{},void 0,!0)]),"aside-ads-before":p(()=>[u(n.$slots,"aside-ads-before",{},void 0,!0)]),"aside-ads-after":p(()=>[u(n.$slots,"aside-ads-after",{},void 0,!0)]),"aside-bottom":p(()=>[u(n.$slots,"aside-bottom",{},void 0,!0)]),_:3}))],2))}}),Mo=m(Lo,[["__scopeId","data-v-1428d186"]]),To={class:"container"},Co=["innerHTML"],Io=["innerHTML"],No=g({__name:"VPFooter",setup(s){const{theme:e,frontmatter:t}=S(),{hasSidebar:o}=F();return(n,r)=>i(e).footer&&i(t).footer!==!1?(a(),l("footer",{key:0,class:N(["VPFooter",{"has-sidebar":i(o)}])},[d("div",To,[i(e).footer.message?(a(),l("p",{key:0,class:"message",innerHTML:i(e).footer.message},null,8,Co)):_("",!0),i(e).footer.copyright?(a(),l("p",{key:1,class:"copyright",innerHTML:i(e).footer.copyright},null,8,Io)):_("",!0)])],2)):_("",!0)}}),Ao=m(No,[["__scopeId","data-v-e315a0ad"]]);function Ee(){const{theme:s,frontmatter:e}=S(),t=Me([]),o=k(()=>t.value.length>0);return se(()=>{t.value=be(e.value.outline??s.value.outline)}),{headers:t,hasLocalNav:o}}const Bo={},Ho={xmlns:"http://www.w3.org/2000/svg","aria-hidden":"true",focusable:"false",viewBox:"0 0 24 24"},zo=d("path",{d:"M9,19c-0.3,0-0.5-0.1-0.7-0.3c-0.4-0.4-0.4-1,0-1.4l5.3-5.3L8.3,6.7c-0.4-0.4-0.4-1,0-1.4s1-0.4,1.4,0l6,6c0.4,0.4,0.4,1,0,1.4l-6,6C9.5,18.9,9.3,19,9,19z"},null,-1),Eo=[zo];function Do(s,e){return a(),l("svg",Ho,Eo)}const De=m(Bo,[["render",Do]]),Fo={class:"header"},Oo={class:"outline"},jo=g({__name:"VPLocalNavOutlineDropdown",props:{headers:{},navHeight:{}},setup(s){const e=s,{theme:t}=S(),o=M(!1),n=M(0),r=M(),c=M();Qe(r,()=>{o.value=!1}),ce("Escape",()=>{o.value=!1}),se(()=>{o.value=!1});function h(){o.value=!o.value,n.value=window.innerHeight+Math.min(window.scrollY-e.navHeight,0)}function v(P){P.target.classList.contains("outline-link")&&(c.value&&(c.value.style.transition="none"),Ce(()=>{o.value=!1}))}function b(){o.value=!1,window.scrollTo({top:0,left:0,behavior:"smooth"})}return(P,$)=>(a(),l("div",{class:"VPLocalNavOutlineDropdown",style:et({"--vp-vh":n.value+"px"}),ref_key:"main",ref:r},[P.headers.length>0?(a(),l("button",{key:0,onClick:h,class:N({open:o.value})},[H(L(i(He)(i(t)))+" ",1),f(De,{class:"icon"})],2)):(a(),l("button",{key:1,onClick:b},L(i(t).returnToTopLabel||"Return to top"),1)),f(he,{name:"flyout"},{default:p(()=>[o.value?(a(),l("div",{key:0,ref_key:"items",ref:c,class:"items",onClick:v},[d("div",Fo,[d("a",{class:"top-link",href:"#",onClick:b},L(i(t).returnToTopLabel||"Return to top"),1)]),d("div",Oo,[f(ze,{headers:P.headers},null,8,["headers"])])],512)):_("",!0)]),_:1})],4))}}),xo=m(jo,[["__scopeId","data-v-af18c0d5"]]),Uo={},Go={xmlns:"http://www.w3.org/2000/svg","aria-hidden":"true",focusable:"false",viewBox:"0 0 24 24"},Ro=d("path",{d:"M17,11H3c-0.6,0-1-0.4-1-1s0.4-1,1-1h14c0.6,0,1,0.4,1,1S17.6,11,17,11z"},null,-1),Ko=d("path",{d:"M21,7H3C2.4,7,2,6.6,2,6s0.4-1,1-1h18c0.6,0,1,0.4,1,1S21.6,7,21,7z"},null,-1),qo=d("path",{d:"M21,15H3c-0.6,0-1-0.4-1-1s0.4-1,1-1h18c0.6,0,1,0.4,1,1S21.6,15,21,15z"},null,-1),Wo=d("path",{d:"M17,19H3c-0.6,0-1-0.4-1-1s0.4-1,1-1h14c0.6,0,1,0.4,1,1S17.6,19,17,19z"},null,-1),Jo=[Ro,Ko,qo,Wo];function Yo(s,e){return a(),l("svg",Go,Jo)}const Xo=m(Uo,[["render",Yo]]),Zo={class:"container"},Qo=["aria-expanded"],en={class:"menu-text"},tn=g({__name:"VPLocalNav",props:{open:{type:Boolean}},emits:["open-menu"],setup(s){const{theme:e,frontmatter:t}=S(),{hasSidebar:o}=F(),{headers:n}=Ee(),{y:r}=Ie(),c=M(0);j(()=>{c.value=parseInt(getComputedStyle(document.documentElement).getPropertyValue("--vp-nav-height"))}),se(()=>{n.value=be(t.value.outline??e.value.outline)});const h=k(()=>n.value.length===0),v=k(()=>h.value&&!o.value),b=k(()=>({VPLocalNav:!0,"has-sidebar":o.value,empty:h.value,fixed:v.value}));return(P,$)=>i(t).layout!=="home"&&(!v.value||i(r)>=c.value)?(a(),l("div",{key:0,class:N(b.value)},[d("div",Zo,[i(o)?(a(),l("button",{key:0,class:"menu","aria-expanded":P.open,"aria-controls":"VPSidebarNav",onClick:$[0]||($[0]=V=>P.$emit("open-menu"))},[f(Xo,{class:"menu-icon"}),d("span",en,L(i(e).sidebarMenuLabel||"Menu"),1)],8,Qo)):_("",!0),f(xo,{headers:i(n),navHeight:c.value},null,8,["headers","navHeight"])])],2)):_("",!0)}}),sn=m(tn,[["__scopeId","data-v-0282ae07"]]);function on(){const s=M(!1);function e(){s.value=!0,window.addEventListener("resize",n)}function t(){s.value=!1,window.removeEventListener("resize",n)}function o(){s.value?t():e()}function n(){window.outerWidth>=768&&t()}const r=oe();return x(()=>r.path,t),{isScreenOpen:s,openScreen:e,closeScreen:t,toggleScreen:o}}const nn={},an={class:"VPSwitch",type:"button",role:"switch"},rn={class:"check"},ln={key:0,class:"icon"};function cn(s,e){return a(),l("button",an,[d("span",rn,[s.$slots.default?(a(),l("span",ln,[u(s.$slots,"default",{},void 0,!0)])):_("",!0)])])}const un=m(nn,[["render",cn],["__scopeId","data-v-b1685198"]]),dn={},vn={xmlns:"http://www.w3.org/2000/svg","aria-hidden":"true",focusable:"false",viewBox:"0 0 24 24"},hn=d("path",{d:"M12.1,22c-0.3,0-0.6,0-0.9,0c-5.5-0.5-9.5-5.4-9-10.9c0.4-4.8,4.2-8.6,9-9c0.4,0,0.8,0.2,1,0.5c0.2,0.3,0.2,0.8-0.1,1.1c-2,2.7-1.4,6.4,1.3,8.4c2.1,1.6,5,1.6,7.1,0c0.3-0.2,0.7-0.3,1.1-0.1c0.3,0.2,0.5,0.6,0.5,1c-0.2,2.7-1.5,5.1-3.6,6.8C16.6,21.2,14.4,22,12.1,22zM9.3,4.4c-2.9,1-5,3.6-5.2,6.8c-0.4,4.4,2.8,8.3,7.2,8.7c2.1,0.2,4.2-0.4,5.8-1.8c1.1-0.9,1.9-2.1,2.4-3.4c-2.5,0.9-5.3,0.5-7.5-1.1C9.2,11.4,8.1,7.7,9.3,4.4z"},null,-1),pn=[hn];function fn(s,e){return a(),l("svg",vn,pn)}const _n=m(dn,[["render",fn]]),mn={},gn={xmlns:"http://www.w3.org/2000/svg","aria-hidden":"true",focusable:"false",viewBox:"0 0 24 24"},bn=tt('',9),$n=[bn];function kn(s,e){return a(),l("svg",gn,$n)}const yn=m(mn,[["render",kn]]),Pn=g({__name:"VPSwitchAppearance",setup(s){const{isDark:e,theme:t}=S(),o=W("toggle-appearance",()=>{e.value=!e.value}),n=k(()=>e.value?t.value.lightModeSwitchTitle||"Switch to light theme":t.value.darkModeSwitchTitle||"Switch to dark theme");return(r,c)=>(a(),y(un,{title:n.value,class:"VPSwitchAppearance","aria-checked":i(e),onClick:i(o)},{default:p(()=>[f(yn,{class:"sun"}),f(_n,{class:"moon"})]),_:1},8,["title","aria-checked","onClick"]))}}),$e=m(Pn,[["__scopeId","data-v-1736f215"]]),wn={key:0,class:"VPNavBarAppearance"},Vn=g({__name:"VPNavBarAppearance",setup(s){const{site:e}=S();return(t,o)=>i(e).appearance&&i(e).appearance!=="force-dark"?(a(),l("div",wn,[f($e)])):_("",!0)}}),Sn=m(Vn,[["__scopeId","data-v-e6aabb21"]]),ke=M();let Fe=!1,ie=0;function Ln(s){const e=M(!1);if(q){!Fe&&Mn(),ie++;const t=x(ke,o=>{var n,r,c;o===s.el.value||(n=s.el.value)!=null&&n.contains(o)?(e.value=!0,(r=s.onFocus)==null||r.call(s)):(e.value=!1,(c=s.onBlur)==null||c.call(s))});fe(()=>{t(),ie--,ie||Tn()})}return st(e)}function Mn(){document.addEventListener("focusin",Oe),Fe=!0,ke.value=document.activeElement}function Tn(){document.removeEventListener("focusin",Oe)}function Oe(){ke.value=document.activeElement}const Cn={},In={xmlns:"http://www.w3.org/2000/svg","aria-hidden":"true",focusable:"false",viewBox:"0 0 24 24"},Nn=d("path",{d:"M12,16c-0.3,0-0.5-0.1-0.7-0.3l-6-6c-0.4-0.4-0.4-1,0-1.4s1-0.4,1.4,0l5.3,5.3l5.3-5.3c0.4-0.4,1-0.4,1.4,0s0.4,1,0,1.4l-6,6C12.5,15.9,12.3,16,12,16z"},null,-1),An=[Nn];function Bn(s,e){return a(),l("svg",In,An)}const je=m(Cn,[["render",Bn]]),Hn={},zn={xmlns:"http://www.w3.org/2000/svg","aria-hidden":"true",focusable:"false",viewBox:"0 0 24 24"},En=d("circle",{cx:"12",cy:"12",r:"2"},null,-1),Dn=d("circle",{cx:"19",cy:"12",r:"2"},null,-1),Fn=d("circle",{cx:"5",cy:"12",r:"2"},null,-1),On=[En,Dn,Fn];function jn(s,e){return a(),l("svg",zn,On)}const xn=m(Hn,[["render",jn]]),Un={class:"VPMenuLink"},Gn=g({__name:"VPMenuLink",props:{item:{}},setup(s){const{page:e}=S();return(t,o)=>(a(),l("div",Un,[f(z,{class:N({active:i(G)(i(e).relativePath,t.item.activeMatch||t.item.link,!!t.item.activeMatch)}),href:t.item.link,target:t.item.target,rel:t.item.rel},{default:p(()=>[H(L(t.item.text),1)]),_:1},8,["class","href","target","rel"])]))}}),ne=m(Gn,[["__scopeId","data-v-43f1e123"]]),Rn={class:"VPMenuGroup"},Kn={key:0,class:"title"},qn=g({__name:"VPMenuGroup",props:{text:{},items:{}},setup(s){return(e,t)=>(a(),l("div",Rn,[e.text?(a(),l("p",Kn,L(e.text),1)):_("",!0),(a(!0),l(C,null,B(e.items,o=>(a(),l(C,null,["link"in o?(a(),y(ne,{key:0,item:o},null,8,["item"])):_("",!0)],64))),256))]))}}),Wn=m(qn,[["__scopeId","data-v-69e747b5"]]),Jn={class:"VPMenu"},Yn={key:0,class:"items"},Xn=g({__name:"VPMenu",props:{items:{}},setup(s){return(e,t)=>(a(),l("div",Jn,[e.items?(a(),l("div",Yn,[(a(!0),l(C,null,B(e.items,o=>(a(),l(C,{key:o.text},["link"in o?(a(),y(ne,{key:0,item:o},null,8,["item"])):(a(),y(Wn,{key:1,text:o.text,items:o.items},null,8,["text","items"]))],64))),128))])):_("",!0),u(e.$slots,"default",{},void 0,!0)]))}}),Zn=m(Xn,[["__scopeId","data-v-e7ea1737"]]),Qn=["aria-expanded","aria-label"],ea={key:0,class:"text"},ta=["innerHTML"],sa={class:"menu"},oa=g({__name:"VPFlyout",props:{icon:{},button:{},label:{},items:{}},setup(s){const e=M(!1),t=M();Ln({el:t,onBlur:o});function o(){e.value=!1}return(n,r)=>(a(),l("div",{class:"VPFlyout",ref_key:"el",ref:t,onMouseenter:r[1]||(r[1]=c=>e.value=!0),onMouseleave:r[2]||(r[2]=c=>e.value=!1)},[d("button",{type:"button",class:"button","aria-haspopup":"true","aria-expanded":e.value,"aria-label":n.label,onClick:r[0]||(r[0]=c=>e.value=!e.value)},[n.button||n.icon?(a(),l("span",ea,[n.icon?(a(),y(U(n.icon),{key:0,class:"option-icon"})):_("",!0),n.button?(a(),l("span",{key:1,innerHTML:n.button},null,8,ta)):_("",!0),f(je,{class:"text-icon"})])):(a(),y(xn,{key:1,class:"icon"}))],8,Qn),d("div",sa,[f(Zn,{items:n.items},{default:p(()=>[u(n.$slots,"default",{},void 0,!0)]),_:3},8,["items"])])],544))}}),ye=m(oa,[["__scopeId","data-v-9c007e85"]]),na={discord:'Discord',facebook:'Facebook',github:'GitHub',instagram:'Instagram',linkedin:'LinkedIn',mastodon:'Mastodon',npm:'npm',slack:'Slack',twitter:'Twitter',x:'X',youtube:'YouTube'},aa=["href","aria-label","innerHTML"],ra=g({__name:"VPSocialLink",props:{icon:{},link:{},ariaLabel:{}},setup(s){const e=s,t=k(()=>typeof e.icon=="object"?e.icon.svg:na[e.icon]);return(o,n)=>(a(),l("a",{class:"VPSocialLink no-icon",href:o.link,"aria-label":o.ariaLabel??(typeof o.icon=="string"?o.icon:""),target:"_blank",rel:"noopener",innerHTML:t.value},null,8,aa))}}),ia=m(ra,[["__scopeId","data-v-f80f8133"]]),la={class:"VPSocialLinks"},ca=g({__name:"VPSocialLinks",props:{links:{}},setup(s){return(e,t)=>(a(),l("div",la,[(a(!0),l(C,null,B(e.links,({link:o,icon:n,ariaLabel:r})=>(a(),y(ia,{key:o,icon:n,link:o,ariaLabel:r},null,8,["icon","link","ariaLabel"]))),128))]))}}),Pe=m(ca,[["__scopeId","data-v-7bc22406"]]),ua={key:0,class:"group translations"},da={class:"trans-title"},va={key:1,class:"group"},ha={class:"item appearance"},pa={class:"label"},fa={class:"appearance-action"},_a={key:2,class:"group"},ma={class:"item social-links"},ga=g({__name:"VPNavBarExtra",setup(s){const{site:e,theme:t}=S(),{localeLinks:o,currentLang:n}=Y({correspondingLink:!0}),r=k(()=>o.value.length&&n.value.label||e.value.appearance||t.value.socialLinks);return(c,h)=>r.value?(a(),y(ye,{key:0,class:"VPNavBarExtra",label:"extra navigation"},{default:p(()=>[i(o).length&&i(n).label?(a(),l("div",ua,[d("p",da,L(i(n).label),1),(a(!0),l(C,null,B(i(o),v=>(a(),y(ne,{key:v.link,item:v},null,8,["item"]))),128))])):_("",!0),i(e).appearance&&i(e).appearance!=="force-dark"?(a(),l("div",va,[d("div",ha,[d("p",pa,L(i(t).darkModeSwitchLabel||"Appearance"),1),d("div",fa,[f($e)])])])):_("",!0),i(t).socialLinks?(a(),l("div",_a,[d("div",ma,[f(Pe,{class:"social-links-list",links:i(t).socialLinks},null,8,["links"])])])):_("",!0)]),_:1})):_("",!0)}}),ba=m(ga,[["__scopeId","data-v-d0bd9dde"]]),$a=s=>(E("data-v-e5dd9c1c"),s=s(),D(),s),ka=["aria-expanded"],ya=$a(()=>d("span",{class:"container"},[d("span",{class:"top"}),d("span",{class:"middle"}),d("span",{class:"bottom"})],-1)),Pa=[ya],wa=g({__name:"VPNavBarHamburger",props:{active:{type:Boolean}},emits:["click"],setup(s){return(e,t)=>(a(),l("button",{type:"button",class:N(["VPNavBarHamburger",{active:e.active}]),"aria-label":"mobile navigation","aria-expanded":e.active,"aria-controls":"VPNavScreen",onClick:t[0]||(t[0]=o=>e.$emit("click"))},Pa,10,ka))}}),Va=m(wa,[["__scopeId","data-v-e5dd9c1c"]]),Sa=["innerHTML"],La=g({__name:"VPNavBarMenuLink",props:{item:{}},setup(s){const{page:e}=S();return(t,o)=>(a(),y(z,{class:N({VPNavBarMenuLink:!0,active:i(G)(i(e).relativePath,t.item.activeMatch||t.item.link,!!t.item.activeMatch)}),href:t.item.link,target:t.item.target,rel:t.item.rel,tabindex:"0"},{default:p(()=>[d("span",{innerHTML:t.item.text},null,8,Sa)]),_:1},8,["class","href","target","rel"]))}}),Ma=m(La,[["__scopeId","data-v-42ef59de"]]),Ta=g({__name:"VPNavBarMenuGroup",props:{item:{}},setup(s){const e=s,{page:t}=S(),o=r=>"link"in r?G(t.value.relativePath,r.link,!!e.item.activeMatch):r.items.some(o),n=k(()=>o(e.item));return(r,c)=>(a(),y(ye,{class:N({VPNavBarMenuGroup:!0,active:i(G)(i(t).relativePath,r.item.activeMatch,!!r.item.activeMatch)||n.value}),button:r.item.text,items:r.item.items},null,8,["class","button","items"]))}}),Ca=s=>(E("data-v-7f418b0f"),s=s(),D(),s),Ia={key:0,"aria-labelledby":"main-nav-aria-label",class:"VPNavBarMenu"},Na=Ca(()=>d("span",{id:"main-nav-aria-label",class:"visually-hidden"},"Main Navigation",-1)),Aa=g({__name:"VPNavBarMenu",setup(s){const{theme:e}=S();return(t,o)=>i(e).nav?(a(),l("nav",Ia,[Na,(a(!0),l(C,null,B(i(e).nav,n=>(a(),l(C,{key:n.text},["link"in n?(a(),y(Ma,{key:0,item:n},null,8,["item"])):(a(),y(Ta,{key:1,item:n},null,8,["item"]))],64))),128))])):_("",!0)}}),Ba=m(Aa,[["__scopeId","data-v-7f418b0f"]]);function Ha(s){const{localeIndex:e,theme:t}=S();function o(n){var I,A,T;const r=n.split("."),c=(I=t.value.search)==null?void 0:I.options,h=c&&typeof c=="object",v=h&&((T=(A=c.locales)==null?void 0:A[e.value])==null?void 0:T.translations)||null,b=h&&c.translations||null;let P=v,$=b,V=s;const w=r.pop();for(const X of r){let O=null;const K=V==null?void 0:V[X];K&&(O=V=K);const ae=$==null?void 0:$[X];ae&&(O=$=ae);const re=P==null?void 0:P[X];re&&(O=P=re),K||(V=O),ae||($=O),re||(P=O)}return(P==null?void 0:P[w])??($==null?void 0:$[w])??(V==null?void 0:V[w])??""}return o}const za=["aria-label"],Ea={class:"DocSearch-Button-Container"},Da=d("svg",{class:"DocSearch-Search-Icon",width:"20",height:"20",viewBox:"0 0 20 20","aria-label":"search icon"},[d("path",{d:"M14.386 14.386l4.0877 4.0877-4.0877-4.0877c-2.9418 2.9419-7.7115 2.9419-10.6533 0-2.9419-2.9418-2.9419-7.7115 0-10.6533 2.9418-2.9419 7.7115-2.9419 10.6533 0 2.9419 2.9418 2.9419 7.7115 0 10.6533z",stroke:"currentColor",fill:"none","fill-rule":"evenodd","stroke-linecap":"round","stroke-linejoin":"round"})],-1),Fa={class:"DocSearch-Button-Placeholder"},Oa=d("span",{class:"DocSearch-Button-Keys"},[d("kbd",{class:"DocSearch-Button-Key"}),d("kbd",{class:"DocSearch-Button-Key"},"K")],-1),we=g({__name:"VPNavBarSearchButton",setup(s){const t=Ha({button:{buttonText:"Search",buttonAriaLabel:"Search"}});return(o,n)=>(a(),l("button",{type:"button",class:"DocSearch DocSearch-Button","aria-label":i(t)("button.buttonAriaLabel")},[d("span",Ea,[Da,d("span",Fa,L(i(t)("button.buttonText")),1)]),Oa],8,za))}}),ja={class:"VPNavBarSearch"},xa={id:"local-search"},Ua={key:1,id:"docsearch"},Ga=g({__name:"VPNavBarSearch",setup(s){const e=ot(()=>nt(()=>import("./VPLocalSearchBox.kW8cNXQ4.js"),__vite__mapDeps([0,1]))),t=()=>null,{theme:o}=S(),n=M(!1),r=M(!1);j(()=>{});function c(){n.value||(n.value=!0,setTimeout(h,16))}function h(){const $=new Event("keydown");$.key="k",$.metaKey=!0,window.dispatchEvent($),setTimeout(()=>{document.querySelector(".DocSearch-Modal")||h()},16)}function v($){const V=$.target,w=V.tagName;return V.isContentEditable||w==="INPUT"||w==="SELECT"||w==="TEXTAREA"}const b=M(!1);ce("k",$=>{($.ctrlKey||$.metaKey)&&($.preventDefault(),b.value=!0)}),ce("/",$=>{v($)||($.preventDefault(),b.value=!0)});const P="local";return($,V)=>{var w;return a(),l("div",ja,[i(P)==="local"?(a(),l(C,{key:0},[b.value?(a(),y(i(e),{key:0,onClose:V[0]||(V[0]=I=>b.value=!1)})):_("",!0),d("div",xa,[f(we,{onClick:V[1]||(V[1]=I=>b.value=!0)})])],64)):i(P)==="algolia"?(a(),l(C,{key:1},[n.value?(a(),y(i(t),{key:0,algolia:((w=i(o).search)==null?void 0:w.options)??i(o).algolia,onVnodeBeforeMount:V[2]||(V[2]=I=>r.value=!0)},null,8,["algolia"])):_("",!0),r.value?_("",!0):(a(),l("div",Ua,[f(we,{onClick:c})]))],64)):_("",!0)])}}}),Ra=g({__name:"VPNavBarSocialLinks",setup(s){const{theme:e}=S();return(t,o)=>i(e).socialLinks?(a(),y(Pe,{key:0,class:"VPNavBarSocialLinks",links:i(e).socialLinks},null,8,["links"])):_("",!0)}}),Ka=m(Ra,[["__scopeId","data-v-0394ad82"]]),qa=["href","rel","target"],Wa={key:1},Ja={key:2},Ya=g({__name:"VPNavBarTitle",setup(s){const{site:e,theme:t}=S(),{hasSidebar:o}=F(),{currentLang:n}=Y(),r=k(()=>{var v;return typeof t.value.logoLink=="string"?t.value.logoLink:(v=t.value.logoLink)==null?void 0:v.link}),c=k(()=>{var v;return typeof t.value.logoLink=="string"||(v=t.value.logoLink)==null?void 0:v.rel}),h=k(()=>{var v;return typeof t.value.logoLink=="string"||(v=t.value.logoLink)==null?void 0:v.target});return(v,b)=>(a(),l("div",{class:N(["VPNavBarTitle",{"has-sidebar":i(o)}])},[d("a",{class:"title",href:r.value??i(me)(i(n).link),rel:c.value,target:h.value},[u(v.$slots,"nav-bar-title-before",{},void 0,!0),i(t).logo?(a(),y(ee,{key:0,class:"logo",image:i(t).logo},null,8,["image"])):_("",!0),i(t).siteTitle?(a(),l("span",Wa,L(i(t).siteTitle),1)):i(t).siteTitle===void 0?(a(),l("span",Ja,L(i(e).title),1)):_("",!0),u(v.$slots,"nav-bar-title-after",{},void 0,!0)],8,qa)],2))}}),Xa=m(Ya,[["__scopeId","data-v-ab179fa1"]]),Za={},Qa={xmlns:"http://www.w3.org/2000/svg","aria-hidden":"true",focusable:"false",viewBox:"0 0 24 24"},er=d("path",{d:"M0 0h24v24H0z",fill:"none"},null,-1),tr=d("path",{d:" M12.87 15.07l-2.54-2.51.03-.03c1.74-1.94 2.98-4.17 3.71-6.53H17V4h-7V2H8v2H1v1.99h11.17C11.5 7.92 10.44 9.75 9 11.35 8.07 10.32 7.3 9.19 6.69 8h-2c.73 1.63 1.73 3.17 2.98 4.56l-5.09 5.02L4 19l5-5 3.11 3.11.76-2.04zM18.5 10h-2L12 22h2l1.12-3h4.75L21 22h2l-4.5-12zm-2.62 7l1.62-4.33L19.12 17h-3.24z ",class:"css-c4d79v"},null,-1),sr=[er,tr];function or(s,e){return a(),l("svg",Qa,sr)}const xe=m(Za,[["render",or]]),nr={class:"items"},ar={class:"title"},rr=g({__name:"VPNavBarTranslations",setup(s){const{theme:e}=S(),{localeLinks:t,currentLang:o}=Y({correspondingLink:!0});return(n,r)=>i(t).length&&i(o).label?(a(),y(ye,{key:0,class:"VPNavBarTranslations",icon:xe,label:i(e).langMenuLabel||"Change language"},{default:p(()=>[d("div",nr,[d("p",ar,L(i(o).label),1),(a(!0),l(C,null,B(i(t),c=>(a(),y(ne,{key:c.link,item:c},null,8,["item"]))),128))])]),_:1},8,["label"])):_("",!0)}}),ir=m(rr,[["__scopeId","data-v-74abcbb9"]]),lr=s=>(E("data-v-19c990f1"),s=s(),D(),s),cr={class:"wrapper"},ur={class:"container"},dr={class:"title"},vr={class:"content"},hr={class:"content-body"},pr=lr(()=>d("div",{class:"divider"},[d("div",{class:"divider-line"})],-1)),fr=g({__name:"VPNavBar",props:{isScreenOpen:{type:Boolean}},emits:["toggle-screen"],setup(s){const{y:e}=Ie(),{hasSidebar:t}=F(),{hasLocalNav:o}=Ee(),{frontmatter:n}=S(),r=M({});return Le(()=>{r.value={"has-sidebar":t.value,"has-local-nav":o.value,top:n.value.layout==="home"&&e.value===0}}),(c,h)=>(a(),l("div",{class:N(["VPNavBar",r.value])},[d("div",cr,[d("div",ur,[d("div",dr,[f(Xa,null,{"nav-bar-title-before":p(()=>[u(c.$slots,"nav-bar-title-before",{},void 0,!0)]),"nav-bar-title-after":p(()=>[u(c.$slots,"nav-bar-title-after",{},void 0,!0)]),_:3})]),d("div",vr,[d("div",hr,[u(c.$slots,"nav-bar-content-before",{},void 0,!0),f(Ga,{class:"search"}),f(Ba,{class:"menu"}),f(ir,{class:"translations"}),f(Sn,{class:"appearance"}),f(Ka,{class:"social-links"}),f(ba,{class:"extra"}),u(c.$slots,"nav-bar-content-after",{},void 0,!0),f(Va,{class:"hamburger",active:c.isScreenOpen,onClick:h[0]||(h[0]=v=>c.$emit("toggle-screen"))},null,8,["active"])])])])]),pr],2))}}),_r=m(fr,[["__scopeId","data-v-19c990f1"]]),mr={key:0,class:"VPNavScreenAppearance"},gr={class:"text"},br=g({__name:"VPNavScreenAppearance",setup(s){const{site:e,theme:t}=S();return(o,n)=>i(e).appearance&&i(e).appearance!=="force-dark"?(a(),l("div",mr,[d("p",gr,L(i(t).darkModeSwitchLabel||"Appearance"),1),f($e)])):_("",!0)}}),$r=m(br,[["__scopeId","data-v-2d7af913"]]),kr=g({__name:"VPNavScreenMenuLink",props:{item:{}},setup(s){const e=W("close-screen");return(t,o)=>(a(),y(z,{class:"VPNavScreenMenuLink",href:t.item.link,target:t.item.target,rel:t.item.rel,onClick:i(e)},{default:p(()=>[H(L(t.item.text),1)]),_:1},8,["href","target","rel","onClick"]))}}),yr=m(kr,[["__scopeId","data-v-05f27b2a"]]),Pr={},wr={xmlns:"http://www.w3.org/2000/svg","aria-hidden":"true",focusable:"false",viewBox:"0 0 24 24"},Vr=d("path",{d:"M18.9,10.9h-6v-6c0-0.6-0.4-1-1-1s-1,0.4-1,1v6h-6c-0.6,0-1,0.4-1,1s0.4,1,1,1h6v6c0,0.6,0.4,1,1,1s1-0.4,1-1v-6h6c0.6,0,1-0.4,1-1S19.5,10.9,18.9,10.9z"},null,-1),Sr=[Vr];function Lr(s,e){return a(),l("svg",wr,Sr)}const Mr=m(Pr,[["render",Lr]]),Tr=g({__name:"VPNavScreenMenuGroupLink",props:{item:{}},setup(s){const e=W("close-screen");return(t,o)=>(a(),y(z,{class:"VPNavScreenMenuGroupLink",href:t.item.link,target:t.item.target,rel:t.item.rel,onClick:i(e)},{default:p(()=>[H(L(t.item.text),1)]),_:1},8,["href","target","rel","onClick"]))}}),Ue=m(Tr,[["__scopeId","data-v-19976ae1"]]),Cr={class:"VPNavScreenMenuGroupSection"},Ir={key:0,class:"title"},Nr=g({__name:"VPNavScreenMenuGroupSection",props:{text:{},items:{}},setup(s){return(e,t)=>(a(),l("div",Cr,[e.text?(a(),l("p",Ir,L(e.text),1)):_("",!0),(a(!0),l(C,null,B(e.items,o=>(a(),y(Ue,{key:o.text,item:o},null,8,["item"]))),128))]))}}),Ar=m(Nr,[["__scopeId","data-v-8133b170"]]),Br=["aria-controls","aria-expanded"],Hr=["innerHTML"],zr=["id"],Er={key:1,class:"group"},Dr=g({__name:"VPNavScreenMenuGroup",props:{text:{},items:{}},setup(s){const e=s,t=M(!1),o=k(()=>`NavScreenGroup-${e.text.replace(" ","-").toLowerCase()}`);function n(){t.value=!t.value}return(r,c)=>(a(),l("div",{class:N(["VPNavScreenMenuGroup",{open:t.value}])},[d("button",{class:"button","aria-controls":o.value,"aria-expanded":t.value,onClick:n},[d("span",{class:"button-text",innerHTML:r.text},null,8,Hr),f(Mr,{class:"button-icon"})],8,Br),d("div",{id:o.value,class:"items"},[(a(!0),l(C,null,B(r.items,h=>(a(),l(C,{key:h.text},["link"in h?(a(),l("div",{key:h.text,class:"item"},[f(Ue,{item:h},null,8,["item"])])):(a(),l("div",Er,[f(Ar,{text:h.text,items:h.items},null,8,["text","items"])]))],64))),128))],8,zr)],2))}}),Fr=m(Dr,[["__scopeId","data-v-65ef89ca"]]),Or={key:0,class:"VPNavScreenMenu"},jr=g({__name:"VPNavScreenMenu",setup(s){const{theme:e}=S();return(t,o)=>i(e).nav?(a(),l("nav",Or,[(a(!0),l(C,null,B(i(e).nav,n=>(a(),l(C,{key:n.text},["link"in n?(a(),y(yr,{key:0,item:n},null,8,["item"])):(a(),y(Fr,{key:1,text:n.text||"",items:n.items},null,8,["text","items"]))],64))),128))])):_("",!0)}}),xr=g({__name:"VPNavScreenSocialLinks",setup(s){const{theme:e}=S();return(t,o)=>i(e).socialLinks?(a(),y(Pe,{key:0,class:"VPNavScreenSocialLinks",links:i(e).socialLinks},null,8,["links"])):_("",!0)}}),Ur={class:"list"},Gr=g({__name:"VPNavScreenTranslations",setup(s){const{localeLinks:e,currentLang:t}=Y({correspondingLink:!0}),o=M(!1);function n(){o.value=!o.value}return(r,c)=>i(e).length&&i(t).label?(a(),l("div",{key:0,class:N(["VPNavScreenTranslations",{open:o.value}])},[d("button",{class:"title",onClick:n},[f(xe,{class:"icon lang"}),H(" "+L(i(t).label)+" ",1),f(je,{class:"icon chevron"})]),d("ul",Ur,[(a(!0),l(C,null,B(i(e),h=>(a(),l("li",{key:h.link,class:"item"},[f(z,{class:"link",href:h.link},{default:p(()=>[H(L(h.text),1)]),_:2},1032,["href"])]))),128))])],2)):_("",!0)}}),Rr=m(Gr,[["__scopeId","data-v-d72aa483"]]),Kr={class:"container"},qr=g({__name:"VPNavScreen",props:{open:{type:Boolean}},setup(s){const e=M(null),t=Ne(q?document.body:null);return(o,n)=>(a(),y(he,{name:"fade",onEnter:n[0]||(n[0]=r=>t.value=!0),onAfterLeave:n[1]||(n[1]=r=>t.value=!1)},{default:p(()=>[o.open?(a(),l("div",{key:0,class:"VPNavScreen",ref_key:"screen",ref:e,id:"VPNavScreen"},[d("div",Kr,[u(o.$slots,"nav-screen-content-before",{},void 0,!0),f(jr,{class:"menu"}),f(Rr,{class:"translations"}),f($r,{class:"appearance"}),f(xr,{class:"social-links"}),u(o.$slots,"nav-screen-content-after",{},void 0,!0)])],512)):_("",!0)]),_:3}))}}),Wr=m(qr,[["__scopeId","data-v-cc5739dd"]]),Jr={key:0,class:"VPNav"},Yr=g({__name:"VPNav",setup(s){const{isScreenOpen:e,closeScreen:t,toggleScreen:o}=on(),{frontmatter:n}=S(),r=k(()=>n.value.navbar!==!1);return _e("close-screen",t),te(()=>{q&&document.documentElement.classList.toggle("hide-nav",!r.value)}),(c,h)=>r.value?(a(),l("header",Jr,[f(_r,{"is-screen-open":i(e),onToggleScreen:i(o)},{"nav-bar-title-before":p(()=>[u(c.$slots,"nav-bar-title-before",{},void 0,!0)]),"nav-bar-title-after":p(()=>[u(c.$slots,"nav-bar-title-after",{},void 0,!0)]),"nav-bar-content-before":p(()=>[u(c.$slots,"nav-bar-content-before",{},void 0,!0)]),"nav-bar-content-after":p(()=>[u(c.$slots,"nav-bar-content-after",{},void 0,!0)]),_:3},8,["is-screen-open","onToggleScreen"]),f(Wr,{open:i(e)},{"nav-screen-content-before":p(()=>[u(c.$slots,"nav-screen-content-before",{},void 0,!0)]),"nav-screen-content-after":p(()=>[u(c.$slots,"nav-screen-content-after",{},void 0,!0)]),_:3},8,["open"])])):_("",!0)}}),Xr=m(Yr,[["__scopeId","data-v-ae24b3ad"]]),Zr=s=>(E("data-v-e31bd47b"),s=s(),D(),s),Qr=["role","tabindex"],ei=Zr(()=>d("div",{class:"indicator"},null,-1)),ti={key:1,class:"items"},si=g({__name:"VPSidebarItem",props:{item:{},depth:{}},setup(s){const e=s,{collapsed:t,collapsible:o,isLink:n,isActiveLink:r,hasActiveLink:c,hasChildren:h,toggle:v}=Ct(k(()=>e.item)),b=k(()=>h.value?"section":"div"),P=k(()=>n.value?"a":"div"),$=k(()=>h.value?e.depth+2===7?"p":`h${e.depth+2}`:"p"),V=k(()=>n.value?void 0:"button"),w=k(()=>[[`level-${e.depth}`],{collapsible:o.value},{collapsed:t.value},{"is-link":n.value},{"is-active":r.value},{"has-active":c.value}]);function I(T){"key"in T&&T.key!=="Enter"||!e.item.link&&v()}function A(){e.item.link&&v()}return(T,X)=>{const O=R("VPSidebarItem",!0);return a(),y(U(b.value),{class:N(["VPSidebarItem",w.value])},{default:p(()=>[T.item.text?(a(),l("div",Z({key:0,class:"item",role:V.value},rt(T.item.items?{click:I,keydown:I}:{},!0),{tabindex:T.item.items&&0}),[ei,T.item.link?(a(),y(z,{key:0,tag:P.value,class:"link",href:T.item.link,rel:T.item.rel,target:T.item.target},{default:p(()=>[(a(),y(U($.value),{class:"text",innerHTML:T.item.text},null,8,["innerHTML"]))]),_:1},8,["tag","href","rel","target"])):(a(),y(U($.value),{key:1,class:"text",innerHTML:T.item.text},null,8,["innerHTML"])),T.item.collapsed!=null?(a(),l("div",{key:2,class:"caret",role:"button","aria-label":"toggle section",onClick:A,onKeydown:at(A,["enter"]),tabindex:"0"},[f(De,{class:"caret-icon"})],32)):_("",!0)],16,Qr)):_("",!0),T.item.items&&T.item.items.length?(a(),l("div",ti,[T.depth<5?(a(!0),l(C,{key:0},B(T.item.items,K=>(a(),y(O,{key:K.text,item:K,depth:T.depth+1},null,8,["item","depth"]))),128)):_("",!0)])):_("",!0)]),_:1},8,["class"])}}}),oi=m(si,[["__scopeId","data-v-e31bd47b"]]),Ge=s=>(E("data-v-575e6a36"),s=s(),D(),s),ni=Ge(()=>d("div",{class:"curtain"},null,-1)),ai={class:"nav",id:"VPSidebarNav","aria-labelledby":"sidebar-aria-label",tabindex:"-1"},ri=Ge(()=>d("span",{class:"visually-hidden",id:"sidebar-aria-label"}," Sidebar Navigation ",-1)),ii=g({__name:"VPSidebar",props:{open:{type:Boolean}},setup(s){const{sidebarGroups:e,hasSidebar:t}=F(),o=s,n=M(null),r=Ne(q?document.body:null);return x([o,n],()=>{var c;o.open?(r.value=!0,(c=n.value)==null||c.focus()):r.value=!1},{immediate:!0,flush:"post"}),(c,h)=>i(t)?(a(),l("aside",{key:0,class:N(["VPSidebar",{open:c.open}]),ref_key:"navEl",ref:n,onClick:h[0]||(h[0]=it(()=>{},["stop"]))},[ni,d("nav",ai,[ri,u(c.$slots,"sidebar-nav-before",{},void 0,!0),(a(!0),l(C,null,B(i(e),v=>(a(),l("div",{key:v.text,class:"group"},[f(oi,{item:v,depth:0},null,8,["item"])]))),128)),u(c.$slots,"sidebar-nav-after",{},void 0,!0)])],2)):_("",!0)}}),li=m(ii,[["__scopeId","data-v-575e6a36"]]),ci=g({__name:"VPSkipLink",setup(s){const e=oe(),t=M();x(()=>e.path,()=>t.value.focus());function o({target:n}){const r=document.getElementById(decodeURIComponent(n.hash).slice(1));if(r){const c=()=>{r.removeAttribute("tabindex"),r.removeEventListener("blur",c)};r.setAttribute("tabindex","-1"),r.addEventListener("blur",c),r.focus(),window.scrollTo(0,0)}}return(n,r)=>(a(),l(C,null,[d("span",{ref_key:"backToTop",ref:t,tabindex:"-1"},null,512),d("a",{href:"#VPContent",class:"VPSkipLink visually-hidden",onClick:o}," Skip to content ")],64))}}),ui=m(ci,[["__scopeId","data-v-0f60ec36"]]),di=g({__name:"Layout",setup(s){const{isOpen:e,open:t,close:o}=F(),n=oe();x(()=>n.path,o),Tt(e,o);const{frontmatter:r}=S(),c=Ae(),h=k(()=>!!c["home-hero-image"]);return _e("hero-image-slot-exists",h),(v,b)=>{const P=R("Content");return i(r).layout!==!1?(a(),l("div",{key:0,class:N(["Layout",i(r).pageClass])},[u(v.$slots,"layout-top",{},void 0,!0),f(ui),f(pt,{class:"backdrop",show:i(e),onClick:i(o)},null,8,["show","onClick"]),f(Xr,null,{"nav-bar-title-before":p(()=>[u(v.$slots,"nav-bar-title-before",{},void 0,!0)]),"nav-bar-title-after":p(()=>[u(v.$slots,"nav-bar-title-after",{},void 0,!0)]),"nav-bar-content-before":p(()=>[u(v.$slots,"nav-bar-content-before",{},void 0,!0)]),"nav-bar-content-after":p(()=>[u(v.$slots,"nav-bar-content-after",{},void 0,!0)]),"nav-screen-content-before":p(()=>[u(v.$slots,"nav-screen-content-before",{},void 0,!0)]),"nav-screen-content-after":p(()=>[u(v.$slots,"nav-screen-content-after",{},void 0,!0)]),_:3}),f(sn,{open:i(e),onOpenMenu:i(t)},null,8,["open","onOpenMenu"]),f(li,{open:i(e)},{"sidebar-nav-before":p(()=>[u(v.$slots,"sidebar-nav-before",{},void 0,!0)]),"sidebar-nav-after":p(()=>[u(v.$slots,"sidebar-nav-after",{},void 0,!0)]),_:3},8,["open"]),f(Mo,null,{"page-top":p(()=>[u(v.$slots,"page-top",{},void 0,!0)]),"page-bottom":p(()=>[u(v.$slots,"page-bottom",{},void 0,!0)]),"not-found":p(()=>[u(v.$slots,"not-found",{},void 0,!0)]),"home-hero-before":p(()=>[u(v.$slots,"home-hero-before",{},void 0,!0)]),"home-hero-info-before":p(()=>[u(v.$slots,"home-hero-info-before",{},void 0,!0)]),"home-hero-info":p(()=>[u(v.$slots,"home-hero-info",{},void 0,!0)]),"home-hero-info-after":p(()=>[u(v.$slots,"home-hero-info-after",{},void 0,!0)]),"home-hero-actions-after":p(()=>[u(v.$slots,"home-hero-actions-after",{},void 0,!0)]),"home-hero-image":p(()=>[u(v.$slots,"home-hero-image",{},void 0,!0)]),"home-hero-after":p(()=>[u(v.$slots,"home-hero-after",{},void 0,!0)]),"home-features-before":p(()=>[u(v.$slots,"home-features-before",{},void 0,!0)]),"home-features-after":p(()=>[u(v.$slots,"home-features-after",{},void 0,!0)]),"doc-footer-before":p(()=>[u(v.$slots,"doc-footer-before",{},void 0,!0)]),"doc-before":p(()=>[u(v.$slots,"doc-before",{},void 0,!0)]),"doc-after":p(()=>[u(v.$slots,"doc-after",{},void 0,!0)]),"doc-top":p(()=>[u(v.$slots,"doc-top",{},void 0,!0)]),"doc-bottom":p(()=>[u(v.$slots,"doc-bottom",{},void 0,!0)]),"aside-top":p(()=>[u(v.$slots,"aside-top",{},void 0,!0)]),"aside-bottom":p(()=>[u(v.$slots,"aside-bottom",{},void 0,!0)]),"aside-outline-before":p(()=>[u(v.$slots,"aside-outline-before",{},void 0,!0)]),"aside-outline-after":p(()=>[u(v.$slots,"aside-outline-after",{},void 0,!0)]),"aside-ads-before":p(()=>[u(v.$slots,"aside-ads-before",{},void 0,!0)]),"aside-ads-after":p(()=>[u(v.$slots,"aside-ads-after",{},void 0,!0)]),_:3}),f(Ao),u(v.$slots,"layout-bottom",{},void 0,!0)],2)):(a(),y(P,{key:1}))}}}),vi=m(di,[["__scopeId","data-v-5d98c3a5"]]),Ve={Layout:vi,enhanceApp:({app:s})=>{s.component("Badge",dt)}},hi=s=>{if(typeof document>"u")return{stabilizeScrollPosition:n=>async(...r)=>n(...r)};const e=document.documentElement;return{stabilizeScrollPosition:o=>async(...n)=>{const r=o(...n),c=s.value;if(!c)return r;const h=c.offsetTop-e.scrollTop;return await Ce(),e.scrollTop=c.offsetTop-h,r}}},Re="vitepress:tabSharedState",J=typeof localStorage<"u"?localStorage:null,Ke="vitepress:tabsSharedState",pi=()=>{const s=J==null?void 0:J.getItem(Ke);if(s)try{return JSON.parse(s)}catch{}return{}},fi=s=>{J&&J.setItem(Ke,JSON.stringify(s))},_i=s=>{const e=lt({});x(()=>e.content,(t,o)=>{t&&o&&fi(t)},{deep:!0}),s.provide(Re,e)},mi=(s,e)=>{const t=W(Re);if(!t)throw new Error("[vitepress-plugin-tabs] TabsSharedState should be injected");j(()=>{t.content||(t.content=pi())});const o=M(),n=k({get(){var v;const c=e.value,h=s.value;if(c){const b=(v=t.content)==null?void 0:v[c];if(b&&h.includes(b))return b}else{const b=o.value;if(b)return b}return h[0]},set(c){const h=e.value;h?t.content&&(t.content[h]=c):o.value=c}});return{selected:n,select:c=>{n.value=c}}};let Se=0;const gi=()=>(Se++,""+Se);function bi(){const s=Ae();return k(()=>{var o;const t=(o=s.default)==null?void 0:o.call(s);return t?t.filter(n=>typeof n.type=="object"&&"__name"in n.type&&n.type.__name==="PluginTabsTab"&&n.props).map(n=>{var r;return(r=n.props)==null?void 0:r.label}):[]})}const qe="vitepress:tabSingleState",$i=s=>{_e(qe,s)},ki=()=>{const s=W(qe);if(!s)throw new Error("[vitepress-plugin-tabs] TabsSingleState should be injected");return s},yi={class:"plugin-tabs"},Pi=["id","aria-selected","aria-controls","tabindex","onClick"],wi=g({__name:"PluginTabs",props:{sharedStateKey:{}},setup(s){const e=s,t=bi(),{selected:o,select:n}=mi(t,ct(e,"sharedStateKey")),r=M(),{stabilizeScrollPosition:c}=hi(r),h=c(n),v=M([]),b=$=>{var I;const V=t.value.indexOf(o.value);let w;$.key==="ArrowLeft"?w=V>=1?V-1:t.value.length-1:$.key==="ArrowRight"&&(w=V(a(),l("div",yi,[d("div",{ref_key:"tablist",ref:r,class:"plugin-tabs--tab-list",role:"tablist",onKeydown:b},[(a(!0),l(C,null,B(i(t),w=>(a(),l("button",{id:`tab-${w}-${i(P)}`,ref_for:!0,ref_key:"buttonRefs",ref:v,key:w,role:"tab",class:"plugin-tabs--tab","aria-selected":w===i(o),"aria-controls":`panel-${w}-${i(P)}`,tabindex:w===i(o)?0:-1,onClick:()=>i(h)(w)},L(w),9,Pi))),128))],544),u($.$slots,"default")]))}}),Vi=["id","aria-labelledby"],Si=g({__name:"PluginTabsTab",props:{label:{}},setup(s){const{uid:e,selected:t}=ki();return(o,n)=>i(t)===o.label?(a(),l("div",{key:0,id:`panel-${o.label}-${i(e)}`,class:"plugin-tabs--content",role:"tabpanel",tabindex:"0","aria-labelledby":`tab-${o.label}-${i(e)}`},[u(o.$slots,"default",{},void 0,!0)],8,Vi)):_("",!0)}}),Li=m(Si,[["__scopeId","data-v-b2b19630"]]),Mi=s=>{_i(s),s.component("PluginTabs",wi),s.component("PluginTabsTab",Li)},Ci={extends:Ve,Layout:()=>ut(Ve.Layout,null,{}),enhanceApp({app:s,router:e,siteData:t}){Mi(s)}};export{Ci as R,Ha as c,S as u}; +import{d as g,o as a,c as l,r as u,n as N,a as H,t as L,b as y,w as p,T as he,e as _,_ as m,u as We,i as Je,f as Ye,g as pe,h as M,j as q,k,l as j,m as d,p as i,q as E,s as D,v as G,x as le,y as x,z as te,A as fe,B as Le,C as Xe,D as Ze,E as R,F as C,G as B,H as Me,I as se,J as f,K as U,L as Te,M as oe,N as Z,O as W,P as Qe,Q as ce,R as et,S as Ce,U as Ie,V as tt,W as st,X as ot,Y as nt,Z as Ne,$ as _e,a0 as at,a1 as rt,a2 as it,a3 as Ae,a4 as lt,a5 as ct,a6 as ut}from"./framework.uHRfREZ8.js";const dt=g({__name:"VPBadge",props:{text:{},type:{default:"tip"}},setup(s){return(e,t)=>(a(),l("span",{class:N(["VPBadge",e.type])},[u(e.$slots,"default",{},()=>[H(L(e.text),1)])],2))}}),vt={key:0,class:"VPBackdrop"},ht=g({__name:"VPBackdrop",props:{show:{type:Boolean}},setup(s){return(e,t)=>(a(),y(he,{name:"fade"},{default:p(()=>[e.show?(a(),l("div",vt)):_("",!0)]),_:1}))}}),pt=m(ht,[["__scopeId","data-v-c79a1216"]]),S=We;function ft(s,e){let t,o=!1;return()=>{t&&clearTimeout(t),o?t=setTimeout(s,e):(s(),(o=!0)&&setTimeout(()=>o=!1,e))}}function ue(s){return/^\//.test(s)?s:`/${s}`}function me(s){const{pathname:e,search:t,hash:o,protocol:n}=new URL(s,"http://a.com");if(Je(s)||s.startsWith("#")||!n.startsWith("http")||!Ye(e))return s;const{site:r}=S(),c=e.endsWith("/")||e.endsWith(".html")?s:s.replace(/(?:(^\.+)\/)?.*$/,`$1${e.replace(/(\.md)?$/,r.value.cleanUrls?"":".html")}${t}${o}`);return pe(c)}const ge=M(q?location.hash:"");q&&window.addEventListener("hashchange",()=>{ge.value=location.hash});function Y({removeCurrent:s=!0,correspondingLink:e=!1}={}){const{site:t,localeIndex:o,page:n,theme:r}=S(),c=k(()=>{var v,b;return{label:(v=t.value.locales[o.value])==null?void 0:v.label,link:((b=t.value.locales[o.value])==null?void 0:b.link)||(o.value==="root"?"/":`/${o.value}/`)}});return{localeLinks:k(()=>Object.entries(t.value.locales).flatMap(([v,b])=>s&&c.value.label===b.label?[]:{text:b.label,link:_t(b.link||(v==="root"?"/":`/${v}/`),r.value.i18nRouting!==!1&&e,n.value.relativePath.slice(c.value.link.length-1),!t.value.cleanUrls)+ge.value})),currentLang:c}}function _t(s,e,t,o){return e?s.replace(/\/$/,"")+ue(t.replace(/(^|\/)index\.md$/,"$1").replace(/\.md$/,o?".html":"")):s}const mt=s=>(E("data-v-f87ff6e4"),s=s(),D(),s),gt={class:"NotFound"},bt={class:"code"},$t={class:"title"},kt=mt(()=>d("div",{class:"divider"},null,-1)),yt={class:"quote"},Pt={class:"action"},wt=["href","aria-label"],Vt=g({__name:"NotFound",setup(s){const{site:e,theme:t}=S(),{localeLinks:o}=Y({removeCurrent:!1}),n=M("/");return j(()=>{var c;const r=window.location.pathname.replace(e.value.base,"").replace(/(^.*?\/).*$/,"/$1");o.value.length&&(n.value=((c=o.value.find(({link:h})=>h.startsWith(r)))==null?void 0:c.link)||o.value[0].link)}),(r,c)=>{var h,v,b,P,$;return a(),l("div",gt,[d("p",bt,L(((h=i(t).notFound)==null?void 0:h.code)??"404"),1),d("h1",$t,L(((v=i(t).notFound)==null?void 0:v.title)??"PAGE NOT FOUND"),1),kt,d("blockquote",yt,L(((b=i(t).notFound)==null?void 0:b.quote)??"But if you don't change your direction, and if you keep looking, you may end up where you are heading."),1),d("div",Pt,[d("a",{class:"link",href:i(pe)(n.value),"aria-label":((P=i(t).notFound)==null?void 0:P.linkLabel)??"go to home"},L((($=i(t).notFound)==null?void 0:$.linkText)??"Take me home"),9,wt)])])}}}),St=m(Vt,[["__scopeId","data-v-f87ff6e4"]]);function Be(s,e){if(Array.isArray(s))return Q(s);if(s==null)return[];e=ue(e);const t=Object.keys(s).sort((n,r)=>r.split("/").length-n.split("/").length).find(n=>e.startsWith(ue(n))),o=t?s[t]:[];return Array.isArray(o)?Q(o):Q(o.items,o.base)}function Lt(s){const e=[];let t=0;for(const o in s){const n=s[o];if(n.items){t=e.push(n);continue}e[t]||e.push({items:[]}),e[t].items.push(n)}return e}function Mt(s){const e=[];function t(o){for(const n of o)n.text&&n.link&&e.push({text:n.text,link:n.link,docFooterText:n.docFooterText}),n.items&&t(n.items)}return t(s),e}function de(s,e){return Array.isArray(e)?e.some(t=>de(s,t)):G(s,e.link)?!0:e.items?de(s,e.items):!1}function Q(s,e){return[...s].map(t=>{const o={...t},n=o.base||e;return n&&o.link&&(o.link=n+o.link),o.items&&(o.items=Q(o.items,n)),o})}function F(){const{frontmatter:s,page:e,theme:t}=S(),o=le("(min-width: 960px)"),n=M(!1),r=k(()=>{const A=t.value.sidebar,T=e.value.relativePath;return A?Be(A,T):[]}),c=M(r.value);x(r,(A,T)=>{JSON.stringify(A)!==JSON.stringify(T)&&(c.value=r.value)});const h=k(()=>s.value.sidebar!==!1&&c.value.length>0&&s.value.layout!=="home"),v=k(()=>b?s.value.aside==null?t.value.aside==="left":s.value.aside==="left":!1),b=k(()=>s.value.layout==="home"?!1:s.value.aside!=null?!!s.value.aside:t.value.aside!==!1),P=k(()=>h.value&&o.value),$=k(()=>h.value?Lt(c.value):[]);function V(){n.value=!0}function w(){n.value=!1}function I(){n.value?w():V()}return{isOpen:n,sidebar:c,sidebarGroups:$,hasSidebar:h,hasAside:b,leftAside:v,isSidebarEnabled:P,open:V,close:w,toggle:I}}function Tt(s,e){let t;te(()=>{t=s.value?document.activeElement:void 0}),j(()=>{window.addEventListener("keyup",o)}),fe(()=>{window.removeEventListener("keyup",o)});function o(n){n.key==="Escape"&&s.value&&(e(),t==null||t.focus())}}function Ct(s){const{page:e}=S(),t=M(!1),o=k(()=>s.value.collapsed!=null),n=k(()=>!!s.value.link),r=M(!1),c=()=>{r.value=G(e.value.relativePath,s.value.link)};x([e,s,ge],c),j(c);const h=k(()=>r.value?!0:s.value.items?de(e.value.relativePath,s.value.items):!1),v=k(()=>!!(s.value.items&&s.value.items.length));te(()=>{t.value=!!(o.value&&s.value.collapsed)}),Le(()=>{(r.value||h.value)&&(t.value=!1)});function b(){o.value&&(t.value=!t.value)}return{collapsed:t,collapsible:o,isLink:n,isActiveLink:r,hasActiveLink:h,hasChildren:v,toggle:b}}function It(){const{hasSidebar:s}=F(),e=le("(min-width: 960px)"),t=le("(min-width: 1280px)");return{isAsideEnabled:k(()=>!t.value&&!e.value?!1:s.value?t.value:e.value)}}const ve=[];function He(s){return typeof s.outline=="object"&&!Array.isArray(s.outline)&&s.outline.label||s.outlineTitle||"On this page"}function be(s){const e=[...document.querySelectorAll(".VPDoc :where(h1,h2,h3,h4,h5,h6)")].filter(t=>t.id&&t.hasChildNodes()).map(t=>{const o=Number(t.tagName[1]);return{element:t,title:Nt(t),link:"#"+t.id,level:o}});return At(e,s)}function Nt(s){let e="";for(const t of s.childNodes)if(t.nodeType===1){if(t.classList.contains("VPBadge")||t.classList.contains("header-anchor")||t.classList.contains("ignore-header"))continue;e+=t.textContent}else t.nodeType===3&&(e+=t.textContent);return e.trim()}function At(s,e){if(e===!1)return[];const t=(typeof e=="object"&&!Array.isArray(e)?e.level:e)||2,[o,n]=typeof t=="number"?[t,t]:t==="deep"?[2,6]:t;s=s.filter(c=>c.level>=o&&c.level<=n),ve.length=0;for(const{element:c,link:h}of s)ve.push({element:c,link:h});const r=[];e:for(let c=0;c=0;v--){const b=s[v];if(b.level{requestAnimationFrame(r),window.addEventListener("scroll",o)}),Xe(()=>{c(location.hash)}),fe(()=>{window.removeEventListener("scroll",o)});function r(){if(!t.value)return;const h=window.scrollY,v=window.innerHeight,b=document.body.offsetHeight,P=Math.abs(h+v-b)<1,$=ve.map(({element:w,link:I})=>({link:I,top:Ht(w)})).filter(({top:w})=>!Number.isNaN(w)).sort((w,I)=>w.top-I.top);if(!$.length){c(null);return}if(h<1){c(null);return}if(P){c($[$.length-1].link);return}let V=null;for(const{link:w,top:I}of $){if(I>h+Ze()+4)break;V=w}c(V)}function c(h){n&&n.classList.remove("active"),h==null?n=null:n=s.value.querySelector(`a[href="${decodeURIComponent(h)}"]`);const v=n;v?(v.classList.add("active"),e.value.style.top=v.offsetTop+39+"px",e.value.style.opacity="1"):(e.value.style.top="33px",e.value.style.opacity="0")}}function Ht(s){let e=0;for(;s!==document.body;){if(s===null)return NaN;e+=s.offsetTop,s=s.offsetParent}return e}const zt=["href","title"],Et=g({__name:"VPDocOutlineItem",props:{headers:{},root:{type:Boolean}},setup(s){function e({target:t}){const o=t.href.split("#")[1],n=document.getElementById(decodeURIComponent(o));n==null||n.focus({preventScroll:!0})}return(t,o)=>{const n=R("VPDocOutlineItem",!0);return a(),l("ul",{class:N(["VPDocOutlineItem",t.root?"root":"nested"])},[(a(!0),l(C,null,B(t.headers,({children:r,link:c,title:h})=>(a(),l("li",null,[d("a",{class:"outline-link",href:c,onClick:e,title:h},L(h),9,zt),r!=null&&r.length?(a(),y(n,{key:0,headers:r},null,8,["headers"])):_("",!0)]))),256))],2)}}}),ze=m(Et,[["__scopeId","data-v-b933a997"]]),Dt=s=>(E("data-v-935f8a84"),s=s(),D(),s),Ft={class:"content"},Ot={class:"outline-title",role:"heading","aria-level":"2"},jt={"aria-labelledby":"doc-outline-aria-label"},xt=Dt(()=>d("span",{class:"visually-hidden",id:"doc-outline-aria-label"}," Table of Contents for current page ",-1)),Ut=g({__name:"VPDocAsideOutline",setup(s){const{frontmatter:e,theme:t}=S(),o=Me([]);se(()=>{o.value=be(e.value.outline??t.value.outline)});const n=M(),r=M();return Bt(n,r),(c,h)=>(a(),l("div",{class:N(["VPDocAsideOutline",{"has-outline":o.value.length>0}]),ref_key:"container",ref:n,role:"navigation"},[d("div",Ft,[d("div",{class:"outline-marker",ref_key:"marker",ref:r},null,512),d("div",Ot,L(i(He)(i(t))),1),d("nav",jt,[xt,f(ze,{headers:o.value,root:!0},null,8,["headers"])])])],2))}}),Gt=m(Ut,[["__scopeId","data-v-935f8a84"]]),Rt={class:"VPDocAsideCarbonAds"},Kt=g({__name:"VPDocAsideCarbonAds",props:{carbonAds:{}},setup(s){const e=()=>null;return(t,o)=>(a(),l("div",Rt,[f(i(e),{"carbon-ads":t.carbonAds},null,8,["carbon-ads"])]))}}),qt=s=>(E("data-v-3f215769"),s=s(),D(),s),Wt={class:"VPDocAside"},Jt=qt(()=>d("div",{class:"spacer"},null,-1)),Yt=g({__name:"VPDocAside",setup(s){const{theme:e}=S();return(t,o)=>(a(),l("div",Wt,[u(t.$slots,"aside-top",{},void 0,!0),u(t.$slots,"aside-outline-before",{},void 0,!0),f(Gt),u(t.$slots,"aside-outline-after",{},void 0,!0),Jt,u(t.$slots,"aside-ads-before",{},void 0,!0),i(e).carbonAds?(a(),y(Kt,{key:0,"carbon-ads":i(e).carbonAds},null,8,["carbon-ads"])):_("",!0),u(t.$slots,"aside-ads-after",{},void 0,!0),u(t.$slots,"aside-bottom",{},void 0,!0)]))}}),Xt=m(Yt,[["__scopeId","data-v-3f215769"]]);function Zt(){const{theme:s,page:e}=S();return k(()=>{const{text:t="Edit this page",pattern:o=""}=s.value.editLink||{};let n;return typeof o=="function"?n=o(e.value):n=o.replace(/:path/g,e.value.filePath),{url:n,text:t}})}function Qt(){const{page:s,theme:e,frontmatter:t}=S();return k(()=>{var v,b,P,$,V,w,I,A;const o=Be(e.value.sidebar,s.value.relativePath),n=Mt(o),r=n.findIndex(T=>G(s.value.relativePath,T.link)),c=((v=e.value.docFooter)==null?void 0:v.prev)===!1&&!t.value.prev||t.value.prev===!1,h=((b=e.value.docFooter)==null?void 0:b.next)===!1&&!t.value.next||t.value.next===!1;return{prev:c?void 0:{text:(typeof t.value.prev=="string"?t.value.prev:typeof t.value.prev=="object"?t.value.prev.text:void 0)??((P=n[r-1])==null?void 0:P.docFooterText)??(($=n[r-1])==null?void 0:$.text),link:(typeof t.value.prev=="object"?t.value.prev.link:void 0)??((V=n[r-1])==null?void 0:V.link)},next:h?void 0:{text:(typeof t.value.next=="string"?t.value.next:typeof t.value.next=="object"?t.value.next.text:void 0)??((w=n[r+1])==null?void 0:w.docFooterText)??((I=n[r+1])==null?void 0:I.text),link:(typeof t.value.next=="object"?t.value.next.link:void 0)??((A=n[r+1])==null?void 0:A.link)}}})}const es={},ts={xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},ss=d("path",{d:"M18,23H4c-1.7,0-3-1.3-3-3V6c0-1.7,1.3-3,3-3h7c0.6,0,1,0.4,1,1s-0.4,1-1,1H4C3.4,5,3,5.4,3,6v14c0,0.6,0.4,1,1,1h14c0.6,0,1-0.4,1-1v-7c0-0.6,0.4-1,1-1s1,0.4,1,1v7C21,21.7,19.7,23,18,23z"},null,-1),os=d("path",{d:"M8,17c-0.3,0-0.5-0.1-0.7-0.3C7,16.5,6.9,16.1,7,15.8l1-4c0-0.2,0.1-0.3,0.3-0.5l9.5-9.5c1.2-1.2,3.2-1.2,4.4,0c1.2,1.2,1.2,3.2,0,4.4l-9.5,9.5c-0.1,0.1-0.3,0.2-0.5,0.3l-4,1C8.2,17,8.1,17,8,17zM9.9,12.5l-0.5,2.1l2.1-0.5l9.3-9.3c0.4-0.4,0.4-1.1,0-1.6c-0.4-0.4-1.2-0.4-1.6,0l0,0L9.9,12.5z M18.5,2.5L18.5,2.5L18.5,2.5z"},null,-1),ns=[ss,os];function as(s,e){return a(),l("svg",ts,ns)}const rs=m(es,[["render",as]]),z=g({__name:"VPLink",props:{tag:{},href:{},noIcon:{type:Boolean},target:{},rel:{}},setup(s){const e=s,t=k(()=>e.tag??(e.href?"a":"span")),o=k(()=>e.href&&Te.test(e.href));return(n,r)=>(a(),y(U(t.value),{class:N(["VPLink",{link:n.href,"vp-external-link-icon":o.value,"no-icon":n.noIcon}]),href:n.href?i(me)(n.href):void 0,target:n.target??(o.value?"_blank":void 0),rel:n.rel??(o.value?"noreferrer":void 0)},{default:p(()=>[u(n.$slots,"default")]),_:3},8,["class","href","target","rel"]))}}),is={class:"VPLastUpdated"},ls=["datetime"],cs=g({__name:"VPDocFooterLastUpdated",setup(s){const{theme:e,page:t,frontmatter:o,lang:n}=S(),r=k(()=>new Date(o.value.lastUpdated??t.value.lastUpdated)),c=k(()=>r.value.toISOString()),h=M("");return j(()=>{te(()=>{var v,b,P;h.value=new Intl.DateTimeFormat((b=(v=e.value.lastUpdated)==null?void 0:v.formatOptions)!=null&&b.forceLocale?n.value:void 0,((P=e.value.lastUpdated)==null?void 0:P.formatOptions)??{dateStyle:"short",timeStyle:"short"}).format(r.value)})}),(v,b)=>{var P;return a(),l("p",is,[H(L(((P=i(e).lastUpdated)==null?void 0:P.text)||i(e).lastUpdatedText||"Last updated")+": ",1),d("time",{datetime:c.value},L(h.value),9,ls)])}}}),us=m(cs,[["__scopeId","data-v-7e05ebdb"]]),ds={key:0,class:"VPDocFooter"},vs={key:0,class:"edit-info"},hs={key:0,class:"edit-link"},ps={key:1,class:"last-updated"},fs={key:1,class:"prev-next"},_s={class:"pager"},ms=["innerHTML"],gs=["innerHTML"],bs={class:"pager"},$s=["innerHTML"],ks=["innerHTML"],ys=g({__name:"VPDocFooter",setup(s){const{theme:e,page:t,frontmatter:o}=S(),n=Zt(),r=Qt(),c=k(()=>e.value.editLink&&o.value.editLink!==!1),h=k(()=>t.value.lastUpdated&&o.value.lastUpdated!==!1),v=k(()=>c.value||h.value||r.value.prev||r.value.next);return(b,P)=>{var $,V,w,I;return v.value?(a(),l("footer",ds,[u(b.$slots,"doc-footer-before",{},void 0,!0),c.value||h.value?(a(),l("div",vs,[c.value?(a(),l("div",hs,[f(z,{class:"edit-link-button",href:i(n).url,"no-icon":!0},{default:p(()=>[f(rs,{class:"edit-link-icon","aria-label":"edit icon"}),H(" "+L(i(n).text),1)]),_:1},8,["href"])])):_("",!0),h.value?(a(),l("div",ps,[f(us)])):_("",!0)])):_("",!0),($=i(r).prev)!=null&&$.link||(V=i(r).next)!=null&&V.link?(a(),l("nav",fs,[d("div",_s,[(w=i(r).prev)!=null&&w.link?(a(),y(z,{key:0,class:"pager-link prev",href:i(r).prev.link},{default:p(()=>{var A;return[d("span",{class:"desc",innerHTML:((A=i(e).docFooter)==null?void 0:A.prev)||"Previous page"},null,8,ms),d("span",{class:"title",innerHTML:i(r).prev.text},null,8,gs)]}),_:1},8,["href"])):_("",!0)]),d("div",bs,[(I=i(r).next)!=null&&I.link?(a(),y(z,{key:0,class:"pager-link next",href:i(r).next.link},{default:p(()=>{var A;return[d("span",{class:"desc",innerHTML:((A=i(e).docFooter)==null?void 0:A.next)||"Next page"},null,8,$s),d("span",{class:"title",innerHTML:i(r).next.text},null,8,ks)]}),_:1},8,["href"])):_("",!0)])])):_("",!0)])):_("",!0)}}}),Ps=m(ys,[["__scopeId","data-v-48f9bb55"]]),ws=s=>(E("data-v-39a288b8"),s=s(),D(),s),Vs={class:"container"},Ss=ws(()=>d("div",{class:"aside-curtain"},null,-1)),Ls={class:"aside-container"},Ms={class:"aside-content"},Ts={class:"content"},Cs={class:"content-container"},Is={class:"main"},Ns=g({__name:"VPDoc",setup(s){const{theme:e}=S(),t=oe(),{hasSidebar:o,hasAside:n,leftAside:r}=F(),c=k(()=>t.path.replace(/[./]+/g,"_").replace(/_html$/,""));return(h,v)=>{const b=R("Content");return a(),l("div",{class:N(["VPDoc",{"has-sidebar":i(o),"has-aside":i(n)}])},[u(h.$slots,"doc-top",{},void 0,!0),d("div",Vs,[i(n)?(a(),l("div",{key:0,class:N(["aside",{"left-aside":i(r)}])},[Ss,d("div",Ls,[d("div",Ms,[f(Xt,null,{"aside-top":p(()=>[u(h.$slots,"aside-top",{},void 0,!0)]),"aside-bottom":p(()=>[u(h.$slots,"aside-bottom",{},void 0,!0)]),"aside-outline-before":p(()=>[u(h.$slots,"aside-outline-before",{},void 0,!0)]),"aside-outline-after":p(()=>[u(h.$slots,"aside-outline-after",{},void 0,!0)]),"aside-ads-before":p(()=>[u(h.$slots,"aside-ads-before",{},void 0,!0)]),"aside-ads-after":p(()=>[u(h.$slots,"aside-ads-after",{},void 0,!0)]),_:3})])])],2)):_("",!0),d("div",Ts,[d("div",Cs,[u(h.$slots,"doc-before",{},void 0,!0),d("main",Is,[f(b,{class:N(["vp-doc",[c.value,i(e).externalLinkIcon&&"external-link-icon-enabled"]])},null,8,["class"])]),f(Ps,null,{"doc-footer-before":p(()=>[u(h.$slots,"doc-footer-before",{},void 0,!0)]),_:3}),u(h.$slots,"doc-after",{},void 0,!0)])])]),u(h.$slots,"doc-bottom",{},void 0,!0)],2)}}}),As=m(Ns,[["__scopeId","data-v-39a288b8"]]),Bs=g({__name:"VPButton",props:{tag:{},size:{default:"medium"},theme:{default:"brand"},text:{},href:{},target:{},rel:{}},setup(s){const e=s,t=k(()=>e.href&&Te.test(e.href)),o=k(()=>e.tag||e.href?"a":"button");return(n,r)=>(a(),y(U(o.value),{class:N(["VPButton",[n.size,n.theme]]),href:n.href?i(me)(n.href):void 0,target:e.target??(t.value?"_blank":void 0),rel:e.rel??(t.value?"noreferrer":void 0)},{default:p(()=>[H(L(n.text),1)]),_:1},8,["class","href","target","rel"]))}}),Hs=m(Bs,[["__scopeId","data-v-cad61b99"]]),zs=["src","alt"],Es=g({inheritAttrs:!1,__name:"VPImage",props:{image:{},alt:{}},setup(s){return(e,t)=>{const o=R("VPImage",!0);return e.image?(a(),l(C,{key:0},[typeof e.image=="string"||"src"in e.image?(a(),l("img",Z({key:0,class:"VPImage"},typeof e.image=="string"?e.$attrs:{...e.image,...e.$attrs},{src:i(pe)(typeof e.image=="string"?e.image:e.image.src),alt:e.alt??(typeof e.image=="string"?"":e.image.alt||"")}),null,16,zs)):(a(),l(C,{key:1},[f(o,Z({class:"dark",image:e.image.dark,alt:e.image.alt},e.$attrs),null,16,["image","alt"]),f(o,Z({class:"light",image:e.image.light,alt:e.image.alt},e.$attrs),null,16,["image","alt"])],64))],64)):_("",!0)}}}),ee=m(Es,[["__scopeId","data-v-8426fc1a"]]),Ds=s=>(E("data-v-303bb580"),s=s(),D(),s),Fs={class:"container"},Os={class:"main"},js={key:0,class:"name"},xs=["innerHTML"],Us=["innerHTML"],Gs=["innerHTML"],Rs={key:0,class:"actions"},Ks={key:0,class:"image"},qs={class:"image-container"},Ws=Ds(()=>d("div",{class:"image-bg"},null,-1)),Js=g({__name:"VPHero",props:{name:{},text:{},tagline:{},image:{},actions:{}},setup(s){const e=W("hero-image-slot-exists");return(t,o)=>(a(),l("div",{class:N(["VPHero",{"has-image":t.image||i(e)}])},[d("div",Fs,[d("div",Os,[u(t.$slots,"home-hero-info-before",{},void 0,!0),u(t.$slots,"home-hero-info",{},()=>[t.name?(a(),l("h1",js,[d("span",{innerHTML:t.name,class:"clip"},null,8,xs)])):_("",!0),t.text?(a(),l("p",{key:1,innerHTML:t.text,class:"text"},null,8,Us)):_("",!0),t.tagline?(a(),l("p",{key:2,innerHTML:t.tagline,class:"tagline"},null,8,Gs)):_("",!0)],!0),u(t.$slots,"home-hero-info-after",{},void 0,!0),t.actions?(a(),l("div",Rs,[(a(!0),l(C,null,B(t.actions,n=>(a(),l("div",{key:n.link,class:"action"},[f(Hs,{tag:"a",size:"medium",theme:n.theme,text:n.text,href:n.link,target:n.target,rel:n.rel},null,8,["theme","text","href","target","rel"])]))),128))])):_("",!0),u(t.$slots,"home-hero-actions-after",{},void 0,!0)]),t.image||i(e)?(a(),l("div",Ks,[d("div",qs,[Ws,u(t.$slots,"home-hero-image",{},()=>[t.image?(a(),y(ee,{key:0,class:"image-src",image:t.image},null,8,["image"])):_("",!0)],!0)])])):_("",!0)])],2))}}),Ys=m(Js,[["__scopeId","data-v-303bb580"]]),Xs=g({__name:"VPHomeHero",setup(s){const{frontmatter:e}=S();return(t,o)=>i(e).hero?(a(),y(Ys,{key:0,class:"VPHomeHero",name:i(e).hero.name,text:i(e).hero.text,tagline:i(e).hero.tagline,image:i(e).hero.image,actions:i(e).hero.actions},{"home-hero-info-before":p(()=>[u(t.$slots,"home-hero-info-before")]),"home-hero-info":p(()=>[u(t.$slots,"home-hero-info")]),"home-hero-info-after":p(()=>[u(t.$slots,"home-hero-info-after")]),"home-hero-actions-after":p(()=>[u(t.$slots,"home-hero-actions-after")]),"home-hero-image":p(()=>[u(t.$slots,"home-hero-image")]),_:3},8,["name","text","tagline","image","actions"])):_("",!0)}}),Zs={},Qs={xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},eo=d("path",{d:"M19.9,12.4c0.1-0.2,0.1-0.5,0-0.8c-0.1-0.1-0.1-0.2-0.2-0.3l-7-7c-0.4-0.4-1-0.4-1.4,0s-0.4,1,0,1.4l5.3,5.3H5c-0.6,0-1,0.4-1,1s0.4,1,1,1h11.6l-5.3,5.3c-0.4,0.4-0.4,1,0,1.4c0.2,0.2,0.5,0.3,0.7,0.3s0.5-0.1,0.7-0.3l7-7C19.8,12.6,19.9,12.5,19.9,12.4z"},null,-1),to=[eo];function so(s,e){return a(),l("svg",Qs,to)}const oo=m(Zs,[["render",so]]),no={class:"box"},ao={key:0,class:"icon"},ro=["innerHTML"],io=["innerHTML"],lo=["innerHTML"],co={key:4,class:"link-text"},uo={class:"link-text-value"},vo=g({__name:"VPFeature",props:{icon:{},title:{},details:{},link:{},linkText:{},rel:{},target:{}},setup(s){return(e,t)=>(a(),y(z,{class:"VPFeature",href:e.link,rel:e.rel,target:e.target,"no-icon":!0,tag:e.link?"a":"div"},{default:p(()=>[d("article",no,[typeof e.icon=="object"&&e.icon.wrap?(a(),l("div",ao,[f(ee,{image:e.icon,alt:e.icon.alt,height:e.icon.height||48,width:e.icon.width||48},null,8,["image","alt","height","width"])])):typeof e.icon=="object"?(a(),y(ee,{key:1,image:e.icon,alt:e.icon.alt,height:e.icon.height||48,width:e.icon.width||48},null,8,["image","alt","height","width"])):e.icon?(a(),l("div",{key:2,class:"icon",innerHTML:e.icon},null,8,ro)):_("",!0),d("h2",{class:"title",innerHTML:e.title},null,8,io),e.details?(a(),l("p",{key:3,class:"details",innerHTML:e.details},null,8,lo)):_("",!0),e.linkText?(a(),l("div",co,[d("p",uo,[H(L(e.linkText)+" ",1),f(oo,{class:"link-text-icon"})])])):_("",!0)])]),_:1},8,["href","rel","target","tag"]))}}),ho=m(vo,[["__scopeId","data-v-33204567"]]),po={key:0,class:"VPFeatures"},fo={class:"container"},_o={class:"items"},mo=g({__name:"VPFeatures",props:{features:{}},setup(s){const e=s,t=k(()=>{const o=e.features.length;if(o){if(o===2)return"grid-2";if(o===3)return"grid-3";if(o%3===0)return"grid-6";if(o>3)return"grid-4"}else return});return(o,n)=>o.features?(a(),l("div",po,[d("div",fo,[d("div",_o,[(a(!0),l(C,null,B(o.features,r=>(a(),l("div",{key:r.title,class:N(["item",[t.value]])},[f(ho,{icon:r.icon,title:r.title,details:r.details,link:r.link,"link-text":r.linkText,rel:r.rel,target:r.target},null,8,["icon","title","details","link","link-text","rel","target"])],2))),128))])])])):_("",!0)}}),go=m(mo,[["__scopeId","data-v-a6181336"]]),bo=g({__name:"VPHomeFeatures",setup(s){const{frontmatter:e}=S();return(t,o)=>i(e).features?(a(),y(go,{key:0,class:"VPHomeFeatures",features:i(e).features},null,8,["features"])):_("",!0)}}),$o={class:"VPHome"},ko=g({__name:"VPHome",setup(s){return(e,t)=>{const o=R("Content");return a(),l("div",$o,[u(e.$slots,"home-hero-before",{},void 0,!0),f(Xs,null,{"home-hero-info-before":p(()=>[u(e.$slots,"home-hero-info-before",{},void 0,!0)]),"home-hero-info":p(()=>[u(e.$slots,"home-hero-info",{},void 0,!0)]),"home-hero-info-after":p(()=>[u(e.$slots,"home-hero-info-after",{},void 0,!0)]),"home-hero-actions-after":p(()=>[u(e.$slots,"home-hero-actions-after",{},void 0,!0)]),"home-hero-image":p(()=>[u(e.$slots,"home-hero-image",{},void 0,!0)]),_:3}),u(e.$slots,"home-hero-after",{},void 0,!0),u(e.$slots,"home-features-before",{},void 0,!0),f(bo),u(e.$slots,"home-features-after",{},void 0,!0),f(o)])}}}),yo=m(ko,[["__scopeId","data-v-c71b6826"]]),Po={},wo={class:"VPPage"};function Vo(s,e){const t=R("Content");return a(),l("div",wo,[u(s.$slots,"page-top"),f(t),u(s.$slots,"page-bottom")])}const So=m(Po,[["render",Vo]]),Lo=g({__name:"VPContent",setup(s){const{page:e,frontmatter:t}=S(),{hasSidebar:o}=F();return(n,r)=>(a(),l("div",{class:N(["VPContent",{"has-sidebar":i(o),"is-home":i(t).layout==="home"}]),id:"VPContent"},[i(e).isNotFound?u(n.$slots,"not-found",{key:0},()=>[f(St)],!0):i(t).layout==="page"?(a(),y(So,{key:1},{"page-top":p(()=>[u(n.$slots,"page-top",{},void 0,!0)]),"page-bottom":p(()=>[u(n.$slots,"page-bottom",{},void 0,!0)]),_:3})):i(t).layout==="home"?(a(),y(yo,{key:2},{"home-hero-before":p(()=>[u(n.$slots,"home-hero-before",{},void 0,!0)]),"home-hero-info-before":p(()=>[u(n.$slots,"home-hero-info-before",{},void 0,!0)]),"home-hero-info":p(()=>[u(n.$slots,"home-hero-info",{},void 0,!0)]),"home-hero-info-after":p(()=>[u(n.$slots,"home-hero-info-after",{},void 0,!0)]),"home-hero-actions-after":p(()=>[u(n.$slots,"home-hero-actions-after",{},void 0,!0)]),"home-hero-image":p(()=>[u(n.$slots,"home-hero-image",{},void 0,!0)]),"home-hero-after":p(()=>[u(n.$slots,"home-hero-after",{},void 0,!0)]),"home-features-before":p(()=>[u(n.$slots,"home-features-before",{},void 0,!0)]),"home-features-after":p(()=>[u(n.$slots,"home-features-after",{},void 0,!0)]),_:3})):i(t).layout&&i(t).layout!=="doc"?(a(),y(U(i(t).layout),{key:3})):(a(),y(As,{key:4},{"doc-top":p(()=>[u(n.$slots,"doc-top",{},void 0,!0)]),"doc-bottom":p(()=>[u(n.$slots,"doc-bottom",{},void 0,!0)]),"doc-footer-before":p(()=>[u(n.$slots,"doc-footer-before",{},void 0,!0)]),"doc-before":p(()=>[u(n.$slots,"doc-before",{},void 0,!0)]),"doc-after":p(()=>[u(n.$slots,"doc-after",{},void 0,!0)]),"aside-top":p(()=>[u(n.$slots,"aside-top",{},void 0,!0)]),"aside-outline-before":p(()=>[u(n.$slots,"aside-outline-before",{},void 0,!0)]),"aside-outline-after":p(()=>[u(n.$slots,"aside-outline-after",{},void 0,!0)]),"aside-ads-before":p(()=>[u(n.$slots,"aside-ads-before",{},void 0,!0)]),"aside-ads-after":p(()=>[u(n.$slots,"aside-ads-after",{},void 0,!0)]),"aside-bottom":p(()=>[u(n.$slots,"aside-bottom",{},void 0,!0)]),_:3}))],2))}}),Mo=m(Lo,[["__scopeId","data-v-1428d186"]]),To={class:"container"},Co=["innerHTML"],Io=["innerHTML"],No=g({__name:"VPFooter",setup(s){const{theme:e,frontmatter:t}=S(),{hasSidebar:o}=F();return(n,r)=>i(e).footer&&i(t).footer!==!1?(a(),l("footer",{key:0,class:N(["VPFooter",{"has-sidebar":i(o)}])},[d("div",To,[i(e).footer.message?(a(),l("p",{key:0,class:"message",innerHTML:i(e).footer.message},null,8,Co)):_("",!0),i(e).footer.copyright?(a(),l("p",{key:1,class:"copyright",innerHTML:i(e).footer.copyright},null,8,Io)):_("",!0)])],2)):_("",!0)}}),Ao=m(No,[["__scopeId","data-v-e315a0ad"]]);function Ee(){const{theme:s,frontmatter:e}=S(),t=Me([]),o=k(()=>t.value.length>0);return se(()=>{t.value=be(e.value.outline??s.value.outline)}),{headers:t,hasLocalNav:o}}const Bo={},Ho={xmlns:"http://www.w3.org/2000/svg","aria-hidden":"true",focusable:"false",viewBox:"0 0 24 24"},zo=d("path",{d:"M9,19c-0.3,0-0.5-0.1-0.7-0.3c-0.4-0.4-0.4-1,0-1.4l5.3-5.3L8.3,6.7c-0.4-0.4-0.4-1,0-1.4s1-0.4,1.4,0l6,6c0.4,0.4,0.4,1,0,1.4l-6,6C9.5,18.9,9.3,19,9,19z"},null,-1),Eo=[zo];function Do(s,e){return a(),l("svg",Ho,Eo)}const De=m(Bo,[["render",Do]]),Fo={class:"header"},Oo={class:"outline"},jo=g({__name:"VPLocalNavOutlineDropdown",props:{headers:{},navHeight:{}},setup(s){const e=s,{theme:t}=S(),o=M(!1),n=M(0),r=M(),c=M();Qe(r,()=>{o.value=!1}),ce("Escape",()=>{o.value=!1}),se(()=>{o.value=!1});function h(){o.value=!o.value,n.value=window.innerHeight+Math.min(window.scrollY-e.navHeight,0)}function v(P){P.target.classList.contains("outline-link")&&(c.value&&(c.value.style.transition="none"),Ce(()=>{o.value=!1}))}function b(){o.value=!1,window.scrollTo({top:0,left:0,behavior:"smooth"})}return(P,$)=>(a(),l("div",{class:"VPLocalNavOutlineDropdown",style:et({"--vp-vh":n.value+"px"}),ref_key:"main",ref:r},[P.headers.length>0?(a(),l("button",{key:0,onClick:h,class:N({open:o.value})},[H(L(i(He)(i(t)))+" ",1),f(De,{class:"icon"})],2)):(a(),l("button",{key:1,onClick:b},L(i(t).returnToTopLabel||"Return to top"),1)),f(he,{name:"flyout"},{default:p(()=>[o.value?(a(),l("div",{key:0,ref_key:"items",ref:c,class:"items",onClick:v},[d("div",Fo,[d("a",{class:"top-link",href:"#",onClick:b},L(i(t).returnToTopLabel||"Return to top"),1)]),d("div",Oo,[f(ze,{headers:P.headers},null,8,["headers"])])],512)):_("",!0)]),_:1})],4))}}),xo=m(jo,[["__scopeId","data-v-af18c0d5"]]),Uo={},Go={xmlns:"http://www.w3.org/2000/svg","aria-hidden":"true",focusable:"false",viewBox:"0 0 24 24"},Ro=d("path",{d:"M17,11H3c-0.6,0-1-0.4-1-1s0.4-1,1-1h14c0.6,0,1,0.4,1,1S17.6,11,17,11z"},null,-1),Ko=d("path",{d:"M21,7H3C2.4,7,2,6.6,2,6s0.4-1,1-1h18c0.6,0,1,0.4,1,1S21.6,7,21,7z"},null,-1),qo=d("path",{d:"M21,15H3c-0.6,0-1-0.4-1-1s0.4-1,1-1h18c0.6,0,1,0.4,1,1S21.6,15,21,15z"},null,-1),Wo=d("path",{d:"M17,19H3c-0.6,0-1-0.4-1-1s0.4-1,1-1h14c0.6,0,1,0.4,1,1S17.6,19,17,19z"},null,-1),Jo=[Ro,Ko,qo,Wo];function Yo(s,e){return a(),l("svg",Go,Jo)}const Xo=m(Uo,[["render",Yo]]),Zo={class:"container"},Qo=["aria-expanded"],en={class:"menu-text"},tn=g({__name:"VPLocalNav",props:{open:{type:Boolean}},emits:["open-menu"],setup(s){const{theme:e,frontmatter:t}=S(),{hasSidebar:o}=F(),{headers:n}=Ee(),{y:r}=Ie(),c=M(0);j(()=>{c.value=parseInt(getComputedStyle(document.documentElement).getPropertyValue("--vp-nav-height"))}),se(()=>{n.value=be(t.value.outline??e.value.outline)});const h=k(()=>n.value.length===0),v=k(()=>h.value&&!o.value),b=k(()=>({VPLocalNav:!0,"has-sidebar":o.value,empty:h.value,fixed:v.value}));return(P,$)=>i(t).layout!=="home"&&(!v.value||i(r)>=c.value)?(a(),l("div",{key:0,class:N(b.value)},[d("div",Zo,[i(o)?(a(),l("button",{key:0,class:"menu","aria-expanded":P.open,"aria-controls":"VPSidebarNav",onClick:$[0]||($[0]=V=>P.$emit("open-menu"))},[f(Xo,{class:"menu-icon"}),d("span",en,L(i(e).sidebarMenuLabel||"Menu"),1)],8,Qo)):_("",!0),f(xo,{headers:i(n),navHeight:c.value},null,8,["headers","navHeight"])])],2)):_("",!0)}}),sn=m(tn,[["__scopeId","data-v-0282ae07"]]);function on(){const s=M(!1);function e(){s.value=!0,window.addEventListener("resize",n)}function t(){s.value=!1,window.removeEventListener("resize",n)}function o(){s.value?t():e()}function n(){window.outerWidth>=768&&t()}const r=oe();return x(()=>r.path,t),{isScreenOpen:s,openScreen:e,closeScreen:t,toggleScreen:o}}const nn={},an={class:"VPSwitch",type:"button",role:"switch"},rn={class:"check"},ln={key:0,class:"icon"};function cn(s,e){return a(),l("button",an,[d("span",rn,[s.$slots.default?(a(),l("span",ln,[u(s.$slots,"default",{},void 0,!0)])):_("",!0)])])}const un=m(nn,[["render",cn],["__scopeId","data-v-b1685198"]]),dn={},vn={xmlns:"http://www.w3.org/2000/svg","aria-hidden":"true",focusable:"false",viewBox:"0 0 24 24"},hn=d("path",{d:"M12.1,22c-0.3,0-0.6,0-0.9,0c-5.5-0.5-9.5-5.4-9-10.9c0.4-4.8,4.2-8.6,9-9c0.4,0,0.8,0.2,1,0.5c0.2,0.3,0.2,0.8-0.1,1.1c-2,2.7-1.4,6.4,1.3,8.4c2.1,1.6,5,1.6,7.1,0c0.3-0.2,0.7-0.3,1.1-0.1c0.3,0.2,0.5,0.6,0.5,1c-0.2,2.7-1.5,5.1-3.6,6.8C16.6,21.2,14.4,22,12.1,22zM9.3,4.4c-2.9,1-5,3.6-5.2,6.8c-0.4,4.4,2.8,8.3,7.2,8.7c2.1,0.2,4.2-0.4,5.8-1.8c1.1-0.9,1.9-2.1,2.4-3.4c-2.5,0.9-5.3,0.5-7.5-1.1C9.2,11.4,8.1,7.7,9.3,4.4z"},null,-1),pn=[hn];function fn(s,e){return a(),l("svg",vn,pn)}const _n=m(dn,[["render",fn]]),mn={},gn={xmlns:"http://www.w3.org/2000/svg","aria-hidden":"true",focusable:"false",viewBox:"0 0 24 24"},bn=tt('',9),$n=[bn];function kn(s,e){return a(),l("svg",gn,$n)}const yn=m(mn,[["render",kn]]),Pn=g({__name:"VPSwitchAppearance",setup(s){const{isDark:e,theme:t}=S(),o=W("toggle-appearance",()=>{e.value=!e.value}),n=k(()=>e.value?t.value.lightModeSwitchTitle||"Switch to light theme":t.value.darkModeSwitchTitle||"Switch to dark theme");return(r,c)=>(a(),y(un,{title:n.value,class:"VPSwitchAppearance","aria-checked":i(e),onClick:i(o)},{default:p(()=>[f(yn,{class:"sun"}),f(_n,{class:"moon"})]),_:1},8,["title","aria-checked","onClick"]))}}),$e=m(Pn,[["__scopeId","data-v-1736f215"]]),wn={key:0,class:"VPNavBarAppearance"},Vn=g({__name:"VPNavBarAppearance",setup(s){const{site:e}=S();return(t,o)=>i(e).appearance&&i(e).appearance!=="force-dark"?(a(),l("div",wn,[f($e)])):_("",!0)}}),Sn=m(Vn,[["__scopeId","data-v-e6aabb21"]]),ke=M();let Fe=!1,ie=0;function Ln(s){const e=M(!1);if(q){!Fe&&Mn(),ie++;const t=x(ke,o=>{var n,r,c;o===s.el.value||(n=s.el.value)!=null&&n.contains(o)?(e.value=!0,(r=s.onFocus)==null||r.call(s)):(e.value=!1,(c=s.onBlur)==null||c.call(s))});fe(()=>{t(),ie--,ie||Tn()})}return st(e)}function Mn(){document.addEventListener("focusin",Oe),Fe=!0,ke.value=document.activeElement}function Tn(){document.removeEventListener("focusin",Oe)}function Oe(){ke.value=document.activeElement}const Cn={},In={xmlns:"http://www.w3.org/2000/svg","aria-hidden":"true",focusable:"false",viewBox:"0 0 24 24"},Nn=d("path",{d:"M12,16c-0.3,0-0.5-0.1-0.7-0.3l-6-6c-0.4-0.4-0.4-1,0-1.4s1-0.4,1.4,0l5.3,5.3l5.3-5.3c0.4-0.4,1-0.4,1.4,0s0.4,1,0,1.4l-6,6C12.5,15.9,12.3,16,12,16z"},null,-1),An=[Nn];function Bn(s,e){return a(),l("svg",In,An)}const je=m(Cn,[["render",Bn]]),Hn={},zn={xmlns:"http://www.w3.org/2000/svg","aria-hidden":"true",focusable:"false",viewBox:"0 0 24 24"},En=d("circle",{cx:"12",cy:"12",r:"2"},null,-1),Dn=d("circle",{cx:"19",cy:"12",r:"2"},null,-1),Fn=d("circle",{cx:"5",cy:"12",r:"2"},null,-1),On=[En,Dn,Fn];function jn(s,e){return a(),l("svg",zn,On)}const xn=m(Hn,[["render",jn]]),Un={class:"VPMenuLink"},Gn=g({__name:"VPMenuLink",props:{item:{}},setup(s){const{page:e}=S();return(t,o)=>(a(),l("div",Un,[f(z,{class:N({active:i(G)(i(e).relativePath,t.item.activeMatch||t.item.link,!!t.item.activeMatch)}),href:t.item.link,target:t.item.target,rel:t.item.rel},{default:p(()=>[H(L(t.item.text),1)]),_:1},8,["class","href","target","rel"])]))}}),ne=m(Gn,[["__scopeId","data-v-43f1e123"]]),Rn={class:"VPMenuGroup"},Kn={key:0,class:"title"},qn=g({__name:"VPMenuGroup",props:{text:{},items:{}},setup(s){return(e,t)=>(a(),l("div",Rn,[e.text?(a(),l("p",Kn,L(e.text),1)):_("",!0),(a(!0),l(C,null,B(e.items,o=>(a(),l(C,null,["link"in o?(a(),y(ne,{key:0,item:o},null,8,["item"])):_("",!0)],64))),256))]))}}),Wn=m(qn,[["__scopeId","data-v-69e747b5"]]),Jn={class:"VPMenu"},Yn={key:0,class:"items"},Xn=g({__name:"VPMenu",props:{items:{}},setup(s){return(e,t)=>(a(),l("div",Jn,[e.items?(a(),l("div",Yn,[(a(!0),l(C,null,B(e.items,o=>(a(),l(C,{key:o.text},["link"in o?(a(),y(ne,{key:0,item:o},null,8,["item"])):(a(),y(Wn,{key:1,text:o.text,items:o.items},null,8,["text","items"]))],64))),128))])):_("",!0),u(e.$slots,"default",{},void 0,!0)]))}}),Zn=m(Xn,[["__scopeId","data-v-e7ea1737"]]),Qn=["aria-expanded","aria-label"],ea={key:0,class:"text"},ta=["innerHTML"],sa={class:"menu"},oa=g({__name:"VPFlyout",props:{icon:{},button:{},label:{},items:{}},setup(s){const e=M(!1),t=M();Ln({el:t,onBlur:o});function o(){e.value=!1}return(n,r)=>(a(),l("div",{class:"VPFlyout",ref_key:"el",ref:t,onMouseenter:r[1]||(r[1]=c=>e.value=!0),onMouseleave:r[2]||(r[2]=c=>e.value=!1)},[d("button",{type:"button",class:"button","aria-haspopup":"true","aria-expanded":e.value,"aria-label":n.label,onClick:r[0]||(r[0]=c=>e.value=!e.value)},[n.button||n.icon?(a(),l("span",ea,[n.icon?(a(),y(U(n.icon),{key:0,class:"option-icon"})):_("",!0),n.button?(a(),l("span",{key:1,innerHTML:n.button},null,8,ta)):_("",!0),f(je,{class:"text-icon"})])):(a(),y(xn,{key:1,class:"icon"}))],8,Qn),d("div",sa,[f(Zn,{items:n.items},{default:p(()=>[u(n.$slots,"default",{},void 0,!0)]),_:3},8,["items"])])],544))}}),ye=m(oa,[["__scopeId","data-v-9c007e85"]]),na={discord:'Discord',facebook:'Facebook',github:'GitHub',instagram:'Instagram',linkedin:'LinkedIn',mastodon:'Mastodon',npm:'npm',slack:'Slack',twitter:'Twitter',x:'X',youtube:'YouTube'},aa=["href","aria-label","innerHTML"],ra=g({__name:"VPSocialLink",props:{icon:{},link:{},ariaLabel:{}},setup(s){const e=s,t=k(()=>typeof e.icon=="object"?e.icon.svg:na[e.icon]);return(o,n)=>(a(),l("a",{class:"VPSocialLink no-icon",href:o.link,"aria-label":o.ariaLabel??(typeof o.icon=="string"?o.icon:""),target:"_blank",rel:"noopener",innerHTML:t.value},null,8,aa))}}),ia=m(ra,[["__scopeId","data-v-f80f8133"]]),la={class:"VPSocialLinks"},ca=g({__name:"VPSocialLinks",props:{links:{}},setup(s){return(e,t)=>(a(),l("div",la,[(a(!0),l(C,null,B(e.links,({link:o,icon:n,ariaLabel:r})=>(a(),y(ia,{key:o,icon:n,link:o,ariaLabel:r},null,8,["icon","link","ariaLabel"]))),128))]))}}),Pe=m(ca,[["__scopeId","data-v-7bc22406"]]),ua={key:0,class:"group translations"},da={class:"trans-title"},va={key:1,class:"group"},ha={class:"item appearance"},pa={class:"label"},fa={class:"appearance-action"},_a={key:2,class:"group"},ma={class:"item social-links"},ga=g({__name:"VPNavBarExtra",setup(s){const{site:e,theme:t}=S(),{localeLinks:o,currentLang:n}=Y({correspondingLink:!0}),r=k(()=>o.value.length&&n.value.label||e.value.appearance||t.value.socialLinks);return(c,h)=>r.value?(a(),y(ye,{key:0,class:"VPNavBarExtra",label:"extra navigation"},{default:p(()=>[i(o).length&&i(n).label?(a(),l("div",ua,[d("p",da,L(i(n).label),1),(a(!0),l(C,null,B(i(o),v=>(a(),y(ne,{key:v.link,item:v},null,8,["item"]))),128))])):_("",!0),i(e).appearance&&i(e).appearance!=="force-dark"?(a(),l("div",va,[d("div",ha,[d("p",pa,L(i(t).darkModeSwitchLabel||"Appearance"),1),d("div",fa,[f($e)])])])):_("",!0),i(t).socialLinks?(a(),l("div",_a,[d("div",ma,[f(Pe,{class:"social-links-list",links:i(t).socialLinks},null,8,["links"])])])):_("",!0)]),_:1})):_("",!0)}}),ba=m(ga,[["__scopeId","data-v-d0bd9dde"]]),$a=s=>(E("data-v-e5dd9c1c"),s=s(),D(),s),ka=["aria-expanded"],ya=$a(()=>d("span",{class:"container"},[d("span",{class:"top"}),d("span",{class:"middle"}),d("span",{class:"bottom"})],-1)),Pa=[ya],wa=g({__name:"VPNavBarHamburger",props:{active:{type:Boolean}},emits:["click"],setup(s){return(e,t)=>(a(),l("button",{type:"button",class:N(["VPNavBarHamburger",{active:e.active}]),"aria-label":"mobile navigation","aria-expanded":e.active,"aria-controls":"VPNavScreen",onClick:t[0]||(t[0]=o=>e.$emit("click"))},Pa,10,ka))}}),Va=m(wa,[["__scopeId","data-v-e5dd9c1c"]]),Sa=["innerHTML"],La=g({__name:"VPNavBarMenuLink",props:{item:{}},setup(s){const{page:e}=S();return(t,o)=>(a(),y(z,{class:N({VPNavBarMenuLink:!0,active:i(G)(i(e).relativePath,t.item.activeMatch||t.item.link,!!t.item.activeMatch)}),href:t.item.link,target:t.item.target,rel:t.item.rel,tabindex:"0"},{default:p(()=>[d("span",{innerHTML:t.item.text},null,8,Sa)]),_:1},8,["class","href","target","rel"]))}}),Ma=m(La,[["__scopeId","data-v-42ef59de"]]),Ta=g({__name:"VPNavBarMenuGroup",props:{item:{}},setup(s){const e=s,{page:t}=S(),o=r=>"link"in r?G(t.value.relativePath,r.link,!!e.item.activeMatch):r.items.some(o),n=k(()=>o(e.item));return(r,c)=>(a(),y(ye,{class:N({VPNavBarMenuGroup:!0,active:i(G)(i(t).relativePath,r.item.activeMatch,!!r.item.activeMatch)||n.value}),button:r.item.text,items:r.item.items},null,8,["class","button","items"]))}}),Ca=s=>(E("data-v-7f418b0f"),s=s(),D(),s),Ia={key:0,"aria-labelledby":"main-nav-aria-label",class:"VPNavBarMenu"},Na=Ca(()=>d("span",{id:"main-nav-aria-label",class:"visually-hidden"},"Main Navigation",-1)),Aa=g({__name:"VPNavBarMenu",setup(s){const{theme:e}=S();return(t,o)=>i(e).nav?(a(),l("nav",Ia,[Na,(a(!0),l(C,null,B(i(e).nav,n=>(a(),l(C,{key:n.text},["link"in n?(a(),y(Ma,{key:0,item:n},null,8,["item"])):(a(),y(Ta,{key:1,item:n},null,8,["item"]))],64))),128))])):_("",!0)}}),Ba=m(Aa,[["__scopeId","data-v-7f418b0f"]]);function Ha(s){const{localeIndex:e,theme:t}=S();function o(n){var I,A,T;const r=n.split("."),c=(I=t.value.search)==null?void 0:I.options,h=c&&typeof c=="object",v=h&&((T=(A=c.locales)==null?void 0:A[e.value])==null?void 0:T.translations)||null,b=h&&c.translations||null;let P=v,$=b,V=s;const w=r.pop();for(const X of r){let O=null;const K=V==null?void 0:V[X];K&&(O=V=K);const ae=$==null?void 0:$[X];ae&&(O=$=ae);const re=P==null?void 0:P[X];re&&(O=P=re),K||(V=O),ae||($=O),re||(P=O)}return(P==null?void 0:P[w])??($==null?void 0:$[w])??(V==null?void 0:V[w])??""}return o}const za=["aria-label"],Ea={class:"DocSearch-Button-Container"},Da=d("svg",{class:"DocSearch-Search-Icon",width:"20",height:"20",viewBox:"0 0 20 20","aria-label":"search icon"},[d("path",{d:"M14.386 14.386l4.0877 4.0877-4.0877-4.0877c-2.9418 2.9419-7.7115 2.9419-10.6533 0-2.9419-2.9418-2.9419-7.7115 0-10.6533 2.9418-2.9419 7.7115-2.9419 10.6533 0 2.9419 2.9418 2.9419 7.7115 0 10.6533z",stroke:"currentColor",fill:"none","fill-rule":"evenodd","stroke-linecap":"round","stroke-linejoin":"round"})],-1),Fa={class:"DocSearch-Button-Placeholder"},Oa=d("span",{class:"DocSearch-Button-Keys"},[d("kbd",{class:"DocSearch-Button-Key"}),d("kbd",{class:"DocSearch-Button-Key"},"K")],-1),we=g({__name:"VPNavBarSearchButton",setup(s){const t=Ha({button:{buttonText:"Search",buttonAriaLabel:"Search"}});return(o,n)=>(a(),l("button",{type:"button",class:"DocSearch DocSearch-Button","aria-label":i(t)("button.buttonAriaLabel")},[d("span",Ea,[Da,d("span",Fa,L(i(t)("button.buttonText")),1)]),Oa],8,za))}}),ja={class:"VPNavBarSearch"},xa={id:"local-search"},Ua={key:1,id:"docsearch"},Ga=g({__name:"VPNavBarSearch",setup(s){const e=ot(()=>nt(()=>import("./VPLocalSearchBox.6MNQoLhv.js"),__vite__mapDeps([0,1]))),t=()=>null,{theme:o}=S(),n=M(!1),r=M(!1);j(()=>{});function c(){n.value||(n.value=!0,setTimeout(h,16))}function h(){const $=new Event("keydown");$.key="k",$.metaKey=!0,window.dispatchEvent($),setTimeout(()=>{document.querySelector(".DocSearch-Modal")||h()},16)}function v($){const V=$.target,w=V.tagName;return V.isContentEditable||w==="INPUT"||w==="SELECT"||w==="TEXTAREA"}const b=M(!1);ce("k",$=>{($.ctrlKey||$.metaKey)&&($.preventDefault(),b.value=!0)}),ce("/",$=>{v($)||($.preventDefault(),b.value=!0)});const P="local";return($,V)=>{var w;return a(),l("div",ja,[i(P)==="local"?(a(),l(C,{key:0},[b.value?(a(),y(i(e),{key:0,onClose:V[0]||(V[0]=I=>b.value=!1)})):_("",!0),d("div",xa,[f(we,{onClick:V[1]||(V[1]=I=>b.value=!0)})])],64)):i(P)==="algolia"?(a(),l(C,{key:1},[n.value?(a(),y(i(t),{key:0,algolia:((w=i(o).search)==null?void 0:w.options)??i(o).algolia,onVnodeBeforeMount:V[2]||(V[2]=I=>r.value=!0)},null,8,["algolia"])):_("",!0),r.value?_("",!0):(a(),l("div",Ua,[f(we,{onClick:c})]))],64)):_("",!0)])}}}),Ra=g({__name:"VPNavBarSocialLinks",setup(s){const{theme:e}=S();return(t,o)=>i(e).socialLinks?(a(),y(Pe,{key:0,class:"VPNavBarSocialLinks",links:i(e).socialLinks},null,8,["links"])):_("",!0)}}),Ka=m(Ra,[["__scopeId","data-v-0394ad82"]]),qa=["href","rel","target"],Wa={key:1},Ja={key:2},Ya=g({__name:"VPNavBarTitle",setup(s){const{site:e,theme:t}=S(),{hasSidebar:o}=F(),{currentLang:n}=Y(),r=k(()=>{var v;return typeof t.value.logoLink=="string"?t.value.logoLink:(v=t.value.logoLink)==null?void 0:v.link}),c=k(()=>{var v;return typeof t.value.logoLink=="string"||(v=t.value.logoLink)==null?void 0:v.rel}),h=k(()=>{var v;return typeof t.value.logoLink=="string"||(v=t.value.logoLink)==null?void 0:v.target});return(v,b)=>(a(),l("div",{class:N(["VPNavBarTitle",{"has-sidebar":i(o)}])},[d("a",{class:"title",href:r.value??i(me)(i(n).link),rel:c.value,target:h.value},[u(v.$slots,"nav-bar-title-before",{},void 0,!0),i(t).logo?(a(),y(ee,{key:0,class:"logo",image:i(t).logo},null,8,["image"])):_("",!0),i(t).siteTitle?(a(),l("span",Wa,L(i(t).siteTitle),1)):i(t).siteTitle===void 0?(a(),l("span",Ja,L(i(e).title),1)):_("",!0),u(v.$slots,"nav-bar-title-after",{},void 0,!0)],8,qa)],2))}}),Xa=m(Ya,[["__scopeId","data-v-ab179fa1"]]),Za={},Qa={xmlns:"http://www.w3.org/2000/svg","aria-hidden":"true",focusable:"false",viewBox:"0 0 24 24"},er=d("path",{d:"M0 0h24v24H0z",fill:"none"},null,-1),tr=d("path",{d:" M12.87 15.07l-2.54-2.51.03-.03c1.74-1.94 2.98-4.17 3.71-6.53H17V4h-7V2H8v2H1v1.99h11.17C11.5 7.92 10.44 9.75 9 11.35 8.07 10.32 7.3 9.19 6.69 8h-2c.73 1.63 1.73 3.17 2.98 4.56l-5.09 5.02L4 19l5-5 3.11 3.11.76-2.04zM18.5 10h-2L12 22h2l1.12-3h4.75L21 22h2l-4.5-12zm-2.62 7l1.62-4.33L19.12 17h-3.24z ",class:"css-c4d79v"},null,-1),sr=[er,tr];function or(s,e){return a(),l("svg",Qa,sr)}const xe=m(Za,[["render",or]]),nr={class:"items"},ar={class:"title"},rr=g({__name:"VPNavBarTranslations",setup(s){const{theme:e}=S(),{localeLinks:t,currentLang:o}=Y({correspondingLink:!0});return(n,r)=>i(t).length&&i(o).label?(a(),y(ye,{key:0,class:"VPNavBarTranslations",icon:xe,label:i(e).langMenuLabel||"Change language"},{default:p(()=>[d("div",nr,[d("p",ar,L(i(o).label),1),(a(!0),l(C,null,B(i(t),c=>(a(),y(ne,{key:c.link,item:c},null,8,["item"]))),128))])]),_:1},8,["label"])):_("",!0)}}),ir=m(rr,[["__scopeId","data-v-74abcbb9"]]),lr=s=>(E("data-v-19c990f1"),s=s(),D(),s),cr={class:"wrapper"},ur={class:"container"},dr={class:"title"},vr={class:"content"},hr={class:"content-body"},pr=lr(()=>d("div",{class:"divider"},[d("div",{class:"divider-line"})],-1)),fr=g({__name:"VPNavBar",props:{isScreenOpen:{type:Boolean}},emits:["toggle-screen"],setup(s){const{y:e}=Ie(),{hasSidebar:t}=F(),{hasLocalNav:o}=Ee(),{frontmatter:n}=S(),r=M({});return Le(()=>{r.value={"has-sidebar":t.value,"has-local-nav":o.value,top:n.value.layout==="home"&&e.value===0}}),(c,h)=>(a(),l("div",{class:N(["VPNavBar",r.value])},[d("div",cr,[d("div",ur,[d("div",dr,[f(Xa,null,{"nav-bar-title-before":p(()=>[u(c.$slots,"nav-bar-title-before",{},void 0,!0)]),"nav-bar-title-after":p(()=>[u(c.$slots,"nav-bar-title-after",{},void 0,!0)]),_:3})]),d("div",vr,[d("div",hr,[u(c.$slots,"nav-bar-content-before",{},void 0,!0),f(Ga,{class:"search"}),f(Ba,{class:"menu"}),f(ir,{class:"translations"}),f(Sn,{class:"appearance"}),f(Ka,{class:"social-links"}),f(ba,{class:"extra"}),u(c.$slots,"nav-bar-content-after",{},void 0,!0),f(Va,{class:"hamburger",active:c.isScreenOpen,onClick:h[0]||(h[0]=v=>c.$emit("toggle-screen"))},null,8,["active"])])])])]),pr],2))}}),_r=m(fr,[["__scopeId","data-v-19c990f1"]]),mr={key:0,class:"VPNavScreenAppearance"},gr={class:"text"},br=g({__name:"VPNavScreenAppearance",setup(s){const{site:e,theme:t}=S();return(o,n)=>i(e).appearance&&i(e).appearance!=="force-dark"?(a(),l("div",mr,[d("p",gr,L(i(t).darkModeSwitchLabel||"Appearance"),1),f($e)])):_("",!0)}}),$r=m(br,[["__scopeId","data-v-2d7af913"]]),kr=g({__name:"VPNavScreenMenuLink",props:{item:{}},setup(s){const e=W("close-screen");return(t,o)=>(a(),y(z,{class:"VPNavScreenMenuLink",href:t.item.link,target:t.item.target,rel:t.item.rel,onClick:i(e)},{default:p(()=>[H(L(t.item.text),1)]),_:1},8,["href","target","rel","onClick"]))}}),yr=m(kr,[["__scopeId","data-v-05f27b2a"]]),Pr={},wr={xmlns:"http://www.w3.org/2000/svg","aria-hidden":"true",focusable:"false",viewBox:"0 0 24 24"},Vr=d("path",{d:"M18.9,10.9h-6v-6c0-0.6-0.4-1-1-1s-1,0.4-1,1v6h-6c-0.6,0-1,0.4-1,1s0.4,1,1,1h6v6c0,0.6,0.4,1,1,1s1-0.4,1-1v-6h6c0.6,0,1-0.4,1-1S19.5,10.9,18.9,10.9z"},null,-1),Sr=[Vr];function Lr(s,e){return a(),l("svg",wr,Sr)}const Mr=m(Pr,[["render",Lr]]),Tr=g({__name:"VPNavScreenMenuGroupLink",props:{item:{}},setup(s){const e=W("close-screen");return(t,o)=>(a(),y(z,{class:"VPNavScreenMenuGroupLink",href:t.item.link,target:t.item.target,rel:t.item.rel,onClick:i(e)},{default:p(()=>[H(L(t.item.text),1)]),_:1},8,["href","target","rel","onClick"]))}}),Ue=m(Tr,[["__scopeId","data-v-19976ae1"]]),Cr={class:"VPNavScreenMenuGroupSection"},Ir={key:0,class:"title"},Nr=g({__name:"VPNavScreenMenuGroupSection",props:{text:{},items:{}},setup(s){return(e,t)=>(a(),l("div",Cr,[e.text?(a(),l("p",Ir,L(e.text),1)):_("",!0),(a(!0),l(C,null,B(e.items,o=>(a(),y(Ue,{key:o.text,item:o},null,8,["item"]))),128))]))}}),Ar=m(Nr,[["__scopeId","data-v-8133b170"]]),Br=["aria-controls","aria-expanded"],Hr=["innerHTML"],zr=["id"],Er={key:1,class:"group"},Dr=g({__name:"VPNavScreenMenuGroup",props:{text:{},items:{}},setup(s){const e=s,t=M(!1),o=k(()=>`NavScreenGroup-${e.text.replace(" ","-").toLowerCase()}`);function n(){t.value=!t.value}return(r,c)=>(a(),l("div",{class:N(["VPNavScreenMenuGroup",{open:t.value}])},[d("button",{class:"button","aria-controls":o.value,"aria-expanded":t.value,onClick:n},[d("span",{class:"button-text",innerHTML:r.text},null,8,Hr),f(Mr,{class:"button-icon"})],8,Br),d("div",{id:o.value,class:"items"},[(a(!0),l(C,null,B(r.items,h=>(a(),l(C,{key:h.text},["link"in h?(a(),l("div",{key:h.text,class:"item"},[f(Ue,{item:h},null,8,["item"])])):(a(),l("div",Er,[f(Ar,{text:h.text,items:h.items},null,8,["text","items"])]))],64))),128))],8,zr)],2))}}),Fr=m(Dr,[["__scopeId","data-v-65ef89ca"]]),Or={key:0,class:"VPNavScreenMenu"},jr=g({__name:"VPNavScreenMenu",setup(s){const{theme:e}=S();return(t,o)=>i(e).nav?(a(),l("nav",Or,[(a(!0),l(C,null,B(i(e).nav,n=>(a(),l(C,{key:n.text},["link"in n?(a(),y(yr,{key:0,item:n},null,8,["item"])):(a(),y(Fr,{key:1,text:n.text||"",items:n.items},null,8,["text","items"]))],64))),128))])):_("",!0)}}),xr=g({__name:"VPNavScreenSocialLinks",setup(s){const{theme:e}=S();return(t,o)=>i(e).socialLinks?(a(),y(Pe,{key:0,class:"VPNavScreenSocialLinks",links:i(e).socialLinks},null,8,["links"])):_("",!0)}}),Ur={class:"list"},Gr=g({__name:"VPNavScreenTranslations",setup(s){const{localeLinks:e,currentLang:t}=Y({correspondingLink:!0}),o=M(!1);function n(){o.value=!o.value}return(r,c)=>i(e).length&&i(t).label?(a(),l("div",{key:0,class:N(["VPNavScreenTranslations",{open:o.value}])},[d("button",{class:"title",onClick:n},[f(xe,{class:"icon lang"}),H(" "+L(i(t).label)+" ",1),f(je,{class:"icon chevron"})]),d("ul",Ur,[(a(!0),l(C,null,B(i(e),h=>(a(),l("li",{key:h.link,class:"item"},[f(z,{class:"link",href:h.link},{default:p(()=>[H(L(h.text),1)]),_:2},1032,["href"])]))),128))])],2)):_("",!0)}}),Rr=m(Gr,[["__scopeId","data-v-d72aa483"]]),Kr={class:"container"},qr=g({__name:"VPNavScreen",props:{open:{type:Boolean}},setup(s){const e=M(null),t=Ne(q?document.body:null);return(o,n)=>(a(),y(he,{name:"fade",onEnter:n[0]||(n[0]=r=>t.value=!0),onAfterLeave:n[1]||(n[1]=r=>t.value=!1)},{default:p(()=>[o.open?(a(),l("div",{key:0,class:"VPNavScreen",ref_key:"screen",ref:e,id:"VPNavScreen"},[d("div",Kr,[u(o.$slots,"nav-screen-content-before",{},void 0,!0),f(jr,{class:"menu"}),f(Rr,{class:"translations"}),f($r,{class:"appearance"}),f(xr,{class:"social-links"}),u(o.$slots,"nav-screen-content-after",{},void 0,!0)])],512)):_("",!0)]),_:3}))}}),Wr=m(qr,[["__scopeId","data-v-cc5739dd"]]),Jr={key:0,class:"VPNav"},Yr=g({__name:"VPNav",setup(s){const{isScreenOpen:e,closeScreen:t,toggleScreen:o}=on(),{frontmatter:n}=S(),r=k(()=>n.value.navbar!==!1);return _e("close-screen",t),te(()=>{q&&document.documentElement.classList.toggle("hide-nav",!r.value)}),(c,h)=>r.value?(a(),l("header",Jr,[f(_r,{"is-screen-open":i(e),onToggleScreen:i(o)},{"nav-bar-title-before":p(()=>[u(c.$slots,"nav-bar-title-before",{},void 0,!0)]),"nav-bar-title-after":p(()=>[u(c.$slots,"nav-bar-title-after",{},void 0,!0)]),"nav-bar-content-before":p(()=>[u(c.$slots,"nav-bar-content-before",{},void 0,!0)]),"nav-bar-content-after":p(()=>[u(c.$slots,"nav-bar-content-after",{},void 0,!0)]),_:3},8,["is-screen-open","onToggleScreen"]),f(Wr,{open:i(e)},{"nav-screen-content-before":p(()=>[u(c.$slots,"nav-screen-content-before",{},void 0,!0)]),"nav-screen-content-after":p(()=>[u(c.$slots,"nav-screen-content-after",{},void 0,!0)]),_:3},8,["open"])])):_("",!0)}}),Xr=m(Yr,[["__scopeId","data-v-ae24b3ad"]]),Zr=s=>(E("data-v-e31bd47b"),s=s(),D(),s),Qr=["role","tabindex"],ei=Zr(()=>d("div",{class:"indicator"},null,-1)),ti={key:1,class:"items"},si=g({__name:"VPSidebarItem",props:{item:{},depth:{}},setup(s){const e=s,{collapsed:t,collapsible:o,isLink:n,isActiveLink:r,hasActiveLink:c,hasChildren:h,toggle:v}=Ct(k(()=>e.item)),b=k(()=>h.value?"section":"div"),P=k(()=>n.value?"a":"div"),$=k(()=>h.value?e.depth+2===7?"p":`h${e.depth+2}`:"p"),V=k(()=>n.value?void 0:"button"),w=k(()=>[[`level-${e.depth}`],{collapsible:o.value},{collapsed:t.value},{"is-link":n.value},{"is-active":r.value},{"has-active":c.value}]);function I(T){"key"in T&&T.key!=="Enter"||!e.item.link&&v()}function A(){e.item.link&&v()}return(T,X)=>{const O=R("VPSidebarItem",!0);return a(),y(U(b.value),{class:N(["VPSidebarItem",w.value])},{default:p(()=>[T.item.text?(a(),l("div",Z({key:0,class:"item",role:V.value},rt(T.item.items?{click:I,keydown:I}:{},!0),{tabindex:T.item.items&&0}),[ei,T.item.link?(a(),y(z,{key:0,tag:P.value,class:"link",href:T.item.link,rel:T.item.rel,target:T.item.target},{default:p(()=>[(a(),y(U($.value),{class:"text",innerHTML:T.item.text},null,8,["innerHTML"]))]),_:1},8,["tag","href","rel","target"])):(a(),y(U($.value),{key:1,class:"text",innerHTML:T.item.text},null,8,["innerHTML"])),T.item.collapsed!=null?(a(),l("div",{key:2,class:"caret",role:"button","aria-label":"toggle section",onClick:A,onKeydown:at(A,["enter"]),tabindex:"0"},[f(De,{class:"caret-icon"})],32)):_("",!0)],16,Qr)):_("",!0),T.item.items&&T.item.items.length?(a(),l("div",ti,[T.depth<5?(a(!0),l(C,{key:0},B(T.item.items,K=>(a(),y(O,{key:K.text,item:K,depth:T.depth+1},null,8,["item","depth"]))),128)):_("",!0)])):_("",!0)]),_:1},8,["class"])}}}),oi=m(si,[["__scopeId","data-v-e31bd47b"]]),Ge=s=>(E("data-v-575e6a36"),s=s(),D(),s),ni=Ge(()=>d("div",{class:"curtain"},null,-1)),ai={class:"nav",id:"VPSidebarNav","aria-labelledby":"sidebar-aria-label",tabindex:"-1"},ri=Ge(()=>d("span",{class:"visually-hidden",id:"sidebar-aria-label"}," Sidebar Navigation ",-1)),ii=g({__name:"VPSidebar",props:{open:{type:Boolean}},setup(s){const{sidebarGroups:e,hasSidebar:t}=F(),o=s,n=M(null),r=Ne(q?document.body:null);return x([o,n],()=>{var c;o.open?(r.value=!0,(c=n.value)==null||c.focus()):r.value=!1},{immediate:!0,flush:"post"}),(c,h)=>i(t)?(a(),l("aside",{key:0,class:N(["VPSidebar",{open:c.open}]),ref_key:"navEl",ref:n,onClick:h[0]||(h[0]=it(()=>{},["stop"]))},[ni,d("nav",ai,[ri,u(c.$slots,"sidebar-nav-before",{},void 0,!0),(a(!0),l(C,null,B(i(e),v=>(a(),l("div",{key:v.text,class:"group"},[f(oi,{item:v,depth:0},null,8,["item"])]))),128)),u(c.$slots,"sidebar-nav-after",{},void 0,!0)])],2)):_("",!0)}}),li=m(ii,[["__scopeId","data-v-575e6a36"]]),ci=g({__name:"VPSkipLink",setup(s){const e=oe(),t=M();x(()=>e.path,()=>t.value.focus());function o({target:n}){const r=document.getElementById(decodeURIComponent(n.hash).slice(1));if(r){const c=()=>{r.removeAttribute("tabindex"),r.removeEventListener("blur",c)};r.setAttribute("tabindex","-1"),r.addEventListener("blur",c),r.focus(),window.scrollTo(0,0)}}return(n,r)=>(a(),l(C,null,[d("span",{ref_key:"backToTop",ref:t,tabindex:"-1"},null,512),d("a",{href:"#VPContent",class:"VPSkipLink visually-hidden",onClick:o}," Skip to content ")],64))}}),ui=m(ci,[["__scopeId","data-v-0f60ec36"]]),di=g({__name:"Layout",setup(s){const{isOpen:e,open:t,close:o}=F(),n=oe();x(()=>n.path,o),Tt(e,o);const{frontmatter:r}=S(),c=Ae(),h=k(()=>!!c["home-hero-image"]);return _e("hero-image-slot-exists",h),(v,b)=>{const P=R("Content");return i(r).layout!==!1?(a(),l("div",{key:0,class:N(["Layout",i(r).pageClass])},[u(v.$slots,"layout-top",{},void 0,!0),f(ui),f(pt,{class:"backdrop",show:i(e),onClick:i(o)},null,8,["show","onClick"]),f(Xr,null,{"nav-bar-title-before":p(()=>[u(v.$slots,"nav-bar-title-before",{},void 0,!0)]),"nav-bar-title-after":p(()=>[u(v.$slots,"nav-bar-title-after",{},void 0,!0)]),"nav-bar-content-before":p(()=>[u(v.$slots,"nav-bar-content-before",{},void 0,!0)]),"nav-bar-content-after":p(()=>[u(v.$slots,"nav-bar-content-after",{},void 0,!0)]),"nav-screen-content-before":p(()=>[u(v.$slots,"nav-screen-content-before",{},void 0,!0)]),"nav-screen-content-after":p(()=>[u(v.$slots,"nav-screen-content-after",{},void 0,!0)]),_:3}),f(sn,{open:i(e),onOpenMenu:i(t)},null,8,["open","onOpenMenu"]),f(li,{open:i(e)},{"sidebar-nav-before":p(()=>[u(v.$slots,"sidebar-nav-before",{},void 0,!0)]),"sidebar-nav-after":p(()=>[u(v.$slots,"sidebar-nav-after",{},void 0,!0)]),_:3},8,["open"]),f(Mo,null,{"page-top":p(()=>[u(v.$slots,"page-top",{},void 0,!0)]),"page-bottom":p(()=>[u(v.$slots,"page-bottom",{},void 0,!0)]),"not-found":p(()=>[u(v.$slots,"not-found",{},void 0,!0)]),"home-hero-before":p(()=>[u(v.$slots,"home-hero-before",{},void 0,!0)]),"home-hero-info-before":p(()=>[u(v.$slots,"home-hero-info-before",{},void 0,!0)]),"home-hero-info":p(()=>[u(v.$slots,"home-hero-info",{},void 0,!0)]),"home-hero-info-after":p(()=>[u(v.$slots,"home-hero-info-after",{},void 0,!0)]),"home-hero-actions-after":p(()=>[u(v.$slots,"home-hero-actions-after",{},void 0,!0)]),"home-hero-image":p(()=>[u(v.$slots,"home-hero-image",{},void 0,!0)]),"home-hero-after":p(()=>[u(v.$slots,"home-hero-after",{},void 0,!0)]),"home-features-before":p(()=>[u(v.$slots,"home-features-before",{},void 0,!0)]),"home-features-after":p(()=>[u(v.$slots,"home-features-after",{},void 0,!0)]),"doc-footer-before":p(()=>[u(v.$slots,"doc-footer-before",{},void 0,!0)]),"doc-before":p(()=>[u(v.$slots,"doc-before",{},void 0,!0)]),"doc-after":p(()=>[u(v.$slots,"doc-after",{},void 0,!0)]),"doc-top":p(()=>[u(v.$slots,"doc-top",{},void 0,!0)]),"doc-bottom":p(()=>[u(v.$slots,"doc-bottom",{},void 0,!0)]),"aside-top":p(()=>[u(v.$slots,"aside-top",{},void 0,!0)]),"aside-bottom":p(()=>[u(v.$slots,"aside-bottom",{},void 0,!0)]),"aside-outline-before":p(()=>[u(v.$slots,"aside-outline-before",{},void 0,!0)]),"aside-outline-after":p(()=>[u(v.$slots,"aside-outline-after",{},void 0,!0)]),"aside-ads-before":p(()=>[u(v.$slots,"aside-ads-before",{},void 0,!0)]),"aside-ads-after":p(()=>[u(v.$slots,"aside-ads-after",{},void 0,!0)]),_:3}),f(Ao),u(v.$slots,"layout-bottom",{},void 0,!0)],2)):(a(),y(P,{key:1}))}}}),vi=m(di,[["__scopeId","data-v-5d98c3a5"]]),Ve={Layout:vi,enhanceApp:({app:s})=>{s.component("Badge",dt)}},hi=s=>{if(typeof document>"u")return{stabilizeScrollPosition:n=>async(...r)=>n(...r)};const e=document.documentElement;return{stabilizeScrollPosition:o=>async(...n)=>{const r=o(...n),c=s.value;if(!c)return r;const h=c.offsetTop-e.scrollTop;return await Ce(),e.scrollTop=c.offsetTop-h,r}}},Re="vitepress:tabSharedState",J=typeof localStorage<"u"?localStorage:null,Ke="vitepress:tabsSharedState",pi=()=>{const s=J==null?void 0:J.getItem(Ke);if(s)try{return JSON.parse(s)}catch{}return{}},fi=s=>{J&&J.setItem(Ke,JSON.stringify(s))},_i=s=>{const e=lt({});x(()=>e.content,(t,o)=>{t&&o&&fi(t)},{deep:!0}),s.provide(Re,e)},mi=(s,e)=>{const t=W(Re);if(!t)throw new Error("[vitepress-plugin-tabs] TabsSharedState should be injected");j(()=>{t.content||(t.content=pi())});const o=M(),n=k({get(){var v;const c=e.value,h=s.value;if(c){const b=(v=t.content)==null?void 0:v[c];if(b&&h.includes(b))return b}else{const b=o.value;if(b)return b}return h[0]},set(c){const h=e.value;h?t.content&&(t.content[h]=c):o.value=c}});return{selected:n,select:c=>{n.value=c}}};let Se=0;const gi=()=>(Se++,""+Se);function bi(){const s=Ae();return k(()=>{var o;const t=(o=s.default)==null?void 0:o.call(s);return t?t.filter(n=>typeof n.type=="object"&&"__name"in n.type&&n.type.__name==="PluginTabsTab"&&n.props).map(n=>{var r;return(r=n.props)==null?void 0:r.label}):[]})}const qe="vitepress:tabSingleState",$i=s=>{_e(qe,s)},ki=()=>{const s=W(qe);if(!s)throw new Error("[vitepress-plugin-tabs] TabsSingleState should be injected");return s},yi={class:"plugin-tabs"},Pi=["id","aria-selected","aria-controls","tabindex","onClick"],wi=g({__name:"PluginTabs",props:{sharedStateKey:{}},setup(s){const e=s,t=bi(),{selected:o,select:n}=mi(t,ct(e,"sharedStateKey")),r=M(),{stabilizeScrollPosition:c}=hi(r),h=c(n),v=M([]),b=$=>{var I;const V=t.value.indexOf(o.value);let w;$.key==="ArrowLeft"?w=V>=1?V-1:t.value.length-1:$.key==="ArrowRight"&&(w=V(a(),l("div",yi,[d("div",{ref_key:"tablist",ref:r,class:"plugin-tabs--tab-list",role:"tablist",onKeydown:b},[(a(!0),l(C,null,B(i(t),w=>(a(),l("button",{id:`tab-${w}-${i(P)}`,ref_for:!0,ref_key:"buttonRefs",ref:v,key:w,role:"tab",class:"plugin-tabs--tab","aria-selected":w===i(o),"aria-controls":`panel-${w}-${i(P)}`,tabindex:w===i(o)?0:-1,onClick:()=>i(h)(w)},L(w),9,Pi))),128))],544),u($.$slots,"default")]))}}),Vi=["id","aria-labelledby"],Si=g({__name:"PluginTabsTab",props:{label:{}},setup(s){const{uid:e,selected:t}=ki();return(o,n)=>i(t)===o.label?(a(),l("div",{key:0,id:`panel-${o.label}-${i(e)}`,class:"plugin-tabs--content",role:"tabpanel",tabindex:"0","aria-labelledby":`tab-${o.label}-${i(e)}`},[u(o.$slots,"default",{},void 0,!0)],8,Vi)):_("",!0)}}),Li=m(Si,[["__scopeId","data-v-b2b19630"]]),Mi=s=>{_i(s),s.component("PluginTabs",wi),s.component("PluginTabsTab",Li)},Ci={extends:Ve,Layout:()=>ut(Ve.Layout,null,{}),enhanceApp({app:s,router:e,siteData:t}){Mi(s)}};export{Ci as R,Ha as c,S as u}; function __vite__mapDeps(indexes) { if (!__vite__mapDeps.viteFileDeps) { - __vite__mapDeps.viteFileDeps = ["assets/chunks/VPLocalSearchBox.kW8cNXQ4.js","assets/chunks/framework.uHRfREZ8.js"] + __vite__mapDeps.viteFileDeps = ["assets/chunks/VPLocalSearchBox.6MNQoLhv.js","assets/chunks/framework.uHRfREZ8.js"] } return indexes.map((i) => __vite__mapDeps.viteFileDeps[i]) } diff --git a/previews/PR615/assets/dimensions.md.zVdUQR5t.js b/previews/PR615/assets/dimensions.md.VsQWKmyz.js similarity index 83% rename from previews/PR615/assets/dimensions.md.zVdUQR5t.js rename to previews/PR615/assets/dimensions.md.VsQWKmyz.js index f74b79839..1ed32d7c4 100644 --- a/previews/PR615/assets/dimensions.md.zVdUQR5t.js +++ b/previews/PR615/assets/dimensions.md.VsQWKmyz.js @@ -1,4 +1,4 @@ -import{_ as i,c as s,o as a,V as e}from"./chunks/framework.uHRfREZ8.js";const y=JSON.parse('{"title":"Dimensions","description":"","frontmatter":{},"headers":[],"relativePath":"dimensions.md","filePath":"dimensions.md","lastUpdated":null}'),h={name:"dimensions.md"},t=e(`

Dimensions

Dimensions are "wrapper types" that can be used to wrap any object to associate it with a named dimension.

The abstract supertype is Dimension, and the types that inherit from it aare Ti, X, Y, Z, the generic Dim{:x}, or others that you define manually using the @dim macro.

DimensionalData.jl uses Dimensions pretty much everywhere:

  • Dimension are returned from dims to specify the names of the dimensions of an object

  • they wrap LookupArrays to associate the lookups with those names

  • to index into these objects, they can wrap indices like Int or a Selector

This symmetry means we can just ignore how data is organised, and just label and access it by name, letting DD work out the details for us.

Dimensions are defined in the Dimensions submodule, some Dimension-specific methods can be brought into scope with:

julia
using DimensionalData.Dimensions

Examples

Use in a DimArray

We can use dimensions without a LookupArray to simply label the axis. A DimArray with labelled dimensions can be constructed by:

julia
julia> using DimensionalData
+import{_ as i,c as s,o as a,V as h}from"./chunks/framework.uHRfREZ8.js";const y=JSON.parse('{"title":"Dimensions","description":"","frontmatter":{},"headers":[],"relativePath":"dimensions.md","filePath":"dimensions.md","lastUpdated":null}'),e={name:"dimensions.md"},t=h(`

Dimensions

Dimensions are "wrapper types" that can be used to wrap any object to associate it with a named dimension.

The abstract supertype is Dimension, and the types that inherit from it aare Ti, X, Y, Z, the generic Dim{:x}, or others that you define manually using the @dim macro.

DimensionalData.jl uses Dimensions pretty much everywhere:

  • Dimension are returned from dims to specify the names of the dimensions of an object

  • they wrap LookupArrays to associate the lookups with those names

  • to index into these objects, they can wrap indices like Int or a Selector

This symmetry means we can just ignore how data is organised, and just label and access it by name, letting DD work out the details for us.

Dimensions are defined in the Dimensions submodule, some Dimension-specific methods can be brought into scope with:

julia
using DimensionalData.Dimensions

Examples

Use in a DimArray

We can use dimensions without a LookupArray to simply label the axis. A DimArray with labelled dimensions can be constructed by:

julia
julia> using DimensionalData
 
 julia> A1 = zeros(X(5), Y(10))
╭──────────────────────────╮
 5×10 DimArray{Float64,2}
@@ -14,18 +14,18 @@ import{_ as i,c as s,o as a,V as e}from"./chunks/framework.uHRfREZ8.js";const y=
 ├─────────────────── dims ┤
 a, b
 └─────────────────────────┘
- 0.525423  0.55623   0.609188   0.165293   0.230198
- 0.742017  0.130019  0.23691    0.504147   0.64486
- 0.202616  0.605937  0.0763553  0.508876   0.796612
- 0.389738  0.645865  0.601363   0.146381   0.837648
- 0.847367  0.793889  0.629314   0.0979917  0.346192

and get a value:

julia
julia> A2[a=3, b=1:3]
╭───────────────────────────────╮
+ 0.0678402  0.284378  0.790923  0.517169  0.664071
+ 0.972994   0.478834  0.99389   0.438654  0.644091
+ 0.438835   0.828036  0.464327  0.79595   0.299247
+ 0.915945   0.209883  0.687289  0.929342  0.251537
+ 0.533024   0.961574  0.146772  0.561575  0.71441

and get a value:

julia
julia> A2[a=3, b=1:3]
╭───────────────────────────────╮
 3-element DimArray{Float64,1}
 ├───────────────────────── dims ┤
 b
 └───────────────────────────────┘
- 0.202616
- 0.605937
- 0.0763553

Keywords also work with our first example:

julia
julia> A1[X=3]
╭────────────────────────────────╮
+ 0.438835
+ 0.828036
+ 0.464327

Keywords also work with our first example:

julia
julia> A1[X=3]
╭────────────────────────────────╮
 10-element DimArray{Float64,1}
 ├────────────────────────── dims ┤
 Y
@@ -55,16 +55,16 @@ import{_ as i,c as s,o as a,V as e}from"./chunks/framework.uHRfREZ8.js";const y=
 X, Y, Z
 └────────────────────────────┘
 [:, :, 1]
- 0.318122  0.905595   0.51036     0.908267   0.601934   0.666952   0.338496
- 0.622698  0.611697   0.976901    0.256698   0.783658   0.449569   0.0824814
- 0.87028   0.0437424  0.00632258  0.419134   0.794328   0.775566   0.477316
- 0.675435  0.126105   0.761104    0.125877   0.467493   0.827195   0.638871
- 0.430207  0.427827   0.0697824   0.629581   0.997637   0.59101    0.344856
- 0.416586  0.0557819  0.0169041   0.0482527  0.94415    0.816747   0.808039
- 0.785646  0.739734   0.659805    0.173433   0.740959   0.0184523  0.589043
- 0.972535  0.501566   0.760081    0.874899   0.799058   0.324902   0.0823128
- 0.327768  0.656843   0.0207301   0.788611   0.561814   0.181203   0.436701
- 0.855822  0.480024   0.249178    0.613373   0.0763198  0.204171   0.429658

We can index with Vector of Tuple{Vararg(Dimension}} like vectors of CartesianIndex

julia
julia> # TODO not merged yet A3[[(X(3), Z(5)), (X(7), Z(x)), (X(8), Z(2))]]

DimIndices can be used like CartesianIndices but again, without the constraint of consecutive dimensions or known order.

julia
julia> # TODO not merged yet A3[DimIndices(dims(A3, (X, Z))), Y(3)]

All of this indexing can be combined arbitrarily.

This will regurn values for :e at 6, :a at 3, all of :d an :b, and a vector of :c and :f. Unlike base, we know that :c and :f are now related and merge the :c and :f dimensions into a lookup of tuples:

julia
julia> A4 = DimArray(rand(10, 9, 8, 7, 6, 5), (:a, :b, :c, :d, :e, :f))
+ 0.97007   0.911592  0.641016  0.603358   0.0139829   0.0293911  0.731713
+ 0.480335  0.726701  0.296311  0.194793   0.287099    0.616222   0.444732
+ 0.644385  0.589752  0.159176  0.4444     0.00299252  0.456929   0.447833
+ 0.46631   0.732953  0.783786  0.31235    0.326852    0.512082   0.802554
+ 0.965629  0.304844  0.920632  0.776753   0.292804    0.144139   0.91402
+ 0.86959   0.672131  0.164346  0.276421   0.0101357   0.951395   0.0623382
+ 0.338969  0.989111  0.842811  0.323553   0.93793     0.739143   0.757139
+ 0.768661  0.872946  0.390208  0.0945557  0.396482    0.203254   0.228228
+ 0.749707  0.54105   0.411554  0.920968   0.386713    0.827946   0.582108
+ 0.330307  0.172701  0.154533  0.26778    0.471555    0.543156   0.184685

We can index with Vector of Tuple{Vararg(Dimension}} like vectors of CartesianIndex

julia
julia> # TODO not merged yet A3[[(X(3), Z(5)), (X(7), Z(x)), (X(8), Z(2))]]

DimIndices can be used like CartesianIndices but again, without the constraint of consecutive dimensions or known order.

julia
julia> # TODO not merged yet A3[DimIndices(dims(A3, (X, Z))), Y(3)]

All of this indexing can be combined arbitrarily.

This will regurn values for :e at 6, :a at 3, all of :d an :b, and a vector of :c and :f. Unlike base, we know that :c and :f are now related and merge the :c and :f dimensions into a lookup of tuples:

julia
julia> A4 = DimArray(rand(10, 9, 8, 7, 6, 5), (:a, :b, :c, :d, :e, :f))
        
        # TODO not merged yet A4[e=6, DimIndices(dims(A4, (:d, :b))), a=3, collect(DimIndices(dims(A4, (:c, :f))))]
╭──────────────────────────────────╮
 10×9×8×7×6×5 DimArray{Float64,6}
@@ -72,16 +72,16 @@ import{_ as i,c as s,o as a,V as e}from"./chunks/framework.uHRfREZ8.js";const y=
 a, b, c, d, e, f
 └──────────────────────────────────┘
 [:, :, 1, 1, 1, 1]
- 0.269007   0.0474785  0.471334   0.621192  …  0.243243  0.450477  0.498315
- 0.268029   0.297063   0.791817   0.347597     0.755564  0.224188  0.969799
- 0.413825   0.286901   0.543564   0.683179     0.400295  0.453056  0.442305
- 0.979656   0.553437   0.0752473  0.40186      0.906171  0.378221  0.526559
- 0.518935   0.747865   0.917004   0.540209     0.992449  0.579312  0.480116
- 0.730568   0.238298   0.572498   0.304424  …  0.721564  0.865305  0.898891
- 0.0545244  0.795658   0.312995   0.170415     0.657815  0.232963  0.524263
- 0.0555482  0.114333   0.927033   0.136077     0.667948  0.658017  0.90121
- 0.748988   0.194872   0.0320612  0.430912     0.279857  0.569516  0.978339
- 0.58822    0.131239   0.415288   0.137287     0.200605  0.907333  0.721678

The Dimension indexing layer sits on top of regular indexing and can not be combined with it! Regular indexing specifies order, so doesn't mix well with our dimensions.

Mixing them will throw an error:

@example
A1[X(3), 4]
+ 0.0210621  0.952888   0.659743  …  0.318652   0.929476   0.895077
+ 0.681658   0.292016   0.818366     0.202782   0.717744   0.276175
+ 0.301622   0.453234   0.606364     0.29038    0.0547605  0.979994
+ 0.204773   0.753309   0.624931     0.865492   0.400818   0.371115
+ 0.814319   0.0422181  0.841016     0.148638   0.671247   0.0877124
+ 0.975583   0.944133   0.58012   …  0.0516323  0.865733   0.780547
+ 0.27386    0.579898   0.307984     0.553437   0.809188   0.858837
+ 0.219084   0.746619   0.596303     0.755677   0.347865   0.623302
+ 0.787081   0.918031   0.227212     0.124215   0.750123   0.894369
+ 0.345457   0.412067   0.615907     0.431413   0.590101   0.23101

The Dimension indexing layer sits on top of regular indexing and can not be combined with it! Regular indexing specifies order, so doesn't mix well with our dimensions.

Mixing them will throw an error:

@example
A1[X(3), 4]
 # ERROR: ArgumentError: invalid index: X{Int64}(3) of type X{Int64}

Indexing

Indexing AbstractDimArrays works with getindex, setindex! and view. The result is still an AbstracDimArray, unless using all single Int or Selectors that resolve to Int inside Dimension.

Indexing Performance

Indexing with Dimensions has no runtime cost:

julia
julia> A2 = ones(X(3), Y(3))
╭─────────────────────────╮
 3×3 DimArray{Float64,2}
 ├─────────────────── dims ┤
@@ -90,22 +90,22 @@ import{_ as i,c as s,o as a,V as e}from"./chunks/framework.uHRfREZ8.js";const y=
  1.0  1.0  1.0
  1.0  1.0  1.0
  1.0  1.0  1.0

Lets benchmark it

julia
using BenchmarkTools
julia
julia> @benchmark $A2[X(1), Y(2)]
BenchmarkTools.Trial: 10000 samples with 1000 evaluations.
- Range (minmax):  3.095 ns25.607 ns GC (min … max): 0.00% … 0.00%
- Time  (median):     3.125 ns               GC (median):    0.00%
- Time  (mean ± σ):   3.138 ns ±  0.483 ns GC (mean ± σ):  0.00% ± 0.00%
+ Range (minmax):  2.785 ns13.415 ns GC (min … max): 0.00% … 0.00%
+ Time  (median):     2.795 ns               GC (median):    0.00%
+ Time  (mean ± σ):   2.804 ns ±  0.229 ns GC (mean ± σ):  0.00% ± 0.00%
 
-   
-
-  3.1 ns         Histogram: frequency by time        3.14 ns <
+
+
+  2.78 ns      Histogram: log(frequency) by time     2.82 ns <
 
  Memory estimate: 0 bytes, allocs estimate: 0.

the same as accessing the parent array directly:

julia
julia> @benchmark parent($A2)[1, 2]
BenchmarkTools.Trial: 10000 samples with 1000 evaluations.
- Range (minmax):  2.785 ns18.143 ns GC (min … max): 0.00% … 0.00%
- Time  (median):     2.795 ns               GC (median):    0.00%
- Time  (mean ± σ):   2.816 ns ±  0.326 ns GC (mean ± σ):  0.00% ± 0.00%
+ Range (minmax):  3.095 ns43.832 ns GC (min … max): 0.00% … 0.00%
+ Time  (median):     3.105 ns               GC (median):    0.00%
+ Time  (mean ± σ):   3.116 ns ±  0.473 ns GC (mean ± σ):  0.00% ± 0.00%
 
-                                            
-
-  2.78 ns        Histogram: frequency by time        2.83 ns <
+
+
+  3.1 ns       Histogram: log(frequency) by time     3.14 ns <
 
  Memory estimate: 0 bytes, allocs estimate: 0.

dims keywords

In many Julia functions like, size or sum, you can specify the dimension along which to perform the operation as an Int. It is also possible to do this using Dimension types with AbstractDimArray:

julia
julia> A3 = rand(X(3), Y(4), Ti(5))
╭───────────────────────────╮
 3×4×5 DimArray{Float64,3}
@@ -113,29 +113,29 @@ import{_ as i,c as s,o as a,V as e}from"./chunks/framework.uHRfREZ8.js";const y=
 X, Y, Ti
 └───────────────────────────┘
 [:, :, 1]
- 0.371716  0.874853  0.441511  0.418556
- 0.82596   0.100949  0.195376  0.853501
- 0.826409  0.338524  0.467494  0.38544
julia
julia> sum(A3; dims=Ti)
╭───────────────────────────╮
+ 0.10396    0.351912  0.576648   0.148322
+ 0.0640237  0.526513  0.0433661  0.631059
+ 0.585991   0.348897  0.724983   0.602401
julia
julia> sum(A3; dims=Ti)
╭───────────────────────────╮
 3×4×1 DimArray{Float64,3}
 ├───────────────────── dims ┤
 X, Y, Ti
 └───────────────────────────┘
 [:, :, 1]
- 2.06252  1.78913  2.68663  2.63438
- 3.46428  1.97054  2.46316  3.05037
- 3.81514  3.27339  1.88629  2.83096

This also works in methods from Statistics:

julia
using Statistics
julia
julia> mean(A3; dims=Ti)
╭───────────────────────────╮
+ 2.34443  2.15532  2.73873  1.94754
+ 1.54225  3.29166  2.45104  2.301
+ 2.26859  3.02688  1.36622  3.81584

This also works in methods from Statistics:

julia
using Statistics
julia
julia> mean(A3; dims=Ti)
╭───────────────────────────╮
 3×4×1 DimArray{Float64,3}
 ├───────────────────── dims ┤
 X, Y, Ti
 └───────────────────────────┘
 [:, :, 1]
- 0.412503  0.357827  0.537327  0.526876
- 0.692856  0.394109  0.492631  0.610073
- 0.763028  0.654678  0.377258  0.566192

This can be especially useful when you are working with multiple objects. Here we take the mean of A3 over all dimensions not in A2, using otherdims.

In this case, thats the Z dimension. But we don't need to know it the Z dimension, some other dimensions, or even if it has extra dimensions at all!

This will work either way, leaveing us with the same dims as A1:

julia
julia> d = otherdims(A3, dims(A1))
Ti
julia
julia> dropdims(mean(A3; dims=d); dims=d)
╭─────────────────────────╮
+ 0.468886  0.431064  0.547745  0.389508
+ 0.308451  0.658332  0.490208  0.4602
+ 0.453717  0.605376  0.273243  0.763169

This can be especially useful when you are working with multiple objects. Here we take the mean of A3 over all dimensions not in A2, using otherdims.

In this case, thats the Z dimension. But we don't need to know it the Z dimension, some other dimensions, or even if it has extra dimensions at all!

This will work either way, leaveing us with the same dims as A1:

julia
julia> d = otherdims(A3, dims(A1))
Ti
julia
julia> dropdims(mean(A3; dims=d); dims=d)
╭─────────────────────────╮
 3×4 DimArray{Float64,2}
 ├─────────────────── dims ┤
 X, Y
 └─────────────────────────┘
- 0.412503  0.357827  0.537327  0.526876
- 0.692856  0.394109  0.492631  0.610073
- 0.763028  0.654678  0.377258  0.566192

Dims keywords

Methods where dims, dim types, or Symbols can be used to indicate the array dimension:

  • size, axes, firstindex, lastindex

  • cat, reverse, dropdims

  • reduce, mapreduce

  • sum, prod, maximum, minimum

  • mean, median, extrema, std, var, cor, cov

  • permutedims, adjoint, transpose, Transpose

  • mapslices, eachslice

DimIndices

Vectors of Dimensions

How to name dimensions?

How to name an array?

Adding metadata

`,86),n=[t];function l(k,d,p,g,o,r){return a(),s("div",null,n)}const c=i(h,[["render",l]]);export{y as __pageData,c as default}; + 0.468886 0.431064 0.547745 0.389508 + 0.308451 0.658332 0.490208 0.4602 + 0.453717 0.605376 0.273243 0.763169

Dims keywords

Methods where dims, dim types, or Symbols can be used to indicate the array dimension:

  • size, axes, firstindex, lastindex

  • cat, reverse, dropdims

  • reduce, mapreduce

  • sum, prod, maximum, minimum

  • mean, median, extrema, std, var, cor, cov

  • permutedims, adjoint, transpose, Transpose

  • mapslices, eachslice

DimIndices

Vectors of Dimensions

How to name dimensions?

How to name an array?

Adding metadata

`,86),n=[t];function l(k,d,p,g,o,r){return a(),s("div",null,n)}const c=i(e,[["render",l]]);export{y as __pageData,c as default}; diff --git a/previews/PR615/assets/dimensions.md.VsQWKmyz.lean.js b/previews/PR615/assets/dimensions.md.VsQWKmyz.lean.js new file mode 100644 index 000000000..9d8b7ede0 --- /dev/null +++ b/previews/PR615/assets/dimensions.md.VsQWKmyz.lean.js @@ -0,0 +1 @@ +import{_ as i,c as s,o as a,V as h}from"./chunks/framework.uHRfREZ8.js";const y=JSON.parse('{"title":"Dimensions","description":"","frontmatter":{},"headers":[],"relativePath":"dimensions.md","filePath":"dimensions.md","lastUpdated":null}'),e={name:"dimensions.md"},t=h("",86),n=[t];function l(k,d,p,g,o,r){return a(),s("div",null,n)}const c=i(e,[["render",l]]);export{y as __pageData,c as default}; diff --git a/previews/PR615/assets/dimensions.md.zVdUQR5t.lean.js b/previews/PR615/assets/dimensions.md.zVdUQR5t.lean.js deleted file mode 100644 index ca7d26557..000000000 --- a/previews/PR615/assets/dimensions.md.zVdUQR5t.lean.js +++ /dev/null @@ -1 +0,0 @@ -import{_ as i,c as s,o as a,V as e}from"./chunks/framework.uHRfREZ8.js";const y=JSON.parse('{"title":"Dimensions","description":"","frontmatter":{},"headers":[],"relativePath":"dimensions.md","filePath":"dimensions.md","lastUpdated":null}'),h={name:"dimensions.md"},t=e("",86),n=[t];function l(k,d,p,g,o,r){return a(),s("div",null,n)}const c=i(h,[["render",l]]);export{y as __pageData,c as default}; diff --git a/previews/PR615/assets/groupby.md.0KaJajHD.js b/previews/PR615/assets/groupby.md.iuCORDsr.js similarity index 94% rename from previews/PR615/assets/groupby.md.0KaJajHD.js rename to previews/PR615/assets/groupby.md.iuCORDsr.js index c8820c914..903588634 100644 --- a/previews/PR615/assets/groupby.md.0KaJajHD.js +++ b/previews/PR615/assets/groupby.md.iuCORDsr.js @@ -129,13 +129,13 @@ import{_ as s,c as i,o as a,V as n}from"./chunks/framework.uHRfREZ8.js";const f= Ti Sampled{Dates.DateTime} Dates.DateTime("2000-01-01T00:00:00"):Dates.Hour(1):Dates.DateTime("2001-12-30T23:00:00") ForwardOrdered Regular Points └──────────────────────────────────────────────────────────────────────────────┘ 2000-01-01T00:00:00 2000-01-01T01:00:002001-12-30T23:00:00 - 1.0 0.507149 0.95679 0.523272 - 1.01 0.799031 0.641411 0.125357 - 1.02 0.447451 0.621011 0.925952 + 1.0 0.892361 0.860821 0.178462 + 1.01 0.615034 0.872746 0.0398404 + 1.02 0.204465 0.0292776 0.638012 ⋮ ⋱ - 1.98 0.825722 0.437562 0.00117147 - 1.99 0.246641 0.590071 0.995228 - 2.0 0.666578 0.581539 0.889182

Simple groupbys using the functions from above

julia
julia> group = groupby(A, Ti=>month)
╭────────────────────────────────────────╮
+ 1.98  0.610399              0.491236                 0.724304
+ 1.99  0.447415              0.0224376                0.801966
+ 2.0   0.691603              0.177755                 0.681925

Simple groupbys using the functions from above

julia
julia> group = groupby(A, Ti=>month)
╭────────────────────────────────────────╮
 12-element DimGroupByArray{DimArray,1}
 ├────────────────────────────────────────┴──────────────────────── dims ┐
 Ti Sampled{Int64} [1, 2, …, 11, 12] ForwardOrdered Irregular Points
@@ -157,11 +157,11 @@ import{_ as s,c as i,o as a,V as n}from"./chunks/framework.uHRfREZ8.js";const f=
   Dict{Symbol, Any} with 1 entry:
   :groupby => :Ti=>month
 └───────────────────────────────────────────────────────────────────────┘
-  1  0.499852
-  2  0.499243
+  1  0.499817
+  2  0.500566
 
- 11  0.499744
- 12  0.500986

Here are some more examples

julia
julia> sum.(groupby(A, Ti=>dayofyear)) # it will combine the same day from different year.
╭─────────────────────────────────╮
+ 11  0.498786
+ 12  0.498734

Here are some more examples

julia
julia> sum.(groupby(A, Ti=>dayofyear)) # it will combine the same day from different year.
╭─────────────────────────────────╮
 366-element DimArray{Float64,1}
 ├─────────────────────────────────┴───────────────────────────────── dims ┐
 Ti Sampled{Int64} [1, 2, …, 365, 366] ForwardOrdered Irregular Points
@@ -169,11 +169,11 @@ import{_ as s,c as i,o as a,V as n}from"./chunks/framework.uHRfREZ8.js";const f=
   Dict{Symbol, Any} with 1 entry:
   :groupby => :Ti=>dayofyear
 └─────────────────────────────────────────────────────────────────────────┘
-   1  2388.88
-   2  2413.12
+   1  2427.69
+   2  2394.99
 
- 365  1219.18
- 366  1204.63
julia
julia> maximum.(groupby(A, Ti=>yearmonthday)) # this does the a daily mean aggregation.
╭─────────────────────────────────╮
+ 365  1226.79
+ 366  1202.98
julia
julia> maximum.(groupby(A, Ti=>yearmonthday)) # this does the a daily mean aggregation.
╭─────────────────────────────────╮
 730-element DimArray{Float64,1}
 ├─────────────────────────────────┴────────────────────────────────────── dims ┐
 Ti Sampled{Tuple{Int64, Int64, Int64}} [(2000, 1, 1), (2000, 1, 2), …, (2001, 12, 29), (2001, 12, 30)] ForwardOrdered Irregular Points
@@ -181,11 +181,11 @@ import{_ as s,c as i,o as a,V as n}from"./chunks/framework.uHRfREZ8.js";const f=
   Dict{Symbol, Any} with 1 entry:
   :groupby => :Ti=>yearmonthday
 └──────────────────────────────────────────────────────────────────────────────┘
- (2000, 1, 1)    0.99968
- (2000, 1, 2)    0.999956
+ (2000, 1, 1)    0.999661
+ (2000, 1, 2)    0.998837
 
- (2001, 12, 29)  0.999049
- (2001, 12, 30)  0.999583
julia
julia> minimum.(groupby(A, Ti=>yearmonth)) # this does a monthly mean aggregation
╭────────────────────────────────╮
+ (2001, 12, 29)  0.999671
+ (2001, 12, 30)  0.999741
julia
julia> minimum.(groupby(A, Ti=>yearmonth)) # this does a monthly mean aggregation
╭────────────────────────────────╮
 24-element DimArray{Float64,1}
 ├────────────────────────────────┴─────────────────────────────────────── dims ┐
 Ti Sampled{Tuple{Int64, Int64}} [(2000, 1), (2000, 2), …, (2001, 11), (2001, 12)] ForwardOrdered Irregular Points
@@ -193,11 +193,11 @@ import{_ as s,c as i,o as a,V as n}from"./chunks/framework.uHRfREZ8.js";const f=
   Dict{Symbol, Any} with 1 entry:
   :groupby => :Ti=>yearmonth
 └──────────────────────────────────────────────────────────────────────────────┘
- (2000, 1)   2.47644e-5
- (2000, 2)   8.00506e-6
+ (2000, 1)   1.37252e-5
+ (2000, 2)   5.61808e-6
 
- (2001, 11)  4.41031e-5
- (2001, 12)  2.91365e-5
julia
julia> median.(groupby(A, Ti=>Dates.hour12))
╭────────────────────────────────╮
+ (2001, 11)  2.7475e-5
+ (2001, 12)  5.92949e-6
julia
julia> median.(groupby(A, Ti=>Dates.hour12))
╭────────────────────────────────╮
 12-element DimArray{Float64,1}
 ├────────────────────────────────┴──────────────────────────────── dims ┐
 Ti Sampled{Int64} [1, 2, …, 11, 12] ForwardOrdered Irregular Points
@@ -205,11 +205,11 @@ import{_ as s,c as i,o as a,V as n}from"./chunks/framework.uHRfREZ8.js";const f=
   Dict{Symbol, Any} with 1 entry:
   :groupby => :Ti=>hour12
 └───────────────────────────────────────────────────────────────────────┘
-  1  0.497156
-  2  0.50067
+  1  0.501419
+  2  0.498047
 
- 11  0.500557
- 12  0.49752

We can also use the function we defined above

julia
julia> mean.(groupby(A, Ti=>yearday)) # this does a daily mean aggregation
╭─────────────────────────────────╮
+ 11  0.5011
+ 12  0.500774

We can also use the function we defined above

julia
julia> mean.(groupby(A, Ti=>yearday)) # this does a daily mean aggregation
╭─────────────────────────────────╮
 730-element DimArray{Float64,1}
 ├─────────────────────────────────┴────────────────────────────────────── dims ┐
 Ti Sampled{Tuple{Int64, Int64}} [(2000, 1), (2000, 2), …, (2001, 363), (2001, 364)] ForwardOrdered Irregular Points
@@ -217,11 +217,11 @@ import{_ as s,c as i,o as a,V as n}from"./chunks/framework.uHRfREZ8.js";const f=
   Dict{Symbol, Any} with 1 entry:
   :groupby => :Ti=>yearday
 └──────────────────────────────────────────────────────────────────────────────┘
- (2000, 1)    0.493986
- (2000, 2)    0.496624
+ (2000, 1)    0.498531
+ (2000, 2)    0.488616
 
- (2001, 363)  0.498975
- (2001, 364)  0.498237

Binning

Sometimes we want to further aggregate our groups after running a function, or just bin the raw data directly. We can use the Bins wrapper to do this.

When our function returns an Int, we can just use a range of values we want to keep:

julia
julia> mean.(groupby(A, Ti=>Bins(month, 1:2)))
╭───────────────────────────────╮
+ (2001, 363)  0.505092
+ (2001, 364)  0.502074

Binning

Sometimes we want to further aggregate our groups after running a function, or just bin the raw data directly. We can use the Bins wrapper to do this.

When our function returns an Int, we can just use a range of values we want to keep:

julia
julia> mean.(groupby(A, Ti=>Bins(month, 1:2)))
╭───────────────────────────────╮
 2-element DimArray{Float64,1}
 ├───────────────────────────────┴───────────────── dims ┐
 Ti Sampled{Int64} 1:2 ForwardOrdered Regular Points
@@ -229,8 +229,8 @@ import{_ as s,c as i,o as a,V as n}from"./chunks/framework.uHRfREZ8.js";const f=
   Dict{Symbol, Any} with 1 entry:
   :groupby => :Ti=>Bins(month, 1:2)…
 └───────────────────────────────────────────────────────┘
- 1  0.499852
- 2  0.499243
julia
julia> mean.(groupby(A, Ti=>Bins(month, [1, 3, 5])))
╭───────────────────────────────╮
+ 1  0.499817
+ 2  0.500566
julia
julia> mean.(groupby(A, Ti=>Bins(month, [1, 3, 5])))
╭───────────────────────────────╮
 3-element DimArray{Float64,1}
 ├───────────────────────────────┴───────────────────────── dims ┐
 Ti Sampled{Int64} [1, 3, 5] ForwardOrdered Irregular Points
@@ -238,9 +238,9 @@ import{_ as s,c as i,o as a,V as n}from"./chunks/framework.uHRfREZ8.js";const f=
   Dict{Symbol, Any} with 1 entry:
   :groupby => :Ti=>Bins(month, [1, 3, 5])…
 └───────────────────────────────────────────────────────────────┘
- 1  0.499852
- 3  0.499591
- 5  0.499201

Or an array of arrays

julia
julia> mean.(groupby(A, Ti => Bins(yearday, [[1,2,3], [4,5,6]], labels=x -> join(string.(x), ','))))
╭───────────────────────────────╮
+ 1  0.499817
+ 3  0.501121
+ 5  0.500317

Or an array of arrays

julia
julia> mean.(groupby(A, Ti => Bins(yearday, [[1,2,3], [4,5,6]], labels=x -> join(string.(x), ','))))
╭───────────────────────────────╮
 4-element DimArray{Float64,1}
 ├───────────────────────────────┴──────────────────────────────────────── dims ┐
 Ti Sampled{Tuple{Int64, Vector{Int64}}} [(2000, [1, 2, 3]), (2000, [4, 5, 6]), (2001, [1, 2, 3]), (2001, [4, 5, 6])] ForwardOrdered Irregular Points
@@ -279,8 +279,8 @@ import{_ as s,c as i,o as a,V as n}from"./chunks/framework.uHRfREZ8.js";const f=
   Dict{Symbol, Any} with 1 entry:
   :groupby => :Ti=>Bins(dayofyear, UnitRange{Int64}[1:8, 9:16, 17:24, 25:32, 33…
 └──────────────────────────────────────────────────────────────────────────────┘
- 1:8        0.499233
- 9:16       0.501722
+ 1:8        0.498446
+ 9:16       0.501211
 
  369:376  NaN
julia
julia> mean.(groupby(A, Ti => season(; start=December)))
╭───────────────────────────────╮
 4-element DimArray{Float64,1}
@@ -290,10 +290,10 @@ import{_ as s,c as i,o as a,V as n}from"./chunks/framework.uHRfREZ8.js";const f=
   Dict{Symbol, Any} with 1 entry:
   :groupby => :Ti=>CyclicBins(month; cycle=12, step=3, start=12)…
 └──────────────────────────────────────────────────────────────────────────────┘
- [12, 1, 2]   0.500043
- [3, 4, 5]    0.49989
- [6, 7, 8]    0.500463
- [9, 10, 11]  0.499245
julia
julia> mean.(groupby(A, Ti => hours(12; start=6, labels=x -> 6 in x ? :night : :day)))
╭───────────────────────────────╮
+ [12, 1, 2]   0.499687
+ [3, 4, 5]    0.500493
+ [6, 7, 8]    0.499688
+ [9, 10, 11]  0.499308
julia
julia> mean.(groupby(A, Ti => hours(12; start=6, labels=x -> 6 in x ? :night : :day)))
╭───────────────────────────────╮
 2-element DimArray{Float64,1}
 ├───────────────────────────────┴──────────────────────────────────────── dims ┐
 Ti Sampled{Vector{Int64}} [[6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17], [18, 19, 20, 21, 22, 23, 24, 1, 2, 3, 4, 5]] ForwardOrdered Irregular Points
@@ -301,8 +301,8 @@ import{_ as s,c as i,o as a,V as n}from"./chunks/framework.uHRfREZ8.js";const f=
   Dict{Symbol, Any} with 1 entry:
   :groupby => :Ti=>CyclicBins(hour; cycle=24, step=12, start=6)…
 └──────────────────────────────────────────────────────────────────────────────┘
- [6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17]  0.500056
- [18, 19, 20, 21, 22, 23, 24, 1, 2, 3, 4, 5]   0.499897

select by month, days, years and seasons

How do we select month 1 or 2, and even a group of them, i.e. [1,3,5]? Same for days, years and seasons.

Use three-month bins. The 13 is the open side of the last interval.

julia
julia> mean.(groupby(A, Ti=>Bins(yearmonth, intervals(1:3:12))))
╭───────────────────────────────╮
+ [6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17]  0.499661
+ [18, 19, 20, 21, 22, 23, 24, 1, 2, 3, 4, 5]   0.499859

select by month, days, years and seasons

How do we select month 1 or 2, and even a group of them, i.e. [1,3,5]? Same for days, years and seasons.

Use three-month bins. The 13 is the open side of the last interval.

julia
julia> mean.(groupby(A, Ti=>Bins(yearmonth, intervals(1:3:12))))
╭───────────────────────────────╮
 8-element DimArray{Float64,1}
 ├───────────────────────────────┴──────────────────────────────────────── dims ┐
 Ti Sampled{Tuple{Int64, IntervalSets.Interval{:closed, :open, Int64}}} [(2000, 1 .. 4 (closed-open)), (2000, 4 .. 7 (closed-open)), …, (2001, 7 .. 10 (closed-open)), (2001, 10 .. 13 (closed-open))] Unordered Irregular Points
@@ -321,23 +321,23 @@ import{_ as s,c as i,o as a,V as n}from"./chunks/framework.uHRfREZ8.js";const f=
   Dict{Symbol, Any} with 1 entry:
   :groupby => :Ti=>Bins(month, 4)…
 └──────────────────────────────────────────────────────────────────────────────┘
- 1.0 .. 3.75275 (closed-open)     0.499571
- 3.75275 .. 6.5055 (closed-open)  0.499956
- 6.5055 .. 9.25825 (closed-open)  0.500346
- 9.25825 .. 12.011 (closed-open)  0.499767

Select by Dimension {#Select-by-Dimension}

julia
julia> A
╭───────────────────────────────╮
+ 1.0 .. 3.75275 (closed-open)     0.5005
+ 3.75275 .. 6.5055 (closed-open)  0.499792
+ 6.5055 .. 9.25825 (closed-open)  0.499801
+ 9.25825 .. 12.011 (closed-open)  0.4991

Select by Dimension {#Select-by-Dimension}

julia
julia> A
╭───────────────────────────────╮
 101×17520 DimArray{Float64,2}
 ├───────────────────────────────┴──────────────────────────────────────── dims ┐
 X  Sampled{Float64} 1.0:0.01:2.0 ForwardOrdered Regular Points,
 Ti Sampled{Dates.DateTime} Dates.DateTime("2000-01-01T00:00:00"):Dates.Hour(1):Dates.DateTime("2001-12-30T23:00:00") ForwardOrdered Regular Points
 └──────────────────────────────────────────────────────────────────────────────┘
     2000-01-01T00:00:00   2000-01-01T01:00:002001-12-30T23:00:00
- 1.0   0.507149              0.95679                  0.523272
- 1.01  0.799031              0.641411                 0.125357
- 1.02  0.447451              0.621011                 0.925952
+ 1.0   0.892361              0.860821                 0.178462
+ 1.01  0.615034              0.872746                 0.0398404
+ 1.02  0.204465              0.0292776                0.638012
  ⋮                                                 ⋱
- 1.98  0.825722              0.437562                 0.00117147
- 1.99  0.246641              0.590071                 0.995228
- 2.0   0.666578              0.581539                 0.889182
julia
julia> B =
+ 1.98  0.610399              0.491236                 0.724304
+ 1.99  0.447415              0.0224376                0.801966
+ 2.0   0.691603              0.177755                 0.681925
julia
julia> B =
        A[:, 1:3:100]
╭────────────────────────────╮
 101×34 DimArray{Float64,2}
 ├────────────────────────────┴─────────────────────────────────────────── dims ┐
@@ -345,13 +345,13 @@ import{_ as s,c as i,o as a,V as n}from"./chunks/framework.uHRfREZ8.js";const f=
 Ti Sampled{Dates.DateTime} Dates.DateTime("2000-01-01T00:00:00"):Dates.Hour(3):Dates.DateTime("2000-01-05T03:00:00") ForwardOrdered Regular Points
 └──────────────────────────────────────────────────────────────────────────────┘
     2000-01-01T00:00:00   2000-01-01T03:00:002000-01-05T03:00:00
- 1.0   0.507149              0.744058                 0.816405
- 1.01  0.799031              0.76248                  0.389283
- 1.02  0.447451              0.802359                 0.842417
+ 1.0   0.892361              0.810712                 0.306891
+ 1.01  0.615034              0.080037                 0.581922
+ 1.02  0.204465              0.765988                 0.327324
  ⋮                                                 ⋱
- 1.98  0.825722              0.81834                  0.472027
- 1.99  0.246641              0.601521                 0.106081
- 2.0   0.666578              0.102946                 0.167146
julia
julia> C = mean.(groupby(A, B))
╭────────────────────────────╮
+ 1.98  0.610399              0.801426                 0.697914
+ 1.99  0.447415              0.961429                 0.226789
+ 2.0   0.691603              0.46607                  0.422341
julia
julia> C = mean.(groupby(A, B))
╭────────────────────────────╮
 101×34 DimArray{Float64,2}
 ├────────────────────────────┴─────────────────────────────────────────── dims ┐
 X  Sampled{Float64} 1.0:0.01:2.0 ForwardOrdered Regular Points,
@@ -361,9 +361,9 @@ import{_ as s,c as i,o as a,V as n}from"./chunks/framework.uHRfREZ8.js";const f=
   :groupby => (:X=>[1.0, 1.01, 1.02, 1.03, 1.04, 1.05, 1.06, 1.07, 1.08, 1.09  …
 └──────────────────────────────────────────────────────────────────────────────┘
    2000-01-01T00:00:00   2000-01-01T03:00:002000-01-05T03:00:00
- 1.0  0.507149              0.744058                 0.816405
+ 1.0  0.892361              0.810712                 0.306891
  ⋮                                                ⋱
- 2.0  0.666578              0.102946                 0.167146
julia
julia> @assert size(A) == size(B)
ERROR: AssertionError: size(A) == size(B)

How do could we incorporate resample? Let's say if we have hour resolution I want to resample every 3,6,12.. hours?

julia
julia> mean.(groupby(A, Ti=>Bins(yearhour, intervals(1:3:24)))) # it will combine the same day from different year.
╭────────────────────────────────╮
+ 2.0  0.691603              0.46607                  0.422341
julia
julia> @assert size(A) == size(B)
ERROR: AssertionError: size(A) == size(B)

How do could we incorporate resample? Let's say if we have hour resolution I want to resample every 3,6,12.. hours?

julia
julia> mean.(groupby(A, Ti=>Bins(yearhour, intervals(1:3:24)))) # it will combine the same day from different year.
╭────────────────────────────────╮
 16-element DimArray{Float64,1}
 ├────────────────────────────────┴─────────────────────────────────────── dims ┐
 Ti Sampled{Tuple{Int64, IntervalSets.Interval{:closed, :open, Int64}}} [(2000, 1 .. 4 (closed-open)), (2000, 4 .. 7 (closed-open)), …, (2001, 19 .. 22 (closed-open)), (2001, 22 .. 25 (closed-open))] Unordered Irregular Points
@@ -393,8 +393,8 @@ import{_ as s,c as i,o as a,V as n}from"./chunks/framework.uHRfREZ8.js";const f=
   Dict{Symbol, Any} with 1 entry:
   :groupby => :Ti=>Bins(dayofyear, UnitRange{Int64}[1:8, 9:16, 17:24, 25:32, 33…
 └──────────────────────────────────────────────────────────────────────────────┘
- 1:8        0.499233
- 9:16       0.501722
+ 1:8        0.498446
+ 9:16       0.501211
 
  369:376  NaN

Group by Dims.

This should include the rasters input sampling.

julia
julia> mean.(groupby(A, dims(A, Ti)))
╭───────────────────────────────────╮
 17520-element DimArray{Float64,1}
@@ -404,8 +404,8 @@ import{_ as s,c as i,o as a,V as n}from"./chunks/framework.uHRfREZ8.js";const f=
   Dict{Symbol, Any} with 1 entry:
   :groupby => :Ti=>[DateTime("2000-01-01T00:00:00"), DateTime("2000-01-01T01:00…
 └──────────────────────────────────────────────────────────────────────────────┘
- 2000-01-01T00:00:00  0.506432
- 2000-01-01T01:00:00  0.517524
+ 2000-01-01T00:00:00  0.527892
+ 2000-01-01T01:00:00  0.443411
 
- 2001-12-30T22:00:00  0.435899
- 2001-12-30T23:00:00  0.482983

Apply custom function (i.e. normalization) to grouped output.

`,108),h=[l];function p(t,k,d,r,g,y){return a(),i("div",null,h)}const o=s(e,[["render",p]]);export{f as __pageData,o as default}; + 2001-12-30T22:00:00 0.515693 + 2001-12-30T23:00:00 0.462236

Apply custom function (i.e. normalization) to grouped output.

`,108),h=[l];function p(t,k,d,r,g,y){return a(),i("div",null,h)}const o=s(e,[["render",p]]);export{f as __pageData,o as default}; diff --git a/previews/PR615/assets/groupby.md.0KaJajHD.lean.js b/previews/PR615/assets/groupby.md.iuCORDsr.lean.js similarity index 100% rename from previews/PR615/assets/groupby.md.0KaJajHD.lean.js rename to previews/PR615/assets/groupby.md.iuCORDsr.lean.js diff --git a/previews/PR615/assets/plots.md.RM3wiVX9.js b/previews/PR615/assets/plots.md.RM3wiVX9.js deleted file mode 100644 index d0793fea5..000000000 --- a/previews/PR615/assets/plots.md.RM3wiVX9.js +++ /dev/null @@ -1,4 +0,0 @@ -import{_ as A,c as C,o as Q,V as E}from"./chunks/framework.uHRfREZ8.js";const i=JSON.parse('{"title":"Plots.jl","description":"","frontmatter":{},"headers":[],"relativePath":"plots.md","filePath":"plots.md","lastUpdated":null}'),I={name:"plots.md"},g=E(`

Plots.jl

Plots.jl and Makie.jl functions mostly work out of the box on AbstractDimArray, although not with the same results - they choose to follow each packages default behaviour as much as possible.

This will plot a line plot with 'a', 'b' and 'c' in the legend, and values 1-10 on the labelled X axis:

Plots.jl support is deprecated, as development is moving to Makie.jl

Makie.jl

Makie.jl functions also mostly work with AbstractDimArray and will permute and reorder axes into the right places, especially if X/Y/Z/Ti dimensions are used.

In makie a DimMatrix will plot as a heatmap by defualt, but again it will have labels and axes in the right places:

julia
using DimensionalData, CairoMakie
-
-A = rand(X(1:10), Y([:a, :b, :c]))
-Makie.plot(A; colormap=:inferno)

Other plots also work, here we ignore the axis order and instead favour the categorical varable for the X axis:

julia
Makie.rainclouds(A)

A lot more is planned for Make.jl plots in future!

`,13),h=[g];function B(o,s,U,e,l,d){return Q(),C("div",null,h)}const K=A(I,[["render",B]]);export{i as __pageData,K as default}; diff --git a/previews/PR615/assets/plots.md.RM3wiVX9.lean.js b/previews/PR615/assets/plots.md.RM3wiVX9.lean.js deleted file mode 100644 index c6495bb4b..000000000 --- a/previews/PR615/assets/plots.md.RM3wiVX9.lean.js +++ /dev/null @@ -1 +0,0 @@ -import{_ as A,c as C,o as Q,V as E}from"./chunks/framework.uHRfREZ8.js";const i=JSON.parse('{"title":"Plots.jl","description":"","frontmatter":{},"headers":[],"relativePath":"plots.md","filePath":"plots.md","lastUpdated":null}'),I={name:"plots.md"},g=E("",13),h=[g];function B(o,s,U,e,l,d){return Q(),C("div",null,h)}const K=A(I,[["render",B]]);export{i as __pageData,K as default}; diff --git a/previews/PR615/assets/plots.md.SLTDc47H.js b/previews/PR615/assets/plots.md.SLTDc47H.js new file mode 100644 index 000000000..d33a846a0 --- /dev/null +++ b/previews/PR615/assets/plots.md.SLTDc47H.js @@ -0,0 +1,4 @@ +import{_ as A,c as C,o as Q,V as E}from"./chunks/framework.uHRfREZ8.js";const e=JSON.parse('{"title":"Plots.jl","description":"","frontmatter":{},"headers":[],"relativePath":"plots.md","filePath":"plots.md","lastUpdated":null}'),I={name:"plots.md"},B=E(`

Plots.jl

Plots.jl and Makie.jl functions mostly work out of the box on AbstractDimArray, although not with the same results - they choose to follow each packages default behaviour as much as possible.

This will plot a line plot with 'a', 'b' and 'c' in the legend, and values 1-10 on the labelled X axis:

Plots.jl support is deprecated, as development is moving to Makie.jl

Makie.jl

Makie.jl functions also mostly work with AbstractDimArray and will permute and reorder axes into the right places, especially if X/Y/Z/Ti dimensions are used.

In makie a DimMatrix will plot as a heatmap by defualt, but again it will have labels and axes in the right places:

julia
using DimensionalData, CairoMakie
+
+A = rand(X(1:10), Y([:a, :b, :c]))
+Makie.plot(A; colormap=:inferno)

Other plots also work, here we ignore the axis order and instead favour the categorical varable for the X axis:

julia
Makie.rainclouds(A)

A lot more is planned for Make.jl plots in future!

`,13),g=[B];function h(o,s,l,K,i,a){return Q(),C("div",null,g)}const U=A(I,[["render",h]]);export{e as __pageData,U as default}; diff --git a/previews/PR615/assets/plots.md.SLTDc47H.lean.js b/previews/PR615/assets/plots.md.SLTDc47H.lean.js new file mode 100644 index 000000000..005e920c1 --- /dev/null +++ b/previews/PR615/assets/plots.md.SLTDc47H.lean.js @@ -0,0 +1 @@ +import{_ as A,c as C,o as Q,V as E}from"./chunks/framework.uHRfREZ8.js";const e=JSON.parse('{"title":"Plots.jl","description":"","frontmatter":{},"headers":[],"relativePath":"plots.md","filePath":"plots.md","lastUpdated":null}'),I={name:"plots.md"},B=E("",13),g=[B];function h(o,s,l,K,i,a){return Q(),C("div",null,g)}const U=A(I,[["render",h]]);export{e as __pageData,U as default}; diff --git a/previews/PR615/basics.html b/previews/PR615/basics.html index 111cf727b..4a92f824e 100644 --- a/previews/PR615/basics.html +++ b/previews/PR615/basics.html @@ -8,10 +8,10 @@ - + - + @@ -20,7 +20,7 @@ - + \ No newline at end of file diff --git a/previews/PR615/cuda.html b/previews/PR615/cuda.html index 6923d5629..7afa53672 100644 --- a/previews/PR615/cuda.html +++ b/previews/PR615/cuda.html @@ -8,10 +8,10 @@ - + - + @@ -27,7 +27,7 @@ # Broadcast to a new GPU array: it will still be a DimArray! cuA2 = cuA .* 2 - + \ No newline at end of file diff --git a/previews/PR615/dimensions.html b/previews/PR615/dimensions.html index a14827db4..558ee14c9 100644 --- a/previews/PR615/dimensions.html +++ b/previews/PR615/dimensions.html @@ -8,11 +8,11 @@ - + - - + + @@ -33,18 +33,18 @@ ├─────────────────── dims ┤ a, b └─────────────────────────┘ - 0.525423 0.55623 0.609188 0.165293 0.230198 - 0.742017 0.130019 0.23691 0.504147 0.64486 - 0.202616 0.605937 0.0763553 0.508876 0.796612 - 0.389738 0.645865 0.601363 0.146381 0.837648 - 0.847367 0.793889 0.629314 0.0979917 0.346192

and get a value:

julia
julia> A2[a=3, b=1:3]
╭───────────────────────────────╮
+ 0.0678402  0.284378  0.790923  0.517169  0.664071
+ 0.972994   0.478834  0.99389   0.438654  0.644091
+ 0.438835   0.828036  0.464327  0.79595   0.299247
+ 0.915945   0.209883  0.687289  0.929342  0.251537
+ 0.533024   0.961574  0.146772  0.561575  0.71441

and get a value:

julia
julia> A2[a=3, b=1:3]
╭───────────────────────────────╮
 3-element DimArray{Float64,1}
 ├───────────────────────── dims ┤
 b
 └───────────────────────────────┘
- 0.202616
- 0.605937
- 0.0763553

Keywords also work with our first example:

julia
julia> A1[X=3]
╭────────────────────────────────╮
+ 0.438835
+ 0.828036
+ 0.464327

Keywords also work with our first example:

julia
julia> A1[X=3]
╭────────────────────────────────╮
 10-element DimArray{Float64,1}
 ├────────────────────────── dims ┤
 Y
@@ -74,16 +74,16 @@
 X, Y, Z
 └────────────────────────────┘
 [:, :, 1]
- 0.318122  0.905595   0.51036     0.908267   0.601934   0.666952   0.338496
- 0.622698  0.611697   0.976901    0.256698   0.783658   0.449569   0.0824814
- 0.87028   0.0437424  0.00632258  0.419134   0.794328   0.775566   0.477316
- 0.675435  0.126105   0.761104    0.125877   0.467493   0.827195   0.638871
- 0.430207  0.427827   0.0697824   0.629581   0.997637   0.59101    0.344856
- 0.416586  0.0557819  0.0169041   0.0482527  0.94415    0.816747   0.808039
- 0.785646  0.739734   0.659805    0.173433   0.740959   0.0184523  0.589043
- 0.972535  0.501566   0.760081    0.874899   0.799058   0.324902   0.0823128
- 0.327768  0.656843   0.0207301   0.788611   0.561814   0.181203   0.436701
- 0.855822  0.480024   0.249178    0.613373   0.0763198  0.204171   0.429658

We can index with Vector of Tuple{Vararg(Dimension}} like vectors of CartesianIndex

julia
julia> # TODO not merged yet A3[[(X(3), Z(5)), (X(7), Z(x)), (X(8), Z(2))]]

DimIndices can be used like CartesianIndices but again, without the constraint of consecutive dimensions or known order.

julia
julia> # TODO not merged yet A3[DimIndices(dims(A3, (X, Z))), Y(3)]

All of this indexing can be combined arbitrarily.

This will regurn values for :e at 6, :a at 3, all of :d an :b, and a vector of :c and :f. Unlike base, we know that :c and :f are now related and merge the :c and :f dimensions into a lookup of tuples:

julia
julia> A4 = DimArray(rand(10, 9, 8, 7, 6, 5), (:a, :b, :c, :d, :e, :f))
+ 0.97007   0.911592  0.641016  0.603358   0.0139829   0.0293911  0.731713
+ 0.480335  0.726701  0.296311  0.194793   0.287099    0.616222   0.444732
+ 0.644385  0.589752  0.159176  0.4444     0.00299252  0.456929   0.447833
+ 0.46631   0.732953  0.783786  0.31235    0.326852    0.512082   0.802554
+ 0.965629  0.304844  0.920632  0.776753   0.292804    0.144139   0.91402
+ 0.86959   0.672131  0.164346  0.276421   0.0101357   0.951395   0.0623382
+ 0.338969  0.989111  0.842811  0.323553   0.93793     0.739143   0.757139
+ 0.768661  0.872946  0.390208  0.0945557  0.396482    0.203254   0.228228
+ 0.749707  0.54105   0.411554  0.920968   0.386713    0.827946   0.582108
+ 0.330307  0.172701  0.154533  0.26778    0.471555    0.543156   0.184685

We can index with Vector of Tuple{Vararg(Dimension}} like vectors of CartesianIndex

julia
julia> # TODO not merged yet A3[[(X(3), Z(5)), (X(7), Z(x)), (X(8), Z(2))]]

DimIndices can be used like CartesianIndices but again, without the constraint of consecutive dimensions or known order.

julia
julia> # TODO not merged yet A3[DimIndices(dims(A3, (X, Z))), Y(3)]

All of this indexing can be combined arbitrarily.

This will regurn values for :e at 6, :a at 3, all of :d an :b, and a vector of :c and :f. Unlike base, we know that :c and :f are now related and merge the :c and :f dimensions into a lookup of tuples:

julia
julia> A4 = DimArray(rand(10, 9, 8, 7, 6, 5), (:a, :b, :c, :d, :e, :f))
        
        # TODO not merged yet A4[e=6, DimIndices(dims(A4, (:d, :b))), a=3, collect(DimIndices(dims(A4, (:c, :f))))]
╭──────────────────────────────────╮
 10×9×8×7×6×5 DimArray{Float64,6}
@@ -91,16 +91,16 @@
 a, b, c, d, e, f
 └──────────────────────────────────┘
 [:, :, 1, 1, 1, 1]
- 0.269007   0.0474785  0.471334   0.621192  …  0.243243  0.450477  0.498315
- 0.268029   0.297063   0.791817   0.347597     0.755564  0.224188  0.969799
- 0.413825   0.286901   0.543564   0.683179     0.400295  0.453056  0.442305
- 0.979656   0.553437   0.0752473  0.40186      0.906171  0.378221  0.526559
- 0.518935   0.747865   0.917004   0.540209     0.992449  0.579312  0.480116
- 0.730568   0.238298   0.572498   0.304424  …  0.721564  0.865305  0.898891
- 0.0545244  0.795658   0.312995   0.170415     0.657815  0.232963  0.524263
- 0.0555482  0.114333   0.927033   0.136077     0.667948  0.658017  0.90121
- 0.748988   0.194872   0.0320612  0.430912     0.279857  0.569516  0.978339
- 0.58822    0.131239   0.415288   0.137287     0.200605  0.907333  0.721678

The Dimension indexing layer sits on top of regular indexing and can not be combined with it! Regular indexing specifies order, so doesn't mix well with our dimensions.

Mixing them will throw an error:

@example
A1[X(3), 4]
+ 0.0210621  0.952888   0.659743  …  0.318652   0.929476   0.895077
+ 0.681658   0.292016   0.818366     0.202782   0.717744   0.276175
+ 0.301622   0.453234   0.606364     0.29038    0.0547605  0.979994
+ 0.204773   0.753309   0.624931     0.865492   0.400818   0.371115
+ 0.814319   0.0422181  0.841016     0.148638   0.671247   0.0877124
+ 0.975583   0.944133   0.58012   …  0.0516323  0.865733   0.780547
+ 0.27386    0.579898   0.307984     0.553437   0.809188   0.858837
+ 0.219084   0.746619   0.596303     0.755677   0.347865   0.623302
+ 0.787081   0.918031   0.227212     0.124215   0.750123   0.894369
+ 0.345457   0.412067   0.615907     0.431413   0.590101   0.23101

The Dimension indexing layer sits on top of regular indexing and can not be combined with it! Regular indexing specifies order, so doesn't mix well with our dimensions.

Mixing them will throw an error:

@example
A1[X(3), 4]
 # ERROR: ArgumentError: invalid index: X{Int64}(3) of type X{Int64}

Indexing

Indexing AbstractDimArrays works with getindex, setindex! and view. The result is still an AbstracDimArray, unless using all single Int or Selectors that resolve to Int inside Dimension.

Indexing Performance

Indexing with Dimensions has no runtime cost:

julia
julia> A2 = ones(X(3), Y(3))
╭─────────────────────────╮
 3×3 DimArray{Float64,2}
 ├─────────────────── dims ┤
@@ -109,22 +109,22 @@
  1.0  1.0  1.0
  1.0  1.0  1.0
  1.0  1.0  1.0

Lets benchmark it

julia
using BenchmarkTools
julia
julia> @benchmark $A2[X(1), Y(2)]
BenchmarkTools.Trial: 10000 samples with 1000 evaluations.
- Range (minmax):  3.095 ns25.607 ns GC (min … max): 0.00% … 0.00%
- Time  (median):     3.125 ns               GC (median):    0.00%
- Time  (mean ± σ):   3.138 ns ±  0.483 ns GC (mean ± σ):  0.00% ± 0.00%
+ Range (minmax):  2.785 ns13.415 ns GC (min … max): 0.00% … 0.00%
+ Time  (median):     2.795 ns               GC (median):    0.00%
+ Time  (mean ± σ):   2.804 ns ±  0.229 ns GC (mean ± σ):  0.00% ± 0.00%
 
-   
-
-  3.1 ns         Histogram: frequency by time        3.14 ns <
+
+
+  2.78 ns      Histogram: log(frequency) by time     2.82 ns <
 
  Memory estimate: 0 bytes, allocs estimate: 0.

the same as accessing the parent array directly:

julia
julia> @benchmark parent($A2)[1, 2]
BenchmarkTools.Trial: 10000 samples with 1000 evaluations.
- Range (minmax):  2.785 ns18.143 ns GC (min … max): 0.00% … 0.00%
- Time  (median):     2.795 ns               GC (median):    0.00%
- Time  (mean ± σ):   2.816 ns ±  0.326 ns GC (mean ± σ):  0.00% ± 0.00%
+ Range (minmax):  3.095 ns43.832 ns GC (min … max): 0.00% … 0.00%
+ Time  (median):     3.105 ns               GC (median):    0.00%
+ Time  (mean ± σ):   3.116 ns ±  0.473 ns GC (mean ± σ):  0.00% ± 0.00%
 
-                                            
-
-  2.78 ns        Histogram: frequency by time        2.83 ns <
+
+
+  3.1 ns       Histogram: log(frequency) by time     3.14 ns <
 
  Memory estimate: 0 bytes, allocs estimate: 0.

dims keywords

In many Julia functions like, size or sum, you can specify the dimension along which to perform the operation as an Int. It is also possible to do this using Dimension types with AbstractDimArray:

julia
julia> A3 = rand(X(3), Y(4), Ti(5))
╭───────────────────────────╮
 3×4×5 DimArray{Float64,3}
@@ -132,33 +132,33 @@
 X, Y, Ti
 └───────────────────────────┘
 [:, :, 1]
- 0.371716  0.874853  0.441511  0.418556
- 0.82596   0.100949  0.195376  0.853501
- 0.826409  0.338524  0.467494  0.38544
julia
julia> sum(A3; dims=Ti)
╭───────────────────────────╮
+ 0.10396    0.351912  0.576648   0.148322
+ 0.0640237  0.526513  0.0433661  0.631059
+ 0.585991   0.348897  0.724983   0.602401
julia
julia> sum(A3; dims=Ti)
╭───────────────────────────╮
 3×4×1 DimArray{Float64,3}
 ├───────────────────── dims ┤
 X, Y, Ti
 └───────────────────────────┘
 [:, :, 1]
- 2.06252  1.78913  2.68663  2.63438
- 3.46428  1.97054  2.46316  3.05037
- 3.81514  3.27339  1.88629  2.83096

This also works in methods from Statistics:

julia
using Statistics
julia
julia> mean(A3; dims=Ti)
╭───────────────────────────╮
+ 2.34443  2.15532  2.73873  1.94754
+ 1.54225  3.29166  2.45104  2.301
+ 2.26859  3.02688  1.36622  3.81584

This also works in methods from Statistics:

julia
using Statistics
julia
julia> mean(A3; dims=Ti)
╭───────────────────────────╮
 3×4×1 DimArray{Float64,3}
 ├───────────────────── dims ┤
 X, Y, Ti
 └───────────────────────────┘
 [:, :, 1]
- 0.412503  0.357827  0.537327  0.526876
- 0.692856  0.394109  0.492631  0.610073
- 0.763028  0.654678  0.377258  0.566192

This can be especially useful when you are working with multiple objects. Here we take the mean of A3 over all dimensions not in A2, using otherdims.

In this case, thats the Z dimension. But we don't need to know it the Z dimension, some other dimensions, or even if it has extra dimensions at all!

This will work either way, leaveing us with the same dims as A1:

julia
julia> d = otherdims(A3, dims(A1))
Ti
julia
julia> dropdims(mean(A3; dims=d); dims=d)
╭─────────────────────────╮
+ 0.468886  0.431064  0.547745  0.389508
+ 0.308451  0.658332  0.490208  0.4602
+ 0.453717  0.605376  0.273243  0.763169

This can be especially useful when you are working with multiple objects. Here we take the mean of A3 over all dimensions not in A2, using otherdims.

In this case, thats the Z dimension. But we don't need to know it the Z dimension, some other dimensions, or even if it has extra dimensions at all!

This will work either way, leaveing us with the same dims as A1:

julia
julia> d = otherdims(A3, dims(A1))
Ti
julia
julia> dropdims(mean(A3; dims=d); dims=d)
╭─────────────────────────╮
 3×4 DimArray{Float64,2}
 ├─────────────────── dims ┤
 X, Y
 └─────────────────────────┘
- 0.412503  0.357827  0.537327  0.526876
- 0.692856  0.394109  0.492631  0.610073
- 0.763028  0.654678  0.377258  0.566192

Dims keywords

Methods where dims, dim types, or Symbols can be used to indicate the array dimension:

  • size, axes, firstindex, lastindex

  • cat, reverse, dropdims

  • reduce, mapreduce

  • sum, prod, maximum, minimum

  • mean, median, extrema, std, var, cor, cov

  • permutedims, adjoint, transpose, Transpose

  • mapslices, eachslice

DimIndices

Vectors of Dimensions

How to name dimensions?

How to name an array?

Adding metadata

- + 0.468886 0.431064 0.547745 0.389508 + 0.308451 0.658332 0.490208 0.4602 + 0.453717 0.605376 0.273243 0.763169

Dims keywords

Methods where dims, dim types, or Symbols can be used to indicate the array dimension:

  • size, axes, firstindex, lastindex

  • cat, reverse, dropdims

  • reduce, mapreduce

  • sum, prod, maximum, minimum

  • mean, median, extrema, std, var, cor, cov

  • permutedims, adjoint, transpose, Transpose

  • mapslices, eachslice

DimIndices

Vectors of Dimensions

How to name dimensions?

How to name an array?

Adding metadata

+ \ No newline at end of file diff --git a/previews/PR615/diskarrays.html b/previews/PR615/diskarrays.html index bc6a3c66f..b570b67ad 100644 --- a/previews/PR615/diskarrays.html +++ b/previews/PR615/diskarrays.html @@ -8,10 +8,10 @@ - + - + @@ -50,7 +50,7 @@ 0.98 200000000000 200000000000 200000000000 200000000000 0.99 200000000000 200000000000 200000000000 200000000000 1.0 200000000000 200000000000 200000000000 200000000000 - + \ No newline at end of file diff --git a/previews/PR615/ext_dd.html b/previews/PR615/ext_dd.html index 5ab7ad544..e8ea1ef89 100644 --- a/previews/PR615/ext_dd.html +++ b/previews/PR615/ext_dd.html @@ -8,10 +8,10 @@ - + - + @@ -19,7 +19,7 @@
Skip to content

Extending DimensionalData

Nearly everything in DimensionalData.jl is designed to be extensible.

  • AbstractDimArray are easily extended to custom array types. Raster or YAXArray are examples from other packages.

  • AbstractDimStack are easily extended to custom mixed array dataset. RasterStack or ArViZ.Dataset are examples.

  • LookupArray can have new types added, e.g. to AbstractSampled or AbstractCategorical. Rasters.Projected is a lookup that knows its coordinate reference system, but otherwise behaves as a regular Sampled lookup.

dims and rebuild are the key interface methods in most of these cases.

dims

Objects extending DimensionalData.jl that have dimensions must return a Tuple of constructed Dimensions from dims(obj).

Dimension axes

Dimensions return from dims should hold a LookupArray or in some cases just an AbstractArray (like wiht DimIndices). When attached to mullti-dimensional objects, lookups must be the same length as the axis of the array it represents, and eachindex(A, i) and eachindex(dim) must return the same values.

This means that if the array has OffsetArrays.jl axes, the array the dimension wraps must also have OffsetArrays.jl axes.

dims keywords

To any dims keyword argument that only marks the dimension name, objects should accept any Dimension, Type{<:Dimension}, Symbol, Val{:Symbol}, Val{<:Type{<:Dimension}} or regular Integer. This is easier than it sounds, calling DD.dims(objs, dims) will return the matching dimension and DD.dimnum(obj, dims) will return the matching Int for any of these inputs as long as dims(obj) is implemented.

rebuild

Rebuild methods are used to rebuild immutable objects with new field values, in a way that is more flexible and extensible than just using ConstructionBase.jl reconstruction. Developers can choose to ignore some of the fields passed by rebuild.

The function signature is always one of:

julia
rebuild(obj, args...)
 rebuild(obj; kw...)

rebuild has keyword versions automatically generated for all objects using ConstructionBase.jl.

These will work without further work as long as your object has the fields used by DimensionalData.jl objects. For example, AbstractDimArray will receive these keywords in rebuild: data, dims, refdims, name, metadata.

If your AbstractDimArray does not have all these fields, you must implement rebuild(x::YourDimArray; kw...) manually.

An argument method is also defined with the same arguments as the keyword version. For AbstractDimArray it should only be used for updating data and dims, any more that that is confusing.

For Dimension and Selector the single argument versions are easiest to use, as there is only one argument.

rebuild(obj, ...) argument table

TypeKeywordsArguments
AbstractDimArraydata, dims, [refdims, name, metadata]as with kw, in order
AbstractDimStackdata, dims, [refdims], layerdims, [metadata, layermetadata]as with kw, in order
Dimensionvalval
Selectorval, [atol]val
LookupArraydata, [order, span, sampling, metadata]keywords only

You can always add your ownd keywords to rebuild calls, but these will only work on your own objects or other objects with those fields.

- + \ No newline at end of file diff --git a/previews/PR615/groupby.html b/previews/PR615/groupby.html index 94ce2342e..0edb9b66a 100644 --- a/previews/PR615/groupby.html +++ b/previews/PR615/groupby.html @@ -8,11 +8,11 @@ - + - - + + @@ -148,13 +148,13 @@ Ti Sampled{Dates.DateTime} Dates.DateTime("2000-01-01T00:00:00"):Dates.Hour(1):Dates.DateTime("2001-12-30T23:00:00") ForwardOrdered Regular Points └──────────────────────────────────────────────────────────────────────────────┘ 2000-01-01T00:00:00 2000-01-01T01:00:002001-12-30T23:00:00 - 1.0 0.507149 0.95679 0.523272 - 1.01 0.799031 0.641411 0.125357 - 1.02 0.447451 0.621011 0.925952 + 1.0 0.892361 0.860821 0.178462 + 1.01 0.615034 0.872746 0.0398404 + 1.02 0.204465 0.0292776 0.638012 ⋮ ⋱ - 1.98 0.825722 0.437562 0.00117147 - 1.99 0.246641 0.590071 0.995228 - 2.0 0.666578 0.581539 0.889182

Simple groupbys using the functions from above

julia
julia> group = groupby(A, Ti=>month)
╭────────────────────────────────────────╮
+ 1.98  0.610399              0.491236                 0.724304
+ 1.99  0.447415              0.0224376                0.801966
+ 2.0   0.691603              0.177755                 0.681925

Simple groupbys using the functions from above

julia
julia> group = groupby(A, Ti=>month)
╭────────────────────────────────────────╮
 12-element DimGroupByArray{DimArray,1}
 ├────────────────────────────────────────┴──────────────────────── dims ┐
 Ti Sampled{Int64} [1, 2, …, 11, 12] ForwardOrdered Irregular Points
@@ -176,11 +176,11 @@
   Dict{Symbol, Any} with 1 entry:
   :groupby => :Ti=>month
 └───────────────────────────────────────────────────────────────────────┘
-  1  0.499852
-  2  0.499243
+  1  0.499817
+  2  0.500566
 
- 11  0.499744
- 12  0.500986

Here are some more examples

julia
julia> sum.(groupby(A, Ti=>dayofyear)) # it will combine the same day from different year.
╭─────────────────────────────────╮
+ 11  0.498786
+ 12  0.498734

Here are some more examples

julia
julia> sum.(groupby(A, Ti=>dayofyear)) # it will combine the same day from different year.
╭─────────────────────────────────╮
 366-element DimArray{Float64,1}
 ├─────────────────────────────────┴───────────────────────────────── dims ┐
 Ti Sampled{Int64} [1, 2, …, 365, 366] ForwardOrdered Irregular Points
@@ -188,11 +188,11 @@
   Dict{Symbol, Any} with 1 entry:
   :groupby => :Ti=>dayofyear
 └─────────────────────────────────────────────────────────────────────────┘
-   1  2388.88
-   2  2413.12
+   1  2427.69
+   2  2394.99
 
- 365  1219.18
- 366  1204.63
julia
julia> maximum.(groupby(A, Ti=>yearmonthday)) # this does the a daily mean aggregation.
╭─────────────────────────────────╮
+ 365  1226.79
+ 366  1202.98
julia
julia> maximum.(groupby(A, Ti=>yearmonthday)) # this does the a daily mean aggregation.
╭─────────────────────────────────╮
 730-element DimArray{Float64,1}
 ├─────────────────────────────────┴────────────────────────────────────── dims ┐
 Ti Sampled{Tuple{Int64, Int64, Int64}} [(2000, 1, 1), (2000, 1, 2), …, (2001, 12, 29), (2001, 12, 30)] ForwardOrdered Irregular Points
@@ -200,11 +200,11 @@
   Dict{Symbol, Any} with 1 entry:
   :groupby => :Ti=>yearmonthday
 └──────────────────────────────────────────────────────────────────────────────┘
- (2000, 1, 1)    0.99968
- (2000, 1, 2)    0.999956
+ (2000, 1, 1)    0.999661
+ (2000, 1, 2)    0.998837
 
- (2001, 12, 29)  0.999049
- (2001, 12, 30)  0.999583
julia
julia> minimum.(groupby(A, Ti=>yearmonth)) # this does a monthly mean aggregation
╭────────────────────────────────╮
+ (2001, 12, 29)  0.999671
+ (2001, 12, 30)  0.999741
julia
julia> minimum.(groupby(A, Ti=>yearmonth)) # this does a monthly mean aggregation
╭────────────────────────────────╮
 24-element DimArray{Float64,1}
 ├────────────────────────────────┴─────────────────────────────────────── dims ┐
 Ti Sampled{Tuple{Int64, Int64}} [(2000, 1), (2000, 2), …, (2001, 11), (2001, 12)] ForwardOrdered Irregular Points
@@ -212,11 +212,11 @@
   Dict{Symbol, Any} with 1 entry:
   :groupby => :Ti=>yearmonth
 └──────────────────────────────────────────────────────────────────────────────┘
- (2000, 1)   2.47644e-5
- (2000, 2)   8.00506e-6
+ (2000, 1)   1.37252e-5
+ (2000, 2)   5.61808e-6
 
- (2001, 11)  4.41031e-5
- (2001, 12)  2.91365e-5
julia
julia> median.(groupby(A, Ti=>Dates.hour12))
╭────────────────────────────────╮
+ (2001, 11)  2.7475e-5
+ (2001, 12)  5.92949e-6
julia
julia> median.(groupby(A, Ti=>Dates.hour12))
╭────────────────────────────────╮
 12-element DimArray{Float64,1}
 ├────────────────────────────────┴──────────────────────────────── dims ┐
 Ti Sampled{Int64} [1, 2, …, 11, 12] ForwardOrdered Irregular Points
@@ -224,11 +224,11 @@
   Dict{Symbol, Any} with 1 entry:
   :groupby => :Ti=>hour12
 └───────────────────────────────────────────────────────────────────────┘
-  1  0.497156
-  2  0.50067
+  1  0.501419
+  2  0.498047
 
- 11  0.500557
- 12  0.49752

We can also use the function we defined above

julia
julia> mean.(groupby(A, Ti=>yearday)) # this does a daily mean aggregation
╭─────────────────────────────────╮
+ 11  0.5011
+ 12  0.500774

We can also use the function we defined above

julia
julia> mean.(groupby(A, Ti=>yearday)) # this does a daily mean aggregation
╭─────────────────────────────────╮
 730-element DimArray{Float64,1}
 ├─────────────────────────────────┴────────────────────────────────────── dims ┐
 Ti Sampled{Tuple{Int64, Int64}} [(2000, 1), (2000, 2), …, (2001, 363), (2001, 364)] ForwardOrdered Irregular Points
@@ -236,11 +236,11 @@
   Dict{Symbol, Any} with 1 entry:
   :groupby => :Ti=>yearday
 └──────────────────────────────────────────────────────────────────────────────┘
- (2000, 1)    0.493986
- (2000, 2)    0.496624
+ (2000, 1)    0.498531
+ (2000, 2)    0.488616
 
- (2001, 363)  0.498975
- (2001, 364)  0.498237

Binning

Sometimes we want to further aggregate our groups after running a function, or just bin the raw data directly. We can use the Bins wrapper to do this.

When our function returns an Int, we can just use a range of values we want to keep:

julia
julia> mean.(groupby(A, Ti=>Bins(month, 1:2)))
╭───────────────────────────────╮
+ (2001, 363)  0.505092
+ (2001, 364)  0.502074

Binning

Sometimes we want to further aggregate our groups after running a function, or just bin the raw data directly. We can use the Bins wrapper to do this.

When our function returns an Int, we can just use a range of values we want to keep:

julia
julia> mean.(groupby(A, Ti=>Bins(month, 1:2)))
╭───────────────────────────────╮
 2-element DimArray{Float64,1}
 ├───────────────────────────────┴───────────────── dims ┐
 Ti Sampled{Int64} 1:2 ForwardOrdered Regular Points
@@ -248,8 +248,8 @@
   Dict{Symbol, Any} with 1 entry:
   :groupby => :Ti=>Bins(month, 1:2)…
 └───────────────────────────────────────────────────────┘
- 1  0.499852
- 2  0.499243
julia
julia> mean.(groupby(A, Ti=>Bins(month, [1, 3, 5])))
╭───────────────────────────────╮
+ 1  0.499817
+ 2  0.500566
julia
julia> mean.(groupby(A, Ti=>Bins(month, [1, 3, 5])))
╭───────────────────────────────╮
 3-element DimArray{Float64,1}
 ├───────────────────────────────┴───────────────────────── dims ┐
 Ti Sampled{Int64} [1, 3, 5] ForwardOrdered Irregular Points
@@ -257,9 +257,9 @@
   Dict{Symbol, Any} with 1 entry:
   :groupby => :Ti=>Bins(month, [1, 3, 5])…
 └───────────────────────────────────────────────────────────────┘
- 1  0.499852
- 3  0.499591
- 5  0.499201

Or an array of arrays

julia
julia> mean.(groupby(A, Ti => Bins(yearday, [[1,2,3], [4,5,6]], labels=x -> join(string.(x), ','))))
╭───────────────────────────────╮
+ 1  0.499817
+ 3  0.501121
+ 5  0.500317

Or an array of arrays

julia
julia> mean.(groupby(A, Ti => Bins(yearday, [[1,2,3], [4,5,6]], labels=x -> join(string.(x), ','))))
╭───────────────────────────────╮
 4-element DimArray{Float64,1}
 ├───────────────────────────────┴──────────────────────────────────────── dims ┐
 Ti Sampled{Tuple{Int64, Vector{Int64}}} [(2000, [1, 2, 3]), (2000, [4, 5, 6]), (2001, [1, 2, 3]), (2001, [4, 5, 6])] ForwardOrdered Irregular Points
@@ -298,8 +298,8 @@
   Dict{Symbol, Any} with 1 entry:
   :groupby => :Ti=>Bins(dayofyear, UnitRange{Int64}[1:8, 9:16, 17:24, 25:32, 33…
 └──────────────────────────────────────────────────────────────────────────────┘
- 1:8        0.499233
- 9:16       0.501722
+ 1:8        0.498446
+ 9:16       0.501211
 
  369:376  NaN
julia
julia> mean.(groupby(A, Ti => season(; start=December)))
╭───────────────────────────────╮
 4-element DimArray{Float64,1}
@@ -309,10 +309,10 @@
   Dict{Symbol, Any} with 1 entry:
   :groupby => :Ti=>CyclicBins(month; cycle=12, step=3, start=12)…
 └──────────────────────────────────────────────────────────────────────────────┘
- [12, 1, 2]   0.500043
- [3, 4, 5]    0.49989
- [6, 7, 8]    0.500463
- [9, 10, 11]  0.499245
julia
julia> mean.(groupby(A, Ti => hours(12; start=6, labels=x -> 6 in x ? :night : :day)))
╭───────────────────────────────╮
+ [12, 1, 2]   0.499687
+ [3, 4, 5]    0.500493
+ [6, 7, 8]    0.499688
+ [9, 10, 11]  0.499308
julia
julia> mean.(groupby(A, Ti => hours(12; start=6, labels=x -> 6 in x ? :night : :day)))
╭───────────────────────────────╮
 2-element DimArray{Float64,1}
 ├───────────────────────────────┴──────────────────────────────────────── dims ┐
 Ti Sampled{Vector{Int64}} [[6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17], [18, 19, 20, 21, 22, 23, 24, 1, 2, 3, 4, 5]] ForwardOrdered Irregular Points
@@ -320,8 +320,8 @@
   Dict{Symbol, Any} with 1 entry:
   :groupby => :Ti=>CyclicBins(hour; cycle=24, step=12, start=6)…
 └──────────────────────────────────────────────────────────────────────────────┘
- [6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17]  0.500056
- [18, 19, 20, 21, 22, 23, 24, 1, 2, 3, 4, 5]   0.499897

select by month, days, years and seasons

How do we select month 1 or 2, and even a group of them, i.e. [1,3,5]? Same for days, years and seasons.

Use three-month bins. The 13 is the open side of the last interval.

julia
julia> mean.(groupby(A, Ti=>Bins(yearmonth, intervals(1:3:12))))
╭───────────────────────────────╮
+ [6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17]  0.499661
+ [18, 19, 20, 21, 22, 23, 24, 1, 2, 3, 4, 5]   0.499859

select by month, days, years and seasons

How do we select month 1 or 2, and even a group of them, i.e. [1,3,5]? Same for days, years and seasons.

Use three-month bins. The 13 is the open side of the last interval.

julia
julia> mean.(groupby(A, Ti=>Bins(yearmonth, intervals(1:3:12))))
╭───────────────────────────────╮
 8-element DimArray{Float64,1}
 ├───────────────────────────────┴──────────────────────────────────────── dims ┐
 Ti Sampled{Tuple{Int64, IntervalSets.Interval{:closed, :open, Int64}}} [(2000, 1 .. 4 (closed-open)), (2000, 4 .. 7 (closed-open)), …, (2001, 7 .. 10 (closed-open)), (2001, 10 .. 13 (closed-open))] Unordered Irregular Points
@@ -340,23 +340,23 @@
   Dict{Symbol, Any} with 1 entry:
   :groupby => :Ti=>Bins(month, 4)…
 └──────────────────────────────────────────────────────────────────────────────┘
- 1.0 .. 3.75275 (closed-open)     0.499571
- 3.75275 .. 6.5055 (closed-open)  0.499956
- 6.5055 .. 9.25825 (closed-open)  0.500346
- 9.25825 .. 12.011 (closed-open)  0.499767

Select by Dimension {#Select-by-Dimension}

julia
julia> A
╭───────────────────────────────╮
+ 1.0 .. 3.75275 (closed-open)     0.5005
+ 3.75275 .. 6.5055 (closed-open)  0.499792
+ 6.5055 .. 9.25825 (closed-open)  0.499801
+ 9.25825 .. 12.011 (closed-open)  0.4991

Select by Dimension {#Select-by-Dimension}

julia
julia> A
╭───────────────────────────────╮
 101×17520 DimArray{Float64,2}
 ├───────────────────────────────┴──────────────────────────────────────── dims ┐
 X  Sampled{Float64} 1.0:0.01:2.0 ForwardOrdered Regular Points,
 Ti Sampled{Dates.DateTime} Dates.DateTime("2000-01-01T00:00:00"):Dates.Hour(1):Dates.DateTime("2001-12-30T23:00:00") ForwardOrdered Regular Points
 └──────────────────────────────────────────────────────────────────────────────┘
     2000-01-01T00:00:00   2000-01-01T01:00:002001-12-30T23:00:00
- 1.0   0.507149              0.95679                  0.523272
- 1.01  0.799031              0.641411                 0.125357
- 1.02  0.447451              0.621011                 0.925952
+ 1.0   0.892361              0.860821                 0.178462
+ 1.01  0.615034              0.872746                 0.0398404
+ 1.02  0.204465              0.0292776                0.638012
  ⋮                                                 ⋱
- 1.98  0.825722              0.437562                 0.00117147
- 1.99  0.246641              0.590071                 0.995228
- 2.0   0.666578              0.581539                 0.889182
julia
julia> B =
+ 1.98  0.610399              0.491236                 0.724304
+ 1.99  0.447415              0.0224376                0.801966
+ 2.0   0.691603              0.177755                 0.681925
julia
julia> B =
        A[:, 1:3:100]
╭────────────────────────────╮
 101×34 DimArray{Float64,2}
 ├────────────────────────────┴─────────────────────────────────────────── dims ┐
@@ -364,13 +364,13 @@
 Ti Sampled{Dates.DateTime} Dates.DateTime("2000-01-01T00:00:00"):Dates.Hour(3):Dates.DateTime("2000-01-05T03:00:00") ForwardOrdered Regular Points
 └──────────────────────────────────────────────────────────────────────────────┘
     2000-01-01T00:00:00   2000-01-01T03:00:002000-01-05T03:00:00
- 1.0   0.507149              0.744058                 0.816405
- 1.01  0.799031              0.76248                  0.389283
- 1.02  0.447451              0.802359                 0.842417
+ 1.0   0.892361              0.810712                 0.306891
+ 1.01  0.615034              0.080037                 0.581922
+ 1.02  0.204465              0.765988                 0.327324
  ⋮                                                 ⋱
- 1.98  0.825722              0.81834                  0.472027
- 1.99  0.246641              0.601521                 0.106081
- 2.0   0.666578              0.102946                 0.167146
julia
julia> C = mean.(groupby(A, B))
╭────────────────────────────╮
+ 1.98  0.610399              0.801426                 0.697914
+ 1.99  0.447415              0.961429                 0.226789
+ 2.0   0.691603              0.46607                  0.422341
julia
julia> C = mean.(groupby(A, B))
╭────────────────────────────╮
 101×34 DimArray{Float64,2}
 ├────────────────────────────┴─────────────────────────────────────────── dims ┐
 X  Sampled{Float64} 1.0:0.01:2.0 ForwardOrdered Regular Points,
@@ -380,9 +380,9 @@
   :groupby => (:X=>[1.0, 1.01, 1.02, 1.03, 1.04, 1.05, 1.06, 1.07, 1.08, 1.09  …
 └──────────────────────────────────────────────────────────────────────────────┘
    2000-01-01T00:00:00   2000-01-01T03:00:002000-01-05T03:00:00
- 1.0  0.507149              0.744058                 0.816405
+ 1.0  0.892361              0.810712                 0.306891
  ⋮                                                ⋱
- 2.0  0.666578              0.102946                 0.167146
julia
julia> @assert size(A) == size(B)
ERROR: AssertionError: size(A) == size(B)

How do could we incorporate resample? Let's say if we have hour resolution I want to resample every 3,6,12.. hours?

julia
julia> mean.(groupby(A, Ti=>Bins(yearhour, intervals(1:3:24)))) # it will combine the same day from different year.
╭────────────────────────────────╮
+ 2.0  0.691603              0.46607                  0.422341
julia
julia> @assert size(A) == size(B)
ERROR: AssertionError: size(A) == size(B)

How do could we incorporate resample? Let's say if we have hour resolution I want to resample every 3,6,12.. hours?

julia
julia> mean.(groupby(A, Ti=>Bins(yearhour, intervals(1:3:24)))) # it will combine the same day from different year.
╭────────────────────────────────╮
 16-element DimArray{Float64,1}
 ├────────────────────────────────┴─────────────────────────────────────── dims ┐
 Ti Sampled{Tuple{Int64, IntervalSets.Interval{:closed, :open, Int64}}} [(2000, 1 .. 4 (closed-open)), (2000, 4 .. 7 (closed-open)), …, (2001, 19 .. 22 (closed-open)), (2001, 22 .. 25 (closed-open))] Unordered Irregular Points
@@ -412,8 +412,8 @@
   Dict{Symbol, Any} with 1 entry:
   :groupby => :Ti=>Bins(dayofyear, UnitRange{Int64}[1:8, 9:16, 17:24, 25:32, 33…
 └──────────────────────────────────────────────────────────────────────────────┘
- 1:8        0.499233
- 9:16       0.501722
+ 1:8        0.498446
+ 9:16       0.501211
 
  369:376  NaN

Group by Dims.

This should include the rasters input sampling.

julia
julia> mean.(groupby(A, dims(A, Ti)))
╭───────────────────────────────────╮
 17520-element DimArray{Float64,1}
@@ -423,12 +423,12 @@
   Dict{Symbol, Any} with 1 entry:
   :groupby => :Ti=>[DateTime("2000-01-01T00:00:00"), DateTime("2000-01-01T01:00…
 └──────────────────────────────────────────────────────────────────────────────┘
- 2000-01-01T00:00:00  0.506432
- 2000-01-01T01:00:00  0.517524
+ 2000-01-01T00:00:00  0.527892
+ 2000-01-01T01:00:00  0.443411
 
- 2001-12-30T22:00:00  0.435899
- 2001-12-30T23:00:00  0.482983

Apply custom function (i.e. normalization) to grouped output.

- + 2001-12-30T22:00:00 0.515693 + 2001-12-30T23:00:00 0.462236

Apply custom function (i.e. normalization) to grouped output.

+ \ No newline at end of file diff --git a/previews/PR615/hashmap.json b/previews/PR615/hashmap.json index 929c2aa4b..5dc449b41 100644 --- a/previews/PR615/hashmap.json +++ b/previews/PR615/hashmap.json @@ -1 +1 @@ -{"tables.md":"sP144kSG","selectors.md":"ytfYsUrs","plots.md":"RM3wiVX9","stacks.md":"aRMrp7_7","ext_dd.md":"zvqaGg_K","diskarrays.md":"qBrLucbF","dimensions.md":"zVdUQR5t","api_dimensions.md":"IA-RwmZA","api_lookuparrays.md":"OlFlnEnJ","index.md":"vrhC4urF","cuda.md":"ufkF1dat","basics.md":"1DGF5QI2","integrations.md":"MPdVh51A","lookup_customization.md":"uiMNcu-O","api_reference.md":"2x9n2k84","groupby.md":"0KaJajHD"} +{"lookup_customization.md":"uiMNcu-O","stacks.md":"aRMrp7_7","tables.md":"sP144kSG","diskarrays.md":"qBrLucbF","integrations.md":"MPdVh51A","selectors.md":"ytfYsUrs","api_dimensions.md":"fXHWWrqM","ext_dd.md":"zvqaGg_K","index.md":"vrhC4urF","cuda.md":"ufkF1dat","basics.md":"1DGF5QI2","plots.md":"SLTDc47H","dimensions.md":"VsQWKmyz","api_reference.md":"Qucofgn7","api_lookuparrays.md":"ZxU9xJQZ","groupby.md":"iuCORDsr"} diff --git a/previews/PR615/index.html b/previews/PR615/index.html index e51e65775..4d82ba596 100644 --- a/previews/PR615/index.html +++ b/previews/PR615/index.html @@ -8,17 +8,17 @@ - + - +
Skip to content

DimensionalData.jl

Datasets with named dimensions

High performance name indexing for Julia

- + \ No newline at end of file diff --git a/previews/PR615/integrations.html b/previews/PR615/integrations.html index f3f216a44..1a48a8d5e 100644 --- a/previews/PR615/integrations.html +++ b/previews/PR615/integrations.html @@ -8,17 +8,17 @@ - + - +
Skip to content

Integrations

Spatial sciences

Rasters.jl

Raster.jl extends DD for geospatial data manipulation, providing file load/save for a wide range of raster data sources and common GIS tools like polygon rasterization and masking. Raster types are aware of crs and their missingval (which is often not missing for performance and storage reasons).

Rasters.jl is also the reason DimensionalData.jl exists at all! But it always made sense to separate out spatial indexing from GIS tools and dependencies.

A Raster is a AbstractDimArray, a RasterStack is a AbstractDimStack, and Projected and Mapped are AbstractSample lookups.

YAXArrays.jl

YAXArrays.jl is another spatial data package aimmed more at (very) large datasets. It's functionality is slowly converging with Rasters.jl (both wrapping DiskArray.jl/DimensionalData.jl) and we work closely with the developers.

YAXArray is a AbstractDimArray and inherits its behaviours.

ClimateBase.jl

ClimateBase.jl Extends DD with methods for analysis of climate data.

Statistics

ArviZ.jl

ArviZ.jl Is a julia package for exploratory analysis of Bayesian models.

An ArviZ.Dataset is an AbstractDimStack!

Optimization

JuMP.jl

JuMP.jl is a powerful omptimisation DSL. It defines its own named array types but now accepts any AbstractDimArray too, through a package extension.

Simulations

CryoGrid.jl

CryoGrid.jl A Juia implementation of the CryoGrid permafrost model.

CryoGridOutput uses DimArray for views into output data.

DynamicGrids.jl

DynamicGrids.jl is a spatial simulation engine, for cellular automata and spatial process models.

All DynamicGrids.jl Outputs are <: AbstractDimArray, and AbstractDimArray are used for auxiliary data to allow temporal synchronisation during simulations. Notably, this all works on GPUs!

Analysis

AstroImages.jl

AstroImages.jl Provides tools to load and visualise astromical images. AstroImage is <: AbstractDimArray.

TimeseriesTools.jl

[TimeseriesTools.jl](https://juliahub.com/ui/Packages/General/TimeseriesTools Uses DimArray for time-series data.

- + \ No newline at end of file diff --git a/previews/PR615/lookup_customization.html b/previews/PR615/lookup_customization.html index 488728c00..b200109d9 100644 --- a/previews/PR615/lookup_customization.html +++ b/previews/PR615/lookup_customization.html @@ -8,17 +8,17 @@ - + - + - + \ No newline at end of file diff --git a/previews/PR615/plots.html b/previews/PR615/plots.html index 081230572..f78f537d9 100644 --- a/previews/PR615/plots.html +++ b/previews/PR615/plots.html @@ -8,11 +8,11 @@ - + - - + + @@ -20,8 +20,8 @@
Skip to content

Plots.jl

Plots.jl and Makie.jl functions mostly work out of the box on AbstractDimArray, although not with the same results - they choose to follow each packages default behaviour as much as possible.

This will plot a line plot with 'a', 'b' and 'c' in the legend, and values 1-10 on the labelled X axis:

Plots.jl support is deprecated, as development is moving to Makie.jl

Makie.jl

Makie.jl functions also mostly work with AbstractDimArray and will permute and reorder axes into the right places, especially if X/Y/Z/Ti dimensions are used.

In makie a DimMatrix will plot as a heatmap by defualt, but again it will have labels and axes in the right places:

julia
using DimensionalData, CairoMakie
 
 A = rand(X(1:10), Y([:a, :b, :c]))
-Makie.plot(A; colormap=:inferno)

Other plots also work, here we ignore the axis order and instead favour the categorical varable for the X axis:

julia
Makie.rainclouds(A)

A lot more is planned for Make.jl plots in future!

- +Makie.plot(A; colormap=:inferno)

Other plots also work, here we ignore the axis order and instead favour the categorical varable for the X axis:

julia
Makie.rainclouds(A)

A lot more is planned for Make.jl plots in future!

+ \ No newline at end of file diff --git a/previews/PR615/selectors.html b/previews/PR615/selectors.html index f3107ca0a..e3ffde323 100644 --- a/previews/PR615/selectors.html +++ b/previews/PR615/selectors.html @@ -8,17 +8,17 @@ - + - +
Skip to content

Selectors and LookupArrays

http://localhost:5173/DimensionalData.jl/reference#lookuparrays

DimensionalData.jl Dimensions in an AbstractDimArray or AbstactDimStack usually hold LookupArrays.

These are AbstractArray with added features to facilitate fast and accurate lookups of their values, using a Selector

SelectorDescriptionIndexing style
[`At(x)`](api/lookuparrays#DimensionalData.Dimensions.LookupArrays.At)get the index exactly matching the passed in value(s)`Int/Vector{Int}`
[`Near(x)`](api/lookuparrays#DimensionalData.Dimensions.LookupArrays.Near)get the closest index to the passed in value(s)`Int/Vector{Int}`
[`Contains(x)`](api/lookuparrays#DimensionalData.Dimensions.LookupArrays.Contains)get indices where the value x falls within an interval in the lookup`Int/Vector{Int}`
[`Where(f)`](api/lookuparrays#DimensionalData.Dimensions.LookupArrays.Where)filter the array axis by a function of the dimension index values.`Vector{Bool}`
[`Not(x)`]get all indices _not_ selected by `x`, which can be another selector.`Vector{Bool}`
[`a .. b`]get all indices between two values, inclusively.`UnitRange`
[`OpenInterval(a, b)`]get all indices between `a` and `b`, exclusively.`UnitRange`
[`Interval{A,B}(a, b)`]get all indices between `a` and `b`, as `:closed` or `:open`.`UnitRange`
[`Touches(a, b)`]like `..` but includes all cells touched by the interval, not just inside it`UnitRange`

Note: At, Near and Contains can wrap either single values or an AbstractArray of values, to select one index with an Int or multiple indices with a Vector{Int}.

Selectors find indices in the LookupArray, for each dimension. LookupArrays wrap other AbstractArray (often AbstractRange) but add aditional traits to facilitate fast lookups or specifing point or interval behviour.

Some common LookupArray that are:

LookupArrayDescription
[`Sampled(x)`](@ref)values sampled along an axis - may be `Ordered`/`Unordered`, `Intervals`/`Points`, and `Regular`/`Irregular`
[`Categorical(x)`](@ref)a categorical lookup that holds categories, and may be ordered
[`Cyclic(x)`](@ref)an `AbstractSampled` lookup for cyclical values.
[`NoLookup(x)`](@ref)no lookup values provided, so `Selector`s will not work. Not show in repl printing.
- + \ No newline at end of file diff --git a/previews/PR615/stacks.html b/previews/PR615/stacks.html index 7c1a8d095..15617b066 100644 --- a/previews/PR615/stacks.html +++ b/previews/PR615/stacks.html @@ -8,17 +8,17 @@ - + - +
Skip to content

Stacks

An AbstractDimStack represents a collection of AbstractDimArray layers that share some or all dimensions. For any two layers, a dimension of the same name must have the identical lookup - in fact only one is stored for all layers to enforce this consistency.

The behaviour is somewhere ebetween a NamedTuple and an AbstractArray

Indexing layers by name with stack[:layer] or stack.layer works as with a NamedTuple, and returns an AbstractDimArray. Indexing with Dimensions, Selectors works as with an AbstractDimArray, except it indexes for all layers at the same time, returning either a new small AbstractDimStack or a scalar value, if all layers are scalars.

Base functions like mean, maximum, reverse are applied to all layers of the stack.

broadcast_dims broadcasts functions over any mix of AbstractDimStack and AbstractDimArray returning a new AbstractDimStack with layers the size of the largest layer in the broadcast. This will work even if dimension permutation does not match in the objects.

Performance

Indexing stack is fast - indexing a single value return a NamedTuple from all layers usingally, measures in nanoseconds. There are some compilation overheads to this though, and stacks with very many layers can take a long time to compile.

Hopefully compiler fixes planned for Julia v1.11 will improve this.

- + \ No newline at end of file diff --git a/previews/PR615/tables.html b/previews/PR615/tables.html index 62ca2ec0a..76c92d89e 100644 --- a/previews/PR615/tables.html +++ b/previews/PR615/tables.html @@ -8,17 +8,17 @@ - + - +
Skip to content

Tables and DataFrames

Tables.jl provides an ecosystem-wide interface to tabular data in julia, giving interop with DataFrames.jl, CSV.jl and hundreds of other packages that implement the standard.

DimensionalData.jl implements the Tables.jl interface for AbstractDimArray and AbstractDimStack. DimStack layers are unrolled so they are all the same size, and dimensions similarly loop over array strides to match the length of the largest layer.

Columns are given the name or the array or the stack layer key. Dimension columns use the Symbol version (the result of DD.dim2key(dimension)).

Looping of unevenly size dimensions and layers is done lazily, and does not allocate unless collected.

- + \ No newline at end of file