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.388945 0.904261 0.398684 0.0596493 0.252338
9 0.669981 0.85053 0.189338 0.829205 0.42654
8 0.107204 0.342231 0.420887 0.813243 0.360389
7 0.198271 0.883188 0.765241 0.82212 0.937551
6 0.200497 0.764446 0.867989 … 0.154712 0.463695
5 0.413491 0.867329 0.546156 0.611476 0.749668
4 0.243953 0.631836 0.250324 0.172251 0.938113
3 0.24879 0.413585 0.886146 0.659138 0.197578
2 0.420863 0.881856 0.582033 0.541502 0.507247
1 0.354497 0.201262 0.628988 … 0.648739 0.0864783
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