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

Setting different X and Y axes doesn't work in rplot #559

Open
felixcremer opened this issue Nov 13, 2023 · 1 comment
Open

Setting different X and Y axes doesn't work in rplot #559

felixcremer opened this issue Nov 13, 2023 · 1 comment
Labels

Comments

@felixcremer
Copy link
Contributor

Working on the same data as in #558 I have to set the X and Y coordinates explicitely and can't set them via the keyword argument

using Rasters
using Downloads: download # Standard Library to handle downloads to get the data
using NCDatasets
# Now we download the monthly data for the year 1995 to first have a look at the data

url = "https://esgf1.dkrz.de/thredds/fileServer/cosmo-rea/reanalysis/EUR-6km/DWD/ECMWF-ERAINT/REA6/r1i1p1f1/COSMO/v1/mon/atmos/tas/v20230314/tas_EUR-6km_ECMWF-ERAINT_REA6_r1i1p1f1_COSMO_v1_mon_199501-199512.nc"
filename = split(url, "/")[end]
mkpath("data/")
path = download(url, "data/$filename")
# We can now open the data as a Dataset.
# A Dataset is a collection of multiple data cubes which can have different dimensions.

r = Raster(path, key ="tas")
jjulia> Rasters.rplot(r, X=:rlat, Y=:rlon)
ERROR: MethodError: no method matching rplot(::GridPosition, ::Raster{Union{Missing, Float32}, 2, Tuple{Dim{:rlon, DimensionalData.Dimensions.LookupArrays.Sampled{Float64, StepRangeLen{Float64, Base.TwicePrecision{Float64}, Base.TwicePrecision{Float64}, Int64}, DimensionalData.Dimensions.LookupArrays.ForwardOrdered, DimensionalData.Dimensions.LookupArrays.Regular{Float64}, DimensionalData.Dimensions.LookupArrays.Points, DimensionalData.Dimensions.LookupArrays.NoMetadata}}, Dim{:rlat, DimensionalData.Dimensions.LookupArrays.Sampled{Float64, StepRangeLen{Float64, Base.TwicePrecision{Float64}, Base.TwicePrecision{Float64}, Int64}, DimensionalData.Dimensions.LookupArrays.ForwardOrdered, DimensionalData.Dimensions.LookupArrays.Regular{Float64}, DimensionalData.Dimensions.LookupArrays.Points, DimensionalData.Dimensions.LookupArrays.NoMetadata}}}, Tuple{Ti{DimensionalData.Dimensions.LookupArrays.Sampled{DateTime, Vector{DateTime}, DimensionalData.Dimensions.LookupArrays.ForwardOrdered, DimensionalData.Dimensions.LookupArrays.Irregular{Tuple{Nothing, Nothing}}, DimensionalData.Dimensions.LookupArrays.Points, DimensionalData.Dimensions.LookupArrays.NoMetadata}}}, Base.ReshapedArray{Union{Missing, Float32}, 2, Array{Union{Missing, Float32}, 3}, Tuple{}}, DimensionalData.NoName, Dict{String, Any}, Missing}; colormap::Nothing, colorrange::MakieCore.Automatic, X::Symbol, Y::Symbol)

Closest candidates are:
  rplot(::GridPosition, ::Union{Observable{<:RasterStack}, RasterStack}; ncols, nrows, colormap, colorrange, link_colorrange, link_axes, axis, kwargs...)
   @ RastersMakieExt ~/.julia/dev/Rasters/ext/RastersMakieExt/plotrecipes.jl:153
  rplot(::GridPosition, ::Union{Observable{<:AbstractRaster{T, 3}}, AbstractRaster{T, 3}}; ncols, nrows, kwargs...) where T
   @ RastersMakieExt ~/.julia/dev/Rasters/ext/RastersMakieExt/plotrecipes.jl:125
  rplot(::GridPosition, ::Union{Observable{<:AbstractRaster{T, 2, <:Tuple{D1, D2}}}, AbstractRaster{T, 2, <:Tuple{D1, D2}}}; plottype, axistype, X, Y, draw_colorbar, colorbar_position, colorbar_padding, title, xlabel, ylabel, colorbarlabel, nan_color, colormap, colorrange, kw_attributes...) where {T, D1<:Union{DimensionalData.Dimensions.XDim, DimensionalData.Dimensions.YDim, DimensionalData.Dimensions.ZDim}, D2<:Union{DimensionalData.Dimensions.XDim, DimensionalData.Dimensions.YDim, DimensionalData.Dimensions.ZDim}}
   @ RastersMakieExt ~/.julia/dev/Rasters/ext/RastersMakieExt/plotrecipes.jl:38

Stacktrace:
 [1] rplot(gp::GridPosition, raster::Raster{Union{Missing, Float32}, 3, Tuple{Dim{:rlon, DimensionalData.Dimensions.LookupArrays.Sampled{Float64, StepRangeLen{Float64, Base.TwicePrecision{Float64}, Base.TwicePrecision{Float64}, Int64}, DimensionalData.Dimensions.LookupArrays.ForwardOrdered, DimensionalData.Dimensions.LookupArrays.Regular{Float64}, DimensionalData.Dimensions.LookupArrays.Points, DimensionalData.Dimensions.LookupArrays.NoMetadata}}, Dim{:rlat, DimensionalData.Dimensions.LookupArrays.Sampled{Float64, StepRangeLen{Float64, Base.TwicePrecision{Float64}, Base.TwicePrecision{Float64}, Int64}, DimensionalData.Dimensions.LookupArrays.ForwardOrdered, DimensionalData.Dimensions.LookupArrays.Regular{Float64}, DimensionalData.Dimensions.LookupArrays.Points, DimensionalData.Dimensions.LookupArrays.NoMetadata}}, Ti{DimensionalData.Dimensions.LookupArrays.Sampled{DateTime, Vector{DateTime}, DimensionalData.Dimensions.LookupArrays.ForwardOrdered, DimensionalData.Dimensions.LookupArrays.Irregular{Tuple{Nothing, Nothing}}, DimensionalData.Dimensions.LookupArrays.Points, DimensionalData.Dimensions.LookupArrays.NoMetadata}}}, Tuple{}, DiskArrayTools.CFDiskArray{Union{Missing, Float32}, 3, Float32, YAXArrayBase.NetCDFVariable{Float32, 3}, Float32}, DimensionalData.NoName, Dict{String, Any}, Missing}; ncols::MakieCore.Automatic, nrows::MakieCore.Automatic, kwargs::Base.Pairs{Symbol, Any, NTuple{4, Symbol}, NamedTuple{(:colormap, :colorrange, :X, :Y), Tuple{Nothing, MakieCore.Automatic, Symbol, Symbol}}})
   @ RastersMakieExt ~/.julia/dev/Rasters/ext/RastersMakieExt/plotrecipes.jl:141
 [2] rplot
   @ ~/.julia/dev/Rasters/ext/RastersMakieExt/plotrecipes.jl:125 [inlined]
 [3] #rplot#11
   @ ~/.julia/dev/Rasters/ext/RastersMakieExt/plotrecipes.jl:222 [inlined]
 [4] top-level scope
   @ REPL[61]:1

Setting the dimensions to X and Y explicitly before hand works:

julia> rxy = set(r, :rlat=> Y, :rlon=> X)
848×824×12 Raster{Union{Missing, Float32},3} with dimensions: 
  X Sampled{Float64} -28.4029998779297:0.0550011811599821:18.18300056457514 ForwardOrdered Regular Points,
  Y Sampled{Float64} -23.4029998779297:0.0550012159753107:21.863000869751005 ForwardOrdered Regular Points,
  Ti Sampled{DateTime} DateTime[1995-01-16T12:00:00, , 1995-12-16T12:00:00] ForwardOrdered Irregular Points
extent: Extent(X = (-28.4029998779297, 18.18300056457514), Y = (-23.4029998779297, 21.863000869751005), Ti = (DateTime("1995-01-16T12:00:00"), DateTime("1995-12-16T12:00:00")))
missingval: missing


julia> Rasters.rplot(rxy)
@rafaqz
Copy link
Owner

rafaqz commented Nov 13, 2023

Yeah, it doesnt work lol. Need to hook up the keyword like in DD

@rafaqz rafaqz added the plotting label Feb 1, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

2 participants