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.220851 0.363229 0.947932 0.526954 0.634063
9 0.4714 0.441057 0.893438 0.307251 0.754852
8 0.971372 0.547946 0.254775 0.420647 0.634243
7 0.486888 0.166913 0.0690572 0.274056 0.580022
6 0.76215 0.316805 0.750419 … 0.443407 0.776345
5 0.385376 0.760848 0.353781 0.238739 0.771526
4 0.193406 0.506162 0.974498 0.331865 0.0934149
3 0.255246 0.621764 0.692697 0.866028 0.0707145
2 0.772519 0.799018 0.565991 0.667948 0.801425
1 0.206323 0.738666 0.261211 … 0.0237676 0.49109
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