Skip to content

Commit 174314a

Browse files
authored
fix zonal for missing values in output (#442)
* fix zonal for missing values * fix test
1 parent 0ed346b commit 174314a

File tree

2 files changed

+5
-2
lines changed

2 files changed

+5
-2
lines changed

src/methods/zonal.jl

+1-1
Original file line numberDiff line numberDiff line change
@@ -127,7 +127,7 @@ end
127127

128128
function _alloc_zonal(f, x, geom, n; kw...)
129129
z1 = _zonal(f, x, geom; kw...)
130-
zs = Vector{typeof(z1)}(undef, n)
130+
zs = Vector{Union{Missing,typeof(z1)}}(undef, n)
131131
zs[1] = z1
132132
return zs
133133
end

test/methods.jl

+4-1
Original file line numberDiff line numberDiff line change
@@ -144,10 +144,13 @@ end
144144

145145
@testset "zonal" begin
146146
a = Raster((1:26) * (1:31)', (X(-20:5), Y(0:30)))
147+
pointvec_empty = [(-100.0, 0.0), (-100.0, 0.0), (-100.0, 0.0), (-100.0, 0.0), (-100.0, 0.0)]
148+
polygon_empty = ArchGDAL.createpolygon(pointvec_empty)
147149
zonal(sum, a; of=polygon) ==
148150
zonal(sum, a; of=[polygon, polygon])[1] ==
151+
zonal(sum, a; of=[polygon, polygon_empty])[1] ==
149152
zonal(sum, a; of=(geometry=polygon, x=:a, y=:b)) ==
150-
zonal(sum, a; of=[(geometry=polygon, x=:a, y=:b)])[1]
153+
zonal(sum, a; of=[(geometry=polygon, x=:a, y=:b)])[1] ==
151154
zonal(sum, a; of=[(geometry=polygon, x=:a, y=:b)])[1] ==
152155
sum(skipmissing(mask(a; with=polygon)))
153156
@test zonal(sum, a; of=a) ==

0 commit comments

Comments
 (0)