|
1 | 1 | module SpaceDataModelDimensionalDataExt |
2 | 2 |
|
3 | 3 | import SpaceDataModel |
4 | | -using DimensionalData: AbstractDimArray, TimeDim, dims, Dimension |
| 4 | +using DimensionalData: AbstractDimArray, TimeDim, dims, Dimension, Dim |
5 | 5 | import DimensionalData as DD |
6 | | -import SpaceDataModel: meta, _merge, timedim, unwrap, name |
| 6 | +import SpaceDataModel: meta, _merge, tdimnum, timedim, unwrap, name |
7 | 7 |
|
8 | 8 | _merge(::DD.NoMetadata, d, rest...) = merge(d, rest...) |
9 | | -meta(A::AbstractDimArray) = DD.metadata(A) |
10 | | -name(x::Dimension) = DD.name(x) |
11 | | -unwrap(x::Dimension) = parent(x) |
| 9 | +SpaceDataModel.getmeta(A::AbstractDimArray) = DD.metadata(A) |
| 10 | +SpaceDataModel.name(x::Dimension) = DD.name(x) |
| 11 | +SpaceDataModel.unwrap(x::Dimension) = parent(x) |
| 12 | + |
| 13 | +# A no-error version of `dimnum` |
| 14 | +_dimnum(x, dim) = DD.hasdim(x, dim) ? DD.dimnum(x, dim) : nothing |
| 15 | + |
| 16 | +SpaceDataModel.tdimnum(x::AbstractDimArray) = @something( |
| 17 | + _dimnum(x, TimeDim), |
| 18 | + _dimnum(x, Dim{:time}), |
| 19 | + tdimnum(parent(x)) |
| 20 | +) |
12 | 21 |
|
13 | | -function SpaceDataModel.timedim(x::AbstractDimArray, query = nothing) |
14 | | - query = something(query, TimeDim) |
15 | | - qdim = dims(x, query) |
16 | | - return isnothing(qdim) ? dims(x, 1) : qdim |
17 | | -end |
18 | 22 | end |
0 commit comments