Skip to content

Commit ac66971

Browse files
committed
allow plotting an array computed on top of a surface
1 parent af53201 commit ac66971

File tree

1 file changed

+66
-1
lines changed

1 file changed

+66
-1
lines changed

ext/GLMakie_Visualisation.jl

Lines changed: 66 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -279,30 +279,79 @@ heatmap for a 2D GeoData object (surface)
279279
"""
280280
function heatmap(x::GeoData, args...; field=:Topography, kwargs...)
281281
@assert size(x.depth.val,3)==1
282+
@assert hasfield(typeof(x.fields), field)
282283

283284
heatmap(x.lon.val[:,1], x.lat.val[1,:], ustrip.(x.fields[field][:,:,1]), args...; kwargs...)
284285

285286
end
286287

288+
"""
289+
heatmap(x::GeoData, a::Array{_T,N}, args...; kwargs...)
290+
in-place heatmap for a 2D GeoData object (surface) with an array `a`.
291+
"""
292+
function heatmap(x::GeoData, a::Array{_T,N}, args...; kwargs...) where{_T,N}
293+
@assert size(x.depth.val,3)==1
294+
295+
if N==3
296+
heatmap(x.lon.val[:,1], x.lat.val[1,:], ustrip.(a[:,:,1]), args...; kwargs...)
297+
elseif N==2
298+
heatmap(x.lon.val[:,1], x.lat.val[1,:], ustrip.(a), args...; kwargs...)
299+
end
300+
301+
end
302+
287303
"""
288304
heatmap(x::CartData, args...; field=:Topography, kwargs...)
289305
heatmap for a 2D CartData object (surface)
290306
"""
291307
function heatmap(x::CartData, args...; field=:Topography, kwargs...)
292308
@assert size(x.z.val,3)==1
309+
@assert hasfield(typeof(x.fields), field)
293310

294311
heatmap(x.x.val[:,1], x.y.val[1,:], ustrip.(x.fields[field][:,:,1]), args...; kwargs...)
295312

296313
end
297314

315+
"""
316+
heatmap(x::CartData, a::Array{_T,N}, args...; kwargs...)
317+
in-place heatmap for a 2D CartData object (surface) with an array `a`.
318+
"""
319+
function heatmap(x::CartData, a::Array{_T,N}, args...; kwargs...) where{_T,N}
320+
@assert size(x.z.val,3)==1
321+
322+
if N==3
323+
heatmap(x.x.val[:,1], x.y.val[1,:], ustrip.(a[:,:,1]), args...; kwargs...)
324+
elseif N==2
325+
heatmap(x.x.val[:,1], x.y.val[1,:], ustrip.(a), args...; kwargs...)
326+
end
327+
328+
end
329+
330+
298331
"""
299332
heatmap!(x::GeoData, args...; field=:Topography, kwargs...)
300333
in-place heatmap for a 2D GeoData object (surface),
301334
"""
302335
function heatmap!(x::GeoData, args...; field=:Topography, kwargs...)
303336
@assert size(x.z.val,3)==1
337+
@assert hasfield(typeof(x.fields), field)
304338

305-
heatmap!(x.lon.val[:,1], x.lat.val[1,:], ustrip.(x.fields[field][:,:,1]), args...; kwargs...)
339+
heatmap(x.lon.val[:,1], x.lat.val[1,:], ustrip.(x.fields[field][:,:,1]), args...; kwargs...)
340+
341+
end
342+
343+
"""
344+
heatmap!(x::GeoData, a::Array{_T,N}, args...; kwargs...)
345+
in-place heatmap for a 2D GeoData object (surface) with an array `a`.
346+
"""
347+
function heatmap!(x::GeoData, a::Array{_T,N}, args...; kwargs...) where{_T,N}
348+
@assert size(x.z.val,3)==1
349+
350+
if N==3
351+
heatmap!(x.lon.val[:,1], x.lat.val[1,:], ustrip.(a[:,:,1]), args...; kwargs...)
352+
elseif N==2
353+
heatmap!(x.lon.val[:,1], x.lat.val[1,:], ustrip.(a), args...; kwargs...)
354+
end
306355

307356
end
308357

@@ -312,8 +361,24 @@ in-place heatmap for a 2D CartData object (surface)
312361
"""
313362
function heatmap!(x::CartData, args...; field=:Topography, kwargs...)
314363
@assert size(x.z.val,3)==1
364+
@assert hasfield(typeof(x.fields), field)
365+
315366
heatmap!(x.x.val[:,1], x.y.val[1,:], ustrip.(x.fields[field][:,:,1]), args...; kwargs...)
316367
end
317368

369+
"""
370+
heatmap!(x::CartData, a::Array{_T,N}, args...; kwargs...)
371+
in-place heatmap for a 2D CartData object (surface) with an array `a`.
372+
"""
373+
function heatmap!(x::CartData, a::Array{_T,N}, args...; kwargs...) where{_T,N}
374+
@assert size(x.z.val,3)==1
375+
376+
if N==3
377+
heatmap!(x.x.val[:,1], x.y.val[1,:], ustrip.(a[:,:,1]), args...; kwargs...)
378+
elseif N==2
379+
heatmap!(x.x.val[:,1], x.y.val[1,:], ustrip.(a[:,:]), args...; kwargs...)
380+
end
381+
382+
end
318383

319384
end

0 commit comments

Comments
 (0)