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

example of geo raster not work any more #40

Closed
kongdd opened this issue Oct 26, 2023 · 1 comment
Closed

example of geo raster not work any more #40

kongdd opened this issue Oct 26, 2023 · 1 comment

Comments

@kongdd
Copy link

kongdd commented Oct 26, 2023

The example of geo raster not work any more.

It broke at here:

temperature_plot = mesh!(
m;
color = Makie.convert_arguments(Makie.ContinuousSurface(), worldclim_stacks[10].tmax)[3]',
colorrange = (-50, 50),
colormap = :tableau_temperature, #cmap,
shading = true,
transparency=false,
)

VersionInfo

  [c9ce4bd3] ArchGDAL v0.10.1
  [82cc6244] DataInterpolations v4.4.0
  [e9467ef8] GLMakie v0.8.11
  [ee78f7c6] Makie v0.19.11
  [3cb90ccd] RasterDataSources v0.5.7
  [a3a2b9e3] Rasters v0.9.0

Scripts

using Rasters
using RasterDataSources
using ArchGDAL
using GLMakie
using Makie.GeometryBasics
using Makie.GeometryBasics: Tesselation, uv_normal_mesh
# using DataInterpolations, Printf

m = Makie.GeometryBasics.uv_normal_mesh(
  Makie.GeometryBasics.Tesselation(
    Makie.GeometryBasics.Sphere(
      Point3f(0), 1.0f0
    ),
    200
  )
);

p = decompose(Point3f0, m)
uv = decompose_uv(m)
norms = decompose_normals(m);
cmap = [:darkblue, :deepskyblue2, :deepskyblue, :gold, :tomato3, :red, :darkred]


ENV["RASTERDATASOURCES_PATH"] = "data"
worldclim_stacks = [RasterStack(WorldClim{Climate}, month=i) for i in 1:12]
ra = worldclim_stacks[10].tmax

fig = Figure(resolution=(1600, 1600), backgroundcolor=:snow2) # 地图
ax, plt_obj = mesh(fig[1, 1],
  uv_normal_mesh(Tesselation(Makie.GeometryBasics.Sphere(Point3f(0), 0.99), 128));
  color=(:white, 0.1), transparency=true,
  axis=(type=LScene, show_axis=false)
) 

temperature_plot = mesh!(fig[1, 1],
  m;
  color=Makie.convert_arguments(Makie.ContinuousSurface(), ra)[3]',
  # colorrange=(-0.1, 0.1),
  colormap=:tableau_temperature, #cmap,
  shading=true,
  transparency=false
)

fig

Bugs

ERROR: MethodError: no method matching GLMakie.GLAbstraction.GLBuffer(::LinearAlgebra.Adjoint{Float32, Matrix{Float32}})

Closest candidates are:
  (::Type{GPUArrayType})(::Observable; kw...) where GPUArrayType<:GLMakie.GLAbstraction.GPUArray
   @ GLMakie C:\Users\kong\.julia\packages\GLMakie\wkomB\src\GLAbstraction\AbstractGPUArray.jl:193
  GLMakie.GLAbstraction.GLBuffer(::Type{T}, ::Int64; buffertype, usage) where T<:Union{Real, ColorTypes.Colorant, StaticArraysCore.StaticArray{Tuple{N}, T, 1} where {N, T}}
   @ GLMakie C:\Users\kong\.julia\packages\GLMakie\wkomB\src\GLAbstraction\GLBuffer.jl:96     
  GLMakie.GLAbstraction.GLBuffer(::GLMakie.GLAbstraction.GLBuffer)
   @ GLMakie C:\Users\kong\.julia\packages\GLMakie\wkomB\src\GLAbstraction\GLBuffer.jl:79     
  ...

Stacktrace:
  [1] GLMakie.GLAbstraction.GLBuffer(data::Observable{LinearAlgebra.Adjoint{Float32, Matrix{Float32}}}; kw::Base.Pairs{Symbol, Union{}, Tuple{}, NamedTuple{(), Tuple{}}})
    @ GLMakie.GLAbstraction C:\Users\kong\.julia\packages\GLMakie\wkomB\src\GLAbstraction\AbstractGPUArray.jl:194
  [2] GLMakie.GLAbstraction.GLBuffer(data::Observable{LinearAlgebra.Adjoint{Float32, Matrix{Float32}}})
    @ GLMakie.GLAbstraction C:\Users\kong\.julia\packages\GLMakie\wkomB\src\GLAbstraction\AbstractGPUArray.jl:193
  [3] gl_convert(::Type{GLMakie.GLAbstraction.GLBuffer}, a::Observable{LinearAlgebra.Adjoint{Float32, Matrix{Float32}}}; kw_args::Base.Pairs{Symbol, Union{}, Tuple{}, NamedTuple{(), Tuple{}}})
    @ GLMakie.GLAbstraction C:\Users\kong\.julia\packages\GLMakie\wkomB\src\GLAbstraction\GLUniforms.jl:261
  [4] gl_convert(::Type{GLMakie.GLAbstraction.GLBuffer}, a::Observable{LinearAlgebra.Adjoint{Float32, Matrix{Float32}}})
    @ GLMakie.GLAbstraction C:\Users\kong\.julia\packages\GLMakie\wkomB\src\GLAbstraction\GLUniforms.jl:258
  [5] GLMakie.GLAbstraction.RenderObject(data::Dict{Symbol, Any}, program::GLMakie.GLVisualizeShader, pre::GLMakie.GLAbstraction.StandardPrerender, post::GLFW.Window, context::GLFW.Window)
    @ GLMakie.GLAbstraction C:\Users\kong\.julia\packages\GLMakie\wkomB\src\GLAbstraction\GLTypes.jl:431
  [6] GLMakie.GLAbstraction.RenderObject(data::Dict{Symbol, Any}, program::GLMakie.GLVisualizeShader, pre::GLMakie.GLAbstraction.StandardPrerender, post::GLFW.Window)
    @ GLMakie.GLAbstraction C:\Users\kong\.julia\packages\GLMakie\wkomB\src\GLAbstraction\GLTypes.jl:404
  [7] assemble_shader(data::Dict{Symbol, Any})
    @ GLMakie C:\Users\kong\.julia\packages\GLMakie\wkomB\src\glshaders\visualize_interface.jl:108
  [8] draw_mesh(screen::GLMakie.Screen{GLFW.Window}, data::Dict{Symbol, Any})
    @ GLMakie C:\Users\kong\.julia\packages\GLMakie\wkomB\src\glshaders\mesh.jl:64
  [9] mesh_inner(screen::GLMakie.Screen{GLFW.Window}, mesh::Observable{GeometryBasics.Mesh{3, Float32, TriangleP{3, Float32, PointMeta{3, Float32, Point{3, Float32}, (:uv, :normals), Tuple{Vec{2, Float32}, Vec{3, Float32}}}}, FaceView{TriangleP{3, Float32, PointMeta{3, Float32, Point{3, Float32}, (:uv, :normals), Tuple{Vec{2, Float32}, Vec{3, Float32}}}}, PointMeta{3, Float32, Point{3, Float32}, (:uv, :normals), Tuple{Vec{2, Float32}, Vec{3, Float32}}}, NgonFace{3, OffsetInteger{-1, UInt32}}, StructArrays.StructVector{PointMeta{3, Float32, Point{3, Float32}, (:uv, :normals), Tuple{Vec{2, Float32}, Vec{3, Float32}}}, NamedTuple{(:position, :uv, :normals), Tuple{Vector{Point{3, Float32}}, Vector{Vec{2, Float32}}, Vector{Vec{3, Float32}}}}, Int64}, Vector{NgonFace{3, OffsetInteger{-1, UInt32}}}}}}, transfunc::Observable{Any}, gl_attributes::Dict{Symbol, Any}, space::Observable{Any})
    @ GLMakie C:\Users\kong\.julia\packages\GLMakie\wkomB\src\drawing_primitives.jl:534       
 [10] (::GLMakie.var"#255#256"{GLMakie.Screen{GLFW.Window}, MakieCore.Mesh{Tuple{GeometryBasics.Mesh{3, Float32, TriangleP{3, Float32, PointMeta{3, Float32, Point{3, Float32}, (:uv, :normals), Tuple{Vec{2, Float32}, Vec{3, Float32}}}}, FaceView{TriangleP{3, Float32, PointMeta{3, Float32, Point{3, Float32}, (:uv, :normals), Tuple{Vec{2, Float32}, Vec{3, Float32}}}}, PointMeta{3, Float32, Point{3, Float32}, (:uv, :normals), Tuple{Vec{2, Float32}, Vec{3, Float32}}}, NgonFace{3, OffsetInteger{-1, UInt32}}, StructArrays.StructVector{PointMeta{3, Float32, Point{3, Float32}, (:uv, :normals), Tuple{Vec{2, Float32}, Vec{3, Float32}}}, NamedTuple{(:position, :uv, :normals), Tuple{Vector{Point{3, Float32}}, Vector{Vec{2, Float32}}, Vector{Vec{3, Float32}}}}, Int64}, Vector{NgonFace{3, OffsetInteger{-1, UInt32}}}}}}}})(gl_attributes::Dict{Symbol, Any})
    @ GLMakie C:\Users\kong\.julia\packages\GLMakie\wkomB\src\drawing_primitives.jl:541       
 [11] (::GLMakie.var"#177#180"{GLMakie.var"#255#256"{GLMakie.Screen{GLFW.Window}, MakieCore.Mesh{Tuple{GeometryBasics.Mesh{3, Float32, TriangleP{3, Float32, PointMeta{3, Float32, Point{3, Float32}, (:uv, :normals), Tuple{Vec{2, Float32}, Vec{3, Float32}}}}, FaceView{TriangleP{3, Float32, PointMeta{3, Float32, Point{3, Float32}, (:uv, :normals), Tuple{Vec{2, Float32}, Vec{3, Float32}}}}, PointMeta{3, Float32, Point{3, Float32}, (:uv, :normals), Tuple{Vec{2, Float32}, Vec{3, Float32}}}, NgonFace{3, OffsetInteger{-1, UInt32}}, StructArrays.StructVector{PointMeta{3, Float32, Point{3, Float32}, (:uv, :normals), Tuple{Vec{2, Float32}, Vec{3, Float32}}}, NamedTuple{(:position, :uv, :normals), Tuple{Vector{Point{3, Float32}}, Vector{Vec{2, Float32}}, Vector{Vec{3, Float32}}}}, Int64}, Vector{NgonFace{3, OffsetInteger{-1, UInt32}}}}}}}}, GLMakie.Screen{GLFW.Window}, Scene, MakieCore.Mesh{Tuple{GeometryBasics.Mesh{3, Float32, TriangleP{3, Float32, PointMeta{3, Float32, Point{3, Float32}, (:uv, :normals), Tuple{Vec{2, Float32}, Vec{3, Float32}}}}, FaceView{TriangleP{3, Float32, PointMeta{3, Float32, Point{3, Float32}, (:uv, :normals), Tuple{Vec{2, Float32}, Vec{3, Float32}}}}, PointMeta{3, Float32, Point{3, Float32}, (:uv, :normals), Tuple{Vec{2, Float32}, Vec{3, Float32}}}, NgonFace{3, OffsetInteger{-1, UInt32}}, StructArrays.StructVector{PointMeta{3, Float32, Point{3, Float32}, (:uv, :normals), Tuple{Vec{2, Float32}, Vec{3, Float32}}}, NamedTuple{(:position, :uv, :normals), Tuple{Vector{Point{3, Float32}}, Vector{Vec{2, Float32}}, Vector{Vec{3, Float32}}}}, Int64}, Vector{NgonFace{3, OffsetInteger{-1, UInt32}}}}}}}})()
    @ GLMakie C:\Users\kong\.julia\packages\GLMakie\wkomB\src\drawing_primitives.jl:135       
 [12] get!(default::GLMakie.var"#177#180"{GLMakie.var"#255#256"{GLMakie.Screen{GLFW.Window}, MakieCore.Mesh{Tuple{GeometryBasics.Mesh{3, Float32, TriangleP{3, Float32, PointMeta{3, Float32, Point{3, Float32}, (:uv, :normals), Tuple{Vec{2, Float32}, Vec{3, Float32}}}}, FaceView{TriangleP{3, Float32, PointMeta{3, Float32, Point{3, Float32}, (:uv, :normals), Tuple{Vec{2, Float32}, Vec{3, Float32}}}}, PointMeta{3, Float32, Point{3, Float32}, (:uv, :normals), Tuple{Vec{2, Float32}, Vec{3, Float32}}}, NgonFace{3, OffsetInteger{-1, UInt32}}, StructArrays.StructVector{PointMeta{3, Float32, Point{3, Float32}, (:uv, :normals), Tuple{Vec{2, Float32}, Vec{3, Float32}}}, NamedTuple{(:position, :uv, :normals), Tuple{Vector{Point{3, Float32}}, Vector{Vec{2, Float32}}, Vector{Vec{3, Float32}}}}, Int64}, Vector{NgonFace{3, OffsetInteger{-1, UInt32}}}}}}}}, GLMakie.Screen{GLFW.Window}, Scene, MakieCore.Mesh{Tuple{GeometryBasics.Mesh{3, Float32, TriangleP{3, Float32, PointMeta{3, Float32, Point{3, Float32}, (:uv, :normals), Tuple{Vec{2, Float32}, Vec{3, Float32}}}}, FaceView{TriangleP{3, Float32, PointMeta{3, Float32, Point{3, Float32}, (:uv, :normals), Tuple{Vec{2, Float32}, Vec{3, Float32}}}}, PointMeta{3, Float32, Point{3, Float32}, (:uv, :normals), Tuple{Vec{2, Float32}, Vec{3, Float32}}}, NgonFace{3, OffsetInteger{-1, UInt32}}, StructArrays.StructVector{PointMeta{3, Float32, Point{3, Float32}, (:uv, :normals), Tuple{Vec{2, Float32}, Vec{3, Float32}}}, NamedTuple{(:position, :uv, :normals), Tuple{Vector{Point{3, Float32}}, Vector{Vec{2, Float32}}, Vector{Vec{3, Float32}}}}, Int64}, Vector{NgonFace{3, OffsetInteger{-1, UInt32}}}}}}}}, h::Dict{UInt64, GLMakie.GLAbstraction.RenderObject}, key::UInt64)
    @ Base .\dict.jl:468
 [13] cached_robj!(robj_func::GLMakie.var"#255#256"{GLMakie.Screen{GLFW.Window}, MakieCore.Mesh{Tuple{GeometryBasics.Mesh{3, Float32, TriangleP{3, Float32, PointMeta{3, Float32, Point{3, Float32}, (:uv, :normals), Tuple{Vec{2, Float32}, Vec{3, Float32}}}}, FaceView{TriangleP{3, Float32, PointMeta{3, Float32, Point{3, Float32}, (:uv, :normals), Tuple{Vec{2, Float32}, Vec{3, Float32}}}}, PointMeta{3, Float32, Point{3, Float32}, (:uv, :normals), Tuple{Vec{2, Float32}, Vec{3, Float32}}}, NgonFace{3, OffsetInteger{-1, UInt32}}, StructArrays.StructVector{PointMeta{3, Float32, Point{3, Float32}, (:uv, :normals), Tuple{Vec{2, Float32}, Vec{3, Float32}}}, NamedTuple{(:position, :uv, :normals), Tuple{Vector{Point{3, Float32}}, Vector{Vec{2, Float32}}, Vector{Vec{3, Float32}}}}, Int64}, Vector{NgonFace{3, OffsetInteger{-1, UInt32}}}}}}}}, screen::GLMakie.Screen{GLFW.Window}, scene::Scene, x::MakieCore.Mesh{Tuple{GeometryBasics.Mesh{3, Float32, TriangleP{3, Float32, PointMeta{3, Float32, Point{3, Float32}, (:uv, :normals), Tuple{Vec{2, Float32}, Vec{3, Float32}}}}, FaceView{TriangleP{3, Float32, PointMeta{3, Float32, Point{3, Float32}, (:uv, :normals), Tuple{Vec{2, Float32}, Vec{3, Float32}}}}, PointMeta{3, Float32, Point{3, Float32}, (:uv, :normals), Tuple{Vec{2, Float32}, Vec{3, Float32}}}, NgonFace{3, OffsetInteger{-1, UInt32}}, StructArrays.StructVector{PointMeta{3, Float32, Point{3, Float32}, (:uv, :normals), Tuple{Vec{2, Float32}, Vec{3, Float32}}}, NamedTuple{(:position, :uv, :normals), Tuple{Vector{Point{3, Float32}}, Vector{Vec{2, Float32}}, Vector{Vec{3, Float32}}}}, Int64}, Vector{NgonFace{3, OffsetInteger{-1, UInt32}}}}}}})
    @ GLMakie C:\Users\kong\.julia\packages\GLMakie\wkomB\src\drawing_primitives.jl:103       
 [14] draw_atomic
    @ C:\Users\kong\.julia\packages\GLMakie\wkomB\src\drawing_primitives.jl:538 [inlined]     
 [15] insert!(screen::GLMakie.Screen{GLFW.Window}, scene::Scene, x::MakieCore.Mesh{Tuple{GeometryBasics.Mesh{3, Float32, TriangleP{3, Float32, PointMeta{3, Float32, Point{3, Float32}, (:uv, :normals), Tuple{Vec{2, Float32}, Vec{3, Float32}}}}, FaceView{TriangleP{3, Float32, PointMeta{3, Float32, Point{3, Float32}, (:uv, :normals), Tuple{Vec{2, Float32}, Vec{3, Float32}}}}, PointMeta{3, Float32, Point{3, Float32}, (:uv, :normals), Tuple{Vec{2, Float32}, Vec{3, Float32}}}, NgonFace{3, OffsetInteger{-1, UInt32}}, StructArrays.StructVector{PointMeta{3, Float32, Point{3, Float32}, (:uv, :normals), Tuple{Vec{2, Float32}, Vec{3, Float32}}}, NamedTuple{(:position, :uv, :normals), Tuple{Vector{Point{3, Float32}}, Vector{Vec{2, Float32}}, Vector{Vec{3, Float32}}}}, Int64}, Vector{NgonFace{3, OffsetInteger{-1, UInt32}}}}}}})
    @ GLMakie C:\Users\kong\.julia\packages\GLMakie\wkomB\src\drawing_primitives.jl:151       
 [16] insertplots!(screen::GLMakie.Screen{GLFW.Window}, scene::Scene)
    @ GLMakie C:\Users\kong\.julia\packages\GLMakie\wkomB\src\screen.jl:447
 [17] insertplots!(screen::GLMakie.Screen{GLFW.Window}, scene::Scene) (repeats 2 times)       
    @ GLMakie C:\Users\kong\.julia\packages\GLMakie\wkomB\src\screen.jl:450
 [18] display_scene!(screen::GLMakie.Screen{GLFW.Window}, scene::Scene)
@lazarusA
Copy link
Collaborator

it works on the latest upload: https://beautiful.makie.org/examples/geo/rasters

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