@@ -21,9 +21,10 @@ us to be able to index into it like we would an array.
21
21
Constructing a RasterDataset will error if the raster bands do not have all the
22
22
same size and a common element data type.
23
23
"""
24
- struct RasterDataset{T,DS<: AbstractDataset } <: AbstractDiskArray{T,3}
24
+ struct RasterDataset{T,DS<: AbstractDataset ,C } <: AbstractDiskArray{T,3}
25
25
ds:: DS
26
26
size:: Tuple{Int,Int,Int}
27
+ chunks:: C
27
28
end
28
29
29
30
function RasterDataset (
@@ -33,7 +34,12 @@ function RasterDataset(
33
34
throw (ArgumentError (" The Dataset does not contain any raster bands" ))
34
35
end
35
36
s = _common_size (ds)
36
- return RasterDataset {pixeltype(ds),typeof(ds)} (ds, s)
37
+ subchunks = DiskArrays. eachchunk (getband (ds, 1 ))
38
+ chunks = DiskArrays. GridChunks (
39
+ subchunks. chunks... ,
40
+ DiskArrays. RegularChunks (1 , 0 , s[3 ]),
41
+ )
42
+ return RasterDataset {pixeltype(ds),typeof(ds),typeof(chunks)} (ds, s, chunks)
37
43
end
38
44
39
45
# Forward a few functions
@@ -138,14 +144,8 @@ indexing.
138
144
readraster (s:: String ; kwargs... ):: RasterDataset =
139
145
RasterDataset (read (s; kwargs... ))
140
146
141
- function DiskArrays. eachchunk (ds:: RasterDataset ):: DiskArrays.GridChunks
142
- subchunks = DiskArrays. eachchunk (getband (ds, 1 ))
143
- return DiskArrays. GridChunks (
144
- subchunks. chunks... ,
145
- DiskArrays. RegularChunks (1 , 0 , size (ds, 3 )),
146
- )
147
- end
148
-
147
+ DiskArrays. eachchunk (ds:: RasterDataset ):: DiskArrays.GridChunks =
148
+ ds. chunks
149
149
DiskArrays. haschunks (:: RasterDataset ):: DiskArrays.Chunked = DiskArrays. Chunked ()
150
150
DiskArrays. haschunks (:: AbstractRasterBand ):: DiskArrays.Chunked =
151
151
DiskArrays. Chunked ()
0 commit comments