I’m working on running an analysis in Omniscape, and am battling an error that I will post below. I have run these analyses before without issue. I’m getting this issue even when trying files that worked successfully a few months ago, and on different computers. The resistance, source layers, and .ini file looks fine.
Any help is very much appreciated!
julia> run_omniscape(“chase_config.ini”)
┌ Warning: Your specified project directory, outputs/chase_local_movement, already exists. Writing outputs to outputs/chase_local_movement_2.
└ @ Omniscape C:\Users\peteb.julia\packages\Omniscape\VSLPS\src\main.jl:155
[ Info: Starting up Omniscape with 8 workers and double precision
[ Info: Using Circuitscape with the cg+amg solver…
[ Info: Calculating block artifact correction array…
ERROR: MethodError: no method matching missingarray_to_array(::Matrix{Union{Missing, Float64}}, ::Int64)
This error has been manually thrown, explicitly, so the method may exist but be intentionally marked as unimplemented.
Sorry I don’t totally know what you mean by that. But here is the .ini file that I’m getting the error on (this just worked perfectly a month ago) if this helps.
Ah never mind, here is the code from that file at line 614 onwards
*nodata**: The numeric value with which missing values will be replaced in
the result.
“”"
function missingarray_to_array(
A::MissingArray{T, N} where T <: Number where N,
nodata::Number
)
output = copy(A)
output[ismissing.(output)] .= nodata
By all appearances of the stacktrace, that method dispatch should have worked, and that method works on simple inputs when copied and isolated to a different module. There’s an open issue for this, so if you have a Github account you could chime in there as another user. That issue’s commenters say that downgrading to Julia 1.11 works in the meantime, though I can’t imagine how 1.12 made a difference.