@@ -279,30 +279,79 @@ heatmap for a 2D GeoData object (surface)
279279"""
280280function 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
285286end
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...)
289305heatmap for a 2D CartData object (surface)
290306"""
291307function 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
296313end
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...)
300333in-place heatmap for a 2D GeoData object (surface),
301334"""
302335function 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
307356end
308357
@@ -312,8 +361,24 @@ in-place heatmap for a 2D CartData object (surface)
312361"""
313362function 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... )
316367end
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
319384end
0 commit comments