Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Circuitscape cannot find files with 'compute()' but runs fine if used with 'start()' #397

Open
MountainCedar opened this issue Oct 11, 2023 · 4 comments

Comments

@MountainCedar
Copy link

MountainCedar commented Oct 11, 2023

I'm having an issue where Circuitscape can work fine if run immediately after if I use start() to generate an .ini file and then run, but gives an error if I try to compute() that exact same .ini file generated from the start() process (i.e. if at step 10 I select to "run later", then try to compute that .ini file). I'm running Julia 1.9.3 in a Windows environment, and have encountered this with both the stable and development version of Circuitscape. The error it gives is:

julia> compute("C:\Users\Human\Desktop\Restoration_Project_2023\Analysis\output.ini")
[ Info: 2023-10-11 11:53:13 : Precision used: Double
[ Info: 2023-10-11 11:53:15 : Reading maps
ERROR: the file "(Browse for a resistance file)" does not exist
Stacktrace:
[1] error(s::String)
@ Base .\error.jl:35
[2] read_raster
@ C:\Users\Human.julia\packages\Circuitscape\qlA9V\src\io.jl:503 [inlined]
[3] _grid_reader(T::Type, file::String)
@ Circuitscape C:\Users\Human.julia\packages\Circuitscape\qlA9V\src\io.jl:114
[4] read_cellmap(habitat_file::String, is_res::Bool, #unused#::Type{Float64})
@ Circuitscape C:\Users\Human.julia\packages\Circuitscape\qlA9V\src\io.jl:91
[5] load_raster_data(T::Type, V::Type, cfg::Dict{String, String})
@ Circuitscape C:\Users\Human.julia\packages\Circuitscape\qlA9V\src\io.jl:442
[6] raster_one_to_all(T::Type, V::Type, cfg::Dict{String, String})
@ Circuitscape C:\Users\Human.julia\packages\Circuitscape\qlA9V\src\raster\onetoall.jl:4
[7] _compute(T::Type, V::Type, cfg::Dict{String, String})
@ Circuitscape C:\Users\Human.julia\packages\Circuitscape\qlA9V\src\run.jl:49
[8] macro expansion
@ .\timing.jl:393 [inlined]
[9] compute(path::String)
@ Circuitscape C:\Users\Human.julia\packages\Circuitscape\qlA9V\src\run.jl:31
[10] top-level scope
@ REPL[10]:1

At first I thought this might be related to a file pathing issue on Windows, but have tried '\\', '/', and '\' syntaxt well as selecting the path using file picker manually - and all work to run the job if it is run at step 10 of start() - but otherwise throw an error if that same .ini file generated though start() is used with compute()

@MountainCedar
Copy link
Author

Here's the unmodified file that start() produces and which fails to run with compute() (I just changed the extension to .txt so it could be uploaded here)
output.txt

@j3ss42
Copy link

j3ss42 commented Nov 16, 2023

Hi, I am having the same issue - how did you fix this? Thanks

@MountainCedar
Copy link
Author

MountainCedar commented Nov 16, 2023

I never really solved the exact issue, but taking the .ini file below and modifying it for my needs worked - I managed to get Circuitscape to run this way: https://github.com/Circuitscape/Circuitscape.jl/blob/master/test/input/raster/pairwise/1/sgVerify1.ini

I suspect there is some issue in how Circuitscape formats the .ini that start() produces that causes compute() to fail with it - perhaps a holdover from a previous version that is no longer valid?

@j3ss42
Copy link

j3ss42 commented Nov 17, 2023

Hi, this has worked for me as well, thanks!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants