|
1 | 1 | module SentinelDataSource |
2 | | -using DimensionalData: DimTree, DimArray |
| 2 | +using DimensionalData: DimTree, DimArray, DimensionalData |
3 | 3 | using Zarr: zopen |
4 | 4 | using ZarrDatasets: ZarrDataset |
5 | 5 | using CommonDataModel: CommonDataModel as CDM |
6 | 6 | using Rasters: Rasters |
7 | | - |
| 7 | +using TimerOutputs |
8 | 8 | export open_tree |
9 | 9 |
|
10 | 10 | open_tree(path::AbstractString) = open_tree(ZarrDataset(path)) |
11 | 11 |
|
12 | 12 | function open_tree(dataset::ZarrDataset) |
13 | | - @time "stem" stem = DimTree() |
14 | | - @time "groups" groupnames = CDM.groupnames(dataset) |
15 | | - @time "vars" varnames = CDM.varnames(dataset) |
16 | | - @time "dims" alldimnames = nesteddimnames(dataset) |
17 | | - @time "forvar" for v in setdiff(varnames, alldimnames) |
18 | | - @time "var" var = CDM.variable(dataset, v) |
19 | | - @time "vardims" vardims = Rasters._dims(var) |
20 | | - @time "meta" metadata_out = Rasters._metadata(var) |
21 | | - @time "missing" missingval_out = Rasters._read_missingval_pair(var, metadata_out, Rasters.nokw) |
22 | | - @time "mod" mod = Rasters._mod(eltype(var), metadata_out, missingval_out;scaled=true, coerce=true) |
23 | | - @time "vardata" vardata = Rasters._maybe_modify(var, mod) |
24 | | - @time "set" setindex!(stem, DimArray(vardata, vardims),Symbol(v)) |
| 13 | + @timeit_debug "stem" stem = DimTree() |
| 14 | + @timeit_debug "groups" groupnames = CDM.groupnames(dataset) |
| 15 | + @timeit_debug "vars" varnames = CDM.varnames(dataset) |
| 16 | + @timeit_debug "dims" alldimnames = nesteddimnames(dataset) |
| 17 | + diffnames = setdiff(varnames, alldimnames) |
| 18 | + for v in diffnames |
| 19 | + @timeit_debug "var $v" begin |
| 20 | + var = CDM.variable(dataset, v) |
| 21 | + vardims = Rasters._dims(var) |
| 22 | + metadata_out = Rasters._metadata(var) |
| 23 | + missingval_out = Rasters._read_missingval_pair(var, metadata_out, Rasters.nokw) |
| 24 | + mod = Rasters._mod(eltype(var), metadata_out, missingval_out;scaled=true, coerce=true) |
| 25 | + #= |
| 26 | + Rasters.FileArray{ZarrDataset}(var, filename; |
| 27 | + name=v, Rasters.nokw, mod, write=false |
| 28 | + ) |
| 29 | + =# |
| 30 | + vardata = Rasters._maybe_modify(var, mod) |
| 31 | + setindex!(stem, DimArray(vardata, vardims),Symbol(v)) |
| 32 | + end |
25 | 33 | end |
26 | | - @time "forg" for g in groupnames |
27 | | - setindex!(stem, open_tree(CDM.group(dataset, g)),Symbol(g)) |
| 34 | + for g in groupnames |
| 35 | + @timeit_debug "forg $g" setindex!(stem, open_tree(CDM.group(dataset, g)),Symbol(g)) |
28 | 36 | end |
29 | 37 | stem |
30 | 38 | end |
|
0 commit comments