YAXArrays.jl icon indicating copy to clipboard operation
YAXArrays.jl copied to clipboard

Bad interaction between Makie and broadcasted YAXArrays?

Open felixcremer opened this issue 2 months ago • 0 comments

When I am using a YAXArray inside SignalDecomposition.decompose I get back a YAXArray backed by a DAE.GMWOPResult. And I can then read the data via readcubedata but if I try to plot it directly with Makie I get the following wall of error: This is for the BIDS 2025 intro to YAXArrays. I am not sure which magic allows the SignalDecomposition.decompose of a YAXArray to return a YAXArray but that is currently what is happening.

Wrapping the SignalDecomposition.decompose call in a readcubedata makes the error disappear.

gpp = c[Variable=At("gross_primary_productivity"),
        time=Date(2001)..Date(2018,12,31), 
        lon=Near(11.3464),lat=Near(46.4946)]
using SignalDecomposition
gpp_smooth , gpp_anomalies = (SignalDecomposition.decompose(lookup(gpp, :time), gpp, TimeAnomaly()))
julia> #function plot_stlres(t, org, stlres)
           fig = Figure()
           axorg = Axis(fig[1,1])
           lines!(axorg, gpp, label="Original GPP")
           axsmooth = Axis(fig[2,1])
           lines!(axsmooth, gpp_smooth, label="GPP Smoothed")
           axanom = Axis(fig[3,1])
           lines!(axanom, gpp_anomalies, label="GPP Anomalies")
           #lines!(ax, gpp_smooth, label="GPP Smoothed")
           fig
ERROR: Failed to resolve data_limits:
[ComputeEdge] data_limits = (::MapFunctionWrapper(#561))((positions, ), changed, cached)
  @ /home/fcremer/.julia/packages/Makie/4JW9B/src/compute-plots.jl:981
  with edge inputs:
    positions = 414-element DiskArrayEngine.GMWOPResult{Point{2, Float64}, 1, DiskArrayEngine.GMDWop{1, Tuple{DiskArrayEngine.InputArray{Vector{Int64}, DiskArrayEngine.LoopWindows{DiskArrayEngine.ProductArray{Tuple{Int64}, 1, Tuple{UnitRange{Int64}}}, (1,)}}, DiskArrayEngine.InputArray{DiskArrayEngine.GMWOPResult{Float32, 1, DiskArrayEngine.GMDWop{1, Tuple{DiskArrayEngine.InputArray{DiskArrayEngine.GMWOPResult{Union{Missing, Float32}, 1, DiskArrayEngine.GMDWop{1, Tuple{DiskArrayEngine.InputArray{DiskArrays.SubDiskArray{Union{Missing, Float32}, 1, DiskArrayTools.CFDiskArray{Union{Missing, Float32}, 3, Float64, ZArray{Float32, 3, Zarr.BloscCompressor, DirectoryStore}, Float32}, Tuple{Int64, Int64, UnitRange{Int64}}, false}, DiskArrayEngine.LoopWindows{DiskArrayEngine.ProductArray{Tuple{Int64}, 1, Tuple{UnitRange{Int64}}}, (1,)}}, DiskArrayEngine.InputArray{Vector{Union{Missing, Float32}}, DiskArrayEngine.LoopWindows{DiskArrayEngine.ProductArray{Tuple{Int64}, 1, Tuple{UnitRange{Int64}}}, (1,)}}}, Tuple{@NamedTuple{lw::DiskArrayEngine.LoopWindows{DiskArrayEngine.ProductArray{Tuple{Int64}, 1, Tuple{Base.OneTo{Int64}}}, (1,)}, chunks::Tuple{Nothing}, ismem::Bool}}, DiskArrayEngine.UserOp{DiskArrayEngine.ElementFunction{XFunction{typeof(-), XOutput{Tuple{}, Int64}, Tuple{}}, DiskArrayEngine.NonMutating}, Tuple{Nothing}, Tuple{Float32}, Tuple{typeof(identity)}, Tuple{Union}, Tuple{Union}}, DiskArrayEngine.LoopIndSplitter{(1,), (), ((true, 1),)}}, DiskArrays.Unchunked{DiskArrays.SubRanges{DiskArrays.NoStepRange}}, 1}, DiskArrayEngine.LoopWindows{DiskArrayEngine.ProductArray{Tuple{Int64}, 1, Tuple{UnitRange{Int64}}}, (1,)}}}, Tuple{@NamedTuple{lw::DiskArrayEngine.LoopWindows{DiskArrayEngine.ProductArray{Tuple{Int64}, 1, Tuple{Base.OneTo{Int64}}}, (1,)}, chunks::Tuple{Nothing}, ismem::Bool}}, DiskArrayEngine.UserOp{DiskArrayEngine.ElementFunction{Makie.var"#1323#1324"{Float32}, DiskArrayEngine.NonMutating}, Tuple{Nothing}, Tuple{Float32}, Tuple{typeof(identity)}, Tuple{DataType}, Tuple{DataType}}, DiskArrayEngine.LoopIndSplitter{(1,), (), ((true, 1),)}}, DiskArrays.Unchunked{DiskArrays.SubRanges{DiskArrays.NoStepRange}}, 1}, DiskArrayEngine.LoopWindows{DiskArrayEngine.ProductArray{Tuple{Int64}, 1, Tuple{UnitRange{Int64}}}, (1,)}}}, Tuple{@NamedTuple{lw::DiskArrayEngine.LoopWindows{DiskArrayEngine.ProductArray{Tuple{Int64}, 1, Tuple{Base.OneTo{Int64}}}, (1,)}, chunks::Tuple{Nothing}, ismem::Bool}}, DiskArrayEngine.UserOp{DiskArrayEngine.ElementFunction{DataType, DiskArrayEngine.NonMutating}, Tuple{Nothing}, Tuple{Point{2, Float64}}, Tuple{typeof(identity)}, Tuple{DataType}, Tuple{DataType}}, DiskArrayEngine.LoopIndSplitter{(1,), (), ((true, 1),)}}, DiskArrays.Unchunked{DiskArrays.SubRanges{DiskArrays.NoStepRange}}, 1}
Triggered by update of:
  arg1, dim_convert_1 or dim_convert_2
Due to ERROR: TaskFailedException

    nested task error: DimensionMismatch: cannot broadcast array to have fewer non-singleton dimensions
    Stacktrace:
      [1] check_broadcast_shape(::Tuple{}, Ashp::Tuple{StaticArrays.SOneTo{2}})
        @ Base.Broadcast ./broadcast.jl:547
      [2] check_broadcast_axes
        @ ./broadcast.jl:555 [inlined]
      [3] instantiate
        @ ./broadcast.jl:310 [inlined]
      [4] instantiate
        @ ~/.julia/packages/StaticArrays/DsPgf/src/broadcast.jl:30 [inlined]
      [5] materialize!
        @ ./broadcast.jl:883 [inlined]
      [6] materialize!(dest::SubArray{Point{2, Float64}, 0, Vector{Point{2, Float64}}, Tuple{Int64}, true}, bc::Base.Broadcast.Broadcasted{StaticArraysCore.StaticArrayStyle{1}, Nothing, typeof(identity), Tuple{Point{2, Float64}}})
        @ Base.Broadcast ./broadcast.jl:880
      [7] apply_function(f::DiskArrayEngine.ElementFunction{DataType, DiskArrayEngine.NonMutating}, xout::Tuple{SubArray{Point{2, Float64}, 0, Vector{Point{2, Float64}}, Tuple{Int64}, true}}, xin::Tuple{Int64, Float32})
        @ DiskArrayEngine ~/Documents/BiDS2025_JuliaTutorial/dev/DiskArrayEngine/src/userfuncs.jl:87
      [8] innercode
        @ ~/Documents/BiDS2025_JuliaTutorial/dev/DiskArrayEngine/src/runner.jl:35 [inlined]
      [9] macro expansion
        @ ~/Documents/BiDS2025_JuliaTutorial/dev/DiskArrayEngine/src/runner.jl:61 [inlined]
     [10] (::DiskArrayEngine.var"#490#threadsfor_fun#156"{DiskArrayEngine.var"#490#threadsfor_fun#154#157"{DiskArrayEngine.ElementFunction{DataType, DiskArrayEngine.NonMutating}, Tuple{DiskArrayEngine.InArrayBuffer{Vector{Int64}, Tuple{Int64}, DiskArrayEngine.LoopWindows{DiskArrayEngine.ProductArray{Tuple{Int64}, 1, Tuple{UnitRange{Int64}}}, (1,)}}, DiskArrayEngine.InArrayBuffer{Vector{Float32}, Tuple{Int64}, DiskArrayEngine.LoopWindows{DiskArrayEngine.ProductArray{Tuple{Int64}, 1, Tuple{UnitRange{Int64}}}, (1,)}}}, Tuple{DiskArrayEngine.OutArrayBuffer{Vector{Point{2, Float64}}, Tuple{Int64}, DiskArrayEngine.LoopWindows{DiskArrayEngine.ProductArray{Tuple{Int64}, 1, Tuple{Base.OneTo{Int64}}}, (1,)}, typeof(identity)}}, CartesianIndices{1, Tuple{UnitRange{Int64}}}}})(tid::Int64; onethread::Bool)
        @ DiskArrayEngine ./threadingconstructs.jl:253
     [11] #490#threadsfor_fun
        @ ./threadingconstructs.jl:220 [inlined]
     [12] (::Base.Threads.var"#1#2"{DiskArrayEngine.var"#490#threadsfor_fun#156"{DiskArrayEngine.var"#490#threadsfor_fun#154#157"{DiskArrayEngine.ElementFunction{DataType, DiskArrayEngine.NonMutating}, Tuple{DiskArrayEngine.InArrayBuffer{Vector{Int64}, Tuple{Int64}, DiskArrayEngine.LoopWindows{DiskArrayEngine.ProductArray{Tuple{Int64}, 1, Tuple{UnitRange{Int64}}}, (1,)}}, DiskArrayEngine.InArrayBuffer{Vector{Float32}, Tuple{Int64}, DiskArrayEngine.LoopWindows{DiskArrayEngine.ProductArray{Tuple{Int64}, 1, Tuple{UnitRange{Int64}}}, (1,)}}}, Tuple{DiskArrayEngine.OutArrayBuffer{Vector{Point{2, Float64}}, Tuple{Int64}, DiskArrayEngine.LoopWindows{DiskArrayEngine.ProductArray{Tuple{Int64}, 1, Tuple{Base.OneTo{Int64}}}, (1,)}, typeof(identity)}}, CartesianIndices{1, Tuple{UnitRange{Int64}}}}}, Int64})()
        @ Base.Threads ./threadingconstructs.jl:154

...and 5 more exceptions.

Stacktrace:
  [1] threading_run(fun::DiskArrayEngine.var"#490#threadsfor_fun#156"{DiskArrayEngine.var"#490#threadsfor_fun#154#157"{DiskArrayEngine.ElementFunction{DataType, DiskArrayEngine.NonMutating}, Tuple{DiskArrayEngine.InArrayBuffer{Vector{Int64}, Tuple{Int64}, DiskArrayEngine.LoopWindows{DiskArrayEngine.ProductArray{Tuple{Int64}, 1, Tuple{UnitRange{Int64}}}, (1,)}}, DiskArrayEngine.InArrayBuffer{Vector{Float32}, Tuple{Int64}, DiskArrayEngine.LoopWindows{DiskArrayEngine.ProductArray{Tuple{Int64}, 1, Tuple{UnitRange{Int64}}}, (1,)}}}, Tuple{DiskArrayEngine.OutArrayBuffer{Vector{Point{2, Float64}}, Tuple{Int64}, DiskArrayEngine.LoopWindows{DiskArrayEngine.ProductArray{Tuple{Int64}, 1, Tuple{Base.OneTo{Int64}}}, (1,)}, typeof(identity)}}, CartesianIndices{1, Tuple{UnitRange{Int64}}}}}, static::Bool)
    @ Base.Threads ./threadingconstructs.jl:173
  [2] macro expansion
    @ ./threadingconstructs.jl:190 [inlined]
  [3] run_block_threaded(loopRanges::Tuple{UnitRange{Int64}}, lspl::DiskArrayEngine.LoopIndSplitter{(1,), (), ((true, 1),)}, f::DiskArrayEngine.ElementFunction{DataType, DiskArrayEngine.NonMutating}, inbuffers::Tuple{DiskArrayEngine.InArrayBuffer{Vector{Int64}, Tuple{Int64}, DiskArrayEngine.LoopWindows{DiskArrayEngine.ProductArray{Tuple{Int64}, 1, Tuple{UnitRange{Int64}}}, (1,)}}, DiskArrayEngine.InArrayBuffer{Vector{Float32}, Tuple{Int64}, DiskArrayEngine.LoopWindows{DiskArrayEngine.ProductArray{Tuple{Int64}, 1, Tuple{UnitRange{Int64}}}, (1,)}}}, outbuffers::Tuple{DiskArrayEngine.OutArrayBuffer{Vector{Point{2, Float64}}, Tuple{Int64}, DiskArrayEngine.LoopWindows{DiskArrayEngine.ProductArray{Tuple{Int64}, 1, Tuple{Base.OneTo{Int64}}}, (1,)}, typeof(identity)}})
    @ DiskArrayEngine ~/Documents/BiDS2025_JuliaTutorial/dev/DiskArrayEngine/src/runner.jl:60
  [4] run_block(f::DiskArrayEngine.ElementFunction{DataType, DiskArrayEngine.NonMutating}, inow::Tuple{UnitRange{Int64}}, inbuffers_wrapped::Tuple{DiskArrayEngine.InArrayBuffer{Vector{Int64}, Tuple{Int64}, DiskArrayEngine.LoopWindows{DiskArrayEngine.ProductArray{Tuple{Int64}, 1, Tuple{UnitRange{Int64}}}, (1,)}}, DiskArrayEngine.InArrayBuffer{Vector{Float32}, Tuple{Int64}, DiskArrayEngine.LoopWindows{DiskArrayEngine.ProductArray{Tuple{Int64}, 1, Tuple{UnitRange{Int64}}}, (1,)}}}, outbuffers_now::Tuple{DiskArrayEngine.OutArrayBuffer{Vector{Point{2, Float64}}, Tuple{Int64}, DiskArrayEngine.LoopWindows{DiskArrayEngine.ProductArray{Tuple{Int64}, 1, Tuple{Base.OneTo{Int64}}}, (1,)}, typeof(identity)}}, lspl::DiskArrayEngine.LoopIndSplitter{(1,), (), ((true, 1),)})
    @ DiskArrayEngine ~/Documents/BiDS2025_JuliaTutorial/dev/DiskArrayEngine/src/runner.jl:44
  [5] run_block
    @ ~/Documents/BiDS2025_JuliaTutorial/dev/DiskArrayEngine/src/runner.jl:80 [inlined]
  [6] default_loopbody(inow::Tuple{UnitRange{Int64}}, op::DiskArrayEngine.GMDWop{1, Tuple{DiskArrayEngine.InputArray{Vector{Int64}, DiskArrayEngine.LoopWindows{DiskArrayEngine.ProductArray{Tuple{Int64}, 1, Tuple{UnitRange{Int64}}}, (1,)}}, DiskArrayEngine.InputArray{DiskArrayEngine.GMWOPResult{Float32, 1, DiskArrayEngine.GMDWop{1, Tuple{DiskArrayEngine.InputArray{DiskArrayEngine.GMWOPResult{Union{Missing, Float32}, 1, DiskArrayEngine.GMDWop{1, Tuple{DiskArrayEngine.InputArray{DiskArrays.SubDiskArray{Union{Missing, Float32}, 1, DiskArrayTools.CFDiskArray{Union{Missing, Float32}, 3, Float64, ZArray{Float32, 3, Zarr.BloscCompressor, DirectoryStore}, Float32}, Tuple{Int64, Int64, UnitRange{Int64}}, false}, DiskArrayEngine.LoopWindows{DiskArrayEngine.ProductArray{Tuple{Int64}, 1, Tuple{UnitRange{Int64}}}, (1,)}}, DiskArrayEngine.InputArray{Vector{Union{Missing, Float32}}, DiskArrayEngine.LoopWindows{DiskArrayEngine.ProductArray{Tuple{Int64}, 1, Tuple{UnitRange{Int64}}}, (1,)}}}, Tuple{@NamedTuple{lw::DiskArrayEngine.LoopWindows{DiskArrayEngine.ProductArray{Tuple{Int64}, 1, Tuple{Base.OneTo{Int64}}}, (1,)}, chunks::Tuple{Nothing}, ismem::Bool}}, DiskArrayEngine.UserOp{DiskArrayEngine.ElementFunction{XFunction{typeof(-), XOutput{Tuple{}, Int64}, Tuple{}}, DiskArrayEngine.NonMutating}, Tuple{Nothing}, Tuple{Float32}, Tuple{typeof(identity)}, Tuple{Union}, Tuple{Union}}, DiskArrayEngine.LoopIndSplitter{(1,), (), ((true, 1),)}}, DiskArrays.Unchunked{DiskArrays.SubRanges{DiskArrays.NoStepRange}}, 1}, DiskArrayEngine.LoopWindows{DiskArrayEngine.ProductArray{Tuple{Int64}, 1, Tuple{UnitRange{Int64}}}, (1,)}}}, Tuple{@NamedTuple{lw::DiskArrayEngine.LoopWindows{DiskArrayEngine.ProductArray{Tuple{Int64}, 1, Tuple{Base.OneTo{Int64}}}, (1,)}, chunks::Tuple{Nothing}, ismem::Bool}}, DiskArrayEngine.UserOp{DiskArrayEngine.ElementFunction{Makie.var"#1323#1324"{Float32}, DiskArrayEngine.NonMutating}, Tuple{Nothing}, Tuple{Float32}, Tuple{typeof(identity)}, Tuple{DataType}, Tuple{DataType}}, DiskArrayEngine.LoopIndSplitter{(1,), (), ((true, 1),)}}, DiskArrays.Unchunked{DiskArrays.SubRanges{DiskArrays.NoStepRange}}, 1}, DiskArrayEngine.LoopWindows{DiskArrayEngine.ProductArray{Tuple{Int64}, 1, Tuple{UnitRange{Int64}}}, (1,)}}}, Tuple{@NamedTuple{lw::DiskArrayEngine.LoopWindows{DiskArrayEngine.ProductArray{Tuple{Int64}, 1, Tuple{Base.OneTo{Int64}}}, (1,)}, chunks::Tuple{Nothing}, ismem::Bool}}, DiskArrayEngine.UserOp{DiskArrayEngine.ElementFunction{DataType, DiskArrayEngine.NonMutating}, Tuple{Nothing}, Tuple{Point{2, Float64}}, Tuple{typeof(identity)}, Tuple{DataType}, Tuple{DataType}}, DiskArrayEngine.LoopIndSplitter{(1,), (), ((true, 1),)}}, inbuffers_pure::Tuple{Vector{Int64}, Vector{Float32}}, outbuffers::Tuple{DiskArrayEngine.OutputAggregator{DiskArrayEngine.BufferIndex{1}, DiskArrayEngine.OutArrayBuffer{Vector{Point{2, Float64}}, Tuple{Int64}, DiskArrayEngine.LoopWindows{DiskArrayEngine.ProductArray{Tuple{Int64}, 1, Tuple{Base.OneTo{Int64}}}, (1,)}, typeof(identity)}, 1, DiskArrayEngine.ConstDict{Int64}, typeof(identity)}}, threaded::Bool, outars::Tuple{OffsetArrays.OffsetVector{Point{2, Float64}, Vector{Point{2, Float64}}}}, cb::Tuple{ProgressMeter.Progress}, runfilter::Tuple{}, piddir::Nothing)
    @ DiskArrayEngine ~/Documents/BiDS2025_JuliaTutorial/dev/DiskArrayEngine/src/runner.jl:176
  [7] run_loop(::DiskArrayEngine.LocalRunner, op::DiskArrayEngine.GMDWop{1, Tuple{DiskArrayEngine.InputArray{Vector{Int64}, DiskArrayEngine.LoopWindows{DiskArrayEngine.ProductArray{Tuple{Int64}, 1, Tuple{UnitRange{Int64}}}, (1,)}}, DiskArrayEngine.InputArray{DiskArrayEngine.GMWOPResult{Float32, 1, DiskArrayEngine.GMDWop{1, Tuple{DiskArrayEngine.InputArray{DiskArrayEngine.GMWOPResult{Union{Missing, Float32}, 1, DiskArrayEngine.GMDWop{1, Tuple{DiskArrayEngine.InputArray{DiskArrays.SubDiskArray{Union{Missing, Float32}, 1, DiskArrayTools.CFDiskArray{Union{Missing, Float32}, 3, Float64, ZArray{Float32, 3, Zarr.BloscCompressor, DirectoryStore}, Float32}, Tuple{Int64, Int64, UnitRange{Int64}}, false}, DiskArrayEngine.LoopWindows{DiskArrayEngine.ProductArray{Tuple{Int64}, 1, Tuple{UnitRange{Int64}}}, (1,)}}, DiskArrayEngine.InputArray{Vector{Union{Missing, Float32}}, DiskArrayEngine.LoopWindows{DiskArrayEngine.ProductArray{Tuple{Int64}, 1, Tuple{UnitRange{Int64}}}, (1,)}}}, Tuple{@NamedTuple{lw::DiskArrayEngine.LoopWindows{DiskArrayEngine.ProductArray{Tuple{Int64}, 1, Tuple{Base.OneTo{Int64}}}, (1,)}, chunks::Tuple{Nothing}, ismem::Bool}}, DiskArrayEngine.UserOp{DiskArrayEngine.ElementFunction{XFunction{typeof(-), XOutput{Tuple{}, Int64}, Tuple{}}, DiskArrayEngine.NonMutating}, Tuple{Nothing}, Tuple{Float32}, Tuple{typeof(identity)}, Tuple{Union}, Tuple{Union}}, DiskArrayEngine.LoopIndSplitter{(1,), (), ((true, 1),)}}, DiskArrays.Unchunked{DiskArrays.SubRanges{DiskArrays.NoStepRange}}, 1}, DiskArrayEngine.LoopWindows{DiskArrayEngine.ProductArray{Tuple{Int64}, 1, Tuple{UnitRange{Int64}}}, (1,)}}}, Tuple{@NamedTuple{lw::DiskArrayEngine.LoopWindows{DiskArrayEngine.ProductArray{Tuple{Int64}, 1, Tuple{Base.OneTo{Int64}}}, (1,)}, chunks::Tuple{Nothing}, ismem::Bool}}, DiskArrayEngine.UserOp{DiskArrayEngine.ElementFunction{Makie.var"#1323#1324"{Float32}, DiskArrayEngine.NonMutating}, Tuple{Nothing}, Tuple{Float32}, Tuple{typeof(identity)}, Tuple{DataType}, Tuple{DataType}}, DiskArrayEngine.LoopIndSplitter{(1,), (), ((true, 1),)}}, DiskArrays.Unchunked{DiskArrays.SubRanges{DiskArrays.NoStepRange}}, 1}, DiskArrayEngine.LoopWindows{DiskArrayEngine.ProductArray{Tuple{Int64}, 1, Tuple{UnitRange{Int64}}}, (1,)}}}, Tuple{@NamedTuple{lw::DiskArrayEngine.LoopWindows{DiskArrayEngine.ProductArray{Tuple{Int64}, 1, Tuple{Base.OneTo{Int64}}}, (1,)}, chunks::Tuple{Nothing}, ismem::Bool}}, DiskArrayEngine.UserOp{DiskArrayEngine.ElementFunction{DataType, DiskArrayEngine.NonMutating}, Tuple{Nothing}, Tuple{Point{2, Float64}}, Tuple{typeof(identity)}, Tuple{DataType}, Tuple{DataType}}, DiskArrayEngine.LoopIndSplitter{(1,), (), ((true, 1),)}}, inbuffers_pure::Tuple{Vector{Int64}, Vector{Float32}}, outbuffers::Tuple{DiskArrayEngine.OutputAggregator{DiskArrayEngine.BufferIndex{1}, DiskArrayEngine.OutArrayBuffer{Vector{Point{2, Float64}}, Tuple{Int64}, DiskArrayEngine.LoopWindows{DiskArrayEngine.ProductArray{Tuple{Int64}, 1, Tuple{Base.OneTo{Int64}}}, (1,)}, typeof(identity)}, 1, DiskArrayEngine.ConstDict{Int64}, typeof(identity)}}, threaded::Bool, outars::Tuple{OffsetArrays.OffsetVector{Point{2, Float64}, Vector{Point{2, Float64}}}}, loopranges::DiskArrayEngine.ProductArray{Tuple{UnitRange{Int64}}, 1, Tuple{Vector{UnitRange{Int64}}}}, cb::Tuple{ProgressMeter.Progress}, runfilter::Tuple{}; groupspecs::Nothing)
    @ DiskArrayEngine ~/Documents/BiDS2025_JuliaTutorial/dev/DiskArrayEngine/src/runner.jl:186
  [8] run_loop(runner::DiskArrayEngine.LocalRunner, loopranges::DiskArrayEngine.ProductArray{Tuple{UnitRange{Int64}}, 1, Tuple{Vector{UnitRange{Int64}}}}; groupspecs::Nothing)
    @ DiskArrayEngine ~/Documents/BiDS2025_JuliaTutorial/dev/DiskArrayEngine/src/runner.jl:166
  [9] run_loop(runner::DiskArrayEngine.LocalRunner, loopranges::DiskArrayEngine.ProductArray{Tuple{UnitRange{Int64}}, 1, Tuple{Vector{UnitRange{Int64}}}})
    @ DiskArrayEngine ~/Documents/BiDS2025_JuliaTutorial/dev/DiskArrayEngine/src/runner.jl:165
 [10] readblock!(res::DiskArrayEngine.GMWOPResult{Point{2, Float64}, 1, DiskArrayEngine.GMDWop{1, Tuple{DiskArrayEngine.InputArray{Vector{Int64}, DiskArrayEngine.LoopWindows{DiskArrayEngine.ProductArray{Tuple{Int64}, 1, Tuple{UnitRange{Int64}}}, (1,)}}, DiskArrayEngine.InputArray{DiskArrayEngine.GMWOPResult{Float32, 1, DiskArrayEngine.GMDWop{1, Tuple{DiskArrayEngine.InputArray{DiskArrayEngine.GMWOPResult{Union{Missing, Float32}, 1, DiskArrayEngine.GMDWop{1, Tuple{DiskArrayEngine.InputArray{DiskArrays.SubDiskArray{Union{Missing, Float32}, 1, DiskArrayTools.CFDiskArray{Union{Missing, Float32}, 3, Float64, ZArray{Float32, 3, Zarr.BloscCompressor, DirectoryStore}, Float32}, Tuple{Int64, Int64, UnitRange{Int64}}, false}, DiskArrayEngine.LoopWindows{DiskArrayEngine.ProductArray{Tuple{Int64}, 1, Tuple{UnitRange{Int64}}}, (1,)}}, DiskArrayEngine.InputArray{Vector{Union{Missing, Float32}}, DiskArrayEngine.LoopWindows{DiskArrayEngine.ProductArray{Tuple{Int64}, 1, Tuple{UnitRange{Int64}}}, (1,)}}}, Tuple{@NamedTuple{lw::DiskArrayEngine.LoopWindows{DiskArrayEngine.ProductArray{Tuple{Int64}, 1, Tuple{Base.OneTo{Int64}}}, (1,)}, chunks::Tuple{Nothing}, ismem::Bool}}, DiskArrayEngine.UserOp{DiskArrayEngine.ElementFunction{XFunction{typeof(-), XOutput{Tuple{}, Int64}, Tuple{}}, DiskArrayEngine.NonMutating}, Tuple{Nothing}, Tuple{Float32}, Tuple{typeof(identity)}, Tuple{Union}, Tuple{Union}}, DiskArrayEngine.LoopIndSplitter{(1,), (), ((true, 1),)}}, DiskArrays.Unchunked{DiskArrays.SubRanges{DiskArrays.NoStepRange}}, 1}, DiskArrayEngine.LoopWindows{DiskArrayEngine.ProductArray{Tuple{Int64}, 1, Tuple{UnitRange{Int64}}}, (1,)}}}, Tuple{@NamedTuple{lw::DiskArrayEngine.LoopWindows{DiskArrayEngine.ProductArray{Tuple{Int64}, 1, Tuple{Base.OneTo{Int64}}}, (1,)}, chunks::Tuple{Nothing}, ismem::Bool}}, DiskArrayEngine.UserOp{DiskArrayEngine.ElementFunction{Makie.var"#1323#1324"{Float32}, DiskArrayEngine.NonMutating}, Tuple{Nothing}, Tuple{Float32}, Tuple{typeof(identity)}, Tuple{DataType}, Tuple{DataType}}, DiskArrayEngine.LoopIndSplitter{(1,), (), ((true, 1),)}}, DiskArrays.Unchunked{DiskArrays.SubRanges{DiskArrays.NoStepRange}}, 1}, DiskArrayEngine.LoopWindows{DiskArrayEngine.ProductArray{Tuple{Int64}, 1, Tuple{UnitRange{Int64}}}, (1,)}}}, Tuple{@NamedTuple{lw::DiskArrayEngine.LoopWindows{DiskArrayEngine.ProductArray{Tuple{Int64}, 1, Tuple{Base.OneTo{Int64}}}, (1,)}, chunks::Tuple{Nothing}, ismem::Bool}}, DiskArrayEngine.UserOp{DiskArrayEngine.ElementFunction{DataType, DiskArrayEngine.NonMutating}, Tuple{Nothing}, Tuple{Point{2, Float64}}, Tuple{typeof(identity)}, Tuple{DataType}, Tuple{DataType}}, DiskArrayEngine.LoopIndSplitter{(1,), (), ((true, 1),)}}, DiskArrays.Unchunked{DiskArrays.SubRanges{DiskArrays.NoStepRange}}, 1}, aout::Vector{Point{2, Float64}}, r::UnitRange{Int64})
    @ DiskArrayEngine ~/Documents/BiDS2025_JuliaTutorial/dev/DiskArrayEngine/src/diskarrayresults.jl:52
 [11] readblock_checked!
    @ ~/Documents/BiDS2025_JuliaTutorial/dev/DiskArrays/src/indexing.jl:294 [inlined]
 [12] getindex_disk_nobatch!(out::Nothing, a::DiskArrayEngine.GMWOPResult{Point{2, Float64}, 1, DiskArrayEngine.GMDWop{1, Tuple{DiskArrayEngine.InputArray{Vector{Int64}, DiskArrayEngine.LoopWindows{DiskArrayEngine.ProductArray{Tuple{Int64}, 1, Tuple{UnitRange{Int64}}}, (1,)}}, DiskArrayEngine.InputArray{DiskArrayEngine.GMWOPResult{Float32, 1, DiskArrayEngine.GMDWop{1, Tuple{DiskArrayEngine.InputArray{DiskArrayEngine.GMWOPResult{Union{Missing, Float32}, 1, DiskArrayEngine.GMDWop{1, Tuple{DiskArrayEngine.InputArray{DiskArrays.SubDiskArray{Union{Missing, Float32}, 1, DiskArrayTools.CFDiskArray{Union{Missing, Float32}, 3, Float64, ZArray{Float32, 3, Zarr.BloscCompressor, DirectoryStore}, Float32}, Tuple{Int64, Int64, UnitRange{Int64}}, false}, DiskArrayEngine.LoopWindows{DiskArrayEngine.ProductArray{Tuple{Int64}, 1, Tuple{UnitRange{Int64}}}, (1,)}}, DiskArrayEngine.InputArray{Vector{Union{Missing, Float32}}, DiskArrayEngine.LoopWindows{DiskArrayEngine.ProductArray{Tuple{Int64}, 1, Tuple{UnitRange{Int64}}}, (1,)}}}, Tuple{@NamedTuple{lw::DiskArrayEngine.LoopWindows{DiskArrayEngine.ProductArray{Tuple{Int64}, 1, Tuple{Base.OneTo{Int64}}}, (1,)}, chunks::Tuple{Nothing}, ismem::Bool}}, DiskArrayEngine.UserOp{DiskArrayEngine.ElementFunction{XFunction{typeof(-), XOutput{Tuple{}, Int64}, Tuple{}}, DiskArrayEngine.NonMutating}, Tuple{Nothing}, Tuple{Float32}, Tuple{typeof(identity)}, Tuple{Union}, Tuple{Union}}, DiskArrayEngine.LoopIndSplitter{(1,), (), ((true, 1),)}}, DiskArrays.Unchunked{DiskArrays.SubRanges{DiskArrays.NoStepRange}}, 1}, DiskArrayEngine.LoopWindows{DiskArrayEngine.ProductArray{Tuple{Int64}, 1, Tuple{UnitRange{Int64}}}, (1,)}}}, Tuple{@NamedTuple{lw::DiskArrayEngine.LoopWindows{DiskArrayEngine.ProductArray{Tuple{Int64}, 1, Tuple{Base.OneTo{Int64}}}, (1,)}, chunks::Tuple{Nothing}, ismem::Bool}}, DiskArrayEngine.UserOp{DiskArrayEngine.ElementFunction{Makie.var"#1323#1324"{Float32}, DiskArrayEngine.NonMutating}, Tuple{Nothing}, Tuple{Float32}, Tuple{typeof(identity)}, Tuple{DataType}, Tuple{DataType}}, DiskArrayEngine.LoopIndSplitter{(1,), (), ((true, 1),)}}, DiskArrays.Unchunked{DiskArrays.SubRanges{DiskArrays.NoStepRange}}, 1}, DiskArrayEngine.LoopWindows{DiskArrayEngine.ProductArray{Tuple{Int64}, 1, Tuple{UnitRange{Int64}}}, (1,)}}}, Tuple{@NamedTuple{lw::DiskArrayEngine.LoopWindows{DiskArrayEngine.ProductArray{Tuple{Int64}, 1, Tuple{Base.OneTo{Int64}}}, (1,)}, chunks::Tuple{Nothing}, ismem::Bool}}, DiskArrayEngine.UserOp{DiskArrayEngine.ElementFunction{DataType, DiskArrayEngine.NonMutating}, Tuple{Nothing}, Tuple{Point{2, Float64}}, Tuple{typeof(identity)}, Tuple{DataType}, Tuple{DataType}}, DiskArrayEngine.LoopIndSplitter{(1,), (), ((true, 1),)}}, DiskArrays.Unchunked{DiskArrays.SubRanges{DiskArrays.NoStepRange}}, 1}, i::Tuple{UnitRange{Int64}})
    @ DiskArrays ~/Documents/BiDS2025_JuliaTutorial/dev/DiskArrays/src/indexing.jl:106
 [13] getindex_disk!(out::Nothing, a::DiskArrayEngine.GMWOPResult{Point{2, Float64}, 1, DiskArrayEngine.GMDWop{1, Tuple{DiskArrayEngine.InputArray{Vector{Int64}, DiskArrayEngine.LoopWindows{DiskArrayEngine.ProductArray{Tuple{Int64}, 1, Tuple{UnitRange{Int64}}}, (1,)}}, DiskArrayEngine.InputArray{DiskArrayEngine.GMWOPResult{Float32, 1, DiskArrayEngine.GMDWop{1, Tuple{DiskArrayEngine.InputArray{DiskArrayEngine.GMWOPResult{Union{Missing, Float32}, 1, DiskArrayEngine.GMDWop{1, Tuple{DiskArrayEngine.InputArray{DiskArrays.SubDiskArray{Union{Missing, Float32}, 1, DiskArrayTools.CFDiskArray{Union{Missing, Float32}, 3, Float64, ZArray{Float32, 3, Zarr.BloscCompressor, DirectoryStore}, Float32}, Tuple{Int64, Int64, UnitRange{Int64}}, false}, DiskArrayEngine.LoopWindows{DiskArrayEngine.ProductArray{Tuple{Int64}, 1, Tuple{UnitRange{Int64}}}, (1,)}}, DiskArrayEngine.InputArray{Vector{Union{Missing, Float32}}, DiskArrayEngine.LoopWindows{DiskArrayEngine.ProductArray{Tuple{Int64}, 1, Tuple{UnitRange{Int64}}}, (1,)}}}, Tuple{@NamedTuple{lw::DiskArrayEngine.LoopWindows{DiskArrayEngine.ProductArray{Tuple{Int64}, 1, Tuple{Base.OneTo{Int64}}}, (1,)}, chunks::Tuple{Nothing}, ismem::Bool}}, DiskArrayEngine.UserOp{DiskArrayEngine.ElementFunction{XFunction{typeof(-), XOutput{Tuple{}, Int64}, Tuple{}}, DiskArrayEngine.NonMutating}, Tuple{Nothing}, Tuple{Float32}, Tuple{typeof(identity)}, Tuple{Union}, Tuple{Union}}, DiskArrayEngine.LoopIndSplitter{(1,), (), ((true, 1),)}}, DiskArrays.Unchunked{DiskArrays.SubRanges{DiskArrays.NoStepRange}}, 1}, DiskArrayEngine.LoopWindows{DiskArrayEngine.ProductArray{Tuple{Int64}, 1, Tuple{UnitRange{Int64}}}, (1,)}}}, Tuple{@NamedTuple{lw::DiskArrayEngine.LoopWindows{DiskArrayEngine.ProductArray{Tuple{Int64}, 1, Tuple{Base.OneTo{Int64}}}, (1,)}, chunks::Tuple{Nothing}, ismem::Bool}}, DiskArrayEngine.UserOp{DiskArrayEngine.ElementFunction{Makie.var"#1323#1324"{Float32}, DiskArrayEngine.NonMutating}, Tuple{Nothing}, Tuple{Float32}, Tuple{typeof(identity)}, Tuple{DataType}, Tuple{DataType}}, DiskArrayEngine.LoopIndSplitter{(1,), (), ((true, 1),)}}, DiskArrays.Unchunked{DiskArrays.SubRanges{DiskArrays.NoStepRange}}, 1}, DiskArrayEngine.LoopWindows{DiskArrayEngine.ProductArray{Tuple{Int64}, 1, Tuple{UnitRange{Int64}}}, (1,)}}}, Tuple{@NamedTuple{lw::DiskArrayEngine.LoopWindows{DiskArrayEngine.ProductArray{Tuple{Int64}, 1, Tuple{Base.OneTo{Int64}}}, (1,)}, chunks::Tuple{Nothing}, ismem::Bool}}, DiskArrayEngine.UserOp{DiskArrayEngine.ElementFunction{DataType, DiskArrayEngine.NonMutating}, Tuple{Nothing}, Tuple{Point{2, Float64}}, Tuple{typeof(identity)}, Tuple{DataType}, Tuple{DataType}}, DiskArrayEngine.LoopIndSplitter{(1,), (), ((true, 1),)}}, DiskArrays.Unchunked{DiskArrays.SubRanges{DiskArrays.NoStepRange}}, 1}, i::UnitRange{Int64})
    @ DiskArrays ~/Documents/BiDS2025_JuliaTutorial/dev/DiskArrays/src/indexing.jl:69
 [14] getindex_disk
    @ ~/Documents/BiDS2025_JuliaTutorial/dev/DiskArrays/src/indexing.jl:58 [inlined]
 [15] getindex
    @ ~/Documents/BiDS2025_JuliaTutorial/dev/DiskArrays/src/indexing.jl:312 [inlined]
 [16] _iterate_disk(a::DiskArrayEngine.GMWOPResult{Point{2, Float64}, 1, DiskArrayEngine.GMDWop{1, Tuple{DiskArrayEngine.InputArray{Vector{Int64}, DiskArrayEngine.LoopWindows{DiskArrayEngine.ProductArray{Tuple{Int64}, 1, Tuple{UnitRange{Int64}}}, (1,)}}, DiskArrayEngine.InputArray{DiskArrayEngine.GMWOPResult{Float32, 1, DiskArrayEngine.GMDWop{1, Tuple{DiskArrayEngine.InputArray{DiskArrayEngine.GMWOPResult{Union{Missing, Float32}, 1, DiskArrayEngine.GMDWop{1, Tuple{DiskArrayEngine.InputArray{DiskArrays.SubDiskArray{Union{Missing, Float32}, 1, DiskArrayTools.CFDiskArray{Union{Missing, Float32}, 3, Float64, ZArray{Float32, 3, Zarr.BloscCompressor, DirectoryStore}, Float32}, Tuple{Int64, Int64, UnitRange{Int64}}, false}, DiskArrayEngine.LoopWindows{DiskArrayEngine.ProductArray{Tuple{Int64}, 1, Tuple{UnitRange{Int64}}}, (1,)}}, DiskArrayEngine.InputArray{Vector{Union{Missing, Float32}}, DiskArrayEngine.LoopWindows{DiskArrayEngine.ProductArray{Tuple{Int64}, 1, Tuple{UnitRange{Int64}}}, (1,)}}}, Tuple{@NamedTuple{lw::DiskArrayEngine.LoopWindows{DiskArrayEngine.ProductArray{Tuple{Int64}, 1, Tuple{Base.OneTo{Int64}}}, (1,)}, chunks::Tuple{Nothing}, ismem::Bool}}, DiskArrayEngine.UserOp{DiskArrayEngine.ElementFunction{XFunction{typeof(-), XOutput{Tuple{}, Int64}, Tuple{}}, DiskArrayEngine.NonMutating}, Tuple{Nothing}, Tuple{Float32}, Tuple{typeof(identity)}, Tuple{Union}, Tuple{Union}}, DiskArrayEngine.LoopIndSplitter{(1,), (), ((true, 1),)}}, DiskArrays.Unchunked{DiskArrays.SubRanges{DiskArrays.NoStepRange}}, 1}, DiskArrayEngine.LoopWindows{DiskArrayEngine.ProductArray{Tuple{Int64}, 1, Tuple{UnitRange{Int64}}}, (1,)}}}, Tuple{@NamedTuple{lw::DiskArrayEngine.LoopWindows{DiskArrayEngine.ProductArray{Tuple{Int64}, 1, Tuple{Base.OneTo{Int64}}}, (1,)}, chunks::Tuple{Nothing}, ismem::Bool}}, DiskArrayEngine.UserOp{DiskArrayEngine.ElementFunction{Makie.var"#1323#1324"{Float32}, DiskArrayEngine.NonMutating}, Tuple{Nothing}, Tuple{Float32}, Tuple{typeof(identity)}, Tuple{DataType}, Tuple{DataType}}, DiskArrayEngine.LoopIndSplitter{(1,), (), ((true, 1),)}}, DiskArrays.Unchunked{DiskArrays.SubRanges{DiskArrays.NoStepRange}}, 1}, DiskArrayEngine.LoopWindows{DiskArrayEngine.ProductArray{Tuple{Int64}, 1, Tuple{UnitRange{Int64}}}, (1,)}}}, Tuple{@NamedTuple{lw::DiskArrayEngine.LoopWindows{DiskArrayEngine.ProductArray{Tuple{Int64}, 1, Tuple{Base.OneTo{Int64}}}, (1,)}, chunks::Tuple{Nothing}, ismem::Bool}}, DiskArrayEngine.UserOp{DiskArrayEngine.ElementFunction{DataType, DiskArrayEngine.NonMutating}, Tuple{Nothing}, Tuple{Point{2, Float64}}, Tuple{typeof(identity)}, Tuple{DataType}, Tuple{DataType}}, DiskArrayEngine.LoopIndSplitter{(1,), (), ((true, 1),)}}, DiskArrays.Unchunked{DiskArrays.SubRanges{DiskArrays.NoStepRange}}, 1})
    @ DiskArrays ~/Documents/BiDS2025_JuliaTutorial/dev/DiskArrays/src/iterator.jl:104
 [17] iterate
    @ ~/Documents/BiDS2025_JuliaTutorial/dev/DiskArrays/src/iterator.jl:112 [inlined]
 [18] GeometryBasics.HyperRectangle{3, Float64}(points::DiskArrayEngine.GMWOPResult{Point{2, Float64}, 1, DiskArrayEngine.GMDWop{1, Tuple{DiskArrayEngine.InputArray{Vector{Int64}, DiskArrayEngine.LoopWindows{DiskArrayEngine.ProductArray{Tuple{Int64}, 1, Tuple{UnitRange{Int64}}}, (1,)}}, DiskArrayEngine.InputArray{DiskArrayEngine.GMWOPResult{Float32, 1, DiskArrayEngine.GMDWop{1, Tuple{DiskArrayEngine.InputArray{DiskArrayEngine.GMWOPResult{Union{Missing, Float32}, 1, DiskArrayEngine.GMDWop{1, Tuple{DiskArrayEngine.InputArray{DiskArrays.SubDiskArray{Union{Missing, Float32}, 1, DiskArrayTools.CFDiskArray{Union{Missing, Float32}, 3, Float64, ZArray{Float32, 3, Zarr.BloscCompressor, DirectoryStore}, Float32}, Tuple{Int64, Int64, UnitRange{Int64}}, false}, DiskArrayEngine.LoopWindows{DiskArrayEngine.ProductArray{Tuple{Int64}, 1, Tuple{UnitRange{Int64}}}, (1,)}}, DiskArrayEngine.InputArray{Vector{Union{Missing, Float32}}, DiskArrayEngine.LoopWindows{DiskArrayEngine.ProductArray{Tuple{Int64}, 1, Tuple{UnitRange{Int64}}}, (1,)}}}, Tuple{@NamedTuple{lw::DiskArrayEngine.LoopWindows{DiskArrayEngine.ProductArray{Tuple{Int64}, 1, Tuple{Base.OneTo{Int64}}}, (1,)}, chunks::Tuple{Nothing}, ismem::Bool}}, DiskArrayEngine.UserOp{DiskArrayEngine.ElementFunction{XFunction{typeof(-), XOutput{Tuple{}, Int64}, Tuple{}}, DiskArrayEngine.NonMutating}, Tuple{Nothing}, Tuple{Float32}, Tuple{typeof(identity)}, Tuple{Union}, Tuple{Union}}, DiskArrayEngine.LoopIndSplitter{(1,), (), ((true, 1),)}}, DiskArrays.Unchunked{DiskArrays.SubRanges{DiskArrays.NoStepRange}}, 1}, DiskArrayEngine.LoopWindows{DiskArrayEngine.ProductArray{Tuple{Int64}, 1, Tuple{UnitRange{Int64}}}, (1,)}}}, Tuple{@NamedTuple{lw::DiskArrayEngine.LoopWindows{DiskArrayEngine.ProductArray{Tuple{Int64}, 1, Tuple{Base.OneTo{Int64}}}, (1,)}, chunks::Tuple{Nothing}, ismem::Bool}}, DiskArrayEngine.UserOp{DiskArrayEngine.ElementFunction{Makie.var"#1323#1324"{Float32}, DiskArrayEngine.NonMutating}, Tuple{Nothing}, Tuple{Float32}, Tuple{typeof(identity)}, Tuple{DataType}, Tuple{DataType}}, DiskArrayEngine.LoopIndSplitter{(1,), (), ((true, 1),)}}, DiskArrays.Unchunked{DiskArrays.SubRanges{DiskArrays.NoStepRange}}, 1}, DiskArrayEngine.LoopWindows{DiskArrayEngine.ProductArray{Tuple{Int64}, 1, Tuple{UnitRange{Int64}}}, (1,)}}}, Tuple{@NamedTuple{lw::DiskArrayEngine.LoopWindows{DiskArrayEngine.ProductArray{Tuple{Int64}, 1, Tuple{Base.OneTo{Int64}}}, (1,)}, chunks::Tuple{Nothing}, ismem::Bool}}, DiskArrayEngine.UserOp{DiskArrayEngine.ElementFunction{DataType, DiskArrayEngine.NonMutating}, Tuple{Nothing}, Tuple{Point{2, Float64}}, Tuple{typeof(identity)}, Tuple{DataType}, Tuple{DataType}}, DiskArrayEngine.LoopIndSplitter{(1,), (), ((true, 1),)}}, DiskArrays.Unchunked{DiskArrays.SubRanges{DiskArrays.NoStepRange}}, 1})
    @ GeometryBasics ~/.julia/packages/GeometryBasics/yB1f1/src/boundingboxes.jl:31
 [19] #561
    @ ~/.julia/packages/Makie/4JW9B/src/compute-plots.jl:981 [inlined]
 [20] MapFunctionWrapper
    @ ~/.julia/packages/ComputePipeline/03tW7/src/ComputePipeline.jl:984 [inlined]
 [21] ComputePipeline.TypedEdge(edge::ComputePipeline.ComputeEdge{ComputePipeline.ComputeGraph}, f::ComputePipeline.MapFunctionWrapper{true, Makie.var"#561#562"}, inputs::@NamedTuple{positions::Base.RefValue{DiskArrayEngine.GMWOPResult{Point{2, Float64}, 1, DiskArrayEngine.GMDWop{1, Tuple{DiskArrayEngine.InputArray{Vector{Int64}, DiskArrayEngine.LoopWindows{DiskArrayEngine.ProductArray{Tuple{Int64}, 1, Tuple{UnitRange{Int64}}}, (1,)}}, DiskArrayEngine.InputArray{DiskArrayEngine.GMWOPResult{Float32, 1, DiskArrayEngine.GMDWop{1, Tuple{DiskArrayEngine.InputArray{DiskArrayEngine.GMWOPResult{Union{Missing, Float32}, 1, DiskArrayEngine.GMDWop{1, Tuple{DiskArrayEngine.InputArray{DiskArrays.SubDiskArray{Union{Missing, Float32}, 1, DiskArrayTools.CFDiskArray{Union{Missing, Float32}, 3, Float64, ZArray{Float32, 3, Zarr.BloscCompressor, DirectoryStore}, Float32}, Tuple{Int64, Int64, UnitRange{Int64}}, false}, DiskArrayEngine.LoopWindows{DiskArrayEngine.ProductArray{Tuple{Int64}, 1, Tuple{UnitRange{Int64}}}, (1,)}}, DiskArrayEngine.InputArray{Vector{Union{Missing, Float32}}, DiskArrayEngine.LoopWindows{DiskArrayEngine.ProductArray{Tuple{Int64}, 1, Tuple{UnitRange{Int64}}}, (1,)}}}, Tuple{@NamedTuple{lw::DiskArrayEngine.LoopWindows{DiskArrayEngine.ProductArray{Tuple{Int64}, 1, Tuple{Base.OneTo{Int64}}}, (1,)}, chunks::Tuple{Nothing}, ismem::Bool}}, DiskArrayEngine.UserOp{DiskArrayEngine.ElementFunction{XFunction{typeof(-), XOutput{Tuple{}, Int64}, Tuple{}}, DiskArrayEngine.NonMutating}, Tuple{Nothing}, Tuple{Float32}, Tuple{typeof(identity)}, Tuple{Union}, Tuple{Union}}, DiskArrayEngine.LoopIndSplitter{(1,), (), ((true, 1),)}}, DiskArrays.Unchunked{DiskArrays.SubRanges{DiskArrays.NoStepRange}}, 1}, DiskArrayEngine.LoopWindows{DiskArrayEngine.ProductArray{Tuple{Int64}, 1, Tuple{UnitRange{Int64}}}, (1,)}}}, Tuple{@NamedTuple{lw::DiskArrayEngine.LoopWindows{DiskArrayEngine.ProductArray{Tuple{Int64}, 1, Tuple{Base.OneTo{Int64}}}, (1,)}, chunks::Tuple{Nothing}, ismem::Bool}}, DiskArrayEngine.UserOp{DiskArrayEngine.ElementFunction{Makie.var"#1323#1324"{Float32}, DiskArrayEngine.NonMutating}, Tuple{Nothing}, Tuple{Float32}, Tuple{typeof(identity)}, Tuple{DataType}, Tuple{DataType}}, DiskArrayEngine.LoopIndSplitter{(1,), (), ((true, 1),)}}, DiskArrays.Unchunked{DiskArrays.SubRanges{DiskArrays.NoStepRange}}, 1}, DiskArrayEngine.LoopWindows{DiskArrayEngine.ProductArray{Tuple{Int64}, 1, Tuple{UnitRange{Int64}}}, (1,)}}}, Tuple{@NamedTuple{lw::DiskArrayEngine.LoopWindows{DiskArrayEngine.ProductArray{Tuple{Int64}, 1, Tuple{Base.OneTo{Int64}}}, (1,)}, chunks::Tuple{Nothing}, ismem::Bool}}, DiskArrayEngine.UserOp{DiskArrayEngine.ElementFunction{DataType, DiskArrayEngine.NonMutating}, Tuple{Nothing}, Tuple{Point{2, Float64}}, Tuple{typeof(identity)}, Tuple{DataType}, Tuple{DataType}}, DiskArrayEngine.LoopIndSplitter{(1,), (), ((true, 1),)}}, DiskArrays.Unchunked{DiskArrays.SubRanges{DiskArrays.NoStepRange}}, 1}}})
    @ ComputePipeline ~/.julia/packages/ComputePipeline/03tW7/src/ComputePipeline.jl:126
 [22] #invokelatest#2
    @ ./essentials.jl:1055 [inlined]
 [23] invokelatest
    @ ./essentials.jl:1052 [inlined]
 [24] ComputePipeline.TypedEdge(edge::ComputePipeline.ComputeEdge{ComputePipeline.ComputeGraph})
    @ ComputePipeline ~/.julia/packages/ComputePipeline/03tW7/src/ComputePipeline.jl:120
 [25] (::ComputePipeline.var"#52#54"{ComputePipeline.ComputeEdge{ComputePipeline.ComputeGraph}})()
    @ ComputePipeline ~/.julia/packages/ComputePipeline/03tW7/src/ComputePipeline.jl:664
 [26] lock(f::ComputePipeline.var"#52#54"{ComputePipeline.ComputeEdge{ComputePipeline.ComputeGraph}}, l::ReentrantLock)
    @ Base ./lock.jl:232
 [27] resolve!(edge::ComputePipeline.ComputeEdge{ComputePipeline.ComputeGraph})
    @ ComputePipeline ~/.julia/packages/ComputePipeline/03tW7/src/ComputePipeline.jl:659
 [28] _resolve!(computed::ComputePipeline.Computed)
    @ ComputePipeline ~/.julia/packages/ComputePipeline/03tW7/src/ComputePipeline.jl:652
 [29] resolve!(computed::ComputePipeline.Computed)
    @ ComputePipeline ~/.julia/packages/ComputePipeline/03tW7/src/ComputePipeline.jl:644
 [30] getindex
    @ ~/.julia/packages/ComputePipeline/03tW7/src/ComputePipeline.jl:563 [inlined]
 [31] data_limits(plot::Lines{Tuple{DiskArrayEngine.GMWOPResult{Point{2, Float64}, 1, DiskArrayEngine.GMDWop{1, Tuple{DiskArrayEngine.InputArray{Vector{Int64}, DiskArrayEngine.LoopWindows{DiskArrayEngine.ProductArray{Tuple{Int64}, 1, Tuple{UnitRange{Int64}}}, (1,)}}, DiskArrayEngine.InputArray{DiskArrayEngine.GMWOPResult{Float32, 1, DiskArrayEngine.GMDWop{1, Tuple{DiskArrayEngine.InputArray{DiskArrayEngine.GMWOPResult{Union{Missing, Float32}, 1, DiskArrayEngine.GMDWop{1, Tuple{DiskArrayEngine.InputArray{DiskArrays.SubDiskArray{Union{Missing, Float32}, 1, DiskArrayTools.CFDiskArray{Union{Missing, Float32}, 3, Float64, ZArray{Float32, 3, Zarr.BloscCompressor, DirectoryStore}, Float32}, Tuple{Int64, Int64, UnitRange{Int64}}, false}, DiskArrayEngine.LoopWindows{DiskArrayEngine.ProductArray{Tuple{Int64}, 1, Tuple{UnitRange{Int64}}}, (1,)}}, DiskArrayEngine.InputArray{Vector{Union{Missing, Float32}}, DiskArrayEngine.LoopWindows{DiskArrayEngine.ProductArray{Tuple{Int64}, 1, Tuple{UnitRange{Int64}}}, (1,)}}}, Tuple{@NamedTuple{lw::DiskArrayEngine.LoopWindows{DiskArrayEngine.ProductArray{Tuple{Int64}, 1, Tuple{Base.OneTo{Int64}}}, (1,)}, chunks::Tuple{Nothing}, ismem::Bool}}, DiskArrayEngine.UserOp{DiskArrayEngine.ElementFunction{XFunction{typeof(-), XOutput{Tuple{}, Int64}, Tuple{}}, DiskArrayEngine.NonMutating}, Tuple{Nothing}, Tuple{Float32}, Tuple{typeof(identity)}, Tuple{Union}, Tuple{Union}}, DiskArrayEngine.LoopIndSplitter{(1,), (), ((true, 1),)}}, DiskArrays.Unchunked{DiskArrays.SubRanges{DiskArrays.NoStepRange}}, 1}, DiskArrayEngine.LoopWindows{DiskArrayEngine.ProductArray{Tuple{Int64}, 1, Tuple{UnitRange{Int64}}}, (1,)}}}, Tuple{@NamedTuple{lw::DiskArrayEngine.LoopWindows{DiskArrayEngine.ProductArray{Tuple{Int64}, 1, Tuple{Base.OneTo{Int64}}}, (1,)}, chunks::Tuple{Nothing}, ismem::Bool}}, DiskArrayEngine.UserOp{DiskArrayEngine.ElementFunction{Makie.var"#1323#1324"{Float32}, DiskArrayEngine.NonMutating}, Tuple{Nothing}, Tuple{Float32}, Tuple{typeof(identity)}, Tuple{DataType}, Tuple{DataType}}, DiskArrayEngine.LoopIndSplitter{(1,), (), ((true, 1),)}}, DiskArrays.Unchunked{DiskArrays.SubRanges{DiskArrays.NoStepRange}}, 1}, DiskArrayEngine.LoopWindows{DiskArrayEngine.ProductArray{Tuple{Int64}, 1, Tuple{UnitRange{Int64}}}, (1,)}}}, Tuple{@NamedTuple{lw::DiskArrayEngine.LoopWindows{DiskArrayEngine.ProductArray{Tuple{Int64}, 1, Tuple{Base.OneTo{Int64}}}, (1,)}, chunks::Tuple{Nothing}, ismem::Bool}}, DiskArrayEngine.UserOp{DiskArrayEngine.ElementFunction{DataType, DiskArrayEngine.NonMutating}, Tuple{Nothing}, Tuple{Point{2, Float64}}, Tuple{typeof(identity)}, Tuple{DataType}, Tuple{DataType}}, DiskArrayEngine.LoopIndSplitter{(1,), (), ((true, 1),)}}, DiskArrays.Unchunked{DiskArrays.SubRanges{DiskArrays.NoStepRange}}, 1}}})
    @ Makie ~/.julia/packages/Makie/4JW9B/src/compute-plots.jl:41
 [32] boundingbox(plot::Lines{Tuple{DiskArrayEngine.GMWOPResult{Point{2, Float64}, 1, DiskArrayEngine.GMDWop{1, Tuple{DiskArrayEngine.InputArray{Vector{Int64}, DiskArrayEngine.LoopWindows{DiskArrayEngine.ProductArray{Tuple{Int64}, 1, Tuple{UnitRange{Int64}}}, (1,)}}, DiskArrayEngine.InputArray{DiskArrayEngine.GMWOPResult{Float32, 1, DiskArrayEngine.GMDWop{1, Tuple{DiskArrayEngine.InputArray{DiskArrayEngine.GMWOPResult{Union{Missing, Float32}, 1, DiskArrayEngine.GMDWop{1, Tuple{DiskArrayEngine.InputArray{DiskArrays.SubDiskArray{Union{Missing, Float32}, 1, DiskArrayTools.CFDiskArray{Union{Missing, Float32}, 3, Float64, ZArray{Float32, 3, Zarr.BloscCompressor, DirectoryStore}, Float32}, Tuple{Int64, Int64, UnitRange{Int64}}, false}, DiskArrayEngine.LoopWindows{DiskArrayEngine.ProductArray{Tuple{Int64}, 1, Tuple{UnitRange{Int64}}}, (1,)}}, DiskArrayEngine.InputArray{Vector{Union{Missing, Float32}}, DiskArrayEngine.LoopWindows{DiskArrayEngine.ProductArray{Tuple{Int64}, 1, Tuple{UnitRange{Int64}}}, (1,)}}}, Tuple{@NamedTuple{lw::DiskArrayEngine.LoopWindows{DiskArrayEngine.ProductArray{Tuple{Int64}, 1, Tuple{Base.OneTo{Int64}}}, (1,)}, chunks::Tuple{Nothing}, ismem::Bool}}, DiskArrayEngine.UserOp{DiskArrayEngine.ElementFunction{XFunction{typeof(-), XOutput{Tuple{}, Int64}, Tuple{}}, DiskArrayEngine.NonMutating}, Tuple{Nothing}, Tuple{Float32}, Tuple{typeof(identity)}, Tuple{Union}, Tuple{Union}}, DiskArrayEngine.LoopIndSplitter{(1,), (), ((true, 1),)}}, DiskArrays.Unchunked{DiskArrays.SubRanges{DiskArrays.NoStepRange}}, 1}, DiskArrayEngine.LoopWindows{DiskArrayEngine.ProductArray{Tuple{Int64}, 1, Tuple{UnitRange{Int64}}}, (1,)}}}, Tuple{@NamedTuple{lw::DiskArrayEngine.LoopWindows{DiskArrayEngine.ProductArray{Tuple{Int64}, 1, Tuple{Base.OneTo{Int64}}}, (1,)}, chunks::Tuple{Nothing}, ismem::Bool}}, DiskArrayEngine.UserOp{DiskArrayEngine.ElementFunction{Makie.var"#1323#1324"{Float32}, DiskArrayEngine.NonMutating}, Tuple{Nothing}, Tuple{Float32}, Tuple{typeof(identity)}, Tuple{DataType}, Tuple{DataType}}, DiskArrayEngine.LoopIndSplitter{(1,), (), ((true, 1),)}}, DiskArrays.Unchunked{DiskArrays.SubRanges{DiskArrays.NoStepRange}}, 1}, DiskArrayEngine.LoopWindows{DiskArrayEngine.ProductArray{Tuple{Int64}, 1, Tuple{UnitRange{Int64}}}, (1,)}}}, Tuple{@NamedTuple{lw::DiskArrayEngine.LoopWindows{DiskArrayEngine.ProductArray{Tuple{Int64}, 1, Tuple{Base.OneTo{Int64}}}, (1,)}, chunks::Tuple{Nothing}, ismem::Bool}}, DiskArrayEngine.UserOp{DiskArrayEngine.ElementFunction{DataType, DiskArrayEngine.NonMutating}, Tuple{Nothing}, Tuple{Point{2, Float64}}, Tuple{typeof(identity)}, Tuple{DataType}, Tuple{DataType}}, DiskArrayEngine.LoopIndSplitter{(1,), (), ((true, 1),)}}, DiskArrays.Unchunked{DiskArrays.SubRanges{DiskArrays.NoStepRange}}, 1}}}, space::Symbol)
    @ Makie ~/.julia/packages/Makie/4JW9B/src/layouting/boundingbox.jl:37
 [33] (::Makie.var"#1441#1443"{Makie.var"#exclude#2201"{Int64}, Symbol, Base.RefValue{GeometryBasics.HyperRectangle{3, Float64}}})(plot::Lines{Tuple{DiskArrayEngine.GMWOPResult{Point{2, Float64}, 1, DiskArrayEngine.GMDWop{1, Tuple{DiskArrayEngine.InputArray{Vector{Int64}, DiskArrayEngine.LoopWindows{DiskArrayEngine.ProductArray{Tuple{Int64}, 1, Tuple{UnitRange{Int64}}}, (1,)}}, DiskArrayEngine.InputArray{DiskArrayEngine.GMWOPResult{Float32, 1, DiskArrayEngine.GMDWop{1, Tuple{DiskArrayEngine.InputArray{DiskArrayEngine.GMWOPResult{Union{Missing, Float32}, 1, DiskArrayEngine.GMDWop{1, Tuple{DiskArrayEngine.InputArray{DiskArrays.SubDiskArray{Union{Missing, Float32}, 1, DiskArrayTools.CFDiskArray{Union{Missing, Float32}, 3, Float64, ZArray{Float32, 3, Zarr.BloscCompressor, DirectoryStore}, Float32}, Tuple{Int64, Int64, UnitRange{Int64}}, false}, DiskArrayEngine.LoopWindows{DiskArrayEngine.ProductArray{Tuple{Int64}, 1, Tuple{UnitRange{Int64}}}, (1,)}}, DiskArrayEngine.InputArray{Vector{Union{Missing, Float32}}, DiskArrayEngine.LoopWindows{DiskArrayEngine.ProductArray{Tuple{Int64}, 1, Tuple{UnitRange{Int64}}}, (1,)}}}, Tuple{@NamedTuple{lw::DiskArrayEngine.LoopWindows{DiskArrayEngine.ProductArray{Tuple{Int64}, 1, Tuple{Base.OneTo{Int64}}}, (1,)}, chunks::Tuple{Nothing}, ismem::Bool}}, DiskArrayEngine.UserOp{DiskArrayEngine.ElementFunction{XFunction{typeof(-), XOutput{Tuple{}, Int64}, Tuple{}}, DiskArrayEngine.NonMutating}, Tuple{Nothing}, Tuple{Float32}, Tuple{typeof(identity)}, Tuple{Union}, Tuple{Union}}, DiskArrayEngine.LoopIndSplitter{(1,), (), ((true, 1),)}}, DiskArrays.Unchunked{DiskArrays.SubRanges{DiskArrays.NoStepRange}}, 1}, DiskArrayEngine.LoopWindows{DiskArrayEngine.ProductArray{Tuple{Int64}, 1, Tuple{UnitRange{Int64}}}, (1,)}}}, Tuple{@NamedTuple{lw::DiskArrayEngine.LoopWindows{DiskArrayEngine.ProductArray{Tuple{Int64}, 1, Tuple{Base.OneTo{Int64}}}, (1,)}, chunks::Tuple{Nothing}, ismem::Bool}}, DiskArrayEngine.UserOp{DiskArrayEngine.ElementFunction{Makie.var"#1323#1324"{Float32}, DiskArrayEngine.NonMutating}, Tuple{Nothing}, Tuple{Float32}, Tuple{typeof(identity)}, Tuple{DataType}, Tuple{DataType}}, DiskArrayEngine.LoopIndSplitter{(1,), (), ((true, 1),)}}, DiskArrays.Unchunked{DiskArrays.SubRanges{DiskArrays.NoStepRange}}, 1}, DiskArrayEngine.LoopWindows{DiskArrayEngine.ProductArray{Tuple{Int64}, 1, Tuple{UnitRange{Int64}}}, (1,)}}}, Tuple{@NamedTuple{lw::DiskArrayEngine.LoopWindows{DiskArrayEngine.ProductArray{Tuple{Int64}, 1, Tuple{Base.OneTo{Int64}}}, (1,)}, chunks::Tuple{Nothing}, ismem::Bool}}, DiskArrayEngine.UserOp{DiskArrayEngine.ElementFunction{DataType, DiskArrayEngine.NonMutating}, Tuple{Nothing}, Tuple{Point{2, Float64}}, Tuple{typeof(identity)}, Tuple{DataType}, Tuple{DataType}}, DiskArrayEngine.LoopIndSplitter{(1,), (), ((true, 1),)}}, DiskArrays.Unchunked{DiskArrays.SubRanges{DiskArrays.NoStepRange}}, 1}}})
    @ Makie ~/.julia/packages/Makie/4JW9B/src/layouting/boundingbox.jl:20
 [34] foreach(f::Makie.var"#1441#1443"{Makie.var"#exclude#2201"{Int64}, Symbol, Base.RefValue{GeometryBasics.HyperRectangle{3, Float64}}}, itr::Vector{Plot})
    @ Base ./abstractarray.jl:3187
 [35] foreach_plot
    @ ~/.julia/packages/Makie/4JW9B/src/layouting/data_limits.jl:141 [inlined]
 [36] foreach_plot
    @ ~/.julia/packages/Makie/4JW9B/src/layouting/data_limits.jl:138 [inlined]
 [37] boundingbox
    @ ~/.julia/packages/Makie/4JW9B/src/layouting/boundingbox.jl:18 [inlined]
 [38] boundingbox
    @ ~/.julia/packages/Makie/4JW9B/src/layouting/boundingbox.jl:17 [inlined]
 [39] getlimits(la::Axis, dim::Int64)
    @ Makie ~/.julia/packages/Makie/4JW9B/src/makielayout/blocks/axis.jl:829
 [40] autolimits(ax::Axis, dim::Int64)
    @ Makie ~/.julia/packages/Makie/4JW9B/src/makielayout/blocks/axis.jl:917
 [41] xautolimits
    @ ~/.julia/packages/Makie/4JW9B/src/makielayout/blocks/axis.jl:948 [inlined]
 [42] reset_limits!(ax::Axis; xauto::Bool, yauto::Bool, zauto::Bool)
    @ Makie ~/.julia/packages/Makie/4JW9B/src/makielayout/blocks/axis.jl:645
 [43] reset_limits!
    @ ~/.julia/packages/Makie/4JW9B/src/makielayout/blocks/axis.jl:632 [inlined]
 [44] update_state_before_display!(ax::Axis)
    @ Makie ~/.julia/packages/Makie/4JW9B/src/figureplotting.jl:423
 [45] update_state_before_display!(f::Figure)
    @ Makie ~/.julia/packages/Makie/4JW9B/src/figureplotting.jl:285
 [46] display(figlike::Figure; backend::Module, inline::Bool, update::Bool, screen_config::@Kwargs{})
    @ Makie ~/.julia/packages/Makie/4JW9B/src/display.jl:169
 [47] display(figlike::Figure)
    @ Makie ~/.julia/packages/Makie/4JW9B/src/display.jl:131
 [48] #invokelatest#2
    @ ./essentials.jl:1055 [inlined]
 [49] invokelatest
    @ ./essentials.jl:1052 [inlined]
 [50] (::VSCodeServer.var"#69#74"{Bool, Bool, Bool, Module, String, Int64, Int64, String, VSCodeServer.ReplRunCodeRequestParams})()
    @ VSCodeServer ~/.vscode/extensions/julialang.language-julia-1.149.2/scripts/packages/VSCodeServer/src/eval.jl:237
 [51] withpath(f::VSCodeServer.var"#69#74"{Bool, Bool, Bool, Module, String, Int64, Int64, String, VSCodeServer.ReplRunCodeRequestParams}, path::String)
    @ VSCodeServer ~/.vscode/extensions/julialang.language-julia-1.149.2/scripts/packages/VSCodeServer/src/repl.jl:276
 [52] (::VSCodeServer.var"#68#73"{Bool, Bool, Bool, Module, String, Int64, Int64, String, VSCodeServer.ReplRunCodeRequestParams})()
    @ VSCodeServer ~/.vscode/extensions/julialang.language-julia-1.149.2/scripts/packages/VSCodeServer/src/eval.jl:179
 [53] hideprompt(f::VSCodeServer.var"#68#73"{Bool, Bool, Bool, Module, String, Int64, Int64, String, VSCodeServer.ReplRunCodeRequestParams})
    @ VSCodeServer ~/.vscode/extensions/julialang.language-julia-1.149.2/scripts/packages/VSCodeServer/src/repl.jl:38
 [54] #67
    @ ~/.vscode/extensions/julialang.language-julia-1.149.2/scripts/packages/VSCodeServer/src/eval.jl:150 [inlined]
 [55] with_logstate(f::VSCodeServer.var"#67#72"{Bool, Bool, Bool, Module, String, Int64, Int64, String, VSCodeServer.ReplRunCodeRequestParams}, logstate::Base.CoreLogging.LogState)
    @ Base.CoreLogging ./logging/logging.jl:524
 [56] with_logger
    @ ./logging/logging.jl:635 [inlined]
 [57] (::VSCodeServer.var"#66#71"{VSCodeServer.ReplRunCodeRequestParams})()
    @ VSCodeServer ~/.vscode/extensions/julialang.language-julia-1.149.2/scripts/packages/VSCodeServer/src/eval.jl:263
 [58] #invokelatest#2
    @ ./essentials.jl:1055 [inlined]
 [59] invokelatest(::Any)
    @ Base ./essentials.jl:1052

felixcremer avatar Sep 28 '25 17:09 felixcremer