Getters
DimensionalData.jl defines consistent methods to retreive information from objects like DimArray
, DimStack
, Tuple
s of Dimension
, Dimension
and Lookup
.
First we will define an example DimArray
.
julia
using DimensionalData
using DimensionalData.Lookups
x, y = X(10:-1:1), Y(100.0:10:200.0)
A = rand(x, y)
╭───────────────────────────╮
│ 10×11 DimArray{Float64,2} │
├───────────────────────────┴─────────────────────────────────── dims ┐
↓ X Sampled{Int64} 10:-1:1 ReverseOrdered Regular Points,
→ Y Sampled{Float64} 100.0:10.0:200.0 ForwardOrdered Regular Points
└─────────────────────────────────────────────────────────────────────┘
↓ → 100.0 110.0 120.0 … 190.0 200.0
10 0.0253924 0.429286 0.985725 0.638992 0.42927
9 0.471007 0.53802 0.236771 0.277487 0.373039
8 0.0957116 0.808355 0.846511 0.282378 0.731018
7 0.796541 0.0609007 0.823703 0.541727 0.825648
6 0.152861 0.434653 0.19358 … 0.0388167 0.687141
5 0.314972 0.5605 0.272494 0.608112 0.336159
4 0.675957 0.514924 0.698379 0.601287 0.594634
3 0.321663 0.503014 0.0763813 0.920212 0.0723327
2 0.0691477 0.209125 0.303143 0.471548 0.450556
1 0.418554 0.318848 0.250708 … 0.166076 0.656262
dims
retreives dimensions from any object that has them.
What makes it so useful is you can filter which dimensions you want in what order, using any Dimension
, Type{Dimension}
or Symbol
.
julia
julia> dims(A)
↓ X Sampled{Int64} 10:-1:1 ReverseOrdered Regular Points,
→ Y Sampled{Float64} 100.0:10.0:200.0 ForwardOrdered Regular Points
julia
julia> dims(A, Y)
Y Sampled{Float64} ForwardOrdered Regular Points
wrapping: 100.0:10.0:200.0
julia
julia> dims(A, Y())
Y Sampled{Float64} ForwardOrdered Regular Points
wrapping: 100.0:10.0:200.0
julia
julia> dims(A, :Y)
Y Sampled{Float64} ForwardOrdered Regular Points
wrapping: 100.0:10.0:200.0
julia
julia> dims(A, (X,))
↓ X Sampled{Int64} 10:-1:1 ReverseOrdered Regular Points
julia
julia> dims(A, (Y, X))
↓ Y Sampled{Float64} 100.0:10.0:200.0 ForwardOrdered Regular Points,
→ X Sampled{Int64} 10:-1:1 ReverseOrdered Regular Points
julia
julia> dims(A, reverse(dims(A)))
↓ Y Sampled{Float64} 100.0:10.0:200.0 ForwardOrdered Regular Points,
→ X Sampled{Int64} 10:-1:1 ReverseOrdered Regular Points
julia
julia> dims(A, isregular)
↓ X Sampled{Int64} 10:-1:1 ReverseOrdered Regular Points,
→ Y Sampled{Float64} 100.0:10.0:200.0 ForwardOrdered Regular Points
Predicates
These always return true
or false
. With multiple dimensions, fale
means !all
and true
means all
.
dims
and all other methods listed above can use predicates to filter the returned dimensions.
julia
julia> issampled(A)
true
julia
julia> issampled(dims(A))
true
julia
julia> issampled(A, Y)
true
julia
julia> issampled(lookup(A, Y))
true
julia
julia> dims(A, issampled)
↓ X Sampled{Int64} 10:-1:1 ReverseOrdered Regular Points,
→ Y Sampled{Float64} 100.0:10.0:200.0 ForwardOrdered Regular Points
julia
julia> otherdims(A, issampled)
()
julia
julia> lookup(A, issampled)
Sampled{Int64} 10:-1:1 ReverseOrdered Regular Points,
Sampled{Float64} 100.0:10.0:200.0 ForwardOrdered Regular Points