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

"Error requiring ArchGDAL from GeoData" after using Circuitscape; using GeoData #66

Closed
vlandau opened this issue Sep 15, 2020 · 7 comments

Comments

@vlandau
Copy link
Collaborator

vlandau commented Sep 15, 2020

Here's the stack trace. It seems to trigger if I've run using Circuitscape prior to using GeoData

 Warning: Error requiring ArchGDAL from GeoData:
│ LoadError: UndefVarError: RasterDataset not defined
│ Stacktrace:
│  [1] getproperty(::Module, ::Symbol) at ./Base.jl:26
│  [2] top-level scope at /root/.julia/packages/GeoData/MVllE/src/sources/gdal.jl:92
│  [3] include(::Function, ::Module, ::String) at ./Base.jl:380
│  [4] include at ./Base.jl:368 [inlined]
│  [5] include(::String) at /root/.julia/packages/GeoData/MVllE/src/GeoData.jl:1
│  [6] top-level scope at /root/.julia/packages/GeoData/MVllE/src/GeoData.jl:80
│  [7] eval at ./boot.jl:331 [inlined]
│  [8] eval at /root/.julia/packages/GeoData/MVllE/src/GeoData.jl:1 [inlined]
│  [9] (::GeoData.var"#124#133")() at /root/.julia/packages/Requires/qy6zC/src/require.jl:85
│  [10] err(::Any, ::Module, ::String) at /root/.julia/packages/Requires/qy6zC/src/require.jl:42
│  [11] (::GeoData.var"#123#132")() at /root/.julia/packages/Requires/qy6zC/src/require.jl:84
│  [12] withpath(::Any, ::String) at /root/.julia/packages/Requires/qy6zC/src/require.jl:32
│  [13] (::GeoData.var"#122#131")() at /root/.julia/packages/Requires/qy6zC/src/require.jl:83
│  [14] listenpkg(::Any, ::Base.PkgId) at /root/.julia/packages/Requires/qy6zC/src/require.jl:15
│  [15] macro expansion at /root/.julia/packages/Requires/qy6zC/src/require.jl:81 [inlined]
│  [16] __init__() at /root/.julia/packages/GeoData/MVllE/src/GeoData.jl:78
│  [17] _include_from_serialized(::String, ::Array{Any,1}) at ./loading.jl:697
│  [18] _require_from_serialized(::String) at ./loading.jl:749
│  [19] _require(::Base.PkgId) at ./loading.jl:1040
│  [20] require(::Base.PkgId) at ./loading.jl:928
│  [21] require(::Module, ::Symbol) at ./loading.jl:923
│  [22] eval at ./boot.jl:331 [inlined]
│  [23] repleval(::Module, ::Expr) at /root/.julia/packages/Atom/ipSjf/src/repl.jl:196
│  [24] (::Atom.var"#242#244"{Module})() at /root/.julia/packages/Atom/ipSjf/src/repl.jl:223
│  [25] with_logstate(::Function, ::Any) at ./logging.jl:408
│  [26] with_logger at ./logging.jl:514 [inlined]
│  [27] evalrepl(::Module, ::String) at /root/.julia/packages/Atom/ipSjf/src/repl.jl:214
│  [28] top-level scope at /root/.julia/packages/Atom/ipSjf/src/repl.jl:259
│  [29] eval(::Module, ::Any) at ./boot.jl:331
│  [30] eval_user_input(::Any, ::REPL.REPLBackend) at /buildworker/worker/package_linux64/build/usr/share/julia/stdlib/v1.5/REPL/src/REPL.jl:134
│  [31] repl_backend_loop(::REPL.REPLBackend) at /buildworker/worker/package_linux64/build/usr/share/julia/stdlib/v1.5/REPL/src/REPL.jl:195
│  [32] start_repl_backend(::REPL.REPLBackend, ::Any) at /buildworker/worker/package_linux64/build/usr/share/julia/stdlib/v1.5/REPL/src/REPL.jl:180
│  [33] run_repl(::REPL.AbstractREPL, ::Any; backend_on_current_task::Bool) at /buildworker/worker/package_linux64/build/usr/share/julia/stdlib/v1.5/REPL/src/REPL.jl:292
│  [34] run_repl(::REPL.AbstractREPL, ::Any) at /buildworker/worker/package_linux64/build/usr/share/julia/stdlib/v1.5/REPL/src/REPL.jl:288
│  [35] (::Base.var"#806#808"{Bool,Bool,Bool,Bool})(::Module) at ./client.jl:399
│  [36] #invokelatest#1 at ./essentials.jl:710 [inlined]
│  [37] invokelatest at ./essentials.jl:709 [inlined]
│  [38] run_main_repl(::Bool, ::Bool, ::Bool, ::Bool, ::Bool) at ./client.jl:383
│  [39] exec_options(::Base.JLOptions) at ./client.jl:313
│  [40] _start() at ./client.jl:506
│ in expression starting at /root/.julia/packages/GeoData/MVllE/src/sources/gdal.jl:92
└ @ Requires ~/.julia/packages/Requires/qy6zC/src/require.jl:44
@rafaqz
Copy link
Owner

rafaqz commented Sep 16, 2020

Whats your version of ArchGDAL? You need the latest one. I think that is the problem here.

One structural problem with GeoData at the moment is that it uses Requires.jl. So it can't work out packages dependencies and get you the correct ArchGDAL. The option is that it depends on ArchGDAL, NCDatasets and HDF5, which starts to get pretty heavy and slow to load, when your're probably only using one of those.

Honestly I'm holding our for movement on this:
JuliaLang/Pkg.jl#1285

Otherwise we may need write glue packages like GeoDataGDAL.jl, but trying to avoid that because the maintenance will be a huge headache.

And if you scroll down here, it looks like a fix is on the way:
JuliaLang/Pkg.jl#2005

Let me know if it works when you have the latest version, otherwise it may be another problem with the Requires.jl setup.

@vlandau
Copy link
Collaborator Author

vlandau commented Sep 16, 2020

I'm using ArchGDAL 0.4.1

@rafaqz
Copy link
Owner

rafaqz commented Sep 16, 2020

Ok yeah there was a a lot of changes for 0.5 - mostly DiskArrays.jl backend (which is awesome). But you will need 0.5

@rafaqz
Copy link
Owner

rafaqz commented Sep 16, 2020

Hopefully Pkg people will get this sorted for 1.6.

@vlandau
Copy link
Collaborator Author

vlandau commented Sep 16, 2020

Ah good to know! Thanks! Going to verify that it works then I'll close this.

@rafaqz
Copy link
Owner

rafaqz commented Sep 16, 2020

Maybe leave it open, it's going to be a common issue I think...

@vlandau
Copy link
Collaborator Author

vlandau commented Sep 17, 2020

Should be fixed by #67 - close?

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