# How to change dims data from NT or T to ::OutDims for YAXArrays.DAT.OutputCube

**URL:** <https://discourse.julialang.org/t/how-to-change-dims-data-from-nt-or-t-to-outdims-for-yaxarrays-dat-outputcube/125700>\
**Category:** New to Julia\
**Tags:** package, tuple, namedtuple\
**Created:** [February 9, 2025, 9:17am UTC](https://discourse.julialang.org/t/how-to-change-dims-data-from-nt-or-t-to-outdims-for-yaxarrays-dat-outputcube/125700 "2025-02-09T09:17:41Z")\
**Posts on this page:** 1\
**Page:** 1

<div class="post-metadata">

**Author:** ![Xu\_Shan](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/xu_shan/32/214900_2.png) [@Xu\_Shan](https://discourse.julialang.org/u/Xu_Shan)\
**Post date:** [February 9, 2025, 9:17am UTC](https://discourse.julialang.org/t/how-to-change-dims-data-from-nt-or-t-to-outdims-for-yaxarrays-dat-outputcube/125700/1 "2025-02-09T09:17:41Z")

</div>

Hi guys,

I am new to Julia, and wants to run a function which is like:

```julia
outcubes = mapCube(TEMYax,
        (incubes...,);
        selected_models=selected_models,
        forcing_vars=forcing.variables,
        output_vars = run_helpers.output_vars,
        loc_land=loc_land,
        tem=run_helpers.tem_info,
        indims=indims,
        outdims=run_helpers.output_dims,
        max_cache=info.settings.experiment.exe_rules.yax_max_cache,
        ispar=true)

```

This is to say, map the function `TEMYax` to `incubes`. However, it returns error

```julia
ERROR: MethodError: no method matching YAXArrays.DAT.OutputCube(::T, ::Vector{Dim}, ::T, ::NT, ::typeof(TEMYax))
Closest candidates are:
  YAXArrays.DAT.OutputCube(::Any, ::Any, ::Any, ::Any, ::Any, ::Any, ::Any, ::Any)
   @ YAXArrays ~/.julia/packages/YAXArrays/b5XBB/src/DAT/DAT.jl:132
  YAXArrays.DAT.OutputCube(::OutDims, ::Any, ::Any, ::Any, ::Any)
   @ YAXArrays ~/.julia/packages/YAXArrays/b5XBB/src/DAT/DAT.jl:200
  YAXArrays.DAT.OutputCube(::Any, ::Any, ::OutDims, ::Array{DimensionalData.Dimensions.Dimension}, ::Vector{DimensionalData.Dimensions.Dimension}, ::Vector{Int64}, ::Any, ::Any)
   @ YAXArrays ~/.julia/packages/YAXArrays/b5XBB/src/DAT/DAT.jl:132

```

I think it is trying to tell me one of `indims` or `run_helpers.output_dims` have wrong data type? it should be `::OutDims`, but it is `T` in my case? I tried to use following command to determine the data type:

```julia
julia> typeof(indims)
NT
julia> typeof(run_helpers.output_dims)
T

```

So, I guess I have to transform `run_helpers.output_dims` from `Tuple` to `:OutDims`? Here is what `run_helpers.output_dims` looks like:

```julia
julia> run_helpers.output_dims
((↓ time [2005-01-01T00:00:00, …, 2006-12-31T00:00:00],
→ site [CA-Obs, CA-Qfo, …, FI-Sod, US-NR1]), (↓ time [2005-01-01T00:00:00, …, 2006-12-31T00:00:00],
→ site [CA-Obs, CA-Qfo, …, FI-Sod, US-NR1]), (↓ time [2005-01-01T00:00:00, …, 2006-12-31T00:00:00],
→ site [CA-Obs, CA-Qfo, …, FI-Sod, US-NR1]), (↓ time [2005-01-01T00:00:00, …, 2006-12-31T00:00:00],
→ site [CA-Obs, CA-Qfo, …, FI-Sod, US-NR1]), (↓ time [2005-01-01T00:00:00, …, 2006-12-31T00:00:00],
→ site [CA-Obs, CA-Qfo, …, FI-Sod, US-NR1]), (↓ time [2005-01-01T00:00:00, …, 2006-12-31T00:00:00],
→ site [CA-Obs, CA-Qfo, …, FI-Sod, US-NR1]), (↓ time [2005-01-01T00:00:00, …, 2006-12-31T00:00:00],
→ site [CA-Obs, CA-Qfo, …, FI-Sod, US-NR1]), (↓ time [2005-01-01T00:00:00, …, 2006-12-31T00:00:00],
→ site [CA-Obs, CA-Qfo, …, FI-Sod, US-NR1]), (↓ time [2005-01-01T00:00:00, …, 2006-12-31T00:00:00],
→ d_cEco 1:8,
↗ site [CA-Obs, CA-Qfo, …, FI-Sod, US-NR1]), (↓ time [2005-01-01T00:00:00, …, 2006-12-31T00:00:00],
→ site [CA-Obs, CA-Qfo, …, FI-Sod, US-NR1]), (↓ time [2005-01-01T00:00:00, …, 2006-12-31T00:00:00],
→ site [CA-Obs, CA-Qfo, …, FI-Sod, US-NR1]), (↓ time [2005-01-01T00:00:00, …, 2006-12-31T00:00:00],
→ site [CA-Obs, CA-Qfo, …, FI-Sod, US-NR1]), (↓ time [2005-01-01T00:00:00, …, 2006-12-31T00:00:00],
→ site [CA-Obs, CA-Qfo, …, FI-Sod, US-NR1]), (↓ time [2005-01-01T00:00:00, …, 2006-12-31T00:00:00],
→ site [CA-Obs, CA-Qfo, …, FI-Sod, US-NR1]), (↓ time [2005-01-01T00:00:00, …, 2006-12-31T00:00:00],
→ site [CA-Obs, CA-Qfo, …, FI-Sod, US-NR1]), (↓ time [2005-01-01T00:00:00, …, 2006-12-31T00:00:00],
→ site [CA-Obs, CA-Qfo, …, FI-Sod, US-NR1]), (↓ time [2005-01-01T00:00:00, …, 2006-12-31T00:00:00],
→ site [CA-Obs, CA-Qfo, …, FI-Sod, US-NR1]), (↓ time [2005-01-01T00:00:00, …, 2006-12-31T00:00:00],
→ site [CA-Obs, CA-Qfo, …, FI-Sod, US-NR1]), (↓ time [2005-01-01T00:00:00, …, 2006-12-31T00:00:00],
→ site [CA-Obs, CA-Qfo, …, FI-Sod, US-NR1]), (↓ time [2005-01-01T00:00:00, …, 2006-12-31T00:00:00],
→ site [CA-Obs, CA-Qfo, …, FI-Sod, US-NR1]), (↓ time [2005-01-01T00:00:00, …, 2006-12-31T00:00:00],
→ gpp_climate_stressors_idx 1:4,
↗ site [CA-Obs, CA-Qfo, …, FI-Sod, US-NR1]), (↓ time [2005-01-01T00:00:00, …, 2006-12-31T00:00:00],
→ site [CA-Obs, CA-Qfo, …, FI-Sod, US-NR1]), (↓ time [2005-01-01T00:00:00, …, 2006-12-31T00:00:00],
→ site [CA-Obs, CA-Qfo, …, FI-Sod, US-NR1]), (↓ time [2005-01-01T00:00:00, …, 2006-12-31T00:00:00],
→ d_cEco 1:8,
↗ site [CA-Obs, CA-Qfo, …, FI-Sod, US-NR1]), (↓ time [2005-01-01T00:00:00, …, 2006-12-31T00:00:00],
→ site [CA-Obs, CA-Qfo, …, FI-Sod, US-NR1]), (↓ time [2005-01-01T00:00:00, …, 2006-12-31T00:00:00],
→ site [CA-Obs, CA-Qfo, …, FI-Sod, US-NR1]), (↓ time [2005-01-01T00:00:00, …, 2006-12-31T00:00:00],
→ d_soil 1:4,
↗ site [CA-Obs, CA-Qfo, …, FI-Sod, US-NR1]), (↓ time [2005-01-01T00:00:00, …, 2006-12-31T00:00:00],
→ site [CA-Obs, CA-Qfo, …, FI-Sod, US-NR1]), (↓ time [2005-01-01T00:00:00, …, 2006-12-31T00:00:00],
→ site [CA-Obs, CA-Qfo, …, FI-Sod, US-NR1]), (↓ time [2005-01-01T00:00:00, …, 2006-12-31T00:00:00],
→ site [CA-Obs, CA-Qfo, …, FI-Sod, US-NR1]), (↓ time [2005-01-01T00:00:00, …, 2006-12-31T00:00:00],
→ site [CA-Obs, CA-Qfo, …, FI-Sod, US-NR1]), (↓ time [2005-01-01T00:00:00, …, 2006-12-31T00:00:00],
→ site [CA-Obs, CA-Qfo, …, FI-Sod, US-NR1]), (↓ time [2005-01-01T00:00:00, …, 2006-12-31T00:00:00],
→ site [CA-Obs, CA-Qfo, …, FI-Sod, US-NR1]), (↓ time [2005-01-01T00:00:00, …, 2006-12-31T00:00:00],
→ site [CA-Obs, CA-Qfo, …, FI-Sod, US-NR1]), (↓ time [2005-01-01T00:00:00, …, 2006-12-31T00:00:00],
→ site [CA-Obs, CA-Qfo, …, FI-Sod, US-NR1]), (↓ time [2005-01-01T00:00:00, …, 2006-12-31T00:00:00],
→ site [CA-Obs, CA-Qfo, …, FI-Sod, US-NR1]), (↓ time [2005-01-01T00:00:00, …, 2006-12-31T00:00:00],
→ site [CA-Obs, CA-Qfo, …, FI-Sod, US-NR1]), (↓ time [2005-01-01T00:00:00, …, 2006-12-31T00:00:00],
→ site [CA-Obs, CA-Qfo, …, FI-Sod, US-NR1]), (↓ time [2005-01-01T00:00:00, …, 2006-12-31T00:00:00],
→ site [CA-Obs, CA-Qfo, …, FI-Sod, US-NR1]), (↓ time [2005-01-01T00:00:00, …, 2006-12-31T00:00:00],
→ site [CA-Obs, CA-Qfo, …, FI-Sod, US-NR1]), (↓ time [2005-01-01T00:00:00, …, 2006-12-31T00:00:00],
→ site [CA-Obs, CA-Qfo, …, FI-Sod, US-NR1]), (↓ time [2005-01-01T00:00:00, …, 2006-12-31T00:00:00],
→ site [CA-Obs, CA-Qfo, …, FI-Sod, US-NR1]), (↓ time [2005-01-01T00:00:00, …, 2006-12-31T00:00:00],
→ d_tws 1:7,
↗ site [CA-Obs, CA-Qfo, …, FI-Sod, US-NR1]), (↓ time [2005-01-01T00:00:00, …, 2006-12-31T00:00:00],
→ site [CA-Obs, CA-Qfo, …, FI-Sod, US-NR1]), (↓ time [2005-01-01T00:00:00, …, 2006-12-31T00:00:00],
→ site [CA-Obs, CA-Qfo, …, FI-Sod, US-NR1]), (↓ time [2005-01-01T00:00:00, …, 2006-12-31T00:00:00],
→ site [CA-Obs, CA-Qfo, …, FI-Sod, US-NR1]), (↓ time [2005-01-01T00:00:00, …, 2006-12-31T00:00:00],
...(different variables are omitted here...)

```

But I don’t know how to transform it…could you please help me? Thanks!

Some useful information:

```julia
julia> @info "First element type: $(typeof(outdims[1][1]))"
[ Info: First element type: Dim{:time, Vector{DateTime}}

julia> @info "First element type: $(typeof(outdims[1][2]))"
[ Info: First element type: Dim{:site, Vector{String}}

julia> @info "First element type: $(typeof(outdims[1]))"
[ Info: First element type: T

```
