diff --git a/src/DiskArrayTools.jl b/src/DiskArrayTools.jl index 3eeec19..ff812d2 100644 --- a/src/DiskArrayTools.jl +++ b/src/DiskArrayTools.jl @@ -252,7 +252,7 @@ function CFDiskArray(a::AbstractArray{T}, attr::Dict) where T S,mv = if mv === nothing T_pure,mv else - Union{T_pure,Missing},convert(T_pure,mv) + Union{T_pure,Missing},mv end CFDiskArray{S,ndims(a),typeof(mv),typeof(a),typeof(offs)}(a, mv, offs, sc) end diff --git a/test/cfdiskarray.jl b/test/cfdiskarray.jl index 2f013a4..d8870d3 100644 --- a/test/cfdiskarray.jl +++ b/test/cfdiskarray.jl @@ -70,6 +70,12 @@ b = CFDiskArray([1.0f0, 2.0f0], "scale_factor" => 1.0)) @test eltype(b) == Float32 +b = CFDiskArray([10, -9999], + Dict("scale_factor" => Float16(0.1), + "missing_value" => -9999)) +@test eltype(b) == Union{Missing, Float16} +@test ismissing(b[2]) + # CF conventions prescribe a "_FillValue field" b = CFDiskArray([1.0f0, 2.0f0], Dict("_FillValue" => NaN32))