-
Notifications
You must be signed in to change notification settings - Fork 25
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
[WIP] Improvements to GeoAxis and docs #207
Conversation
This PR currently needs: |
This fails to precompile for me with the following error: ERROR: LoadError: Failed to precompile Makie [ee78f7c6-11fb-53f2-987a-cfe4a2b5a57a] to "/home/fcremer/.julia/compiled/v1.10/Makie/jl_pajWTX".
Stacktrace:
[1] error(s::String)
@ Base ./error.jl:35
[2] compilecache(pkg::Base.PkgId, path::String, internal_stderr::IO, internal_stdout::IO, keep_loaded_modules::Bool)
@ Base ./loading.jl:2468
[3] compilecache
@ ./loading.jl:2340 [inlined]
[4] (::Base.var"#968#969"{Base.PkgId})()
@ Base ./loading.jl:1974
[5] mkpidlock(f::Base.var"#968#969"{Base.PkgId}, at::String, pid::Int32; kwopts::@Kwargs{stale_age::Int64, wait::Bool})
@ FileWatching.Pidfile ~/.julia/juliaup/julia-1.10.1+0.x64.linux.gnu/share/julia/stdlib/v1.10/FileWatching/src/pidfile.jl:93
[6] #mkpidlock#6
@ ~/.julia/juliaup/julia-1.10.1+0.x64.linux.gnu/share/julia/stdlib/v1.10/FileWatching/src/pidfile.jl:88 [inlined]
[7] trymkpidlock(::Function, ::Vararg{Any}; kwargs::@Kwargs{stale_age::Int64})
@ FileWatching.Pidfile ~/.julia/juliaup/julia-1.10.1+0.x64.linux.gnu/share/julia/stdlib/v1.10/FileWatching/src/pidfile.jl:111
[8] #invokelatest#2
@ ./essentials.jl:894 [inlined]
[9] invokelatest
@ ./essentials.jl:889 [inlined]
[10] maybe_cachefile_lock(f::Base.var"#968#969"{Base.PkgId}, pkg::Base.PkgId, srcpath::String; stale_age::Int64)
@ Base ./loading.jl:2983
[11] maybe_cachefile_lock
@ ./loading.jl:2980 [inlined]
[12] _require(pkg::Base.PkgId, env::String)
@ Base ./loading.jl:1970
[13] __require_prelocked(uuidkey::Base.PkgId, env::String)
@ Base ./loading.jl:1812
[14] #invoke_in_world#3
@ ./essentials.jl:926 [inlined]
[15] invoke_in_world
@ ./essentials.jl:923 [inlined]
[16] _require_prelocked(uuidkey::Base.PkgId, env::String)
@ Base ./loading.jl:1803
[17] macro expansion
@ ./loading.jl:1790 [inlined]
[18] macro expansion
@ ./lock.jl:267 [inlined]
[19] __require(into::Module, mod::Symbol)
@ Base ./loading.jl:1753
[20] #invoke_in_world#3
@ ./essentials.jl:926 [inlined]
[21] invoke_in_world
@ ./essentials.jl:923 [inlined]
[22] require(into::Module, mod::Symbol)
@ Base ./loading.jl:1746
[23] include
@ ./Base.jl:495 [inlined]
[24] include_package_for_output(pkg::Base.PkgId, input::String, depot_path::Vector{String}, dl_load_path::Vector{String}, load_path::Vector{String}, concrete_deps::Vector{Pair{Base.PkgId, UInt128}}, source::Nothing)
@ Base ./loading.jl:2222
[25] top-level scope
@ stdin:3
in expression starting at /home/fcremer/Documents/rqa_bonito_app/dev/GeoMakie/src/GeoMakie.jl:1
in expression starting at stdin:3
Makie [ee78f7c6-11fb-53f2-987a-cfe4a2b5a57a]
Failed to precompile Makie [ee78f7c6-11fb-53f2-987a-cfe4a2b5a57a] to "/home/fcremer/.julia/compiled/v1.10/Makie/jl_wR6ngy".
ERROR: LoadError: MethodError: Cannot `convert` an object of type Observables.Observable{GeometryBasics.Vec{2, Float32}} to an object of type Float32
Closest candidates are:
convert(::Type{T}, ::DualNumbers.Dual) where T<:Union{Real, Complex}
@ DualNumbers ~/.julia/packages/DualNumbers/5knFX/src/dual.jl:24
convert(::Type{T}, ::T) where T
@ Base Base.jl:84
convert(::Type{T}, ::Polynomials.AbstractPolynomial{T, X}) where {T<:Number, X}
@ Polynomials ~/.julia/packages/Polynomials/UpyN2/src/common.jl:476
...
Stacktrace:
[1] (::GeometryBasics.var"#5#16"{Float32, Observables.Observable{GeometryBasics.Vec{2, Float32}}})(i::Int64)
@ GeometryBasics ~/.julia/packages/GeometryBasics/7UOa3/src/fixed_arrays.jl:45
[2] ntuple
@ ./ntuple.jl:49 [inlined]
[3] GeometryBasics.Point{2, Float32}(x::Observables.Observable{GeometryBasics.Vec{2, Float32}})
@ GeometryBasics ~/.julia/packages/GeometryBasics/7UOa3/src/fixed_arrays.jl:45
[4] to_world(scene::Makie.Scene, point::GeometryBasics.Point{2, Float32})
@ Makie ~/Documents/rqa_bonito_app/dev/Makie/src/camera/projection_math.jl:243
[5] mouseposition(scene::Makie.Scene)
@ Makie ~/Documents/rqa_bonito_app/dev/Makie/src/interaction/interactive_api.jl:190
[6] _addmouseevents!(scene::Makie.Scene, is_mouse_over_relevant_area::Makie.var"#is_mouse_over_relevant_area#1464"{Makie.Scene, Tuple{}}, priority::Int64)
@ Makie ~/Documents/rqa_bonito_app/dev/Makie/src/makielayout/mousestatemachine.jl:197
[7] addmouseevents!(::Makie.Scene; priority::Int64)
@ Makie ~/Documents/rqa_bonito_app/dev/Makie/src/makielayout/mousestatemachine.jl:125
[8] addmouseevents!(::Makie.Scene)
@ Makie ~/Documents/rqa_bonito_app/dev/Makie/src/makielayout/mousestatemachine.jl:123
[9] register_events!(ax::Makie.Axis, scene::Makie.Scene)
@ Makie ~/Documents/rqa_bonito_app/dev/Makie/src/makielayout/blocks/axis.jl:35
[10] initialize_block!(ax::Makie.Axis; palette::Nothing)
@ Makie ~/Documents/rqa_bonito_app/dev/Makie/src/makielayout/blocks/axis.jl:501
[11] initialize_block!(ax::Makie.Axis)
@ Makie ~/Documents/rqa_bonito_app/dev/Makie/src/makielayout/blocks/axis.jl:163
[12] _block(T::Type{Makie.Axis}, fig_or_scene::Makie.Figure, args::Vector{Any}, kwdict::Dict{Symbol, Any}, bbox::Nothing; kwdict_complete::Bool)
@ Makie ~/Documents/rqa_bonito_app/dev/Makie/src/makielayout/blocks.jl:362
[13] _block(T::Type{Makie.Axis}, fig_or_scene::Makie.Figure, args::Vector{Any}, kwdict::Dict{Symbol, Any}, bbox::Nothing)
@ Makie ~/Documents/rqa_bonito_app/dev/Makie/src/makielayout/blocks.jl:282
[14] _block(::Type{Makie.Axis}, ::Makie.Figure; bbox::Nothing, kwargs::@Kwargs{})
@ Makie ~/Documents/rqa_bonito_app/dev/Makie/src/makielayout/blocks.jl:250
[15] _block(::Type{Makie.Axis}, ::Makie.Figure)
@ Makie ~/Documents/rqa_bonito_app/dev/Makie/src/makielayout/blocks.jl:249
[16] _block(::Type{Makie.Axis}, ::GridLayoutBase.GridPosition; kwargs::@Kwargs{})
@ Makie ~/Documents/rqa_bonito_app/dev/Makie/src/makielayout/blocks.jl:244
[17] _block
@ ~/Documents/rqa_bonito_app/dev/Makie/src/makielayout/blocks.jl:237 [inlined]
[18] #_#1373
@ ~/Documents/rqa_bonito_app/dev/Makie/src/makielayout/blocks.jl:228 [inlined]
[19] Block
@ ~/Documents/rqa_bonito_app/dev/Makie/src/makielayout/blocks.jl:227 [inlined]
[20] macro expansion
@ ~/Documents/rqa_bonito_app/dev/Makie/src/precompiles.jl:29 [inlined]
[21] macro expansion
@ ~/.julia/packages/PrecompileTools/L8A3n/src/workloads.jl:78 [inlined]
[22] top-level scope
@ ~/Documents/rqa_bonito_app/dev/Makie/src/precompiles.jl:27
[23] include(mod::Module, _path::String)
@ Base ./Base.jl:495
[24] include(x::String)
@ Makie ~/Documents/rqa_bonito_app/dev/Makie/src/Makie.jl:1
[25] top-level scope
@ ~/Documents/rqa_bonito_app/dev/Makie/src/Makie.jl:408
[26] include
@ ./Base.jl:495 [inlined]
[27] include_package_for_output(pkg::Base.PkgId, input::String, depot_path::Vector{String}, dl_load_path::Vector{String}, load_path::Vector{String}, concrete_deps::Vector{Pair{Base.PkgId, UInt128}}, source::Nothing)
@ Base ./loading.jl:2222
[28] top-level scope
@ stdin:3
in expression starting at /home/fcremer/Documents/rqa_bonito_app/dev/Makie/src/precompiles.jl:26
in expression starting at /home/fcremer/Documents/rqa_bonito_app/dev/Makie/src/Makie.jl:1
in expression starting at stdin:3
Stacktrace:
[1] pkgerror(msg::String)
@ Pkg.Types ~/.julia/juliaup/julia-1.10.1+0.x64.linux.gnu/share/julia/stdlib/v1.10/Pkg/src/Types.jl:70
[2] precompile(ctx::Pkg.Types.Context, pkgs::Vector{…}; internal_call::Bool, strict::Bool, warn_loaded::Bool, already_instantiated::Bool, timing::Bool, _from_loading::Bool, kwargs::@Kwargs{…})
@ Pkg.API ~/.julia/juliaup/julia-1.10.1+0.x64.linux.gnu/share/julia/stdlib/v1.10/Pkg/src/API.jl:1659
[3] precompile(pkgs::Vector{Pkg.Types.PackageSpec}; io::Base.TTY, kwargs::@Kwargs{_from_loading::Bool})
@ Pkg.API ~/.julia/juliaup/julia-1.10.1+0.x64.linux.gnu/share/julia/stdlib/v1.10/Pkg/src/API.jl:159
[4] precompile
@ ~/.julia/juliaup/julia-1.10.1+0.x64.linux.gnu/share/julia/stdlib/v1.10/Pkg/src/API.jl:147 [inlined]
[5] #precompile#114
@ ~/.julia/juliaup/julia-1.10.1+0.x64.linux.gnu/share/julia/stdlib/v1.10/Pkg/src/API.jl:146 [inlined]
[6] #invokelatest#2
@ ./essentials.jl:894 [inlined]
[7] invokelatest
@ ./essentials.jl:889 [inlined]
[8] _require(pkg::Base.PkgId, env::String)
@ Base ./loading.jl:1963
[9] __require_prelocked(uuidkey::Base.PkgId, env::String)
@ Base ./loading.jl:1812
[10] #invoke_in_world#3
@ ./essentials.jl:926 [inlined]
[11] invoke_in_world
@ ./essentials.jl:923 [inlined]
[12] _require_prelocked(uuidkey::Base.PkgId, env::String)
@ Base ./loading.jl:1803
[13] macro expansion
@ ./loading.jl:1790 [inlined]
[14] macro expansion
@ ./lock.jl:267 [inlined]
[15] __require(into::Module, mod::Symbol)
@ Base ./loading.jl:1753
[16] #invoke_in_world#3
@ ./essentials.jl:926 [inlined]
[17] invoke_in_world
@ ./essentials.jl:923 [inlined]
[18] require(into::Module, mod::Symbol)
@ Base ./loading.jl:1746
[19] eval
@ ./boot.jl:385 [inlined]
[20] eval
@ ./Base.jl:88 [inlined]
[21] repleval(m::Module, code::Expr, ::String)
@ VSCodeServer ~/.vscode/extensions/julialang.language-julia-1.75.2/scripts/packages/VSCodeServer/src/repl.jl:229
[22] (::VSCodeServer.var"#110#112"{Module, Expr, REPL.LineEditREPL, REPL.LineEdit.Prompt})()
@ VSCodeServer ~/.vscode/extensions/julialang.language-julia-1.75.2/scripts/packages/VSCodeServer/src/repl.jl:192
[23] with_logstate(f::Function, logstate::Any)
@ Base.CoreLogging ./logging.jl:515
[24] with_logger
@ ./logging.jl:627 [inlined]
[25] (::VSCodeServer.var"#109#111"{Module, Expr, REPL.LineEditREPL, REPL.LineEdit.Prompt})()
@ VSCodeServer ~/.vscode/extensions/julialang.language-julia-1.75.2/scripts/packages/VSCodeServer/src/repl.jl:193
[26] #invokelatest#2
@ ./essentials.jl:892 [inlined]
[27] invokelatest(::Any)
@ Base ./essentials.jl:889
[28] (::VSCodeServer.var"#62#63")()
@ VSCodeServer ~/.vscode/extensions/julialang.language-julia-1.75.2/scripts/packages/VSCodeServer/src/eval.jl:34
Some type information was truncated. Use `show(err)` to see complete types.
(rqa_bonito_app) pkg> st
Status `~/Documents/rqa_bonito_app/Project.toml`
[824d6782] Bonito v3.0.6
⌅ [0703355e] DimensionalData v0.24.13
[411431e0] Extents v0.1.2
[5789e2e9] FileIO v1.16.2
[e9467ef8] GLMakie v0.10.0 `dev/Makie/GLMakie`
[68eda718] GeoFormatTypes v0.4.2
[db073c08] GeoMakie v0.6.3 `dev/GeoMakie`
[5c1252a2] GeometryBasics v0.4.10 `https://github.com/JuliaGeometry/GeometryBasics.jl.git#master`
[c27321d9] Glob v1.3.1
[ee78f7c6] Makie v0.21.0 `dev/Makie`
[20f20a25] MakieCore v0.8.0 `dev/Makie/MakieCore`
[c94c279d] Proj v1.7.0
[ec211b67] PyramidScheme v0.1.0 `~/Documents/PyramidScheme`
⌃ [a3a2b9e3] Rasters v0.5.1
[263fe934] TileProviders v0.1.3
[e170d443] Tyler v0.1.3 `dev/Tyler`
[c21b50f5] YAXArrays v0.5.4
[0a941bbe] Zarr v0.9.2
Info Packages marked with ⌃ and ⌅ have new versions available. Those with ⌃ may be upgradable, but those with ⌅ are restricted by compatibility constraints from upgrading. To see why use `status --outdated` |
Since we're using Float64, there is no need to use inverse transforms!
It looks as though the cover images exist in |
yes, when I was trying to do gallery section for BMakie, I had this issue. That's why later I just copy some files to public (no issues there). But, I agree, they should come from But, then why generated pages work when we save some images to assets and then we just included them in the normal .md file? .... Edit: Ohh, Lux also has the images in |
For pages with assets generated, my guess is that Vitepress picks them up and inlines them. I guess I can kind of fix that in the code, but all this manual config is not fun...would probably have to save all |
So there's a Vitepress package which kind of semi does this? See |
onany(Makie.update_axis_camera, camera(scene), scene.transformation.transform_func, finallimits, axis.xreversed, axis.yreversed) | ||
setfield!(scene, :float32convert, Makie.Float32Convert()) | ||
onany(scene, scene.transformation.transform_func, finallimits, axis.xreversed, axis.yreversed) do transform_func, finallimits, xreversed, yreversed | ||
Makie.update_axis_camera(scene, transform_func, finallimits, xreversed, yreversed) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This may have broken xreversed
Updates to Makie v0.21 and adds a couple of improvements to GeoAxis. Also gets rid of
PROJ_RESCALE_FACTOR
since we can now use Float64 numbers.This PR requires Makie v0.21 and is only usable with those versions of Makie.
View the docs at https://geo.makie.org/previews/PR207
Full changelog
Float64
instead ofFloat32
thanks to @ffreyer's and the Makie team's work in Makie.jl v0.21.PROJ_RESCALE_FACTOR
hack is also removed.scale
incoastlines
andland
, which triggers GeoMakie to get data from NaturalEarth.jl instead of using the bundled data.to_multipoly
function to use GeoInterface traits, so that it's more universal.tissot.jl
,source_crs.jl
, etc.GI.crs
on GeoAxis