YAXArrays.jl
YAXArrays.jl copied to clipboard
Trying to save a Float16 eltype YAXArray to netcdf should give better error message
When I try to save a YAXArray with eltype Float16 I get the error below: I am not sure whether this is a problem which should be better solved in NetCDF.jl or in YAXArray.
julia> savecube(clustermaskedyax, outpath, overwrite=true)
ERROR: ArgumentError: array must be non-empty
Stacktrace:
[1] popfirst!
@ ./array.jl:1463 [inlined]
[2] jl2nc(t::DataType)
@ NetCDF ~/.julia/packages/NetCDF/7hOe9/src/NetCDF.jl:92
[3] getNCType
@ ~/.julia/packages/NetCDF/7hOe9/src/NetCDF.jl:102 [inlined]
[4] NcVar(name::String, dimin::Vector{NcDim}; atts::Dict{String, Any}, t::DataType, compress::Int64, chunksize::Tuple{Int64, Int64})
@ NetCDF ~/.julia/packages/NetCDF/7hOe9/src/NetCDF.jl:257
[5] nccreate(::String, ::String, ::String, ::Vararg{Any}; atts::Dict{String, Any}, gatts::Dict{Any, Any}, compress::Int64, t::DataType, mode::UInt16, chunksize::Tuple{Int64, Int64})
@ NetCDF ~/.julia/packages/NetCDF/7hOe9/src/NetCDF.jl:1211
[6] nccreate
@ ~/.julia/packages/NetCDF/7hOe9/src/NetCDF.jl:1195 [inlined]
[7] #add_var#128
@ ~/RQADeforestation/dev/YAXArrayBase/src/datasets/netcdf.jl:63 [inlined]
[8] add_var
@ ~/RQADeforestation/dev/YAXArrayBase/src/datasets/netcdf.jl:60 [inlined]
[9] create_dataset(T::Type, path::String, gatts::Dict{String, Any}, dimnames::Vector{String}, dimvals::Vector{DimensionalData.Dimensions.LookupArrays.Sampled{Float64, StepRangeLen{Float64, Base.TwicePrecision{Float64}, Base.TwicePrecision{Float64}, Int64}, O, DimensionalData.Dimensions.LookupArrays.Regular{Float64}, DimensionalData.Dimensions.LookupArrays.Points, DimensionalData.Dimensions.LookupArrays.NoMetadata} where O}, dimattrs::Vector{Dict{String, Any}}, vartypes::Vector{DataType}, varnames::Vector{String}, vardims::Vector{Tuple{String, String}}, varattrs::Vector{Dict{String, Any}}, varchunks::Vector{Tuple{Int64, Int64}}; kwargs::Base.Pairs{Symbol, Union{}, Tuple{}, NamedTuple{(), Tuple{}}})
@ YAXArrayBase ~/RQADeforestation/dev/YAXArrayBase/src/datasets/datasetinterface.jl:62
[10] create_dataset(T::Type, path::String, gatts::Dict{String, Any}, dimnames::Vector{String}, dimvals::Vector{DimensionalData.Dimensions.LookupArrays.Sampled{Float64, StepRangeLen{Float64, Base.TwicePrecision{Float64}, Base.TwicePrecision{Float64}, Int64}, O, DimensionalData.Dimensions.LookupArrays.Regular{Float64}, DimensionalData.Dimensions.LookupArrays.Points, DimensionalData.Dimensions.LookupArrays.NoMetadata} where O}, dimattrs::Vector{Dict{String, Any}}, vartypes::Vector{DataType}, varnames::Vector{String}, vardims::Vector{Tuple{String, String}}, varattrs::Vector{Dict{String, Any}}, varchunks::Vector{Tuple{Int64, Int64}})
@ YAXArrayBase ~/RQADeforestation/dev/YAXArrayBase/src/datasets/datasetinterface.jl:53
[11] savedataset(ds::Dataset; path::String, persist::Nothing, overwrite::Bool, append::Bool, skeleton::Bool, backend::Symbol, driver::Symbol, max_cache::Float64, writefac::Float64, kwargs::Base.Pairs{Symbol, Union{}, Tuple{}, NamedTuple{(), Tuple{}}})
@ YAXArrays.Datasets ~/RQADeforestation/dev/YAXArrays/src/DatasetAPI/Datasets.jl:571
[12] savedataset
@ ~/RQADeforestation/dev/YAXArrays/src/DatasetAPI/Datasets.jl:521 [inlined]
[13] savecube(c::YAXArray{Float16, 2, Matrix{Float16}, Tuple{DimensionalData.Dimensions.X{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}}, DimensionalData.Dimensions.Y{DimensionalData.Dimensions.LookupArrays.Sampled{Float64, StepRangeLen{Float64, Base.TwicePrecision{Float64}, Base.TwicePrecision{Float64}, Int64}, DimensionalData.Dimensions.LookupArrays.ReverseOrdered, DimensionalData.Dimensions.LookupArrays.Regular{Float64}, DimensionalData.Dimensions.LookupArrays.Points, DimensionalData.Dimensions.LookupArrays.NoMetadata}}}}, path::String; layername::String, datasetaxis::String, max_cache::Float64, backend::Symbol, driver::Symbol, chunks::Nothing, overwrite::Bool, append::Bool, skeleton::Bool, writefac::Float64, kwargs::Base.Pairs{Symbol, Union{}, Tuple{}, NamedTuple{(), Tuple{}}})
@ YAXArrays.Datasets ~/RQADeforestation/dev/YAXArrays/src/DatasetAPI/Datasets.jl:637
[14] top-level scope
@ REPL[27]:1