Hi guys,
I am new to Julia, and wants to run a function which is like:
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
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> 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> 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> @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