Skip to content

Commit ee6918c

Browse files
special case of NaN
1 parent 6875a81 commit ee6918c

File tree

3 files changed

+13
-6
lines changed

3 files changed

+13
-6
lines changed

src/variable.jl

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -150,9 +150,12 @@ function _defVar(ds::AbstractDataset,name::SymbolOrString,data,nctype,vardimname
150150
end
151151
end
152152

153-
# make sure a fill value is set
153+
maskingvalue_nan = maskingvalue(ds) isa Number && isnan(maskingvalue(ds))
154+
155+
# make sure a fill value is set if we deduce from the type of data
156+
# that it is needed
154157
if (Tmaskingvalue <: T) && !haskey(attrib,"_FillValue") &&
155-
!haskey(kwargs,:fillvalue)
158+
!haskey(kwargs,:fillvalue) && !maskingvalue_nan
156159
push!(attrib,"_FillValue" => fillvalue(nctype))
157160
end
158161

test/memory_dataset.jl

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -133,10 +133,6 @@ function CDM.dim(md::MemoryDataset,name::SymbolOrString)
133133
end
134134

135135
CDM.varnames(ds::MemoryDataset) = collect(keys(ds.variables))
136-
137-
CDM.variable(ds::MemoryDataset,variablename::SymbolOrString) = ds.variables[String(variablename)]
138-
139-
140136
CDM.attribnames(md::Union{MemoryDataset,MemoryVariable}) = keys(md._attrib)
141137
CDM.attrib(md::Union{MemoryDataset,MemoryVariable},name::SymbolOrString) = md._attrib[String(name)]
142138

test/test_scaling.jl

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -261,3 +261,11 @@ end
261261

262262
@test nonuniontype(Missing,Union{Float64,Missing}) == Float64
263263
@test nonuniontype(Missing,Union{Missing,Float64}) == Float64
264+
265+
266+
267+
fname = tempname()
268+
data = rand(4,5)
269+
ds = TDS(fname,"c", maskingvalue = NaN)
270+
ncv = defVar(ds,"data",data,("lon","lat"))
271+
@test !haskey(ncv.attrib,"_FillValue")

0 commit comments

Comments
 (0)