From e41f52f83d9e60746366a39c4d5dcd25b9ac9ba6 Mon Sep 17 00:00:00 2001 From: "Documenter.jl" Date: Fri, 20 Sep 2024 11:23:41 +0000 Subject: [PATCH] build based on 745a379 --- previews/PR439/404.html | 4 +- previews/PR439/UserGuide/cache.html | 10 ++-- previews/PR439/UserGuide/chunk.html | 10 ++-- previews/PR439/UserGuide/combine.html | 10 ++-- previews/PR439/UserGuide/compute.html | 32 +++++------ previews/PR439/UserGuide/convert.html | 46 ++++++++-------- previews/PR439/UserGuide/create.html | 10 ++-- previews/PR439/UserGuide/faq.html | 36 ++++++------ previews/PR439/UserGuide/group.html | 12 ++-- previews/PR439/UserGuide/read.html | 12 ++-- previews/PR439/UserGuide/select.html | 10 ++-- previews/PR439/UserGuide/types.html | 10 ++-- previews/PR439/UserGuide/write.html | 34 ++++++------ previews/PR439/api.html | 20 +++---- ...dhY2.js => UserGuide_cache.md.CUC71_fe.js} | 2 +- ...js => UserGuide_cache.md.CUC71_fe.lean.js} | 2 +- ...aEEy.js => UserGuide_chunk.md.CX6Cn7I-.js} | 2 +- ...js => UserGuide_chunk.md.CX6Cn7I-.lean.js} | 2 +- ...hA.js => UserGuide_combine.md.CTZVFaD9.js} | 2 +- ... => UserGuide_combine.md.CTZVFaD9.lean.js} | 2 +- ...Lm.js => UserGuide_compute.md.B6Xntqw3.js} | 24 ++++---- ... => UserGuide_compute.md.B6Xntqw3.lean.js} | 24 ++++---- ...Ld.js => UserGuide_convert.md.nKMCMtPl.js} | 38 ++++++------- ... => UserGuide_convert.md.nKMCMtPl.lean.js} | 38 ++++++------- ...gUd.js => UserGuide_create.md.BK-99Q8y.js} | 2 +- ...s => UserGuide_create.md.BK-99Q8y.lean.js} | 2 +- ...6xwZhs.js => UserGuide_faq.md.CV4pRDSp.js} | 28 +++++----- ...n.js => UserGuide_faq.md.CV4pRDSp.lean.js} | 28 +++++----- ...S4D2.js => UserGuide_group.md.DtC221VH.js} | 2 +- ...js => UserGuide_group.md.DtC221VH.lean.js} | 2 +- ...u47O-.js => UserGuide_read.md.DhrhYHR5.js} | 4 +- ....js => UserGuide_read.md.DhrhYHR5.lean.js} | 4 +- ...2T8.js => UserGuide_select.md.C6wPH9uR.js} | 2 +- ...s => UserGuide_select.md.C6wPH9uR.lean.js} | 2 +- ...auaH.js => UserGuide_types.md.CxTnMviM.js} | 2 +- ...js => UserGuide_types.md.CxTnMviM.lean.js} | 2 +- ...Cyo7.js => UserGuide_write.md.CKTq8NKF.js} | 26 ++++----- ...js => UserGuide_write.md.CKTq8NKF.lean.js} | 26 ++++----- ...{api.md.Dly8rYKd.js => api.md.CuxAjYWA.js} | 6 +- ...y8rYKd.lean.js => api.md.CuxAjYWA.lean.js} | 6 +- .../{app.lifmFEhC.js => app.fg2SdyjO.js} | 2 +- .../chunks/@localSearchIndexroot.BKiQu1HE.js | 1 + .../chunks/@localSearchIndexroot.Dr9nyg5O.js | 1 - ...3ZdpMO.js => VPLocalSearchBox.BiFL7nx4.js} | 2 +- ...work.DsPJznl_.js => framework.eQVMtpgY.js} | 10 ++-- .../{theme.BTHK6YKI.js => theme.7rY793H8.js} | 4 +- previews/PR439/assets/cxbndsy.CnxSdCFY.png | Bin 81189 -> 0 bytes ... => development_contribute.md.BseKsFbx.js} | 2 +- ...evelopment_contribute.md.BseKsFbx.lean.js} | 2 +- .../development_contributors.md.CoMZNRUw.js | 1 - ...velopment_contributors.md.CoMZNRUw.lean.js | 1 - .../development_contributors.md.DWwIsxSc.js | 1 + ...velopment_contributors.md.DWwIsxSc.lean.js | 1 + ...cy.B7KFIfDV.jpeg => dytjtkd.B7KFIfDV.jpeg} | Bin previews/PR439/assets/epkiuye.kSio4V24.png | Bin 0 -> 106370 bytes ...sZZBtLM3.js => get_started.md.Dq5Ai7fh.js} | 22 ++++---- ...ean.js => get_started.md.Dq5Ai7fh.lean.js} | 22 ++++---- ...jvon.CBBZcGwj.png => hpxlcxg.CBBZcGwj.png} | Bin ...ex.md.Bv3wVUT0.js => index.md.gTZdB-M9.js} | 2 +- ...VUT0.lean.js => index.md.gTZdB-M9.lean.js} | 2 +- previews/PR439/assets/jdozwjp.BvrJM6At.png | Bin 0 -> 80145 bytes previews/PR439/assets/ocdgszm.BvmI4921.jpeg | Bin 0 -> 40101 bytes previews/PR439/assets/tmxiuji.DubXWmj2.jpeg | Bin 37905 -> 0 bytes ...orials_mean_seasonal_cycle.md.q3id7hWF.js} | 40 +++++++------- ...s_mean_seasonal_cycle.md.q3id7hWF.lean.js} | 40 +++++++------- ... tutorials_other_tutorials.md.CKEvpyL5.js} | 2 +- ...rials_other_tutorials.md.CKEvpyL5.lean.js} | 2 +- ... => tutorials_plottingmaps.md.CWNQRTL8.js} | 2 +- ...utorials_plottingmaps.md.CWNQRTL8.lean.js} | 2 +- previews/PR439/assets/vamhvpz.sL5mDvRX.png | Bin 108115 -> 0 bytes ...zm.xrZxBsPv.jpeg => zdgwzhg.xrZxBsPv.jpeg} | Bin ...ly.96k_BqPR.jpeg => znvbflt.96k_BqPR.jpeg} | Bin previews/PR439/development/contribute.html | 10 ++-- previews/PR439/development/contributors.html | 10 ++-- previews/PR439/get_started.html | 30 +++++----- previews/PR439/hashmap.json | 2 +- previews/PR439/index.html | 10 ++-- .../PR439/tutorials/mean_seasonal_cycle.html | 52 +++++++++--------- previews/PR439/tutorials/other_tutorials.html | 10 ++-- previews/PR439/tutorials/plottingmaps.html | 16 +++--- 80 files changed, 417 insertions(+), 423 deletions(-) rename previews/PR439/assets/{UserGuide_cache.md.DrZNdhY2.js => UserGuide_cache.md.CUC71_fe.js} (96%) rename previews/PR439/assets/{UserGuide_cache.md.DrZNdhY2.lean.js => UserGuide_cache.md.CUC71_fe.lean.js} (96%) rename previews/PR439/assets/{UserGuide_chunk.md.CVYnaEEy.js => UserGuide_chunk.md.CX6Cn7I-.js} (99%) rename previews/PR439/assets/{UserGuide_chunk.md.CVYnaEEy.lean.js => UserGuide_chunk.md.CX6Cn7I-.lean.js} (99%) rename previews/PR439/assets/{UserGuide_combine.md.CaPMEqhA.js => UserGuide_combine.md.CTZVFaD9.js} (98%) rename previews/PR439/assets/{UserGuide_combine.md.CaPMEqhA.lean.js => UserGuide_combine.md.CTZVFaD9.lean.js} (98%) rename previews/PR439/assets/{UserGuide_compute.md.BGU8kcLm.js => UserGuide_compute.md.B6Xntqw3.js} (97%) rename previews/PR439/assets/{UserGuide_compute.md.BGU8kcLm.lean.js => UserGuide_compute.md.B6Xntqw3.lean.js} (97%) rename previews/PR439/assets/{UserGuide_convert.md.CNBOJiLd.js => UserGuide_convert.md.nKMCMtPl.js} (85%) rename previews/PR439/assets/{UserGuide_convert.md.CNBOJiLd.lean.js => UserGuide_convert.md.nKMCMtPl.lean.js} (85%) rename previews/PR439/assets/{UserGuide_create.md.gFPkFgUd.js => UserGuide_create.md.BK-99Q8y.js} (99%) rename previews/PR439/assets/{UserGuide_create.md.gFPkFgUd.lean.js => UserGuide_create.md.BK-99Q8y.lean.js} (99%) rename previews/PR439/assets/{UserGuide_faq.md.BP6xwZhs.js => UserGuide_faq.md.CV4pRDSp.js} (98%) rename previews/PR439/assets/{UserGuide_faq.md.BP6xwZhs.lean.js => UserGuide_faq.md.CV4pRDSp.lean.js} (98%) rename previews/PR439/assets/{UserGuide_group.md.DSkdS4D2.js => UserGuide_group.md.DtC221VH.js} (99%) rename previews/PR439/assets/{UserGuide_group.md.DSkdS4D2.lean.js => UserGuide_group.md.DtC221VH.lean.js} (99%) rename previews/PR439/assets/{UserGuide_read.md.BJ8u47O-.js => UserGuide_read.md.DhrhYHR5.js} (97%) rename previews/PR439/assets/{UserGuide_read.md.BJ8u47O-.lean.js => UserGuide_read.md.DhrhYHR5.lean.js} (97%) rename previews/PR439/assets/{UserGuide_select.md.tLX-52T8.js => UserGuide_select.md.C6wPH9uR.js} (99%) rename previews/PR439/assets/{UserGuide_select.md.tLX-52T8.lean.js => UserGuide_select.md.C6wPH9uR.lean.js} (99%) rename previews/PR439/assets/{UserGuide_types.md.I2GRauaH.js => UserGuide_types.md.CxTnMviM.js} (97%) rename previews/PR439/assets/{UserGuide_types.md.I2GRauaH.lean.js => UserGuide_types.md.CxTnMviM.lean.js} (97%) rename previews/PR439/assets/{UserGuide_write.md.DZ48Cyo7.js => UserGuide_write.md.CKTq8NKF.js} (94%) rename previews/PR439/assets/{UserGuide_write.md.DZ48Cyo7.lean.js => UserGuide_write.md.CKTq8NKF.lean.js} (94%) rename previews/PR439/assets/{api.md.Dly8rYKd.js => api.md.CuxAjYWA.js} (91%) rename previews/PR439/assets/{api.md.Dly8rYKd.lean.js => api.md.CuxAjYWA.lean.js} (91%) rename previews/PR439/assets/{app.lifmFEhC.js => app.fg2SdyjO.js} (90%) create mode 100644 previews/PR439/assets/chunks/@localSearchIndexroot.BKiQu1HE.js delete mode 100644 previews/PR439/assets/chunks/@localSearchIndexroot.Dr9nyg5O.js rename previews/PR439/assets/chunks/{VPLocalSearchBox.Ul3ZdpMO.js => VPLocalSearchBox.BiFL7nx4.js} (99%) rename previews/PR439/assets/chunks/{framework.DsPJznl_.js => framework.eQVMtpgY.js} (57%) rename previews/PR439/assets/chunks/{theme.BTHK6YKI.js => theme.7rY793H8.js} (99%) delete mode 100644 previews/PR439/assets/cxbndsy.CnxSdCFY.png rename previews/PR439/assets/{development_contribute.md.BWwOAw2T.js => development_contribute.md.BseKsFbx.js} (97%) rename previews/PR439/assets/{development_contribute.md.BWwOAw2T.lean.js => development_contribute.md.BseKsFbx.lean.js} (97%) delete mode 100644 previews/PR439/assets/development_contributors.md.CoMZNRUw.js delete mode 100644 previews/PR439/assets/development_contributors.md.CoMZNRUw.lean.js create mode 100644 previews/PR439/assets/development_contributors.md.DWwIsxSc.js create mode 100644 previews/PR439/assets/development_contributors.md.DWwIsxSc.lean.js rename previews/PR439/assets/{hqxthcy.B7KFIfDV.jpeg => dytjtkd.B7KFIfDV.jpeg} (100%) create mode 100644 previews/PR439/assets/epkiuye.kSio4V24.png rename previews/PR439/assets/{get_started.md.sZZBtLM3.js => get_started.md.Dq5Ai7fh.js} (85%) rename previews/PR439/assets/{get_started.md.sZZBtLM3.lean.js => get_started.md.Dq5Ai7fh.lean.js} (85%) rename previews/PR439/assets/{btujvon.CBBZcGwj.png => hpxlcxg.CBBZcGwj.png} (100%) rename previews/PR439/assets/{index.md.Bv3wVUT0.js => index.md.gTZdB-M9.js} (96%) rename previews/PR439/assets/{index.md.Bv3wVUT0.lean.js => index.md.gTZdB-M9.lean.js} (96%) create mode 100644 previews/PR439/assets/jdozwjp.BvrJM6At.png create mode 100644 previews/PR439/assets/ocdgszm.BvmI4921.jpeg delete mode 100644 previews/PR439/assets/tmxiuji.DubXWmj2.jpeg rename previews/PR439/assets/{tutorials_mean_seasonal_cycle.md.ugsuHDM5.js => tutorials_mean_seasonal_cycle.md.q3id7hWF.js} (89%) rename previews/PR439/assets/{tutorials_mean_seasonal_cycle.md.ugsuHDM5.lean.js => tutorials_mean_seasonal_cycle.md.q3id7hWF.lean.js} (89%) rename previews/PR439/assets/{tutorials_other_tutorials.md.CPP_YMH6.js => tutorials_other_tutorials.md.CKEvpyL5.js} (97%) rename previews/PR439/assets/{tutorials_other_tutorials.md.CPP_YMH6.lean.js => tutorials_other_tutorials.md.CKEvpyL5.lean.js} (97%) rename previews/PR439/assets/{tutorials_plottingmaps.md.PPBYZybh.js => tutorials_plottingmaps.md.CWNQRTL8.js} (99%) rename previews/PR439/assets/{tutorials_plottingmaps.md.PPBYZybh.lean.js => tutorials_plottingmaps.md.CWNQRTL8.lean.js} (99%) delete mode 100644 previews/PR439/assets/vamhvpz.sL5mDvRX.png rename previews/PR439/assets/{mlaobzm.xrZxBsPv.jpeg => zdgwzhg.xrZxBsPv.jpeg} (100%) rename previews/PR439/assets/{bgdwfly.96k_BqPR.jpeg => znvbflt.96k_BqPR.jpeg} (100%) diff --git a/previews/PR439/404.html b/previews/PR439/404.html index 7f1c2bce..89bf941e 100644 --- a/previews/PR439/404.html +++ b/previews/PR439/404.html @@ -8,7 +8,7 @@ - + @@ -18,7 +18,7 @@
- + \ No newline at end of file diff --git a/previews/PR439/UserGuide/cache.html b/previews/PR439/UserGuide/cache.html index 06252b98..e0cfc039 100644 --- a/previews/PR439/UserGuide/cache.html +++ b/previews/PR439/UserGuide/cache.html @@ -8,11 +8,11 @@ - + - - - + + + @@ -25,7 +25,7 @@ cachesize = 500 #MB cache(ds,maxsize = cachesize)

The above will wrap every array in the dataset into its own cache, where the 500MB are distributed equally across datasets. Alternatively individual caches can be applied to single YAXArrays

julia
yax = ds.avariable
 cache(yax,maxsize = 1000)
- + \ No newline at end of file diff --git a/previews/PR439/UserGuide/chunk.html b/previews/PR439/UserGuide/chunk.html index 737dd207..97239dce 100644 --- a/previews/PR439/UserGuide/chunk.html +++ b/previews/PR439/UserGuide/chunk.html @@ -8,11 +8,11 @@ - + - - - + + + @@ -118,7 +118,7 @@ Variables: x, y, z

Suggestions on how to improve or add to these examples is welcome.

- + \ No newline at end of file diff --git a/previews/PR439/UserGuide/combine.html b/previews/PR439/UserGuide/combine.html index 0d3eda96..c809d22a 100644 --- a/previews/PR439/UserGuide/combine.html +++ b/previews/PR439/UserGuide/combine.html @@ -8,11 +8,11 @@ - + - - - + + + @@ -48,7 +48,7 @@ ├───────────────────────────────────────────────────── file size ┤ file size: 96.0 bytes └────────────────────────────────────────────────────────────────┘ - + \ No newline at end of file diff --git a/previews/PR439/UserGuide/compute.html b/previews/PR439/UserGuide/compute.html index 79bbcd49..78d327da 100644 --- a/previews/PR439/UserGuide/compute.html +++ b/previews/PR439/UserGuide/compute.html @@ -8,11 +8,11 @@ - + - - - + + + @@ -41,7 +41,7 @@ :origin => "user guide" ├─────────────────────────────────────────────────────────────────── file size ┤ file size: 35.16 KB -└──────────────────────────────────────────────────────────────────────────────┘

Modify elements of a YAXArray

julia
a[1,2,3]
0.3037786082748125
julia
a[1,2,3] = 42
42
julia
a[1,2,3]
42.0

WARNING

Some arrays, e.g. those saved in a cloud object storage are immutable making any modification of the data impossible.

Arithmetics

Add a value to all elements of an array and save it as a new array:

julia
a2 = a .+ 5
╭──────────────────────────────╮
+└──────────────────────────────────────────────────────────────────────────────┘

Modify elements of a YAXArray

julia
a[1,2,3]
0.9463880566583662
julia
a[1,2,3] = 42
42
julia
a[1,2,3]
42.0

WARNING

Some arrays, e.g. those saved in a cloud object storage are immutable making any modification of the data impossible.

Arithmetics

Add a value to all elements of an array and save it as a new array:

julia
a2 = a .+ 5
╭──────────────────────────────╮
 │ 30×10×15 YAXArray{Float64,3} │
 ├──────────────────────────────┴───────────────────────────────────────── dims ┐
   ↓ time Sampled{Date} Date("2022-01-01"):Dates.Day(1):Date("2022-01-30") ForwardOrdered Regular Points,
@@ -128,7 +128,7 @@
   "missing_value" => 1.0f32
 ├─────────────────────────────────────────────────────────────────── file size ┤
   file size: 17.58 KB
-└──────────────────────────────────────────────────────────────────────────────┘

"time axis goes first"

Note that currently the time axis in the output cube goes first.

Check that it is working

julia
julia> gen_cube.data[1, :, :]
15×10 reshape(::Array{Union{Missing, Float32}, 3}, 15, 10) with eltype Union{Missing, Float32}:
+└──────────────────────────────────────────────────────────────────────────────┘

"time axis goes first"

Note that currently the time axis in the output cube goes first.

Check that it is working

julia
julia> gen_cube.data[1, :, :]
15×10 Matrix{Union{Missing, Float32}}:
   3.0   4.0   5.0   6.0   7.0   8.0   9.0  10.0  11.0  12.0
   4.0   5.0   6.0   7.0   8.0   9.0  10.0  11.0  12.0  13.0
   5.0   6.0   7.0   8.0   9.0  10.0  11.0  12.0  13.0  14.0
@@ -159,7 +159,7 @@
   "missing_value" => 1.0f32
 ├─────────────────────────────────────────────────────────────────── file size ┤
   file size: 17.58 KB
-└──────────────────────────────────────────────────────────────────────────────┘

INFO

Note that now the broadcasted dimension is lon.

we can see this by slicing on the last dimension now

julia
gen_cube.data[:, :, 1]
15×10 reshape(::Array{Union{Missing, Float32}, 3}, 15, 10) with eltype Union{Missing, Float32}:
+└──────────────────────────────────────────────────────────────────────────────┘

INFO

Note that now the broadcasted dimension is lon.

we can see this by slicing on the last dimension now

julia
gen_cube.data[:, :, 1]
15×10 Matrix{Union{Missing, Float32}}:
   3.0   4.0   5.0   6.0   7.0   8.0   9.0  10.0  11.0  12.0
   4.0   5.0   6.0   7.0   8.0   9.0  10.0  11.0  12.0  13.0
   5.0   6.0   7.0   8.0   9.0  10.0  11.0  12.0  13.0  14.0
@@ -224,14 +224,14 @@
 ├──────────────────────────────────────────────────────────────────── metadata ┤
   Dict{String, Any}()
 └──────────────────────────────────────────────────────────────────────────────┘
-  ↓ →  1.0       1.28571    1.57143   …  4.42857    4.71429    5.0
-  1.0  0.6983    0.594324   0.981179     0.795445   0.792869   0.801021
-  2.0  0.615387  0.372925   0.952215     0.986739   0.201319   0.258298
-  3.0  0.603151  0.790482   0.356694     0.0166238  0.431302   0.197075
-  ⋮                                   ⋱                        ⋮
-  8.0  0.129298  0.452836   0.900563     0.43666    0.675925   0.116241
-  9.0  0.816965  0.995635   0.613754     0.345546   0.0422229  0.686475
- 10.0  0.863044  0.0939467  0.398799  …  0.684548   0.392236   0.193988

Now we calculate the list of corresponding points for each region. This will be re-used for each point in time during the final mapCube. In addition, this avoids the allocation of unnecessary memory.

julia
regions = ["A", "B", "C", "D"]
+  ↓ →  1.0        1.28571   1.57143   …  4.42857   4.71429   5.0
+  1.0  0.823992   0.893922  0.115728     0.342124  0.247962  0.307243
+  2.0  0.433645   0.111576  0.326265     0.389221  0.754378  0.76239
+  3.0  0.0940125  0.332484  0.365406     0.460686  0.707765  0.367281
+  ⋮                                   ⋱                      ⋮
+  8.0  0.576218   0.710028  0.606961     0.799896  0.545633  0.405895
+  9.0  0.948543   0.874754  0.564172     0.841682  0.13829   0.487635
+ 10.0  0.156829   0.845191  0.238664  …  0.521312  0.710866  0.704697

Now we calculate the list of corresponding points for each region. This will be re-used for each point in time during the final mapCube. In addition, this avoids the allocation of unnecessary memory.

julia
regions = ["A", "B", "C", "D"]
 points_of_regions = map(enumerate(regions)) do (i,region)
     region => findall(isequal(region), regions_mat)
 end |> Dict |> sort
OrderedCollections.OrderedDict{String, Vector{CartesianIndex{2}}} with 4 entries:
@@ -285,7 +285,7 @@
 mapCube(mymean, a, indims=InDims("time"), outdims=OutDims())

In the last example, mapCube was used to map the mymean function. mapslices is a convenient function that can replace mapCube, where you can omit defining an extra function with the output argument as an input (e.g. mymean). It is possible to simply use mapslice

julia
mapslices(mean  skipmissing, a, dims="time")

It is also possible to distribute easily the workload on a cluster, with little modification to the code. To do so, we use the ClusterManagers package.

julia
using Distributed
 using ClusterManagers
 addprocs(SlurmManager(10))
- + \ No newline at end of file diff --git a/previews/PR439/UserGuide/convert.html b/previews/PR439/UserGuide/convert.html index eecf4370..da19593d 100644 --- a/previews/PR439/UserGuide/convert.html +++ b/previews/PR439/UserGuide/convert.html @@ -8,11 +8,11 @@ - + - - - + + + @@ -33,11 +33,11 @@ ├────────────────────────────────────────────────────────── file size ┤ file size: 400.0 bytes └─────────────────────────────────────────────────────────────────────┘

Convert YAXArray to Base.Array:

julia
m2 = collect(a.data)
5×10 Matrix{Float64}:
- 0.115843  0.669061   0.195342  0.229731   …  0.227539  0.081909  0.314714
- 0.635349  0.903146   0.970858  0.215574      0.379958  0.711856  0.704581
- 0.221764  0.360597   0.980693  0.0366927     0.454727  0.230081  0.222322
- 0.114142  0.399464   0.409563  0.200687      0.10145   0.800783  0.312572
- 0.310954  0.0321161  0.834424  0.577708      0.866623  0.901677  0.430147

Convert Raster

A Raster as defined in Rasters.jl has a same supertype of a YAXArray, i.e. AbstractDimArray, allowing easy conversion between those types:

julia
using Rasters
+ 0.484561  0.803933  0.189091  0.395566    …  0.962957  0.149532  0.26951
+ 0.126368  0.387986  0.731763  0.693869       0.162052  0.245398  0.778103
+ 0.270034  0.748773  0.450236  0.853685       0.958344  0.390335  0.0344221
+ 0.227521  0.760578  0.416932  0.00610615     0.387394  0.961764  0.197056
+ 0.640734  0.16954   0.845502  0.896575       0.105085  0.750315  0.264853

Convert Raster

A Raster as defined in Rasters.jl has a same supertype of a YAXArray, i.e. AbstractDimArray, allowing easy conversion between those types:

julia
using Rasters
 
 lon, lat = X(25:1:30), Y(25:1:30)
 time = Ti(2000:2024)
@@ -65,13 +65,13 @@
 
 └─────────────────────────────────────────────────────────────┘
 [:, :, 1]
-  ↓ →  25         26          27         28          29         30
- 25     0.139148   0.578852    0.746641   0.0187872   0.342119   0.293102
- 26     0.989301   0.380869    0.617808   0.584291    0.72839    0.501212
- 27     0.961969   0.0176159   0.338304   0.79872     0.923123   0.393892
- 28     0.813539   0.764608    0.258699   0.290818    0.832117   0.854122
- 29     0.263795   0.305973    0.253437   0.156236    0.669616   0.944509
- 30     0.840391   0.647845    0.744671   0.909935    0.150634   0.99587

Convert DimArray

A DimArray as defined in DimensionalData.jl has a same supertype of a YAXArray, i.e. AbstractDimArray, allowing easy conversion between those types.

Convert DimArray to YAXArray:

julia
using DimensionalData
+  ↓ →  25         26         27         28         29         30
+ 25     0.277672   0.19274    0.968417   0.321261   0.97809    0.475251
+ 26     0.197907   0.276032   0.797333   0.176799   0.217855   0.829992
+ 27     0.752389   0.896784   0.497162   0.110372   0.558261   0.883881
+ 28     0.970757   0.826902   0.77086    0.377284   0.355369   0.235685
+ 29     0.18551    0.74541    0.699567   0.321023   0.771126   0.789024
+ 30     0.288074   0.531563   0.283969   0.292206   0.418466   0.673577

Convert DimArray

A DimArray as defined in DimensionalData.jl has a same supertype of a YAXArray, i.e. AbstractDimArray, allowing easy conversion between those types.

Convert DimArray to YAXArray:

julia
using DimensionalData
 using YAXArrayBase
 
 dim_arr = rand(X(1:5), Y(10.0:15.0), metadata = Dict{String, Any}())
@@ -92,13 +92,13 @@
 ├──────────────────────────────────────────────────────── metadata ┤
   Dict{String, Any}()
 └──────────────────────────────────────────────────────────────────┘
- ↓ →  10.0       11.0       12.0       13.0       14.0        15.0
- 1     0.334679   0.213897   0.682063   0.352361   0.753249    0.29025
- 2     0.133485   0.543411   0.903195   0.395338   0.245134    0.0604828
- 3     0.950426   0.774508   0.225497   0.887044   0.892528    0.18627
- 4     0.359681   0.684082   0.679104   0.543572   0.745564    0.256489
- 5     0.53943    0.388524   0.272469   0.529827   0.0449176   0.355221

INFO

At the moment there is no support to save a DimArray directly into disk as a NetCDF or a Zarr file.

- + ↓ → 10.0 11.0 12.0 13.0 14.0 15.0 + 1 0.264965 0.466014 0.948295 0.728345 0.720552 0.712142 + 2 0.205441 0.747801 0.0230207 0.569377 0.196434 0.590044 + 3 0.77522 0.434027 0.586515 0.402482 0.700836 0.55636 + 4 0.282311 0.926022 0.565839 0.232697 0.513538 0.646746 + 5 0.865716 0.246708 0.974797 0.690601 0.497239 0.619666

INFO

At the moment there is no support to save a DimArray directly into disk as a NetCDF or a Zarr file.

+ \ No newline at end of file diff --git a/previews/PR439/UserGuide/create.html b/previews/PR439/UserGuide/create.html index 79cd580b..ca7050a9 100644 --- a/previews/PR439/UserGuide/create.html +++ b/previews/PR439/UserGuide/create.html @@ -8,11 +8,11 @@ - + - - - + + + @@ -68,7 +68,7 @@ a2, a3 Properties: Dict(:origin => "user guide") - + \ No newline at end of file diff --git a/previews/PR439/UserGuide/faq.html b/previews/PR439/UserGuide/faq.html index 5639c2fe..dffb818b 100644 --- a/previews/PR439/UserGuide/faq.html +++ b/previews/PR439/UserGuide/faq.html @@ -8,11 +8,11 @@ - + - - - + + + @@ -216,18 +216,18 @@ None Variables with additional axes: Additional Axes: - (↓ points Sampled{Int64} [3, 6, …, 99, 100] ForwardOrdered Irregular Points) + (↓ points Sampled{Int64} [1, 3, …, 90, 91] ForwardOrdered Irregular Points, + → Time Sampled{Date} Date("2020-01-01"):Dates.Month(1):Date("2022-12-01") ForwardOrdered Regular Points) Variables: - longitudes + temperature Additional Axes: - (↓ points Sampled{Int64} [3, 6, …, 99, 100] ForwardOrdered Irregular Points, - → Time Sampled{Date} Date("2020-01-01"):Dates.Month(1):Date("2022-12-01") ForwardOrdered Regular Points) + (↓ points Sampled{Int64} [1, 3, …, 90, 91] ForwardOrdered Irregular Points) Variables: - temperature + longitudes Additional Axes: - (↓ points Sampled{Int64} [3, 6, …, 99, 100] ForwardOrdered Irregular Points) + (↓ points Sampled{Int64} [1, 3, …, 90, 91] ForwardOrdered Irregular Points) Variables: latitudes

If your dataset has been read from a file with Cube it is not loaded into memory, and you have to load the latitudes and longitudes YAXArrays into memory:

julia
latitudes_yasxa  = readcubedata(ds["latitudes"])
 longitudes_yasxa = readcubedata(ds["longitudes"])
@@ -239,18 +239,18 @@
 None
 Variables with additional axes:
   Additional Axes: 
-  (↓ points Sampled{Int64} [3, 6, …, 99, 100] ForwardOrdered Irregular Points)
+  (↓ points Sampled{Int64} [1, 3, …, 90, 91] ForwardOrdered Irregular Points)
   Variables: 
   latitudes
 
   Additional Axes: 
-  (↓ points Sampled{Int64} [3, 6, …, 99, 100] ForwardOrdered Irregular Points,
+  (↓ points Sampled{Int64} [1, 3, …, 90, 91] ForwardOrdered Irregular Points,
   → Time   Sampled{Date} Date("2020-01-01"):Dates.Month(1):Date("2022-12-01") ForwardOrdered Regular Points)
   Variables: 
   temperature
 
   Additional Axes: 
-  (↓ points Sampled{Int64} [3, 6, …, 99, 100] ForwardOrdered Irregular Points)
+  (↓ points Sampled{Int64} [1, 3, …, 90, 91] ForwardOrdered Irregular Points)
   Variables: 
   longitudes

How do I apply map algebra?

Our next step is map algebra computations. This can be done effectively using the 'map' function. For example:

Multiplying cubes with only spatio-temporal dimensions

julia
julia> map((x, y) -> x * y, ds1, ds2)
╭──────────────────────────────╮
 20×10×15 YAXArray{Float64,3}
@@ -299,7 +299,7 @@
 fig, ax, obj = heatmap(classes;
     colormap=Makie.Categorical(cgrad([:grey15, :orangered, :snow3])))
 cbar = Colorbar(fig[1,2], obj)
-fig

Now we define the input cubes that will be considered for the iterable table

julia
t = CubeTable(values=ds1, classes=classes)
Datacube iterator with 1 subtables with fields: (:values, :classes, :time, :lon, :lat)
julia
using DataFrames
+fig

Now we define the input cubes that will be considered for the iterable table

julia
t = CubeTable(values=ds1, classes=classes)
Datacube iterator with 1 subtables with fields: (:values, :classes, :time, :lon, :lat)
julia
using DataFrames
 using OnlineStats
 ## visualization of the CubeTable
 c_tbl = DataFrame(t[1])
@@ -345,7 +345,7 @@
   (Dim_1 Sampled{Int64} Base.OneTo(10) ForwardOrdered Regular Points,
 Dim_2 Sampled{Int64} Base.OneTo(5) ForwardOrdered Regular Points)
   Variables: 
-  b

Ho do I construct a Dataset from a TimeArray

In this section we will use MarketData.jl and TimeSeries.jl to simulate some stocks.

julia
using YAXArrays, DimensionalData
+  b

WARNING

You will not be able to save this dataset, first you will need to rename those dimensions with the same name but different values.

Ho do I construct a Dataset from a TimeArray

In this section we will use MarketData.jl and TimeSeries.jl to simulate some stocks.

julia
using YAXArrays, DimensionalData
 using MarketData, TimeSeries
 
 stocks = Dict(:Stock1 => random_ohlcv(), :Stock2 => random_ohlcv(), :Stock3 => random_ohlcv())
@@ -360,7 +360,7 @@
   (time     Sampled{DateTime} [2020-01-01T00:00:00, …, 2020-01-21T19:00:00] ForwardOrdered Irregular Points,
 variable Categorical{Symbol} [:Open, :High, :Low, :Close, :Volume] Unordered)
   Variables: 
-  Stock2
+  Stock1
 
   Additional Axes: 
   (time     Sampled{DateTime} [2020-01-01T00:00:00, …, 2020-01-21T19:00:00] ForwardOrdered Irregular Points,
@@ -372,14 +372,14 @@
   (time     Sampled{DateTime} [2020-01-01T00:00:00, …, 2020-01-21T19:00:00] ForwardOrdered Irregular Points,
 variable Categorical{Symbol} [:Open, :High, :Low, :Close, :Volume] Unordered)
   Variables: 
-  Stock1

and, it looks like there some small differences in the axes, they are being printed independently although they should be the same. Well, they are at least at the == level but not at ===. We could use the axes from one YAXArray as reference and rebuild all the others

julia
yax_list = [rebuild(yax_list[1], values(stocks[k])) for k in d_keys];

and voilà

julia
julia> ds = Dataset(; (d_keys .=> yax_list)...)
YAXArray Dataset
+  Stock2

and, it looks like there some small differences in the axes, they are being printed independently although they should be the same. Well, they are at least at the == level but not at ===. We could use the axes from one YAXArray as reference and rebuild all the others

julia
yax_list = [rebuild(yax_list[1], values(stocks[k])) for k in d_keys];

and voilà

julia
julia> ds = Dataset(; (d_keys .=> yax_list)...)
YAXArray Dataset
 Shared Axes:
   (time     Sampled{DateTime} [2020-01-01T00:00:00, …, 2020-01-21T19:00:00] ForwardOrdered Irregular Points,
 variable Categorical{Symbol} [:Open, :High, :Low, :Close, :Volume] Unordered)
 
 Variables: 
 Stock1, Stock2, Stock3

now they are printed together, showing that is exactly the same axis structure for all variables.

- + \ No newline at end of file diff --git a/previews/PR439/UserGuide/group.html b/previews/PR439/UserGuide/group.html index d4d65d5c..d0c9415e 100644 --- a/previews/PR439/UserGuide/group.html +++ b/previews/PR439/UserGuide/group.html @@ -8,11 +8,11 @@ - + - - - + + + @@ -209,8 +209,8 @@ colgap!(fig.layout, 5) rowgap!(fig.layout, 5) fig -end

which shows a good agreement with the results first published by Joe Hamman.

- +end

which shows a good agreement with the results first published by Joe Hamman.

+ \ No newline at end of file diff --git a/previews/PR439/UserGuide/read.html b/previews/PR439/UserGuide/read.html index 80358f49..3182b1cf 100644 --- a/previews/PR439/UserGuide/read.html +++ b/previews/PR439/UserGuide/read.html @@ -8,11 +8,11 @@ - + - - - + + + @@ -97,8 +97,6 @@ using Downloads: download path = download("https://github.com/yeesian/ArchGDALDatasets/raw/307f8f0e584a39a050c042849004e6a2bd674f99/gdalworkshop/world.tif", "world.tif") -ds = open_dataset(path) -nothing ds = open_dataset(path)
YAXArray Dataset
 Shared Axes: 
   (↓ X Sampled{Float64} -180.0:0.17578125:179.82421875 ForwardOrdered Regular Points,
@@ -108,7 +106,7 @@
 Blue, Green, Red
 
 Properties: Dict{String, Any}("projection" => "GEOGCS[\"WGS 84\",DATUM[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223563,AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6326\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AXIS[\"Latitude\",NORTH],AXIS[\"Longitude\",EAST],AUTHORITY[\"EPSG\",\"4326\"]]")
- + \ No newline at end of file diff --git a/previews/PR439/UserGuide/select.html b/previews/PR439/UserGuide/select.html index 511363e1..c8ade606 100644 --- a/previews/PR439/UserGuide/select.html +++ b/previews/PR439/UserGuide/select.html @@ -8,11 +8,11 @@ - + - - - + + + @@ -314,7 +314,7 @@ 89.5

These values are defined as lookups in the package DimensionalData:

julia
lookup(tos, :lon)
Sampled{Float64} ForwardOrdered Regular DimensionalData.Dimensions.Lookups.Points
 wrapping: 1.0:2.0:359.0

which is equivalent to:

julia
tos.lon.val
Sampled{Float64} ForwardOrdered Regular DimensionalData.Dimensions.Lookups.Points
 wrapping: 1.0:2.0:359.0
- + \ No newline at end of file diff --git a/previews/PR439/UserGuide/types.html b/previews/PR439/UserGuide/types.html index aeee8320..3b067516 100644 --- a/previews/PR439/UserGuide/types.html +++ b/previews/PR439/UserGuide/types.html @@ -8,11 +8,11 @@ - + - - - + + + @@ -21,7 +21,7 @@
Skip to content

Types

This section describes the data structures used to work with n-dimensional arrays in YAXArrays.

YAXArray

An Array stores a sequence of ordered elements of the same type usually across multiple dimensions or axes. For example, one can measure temperature across all time points of the time dimension or brightness values of a picture across X and Y dimensions. A one dimensional array is called Vector and a two dimensional array is called a Matrix. In many Machine Learning libraries, arrays are also called tensors. Arrays are designed to store dense spatial-temporal data stored in a grid, whereas a collection of sparse points is usually stored in data frames or relational databases.

A DimArray as defined by DimensionalData.jl adds names to the dimensions and their axes ticks for a given Array. These names can be used to access the data, e.g., by date instead of just by integer position.

A YAXArray is a subtype of a AbstractDimArray and adds functions to load and process the named arrays. For example, it can also handle very large arrays stored on disk that are too big to fit in memory. In addition, it provides functions for parallel computation.

Dataset

A Dataset is an ordered dictionary of YAXArrays that usually share dimensions. For example, it can bundle arrays storing temperature and precipitation that are measured at the same time points and the same locations. One also can store a picture in a Dataset with three arrays containing brightness values for red green and blue, respectively. Internally, those arrays are still separated allowing to chose different element types for each array. Analog to the (NetCDF Data Model)[https://docs.unidata.ucar.edu/netcdf-c/current/netcdf_data_model.html], a Dataset usually represents variables belonging to the same group.

(Data) Cube

A (Data) Cube is just a YAXArray in which arrays from a dataset are combined together by introducing a new dimension containing labels of which array the corresponding element came from. Unlike a Dataset, all arrays must have the same element type to be converted into a cube. This data structure is useful when we want to use all variables at once. For example, the arrays temperature and precipitation which are measured at the same locations and dates can be combined into a single cube. A more formal definition of Data Cubes are given in Mahecha et al. 2020

Dimension

A Dimension or axis as defined by DimensionalData.jl adds tick labels, e.g., to each row or column of an array. It's name is used to access particular subsets of that array.

- + \ No newline at end of file diff --git a/previews/PR439/UserGuide/write.html b/previews/PR439/UserGuide/write.html index 24424b7f..8fe839b9 100644 --- a/previews/PR439/UserGuide/write.html +++ b/previews/PR439/UserGuide/write.html @@ -8,11 +8,11 @@ - + - - - + + + @@ -36,7 +36,7 @@ Properties: Dict{String, Any}("cmor_version" => 0.96f0, "references" => "Dufresne et al, Journal of Climate, 2015, vol XX, p 136", "realization" => 1, "Conventions" => "CF-1.0", "contact" => "Sebastien Denvil, sebastien.denvil@ipsl.jussieu.fr", "history" => "YYYY/MM/JJ: data generated; YYYY/MM/JJ+1 data transformed At 16:37:23 on 01/11/2005, CMOR rewrote data to comply with CF standards and IPCC Fourth Assessment requirements", "table_id" => "Table O1 (13 November 2004)", "source" => "IPSL-CM4_v1 (2003) : atmosphere : LMDZ (IPSL-CM4_IPCC, 96x71x19) ; ocean ORCA2 (ipsl_cm4_v1_8, 2x2L31); sea ice LIM (ipsl_cm4_v", "title" => "IPSL model output prepared for IPCC Fourth Assessment SRES A2 experiment", "experiment_id" => "SRES A2 experiment"…)

Write Zarr

Save a single YAXArray to a directory:

julia
using Zarr
 savecube(ds.tos, "tos.zarr", driver=:zarr)

Save an entire Dataset to a directory:

julia
savedataset(ds, path="ds.zarr", driver=:zarr)

Write NetCDF

Save a single YAXArray to a directory:

julia
using NetCDF
-savecube(ds.tos, "tos.nc", driver=:netcdf)

Save an entire Dataset to a directory:

julia
savedataset(ds, path="ds.nc", driver=:netcdf)

Overwrite a Dataset

If a path already exists, an error will be thrown. Set overwrite=true to delete the existing dataset

julia
savedataset(ds, path="ds.zarr", driver=:zarr, overwrite=true)

DANGER

Again, setting overwrite will delete all your previous saved data.

Look at the doc string for more information

# YAXArrays.Datasets.savedataset Function

savedataset(ds::Dataset; path = "", persist = nothing, overwrite = false, append = false, skeleton=false, backend = :all, driver = backend, max_cache = 5e8, writefac=4.0)

Saves a Dataset into a file at path with the format given by driver, i.e., driver=:netcdf or driver=:zarr.

Warning

overwrite = true, deletes ALL your data and it will create a new file.

source

Append to a Dataset

New variables can be added to an existing dataset using the append=true keyword.

julia
ds2 = Dataset(z = YAXArray(rand(10,20,5)))
+savecube(ds.tos, "tos.nc", driver=:netcdf)

Save an entire Dataset to a directory:

julia
savedataset(ds, path="ds.nc", driver=:netcdf)

Overwrite a Dataset

If a path already exists, an error will be thrown. Set overwrite=true to delete the existing dataset

julia
savedataset(ds, path="ds.zarr", driver=:zarr, overwrite=true)

DANGER

Again, setting overwrite will delete all your previous saved data.

Look at the doc string for more information

# YAXArrays.Datasets.savedataset Function

savedataset(ds::Dataset; path = "", persist = nothing, overwrite = false, append = false, skeleton=false, backend = :all, driver = backend, max_cache = 5e8, writefac=4.0)

Saves a Dataset into a file at path with the format given by driver, i.e., driver=:netcdf or driver=:zarr.

Warning

overwrite = true, deletes ALL your data and it will create a new file.

source

Append to a Dataset

New variables can be added to an existing dataset using the append=true keyword.

julia
ds2 = Dataset(z = YAXArray(rand(10,20,5)))
 savedataset(ds2, path="ds.zarr", backend=:zarr, append=true)
julia
julia> open_dataset("ds.zarr", driver=:zarr)
YAXArray Dataset
 Shared Axes:
 None
@@ -74,19 +74,19 @@
 Variables: 
 skeleton
julia
ds_s = savedataset(ds, path="skeleton.zarr", driver=:zarr, skeleton=true, overwrite=true)

Update values of dataset

Now, we show how to start updating the array values. In order to do it we need to open the dataset first with writing w rights as follows:

julia
ds_open = zopen("skeleton.zarr", "w")
 ds_array = ds_open["skeleton"]
ZArray{Float32} of size 5 x 4 x 5

and then we simply update values by indexing them where necessary

julia
ds_array[:,:,1] = rand(Float32, 5, 4) # this will update values directly into disk!
5×4 Matrix{Float32}:
- 0.787703   0.468415  0.537539  0.737428
- 0.808832   0.864074  0.616055  0.353021
- 0.89797    0.791865  0.398791  0.965042
- 0.0449604  0.376862  0.400911  0.0190005
- 0.188521   0.705507  0.527227  0.198213

we can verify is this working by loading again directly from disk

julia
ds_open = open_dataset("skeleton.zarr")
+ 0.465431  0.734655  0.414315  0.383
+ 0.918768  0.85091   0.365009  0.877659
+ 0.885098  0.141418  0.339135  0.695285
+ 0.243066  0.337627  0.390063  0.545877
+ 0.87108   0.81554   0.947543  0.218997

we can verify is this working by loading again directly from disk

julia
ds_open = open_dataset("skeleton.zarr")
 ds_array = ds_open["skeleton"]
-ds_array.data[:,:,1]
5×4 reshape(::Array{Union{Missing, Float32}, 3}, 5, 4) with eltype Union{Missing, Float32}:
- 0.787703   0.468415  0.537539  0.737428
- 0.808832   0.864074  0.616055  0.353021
- 0.89797    0.791865  0.398791  0.965042
- 0.0449604  0.376862  0.400911  0.0190005
- 0.188521   0.705507  0.527227  0.198213

indeed, those entries had been updated.

- +ds_array.data[:,:,1]
5×4 Matrix{Union{Missing, Float32}}:
+ 0.465431  0.734655  0.414315  0.383
+ 0.918768  0.85091   0.365009  0.877659
+ 0.885098  0.141418  0.339135  0.695285
+ 0.243066  0.337627  0.390063  0.545877
+ 0.87108   0.81554   0.947543  0.218997

indeed, those entries had been updated.

+ \ No newline at end of file diff --git a/previews/PR439/api.html b/previews/PR439/api.html index d4d09209..8af3edbc 100644 --- a/previews/PR439/api.html +++ b/previews/PR439/api.html @@ -8,11 +8,11 @@ - + - - - + + + @@ -20,20 +20,20 @@ -
Skip to content

API Reference

This section describes all available functions of this package.

Public API

# YAXArrays.getAxis Method
julia
getAxis(desc, c)

Given an Axis description and a cube, returns the corresponding axis of the cube. The Axis description can be:

  • the name as a string or symbol.

  • an Axis object

source

# YAXArrays.Cubes Module

The functions provided by YAXArrays are supposed to work on different types of cubes. This module defines the interface for all Data types that

source

# YAXArrays.Cubes.YAXArray Type
julia
YAXArray{T,N}

An array labelled with named axes that have values associated with them. It can wrap normal arrays or, more typically DiskArrays.

Fields

  • axes: Tuple of Dimensions containing the Axes of the Cube

  • data: length(axes)-dimensional array which holds the data, this can be a lazy DiskArray

  • properties: Metadata properties describing the content of the data

  • chunks: Representation of the chunking of the data

  • cleaner: Cleaner objects to track which objects to tidy up when the YAXArray goes out of scope

source

# YAXArrays.Cubes.caxes Function

Returns the axes of a Cube

source

# YAXArrays.Cubes.caxes Method
julia
caxes

Embeds Cube inside a new Cube

source

# YAXArrays.Cubes.concatenatecubes Method
julia
function concatenateCubes(cubelist, cataxis::CategoricalAxis)

Concatenates a vector of datacubes that have identical axes to a new single cube along the new axis cataxis

source

# YAXArrays.Cubes.readcubedata Method
julia
readcubedata(cube)

Given any array implementing the YAXArray interface it returns an in-memory YAXArray from it.

source

# YAXArrays.Cubes.setchunks Method
julia
setchunks(c::YAXArray,chunks)

Resets the chunks of a YAXArray and returns a new YAXArray. Note that this will not change the chunking of the underlying data itself, it will just make the data "look" like it had a different chunking. If you need a persistent on-disk representation of this chunking, use savecube on the resulting array. The chunks argument can take one of the following forms:

  • a DiskArrays.GridChunks object

  • a tuple specifying the chunk size along each dimension

  • an AbstractDict or NamedTuple mapping one or more axis names to chunk sizes

source

# YAXArrays.Cubes.subsetcube Function

This function calculates a subset of a cube's data

source

# YAXArrays.DAT.InDims Type
julia
InDims(axisdesc...;...)

Creates a description of an Input Data Cube for cube operations. Takes a single or multiple axis descriptions as first arguments. Alternatively a MovingWindow(@ref) struct can be passed to include neighbour slices of one or more axes in the computation. Axes can be specified by their name (String), through an Axis type, or by passing a concrete axis.

Keyword arguments

  • artype how shall the array be represented in the inner function. Defaults to Array, alternatives are DataFrame or AsAxisArray

  • filter define some filter to skip the computation, e.g. when all values are missing. Defaults to AllMissing(), possible values are AnyMissing(), AnyOcean(), StdZero(), NValid(n) (for at least n non-missing elements). It is also possible to provide a custom one-argument function that takes the array and returns true if the compuation shall be skipped and false otherwise.

  • window_oob_value if one of the input dimensions is a MowingWindow, this value will be used to fill out-of-bounds areas

source

# YAXArrays.DAT.MovingWindow Type
julia
MovingWindow(desc, pre, after)

Constructs a MovingWindow object to be passed to an InDims constructor to define that the axis in desc shall participate in the inner function (i.e. shall be looped over), but inside the inner function pre values before and after values after the center value will be passed as well.

For example passing MovingWindow("Time", 2, 0) will loop over the time axis and always pass the current time step plus the 2 previous steps. So in the inner function the array will have an additional dimension of size 3.

source

# YAXArrays.DAT.OutDims Method
julia
OutDims(axisdesc;...)

Creates a description of an Output Data Cube for cube operations. Takes a single or a Vector/Tuple of axes as first argument. Axes can be specified by their name (String), through an Axis type, or by passing a concrete axis.

  • axisdesc: List of input axis names

  • backend : specifies the dataset backend to write data to, must be either :auto or a key in YAXArrayBase.backendlist

  • update : specifies wether the function operates inplace or if an output is returned

  • artype : specifies the Array type inside the inner function that is mapped over

  • chunksize: A Dict specifying the chunksizes for the output dimensions of the cube, or :input to copy chunksizes from input cube axes or :max to not chunk the inner dimensions

  • outtype: force the output type to a specific type, defaults to Any which means that the element type of the first input cube is used

source

# YAXArrays.DAT.CubeTable Method
julia
CubeTable()

Function to turn a DataCube object into an iterable table. Takes a list of as arguments, specified as a name=cube expression. For example CubeTable(data=cube1,country=cube2) would generate a Table with the entries data and country, where data contains the values of cube1 and country the values of cube2. The cubes are matched and broadcasted along their axes like in mapCube.

source

# YAXArrays.DAT.cubefittable Method
julia
cubefittable(tab,o,fitsym;post=getpostfunction(o),kwargs...)

Executes fittable on the CubeTable tab with the (Weighted-)OnlineStat o, looping through the values specified by fitsym. Finally, writes the results from the TableAggregator to an output data cube.

source

# YAXArrays.DAT.fittable Method
julia
fittable(tab,o,fitsym;by=(),weight=nothing)

Loops through an iterable table tab and thereby fitting an OnlineStat o with the values specified through fitsym. Optionally one can specify a field (or tuple) to group by. Any groupby specifier can either be a symbol denoting the entry to group by or an anynymous function calculating the group from a table row.

For example the following would caluclate a weighted mean over a cube weighted by grid cell area and grouped by country and month:

julia
fittable(iter,WeightedMean,:tair,weight=(i->abs(cosd(i.lat))),by=(i->month(i.time),:country))

source

# YAXArrays.DAT.mapCube Method
julia
mapCube(fun, cube, addargs...;kwargs...)
+    
Skip to content

API Reference

This section describes all available functions of this package.

Public API

# YAXArrays.getAxis Method
julia
getAxis(desc, c)

Given an Axis description and a cube, returns the corresponding axis of the cube. The Axis description can be:

  • the name as a string or symbol.

  • an Axis object

source

# YAXArrays.Cubes Module

The functions provided by YAXArrays are supposed to work on different types of cubes. This module defines the interface for all Data types that

source

# YAXArrays.Cubes.YAXArray Type
julia
YAXArray{T,N}

An array labelled with named axes that have values associated with them. It can wrap normal arrays or, more typically DiskArrays.

Fields

  • axes: Tuple of Dimensions containing the Axes of the Cube

  • data: length(axes)-dimensional array which holds the data, this can be a lazy DiskArray

  • properties: Metadata properties describing the content of the data

  • chunks: Representation of the chunking of the data

  • cleaner: Cleaner objects to track which objects to tidy up when the YAXArray goes out of scope

source

# YAXArrays.Cubes.caxes Function

Returns the axes of a Cube

source

# YAXArrays.Cubes.caxes Method
julia
caxes

Embeds Cube inside a new Cube

source

# YAXArrays.Cubes.concatenatecubes Method
julia
function concatenateCubes(cubelist, cataxis::CategoricalAxis)

Concatenates a vector of datacubes that have identical axes to a new single cube along the new axis cataxis

source

# YAXArrays.Cubes.readcubedata Method
julia
readcubedata(cube)

Given any array implementing the YAXArray interface it returns an in-memory YAXArray from it.

source

# YAXArrays.Cubes.setchunks Method
julia
setchunks(c::YAXArray,chunks)

Resets the chunks of a YAXArray and returns a new YAXArray. Note that this will not change the chunking of the underlying data itself, it will just make the data "look" like it had a different chunking. If you need a persistent on-disk representation of this chunking, use savecube on the resulting array. The chunks argument can take one of the following forms:

  • a DiskArrays.GridChunks object

  • a tuple specifying the chunk size along each dimension

  • an AbstractDict or NamedTuple mapping one or more axis names to chunk sizes

source

# YAXArrays.Cubes.subsetcube Function

This function calculates a subset of a cube's data

source

# YAXArrays.DAT.InDims Type
julia
InDims(axisdesc...;...)

Creates a description of an Input Data Cube for cube operations. Takes a single or multiple axis descriptions as first arguments. Alternatively a MovingWindow(@ref) struct can be passed to include neighbour slices of one or more axes in the computation. Axes can be specified by their name (String), through an Axis type, or by passing a concrete axis.

Keyword arguments

  • artype how shall the array be represented in the inner function. Defaults to Array, alternatives are DataFrame or AsAxisArray

  • filter define some filter to skip the computation, e.g. when all values are missing. Defaults to AllMissing(), possible values are AnyMissing(), AnyOcean(), StdZero(), NValid(n) (for at least n non-missing elements). It is also possible to provide a custom one-argument function that takes the array and returns true if the compuation shall be skipped and false otherwise.

  • window_oob_value if one of the input dimensions is a MowingWindow, this value will be used to fill out-of-bounds areas

source

# YAXArrays.DAT.MovingWindow Type
julia
MovingWindow(desc, pre, after)

Constructs a MovingWindow object to be passed to an InDims constructor to define that the axis in desc shall participate in the inner function (i.e. shall be looped over), but inside the inner function pre values before and after values after the center value will be passed as well.

For example passing MovingWindow("Time", 2, 0) will loop over the time axis and always pass the current time step plus the 2 previous steps. So in the inner function the array will have an additional dimension of size 3.

source

# YAXArrays.DAT.OutDims Method
julia
OutDims(axisdesc;...)

Creates a description of an Output Data Cube for cube operations. Takes a single or a Vector/Tuple of axes as first argument. Axes can be specified by their name (String), through an Axis type, or by passing a concrete axis.

  • axisdesc: List of input axis names

  • backend : specifies the dataset backend to write data to, must be either :auto or a key in YAXArrayBase.backendlist

  • update : specifies wether the function operates inplace or if an output is returned

  • artype : specifies the Array type inside the inner function that is mapped over

  • chunksize: A Dict specifying the chunksizes for the output dimensions of the cube, or :input to copy chunksizes from input cube axes or :max to not chunk the inner dimensions

  • outtype: force the output type to a specific type, defaults to Any which means that the element type of the first input cube is used

source

# YAXArrays.DAT.CubeTable Method
julia
CubeTable()

Function to turn a DataCube object into an iterable table. Takes a list of as arguments, specified as a name=cube expression. For example CubeTable(data=cube1,country=cube2) would generate a Table with the entries data and country, where data contains the values of cube1 and country the values of cube2. The cubes are matched and broadcasted along their axes like in mapCube.

source

# YAXArrays.DAT.cubefittable Method
julia
cubefittable(tab,o,fitsym;post=getpostfunction(o),kwargs...)

Executes fittable on the CubeTable tab with the (Weighted-)OnlineStat o, looping through the values specified by fitsym. Finally, writes the results from the TableAggregator to an output data cube.

source

# YAXArrays.DAT.fittable Method
julia
fittable(tab,o,fitsym;by=(),weight=nothing)

Loops through an iterable table tab and thereby fitting an OnlineStat o with the values specified through fitsym. Optionally one can specify a field (or tuple) to group by. Any groupby specifier can either be a symbol denoting the entry to group by or an anynymous function calculating the group from a table row.

For example the following would caluclate a weighted mean over a cube weighted by grid cell area and grouped by country and month:

julia
fittable(iter,WeightedMean,:tair,weight=(i->abs(cosd(i.lat))),by=(i->month(i.time),:country))

source

# YAXArrays.DAT.mapCube Method
julia
mapCube(fun, cube, addargs...;kwargs...)
 
 Map a given function `fun` over slices of all cubes of the dataset `ds`. 
 Use InDims to discribe the input dimensions and OutDims to describe the output dimensions of the function.
 For Datasets, only one output cube can be specified.
 In contrast to the mapCube function for cubes, additional arguments for the inner function should be set as keyword arguments.
 
-For the specific keyword arguments see the docstring of the mapCube function for cubes.

source

# YAXArrays.DAT.mapCube Method
julia
mapCube(fun, cube, addargs...;kwargs...)

Map a given function fun over slices of the data cube cube. The additional arguments addargs will be forwarded to the inner function fun. Use InDims to discribe the input dimensions and OutDims to describe the output dimensions of the function.

Keyword arguments

  • max_cache=YAXDefaults.max_cache Float64 maximum size of blocks that are read into memory in bits e.g. max_cache=5.0e8. Or String. e.g. max_cache="10MB" ormax_cache=1GB``` defaults to approx 10Mb.

  • indims::InDims List of input cube descriptors of type InDims for each input data cube.

  • outdims::OutDims List of output cube descriptors of type OutDims for each output cube.

  • inplace does the function write to an output array inplace or return a single value> defaults to true

  • ispar boolean to determine if parallelisation should be applied, defaults to true if workers are available.

  • showprog boolean indicating if a ProgressMeter shall be shown

  • include_loopvars boolean to indicate if the varoables looped over should be added as function arguments

  • nthreads number of threads for the computation, defaults to Threads.nthreads for every worker.

  • loopchunksize determines the chunk sizes of variables which are looped over, a dict

  • kwargs additional keyword arguments are passed to the inner function

The first argument is always the function to be applied, the second is the input cube or a tuple of input cubes if needed.

source

# YAXArrays.Datasets.Dataset Type
julia
Dataset object which stores an `OrderedDict` of YAXArrays with Symbol keys.
+For the specific keyword arguments see the docstring of the mapCube function for cubes.

source

# YAXArrays.DAT.mapCube Method
julia
mapCube(fun, cube, addargs...;kwargs...)

Map a given function fun over slices of the data cube cube. The additional arguments addargs will be forwarded to the inner function fun. Use InDims to discribe the input dimensions and OutDims to describe the output dimensions of the function.

Keyword arguments

  • max_cache=YAXDefaults.max_cache Float64 maximum size of blocks that are read into memory in bits e.g. max_cache=5.0e8. Or String. e.g. max_cache="10MB" ormax_cache=1GB``` defaults to approx 10Mb.

  • indims::InDims List of input cube descriptors of type InDims for each input data cube.

  • outdims::OutDims List of output cube descriptors of type OutDims for each output cube.

  • inplace does the function write to an output array inplace or return a single value> defaults to true

  • ispar boolean to determine if parallelisation should be applied, defaults to true if workers are available.

  • showprog boolean indicating if a ProgressMeter shall be shown

  • include_loopvars boolean to indicate if the varoables looped over should be added as function arguments

  • nthreads number of threads for the computation, defaults to Threads.nthreads for every worker.

  • loopchunksize determines the chunk sizes of variables which are looped over, a dict

  • kwargs additional keyword arguments are passed to the inner function

The first argument is always the function to be applied, the second is the input cube or a tuple of input cubes if needed.

source

# YAXArrays.Datasets.Dataset Type
julia
Dataset object which stores an `OrderedDict` of YAXArrays with Symbol keys.
 a dictionary of CubeAxes and a Dictionary of general properties.
-A dictionary can hold cubes with differing axes. But it will share the common axes between the subcubes.

source

# YAXArrays.Datasets.Dataset Method

Dataset(; properties = Dict{String,Any}, cubes...)

Construct a YAXArray Dataset with global attributes properties a and a list of named YAXArrays cubes...

source

# YAXArrays.Datasets.Cube Method
julia
Cube(ds::Dataset; joinname="Variable")

Construct a single YAXArray from the dataset ds by concatenating the cubes in the datset on the joinname dimension.

source

# YAXArrays.Datasets.open_dataset Method

open_dataset(g; driver=:all)

Open the dataset at g with the given driver. The default driver will search for available drivers and tries to detect the useable driver from the filename extension.

source

# YAXArrays.Datasets.savecube Method
julia
savecube(cube,name::String)

Save a YAXArray to the path.

Extended Help

The keyword arguments are:

  • name:

  • datasetaxis="Variable" special treatment of a categorical axis that gets written into separate zarr arrays

  • max_cache: The number of bits that are used as cache for the data handling.

  • backend: The backend, that is used to save the data. Falls back to searching the backend according to the extension of the path.

  • driver: The same setting as backend.

  • overwrite::Bool=false overwrite cube if it already exists

source

# YAXArrays.Datasets.savedataset Method

savedataset(ds::Dataset; path = "", persist = nothing, overwrite = false, append = false, skeleton=false, backend = :all, driver = backend, max_cache = 5e8, writefac=4.0)

Saves a Dataset into a file at path with the format given by driver, i.e., driver=:netcdf or driver=:zarr.

Warning

overwrite = true, deletes ALL your data and it will create a new file.

source

# YAXArrays.Datasets.to_dataset Method

to_dataset(c;datasetaxis = "Variable", layername = "layer")

Convert a Data Cube into a Dataset. It is possible to treat one of the Cube's axes as a "DatasetAxis" i.e. the cube will be split into different parts that become variables in the Dataset. If no such axis is specified or found, there will only be a single variable in the dataset with the name layername

source

Internal API

# YAXArrays.YAXDefaults Constant

Default configuration for YAXArrays, has the following fields:

  • workdir[]::String = "./" The default location for temporary cubes.

  • recal[]::Bool = false set to true if you want @loadOrGenerate to always recalculate the results.

  • chunksize[]::Any = :input Set the default output chunksize.

  • max_cache[]::Float64 = 1e8 The maximum cache used by mapCube.

  • cubedir[]::"" the default location for Cube() without an argument.

  • subsetextensions::Array{Any} = [] List of registered functions, that convert subsetting input into dimension boundaries.

source

# YAXArrays.findAxis Method
julia
findAxis(desc, c)

Internal function

Extended Help

Given an Axis description and a cube return the index of the Axis.

The Axis description can be:

  • the name as a string or symbol.

  • an Axis object

source

# YAXArrays.getOutAxis Method
julia
getOutAxis

source

# YAXArrays.get_descriptor Method
julia
get_descriptor(a)

Get the descriptor of an Axis. This is used to dispatch on the descriptor.

source

# YAXArrays.match_axis Method
julia
match_axis

Internal function

Extended Help

Match the Axis based on the AxisDescriptor.
+A dictionary can hold cubes with differing axes. But it will share the common axes between the subcubes.

source

# YAXArrays.Datasets.Dataset Method

Dataset(; properties = Dict{String,Any}, cubes...)

Construct a YAXArray Dataset with global attributes properties a and a list of named YAXArrays cubes...

source

# YAXArrays.Datasets.Cube Method
julia
Cube(ds::Dataset; joinname="Variable")

Construct a single YAXArray from the dataset ds by concatenating the cubes in the datset on the joinname dimension.

source

# YAXArrays.Datasets.open_dataset Method

open_dataset(g; driver=:all)

Open the dataset at g with the given driver. The default driver will search for available drivers and tries to detect the useable driver from the filename extension.

source

# YAXArrays.Datasets.savecube Method
julia
savecube(cube,name::String)

Save a YAXArray to the path.

Extended Help

The keyword arguments are:

  • name:

  • datasetaxis="Variable" special treatment of a categorical axis that gets written into separate zarr arrays

  • max_cache: The number of bits that are used as cache for the data handling.

  • backend: The backend, that is used to save the data. Falls back to searching the backend according to the extension of the path.

  • driver: The same setting as backend.

  • overwrite::Bool=false overwrite cube if it already exists

source

# YAXArrays.Datasets.savedataset Method

savedataset(ds::Dataset; path = "", persist = nothing, overwrite = false, append = false, skeleton=false, backend = :all, driver = backend, max_cache = 5e8, writefac=4.0)

Saves a Dataset into a file at path with the format given by driver, i.e., driver=:netcdf or driver=:zarr.

Warning

overwrite = true, deletes ALL your data and it will create a new file.

source

# YAXArrays.Datasets.to_dataset Method

to_dataset(c;datasetaxis = "Variable", layername = "layer")

Convert a Data Cube into a Dataset. It is possible to treat one of the Cube's axes as a "DatasetAxis" i.e. the cube will be split into different parts that become variables in the Dataset. If no such axis is specified or found, there will only be a single variable in the dataset with the name layername

source

Internal API

# YAXArrays.YAXDefaults Constant

Default configuration for YAXArrays, has the following fields:

  • workdir[]::String = "./" The default location for temporary cubes.

  • recal[]::Bool = false set to true if you want @loadOrGenerate to always recalculate the results.

  • chunksize[]::Any = :input Set the default output chunksize.

  • max_cache[]::Float64 = 1e8 The maximum cache used by mapCube.

  • cubedir[]::"" the default location for Cube() without an argument.

  • subsetextensions::Array{Any} = [] List of registered functions, that convert subsetting input into dimension boundaries.

source

# YAXArrays.findAxis Method
julia
findAxis(desc, c)

Internal function

Extended Help

Given an Axis description and a cube return the index of the Axis.

The Axis description can be:

  • the name as a string or symbol.

  • an Axis object

source

# YAXArrays.getOutAxis Method
julia
getOutAxis

source

# YAXArrays.get_descriptor Method
julia
get_descriptor(a)

Get the descriptor of an Axis. This is used to dispatch on the descriptor.

source

# YAXArrays.match_axis Method
julia
match_axis

Internal function

Extended Help

Match the Axis based on the AxisDescriptor.
 This is used to find different axes and to make certain axis description the same.
-For example to disregard differences of captialisation.

source

# YAXArrays.Cubes.CleanMe Type
julia
mutable struct CleanMe

Struct which describes data paths and their persistency. Non-persistend paths/files are removed at finalize step

source

# YAXArrays.Cubes.clean Method
julia
clean(c::CleanMe)

finalizer function for CleanMe struct. The main process removes all directories/files which are not persistent.

source

# YAXArrays.Cubes.copydata Method
julia
copydata(outar, inar, copybuf)

Internal function which copies the data from the input inar into the output outar at the copybuf positions.

source

# YAXArrays.Cubes.optifunc Method
julia
optifunc(s, maxbuf, incs, outcs, insize, outsize, writefac)

Internal

This function is going to be minimized to detect the best possible chunk setting for the rechunking of the data.

source

# YAXArrays.DAT.DATConfig Type

Configuration object of a DAT process. This holds all necessary information to perform the calculations. It contains the following fields:

  • incubes::Tuple{Vararg{YAXArrays.DAT.InputCube, NIN}} where NIN: The input data cubes

  • outcubes::Tuple{Vararg{YAXArrays.DAT.OutputCube, NOUT}} where NOUT: The output data cubes

  • allInAxes::Vector: List of all axes of the input cubes

  • LoopAxes::Vector: List of axes that are looped through

  • ispar::Bool: Flag whether the computation is parallelized

  • loopcachesize::Vector{Int64}:

  • allow_irregular_chunks::Bool:

  • max_cache::Any: Maximal size of the in memory cache

  • fu::Any: Inner function which is computed

  • inplace::Bool: Flag whether the computation happens in place

  • include_loopvars::Bool:

  • ntr::Any:

  • do_gc::Bool: Flag if GC should be called explicitly. Probably necessary for many runs in Julia 1.9

  • addargs::Any: Additional arguments for the inner function

  • kwargs::Any: Additional keyword arguments for the inner function

source

# YAXArrays.DAT.InputCube Type

Internal representation of an input cube for DAT operations

  • cube: The input data

  • desc: The input description given by the user/registration

  • axesSmall: List of axes that were actually selected through the description

  • icolon

  • colonperm

  • loopinds: Indices of loop axes that this cube does not contain, i.e. broadcasts

  • cachesize: Number of elements to keep in cache along each axis

  • window

  • iwindow

  • windowloopinds

  • iall

source

# YAXArrays.DAT.OutputCube Type

Internal representation of an output cube for DAT operations

Fields

  • cube: The actual outcube cube, once it is generated

  • cube_unpermuted: The unpermuted output cube

  • desc: The description of the output axes as given by users or registration

  • axesSmall: The list of output axes determined through the description

  • allAxes: List of all the axes of the cube

  • loopinds: Index of the loop axes that are broadcasted for this output cube

  • innerchunks

  • outtype: Elementtype of the outputcube

source

# YAXArrays.DAT.YAXColumn Type
julia
YAXColumn

A struct representing a single column of a YAXArray partitioned Table # Fields

  • inarBC

  • inds

source

# YAXArrays.DAT.cmpcachmisses Method

Function that compares two cache miss specifiers by their importance

source

# YAXArrays.DAT.getFrontPerm Method

Calculate an axis permutation that brings the wanted dimensions to the front

source

# YAXArrays.DAT.getLoopCacheSize Method

Calculate optimal Cache size to DAT operation

source

# YAXArrays.DAT.getOuttype Method
julia
getOuttype(outtype, cdata)

Internal function

Get the element type for the output cube

source

# YAXArrays.DAT.getloopchunks Method
julia
getloopchunks(dc::DATConfig)

Internal function

Returns the chunks that can be looped over toghether for all dimensions.
-This computation of the size of the chunks is handled by [`DiskArrays.approx_chunksize`](@ref)

source

# YAXArrays.DAT.permuteloopaxes Method
julia
permuteloopaxes(dc)

Internal function

Permute the dimensions of the cube, so that the axes that are looped through are in the first positions. This is necessary for a faster looping through the data.

source

# YAXArrays.Cubes.setchunks Method
julia
setchunks(c::Dataset,chunks)

Resets the chunks of all or a subset YAXArrays in the dataset and returns a new Dataset. Note that this will not change the chunking of the underlying data itself, it will just make the data "look" like it had a different chunking. If you need a persistent on-disk representation of this chunking, use savedataset on the resulting array. The chunks argument can take one of the following forms:

  • a NamedTuple or AbstractDict mapping from variable name to a description of the desired variable chunks

  • a NamedTuple or AbstractDict mapping from dimension name to a description of the desired variable chunks

  • a description of the desired variable chunks applied to all members of the Dataset

where a description of the desired variable chunks can take one of the following forms:

  • a DiskArrays.GridChunks object

  • a tuple specifying the chunk size along each dimension

  • an AbstractDict or NamedTuple mapping one or more axis names to chunk sizes

source

# YAXArrays.Datasets.collectfromhandle Method

Extracts a YAXArray from a dataset handle that was just created from a arrayinfo

source

# YAXArrays.Datasets.createdataset Method

function createdataset(DS::Type,axlist; kwargs...)

Creates a new dataset with axes specified in axlist. Each axis must be a subtype of CubeAxis. A new empty Zarr array will be created and can serve as a sink for mapCube operations.

Keyword arguments

  • path="" location where the new cube is stored

  • T=Union{Float32,Missing} data type of the target cube

  • chunksize = ntuple(i->length(axlist[i]),length(axlist)) chunk sizes of the array

  • chunkoffset = ntuple(i->0,length(axlist)) offsets of the chunks

  • persist::Bool=true shall the disk data be garbage-collected when the cube goes out of scope?

  • overwrite::Bool=false overwrite cube if it already exists

  • properties=Dict{String,Any}() additional cube properties

  • globalproperties=Dict{String,Any} global attributes to be added to the dataset

  • fillvalue= T>:Missing ? defaultfillval(Base.nonmissingtype(T)) : nothing fill value

  • datasetaxis="Variable" special treatment of a categorical axis that gets written into separate zarr arrays

  • layername="layer" Fallback name of the variable stored in the dataset if no datasetaxis is found

source

# YAXArrays.Datasets.getarrayinfo Method

Extract necessary information to create a YAXArrayBase dataset from a name and YAXArray pair

source

# YAXArrays.Datasets.testrange Method

Test if data in x can be approximated by a step range

source

- +For example to disregard differences of captialisation.

source

# YAXArrays.Cubes.CleanMe Type
julia
mutable struct CleanMe

Struct which describes data paths and their persistency. Non-persistend paths/files are removed at finalize step

source

# YAXArrays.Cubes.clean Method
julia
clean(c::CleanMe)

finalizer function for CleanMe struct. The main process removes all directories/files which are not persistent.

source

# YAXArrays.Cubes.copydata Method
julia
copydata(outar, inar, copybuf)

Internal function which copies the data from the input inar into the output outar at the copybuf positions.

source

# YAXArrays.Cubes.optifunc Method
julia
optifunc(s, maxbuf, incs, outcs, insize, outsize, writefac)

Internal

This function is going to be minimized to detect the best possible chunk setting for the rechunking of the data.

source

# YAXArrays.DAT.DATConfig Type

Configuration object of a DAT process. This holds all necessary information to perform the calculations. It contains the following fields:

  • incubes::Tuple{Vararg{YAXArrays.DAT.InputCube, NIN}} where NIN: The input data cubes

  • outcubes::Tuple{Vararg{YAXArrays.DAT.OutputCube, NOUT}} where NOUT: The output data cubes

  • allInAxes::Vector: List of all axes of the input cubes

  • LoopAxes::Vector: List of axes that are looped through

  • ispar::Bool: Flag whether the computation is parallelized

  • loopcachesize::Vector{Int64}:

  • allow_irregular_chunks::Bool:

  • max_cache::Any: Maximal size of the in memory cache

  • fu::Any: Inner function which is computed

  • inplace::Bool: Flag whether the computation happens in place

  • include_loopvars::Bool:

  • ntr::Any:

  • do_gc::Bool: Flag if GC should be called explicitly. Probably necessary for many runs in Julia 1.9

  • addargs::Any: Additional arguments for the inner function

  • kwargs::Any: Additional keyword arguments for the inner function

source

# YAXArrays.DAT.InputCube Type

Internal representation of an input cube for DAT operations

  • cube: The input data

  • desc: The input description given by the user/registration

  • axesSmall: List of axes that were actually selected through the description

  • icolon

  • colonperm

  • loopinds: Indices of loop axes that this cube does not contain, i.e. broadcasts

  • cachesize: Number of elements to keep in cache along each axis

  • window

  • iwindow

  • windowloopinds

  • iall

source

# YAXArrays.DAT.OutputCube Type

Internal representation of an output cube for DAT operations

Fields

  • cube: The actual outcube cube, once it is generated

  • cube_unpermuted: The unpermuted output cube

  • desc: The description of the output axes as given by users or registration

  • axesSmall: The list of output axes determined through the description

  • allAxes: List of all the axes of the cube

  • loopinds: Index of the loop axes that are broadcasted for this output cube

  • innerchunks

  • outtype: Elementtype of the outputcube

source

# YAXArrays.DAT.YAXColumn Type
julia
YAXColumn

A struct representing a single column of a YAXArray partitioned Table # Fields

  • inarBC

  • inds

source

# YAXArrays.DAT.cmpcachmisses Method

Function that compares two cache miss specifiers by their importance

source

# YAXArrays.DAT.getFrontPerm Method

Calculate an axis permutation that brings the wanted dimensions to the front

source

# YAXArrays.DAT.getLoopCacheSize Method

Calculate optimal Cache size to DAT operation

source

# YAXArrays.DAT.getOuttype Method
julia
getOuttype(outtype, cdata)

Internal function

Get the element type for the output cube

source

# YAXArrays.DAT.getloopchunks Method
julia
getloopchunks(dc::DATConfig)

Internal function

Returns the chunks that can be looped over toghether for all dimensions.
+This computation of the size of the chunks is handled by [`DiskArrays.approx_chunksize`](@ref)

source

# YAXArrays.DAT.permuteloopaxes Method
julia
permuteloopaxes(dc)

Internal function

Permute the dimensions of the cube, so that the axes that are looped through are in the first positions. This is necessary for a faster looping through the data.

source

# YAXArrays.Cubes.setchunks Method
julia
setchunks(c::Dataset,chunks)

Resets the chunks of all or a subset YAXArrays in the dataset and returns a new Dataset. Note that this will not change the chunking of the underlying data itself, it will just make the data "look" like it had a different chunking. If you need a persistent on-disk representation of this chunking, use savedataset on the resulting array. The chunks argument can take one of the following forms:

  • a NamedTuple or AbstractDict mapping from variable name to a description of the desired variable chunks

  • a NamedTuple or AbstractDict mapping from dimension name to a description of the desired variable chunks

  • a description of the desired variable chunks applied to all members of the Dataset

where a description of the desired variable chunks can take one of the following forms:

  • a DiskArrays.GridChunks object

  • a tuple specifying the chunk size along each dimension

  • an AbstractDict or NamedTuple mapping one or more axis names to chunk sizes

source

# YAXArrays.Datasets.collectfromhandle Method

Extracts a YAXArray from a dataset handle that was just created from a arrayinfo

source

# YAXArrays.Datasets.createdataset Method

function createdataset(DS::Type,axlist; kwargs...)

Creates a new dataset with axes specified in axlist. Each axis must be a subtype of CubeAxis. A new empty Zarr array will be created and can serve as a sink for mapCube operations.

Keyword arguments

  • path="" location where the new cube is stored

  • T=Union{Float32,Missing} data type of the target cube

  • chunksize = ntuple(i->length(axlist[i]),length(axlist)) chunk sizes of the array

  • chunkoffset = ntuple(i->0,length(axlist)) offsets of the chunks

  • persist::Bool=true shall the disk data be garbage-collected when the cube goes out of scope?

  • overwrite::Bool=false overwrite cube if it already exists

  • properties=Dict{String,Any}() additional cube properties

  • globalproperties=Dict{String,Any} global attributes to be added to the dataset

  • fillvalue= T>:Missing ? defaultfillval(Base.nonmissingtype(T)) : nothing fill value

  • datasetaxis="Variable" special treatment of a categorical axis that gets written into separate zarr arrays

  • layername="layer" Fallback name of the variable stored in the dataset if no datasetaxis is found

source

# YAXArrays.Datasets.getarrayinfo Method

Extract necessary information to create a YAXArrayBase dataset from a name and YAXArray pair

source

# YAXArrays.Datasets.testrange Method

Test if data in x can be approximated by a step range

source

+ \ No newline at end of file diff --git a/previews/PR439/assets/UserGuide_cache.md.DrZNdhY2.js b/previews/PR439/assets/UserGuide_cache.md.CUC71_fe.js similarity index 96% rename from previews/PR439/assets/UserGuide_cache.md.DrZNdhY2.js rename to previews/PR439/assets/UserGuide_cache.md.CUC71_fe.js index d2032759..2ec1e46e 100644 --- a/previews/PR439/assets/UserGuide_cache.md.DrZNdhY2.js +++ b/previews/PR439/assets/UserGuide_cache.md.CUC71_fe.js @@ -1,4 +1,4 @@ -import{_ as a,c as i,a2 as e,o as t}from"./chunks/framework.DsPJznl_.js";const o=JSON.parse('{"title":"Caching YAXArrays","description":"","frontmatter":{},"headers":[],"relativePath":"UserGuide/cache.md","filePath":"UserGuide/cache.md","lastUpdated":null}'),n={name:"UserGuide/cache.md"};function h(l,s,p,r,c,d){return t(),i("div",null,s[0]||(s[0]=[e(`

Caching YAXArrays

For some applications like interactive plotting of large datasets it can not be avoided that the same data must be accessed several times. In these cases it can be useful to store recently accessed data in a cache. In YAXArrays this can be easily achieved using the cache function. For example, if we open a large dataset from a remote source and want to keep data in a cache of size 500MB one can use:

julia
using YAXArrays, Zarr
+import{_ as a,c as i,a2 as e,o as t}from"./chunks/framework.eQVMtpgY.js";const o=JSON.parse('{"title":"Caching YAXArrays","description":"","frontmatter":{},"headers":[],"relativePath":"UserGuide/cache.md","filePath":"UserGuide/cache.md","lastUpdated":null}'),n={name:"UserGuide/cache.md"};function h(l,s,p,r,c,d){return t(),i("div",null,s[0]||(s[0]=[e(`

Caching YAXArrays

For some applications like interactive plotting of large datasets it can not be avoided that the same data must be accessed several times. In these cases it can be useful to store recently accessed data in a cache. In YAXArrays this can be easily achieved using the cache function. For example, if we open a large dataset from a remote source and want to keep data in a cache of size 500MB one can use:

julia
using YAXArrays, Zarr
 ds = open_dataset("path/to/source")
 cachesize = 500 #MB
 cache(ds,maxsize = cachesize)

The above will wrap every array in the dataset into its own cache, where the 500MB are distributed equally across datasets. Alternatively individual caches can be applied to single YAXArrays

julia
yax = ds.avariable
diff --git a/previews/PR439/assets/UserGuide_cache.md.DrZNdhY2.lean.js b/previews/PR439/assets/UserGuide_cache.md.CUC71_fe.lean.js
similarity index 96%
rename from previews/PR439/assets/UserGuide_cache.md.DrZNdhY2.lean.js
rename to previews/PR439/assets/UserGuide_cache.md.CUC71_fe.lean.js
index d2032759..2ec1e46e 100644
--- a/previews/PR439/assets/UserGuide_cache.md.DrZNdhY2.lean.js
+++ b/previews/PR439/assets/UserGuide_cache.md.CUC71_fe.lean.js
@@ -1,4 +1,4 @@
-import{_ as a,c as i,a2 as e,o as t}from"./chunks/framework.DsPJznl_.js";const o=JSON.parse('{"title":"Caching YAXArrays","description":"","frontmatter":{},"headers":[],"relativePath":"UserGuide/cache.md","filePath":"UserGuide/cache.md","lastUpdated":null}'),n={name:"UserGuide/cache.md"};function h(l,s,p,r,c,d){return t(),i("div",null,s[0]||(s[0]=[e(`

Caching YAXArrays

For some applications like interactive plotting of large datasets it can not be avoided that the same data must be accessed several times. In these cases it can be useful to store recently accessed data in a cache. In YAXArrays this can be easily achieved using the cache function. For example, if we open a large dataset from a remote source and want to keep data in a cache of size 500MB one can use:

julia
using YAXArrays, Zarr
+import{_ as a,c as i,a2 as e,o as t}from"./chunks/framework.eQVMtpgY.js";const o=JSON.parse('{"title":"Caching YAXArrays","description":"","frontmatter":{},"headers":[],"relativePath":"UserGuide/cache.md","filePath":"UserGuide/cache.md","lastUpdated":null}'),n={name:"UserGuide/cache.md"};function h(l,s,p,r,c,d){return t(),i("div",null,s[0]||(s[0]=[e(`

Caching YAXArrays

For some applications like interactive plotting of large datasets it can not be avoided that the same data must be accessed several times. In these cases it can be useful to store recently accessed data in a cache. In YAXArrays this can be easily achieved using the cache function. For example, if we open a large dataset from a remote source and want to keep data in a cache of size 500MB one can use:

julia
using YAXArrays, Zarr
 ds = open_dataset("path/to/source")
 cachesize = 500 #MB
 cache(ds,maxsize = cachesize)

The above will wrap every array in the dataset into its own cache, where the 500MB are distributed equally across datasets. Alternatively individual caches can be applied to single YAXArrays

julia
yax = ds.avariable
diff --git a/previews/PR439/assets/UserGuide_chunk.md.CVYnaEEy.js b/previews/PR439/assets/UserGuide_chunk.md.CX6Cn7I-.js
similarity index 99%
rename from previews/PR439/assets/UserGuide_chunk.md.CVYnaEEy.js
rename to previews/PR439/assets/UserGuide_chunk.md.CX6Cn7I-.js
index 6dd5646e..8b3d91de 100644
--- a/previews/PR439/assets/UserGuide_chunk.md.CVYnaEEy.js
+++ b/previews/PR439/assets/UserGuide_chunk.md.CX6Cn7I-.js
@@ -1,4 +1,4 @@
-import{_ as a,c as i,a2 as n,o as p}from"./chunks/framework.DsPJznl_.js";const g=JSON.parse('{"title":"Chunk YAXArrays","description":"","frontmatter":{},"headers":[],"relativePath":"UserGuide/chunk.md","filePath":"UserGuide/chunk.md","lastUpdated":null}'),l={name:"UserGuide/chunk.md"};function h(e,s,t,k,r,d){return p(),i("div",null,s[0]||(s[0]=[n(`

Chunk YAXArrays

Thinking about chunking is important when it comes to analyzing your data, because in most situations this will not fit into memory, hence having the fastest read access to it is crucial for your workflows. For example, for geo-spatial data do you want fast access on time or space, or... think about it.

To determine the chunk size of the array representation on disk, call the setchunks function prior to saving.

Chunking YAXArrays

julia
using YAXArrays, Zarr
+import{_ as a,c as i,a2 as n,o as p}from"./chunks/framework.eQVMtpgY.js";const g=JSON.parse('{"title":"Chunk YAXArrays","description":"","frontmatter":{},"headers":[],"relativePath":"UserGuide/chunk.md","filePath":"UserGuide/chunk.md","lastUpdated":null}'),l={name:"UserGuide/chunk.md"};function h(e,s,t,k,r,d){return p(),i("div",null,s[0]||(s[0]=[n(`

Chunk YAXArrays

Thinking about chunking is important when it comes to analyzing your data, because in most situations this will not fit into memory, hence having the fastest read access to it is crucial for your workflows. For example, for geo-spatial data do you want fast access on time or space, or... think about it.

To determine the chunk size of the array representation on disk, call the setchunks function prior to saving.

Chunking YAXArrays

julia
using YAXArrays, Zarr
 a = YAXArray(rand(10,20))
 a_chunked = setchunks(a, (5,10))
 a_chunked.chunks
2×2 DiskArrays.GridChunks{2, Tuple{DiskArrays.RegularChunks, DiskArrays.RegularChunks}}:
diff --git a/previews/PR439/assets/UserGuide_chunk.md.CVYnaEEy.lean.js b/previews/PR439/assets/UserGuide_chunk.md.CX6Cn7I-.lean.js
similarity index 99%
rename from previews/PR439/assets/UserGuide_chunk.md.CVYnaEEy.lean.js
rename to previews/PR439/assets/UserGuide_chunk.md.CX6Cn7I-.lean.js
index 6dd5646e..8b3d91de 100644
--- a/previews/PR439/assets/UserGuide_chunk.md.CVYnaEEy.lean.js
+++ b/previews/PR439/assets/UserGuide_chunk.md.CX6Cn7I-.lean.js
@@ -1,4 +1,4 @@
-import{_ as a,c as i,a2 as n,o as p}from"./chunks/framework.DsPJznl_.js";const g=JSON.parse('{"title":"Chunk YAXArrays","description":"","frontmatter":{},"headers":[],"relativePath":"UserGuide/chunk.md","filePath":"UserGuide/chunk.md","lastUpdated":null}'),l={name:"UserGuide/chunk.md"};function h(e,s,t,k,r,d){return p(),i("div",null,s[0]||(s[0]=[n(`

Chunk YAXArrays

Thinking about chunking is important when it comes to analyzing your data, because in most situations this will not fit into memory, hence having the fastest read access to it is crucial for your workflows. For example, for geo-spatial data do you want fast access on time or space, or... think about it.

To determine the chunk size of the array representation on disk, call the setchunks function prior to saving.

Chunking YAXArrays

julia
using YAXArrays, Zarr
+import{_ as a,c as i,a2 as n,o as p}from"./chunks/framework.eQVMtpgY.js";const g=JSON.parse('{"title":"Chunk YAXArrays","description":"","frontmatter":{},"headers":[],"relativePath":"UserGuide/chunk.md","filePath":"UserGuide/chunk.md","lastUpdated":null}'),l={name:"UserGuide/chunk.md"};function h(e,s,t,k,r,d){return p(),i("div",null,s[0]||(s[0]=[n(`

Chunk YAXArrays

Thinking about chunking is important when it comes to analyzing your data, because in most situations this will not fit into memory, hence having the fastest read access to it is crucial for your workflows. For example, for geo-spatial data do you want fast access on time or space, or... think about it.

To determine the chunk size of the array representation on disk, call the setchunks function prior to saving.

Chunking YAXArrays

julia
using YAXArrays, Zarr
 a = YAXArray(rand(10,20))
 a_chunked = setchunks(a, (5,10))
 a_chunked.chunks
2×2 DiskArrays.GridChunks{2, Tuple{DiskArrays.RegularChunks, DiskArrays.RegularChunks}}:
diff --git a/previews/PR439/assets/UserGuide_combine.md.CaPMEqhA.js b/previews/PR439/assets/UserGuide_combine.md.CTZVFaD9.js
similarity index 98%
rename from previews/PR439/assets/UserGuide_combine.md.CaPMEqhA.js
rename to previews/PR439/assets/UserGuide_combine.md.CTZVFaD9.js
index 355f5031..49ad10b5 100644
--- a/previews/PR439/assets/UserGuide_combine.md.CaPMEqhA.js
+++ b/previews/PR439/assets/UserGuide_combine.md.CTZVFaD9.js
@@ -1,4 +1,4 @@
-import{_ as i,c as a,a2 as n,o as e}from"./chunks/framework.DsPJznl_.js";const c=JSON.parse('{"title":"Combine YAXArrays","description":"","frontmatter":{},"headers":[],"relativePath":"UserGuide/combine.md","filePath":"UserGuide/combine.md","lastUpdated":null}'),t={name:"UserGuide/combine.md"};function p(l,s,h,k,r,d){return e(),a("div",null,s[0]||(s[0]=[n(`

Combine YAXArrays

Data is often scattered across multiple files and corresponding arrays, e.g. one file per time step. This section describes methods on how to combine them into a single YAXArray.

cat along an existing dimension

Here we use cat to combine two arrays consisting of data from the first and the second half of a year into one single array containing the whole year. We glue the arrays along the first dimension using dims = 1: The resulting array whole_year still has one dimension, i.e. time, but with 12 instead of 6 elements.

julia
using YAXArrays
+import{_ as i,c as a,a2 as n,o as e}from"./chunks/framework.eQVMtpgY.js";const c=JSON.parse('{"title":"Combine YAXArrays","description":"","frontmatter":{},"headers":[],"relativePath":"UserGuide/combine.md","filePath":"UserGuide/combine.md","lastUpdated":null}'),t={name:"UserGuide/combine.md"};function p(l,s,h,k,r,d){return e(),a("div",null,s[0]||(s[0]=[n(`

Combine YAXArrays

Data is often scattered across multiple files and corresponding arrays, e.g. one file per time step. This section describes methods on how to combine them into a single YAXArray.

cat along an existing dimension

Here we use cat to combine two arrays consisting of data from the first and the second half of a year into one single array containing the whole year. We glue the arrays along the first dimension using dims = 1: The resulting array whole_year still has one dimension, i.e. time, but with 12 instead of 6 elements.

julia
using YAXArrays
 
 first_half = YAXArray((Dim{:time}(1:6),), rand(6))
 second_half = YAXArray((Dim{:time}(7:12),), rand(6))
diff --git a/previews/PR439/assets/UserGuide_combine.md.CaPMEqhA.lean.js b/previews/PR439/assets/UserGuide_combine.md.CTZVFaD9.lean.js
similarity index 98%
rename from previews/PR439/assets/UserGuide_combine.md.CaPMEqhA.lean.js
rename to previews/PR439/assets/UserGuide_combine.md.CTZVFaD9.lean.js
index 355f5031..49ad10b5 100644
--- a/previews/PR439/assets/UserGuide_combine.md.CaPMEqhA.lean.js
+++ b/previews/PR439/assets/UserGuide_combine.md.CTZVFaD9.lean.js
@@ -1,4 +1,4 @@
-import{_ as i,c as a,a2 as n,o as e}from"./chunks/framework.DsPJznl_.js";const c=JSON.parse('{"title":"Combine YAXArrays","description":"","frontmatter":{},"headers":[],"relativePath":"UserGuide/combine.md","filePath":"UserGuide/combine.md","lastUpdated":null}'),t={name:"UserGuide/combine.md"};function p(l,s,h,k,r,d){return e(),a("div",null,s[0]||(s[0]=[n(`

Combine YAXArrays

Data is often scattered across multiple files and corresponding arrays, e.g. one file per time step. This section describes methods on how to combine them into a single YAXArray.

cat along an existing dimension

Here we use cat to combine two arrays consisting of data from the first and the second half of a year into one single array containing the whole year. We glue the arrays along the first dimension using dims = 1: The resulting array whole_year still has one dimension, i.e. time, but with 12 instead of 6 elements.

julia
using YAXArrays
+import{_ as i,c as a,a2 as n,o as e}from"./chunks/framework.eQVMtpgY.js";const c=JSON.parse('{"title":"Combine YAXArrays","description":"","frontmatter":{},"headers":[],"relativePath":"UserGuide/combine.md","filePath":"UserGuide/combine.md","lastUpdated":null}'),t={name:"UserGuide/combine.md"};function p(l,s,h,k,r,d){return e(),a("div",null,s[0]||(s[0]=[n(`

Combine YAXArrays

Data is often scattered across multiple files and corresponding arrays, e.g. one file per time step. This section describes methods on how to combine them into a single YAXArray.

cat along an existing dimension

Here we use cat to combine two arrays consisting of data from the first and the second half of a year into one single array containing the whole year. We glue the arrays along the first dimension using dims = 1: The resulting array whole_year still has one dimension, i.e. time, but with 12 instead of 6 elements.

julia
using YAXArrays
 
 first_half = YAXArray((Dim{:time}(1:6),), rand(6))
 second_half = YAXArray((Dim{:time}(7:12),), rand(6))
diff --git a/previews/PR439/assets/UserGuide_compute.md.BGU8kcLm.js b/previews/PR439/assets/UserGuide_compute.md.B6Xntqw3.js
similarity index 97%
rename from previews/PR439/assets/UserGuide_compute.md.BGU8kcLm.js
rename to previews/PR439/assets/UserGuide_compute.md.B6Xntqw3.js
index 160db658..8c3b9188 100644
--- a/previews/PR439/assets/UserGuide_compute.md.BGU8kcLm.js
+++ b/previews/PR439/assets/UserGuide_compute.md.B6Xntqw3.js
@@ -1,4 +1,4 @@
-import{_ as i,c as a,a2 as n,o as t}from"./chunks/framework.DsPJznl_.js";const g=JSON.parse('{"title":"Compute YAXArrays","description":"","frontmatter":{},"headers":[],"relativePath":"UserGuide/compute.md","filePath":"UserGuide/compute.md","lastUpdated":null}'),p={name:"UserGuide/compute.md"};function e(l,s,h,k,d,r){return t(),a("div",null,s[0]||(s[0]=[n(`

Compute YAXArrays

This section describes how to create new YAXArrays by performing operations on them.

  • Use arithmetics to add or multiply numbers to each element of an array

  • Use map to apply a more complex functions to every element of an array

  • Use mapslices to reduce a dimension, e.g. to get the mean over all time steps

  • Use mapCube to apply complex functions on an array that may change any dimensions

Let's start by creating an example dataset:

julia
using YAXArrays
+import{_ as i,c as a,a2 as n,o as t}from"./chunks/framework.eQVMtpgY.js";const g=JSON.parse('{"title":"Compute YAXArrays","description":"","frontmatter":{},"headers":[],"relativePath":"UserGuide/compute.md","filePath":"UserGuide/compute.md","lastUpdated":null}'),p={name:"UserGuide/compute.md"};function e(l,s,h,k,d,r){return t(),a("div",null,s[0]||(s[0]=[n(`

Compute YAXArrays

This section describes how to create new YAXArrays by performing operations on them.

  • Use arithmetics to add or multiply numbers to each element of an array

  • Use map to apply a more complex functions to every element of an array

  • Use mapslices to reduce a dimension, e.g. to get the mean over all time steps

  • Use mapCube to apply complex functions on an array that may change any dimensions

Let's start by creating an example dataset:

julia
using YAXArrays
 using Dates
 
 axlist = (
@@ -19,7 +19,7 @@ import{_ as i,c as a,a2 as n,o as t}from"./chunks/framework.DsPJznl_.js";const g
   :origin => "user guide"
 ├─────────────────────────────────────────────────────────────────── file size ┤ 
   file size: 35.16 KB
-└──────────────────────────────────────────────────────────────────────────────┘

Modify elements of a YAXArray

julia
a[1,2,3]
0.3037786082748125
julia
a[1,2,3] = 42
42
julia
a[1,2,3]
42.0

WARNING

Some arrays, e.g. those saved in a cloud object storage are immutable making any modification of the data impossible.

Arithmetics

Add a value to all elements of an array and save it as a new array:

julia
a2 = a .+ 5
╭──────────────────────────────╮
+└──────────────────────────────────────────────────────────────────────────────┘

Modify elements of a YAXArray

julia
a[1,2,3]
0.9463880566583662
julia
a[1,2,3] = 42
42
julia
a[1,2,3]
42.0

WARNING

Some arrays, e.g. those saved in a cloud object storage are immutable making any modification of the data impossible.

Arithmetics

Add a value to all elements of an array and save it as a new array:

julia
a2 = a .+ 5
╭──────────────────────────────╮
 │ 30×10×15 YAXArray{Float64,3} │
 ├──────────────────────────────┴───────────────────────────────────────── dims ┐
   ↓ time Sampled{Date} Date("2022-01-01"):Dates.Day(1):Date("2022-01-30") ForwardOrdered Regular Points,
@@ -106,7 +106,7 @@ import{_ as i,c as a,a2 as n,o as t}from"./chunks/framework.DsPJznl_.js";const g
   "missing_value" => 1.0f32
 ├─────────────────────────────────────────────────────────────────── file size ┤
   file size: 17.58 KB
-└──────────────────────────────────────────────────────────────────────────────┘

"time axis goes first"

Note that currently the time axis in the output cube goes first.

Check that it is working

julia
julia> gen_cube.data[1, :, :]
15×10 reshape(::Array{Union{Missing, Float32}, 3}, 15, 10) with eltype Union{Missing, Float32}:
+└──────────────────────────────────────────────────────────────────────────────┘

"time axis goes first"

Note that currently the time axis in the output cube goes first.

Check that it is working

julia
julia> gen_cube.data[1, :, :]
15×10 Matrix{Union{Missing, Float32}}:
   3.0   4.0   5.0   6.0   7.0   8.0   9.0  10.0  11.0  12.0
   4.0   5.0   6.0   7.0   8.0   9.0  10.0  11.0  12.0  13.0
   5.0   6.0   7.0   8.0   9.0  10.0  11.0  12.0  13.0  14.0
@@ -137,7 +137,7 @@ import{_ as i,c as a,a2 as n,o as t}from"./chunks/framework.DsPJznl_.js";const g
   "missing_value" => 1.0f32
 ├─────────────────────────────────────────────────────────────────── file size ┤
   file size: 17.58 KB
-└──────────────────────────────────────────────────────────────────────────────┘

INFO

Note that now the broadcasted dimension is lon.

we can see this by slicing on the last dimension now

julia
gen_cube.data[:, :, 1]
15×10 reshape(::Array{Union{Missing, Float32}, 3}, 15, 10) with eltype Union{Missing, Float32}:
+└──────────────────────────────────────────────────────────────────────────────┘

INFO

Note that now the broadcasted dimension is lon.

we can see this by slicing on the last dimension now

julia
gen_cube.data[:, :, 1]
15×10 Matrix{Union{Missing, Float32}}:
   3.0   4.0   5.0   6.0   7.0   8.0   9.0  10.0  11.0  12.0
   4.0   5.0   6.0   7.0   8.0   9.0  10.0  11.0  12.0  13.0
   5.0   6.0   7.0   8.0   9.0  10.0  11.0  12.0  13.0  14.0
@@ -202,14 +202,14 @@ import{_ as i,c as a,a2 as n,o as t}from"./chunks/framework.DsPJznl_.js";const g
 ├──────────────────────────────────────────────────────────────────── metadata ┤
   Dict{String, Any}()
 └──────────────────────────────────────────────────────────────────────────────┘
-  ↓ →  1.0       1.28571    1.57143   …  4.42857    4.71429    5.0
-  1.0  0.6983    0.594324   0.981179     0.795445   0.792869   0.801021
-  2.0  0.615387  0.372925   0.952215     0.986739   0.201319   0.258298
-  3.0  0.603151  0.790482   0.356694     0.0166238  0.431302   0.197075
-  ⋮                                   ⋱                        ⋮
-  8.0  0.129298  0.452836   0.900563     0.43666    0.675925   0.116241
-  9.0  0.816965  0.995635   0.613754     0.345546   0.0422229  0.686475
- 10.0  0.863044  0.0939467  0.398799  …  0.684548   0.392236   0.193988

Now we calculate the list of corresponding points for each region. This will be re-used for each point in time during the final mapCube. In addition, this avoids the allocation of unnecessary memory.

julia
regions = ["A", "B", "C", "D"]
+  ↓ →  1.0        1.28571   1.57143   …  4.42857   4.71429   5.0
+  1.0  0.823992   0.893922  0.115728     0.342124  0.247962  0.307243
+  2.0  0.433645   0.111576  0.326265     0.389221  0.754378  0.76239
+  3.0  0.0940125  0.332484  0.365406     0.460686  0.707765  0.367281
+  ⋮                                   ⋱                      ⋮
+  8.0  0.576218   0.710028  0.606961     0.799896  0.545633  0.405895
+  9.0  0.948543   0.874754  0.564172     0.841682  0.13829   0.487635
+ 10.0  0.156829   0.845191  0.238664  …  0.521312  0.710866  0.704697

Now we calculate the list of corresponding points for each region. This will be re-used for each point in time during the final mapCube. In addition, this avoids the allocation of unnecessary memory.

julia
regions = ["A", "B", "C", "D"]
 points_of_regions = map(enumerate(regions)) do (i,region)
     region => findall(isequal(region), regions_mat)
 end |> Dict |> sort
OrderedCollections.OrderedDict{String, Vector{CartesianIndex{2}}} with 4 entries:
diff --git a/previews/PR439/assets/UserGuide_compute.md.BGU8kcLm.lean.js b/previews/PR439/assets/UserGuide_compute.md.B6Xntqw3.lean.js
similarity index 97%
rename from previews/PR439/assets/UserGuide_compute.md.BGU8kcLm.lean.js
rename to previews/PR439/assets/UserGuide_compute.md.B6Xntqw3.lean.js
index 160db658..8c3b9188 100644
--- a/previews/PR439/assets/UserGuide_compute.md.BGU8kcLm.lean.js
+++ b/previews/PR439/assets/UserGuide_compute.md.B6Xntqw3.lean.js
@@ -1,4 +1,4 @@
-import{_ as i,c as a,a2 as n,o as t}from"./chunks/framework.DsPJznl_.js";const g=JSON.parse('{"title":"Compute YAXArrays","description":"","frontmatter":{},"headers":[],"relativePath":"UserGuide/compute.md","filePath":"UserGuide/compute.md","lastUpdated":null}'),p={name:"UserGuide/compute.md"};function e(l,s,h,k,d,r){return t(),a("div",null,s[0]||(s[0]=[n(`

Compute YAXArrays

This section describes how to create new YAXArrays by performing operations on them.

  • Use arithmetics to add or multiply numbers to each element of an array

  • Use map to apply a more complex functions to every element of an array

  • Use mapslices to reduce a dimension, e.g. to get the mean over all time steps

  • Use mapCube to apply complex functions on an array that may change any dimensions

Let's start by creating an example dataset:

julia
using YAXArrays
+import{_ as i,c as a,a2 as n,o as t}from"./chunks/framework.eQVMtpgY.js";const g=JSON.parse('{"title":"Compute YAXArrays","description":"","frontmatter":{},"headers":[],"relativePath":"UserGuide/compute.md","filePath":"UserGuide/compute.md","lastUpdated":null}'),p={name:"UserGuide/compute.md"};function e(l,s,h,k,d,r){return t(),a("div",null,s[0]||(s[0]=[n(`

Compute YAXArrays

This section describes how to create new YAXArrays by performing operations on them.

  • Use arithmetics to add or multiply numbers to each element of an array

  • Use map to apply a more complex functions to every element of an array

  • Use mapslices to reduce a dimension, e.g. to get the mean over all time steps

  • Use mapCube to apply complex functions on an array that may change any dimensions

Let's start by creating an example dataset:

julia
using YAXArrays
 using Dates
 
 axlist = (
@@ -19,7 +19,7 @@ import{_ as i,c as a,a2 as n,o as t}from"./chunks/framework.DsPJznl_.js";const g
   :origin => "user guide"
 ├─────────────────────────────────────────────────────────────────── file size ┤ 
   file size: 35.16 KB
-└──────────────────────────────────────────────────────────────────────────────┘

Modify elements of a YAXArray

julia
a[1,2,3]
0.3037786082748125
julia
a[1,2,3] = 42
42
julia
a[1,2,3]
42.0

WARNING

Some arrays, e.g. those saved in a cloud object storage are immutable making any modification of the data impossible.

Arithmetics

Add a value to all elements of an array and save it as a new array:

julia
a2 = a .+ 5
╭──────────────────────────────╮
+└──────────────────────────────────────────────────────────────────────────────┘

Modify elements of a YAXArray

julia
a[1,2,3]
0.9463880566583662
julia
a[1,2,3] = 42
42
julia
a[1,2,3]
42.0

WARNING

Some arrays, e.g. those saved in a cloud object storage are immutable making any modification of the data impossible.

Arithmetics

Add a value to all elements of an array and save it as a new array:

julia
a2 = a .+ 5
╭──────────────────────────────╮
 │ 30×10×15 YAXArray{Float64,3} │
 ├──────────────────────────────┴───────────────────────────────────────── dims ┐
   ↓ time Sampled{Date} Date("2022-01-01"):Dates.Day(1):Date("2022-01-30") ForwardOrdered Regular Points,
@@ -106,7 +106,7 @@ import{_ as i,c as a,a2 as n,o as t}from"./chunks/framework.DsPJznl_.js";const g
   "missing_value" => 1.0f32
 ├─────────────────────────────────────────────────────────────────── file size ┤
   file size: 17.58 KB
-└──────────────────────────────────────────────────────────────────────────────┘

"time axis goes first"

Note that currently the time axis in the output cube goes first.

Check that it is working

julia
julia> gen_cube.data[1, :, :]
15×10 reshape(::Array{Union{Missing, Float32}, 3}, 15, 10) with eltype Union{Missing, Float32}:
+└──────────────────────────────────────────────────────────────────────────────┘

"time axis goes first"

Note that currently the time axis in the output cube goes first.

Check that it is working

julia
julia> gen_cube.data[1, :, :]
15×10 Matrix{Union{Missing, Float32}}:
   3.0   4.0   5.0   6.0   7.0   8.0   9.0  10.0  11.0  12.0
   4.0   5.0   6.0   7.0   8.0   9.0  10.0  11.0  12.0  13.0
   5.0   6.0   7.0   8.0   9.0  10.0  11.0  12.0  13.0  14.0
@@ -137,7 +137,7 @@ import{_ as i,c as a,a2 as n,o as t}from"./chunks/framework.DsPJznl_.js";const g
   "missing_value" => 1.0f32
 ├─────────────────────────────────────────────────────────────────── file size ┤
   file size: 17.58 KB
-└──────────────────────────────────────────────────────────────────────────────┘

INFO

Note that now the broadcasted dimension is lon.

we can see this by slicing on the last dimension now

julia
gen_cube.data[:, :, 1]
15×10 reshape(::Array{Union{Missing, Float32}, 3}, 15, 10) with eltype Union{Missing, Float32}:
+└──────────────────────────────────────────────────────────────────────────────┘

INFO

Note that now the broadcasted dimension is lon.

we can see this by slicing on the last dimension now

julia
gen_cube.data[:, :, 1]
15×10 Matrix{Union{Missing, Float32}}:
   3.0   4.0   5.0   6.0   7.0   8.0   9.0  10.0  11.0  12.0
   4.0   5.0   6.0   7.0   8.0   9.0  10.0  11.0  12.0  13.0
   5.0   6.0   7.0   8.0   9.0  10.0  11.0  12.0  13.0  14.0
@@ -202,14 +202,14 @@ import{_ as i,c as a,a2 as n,o as t}from"./chunks/framework.DsPJznl_.js";const g
 ├──────────────────────────────────────────────────────────────────── metadata ┤
   Dict{String, Any}()
 └──────────────────────────────────────────────────────────────────────────────┘
-  ↓ →  1.0       1.28571    1.57143   …  4.42857    4.71429    5.0
-  1.0  0.6983    0.594324   0.981179     0.795445   0.792869   0.801021
-  2.0  0.615387  0.372925   0.952215     0.986739   0.201319   0.258298
-  3.0  0.603151  0.790482   0.356694     0.0166238  0.431302   0.197075
-  ⋮                                   ⋱                        ⋮
-  8.0  0.129298  0.452836   0.900563     0.43666    0.675925   0.116241
-  9.0  0.816965  0.995635   0.613754     0.345546   0.0422229  0.686475
- 10.0  0.863044  0.0939467  0.398799  …  0.684548   0.392236   0.193988

Now we calculate the list of corresponding points for each region. This will be re-used for each point in time during the final mapCube. In addition, this avoids the allocation of unnecessary memory.

julia
regions = ["A", "B", "C", "D"]
+  ↓ →  1.0        1.28571   1.57143   …  4.42857   4.71429   5.0
+  1.0  0.823992   0.893922  0.115728     0.342124  0.247962  0.307243
+  2.0  0.433645   0.111576  0.326265     0.389221  0.754378  0.76239
+  3.0  0.0940125  0.332484  0.365406     0.460686  0.707765  0.367281
+  ⋮                                   ⋱                      ⋮
+  8.0  0.576218   0.710028  0.606961     0.799896  0.545633  0.405895
+  9.0  0.948543   0.874754  0.564172     0.841682  0.13829   0.487635
+ 10.0  0.156829   0.845191  0.238664  …  0.521312  0.710866  0.704697

Now we calculate the list of corresponding points for each region. This will be re-used for each point in time during the final mapCube. In addition, this avoids the allocation of unnecessary memory.

julia
regions = ["A", "B", "C", "D"]
 points_of_regions = map(enumerate(regions)) do (i,region)
     region => findall(isequal(region), regions_mat)
 end |> Dict |> sort
OrderedCollections.OrderedDict{String, Vector{CartesianIndex{2}}} with 4 entries:
diff --git a/previews/PR439/assets/UserGuide_convert.md.CNBOJiLd.js b/previews/PR439/assets/UserGuide_convert.md.nKMCMtPl.js
similarity index 85%
rename from previews/PR439/assets/UserGuide_convert.md.CNBOJiLd.js
rename to previews/PR439/assets/UserGuide_convert.md.nKMCMtPl.js
index 0276a30e..6d304578 100644
--- a/previews/PR439/assets/UserGuide_convert.md.CNBOJiLd.js
+++ b/previews/PR439/assets/UserGuide_convert.md.nKMCMtPl.js
@@ -1,4 +1,4 @@
-import{_ as a,c as n,a2 as i,o as p}from"./chunks/framework.DsPJznl_.js";const c=JSON.parse('{"title":"Convert YAXArrays","description":"","frontmatter":{},"headers":[],"relativePath":"UserGuide/convert.md","filePath":"UserGuide/convert.md","lastUpdated":null}'),e={name:"UserGuide/convert.md"};function l(t,s,r,h,d,k){return p(),n("div",null,s[0]||(s[0]=[i(`

Convert YAXArrays

This section describes how to convert variables from types of other Julia packages into YAXArrays and vice versa.

WARNING

YAXArrays is designed to work with large datasets that are way larger than the memory. However, most types are designed to work in memory. Those conversions are only possible if the entire dataset fits into memory. In addition, metadata might be lost during conversion.

Convert Base.Array

Convert Base.Array to YAXArray:

julia
using YAXArrays
+import{_ as a,c as n,a2 as i,o as p}from"./chunks/framework.eQVMtpgY.js";const c=JSON.parse('{"title":"Convert YAXArrays","description":"","frontmatter":{},"headers":[],"relativePath":"UserGuide/convert.md","filePath":"UserGuide/convert.md","lastUpdated":null}'),e={name:"UserGuide/convert.md"};function l(t,s,r,h,d,k){return p(),n("div",null,s[0]||(s[0]=[i(`

Convert YAXArrays

This section describes how to convert variables from types of other Julia packages into YAXArrays and vice versa.

WARNING

YAXArrays is designed to work with large datasets that are way larger than the memory. However, most types are designed to work in memory. Those conversions are only possible if the entire dataset fits into memory. In addition, metadata might be lost during conversion.

Convert Base.Array

Convert Base.Array to YAXArray:

julia
using YAXArrays
 
 m = rand(5,10)
 a = YAXArray(m)
╭──────────────────────────╮
@@ -11,11 +11,11 @@ import{_ as a,c as n,a2 as i,o as p}from"./chunks/framework.DsPJznl_.js";const c
 ├────────────────────────────────────────────────────────── file size ┤ 
   file size: 400.0 bytes
 └─────────────────────────────────────────────────────────────────────┘

Convert YAXArray to Base.Array:

julia
m2 = collect(a.data)
5×10 Matrix{Float64}:
- 0.115843  0.669061   0.195342  0.229731   …  0.227539  0.081909  0.314714
- 0.635349  0.903146   0.970858  0.215574      0.379958  0.711856  0.704581
- 0.221764  0.360597   0.980693  0.0366927     0.454727  0.230081  0.222322
- 0.114142  0.399464   0.409563  0.200687      0.10145   0.800783  0.312572
- 0.310954  0.0321161  0.834424  0.577708      0.866623  0.901677  0.430147

Convert Raster

A Raster as defined in Rasters.jl has a same supertype of a YAXArray, i.e. AbstractDimArray, allowing easy conversion between those types:

julia
using Rasters
+ 0.484561  0.803933  0.189091  0.395566    …  0.962957  0.149532  0.26951
+ 0.126368  0.387986  0.731763  0.693869       0.162052  0.245398  0.778103
+ 0.270034  0.748773  0.450236  0.853685       0.958344  0.390335  0.0344221
+ 0.227521  0.760578  0.416932  0.00610615     0.387394  0.961764  0.197056
+ 0.640734  0.16954   0.845502  0.896575       0.105085  0.750315  0.264853

Convert Raster

A Raster as defined in Rasters.jl has a same supertype of a YAXArray, i.e. AbstractDimArray, allowing easy conversion between those types:

julia
using Rasters
 
 lon, lat = X(25:1:30), Y(25:1:30)
 time = Ti(2000:2024)
@@ -43,13 +43,13 @@ import{_ as a,c as n,a2 as i,o as p}from"./chunks/framework.DsPJznl_.js";const c
 
 └─────────────────────────────────────────────────────────────┘
 [:, :, 1]
-  ↓ →  25         26          27         28          29         30
- 25     0.139148   0.578852    0.746641   0.0187872   0.342119   0.293102
- 26     0.989301   0.380869    0.617808   0.584291    0.72839    0.501212
- 27     0.961969   0.0176159   0.338304   0.79872     0.923123   0.393892
- 28     0.813539   0.764608    0.258699   0.290818    0.832117   0.854122
- 29     0.263795   0.305973    0.253437   0.156236    0.669616   0.944509
- 30     0.840391   0.647845    0.744671   0.909935    0.150634   0.99587

Convert DimArray

A DimArray as defined in DimensionalData.jl has a same supertype of a YAXArray, i.e. AbstractDimArray, allowing easy conversion between those types.

Convert DimArray to YAXArray:

julia
using DimensionalData
+  ↓ →  25         26         27         28         29         30
+ 25     0.277672   0.19274    0.968417   0.321261   0.97809    0.475251
+ 26     0.197907   0.276032   0.797333   0.176799   0.217855   0.829992
+ 27     0.752389   0.896784   0.497162   0.110372   0.558261   0.883881
+ 28     0.970757   0.826902   0.77086    0.377284   0.355369   0.235685
+ 29     0.18551    0.74541    0.699567   0.321023   0.771126   0.789024
+ 30     0.288074   0.531563   0.283969   0.292206   0.418466   0.673577

Convert DimArray

A DimArray as defined in DimensionalData.jl has a same supertype of a YAXArray, i.e. AbstractDimArray, allowing easy conversion between those types.

Convert DimArray to YAXArray:

julia
using DimensionalData
 using YAXArrayBase
 
 dim_arr = rand(X(1:5), Y(10.0:15.0), metadata = Dict{String, Any}())
@@ -70,9 +70,9 @@ import{_ as a,c as n,a2 as i,o as p}from"./chunks/framework.DsPJznl_.js";const c
 ├──────────────────────────────────────────────────────── metadata ┤
   Dict{String, Any}()
 └──────────────────────────────────────────────────────────────────┘
- ↓ →  10.0       11.0       12.0       13.0       14.0        15.0
- 1     0.334679   0.213897   0.682063   0.352361   0.753249    0.29025
- 2     0.133485   0.543411   0.903195   0.395338   0.245134    0.0604828
- 3     0.950426   0.774508   0.225497   0.887044   0.892528    0.18627
- 4     0.359681   0.684082   0.679104   0.543572   0.745564    0.256489
- 5     0.53943    0.388524   0.272469   0.529827   0.0449176   0.355221

INFO

At the moment there is no support to save a DimArray directly into disk as a NetCDF or a Zarr file.

`,25)]))}const g=a(e,[["render",l]]);export{c as __pageData,g as default}; + ↓ → 10.0 11.0 12.0 13.0 14.0 15.0 + 1 0.264965 0.466014 0.948295 0.728345 0.720552 0.712142 + 2 0.205441 0.747801 0.0230207 0.569377 0.196434 0.590044 + 3 0.77522 0.434027 0.586515 0.402482 0.700836 0.55636 + 4 0.282311 0.926022 0.565839 0.232697 0.513538 0.646746 + 5 0.865716 0.246708 0.974797 0.690601 0.497239 0.619666

INFO

At the moment there is no support to save a DimArray directly into disk as a NetCDF or a Zarr file.

`,25)]))}const g=a(e,[["render",l]]);export{c as __pageData,g as default}; diff --git a/previews/PR439/assets/UserGuide_convert.md.CNBOJiLd.lean.js b/previews/PR439/assets/UserGuide_convert.md.nKMCMtPl.lean.js similarity index 85% rename from previews/PR439/assets/UserGuide_convert.md.CNBOJiLd.lean.js rename to previews/PR439/assets/UserGuide_convert.md.nKMCMtPl.lean.js index 0276a30e..6d304578 100644 --- a/previews/PR439/assets/UserGuide_convert.md.CNBOJiLd.lean.js +++ b/previews/PR439/assets/UserGuide_convert.md.nKMCMtPl.lean.js @@ -1,4 +1,4 @@ -import{_ as a,c as n,a2 as i,o as p}from"./chunks/framework.DsPJznl_.js";const c=JSON.parse('{"title":"Convert YAXArrays","description":"","frontmatter":{},"headers":[],"relativePath":"UserGuide/convert.md","filePath":"UserGuide/convert.md","lastUpdated":null}'),e={name:"UserGuide/convert.md"};function l(t,s,r,h,d,k){return p(),n("div",null,s[0]||(s[0]=[i(`

Convert YAXArrays

This section describes how to convert variables from types of other Julia packages into YAXArrays and vice versa.

WARNING

YAXArrays is designed to work with large datasets that are way larger than the memory. However, most types are designed to work in memory. Those conversions are only possible if the entire dataset fits into memory. In addition, metadata might be lost during conversion.

Convert Base.Array

Convert Base.Array to YAXArray:

julia
using YAXArrays
+import{_ as a,c as n,a2 as i,o as p}from"./chunks/framework.eQVMtpgY.js";const c=JSON.parse('{"title":"Convert YAXArrays","description":"","frontmatter":{},"headers":[],"relativePath":"UserGuide/convert.md","filePath":"UserGuide/convert.md","lastUpdated":null}'),e={name:"UserGuide/convert.md"};function l(t,s,r,h,d,k){return p(),n("div",null,s[0]||(s[0]=[i(`

Convert YAXArrays

This section describes how to convert variables from types of other Julia packages into YAXArrays and vice versa.

WARNING

YAXArrays is designed to work with large datasets that are way larger than the memory. However, most types are designed to work in memory. Those conversions are only possible if the entire dataset fits into memory. In addition, metadata might be lost during conversion.

Convert Base.Array

Convert Base.Array to YAXArray:

julia
using YAXArrays
 
 m = rand(5,10)
 a = YAXArray(m)
╭──────────────────────────╮
@@ -11,11 +11,11 @@ import{_ as a,c as n,a2 as i,o as p}from"./chunks/framework.DsPJznl_.js";const c
 ├────────────────────────────────────────────────────────── file size ┤ 
   file size: 400.0 bytes
 └─────────────────────────────────────────────────────────────────────┘

Convert YAXArray to Base.Array:

julia
m2 = collect(a.data)
5×10 Matrix{Float64}:
- 0.115843  0.669061   0.195342  0.229731   …  0.227539  0.081909  0.314714
- 0.635349  0.903146   0.970858  0.215574      0.379958  0.711856  0.704581
- 0.221764  0.360597   0.980693  0.0366927     0.454727  0.230081  0.222322
- 0.114142  0.399464   0.409563  0.200687      0.10145   0.800783  0.312572
- 0.310954  0.0321161  0.834424  0.577708      0.866623  0.901677  0.430147

Convert Raster

A Raster as defined in Rasters.jl has a same supertype of a YAXArray, i.e. AbstractDimArray, allowing easy conversion between those types:

julia
using Rasters
+ 0.484561  0.803933  0.189091  0.395566    …  0.962957  0.149532  0.26951
+ 0.126368  0.387986  0.731763  0.693869       0.162052  0.245398  0.778103
+ 0.270034  0.748773  0.450236  0.853685       0.958344  0.390335  0.0344221
+ 0.227521  0.760578  0.416932  0.00610615     0.387394  0.961764  0.197056
+ 0.640734  0.16954   0.845502  0.896575       0.105085  0.750315  0.264853

Convert Raster

A Raster as defined in Rasters.jl has a same supertype of a YAXArray, i.e. AbstractDimArray, allowing easy conversion between those types:

julia
using Rasters
 
 lon, lat = X(25:1:30), Y(25:1:30)
 time = Ti(2000:2024)
@@ -43,13 +43,13 @@ import{_ as a,c as n,a2 as i,o as p}from"./chunks/framework.DsPJznl_.js";const c
 
 └─────────────────────────────────────────────────────────────┘
 [:, :, 1]
-  ↓ →  25         26          27         28          29         30
- 25     0.139148   0.578852    0.746641   0.0187872   0.342119   0.293102
- 26     0.989301   0.380869    0.617808   0.584291    0.72839    0.501212
- 27     0.961969   0.0176159   0.338304   0.79872     0.923123   0.393892
- 28     0.813539   0.764608    0.258699   0.290818    0.832117   0.854122
- 29     0.263795   0.305973    0.253437   0.156236    0.669616   0.944509
- 30     0.840391   0.647845    0.744671   0.909935    0.150634   0.99587

Convert DimArray

A DimArray as defined in DimensionalData.jl has a same supertype of a YAXArray, i.e. AbstractDimArray, allowing easy conversion between those types.

Convert DimArray to YAXArray:

julia
using DimensionalData
+  ↓ →  25         26         27         28         29         30
+ 25     0.277672   0.19274    0.968417   0.321261   0.97809    0.475251
+ 26     0.197907   0.276032   0.797333   0.176799   0.217855   0.829992
+ 27     0.752389   0.896784   0.497162   0.110372   0.558261   0.883881
+ 28     0.970757   0.826902   0.77086    0.377284   0.355369   0.235685
+ 29     0.18551    0.74541    0.699567   0.321023   0.771126   0.789024
+ 30     0.288074   0.531563   0.283969   0.292206   0.418466   0.673577

Convert DimArray

A DimArray as defined in DimensionalData.jl has a same supertype of a YAXArray, i.e. AbstractDimArray, allowing easy conversion between those types.

Convert DimArray to YAXArray:

julia
using DimensionalData
 using YAXArrayBase
 
 dim_arr = rand(X(1:5), Y(10.0:15.0), metadata = Dict{String, Any}())
@@ -70,9 +70,9 @@ import{_ as a,c as n,a2 as i,o as p}from"./chunks/framework.DsPJznl_.js";const c
 ├──────────────────────────────────────────────────────── metadata ┤
   Dict{String, Any}()
 └──────────────────────────────────────────────────────────────────┘
- ↓ →  10.0       11.0       12.0       13.0       14.0        15.0
- 1     0.334679   0.213897   0.682063   0.352361   0.753249    0.29025
- 2     0.133485   0.543411   0.903195   0.395338   0.245134    0.0604828
- 3     0.950426   0.774508   0.225497   0.887044   0.892528    0.18627
- 4     0.359681   0.684082   0.679104   0.543572   0.745564    0.256489
- 5     0.53943    0.388524   0.272469   0.529827   0.0449176   0.355221

INFO

At the moment there is no support to save a DimArray directly into disk as a NetCDF or a Zarr file.

`,25)]))}const g=a(e,[["render",l]]);export{c as __pageData,g as default}; + ↓ → 10.0 11.0 12.0 13.0 14.0 15.0 + 1 0.264965 0.466014 0.948295 0.728345 0.720552 0.712142 + 2 0.205441 0.747801 0.0230207 0.569377 0.196434 0.590044 + 3 0.77522 0.434027 0.586515 0.402482 0.700836 0.55636 + 4 0.282311 0.926022 0.565839 0.232697 0.513538 0.646746 + 5 0.865716 0.246708 0.974797 0.690601 0.497239 0.619666

INFO

At the moment there is no support to save a DimArray directly into disk as a NetCDF or a Zarr file.

`,25)]))}const g=a(e,[["render",l]]);export{c as __pageData,g as default}; diff --git a/previews/PR439/assets/UserGuide_create.md.gFPkFgUd.js b/previews/PR439/assets/UserGuide_create.md.BK-99Q8y.js similarity index 99% rename from previews/PR439/assets/UserGuide_create.md.gFPkFgUd.js rename to previews/PR439/assets/UserGuide_create.md.BK-99Q8y.js index c71cb26c..3ebf4ac9 100644 --- a/previews/PR439/assets/UserGuide_create.md.gFPkFgUd.js +++ b/previews/PR439/assets/UserGuide_create.md.BK-99Q8y.js @@ -1,4 +1,4 @@ -import{_ as a,c as i,a2 as n,o as t}from"./chunks/framework.DsPJznl_.js";const g=JSON.parse('{"title":"Create YAXArrays and Datasets","description":"","frontmatter":{},"headers":[],"relativePath":"UserGuide/create.md","filePath":"UserGuide/create.md","lastUpdated":null}'),e={name:"UserGuide/create.md"};function p(l,s,h,k,r,d){return t(),i("div",null,s[0]||(s[0]=[n(`

Create YAXArrays and Datasets

This section describes how to create arrays and datasets by filling values directly.

Create a YAXArray

We can create a new YAXArray by filling the values directly:

julia
using YAXArrays
+import{_ as a,c as i,a2 as n,o as t}from"./chunks/framework.eQVMtpgY.js";const g=JSON.parse('{"title":"Create YAXArrays and Datasets","description":"","frontmatter":{},"headers":[],"relativePath":"UserGuide/create.md","filePath":"UserGuide/create.md","lastUpdated":null}'),e={name:"UserGuide/create.md"};function p(l,s,h,k,r,d){return t(),i("div",null,s[0]||(s[0]=[n(`

Create YAXArrays and Datasets

This section describes how to create arrays and datasets by filling values directly.

Create a YAXArray

We can create a new YAXArray by filling the values directly:

julia
using YAXArrays
 a1 = YAXArray(rand(10, 20, 5))
╭─────────────────────────────╮
 │ 10×20×5 YAXArray{Float64,3} │
 ├─────────────────────────────┴────────────────────────────────── dims ┐
diff --git a/previews/PR439/assets/UserGuide_create.md.gFPkFgUd.lean.js b/previews/PR439/assets/UserGuide_create.md.BK-99Q8y.lean.js
similarity index 99%
rename from previews/PR439/assets/UserGuide_create.md.gFPkFgUd.lean.js
rename to previews/PR439/assets/UserGuide_create.md.BK-99Q8y.lean.js
index c71cb26c..3ebf4ac9 100644
--- a/previews/PR439/assets/UserGuide_create.md.gFPkFgUd.lean.js
+++ b/previews/PR439/assets/UserGuide_create.md.BK-99Q8y.lean.js
@@ -1,4 +1,4 @@
-import{_ as a,c as i,a2 as n,o as t}from"./chunks/framework.DsPJznl_.js";const g=JSON.parse('{"title":"Create YAXArrays and Datasets","description":"","frontmatter":{},"headers":[],"relativePath":"UserGuide/create.md","filePath":"UserGuide/create.md","lastUpdated":null}'),e={name:"UserGuide/create.md"};function p(l,s,h,k,r,d){return t(),i("div",null,s[0]||(s[0]=[n(`

Create YAXArrays and Datasets

This section describes how to create arrays and datasets by filling values directly.

Create a YAXArray

We can create a new YAXArray by filling the values directly:

julia
using YAXArrays
+import{_ as a,c as i,a2 as n,o as t}from"./chunks/framework.eQVMtpgY.js";const g=JSON.parse('{"title":"Create YAXArrays and Datasets","description":"","frontmatter":{},"headers":[],"relativePath":"UserGuide/create.md","filePath":"UserGuide/create.md","lastUpdated":null}'),e={name:"UserGuide/create.md"};function p(l,s,h,k,r,d){return t(),i("div",null,s[0]||(s[0]=[n(`

Create YAXArrays and Datasets

This section describes how to create arrays and datasets by filling values directly.

Create a YAXArray

We can create a new YAXArray by filling the values directly:

julia
using YAXArrays
 a1 = YAXArray(rand(10, 20, 5))
╭─────────────────────────────╮
 │ 10×20×5 YAXArray{Float64,3} │
 ├─────────────────────────────┴────────────────────────────────── dims ┐
diff --git a/previews/PR439/assets/UserGuide_faq.md.BP6xwZhs.js b/previews/PR439/assets/UserGuide_faq.md.CV4pRDSp.js
similarity index 98%
rename from previews/PR439/assets/UserGuide_faq.md.BP6xwZhs.js
rename to previews/PR439/assets/UserGuide_faq.md.CV4pRDSp.js
index 1d049ddb..403ccffc 100644
--- a/previews/PR439/assets/UserGuide_faq.md.BP6xwZhs.js
+++ b/previews/PR439/assets/UserGuide_faq.md.CV4pRDSp.js
@@ -1,4 +1,4 @@
-import{_ as i,c as a,a2 as n,o as e}from"./chunks/framework.DsPJznl_.js";const t="/YAXArrays.jl/previews/PR439/assets/tmxiuji.DubXWmj2.jpeg",o=JSON.parse('{"title":"Frequently Asked Questions (FAQ)","description":"","frontmatter":{},"headers":[],"relativePath":"UserGuide/faq.md","filePath":"UserGuide/faq.md","lastUpdated":null}'),l={name:"UserGuide/faq.md"};function h(p,s,k,d,r,g){return e(),a("div",null,s[0]||(s[0]=[n(`

Frequently Asked Questions (FAQ)

The purpose of this section is to do a collection of small convinient pieces of code on how to do simple things.

Extract the axes names from a Cube

julia
using YAXArrays
+import{_ as i,c as a,a2 as n,o as e}from"./chunks/framework.eQVMtpgY.js";const t="/YAXArrays.jl/previews/PR439/assets/ocdgszm.BvmI4921.jpeg",o=JSON.parse('{"title":"Frequently Asked Questions (FAQ)","description":"","frontmatter":{},"headers":[],"relativePath":"UserGuide/faq.md","filePath":"UserGuide/faq.md","lastUpdated":null}'),l={name:"UserGuide/faq.md"};function h(p,s,k,d,r,g){return e(),a("div",null,s[0]||(s[0]=[n(`

Frequently Asked Questions (FAQ)

The purpose of this section is to do a collection of small convinient pieces of code on how to do simple things.

Extract the axes names from a Cube

julia
using YAXArrays
 using DimensionalData
julia
julia> c = YAXArray(rand(10, 10, 5))
╭─────────────────────────────╮
 10×10×5 YAXArray{Float64,3}
 ├─────────────────────────────┴────────────────────────────────────────── dims ┐
@@ -194,18 +194,18 @@ import{_ as i,c as a,a2 as n,o as e}from"./chunks/framework.DsPJznl_.js";const t
 None
 Variables with additional axes:
   Additional Axes: 
-  (↓ points Sampled{Int64} [3, 6, …, 99, 100] ForwardOrdered Irregular Points)
+  (↓ points Sampled{Int64} [1, 3, …, 90, 91] ForwardOrdered Irregular Points,
+  → Time   Sampled{Date} Date("2020-01-01"):Dates.Month(1):Date("2022-12-01") ForwardOrdered Regular Points)
   Variables: 
-  longitudes
+  temperature
 
   Additional Axes: 
-  (↓ points Sampled{Int64} [3, 6, …, 99, 100] ForwardOrdered Irregular Points,
-  → Time   Sampled{Date} Date("2020-01-01"):Dates.Month(1):Date("2022-12-01") ForwardOrdered Regular Points)
+  (↓ points Sampled{Int64} [1, 3, …, 90, 91] ForwardOrdered Irregular Points)
   Variables: 
-  temperature
+  longitudes
 
   Additional Axes: 
-  (↓ points Sampled{Int64} [3, 6, …, 99, 100] ForwardOrdered Irregular Points)
+  (↓ points Sampled{Int64} [1, 3, …, 90, 91] ForwardOrdered Irregular Points)
   Variables: 
   latitudes

If your dataset has been read from a file with Cube it is not loaded into memory, and you have to load the latitudes and longitudes YAXArrays into memory:

julia
latitudes_yasxa  = readcubedata(ds["latitudes"])
 longitudes_yasxa = readcubedata(ds["longitudes"])
@@ -217,18 +217,18 @@ import{_ as i,c as a,a2 as n,o as e}from"./chunks/framework.DsPJznl_.js";const t
 None
 Variables with additional axes:
   Additional Axes: 
-  (↓ points Sampled{Int64} [3, 6, …, 99, 100] ForwardOrdered Irregular Points)
+  (↓ points Sampled{Int64} [1, 3, …, 90, 91] ForwardOrdered Irregular Points)
   Variables: 
   latitudes
 
   Additional Axes: 
-  (↓ points Sampled{Int64} [3, 6, …, 99, 100] ForwardOrdered Irregular Points,
+  (↓ points Sampled{Int64} [1, 3, …, 90, 91] ForwardOrdered Irregular Points,
   → Time   Sampled{Date} Date("2020-01-01"):Dates.Month(1):Date("2022-12-01") ForwardOrdered Regular Points)
   Variables: 
   temperature
 
   Additional Axes: 
-  (↓ points Sampled{Int64} [3, 6, …, 99, 100] ForwardOrdered Irregular Points)
+  (↓ points Sampled{Int64} [1, 3, …, 90, 91] ForwardOrdered Irregular Points)
   Variables: 
   longitudes

How do I apply map algebra?

Our next step is map algebra computations. This can be done effectively using the 'map' function. For example:

Multiplying cubes with only spatio-temporal dimensions

julia
julia> map((x, y) -> x * y, ds1, ds2)
╭──────────────────────────────╮
 20×10×15 YAXArray{Float64,3}
@@ -323,7 +323,7 @@ import{_ as i,c as a,a2 as n,o as e}from"./chunks/framework.DsPJznl_.js";const t
   (Dim_1 Sampled{Int64} Base.OneTo(10) ForwardOrdered Regular Points,
 Dim_2 Sampled{Int64} Base.OneTo(5) ForwardOrdered Regular Points)
   Variables: 
-  b

Ho do I construct a Dataset from a TimeArray

In this section we will use MarketData.jl and TimeSeries.jl to simulate some stocks.

julia
using YAXArrays, DimensionalData
+  b

WARNING

You will not be able to save this dataset, first you will need to rename those dimensions with the same name but different values.

Ho do I construct a Dataset from a TimeArray

In this section we will use MarketData.jl and TimeSeries.jl to simulate some stocks.

julia
using YAXArrays, DimensionalData
 using MarketData, TimeSeries
 
 stocks = Dict(:Stock1 => random_ohlcv(), :Stock2 => random_ohlcv(), :Stock3 => random_ohlcv())
@@ -338,7 +338,7 @@ import{_ as i,c as a,a2 as n,o as e}from"./chunks/framework.DsPJznl_.js";const t
   (time     Sampled{DateTime} [2020-01-01T00:00:00, …, 2020-01-21T19:00:00] ForwardOrdered Irregular Points,
 variable Categorical{Symbol} [:Open, :High, :Low, :Close, :Volume] Unordered)
   Variables: 
-  Stock2
+  Stock1
 
   Additional Axes: 
   (time     Sampled{DateTime} [2020-01-01T00:00:00, …, 2020-01-21T19:00:00] ForwardOrdered Irregular Points,
@@ -350,10 +350,10 @@ import{_ as i,c as a,a2 as n,o as e}from"./chunks/framework.DsPJznl_.js";const t
   (time     Sampled{DateTime} [2020-01-01T00:00:00, …, 2020-01-21T19:00:00] ForwardOrdered Irregular Points,
 variable Categorical{Symbol} [:Open, :High, :Low, :Close, :Volume] Unordered)
   Variables: 
-  Stock1

and, it looks like there some small differences in the axes, they are being printed independently although they should be the same. Well, they are at least at the == level but not at ===. We could use the axes from one YAXArray as reference and rebuild all the others

julia
yax_list = [rebuild(yax_list[1], values(stocks[k])) for k in d_keys];

and voilà

julia
julia> ds = Dataset(; (d_keys .=> yax_list)...)
YAXArray Dataset
+  Stock2

and, it looks like there some small differences in the axes, they are being printed independently although they should be the same. Well, they are at least at the == level but not at ===. We could use the axes from one YAXArray as reference and rebuild all the others

julia
yax_list = [rebuild(yax_list[1], values(stocks[k])) for k in d_keys];

and voilà

julia
julia> ds = Dataset(; (d_keys .=> yax_list)...)
YAXArray Dataset
 Shared Axes:
   (time     Sampled{DateTime} [2020-01-01T00:00:00, …, 2020-01-21T19:00:00] ForwardOrdered Irregular Points,
 variable Categorical{Symbol} [:Open, :High, :Low, :Close, :Volume] Unordered)
 
 Variables: 
-Stock1, Stock2, Stock3

now they are printed together, showing that is exactly the same axis structure for all variables.

`,141)]))}const E=i(l,[["render",h]]);export{o as __pageData,E as default}; +Stock1, Stock2, Stock3

now they are printed together, showing that is exactly the same axis structure for all variables.

`,142)]))}const E=i(l,[["render",h]]);export{o as __pageData,E as default}; diff --git a/previews/PR439/assets/UserGuide_faq.md.BP6xwZhs.lean.js b/previews/PR439/assets/UserGuide_faq.md.CV4pRDSp.lean.js similarity index 98% rename from previews/PR439/assets/UserGuide_faq.md.BP6xwZhs.lean.js rename to previews/PR439/assets/UserGuide_faq.md.CV4pRDSp.lean.js index 1d049ddb..403ccffc 100644 --- a/previews/PR439/assets/UserGuide_faq.md.BP6xwZhs.lean.js +++ b/previews/PR439/assets/UserGuide_faq.md.CV4pRDSp.lean.js @@ -1,4 +1,4 @@ -import{_ as i,c as a,a2 as n,o as e}from"./chunks/framework.DsPJznl_.js";const t="/YAXArrays.jl/previews/PR439/assets/tmxiuji.DubXWmj2.jpeg",o=JSON.parse('{"title":"Frequently Asked Questions (FAQ)","description":"","frontmatter":{},"headers":[],"relativePath":"UserGuide/faq.md","filePath":"UserGuide/faq.md","lastUpdated":null}'),l={name:"UserGuide/faq.md"};function h(p,s,k,d,r,g){return e(),a("div",null,s[0]||(s[0]=[n(`

Frequently Asked Questions (FAQ)

The purpose of this section is to do a collection of small convinient pieces of code on how to do simple things.

Extract the axes names from a Cube

julia
using YAXArrays
+import{_ as i,c as a,a2 as n,o as e}from"./chunks/framework.eQVMtpgY.js";const t="/YAXArrays.jl/previews/PR439/assets/ocdgszm.BvmI4921.jpeg",o=JSON.parse('{"title":"Frequently Asked Questions (FAQ)","description":"","frontmatter":{},"headers":[],"relativePath":"UserGuide/faq.md","filePath":"UserGuide/faq.md","lastUpdated":null}'),l={name:"UserGuide/faq.md"};function h(p,s,k,d,r,g){return e(),a("div",null,s[0]||(s[0]=[n(`

Frequently Asked Questions (FAQ)

The purpose of this section is to do a collection of small convinient pieces of code on how to do simple things.

Extract the axes names from a Cube

julia
using YAXArrays
 using DimensionalData
julia
julia> c = YAXArray(rand(10, 10, 5))
╭─────────────────────────────╮
 10×10×5 YAXArray{Float64,3}
 ├─────────────────────────────┴────────────────────────────────────────── dims ┐
@@ -194,18 +194,18 @@ import{_ as i,c as a,a2 as n,o as e}from"./chunks/framework.DsPJznl_.js";const t
 None
 Variables with additional axes:
   Additional Axes: 
-  (↓ points Sampled{Int64} [3, 6, …, 99, 100] ForwardOrdered Irregular Points)
+  (↓ points Sampled{Int64} [1, 3, …, 90, 91] ForwardOrdered Irregular Points,
+  → Time   Sampled{Date} Date("2020-01-01"):Dates.Month(1):Date("2022-12-01") ForwardOrdered Regular Points)
   Variables: 
-  longitudes
+  temperature
 
   Additional Axes: 
-  (↓ points Sampled{Int64} [3, 6, …, 99, 100] ForwardOrdered Irregular Points,
-  → Time   Sampled{Date} Date("2020-01-01"):Dates.Month(1):Date("2022-12-01") ForwardOrdered Regular Points)
+  (↓ points Sampled{Int64} [1, 3, …, 90, 91] ForwardOrdered Irregular Points)
   Variables: 
-  temperature
+  longitudes
 
   Additional Axes: 
-  (↓ points Sampled{Int64} [3, 6, …, 99, 100] ForwardOrdered Irregular Points)
+  (↓ points Sampled{Int64} [1, 3, …, 90, 91] ForwardOrdered Irregular Points)
   Variables: 
   latitudes

If your dataset has been read from a file with Cube it is not loaded into memory, and you have to load the latitudes and longitudes YAXArrays into memory:

julia
latitudes_yasxa  = readcubedata(ds["latitudes"])
 longitudes_yasxa = readcubedata(ds["longitudes"])
@@ -217,18 +217,18 @@ import{_ as i,c as a,a2 as n,o as e}from"./chunks/framework.DsPJznl_.js";const t
 None
 Variables with additional axes:
   Additional Axes: 
-  (↓ points Sampled{Int64} [3, 6, …, 99, 100] ForwardOrdered Irregular Points)
+  (↓ points Sampled{Int64} [1, 3, …, 90, 91] ForwardOrdered Irregular Points)
   Variables: 
   latitudes
 
   Additional Axes: 
-  (↓ points Sampled{Int64} [3, 6, …, 99, 100] ForwardOrdered Irregular Points,
+  (↓ points Sampled{Int64} [1, 3, …, 90, 91] ForwardOrdered Irregular Points,
   → Time   Sampled{Date} Date("2020-01-01"):Dates.Month(1):Date("2022-12-01") ForwardOrdered Regular Points)
   Variables: 
   temperature
 
   Additional Axes: 
-  (↓ points Sampled{Int64} [3, 6, …, 99, 100] ForwardOrdered Irregular Points)
+  (↓ points Sampled{Int64} [1, 3, …, 90, 91] ForwardOrdered Irregular Points)
   Variables: 
   longitudes

How do I apply map algebra?

Our next step is map algebra computations. This can be done effectively using the 'map' function. For example:

Multiplying cubes with only spatio-temporal dimensions

julia
julia> map((x, y) -> x * y, ds1, ds2)
╭──────────────────────────────╮
 20×10×15 YAXArray{Float64,3}
@@ -323,7 +323,7 @@ import{_ as i,c as a,a2 as n,o as e}from"./chunks/framework.DsPJznl_.js";const t
   (Dim_1 Sampled{Int64} Base.OneTo(10) ForwardOrdered Regular Points,
 Dim_2 Sampled{Int64} Base.OneTo(5) ForwardOrdered Regular Points)
   Variables: 
-  b

Ho do I construct a Dataset from a TimeArray

In this section we will use MarketData.jl and TimeSeries.jl to simulate some stocks.

julia
using YAXArrays, DimensionalData
+  b

WARNING

You will not be able to save this dataset, first you will need to rename those dimensions with the same name but different values.

Ho do I construct a Dataset from a TimeArray

In this section we will use MarketData.jl and TimeSeries.jl to simulate some stocks.

julia
using YAXArrays, DimensionalData
 using MarketData, TimeSeries
 
 stocks = Dict(:Stock1 => random_ohlcv(), :Stock2 => random_ohlcv(), :Stock3 => random_ohlcv())
@@ -338,7 +338,7 @@ import{_ as i,c as a,a2 as n,o as e}from"./chunks/framework.DsPJznl_.js";const t
   (time     Sampled{DateTime} [2020-01-01T00:00:00, …, 2020-01-21T19:00:00] ForwardOrdered Irregular Points,
 variable Categorical{Symbol} [:Open, :High, :Low, :Close, :Volume] Unordered)
   Variables: 
-  Stock2
+  Stock1
 
   Additional Axes: 
   (time     Sampled{DateTime} [2020-01-01T00:00:00, …, 2020-01-21T19:00:00] ForwardOrdered Irregular Points,
@@ -350,10 +350,10 @@ import{_ as i,c as a,a2 as n,o as e}from"./chunks/framework.DsPJznl_.js";const t
   (time     Sampled{DateTime} [2020-01-01T00:00:00, …, 2020-01-21T19:00:00] ForwardOrdered Irregular Points,
 variable Categorical{Symbol} [:Open, :High, :Low, :Close, :Volume] Unordered)
   Variables: 
-  Stock1

and, it looks like there some small differences in the axes, they are being printed independently although they should be the same. Well, they are at least at the == level but not at ===. We could use the axes from one YAXArray as reference and rebuild all the others

julia
yax_list = [rebuild(yax_list[1], values(stocks[k])) for k in d_keys];

and voilà

julia
julia> ds = Dataset(; (d_keys .=> yax_list)...)
YAXArray Dataset
+  Stock2

and, it looks like there some small differences in the axes, they are being printed independently although they should be the same. Well, they are at least at the == level but not at ===. We could use the axes from one YAXArray as reference and rebuild all the others

julia
yax_list = [rebuild(yax_list[1], values(stocks[k])) for k in d_keys];

and voilà

julia
julia> ds = Dataset(; (d_keys .=> yax_list)...)
YAXArray Dataset
 Shared Axes:
   (time     Sampled{DateTime} [2020-01-01T00:00:00, …, 2020-01-21T19:00:00] ForwardOrdered Irregular Points,
 variable Categorical{Symbol} [:Open, :High, :Low, :Close, :Volume] Unordered)
 
 Variables: 
-Stock1, Stock2, Stock3

now they are printed together, showing that is exactly the same axis structure for all variables.

`,141)]))}const E=i(l,[["render",h]]);export{o as __pageData,E as default}; +Stock1, Stock2, Stock3

now they are printed together, showing that is exactly the same axis structure for all variables.

`,142)]))}const E=i(l,[["render",h]]);export{o as __pageData,E as default}; diff --git a/previews/PR439/assets/UserGuide_group.md.DSkdS4D2.js b/previews/PR439/assets/UserGuide_group.md.DtC221VH.js similarity index 99% rename from previews/PR439/assets/UserGuide_group.md.DSkdS4D2.js rename to previews/PR439/assets/UserGuide_group.md.DtC221VH.js index 0f8504a4..d562a423 100644 --- a/previews/PR439/assets/UserGuide_group.md.DSkdS4D2.js +++ b/previews/PR439/assets/UserGuide_group.md.DtC221VH.js @@ -1,4 +1,4 @@ -import{_ as i,c as a,a2 as n,o as e}from"./chunks/framework.DsPJznl_.js";const t="/YAXArrays.jl/previews/PR439/assets/btujvon.CBBZcGwj.png",y=JSON.parse('{"title":"Group YAXArrays and Datasets","description":"","frontmatter":{},"headers":[],"relativePath":"UserGuide/group.md","filePath":"UserGuide/group.md","lastUpdated":null}'),l={name:"UserGuide/group.md"};function h(p,s,k,d,r,g){return e(),a("div",null,s[0]||(s[0]=[n(`

Group YAXArrays and Datasets

The following examples will use the groupby function to calculate temporal and spatial averages.

julia
using YAXArrays, DimensionalData
+import{_ as i,c as a,a2 as n,o as e}from"./chunks/framework.eQVMtpgY.js";const t="/YAXArrays.jl/previews/PR439/assets/hpxlcxg.CBBZcGwj.png",y=JSON.parse('{"title":"Group YAXArrays and Datasets","description":"","frontmatter":{},"headers":[],"relativePath":"UserGuide/group.md","filePath":"UserGuide/group.md","lastUpdated":null}'),l={name:"UserGuide/group.md"};function h(p,s,k,d,r,g){return e(),a("div",null,s[0]||(s[0]=[n(`

Group YAXArrays and Datasets

The following examples will use the groupby function to calculate temporal and spatial averages.

julia
using YAXArrays, DimensionalData
 using NetCDF
 using Downloads
 using Dates
diff --git a/previews/PR439/assets/UserGuide_group.md.DSkdS4D2.lean.js b/previews/PR439/assets/UserGuide_group.md.DtC221VH.lean.js
similarity index 99%
rename from previews/PR439/assets/UserGuide_group.md.DSkdS4D2.lean.js
rename to previews/PR439/assets/UserGuide_group.md.DtC221VH.lean.js
index 0f8504a4..d562a423 100644
--- a/previews/PR439/assets/UserGuide_group.md.DSkdS4D2.lean.js
+++ b/previews/PR439/assets/UserGuide_group.md.DtC221VH.lean.js
@@ -1,4 +1,4 @@
-import{_ as i,c as a,a2 as n,o as e}from"./chunks/framework.DsPJznl_.js";const t="/YAXArrays.jl/previews/PR439/assets/btujvon.CBBZcGwj.png",y=JSON.parse('{"title":"Group YAXArrays and Datasets","description":"","frontmatter":{},"headers":[],"relativePath":"UserGuide/group.md","filePath":"UserGuide/group.md","lastUpdated":null}'),l={name:"UserGuide/group.md"};function h(p,s,k,d,r,g){return e(),a("div",null,s[0]||(s[0]=[n(`

Group YAXArrays and Datasets

The following examples will use the groupby function to calculate temporal and spatial averages.

julia
using YAXArrays, DimensionalData
+import{_ as i,c as a,a2 as n,o as e}from"./chunks/framework.eQVMtpgY.js";const t="/YAXArrays.jl/previews/PR439/assets/hpxlcxg.CBBZcGwj.png",y=JSON.parse('{"title":"Group YAXArrays and Datasets","description":"","frontmatter":{},"headers":[],"relativePath":"UserGuide/group.md","filePath":"UserGuide/group.md","lastUpdated":null}'),l={name:"UserGuide/group.md"};function h(p,s,k,d,r,g){return e(),a("div",null,s[0]||(s[0]=[n(`

Group YAXArrays and Datasets

The following examples will use the groupby function to calculate temporal and spatial averages.

julia
using YAXArrays, DimensionalData
 using NetCDF
 using Downloads
 using Dates
diff --git a/previews/PR439/assets/UserGuide_read.md.BJ8u47O-.js b/previews/PR439/assets/UserGuide_read.md.DhrhYHR5.js
similarity index 97%
rename from previews/PR439/assets/UserGuide_read.md.BJ8u47O-.js
rename to previews/PR439/assets/UserGuide_read.md.DhrhYHR5.js
index a40cec2e..8f2518c8 100644
--- a/previews/PR439/assets/UserGuide_read.md.BJ8u47O-.js
+++ b/previews/PR439/assets/UserGuide_read.md.DhrhYHR5.js
@@ -1,4 +1,4 @@
-import{_ as a,c as n,a2 as t,o as i}from"./chunks/framework.DsPJznl_.js";const c=JSON.parse('{"title":"Read YAXArrays and Datasets","description":"","frontmatter":{},"headers":[],"relativePath":"UserGuide/read.md","filePath":"UserGuide/read.md","lastUpdated":null}'),e={name:"UserGuide/read.md"};function p(l,s,o,r,d,h){return i(),n("div",null,s[0]||(s[0]=[t(`

Read YAXArrays and Datasets

This section describes how to read files, URLs, and directories into YAXArrays and datasets.

Read Zarr

Open a Zarr store as a Dataset:

julia
using YAXArrays
+import{_ as a,c as n,a2 as t,o as i}from"./chunks/framework.eQVMtpgY.js";const c=JSON.parse('{"title":"Read YAXArrays and Datasets","description":"","frontmatter":{},"headers":[],"relativePath":"UserGuide/read.md","filePath":"UserGuide/read.md","lastUpdated":null}'),e={name:"UserGuide/read.md"};function p(l,s,o,r,d,u){return i(),n("div",null,s[0]||(s[0]=[t(`

Read YAXArrays and Datasets

This section describes how to read files, URLs, and directories into YAXArrays and datasets.

Read Zarr

Open a Zarr store as a Dataset:

julia
using YAXArrays
 using Zarr
 path="gs://cmip6/CMIP6/ScenarioMIP/DKRZ/MPI-ESM1-2-HR/ssp585/r1i1p1f1/3hr/tas/gn/v20190710/"
 store = zopen(path, consolidated=true)
@@ -75,8 +75,6 @@ import{_ as a,c as n,a2 as t,o as i}from"./chunks/framework.DsPJznl_.js";const c
 using Downloads: download
 
 path = download("https://github.com/yeesian/ArchGDALDatasets/raw/307f8f0e584a39a050c042849004e6a2bd674f99/gdalworkshop/world.tif", "world.tif")
-ds = open_dataset(path)
-nothing
 ds = open_dataset(path)
YAXArray Dataset
 Shared Axes: 
   (↓ X Sampled{Float64} -180.0:0.17578125:179.82421875 ForwardOrdered Regular Points,
diff --git a/previews/PR439/assets/UserGuide_read.md.BJ8u47O-.lean.js b/previews/PR439/assets/UserGuide_read.md.DhrhYHR5.lean.js
similarity index 97%
rename from previews/PR439/assets/UserGuide_read.md.BJ8u47O-.lean.js
rename to previews/PR439/assets/UserGuide_read.md.DhrhYHR5.lean.js
index a40cec2e..8f2518c8 100644
--- a/previews/PR439/assets/UserGuide_read.md.BJ8u47O-.lean.js
+++ b/previews/PR439/assets/UserGuide_read.md.DhrhYHR5.lean.js
@@ -1,4 +1,4 @@
-import{_ as a,c as n,a2 as t,o as i}from"./chunks/framework.DsPJznl_.js";const c=JSON.parse('{"title":"Read YAXArrays and Datasets","description":"","frontmatter":{},"headers":[],"relativePath":"UserGuide/read.md","filePath":"UserGuide/read.md","lastUpdated":null}'),e={name:"UserGuide/read.md"};function p(l,s,o,r,d,h){return i(),n("div",null,s[0]||(s[0]=[t(`

Read YAXArrays and Datasets

This section describes how to read files, URLs, and directories into YAXArrays and datasets.

Read Zarr

Open a Zarr store as a Dataset:

julia
using YAXArrays
+import{_ as a,c as n,a2 as t,o as i}from"./chunks/framework.eQVMtpgY.js";const c=JSON.parse('{"title":"Read YAXArrays and Datasets","description":"","frontmatter":{},"headers":[],"relativePath":"UserGuide/read.md","filePath":"UserGuide/read.md","lastUpdated":null}'),e={name:"UserGuide/read.md"};function p(l,s,o,r,d,u){return i(),n("div",null,s[0]||(s[0]=[t(`

Read YAXArrays and Datasets

This section describes how to read files, URLs, and directories into YAXArrays and datasets.

Read Zarr

Open a Zarr store as a Dataset:

julia
using YAXArrays
 using Zarr
 path="gs://cmip6/CMIP6/ScenarioMIP/DKRZ/MPI-ESM1-2-HR/ssp585/r1i1p1f1/3hr/tas/gn/v20190710/"
 store = zopen(path, consolidated=true)
@@ -75,8 +75,6 @@ import{_ as a,c as n,a2 as t,o as i}from"./chunks/framework.DsPJznl_.js";const c
 using Downloads: download
 
 path = download("https://github.com/yeesian/ArchGDALDatasets/raw/307f8f0e584a39a050c042849004e6a2bd674f99/gdalworkshop/world.tif", "world.tif")
-ds = open_dataset(path)
-nothing
 ds = open_dataset(path)
YAXArray Dataset
 Shared Axes: 
   (↓ X Sampled{Float64} -180.0:0.17578125:179.82421875 ForwardOrdered Regular Points,
diff --git a/previews/PR439/assets/UserGuide_select.md.tLX-52T8.js b/previews/PR439/assets/UserGuide_select.md.C6wPH9uR.js
similarity index 99%
rename from previews/PR439/assets/UserGuide_select.md.tLX-52T8.js
rename to previews/PR439/assets/UserGuide_select.md.C6wPH9uR.js
index 7b7cff14..af610a84 100644
--- a/previews/PR439/assets/UserGuide_select.md.tLX-52T8.js
+++ b/previews/PR439/assets/UserGuide_select.md.C6wPH9uR.js
@@ -1,4 +1,4 @@
-import{_ as a,c as n,a2 as i,o as e}from"./chunks/framework.DsPJznl_.js";const u=JSON.parse('{"title":"Select YAXArrays and Datasets","description":"","frontmatter":{},"headers":[],"relativePath":"UserGuide/select.md","filePath":"UserGuide/select.md","lastUpdated":null}'),t={name:"UserGuide/select.md"};function p(l,s,h,o,k,d){return e(),n("div",null,s[0]||(s[0]=[i(`

Select YAXArrays and Datasets

The dimensions or axes of an YAXArray are named making it easier to subset or query certain ranges of an array. Let's open an example Dataset used to select certain elements:

julia
using YAXArrays
+import{_ as a,c as n,a2 as i,o as e}from"./chunks/framework.eQVMtpgY.js";const u=JSON.parse('{"title":"Select YAXArrays and Datasets","description":"","frontmatter":{},"headers":[],"relativePath":"UserGuide/select.md","filePath":"UserGuide/select.md","lastUpdated":null}'),t={name:"UserGuide/select.md"};function p(l,s,h,o,k,d){return e(),n("div",null,s[0]||(s[0]=[i(`

Select YAXArrays and Datasets

The dimensions or axes of an YAXArray are named making it easier to subset or query certain ranges of an array. Let's open an example Dataset used to select certain elements:

julia
using YAXArrays
 using NetCDF
 using Downloads: download
 
diff --git a/previews/PR439/assets/UserGuide_select.md.tLX-52T8.lean.js b/previews/PR439/assets/UserGuide_select.md.C6wPH9uR.lean.js
similarity index 99%
rename from previews/PR439/assets/UserGuide_select.md.tLX-52T8.lean.js
rename to previews/PR439/assets/UserGuide_select.md.C6wPH9uR.lean.js
index 7b7cff14..af610a84 100644
--- a/previews/PR439/assets/UserGuide_select.md.tLX-52T8.lean.js
+++ b/previews/PR439/assets/UserGuide_select.md.C6wPH9uR.lean.js
@@ -1,4 +1,4 @@
-import{_ as a,c as n,a2 as i,o as e}from"./chunks/framework.DsPJznl_.js";const u=JSON.parse('{"title":"Select YAXArrays and Datasets","description":"","frontmatter":{},"headers":[],"relativePath":"UserGuide/select.md","filePath":"UserGuide/select.md","lastUpdated":null}'),t={name:"UserGuide/select.md"};function p(l,s,h,o,k,d){return e(),n("div",null,s[0]||(s[0]=[i(`

Select YAXArrays and Datasets

The dimensions or axes of an YAXArray are named making it easier to subset or query certain ranges of an array. Let's open an example Dataset used to select certain elements:

julia
using YAXArrays
+import{_ as a,c as n,a2 as i,o as e}from"./chunks/framework.eQVMtpgY.js";const u=JSON.parse('{"title":"Select YAXArrays and Datasets","description":"","frontmatter":{},"headers":[],"relativePath":"UserGuide/select.md","filePath":"UserGuide/select.md","lastUpdated":null}'),t={name:"UserGuide/select.md"};function p(l,s,h,o,k,d){return e(),n("div",null,s[0]||(s[0]=[i(`

Select YAXArrays and Datasets

The dimensions or axes of an YAXArray are named making it easier to subset or query certain ranges of an array. Let's open an example Dataset used to select certain elements:

julia
using YAXArrays
 using NetCDF
 using Downloads: download
 
diff --git a/previews/PR439/assets/UserGuide_types.md.I2GRauaH.js b/previews/PR439/assets/UserGuide_types.md.CxTnMviM.js
similarity index 97%
rename from previews/PR439/assets/UserGuide_types.md.I2GRauaH.js
rename to previews/PR439/assets/UserGuide_types.md.CxTnMviM.js
index 332954da..d95c589e 100644
--- a/previews/PR439/assets/UserGuide_types.md.I2GRauaH.js
+++ b/previews/PR439/assets/UserGuide_types.md.CxTnMviM.js
@@ -1 +1 @@
-import{_ as a,c as t,a2 as r,o as s}from"./chunks/framework.DsPJznl_.js";const u=JSON.parse('{"title":"Types","description":"","frontmatter":{},"headers":[],"relativePath":"UserGuide/types.md","filePath":"UserGuide/types.md","lastUpdated":null}'),o={name:"UserGuide/types.md"};function n(i,e,d,l,c,h){return s(),t("div",null,e[0]||(e[0]=[r('

Types

This section describes the data structures used to work with n-dimensional arrays in YAXArrays.

YAXArray

An Array stores a sequence of ordered elements of the same type usually across multiple dimensions or axes. For example, one can measure temperature across all time points of the time dimension or brightness values of a picture across X and Y dimensions. A one dimensional array is called Vector and a two dimensional array is called a Matrix. In many Machine Learning libraries, arrays are also called tensors. Arrays are designed to store dense spatial-temporal data stored in a grid, whereas a collection of sparse points is usually stored in data frames or relational databases.

A DimArray as defined by DimensionalData.jl adds names to the dimensions and their axes ticks for a given Array. These names can be used to access the data, e.g., by date instead of just by integer position.

A YAXArray is a subtype of a AbstractDimArray and adds functions to load and process the named arrays. For example, it can also handle very large arrays stored on disk that are too big to fit in memory. In addition, it provides functions for parallel computation.

Dataset

A Dataset is an ordered dictionary of YAXArrays that usually share dimensions. For example, it can bundle arrays storing temperature and precipitation that are measured at the same time points and the same locations. One also can store a picture in a Dataset with three arrays containing brightness values for red green and blue, respectively. Internally, those arrays are still separated allowing to chose different element types for each array. Analog to the (NetCDF Data Model)[https://docs.unidata.ucar.edu/netcdf-c/current/netcdf_data_model.html], a Dataset usually represents variables belonging to the same group.

(Data) Cube

A (Data) Cube is just a YAXArray in which arrays from a dataset are combined together by introducing a new dimension containing labels of which array the corresponding element came from. Unlike a Dataset, all arrays must have the same element type to be converted into a cube. This data structure is useful when we want to use all variables at once. For example, the arrays temperature and precipitation which are measured at the same locations and dates can be combined into a single cube. A more formal definition of Data Cubes are given in Mahecha et al. 2020

Dimension

A Dimension or axis as defined by DimensionalData.jl adds tick labels, e.g., to each row or column of an array. It's name is used to access particular subsets of that array.

',12)]))}const p=a(o,[["render",n]]);export{u as __pageData,p as default}; +import{_ as a,c as t,a2 as r,o as s}from"./chunks/framework.eQVMtpgY.js";const u=JSON.parse('{"title":"Types","description":"","frontmatter":{},"headers":[],"relativePath":"UserGuide/types.md","filePath":"UserGuide/types.md","lastUpdated":null}'),o={name:"UserGuide/types.md"};function n(i,e,d,l,c,h){return s(),t("div",null,e[0]||(e[0]=[r('

Types

This section describes the data structures used to work with n-dimensional arrays in YAXArrays.

YAXArray

An Array stores a sequence of ordered elements of the same type usually across multiple dimensions or axes. For example, one can measure temperature across all time points of the time dimension or brightness values of a picture across X and Y dimensions. A one dimensional array is called Vector and a two dimensional array is called a Matrix. In many Machine Learning libraries, arrays are also called tensors. Arrays are designed to store dense spatial-temporal data stored in a grid, whereas a collection of sparse points is usually stored in data frames or relational databases.

A DimArray as defined by DimensionalData.jl adds names to the dimensions and their axes ticks for a given Array. These names can be used to access the data, e.g., by date instead of just by integer position.

A YAXArray is a subtype of a AbstractDimArray and adds functions to load and process the named arrays. For example, it can also handle very large arrays stored on disk that are too big to fit in memory. In addition, it provides functions for parallel computation.

Dataset

A Dataset is an ordered dictionary of YAXArrays that usually share dimensions. For example, it can bundle arrays storing temperature and precipitation that are measured at the same time points and the same locations. One also can store a picture in a Dataset with three arrays containing brightness values for red green and blue, respectively. Internally, those arrays are still separated allowing to chose different element types for each array. Analog to the (NetCDF Data Model)[https://docs.unidata.ucar.edu/netcdf-c/current/netcdf_data_model.html], a Dataset usually represents variables belonging to the same group.

(Data) Cube

A (Data) Cube is just a YAXArray in which arrays from a dataset are combined together by introducing a new dimension containing labels of which array the corresponding element came from. Unlike a Dataset, all arrays must have the same element type to be converted into a cube. This data structure is useful when we want to use all variables at once. For example, the arrays temperature and precipitation which are measured at the same locations and dates can be combined into a single cube. A more formal definition of Data Cubes are given in Mahecha et al. 2020

Dimension

A Dimension or axis as defined by DimensionalData.jl adds tick labels, e.g., to each row or column of an array. It's name is used to access particular subsets of that array.

',12)]))}const p=a(o,[["render",n]]);export{u as __pageData,p as default}; diff --git a/previews/PR439/assets/UserGuide_types.md.I2GRauaH.lean.js b/previews/PR439/assets/UserGuide_types.md.CxTnMviM.lean.js similarity index 97% rename from previews/PR439/assets/UserGuide_types.md.I2GRauaH.lean.js rename to previews/PR439/assets/UserGuide_types.md.CxTnMviM.lean.js index 332954da..d95c589e 100644 --- a/previews/PR439/assets/UserGuide_types.md.I2GRauaH.lean.js +++ b/previews/PR439/assets/UserGuide_types.md.CxTnMviM.lean.js @@ -1 +1 @@ -import{_ as a,c as t,a2 as r,o as s}from"./chunks/framework.DsPJznl_.js";const u=JSON.parse('{"title":"Types","description":"","frontmatter":{},"headers":[],"relativePath":"UserGuide/types.md","filePath":"UserGuide/types.md","lastUpdated":null}'),o={name:"UserGuide/types.md"};function n(i,e,d,l,c,h){return s(),t("div",null,e[0]||(e[0]=[r('

Types

This section describes the data structures used to work with n-dimensional arrays in YAXArrays.

YAXArray

An Array stores a sequence of ordered elements of the same type usually across multiple dimensions or axes. For example, one can measure temperature across all time points of the time dimension or brightness values of a picture across X and Y dimensions. A one dimensional array is called Vector and a two dimensional array is called a Matrix. In many Machine Learning libraries, arrays are also called tensors. Arrays are designed to store dense spatial-temporal data stored in a grid, whereas a collection of sparse points is usually stored in data frames or relational databases.

A DimArray as defined by DimensionalData.jl adds names to the dimensions and their axes ticks for a given Array. These names can be used to access the data, e.g., by date instead of just by integer position.

A YAXArray is a subtype of a AbstractDimArray and adds functions to load and process the named arrays. For example, it can also handle very large arrays stored on disk that are too big to fit in memory. In addition, it provides functions for parallel computation.

Dataset

A Dataset is an ordered dictionary of YAXArrays that usually share dimensions. For example, it can bundle arrays storing temperature and precipitation that are measured at the same time points and the same locations. One also can store a picture in a Dataset with three arrays containing brightness values for red green and blue, respectively. Internally, those arrays are still separated allowing to chose different element types for each array. Analog to the (NetCDF Data Model)[https://docs.unidata.ucar.edu/netcdf-c/current/netcdf_data_model.html], a Dataset usually represents variables belonging to the same group.

(Data) Cube

A (Data) Cube is just a YAXArray in which arrays from a dataset are combined together by introducing a new dimension containing labels of which array the corresponding element came from. Unlike a Dataset, all arrays must have the same element type to be converted into a cube. This data structure is useful when we want to use all variables at once. For example, the arrays temperature and precipitation which are measured at the same locations and dates can be combined into a single cube. A more formal definition of Data Cubes are given in Mahecha et al. 2020

Dimension

A Dimension or axis as defined by DimensionalData.jl adds tick labels, e.g., to each row or column of an array. It's name is used to access particular subsets of that array.

',12)]))}const p=a(o,[["render",n]]);export{u as __pageData,p as default}; +import{_ as a,c as t,a2 as r,o as s}from"./chunks/framework.eQVMtpgY.js";const u=JSON.parse('{"title":"Types","description":"","frontmatter":{},"headers":[],"relativePath":"UserGuide/types.md","filePath":"UserGuide/types.md","lastUpdated":null}'),o={name:"UserGuide/types.md"};function n(i,e,d,l,c,h){return s(),t("div",null,e[0]||(e[0]=[r('

Types

This section describes the data structures used to work with n-dimensional arrays in YAXArrays.

YAXArray

An Array stores a sequence of ordered elements of the same type usually across multiple dimensions or axes. For example, one can measure temperature across all time points of the time dimension or brightness values of a picture across X and Y dimensions. A one dimensional array is called Vector and a two dimensional array is called a Matrix. In many Machine Learning libraries, arrays are also called tensors. Arrays are designed to store dense spatial-temporal data stored in a grid, whereas a collection of sparse points is usually stored in data frames or relational databases.

A DimArray as defined by DimensionalData.jl adds names to the dimensions and their axes ticks for a given Array. These names can be used to access the data, e.g., by date instead of just by integer position.

A YAXArray is a subtype of a AbstractDimArray and adds functions to load and process the named arrays. For example, it can also handle very large arrays stored on disk that are too big to fit in memory. In addition, it provides functions for parallel computation.

Dataset

A Dataset is an ordered dictionary of YAXArrays that usually share dimensions. For example, it can bundle arrays storing temperature and precipitation that are measured at the same time points and the same locations. One also can store a picture in a Dataset with three arrays containing brightness values for red green and blue, respectively. Internally, those arrays are still separated allowing to chose different element types for each array. Analog to the (NetCDF Data Model)[https://docs.unidata.ucar.edu/netcdf-c/current/netcdf_data_model.html], a Dataset usually represents variables belonging to the same group.

(Data) Cube

A (Data) Cube is just a YAXArray in which arrays from a dataset are combined together by introducing a new dimension containing labels of which array the corresponding element came from. Unlike a Dataset, all arrays must have the same element type to be converted into a cube. This data structure is useful when we want to use all variables at once. For example, the arrays temperature and precipitation which are measured at the same locations and dates can be combined into a single cube. A more formal definition of Data Cubes are given in Mahecha et al. 2020

Dimension

A Dimension or axis as defined by DimensionalData.jl adds tick labels, e.g., to each row or column of an array. It's name is used to access particular subsets of that array.

',12)]))}const p=a(o,[["render",n]]);export{u as __pageData,p as default}; diff --git a/previews/PR439/assets/UserGuide_write.md.DZ48Cyo7.js b/previews/PR439/assets/UserGuide_write.md.CKTq8NKF.js similarity index 94% rename from previews/PR439/assets/UserGuide_write.md.DZ48Cyo7.js rename to previews/PR439/assets/UserGuide_write.md.CKTq8NKF.js index 5d980667..4038e82f 100644 --- a/previews/PR439/assets/UserGuide_write.md.DZ48Cyo7.js +++ b/previews/PR439/assets/UserGuide_write.md.CKTq8NKF.js @@ -1,4 +1,4 @@ -import{_ as n,c as l,a2 as e,j as i,a,G as p,B as h,o as k}from"./chunks/framework.DsPJznl_.js";const v=JSON.parse('{"title":"Write YAXArrays and Datasets","description":"","frontmatter":{},"headers":[],"relativePath":"UserGuide/write.md","filePath":"UserGuide/write.md","lastUpdated":null}'),d={name:"UserGuide/write.md"},r={class:"jldocstring custom-block",open:""};function o(g,s,c,y,u,E){const t=h("Badge");return k(),l("div",null,[s[8]||(s[8]=e(`

Write YAXArrays and Datasets

Create an example Dataset:

julia
using YAXArrays
+import{_ as n,B as l,c as p,a2 as e,j as i,a,G as h,o as k}from"./chunks/framework.eQVMtpgY.js";const v=JSON.parse('{"title":"Write YAXArrays and Datasets","description":"","frontmatter":{},"headers":[],"relativePath":"UserGuide/write.md","filePath":"UserGuide/write.md","lastUpdated":null}'),d={name:"UserGuide/write.md"},r={class:"jldocstring custom-block",open:""};function o(g,s,c,y,u,E){const t=l("Badge");return k(),p("div",null,[s[8]||(s[8]=e(`

Write YAXArrays and Datasets

Create an example Dataset:

julia
using YAXArrays
 using NetCDF
 using Downloads: download
 
@@ -14,7 +14,7 @@ import{_ as n,c as l,a2 as e,j as i,a,G as p,B as h,o as k}from"./chunks/framewo
 
 Properties: Dict{String, Any}("cmor_version" => 0.96f0, "references" => "Dufresne et al, Journal of Climate, 2015, vol XX, p 136", "realization" => 1, "Conventions" => "CF-1.0", "contact" => "Sebastien Denvil, sebastien.denvil@ipsl.jussieu.fr", "history" => "YYYY/MM/JJ: data generated; YYYY/MM/JJ+1 data transformed  At 16:37:23 on 01/11/2005, CMOR rewrote data to comply with CF standards and IPCC Fourth Assessment requirements", "table_id" => "Table O1 (13 November 2004)", "source" => "IPSL-CM4_v1 (2003) : atmosphere : LMDZ (IPSL-CM4_IPCC, 96x71x19) ; ocean ORCA2 (ipsl_cm4_v1_8, 2x2L31); sea ice LIM (ipsl_cm4_v", "title" => "IPSL  model output prepared for IPCC Fourth Assessment SRES A2 experiment", "experiment_id" => "SRES A2 experiment"…)

Write Zarr

Save a single YAXArray to a directory:

julia
using Zarr
 savecube(ds.tos, "tos.zarr", driver=:zarr)

Save an entire Dataset to a directory:

julia
savedataset(ds, path="ds.zarr", driver=:zarr)

Write NetCDF

Save a single YAXArray to a directory:

julia
using NetCDF
-savecube(ds.tos, "tos.nc", driver=:netcdf)

Save an entire Dataset to a directory:

julia
savedataset(ds, path="ds.nc", driver=:netcdf)

Overwrite a Dataset

If a path already exists, an error will be thrown. Set overwrite=true to delete the existing dataset

julia
savedataset(ds, path="ds.zarr", driver=:zarr, overwrite=true)

DANGER

Again, setting overwrite will delete all your previous saved data.

Look at the doc string for more information

`,19)),i("details",r,[i("summary",null,[s[0]||(s[0]=i("a",{id:"YAXArrays.Datasets.savedataset",href:"#YAXArrays.Datasets.savedataset"},"#",-1)),s[1]||(s[1]=a()),s[2]||(s[2]=i("span",{class:"jlbinding"},"YAXArrays.Datasets.savedataset",-1)),s[3]||(s[3]=a()),p(t,{type:"info",class:"jlObjectType jlFunction",text:"Function"})]),s[4]||(s[4]=i("p",null,'savedataset(ds::Dataset; path = "", persist = nothing, overwrite = false, append = false, skeleton=false, backend = :all, driver = backend, max_cache = 5e8, writefac=4.0)',-1)),s[5]||(s[5]=i("p",null,[a("Saves a Dataset into a file at "),i("code",null,"path"),a(" with the format given by "),i("code",null,"driver"),a(", i.e., driver=:netcdf or driver=:zarr.")],-1)),s[6]||(s[6]=i("div",{class:"warning custom-block"},[i("p",{class:"custom-block-title"},"Warning"),i("p",null,"overwrite = true, deletes ALL your data and it will create a new file.")],-1)),s[7]||(s[7]=i("p",null,[i("a",{href:"https://github.com/JuliaDataCubes/YAXArrays.jl/blob/e1cc351c498cc8dc37986f50b6e7a5b6af71ef80/src/DatasetAPI/Datasets.jl#L557-L566",target:"_blank",rel:"noreferrer"},"source")],-1))]),s[9]||(s[9]=e(`

Append to a Dataset

New variables can be added to an existing dataset using the append=true keyword.

julia
ds2 = Dataset(z = YAXArray(rand(10,20,5)))
+savecube(ds.tos, "tos.nc", driver=:netcdf)

Save an entire Dataset to a directory:

julia
savedataset(ds, path="ds.nc", driver=:netcdf)

Overwrite a Dataset

If a path already exists, an error will be thrown. Set overwrite=true to delete the existing dataset

julia
savedataset(ds, path="ds.zarr", driver=:zarr, overwrite=true)

DANGER

Again, setting overwrite will delete all your previous saved data.

Look at the doc string for more information

`,19)),i("details",r,[i("summary",null,[s[0]||(s[0]=i("a",{id:"YAXArrays.Datasets.savedataset",href:"#YAXArrays.Datasets.savedataset"},"#",-1)),s[1]||(s[1]=a()),s[2]||(s[2]=i("span",{class:"jlbinding"},"YAXArrays.Datasets.savedataset",-1)),s[3]||(s[3]=a()),h(t,{type:"info",class:"jlObjectType jlFunction",text:"Function"})]),s[4]||(s[4]=i("p",null,'savedataset(ds::Dataset; path = "", persist = nothing, overwrite = false, append = false, skeleton=false, backend = :all, driver = backend, max_cache = 5e8, writefac=4.0)',-1)),s[5]||(s[5]=i("p",null,[a("Saves a Dataset into a file at "),i("code",null,"path"),a(" with the format given by "),i("code",null,"driver"),a(", i.e., driver=:netcdf or driver=:zarr.")],-1)),s[6]||(s[6]=i("div",{class:"warning custom-block"},[i("p",{class:"custom-block-title"},"Warning"),i("p",null,"overwrite = true, deletes ALL your data and it will create a new file.")],-1)),s[7]||(s[7]=i("p",null,[i("a",{href:"https://github.com/JuliaDataCubes/YAXArrays.jl/blob/745a37981c880d46c63cf59ae9600b8ba3b3e713/src/DatasetAPI/Datasets.jl#L557-L566",target:"_blank",rel:"noreferrer"},"source")],-1))]),s[9]||(s[9]=e(`

Append to a Dataset

New variables can be added to an existing dataset using the append=true keyword.

julia
ds2 = Dataset(z = YAXArray(rand(10,20,5)))
 savedataset(ds2, path="ds.zarr", backend=:zarr, append=true)
julia
julia> open_dataset("ds.zarr", driver=:zarr)
YAXArray Dataset
 Shared Axes:
 None
@@ -52,15 +52,15 @@ import{_ as n,c as l,a2 as e,j as i,a,G as p,B as h,o as k}from"./chunks/framewo
 Variables: 
 skeleton
julia
ds_s = savedataset(ds, path="skeleton.zarr", driver=:zarr, skeleton=true, overwrite=true)

Update values of dataset

Now, we show how to start updating the array values. In order to do it we need to open the dataset first with writing w rights as follows:

julia
ds_open = zopen("skeleton.zarr", "w")
 ds_array = ds_open["skeleton"]
ZArray{Float32} of size 5 x 4 x 5

and then we simply update values by indexing them where necessary

julia
ds_array[:,:,1] = rand(Float32, 5, 4) # this will update values directly into disk!
5×4 Matrix{Float32}:
- 0.787703   0.468415  0.537539  0.737428
- 0.808832   0.864074  0.616055  0.353021
- 0.89797    0.791865  0.398791  0.965042
- 0.0449604  0.376862  0.400911  0.0190005
- 0.188521   0.705507  0.527227  0.198213

we can verify is this working by loading again directly from disk

julia
ds_open = open_dataset("skeleton.zarr")
+ 0.465431  0.734655  0.414315  0.383
+ 0.918768  0.85091   0.365009  0.877659
+ 0.885098  0.141418  0.339135  0.695285
+ 0.243066  0.337627  0.390063  0.545877
+ 0.87108   0.81554   0.947543  0.218997

we can verify is this working by loading again directly from disk

julia
ds_open = open_dataset("skeleton.zarr")
 ds_array = ds_open["skeleton"]
-ds_array.data[:,:,1]
5×4 reshape(::Array{Union{Missing, Float32}, 3}, 5, 4) with eltype Union{Missing, Float32}:
- 0.787703   0.468415  0.537539  0.737428
- 0.808832   0.864074  0.616055  0.353021
- 0.89797    0.791865  0.398791  0.965042
- 0.0449604  0.376862  0.400911  0.0190005
- 0.188521   0.705507  0.527227  0.198213

indeed, those entries had been updated.

`,35))])}const f=n(d,[["render",o]]);export{v as __pageData,f as default}; +ds_array.data[:,:,1]
5×4 Matrix{Union{Missing, Float32}}:
+ 0.465431  0.734655  0.414315  0.383
+ 0.918768  0.85091   0.365009  0.877659
+ 0.885098  0.141418  0.339135  0.695285
+ 0.243066  0.337627  0.390063  0.545877
+ 0.87108   0.81554   0.947543  0.218997

indeed, those entries had been updated.

`,35))])}const C=n(d,[["render",o]]);export{v as __pageData,C as default}; diff --git a/previews/PR439/assets/UserGuide_write.md.DZ48Cyo7.lean.js b/previews/PR439/assets/UserGuide_write.md.CKTq8NKF.lean.js similarity index 94% rename from previews/PR439/assets/UserGuide_write.md.DZ48Cyo7.lean.js rename to previews/PR439/assets/UserGuide_write.md.CKTq8NKF.lean.js index 5d980667..4038e82f 100644 --- a/previews/PR439/assets/UserGuide_write.md.DZ48Cyo7.lean.js +++ b/previews/PR439/assets/UserGuide_write.md.CKTq8NKF.lean.js @@ -1,4 +1,4 @@ -import{_ as n,c as l,a2 as e,j as i,a,G as p,B as h,o as k}from"./chunks/framework.DsPJznl_.js";const v=JSON.parse('{"title":"Write YAXArrays and Datasets","description":"","frontmatter":{},"headers":[],"relativePath":"UserGuide/write.md","filePath":"UserGuide/write.md","lastUpdated":null}'),d={name:"UserGuide/write.md"},r={class:"jldocstring custom-block",open:""};function o(g,s,c,y,u,E){const t=h("Badge");return k(),l("div",null,[s[8]||(s[8]=e(`

Write YAXArrays and Datasets

Create an example Dataset:

julia
using YAXArrays
+import{_ as n,B as l,c as p,a2 as e,j as i,a,G as h,o as k}from"./chunks/framework.eQVMtpgY.js";const v=JSON.parse('{"title":"Write YAXArrays and Datasets","description":"","frontmatter":{},"headers":[],"relativePath":"UserGuide/write.md","filePath":"UserGuide/write.md","lastUpdated":null}'),d={name:"UserGuide/write.md"},r={class:"jldocstring custom-block",open:""};function o(g,s,c,y,u,E){const t=l("Badge");return k(),p("div",null,[s[8]||(s[8]=e(`

Write YAXArrays and Datasets

Create an example Dataset:

julia
using YAXArrays
 using NetCDF
 using Downloads: download
 
@@ -14,7 +14,7 @@ import{_ as n,c as l,a2 as e,j as i,a,G as p,B as h,o as k}from"./chunks/framewo
 
 Properties: Dict{String, Any}("cmor_version" => 0.96f0, "references" => "Dufresne et al, Journal of Climate, 2015, vol XX, p 136", "realization" => 1, "Conventions" => "CF-1.0", "contact" => "Sebastien Denvil, sebastien.denvil@ipsl.jussieu.fr", "history" => "YYYY/MM/JJ: data generated; YYYY/MM/JJ+1 data transformed  At 16:37:23 on 01/11/2005, CMOR rewrote data to comply with CF standards and IPCC Fourth Assessment requirements", "table_id" => "Table O1 (13 November 2004)", "source" => "IPSL-CM4_v1 (2003) : atmosphere : LMDZ (IPSL-CM4_IPCC, 96x71x19) ; ocean ORCA2 (ipsl_cm4_v1_8, 2x2L31); sea ice LIM (ipsl_cm4_v", "title" => "IPSL  model output prepared for IPCC Fourth Assessment SRES A2 experiment", "experiment_id" => "SRES A2 experiment"…)

Write Zarr

Save a single YAXArray to a directory:

julia
using Zarr
 savecube(ds.tos, "tos.zarr", driver=:zarr)

Save an entire Dataset to a directory:

julia
savedataset(ds, path="ds.zarr", driver=:zarr)

Write NetCDF

Save a single YAXArray to a directory:

julia
using NetCDF
-savecube(ds.tos, "tos.nc", driver=:netcdf)

Save an entire Dataset to a directory:

julia
savedataset(ds, path="ds.nc", driver=:netcdf)

Overwrite a Dataset

If a path already exists, an error will be thrown. Set overwrite=true to delete the existing dataset

julia
savedataset(ds, path="ds.zarr", driver=:zarr, overwrite=true)

DANGER

Again, setting overwrite will delete all your previous saved data.

Look at the doc string for more information

`,19)),i("details",r,[i("summary",null,[s[0]||(s[0]=i("a",{id:"YAXArrays.Datasets.savedataset",href:"#YAXArrays.Datasets.savedataset"},"#",-1)),s[1]||(s[1]=a()),s[2]||(s[2]=i("span",{class:"jlbinding"},"YAXArrays.Datasets.savedataset",-1)),s[3]||(s[3]=a()),p(t,{type:"info",class:"jlObjectType jlFunction",text:"Function"})]),s[4]||(s[4]=i("p",null,'savedataset(ds::Dataset; path = "", persist = nothing, overwrite = false, append = false, skeleton=false, backend = :all, driver = backend, max_cache = 5e8, writefac=4.0)',-1)),s[5]||(s[5]=i("p",null,[a("Saves a Dataset into a file at "),i("code",null,"path"),a(" with the format given by "),i("code",null,"driver"),a(", i.e., driver=:netcdf or driver=:zarr.")],-1)),s[6]||(s[6]=i("div",{class:"warning custom-block"},[i("p",{class:"custom-block-title"},"Warning"),i("p",null,"overwrite = true, deletes ALL your data and it will create a new file.")],-1)),s[7]||(s[7]=i("p",null,[i("a",{href:"https://github.com/JuliaDataCubes/YAXArrays.jl/blob/e1cc351c498cc8dc37986f50b6e7a5b6af71ef80/src/DatasetAPI/Datasets.jl#L557-L566",target:"_blank",rel:"noreferrer"},"source")],-1))]),s[9]||(s[9]=e(`

Append to a Dataset

New variables can be added to an existing dataset using the append=true keyword.

julia
ds2 = Dataset(z = YAXArray(rand(10,20,5)))
+savecube(ds.tos, "tos.nc", driver=:netcdf)

Save an entire Dataset to a directory:

julia
savedataset(ds, path="ds.nc", driver=:netcdf)

Overwrite a Dataset

If a path already exists, an error will be thrown. Set overwrite=true to delete the existing dataset

julia
savedataset(ds, path="ds.zarr", driver=:zarr, overwrite=true)

DANGER

Again, setting overwrite will delete all your previous saved data.

Look at the doc string for more information

`,19)),i("details",r,[i("summary",null,[s[0]||(s[0]=i("a",{id:"YAXArrays.Datasets.savedataset",href:"#YAXArrays.Datasets.savedataset"},"#",-1)),s[1]||(s[1]=a()),s[2]||(s[2]=i("span",{class:"jlbinding"},"YAXArrays.Datasets.savedataset",-1)),s[3]||(s[3]=a()),h(t,{type:"info",class:"jlObjectType jlFunction",text:"Function"})]),s[4]||(s[4]=i("p",null,'savedataset(ds::Dataset; path = "", persist = nothing, overwrite = false, append = false, skeleton=false, backend = :all, driver = backend, max_cache = 5e8, writefac=4.0)',-1)),s[5]||(s[5]=i("p",null,[a("Saves a Dataset into a file at "),i("code",null,"path"),a(" with the format given by "),i("code",null,"driver"),a(", i.e., driver=:netcdf or driver=:zarr.")],-1)),s[6]||(s[6]=i("div",{class:"warning custom-block"},[i("p",{class:"custom-block-title"},"Warning"),i("p",null,"overwrite = true, deletes ALL your data and it will create a new file.")],-1)),s[7]||(s[7]=i("p",null,[i("a",{href:"https://github.com/JuliaDataCubes/YAXArrays.jl/blob/745a37981c880d46c63cf59ae9600b8ba3b3e713/src/DatasetAPI/Datasets.jl#L557-L566",target:"_blank",rel:"noreferrer"},"source")],-1))]),s[9]||(s[9]=e(`

Append to a Dataset

New variables can be added to an existing dataset using the append=true keyword.

julia
ds2 = Dataset(z = YAXArray(rand(10,20,5)))
 savedataset(ds2, path="ds.zarr", backend=:zarr, append=true)
julia
julia> open_dataset("ds.zarr", driver=:zarr)
YAXArray Dataset
 Shared Axes:
 None
@@ -52,15 +52,15 @@ import{_ as n,c as l,a2 as e,j as i,a,G as p,B as h,o as k}from"./chunks/framewo
 Variables: 
 skeleton
julia
ds_s = savedataset(ds, path="skeleton.zarr", driver=:zarr, skeleton=true, overwrite=true)

Update values of dataset

Now, we show how to start updating the array values. In order to do it we need to open the dataset first with writing w rights as follows:

julia
ds_open = zopen("skeleton.zarr", "w")
 ds_array = ds_open["skeleton"]
ZArray{Float32} of size 5 x 4 x 5

and then we simply update values by indexing them where necessary

julia
ds_array[:,:,1] = rand(Float32, 5, 4) # this will update values directly into disk!
5×4 Matrix{Float32}:
- 0.787703   0.468415  0.537539  0.737428
- 0.808832   0.864074  0.616055  0.353021
- 0.89797    0.791865  0.398791  0.965042
- 0.0449604  0.376862  0.400911  0.0190005
- 0.188521   0.705507  0.527227  0.198213

we can verify is this working by loading again directly from disk

julia
ds_open = open_dataset("skeleton.zarr")
+ 0.465431  0.734655  0.414315  0.383
+ 0.918768  0.85091   0.365009  0.877659
+ 0.885098  0.141418  0.339135  0.695285
+ 0.243066  0.337627  0.390063  0.545877
+ 0.87108   0.81554   0.947543  0.218997

we can verify is this working by loading again directly from disk

julia
ds_open = open_dataset("skeleton.zarr")
 ds_array = ds_open["skeleton"]
-ds_array.data[:,:,1]
5×4 reshape(::Array{Union{Missing, Float32}, 3}, 5, 4) with eltype Union{Missing, Float32}:
- 0.787703   0.468415  0.537539  0.737428
- 0.808832   0.864074  0.616055  0.353021
- 0.89797    0.791865  0.398791  0.965042
- 0.0449604  0.376862  0.400911  0.0190005
- 0.188521   0.705507  0.527227  0.198213

indeed, those entries had been updated.

`,35))])}const f=n(d,[["render",o]]);export{v as __pageData,f as default}; +ds_array.data[:,:,1]
5×4 Matrix{Union{Missing, Float32}}:
+ 0.465431  0.734655  0.414315  0.383
+ 0.918768  0.85091   0.365009  0.877659
+ 0.885098  0.141418  0.339135  0.695285
+ 0.243066  0.337627  0.390063  0.545877
+ 0.87108   0.81554   0.947543  0.218997

indeed, those entries had been updated.

`,35))])}const C=n(d,[["render",o]]);export{v as __pageData,C as default}; diff --git a/previews/PR439/assets/api.md.Dly8rYKd.js b/previews/PR439/assets/api.md.CuxAjYWA.js similarity index 91% rename from previews/PR439/assets/api.md.Dly8rYKd.js rename to previews/PR439/assets/api.md.CuxAjYWA.js index 17648f4c..87c5dfb6 100644 --- a/previews/PR439/assets/api.md.Dly8rYKd.js +++ b/previews/PR439/assets/api.md.CuxAjYWA.js @@ -1,10 +1,10 @@ -import{_ as n,c as o,j as e,a as t,G as i,a2 as l,B as r,o as p}from"./chunks/framework.DsPJznl_.js";const bs=JSON.parse('{"title":"API Reference","description":"","frontmatter":{},"headers":[],"relativePath":"api.md","filePath":"api.md","lastUpdated":null}'),d={name:"api.md"},u={class:"jldocstring custom-block",open:""},b={class:"jldocstring custom-block",open:""},c={class:"jldocstring custom-block",open:""},h={class:"jldocstring custom-block",open:""},y={class:"jldocstring custom-block",open:""},g={class:"jldocstring custom-block",open:""},A={class:"jldocstring custom-block",open:""},k={class:"jldocstring custom-block",open:""},f={class:"jldocstring custom-block",open:""},m={class:"jldocstring custom-block",open:""},j={class:"jldocstring custom-block",open:""},C={class:"jldocstring custom-block",open:""},D={class:"jldocstring custom-block",open:""},E={class:"jldocstring custom-block",open:""},T={class:"jldocstring custom-block",open:""},v={class:"jldocstring custom-block",open:""},X={class:"jldocstring custom-block",open:""},Y={class:"jldocstring custom-block",open:""},x={class:"jldocstring custom-block",open:""},F={class:"jldocstring custom-block",open:""},w={class:"jldocstring custom-block",open:""},L={class:"jldocstring custom-block",open:""},M={class:"jldocstring custom-block",open:""},O={class:"jldocstring custom-block",open:""},I={class:"jldocstring custom-block",open:""},B={class:"jldocstring custom-block",open:""},J={class:"jldocstring custom-block",open:""},P={class:"jldocstring custom-block",open:""},z={class:"jldocstring custom-block",open:""},N={class:"jldocstring custom-block",open:""},S={class:"jldocstring custom-block",open:""},q={class:"jldocstring custom-block",open:""},R={class:"jldocstring custom-block",open:""},V={class:"jldocstring custom-block",open:""},G={class:"jldocstring custom-block",open:""},W={class:"jldocstring custom-block",open:""},U={class:"jldocstring custom-block",open:""},$={class:"jldocstring custom-block",open:""},H={class:"jldocstring custom-block",open:""},K={class:"jldocstring custom-block",open:""},Z={class:"jldocstring custom-block",open:""},Q={class:"jldocstring custom-block",open:""},_={class:"jldocstring custom-block",open:""},ss={class:"jldocstring custom-block",open:""},es={class:"jldocstring custom-block",open:""},ts={class:"jldocstring custom-block",open:""},as={class:"jldocstring custom-block",open:""},is={class:"jldocstring custom-block",open:""};function ls(ns,s,os,rs,ps,ds){const a=r("Badge");return p(),o("div",null,[s[258]||(s[258]=e("h1",{id:"API-Reference",tabindex:"-1"},[t("API Reference "),e("a",{class:"header-anchor",href:"#API-Reference","aria-label":'Permalink to "API Reference {#API-Reference}"'},"​")],-1)),s[259]||(s[259]=e("p",null,"This section describes all available functions of this package.",-1)),s[260]||(s[260]=e("h2",{id:"Public-API",tabindex:"-1"},[t("Public API "),e("a",{class:"header-anchor",href:"#Public-API","aria-label":'Permalink to "Public API {#Public-API}"'},"​")],-1)),e("details",u,[e("summary",null,[s[0]||(s[0]=e("a",{id:"YAXArrays.getAxis-Tuple{Any, Any}",href:"#YAXArrays.getAxis-Tuple{Any, Any}"},"#",-1)),s[1]||(s[1]=t()),s[2]||(s[2]=e("span",{class:"jlbinding"},"YAXArrays.getAxis",-1)),s[3]||(s[3]=t()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[4]||(s[4]=l('
julia
getAxis(desc, c)

Given an Axis description and a cube, returns the corresponding axis of the cube. The Axis description can be:

  • the name as a string or symbol.

  • an Axis object

source

',4))]),e("details",b,[e("summary",null,[s[5]||(s[5]=e("a",{id:"YAXArrays.Cubes",href:"#YAXArrays.Cubes"},"#",-1)),s[6]||(s[6]=t()),s[7]||(s[7]=e("span",{class:"jlbinding"},"YAXArrays.Cubes",-1)),s[8]||(s[8]=t()),i(a,{type:"info",class:"jlObjectType jlModule",text:"Module"})]),s[9]||(s[9]=e("p",null,"The functions provided by YAXArrays are supposed to work on different types of cubes. This module defines the interface for all Data types that",-1)),s[10]||(s[10]=e("p",null,[e("a",{href:"https://github.com/JuliaDataCubes/YAXArrays.jl/blob/e1cc351c498cc8dc37986f50b6e7a5b6af71ef80/src/Cubes/Cubes.jl#L1-L4",target:"_blank",rel:"noreferrer"},"source")],-1))]),e("details",c,[e("summary",null,[s[11]||(s[11]=e("a",{id:"YAXArrays.Cubes.YAXArray",href:"#YAXArrays.Cubes.YAXArray"},"#",-1)),s[12]||(s[12]=t()),s[13]||(s[13]=e("span",{class:"jlbinding"},"YAXArrays.Cubes.YAXArray",-1)),s[14]||(s[14]=t()),i(a,{type:"info",class:"jlObjectType jlType",text:"Type"})]),s[15]||(s[15]=l('
julia
YAXArray{T,N}

An array labelled with named axes that have values associated with them. It can wrap normal arrays or, more typically DiskArrays.

Fields

  • axes: Tuple of Dimensions containing the Axes of the Cube

  • data: length(axes)-dimensional array which holds the data, this can be a lazy DiskArray

  • properties: Metadata properties describing the content of the data

  • chunks: Representation of the chunking of the data

  • cleaner: Cleaner objects to track which objects to tidy up when the YAXArray goes out of scope

source

',5))]),e("details",h,[e("summary",null,[s[16]||(s[16]=e("a",{id:"YAXArrays.Cubes.caxes",href:"#YAXArrays.Cubes.caxes"},"#",-1)),s[17]||(s[17]=t()),s[18]||(s[18]=e("span",{class:"jlbinding"},"YAXArrays.Cubes.caxes",-1)),s[19]||(s[19]=t()),i(a,{type:"info",class:"jlObjectType jlFunction",text:"Function"})]),s[20]||(s[20]=e("p",null,"Returns the axes of a Cube",-1)),s[21]||(s[21]=e("p",null,[e("a",{href:"https://github.com/JuliaDataCubes/YAXArrays.jl/blob/e1cc351c498cc8dc37986f50b6e7a5b6af71ef80/src/Cubes/Cubes.jl#L27",target:"_blank",rel:"noreferrer"},"source")],-1))]),e("details",y,[e("summary",null,[s[22]||(s[22]=e("a",{id:"YAXArrays.Cubes.caxes-Tuple{DimensionalData.Dimensions.Dimension}",href:"#YAXArrays.Cubes.caxes-Tuple{DimensionalData.Dimensions.Dimension}"},"#",-1)),s[23]||(s[23]=t()),s[24]||(s[24]=e("span",{class:"jlbinding"},"YAXArrays.Cubes.caxes",-1)),s[25]||(s[25]=t()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[26]||(s[26]=l('
julia
caxes

Embeds Cube inside a new Cube

source

',3))]),e("details",g,[e("summary",null,[s[27]||(s[27]=e("a",{id:"YAXArrays.Cubes.concatenatecubes-Tuple{Any, DimensionalData.Dimensions.Dimension}",href:"#YAXArrays.Cubes.concatenatecubes-Tuple{Any, DimensionalData.Dimensions.Dimension}"},"#",-1)),s[28]||(s[28]=t()),s[29]||(s[29]=e("span",{class:"jlbinding"},"YAXArrays.Cubes.concatenatecubes",-1)),s[30]||(s[30]=t()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[31]||(s[31]=l('
julia
function concatenateCubes(cubelist, cataxis::CategoricalAxis)

Concatenates a vector of datacubes that have identical axes to a new single cube along the new axis cataxis

source

',3))]),e("details",A,[e("summary",null,[s[32]||(s[32]=e("a",{id:"YAXArrays.Cubes.readcubedata-Tuple{Any}",href:"#YAXArrays.Cubes.readcubedata-Tuple{Any}"},"#",-1)),s[33]||(s[33]=t()),s[34]||(s[34]=e("span",{class:"jlbinding"},"YAXArrays.Cubes.readcubedata",-1)),s[35]||(s[35]=t()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[36]||(s[36]=l('
julia
readcubedata(cube)

Given any array implementing the YAXArray interface it returns an in-memory YAXArray from it.

source

',3))]),e("details",k,[e("summary",null,[s[37]||(s[37]=e("a",{id:"YAXArrays.Cubes.setchunks-Tuple{YAXArray, Any}",href:"#YAXArrays.Cubes.setchunks-Tuple{YAXArray, Any}"},"#",-1)),s[38]||(s[38]=t()),s[39]||(s[39]=e("span",{class:"jlbinding"},"YAXArrays.Cubes.setchunks",-1)),s[40]||(s[40]=t()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[41]||(s[41]=l('
julia
setchunks(c::YAXArray,chunks)

Resets the chunks of a YAXArray and returns a new YAXArray. Note that this will not change the chunking of the underlying data itself, it will just make the data "look" like it had a different chunking. If you need a persistent on-disk representation of this chunking, use savecube on the resulting array. The chunks argument can take one of the following forms:

  • a DiskArrays.GridChunks object

  • a tuple specifying the chunk size along each dimension

  • an AbstractDict or NamedTuple mapping one or more axis names to chunk sizes

source

',4))]),e("details",f,[e("summary",null,[s[42]||(s[42]=e("a",{id:"YAXArrays.Cubes.subsetcube",href:"#YAXArrays.Cubes.subsetcube"},"#",-1)),s[43]||(s[43]=t()),s[44]||(s[44]=e("span",{class:"jlbinding"},"YAXArrays.Cubes.subsetcube",-1)),s[45]||(s[45]=t()),i(a,{type:"info",class:"jlObjectType jlFunction",text:"Function"})]),s[46]||(s[46]=e("p",null,"This function calculates a subset of a cube's data",-1)),s[47]||(s[47]=e("p",null,[e("a",{href:"https://github.com/JuliaDataCubes/YAXArrays.jl/blob/e1cc351c498cc8dc37986f50b6e7a5b6af71ef80/src/Cubes/Cubes.jl#L22-L24",target:"_blank",rel:"noreferrer"},"source")],-1))]),e("details",m,[e("summary",null,[s[48]||(s[48]=e("a",{id:"YAXArrays.DAT.InDims",href:"#YAXArrays.DAT.InDims"},"#",-1)),s[49]||(s[49]=t()),s[50]||(s[50]=e("span",{class:"jlbinding"},"YAXArrays.DAT.InDims",-1)),s[51]||(s[51]=t()),i(a,{type:"info",class:"jlObjectType jlType",text:"Type"})]),s[52]||(s[52]=l('
julia
InDims(axisdesc...;...)

Creates a description of an Input Data Cube for cube operations. Takes a single or multiple axis descriptions as first arguments. Alternatively a MovingWindow(@ref) struct can be passed to include neighbour slices of one or more axes in the computation. Axes can be specified by their name (String), through an Axis type, or by passing a concrete axis.

Keyword arguments

  • artype how shall the array be represented in the inner function. Defaults to Array, alternatives are DataFrame or AsAxisArray

  • filter define some filter to skip the computation, e.g. when all values are missing. Defaults to AllMissing(), possible values are AnyMissing(), AnyOcean(), StdZero(), NValid(n) (for at least n non-missing elements). It is also possible to provide a custom one-argument function that takes the array and returns true if the compuation shall be skipped and false otherwise.

  • window_oob_value if one of the input dimensions is a MowingWindow, this value will be used to fill out-of-bounds areas

source

',5))]),e("details",j,[e("summary",null,[s[53]||(s[53]=e("a",{id:"YAXArrays.DAT.MovingWindow",href:"#YAXArrays.DAT.MovingWindow"},"#",-1)),s[54]||(s[54]=t()),s[55]||(s[55]=e("span",{class:"jlbinding"},"YAXArrays.DAT.MovingWindow",-1)),s[56]||(s[56]=t()),i(a,{type:"info",class:"jlObjectType jlType",text:"Type"})]),s[57]||(s[57]=l('
julia
MovingWindow(desc, pre, after)

Constructs a MovingWindow object to be passed to an InDims constructor to define that the axis in desc shall participate in the inner function (i.e. shall be looped over), but inside the inner function pre values before and after values after the center value will be passed as well.

For example passing MovingWindow("Time", 2, 0) will loop over the time axis and always pass the current time step plus the 2 previous steps. So in the inner function the array will have an additional dimension of size 3.

source

',4))]),e("details",C,[e("summary",null,[s[58]||(s[58]=e("a",{id:"YAXArrays.DAT.OutDims-Tuple",href:"#YAXArrays.DAT.OutDims-Tuple"},"#",-1)),s[59]||(s[59]=t()),s[60]||(s[60]=e("span",{class:"jlbinding"},"YAXArrays.DAT.OutDims",-1)),s[61]||(s[61]=t()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[62]||(s[62]=l('
julia
OutDims(axisdesc;...)

Creates a description of an Output Data Cube for cube operations. Takes a single or a Vector/Tuple of axes as first argument. Axes can be specified by their name (String), through an Axis type, or by passing a concrete axis.

  • axisdesc: List of input axis names

  • backend : specifies the dataset backend to write data to, must be either :auto or a key in YAXArrayBase.backendlist

  • update : specifies wether the function operates inplace or if an output is returned

  • artype : specifies the Array type inside the inner function that is mapped over

  • chunksize: A Dict specifying the chunksizes for the output dimensions of the cube, or :input to copy chunksizes from input cube axes or :max to not chunk the inner dimensions

  • outtype: force the output type to a specific type, defaults to Any which means that the element type of the first input cube is used

source

',4))]),e("details",D,[e("summary",null,[s[63]||(s[63]=e("a",{id:"YAXArrays.DAT.CubeTable-Tuple{}",href:"#YAXArrays.DAT.CubeTable-Tuple{}"},"#",-1)),s[64]||(s[64]=t()),s[65]||(s[65]=e("span",{class:"jlbinding"},"YAXArrays.DAT.CubeTable",-1)),s[66]||(s[66]=t()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[67]||(s[67]=l('
julia
CubeTable()

Function to turn a DataCube object into an iterable table. Takes a list of as arguments, specified as a name=cube expression. For example CubeTable(data=cube1,country=cube2) would generate a Table with the entries data and country, where data contains the values of cube1 and country the values of cube2. The cubes are matched and broadcasted along their axes like in mapCube.

source

',3))]),e("details",E,[e("summary",null,[s[68]||(s[68]=e("a",{id:"YAXArrays.DAT.cubefittable-Tuple{Any, Any, Any}",href:"#YAXArrays.DAT.cubefittable-Tuple{Any, Any, Any}"},"#",-1)),s[69]||(s[69]=t()),s[70]||(s[70]=e("span",{class:"jlbinding"},"YAXArrays.DAT.cubefittable",-1)),s[71]||(s[71]=t()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[72]||(s[72]=l('
julia
cubefittable(tab,o,fitsym;post=getpostfunction(o),kwargs...)

Executes fittable on the CubeTable tab with the (Weighted-)OnlineStat o, looping through the values specified by fitsym. Finally, writes the results from the TableAggregator to an output data cube.

source

',3))]),e("details",T,[e("summary",null,[s[73]||(s[73]=e("a",{id:"YAXArrays.DAT.fittable-Tuple{YAXArrays.DAT.CubeIterator, Any, Any}",href:"#YAXArrays.DAT.fittable-Tuple{YAXArrays.DAT.CubeIterator, Any, Any}"},"#",-1)),s[74]||(s[74]=t()),s[75]||(s[75]=e("span",{class:"jlbinding"},"YAXArrays.DAT.fittable",-1)),s[76]||(s[76]=t()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[77]||(s[77]=l('
julia
fittable(tab,o,fitsym;by=(),weight=nothing)

Loops through an iterable table tab and thereby fitting an OnlineStat o with the values specified through fitsym. Optionally one can specify a field (or tuple) to group by. Any groupby specifier can either be a symbol denoting the entry to group by or an anynymous function calculating the group from a table row.

For example the following would caluclate a weighted mean over a cube weighted by grid cell area and grouped by country and month:

julia
fittable(iter,WeightedMean,:tair,weight=(i->abs(cosd(i.lat))),by=(i->month(i.time),:country))

source

',5))]),e("details",v,[e("summary",null,[s[78]||(s[78]=e("a",{id:"YAXArrays.DAT.mapCube-Tuple{Function, Dataset, Vararg{Any}}",href:"#YAXArrays.DAT.mapCube-Tuple{Function, Dataset, Vararg{Any}}"},"#",-1)),s[79]||(s[79]=t()),s[80]||(s[80]=e("span",{class:"jlbinding"},"YAXArrays.DAT.mapCube",-1)),s[81]||(s[81]=t()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[82]||(s[82]=l(`
julia
mapCube(fun, cube, addargs...;kwargs...)
+import{_ as n,B as o,c as r,j as e,a as t,G as i,a2 as l,o as p}from"./chunks/framework.eQVMtpgY.js";const bs=JSON.parse('{"title":"API Reference","description":"","frontmatter":{},"headers":[],"relativePath":"api.md","filePath":"api.md","lastUpdated":null}'),d={name:"api.md"},u={class:"jldocstring custom-block",open:""},b={class:"jldocstring custom-block",open:""},h={class:"jldocstring custom-block",open:""},c={class:"jldocstring custom-block",open:""},y={class:"jldocstring custom-block",open:""},g={class:"jldocstring custom-block",open:""},A={class:"jldocstring custom-block",open:""},k={class:"jldocstring custom-block",open:""},f={class:"jldocstring custom-block",open:""},m={class:"jldocstring custom-block",open:""},j={class:"jldocstring custom-block",open:""},C={class:"jldocstring custom-block",open:""},D={class:"jldocstring custom-block",open:""},E={class:"jldocstring custom-block",open:""},T={class:"jldocstring custom-block",open:""},v={class:"jldocstring custom-block",open:""},X={class:"jldocstring custom-block",open:""},Y={class:"jldocstring custom-block",open:""},x={class:"jldocstring custom-block",open:""},F={class:"jldocstring custom-block",open:""},w={class:"jldocstring custom-block",open:""},L={class:"jldocstring custom-block",open:""},M={class:"jldocstring custom-block",open:""},O={class:"jldocstring custom-block",open:""},I={class:"jldocstring custom-block",open:""},B={class:"jldocstring custom-block",open:""},J={class:"jldocstring custom-block",open:""},P={class:"jldocstring custom-block",open:""},z={class:"jldocstring custom-block",open:""},N={class:"jldocstring custom-block",open:""},S={class:"jldocstring custom-block",open:""},q={class:"jldocstring custom-block",open:""},R={class:"jldocstring custom-block",open:""},V={class:"jldocstring custom-block",open:""},G={class:"jldocstring custom-block",open:""},W={class:"jldocstring custom-block",open:""},U={class:"jldocstring custom-block",open:""},$={class:"jldocstring custom-block",open:""},H={class:"jldocstring custom-block",open:""},K={class:"jldocstring custom-block",open:""},Z={class:"jldocstring custom-block",open:""},Q={class:"jldocstring custom-block",open:""},_={class:"jldocstring custom-block",open:""},ss={class:"jldocstring custom-block",open:""},es={class:"jldocstring custom-block",open:""},ts={class:"jldocstring custom-block",open:""},as={class:"jldocstring custom-block",open:""},is={class:"jldocstring custom-block",open:""};function ls(ns,s,os,rs,ps,ds){const a=o("Badge");return p(),r("div",null,[s[258]||(s[258]=e("h1",{id:"API-Reference",tabindex:"-1"},[t("API Reference "),e("a",{class:"header-anchor",href:"#API-Reference","aria-label":'Permalink to "API Reference {#API-Reference}"'},"​")],-1)),s[259]||(s[259]=e("p",null,"This section describes all available functions of this package.",-1)),s[260]||(s[260]=e("h2",{id:"Public-API",tabindex:"-1"},[t("Public API "),e("a",{class:"header-anchor",href:"#Public-API","aria-label":'Permalink to "Public API {#Public-API}"'},"​")],-1)),e("details",u,[e("summary",null,[s[0]||(s[0]=e("a",{id:"YAXArrays.getAxis-Tuple{Any, Any}",href:"#YAXArrays.getAxis-Tuple{Any, Any}"},"#",-1)),s[1]||(s[1]=t()),s[2]||(s[2]=e("span",{class:"jlbinding"},"YAXArrays.getAxis",-1)),s[3]||(s[3]=t()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[4]||(s[4]=l('
julia
getAxis(desc, c)

Given an Axis description and a cube, returns the corresponding axis of the cube. The Axis description can be:

  • the name as a string or symbol.

  • an Axis object

source

',4))]),e("details",b,[e("summary",null,[s[5]||(s[5]=e("a",{id:"YAXArrays.Cubes",href:"#YAXArrays.Cubes"},"#",-1)),s[6]||(s[6]=t()),s[7]||(s[7]=e("span",{class:"jlbinding"},"YAXArrays.Cubes",-1)),s[8]||(s[8]=t()),i(a,{type:"info",class:"jlObjectType jlModule",text:"Module"})]),s[9]||(s[9]=e("p",null,"The functions provided by YAXArrays are supposed to work on different types of cubes. This module defines the interface for all Data types that",-1)),s[10]||(s[10]=e("p",null,[e("a",{href:"https://github.com/JuliaDataCubes/YAXArrays.jl/blob/745a37981c880d46c63cf59ae9600b8ba3b3e713/src/Cubes/Cubes.jl#L1-L4",target:"_blank",rel:"noreferrer"},"source")],-1))]),e("details",h,[e("summary",null,[s[11]||(s[11]=e("a",{id:"YAXArrays.Cubes.YAXArray",href:"#YAXArrays.Cubes.YAXArray"},"#",-1)),s[12]||(s[12]=t()),s[13]||(s[13]=e("span",{class:"jlbinding"},"YAXArrays.Cubes.YAXArray",-1)),s[14]||(s[14]=t()),i(a,{type:"info",class:"jlObjectType jlType",text:"Type"})]),s[15]||(s[15]=l('
julia
YAXArray{T,N}

An array labelled with named axes that have values associated with them. It can wrap normal arrays or, more typically DiskArrays.

Fields

  • axes: Tuple of Dimensions containing the Axes of the Cube

  • data: length(axes)-dimensional array which holds the data, this can be a lazy DiskArray

  • properties: Metadata properties describing the content of the data

  • chunks: Representation of the chunking of the data

  • cleaner: Cleaner objects to track which objects to tidy up when the YAXArray goes out of scope

source

',5))]),e("details",c,[e("summary",null,[s[16]||(s[16]=e("a",{id:"YAXArrays.Cubes.caxes",href:"#YAXArrays.Cubes.caxes"},"#",-1)),s[17]||(s[17]=t()),s[18]||(s[18]=e("span",{class:"jlbinding"},"YAXArrays.Cubes.caxes",-1)),s[19]||(s[19]=t()),i(a,{type:"info",class:"jlObjectType jlFunction",text:"Function"})]),s[20]||(s[20]=e("p",null,"Returns the axes of a Cube",-1)),s[21]||(s[21]=e("p",null,[e("a",{href:"https://github.com/JuliaDataCubes/YAXArrays.jl/blob/745a37981c880d46c63cf59ae9600b8ba3b3e713/src/Cubes/Cubes.jl#L27",target:"_blank",rel:"noreferrer"},"source")],-1))]),e("details",y,[e("summary",null,[s[22]||(s[22]=e("a",{id:"YAXArrays.Cubes.caxes-Tuple{DimensionalData.Dimensions.Dimension}",href:"#YAXArrays.Cubes.caxes-Tuple{DimensionalData.Dimensions.Dimension}"},"#",-1)),s[23]||(s[23]=t()),s[24]||(s[24]=e("span",{class:"jlbinding"},"YAXArrays.Cubes.caxes",-1)),s[25]||(s[25]=t()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[26]||(s[26]=l('
julia
caxes

Embeds Cube inside a new Cube

source

',3))]),e("details",g,[e("summary",null,[s[27]||(s[27]=e("a",{id:"YAXArrays.Cubes.concatenatecubes-Tuple{Any, DimensionalData.Dimensions.Dimension}",href:"#YAXArrays.Cubes.concatenatecubes-Tuple{Any, DimensionalData.Dimensions.Dimension}"},"#",-1)),s[28]||(s[28]=t()),s[29]||(s[29]=e("span",{class:"jlbinding"},"YAXArrays.Cubes.concatenatecubes",-1)),s[30]||(s[30]=t()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[31]||(s[31]=l('
julia
function concatenateCubes(cubelist, cataxis::CategoricalAxis)

Concatenates a vector of datacubes that have identical axes to a new single cube along the new axis cataxis

source

',3))]),e("details",A,[e("summary",null,[s[32]||(s[32]=e("a",{id:"YAXArrays.Cubes.readcubedata-Tuple{Any}",href:"#YAXArrays.Cubes.readcubedata-Tuple{Any}"},"#",-1)),s[33]||(s[33]=t()),s[34]||(s[34]=e("span",{class:"jlbinding"},"YAXArrays.Cubes.readcubedata",-1)),s[35]||(s[35]=t()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[36]||(s[36]=l('
julia
readcubedata(cube)

Given any array implementing the YAXArray interface it returns an in-memory YAXArray from it.

source

',3))]),e("details",k,[e("summary",null,[s[37]||(s[37]=e("a",{id:"YAXArrays.Cubes.setchunks-Tuple{YAXArray, Any}",href:"#YAXArrays.Cubes.setchunks-Tuple{YAXArray, Any}"},"#",-1)),s[38]||(s[38]=t()),s[39]||(s[39]=e("span",{class:"jlbinding"},"YAXArrays.Cubes.setchunks",-1)),s[40]||(s[40]=t()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[41]||(s[41]=l('
julia
setchunks(c::YAXArray,chunks)

Resets the chunks of a YAXArray and returns a new YAXArray. Note that this will not change the chunking of the underlying data itself, it will just make the data "look" like it had a different chunking. If you need a persistent on-disk representation of this chunking, use savecube on the resulting array. The chunks argument can take one of the following forms:

  • a DiskArrays.GridChunks object

  • a tuple specifying the chunk size along each dimension

  • an AbstractDict or NamedTuple mapping one or more axis names to chunk sizes

source

',4))]),e("details",f,[e("summary",null,[s[42]||(s[42]=e("a",{id:"YAXArrays.Cubes.subsetcube",href:"#YAXArrays.Cubes.subsetcube"},"#",-1)),s[43]||(s[43]=t()),s[44]||(s[44]=e("span",{class:"jlbinding"},"YAXArrays.Cubes.subsetcube",-1)),s[45]||(s[45]=t()),i(a,{type:"info",class:"jlObjectType jlFunction",text:"Function"})]),s[46]||(s[46]=e("p",null,"This function calculates a subset of a cube's data",-1)),s[47]||(s[47]=e("p",null,[e("a",{href:"https://github.com/JuliaDataCubes/YAXArrays.jl/blob/745a37981c880d46c63cf59ae9600b8ba3b3e713/src/Cubes/Cubes.jl#L22-L24",target:"_blank",rel:"noreferrer"},"source")],-1))]),e("details",m,[e("summary",null,[s[48]||(s[48]=e("a",{id:"YAXArrays.DAT.InDims",href:"#YAXArrays.DAT.InDims"},"#",-1)),s[49]||(s[49]=t()),s[50]||(s[50]=e("span",{class:"jlbinding"},"YAXArrays.DAT.InDims",-1)),s[51]||(s[51]=t()),i(a,{type:"info",class:"jlObjectType jlType",text:"Type"})]),s[52]||(s[52]=l('
julia
InDims(axisdesc...;...)

Creates a description of an Input Data Cube for cube operations. Takes a single or multiple axis descriptions as first arguments. Alternatively a MovingWindow(@ref) struct can be passed to include neighbour slices of one or more axes in the computation. Axes can be specified by their name (String), through an Axis type, or by passing a concrete axis.

Keyword arguments

  • artype how shall the array be represented in the inner function. Defaults to Array, alternatives are DataFrame or AsAxisArray

  • filter define some filter to skip the computation, e.g. when all values are missing. Defaults to AllMissing(), possible values are AnyMissing(), AnyOcean(), StdZero(), NValid(n) (for at least n non-missing elements). It is also possible to provide a custom one-argument function that takes the array and returns true if the compuation shall be skipped and false otherwise.

  • window_oob_value if one of the input dimensions is a MowingWindow, this value will be used to fill out-of-bounds areas

source

',5))]),e("details",j,[e("summary",null,[s[53]||(s[53]=e("a",{id:"YAXArrays.DAT.MovingWindow",href:"#YAXArrays.DAT.MovingWindow"},"#",-1)),s[54]||(s[54]=t()),s[55]||(s[55]=e("span",{class:"jlbinding"},"YAXArrays.DAT.MovingWindow",-1)),s[56]||(s[56]=t()),i(a,{type:"info",class:"jlObjectType jlType",text:"Type"})]),s[57]||(s[57]=l('
julia
MovingWindow(desc, pre, after)

Constructs a MovingWindow object to be passed to an InDims constructor to define that the axis in desc shall participate in the inner function (i.e. shall be looped over), but inside the inner function pre values before and after values after the center value will be passed as well.

For example passing MovingWindow("Time", 2, 0) will loop over the time axis and always pass the current time step plus the 2 previous steps. So in the inner function the array will have an additional dimension of size 3.

source

',4))]),e("details",C,[e("summary",null,[s[58]||(s[58]=e("a",{id:"YAXArrays.DAT.OutDims-Tuple",href:"#YAXArrays.DAT.OutDims-Tuple"},"#",-1)),s[59]||(s[59]=t()),s[60]||(s[60]=e("span",{class:"jlbinding"},"YAXArrays.DAT.OutDims",-1)),s[61]||(s[61]=t()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[62]||(s[62]=l('
julia
OutDims(axisdesc;...)

Creates a description of an Output Data Cube for cube operations. Takes a single or a Vector/Tuple of axes as first argument. Axes can be specified by their name (String), through an Axis type, or by passing a concrete axis.

  • axisdesc: List of input axis names

  • backend : specifies the dataset backend to write data to, must be either :auto or a key in YAXArrayBase.backendlist

  • update : specifies wether the function operates inplace or if an output is returned

  • artype : specifies the Array type inside the inner function that is mapped over

  • chunksize: A Dict specifying the chunksizes for the output dimensions of the cube, or :input to copy chunksizes from input cube axes or :max to not chunk the inner dimensions

  • outtype: force the output type to a specific type, defaults to Any which means that the element type of the first input cube is used

source

',4))]),e("details",D,[e("summary",null,[s[63]||(s[63]=e("a",{id:"YAXArrays.DAT.CubeTable-Tuple{}",href:"#YAXArrays.DAT.CubeTable-Tuple{}"},"#",-1)),s[64]||(s[64]=t()),s[65]||(s[65]=e("span",{class:"jlbinding"},"YAXArrays.DAT.CubeTable",-1)),s[66]||(s[66]=t()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[67]||(s[67]=l('
julia
CubeTable()

Function to turn a DataCube object into an iterable table. Takes a list of as arguments, specified as a name=cube expression. For example CubeTable(data=cube1,country=cube2) would generate a Table with the entries data and country, where data contains the values of cube1 and country the values of cube2. The cubes are matched and broadcasted along their axes like in mapCube.

source

',3))]),e("details",E,[e("summary",null,[s[68]||(s[68]=e("a",{id:"YAXArrays.DAT.cubefittable-Tuple{Any, Any, Any}",href:"#YAXArrays.DAT.cubefittable-Tuple{Any, Any, Any}"},"#",-1)),s[69]||(s[69]=t()),s[70]||(s[70]=e("span",{class:"jlbinding"},"YAXArrays.DAT.cubefittable",-1)),s[71]||(s[71]=t()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[72]||(s[72]=l('
julia
cubefittable(tab,o,fitsym;post=getpostfunction(o),kwargs...)

Executes fittable on the CubeTable tab with the (Weighted-)OnlineStat o, looping through the values specified by fitsym. Finally, writes the results from the TableAggregator to an output data cube.

source

',3))]),e("details",T,[e("summary",null,[s[73]||(s[73]=e("a",{id:"YAXArrays.DAT.fittable-Tuple{YAXArrays.DAT.CubeIterator, Any, Any}",href:"#YAXArrays.DAT.fittable-Tuple{YAXArrays.DAT.CubeIterator, Any, Any}"},"#",-1)),s[74]||(s[74]=t()),s[75]||(s[75]=e("span",{class:"jlbinding"},"YAXArrays.DAT.fittable",-1)),s[76]||(s[76]=t()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[77]||(s[77]=l('
julia
fittable(tab,o,fitsym;by=(),weight=nothing)

Loops through an iterable table tab and thereby fitting an OnlineStat o with the values specified through fitsym. Optionally one can specify a field (or tuple) to group by. Any groupby specifier can either be a symbol denoting the entry to group by or an anynymous function calculating the group from a table row.

For example the following would caluclate a weighted mean over a cube weighted by grid cell area and grouped by country and month:

julia
fittable(iter,WeightedMean,:tair,weight=(i->abs(cosd(i.lat))),by=(i->month(i.time),:country))

source

',5))]),e("details",v,[e("summary",null,[s[78]||(s[78]=e("a",{id:"YAXArrays.DAT.mapCube-Tuple{Function, Dataset, Vararg{Any}}",href:"#YAXArrays.DAT.mapCube-Tuple{Function, Dataset, Vararg{Any}}"},"#",-1)),s[79]||(s[79]=t()),s[80]||(s[80]=e("span",{class:"jlbinding"},"YAXArrays.DAT.mapCube",-1)),s[81]||(s[81]=t()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[82]||(s[82]=l(`
julia
mapCube(fun, cube, addargs...;kwargs...)
 
 Map a given function \`fun\` over slices of all cubes of the dataset \`ds\`. 
 Use InDims to discribe the input dimensions and OutDims to describe the output dimensions of the function.
 For Datasets, only one output cube can be specified.
 In contrast to the mapCube function for cubes, additional arguments for the inner function should be set as keyword arguments.
 
-For the specific keyword arguments see the docstring of the mapCube function for cubes.

source

`,2))]),e("details",X,[e("summary",null,[s[83]||(s[83]=e("a",{id:"YAXArrays.DAT.mapCube-Tuple{Function, Tuple, Vararg{Any}}",href:"#YAXArrays.DAT.mapCube-Tuple{Function, Tuple, Vararg{Any}}"},"#",-1)),s[84]||(s[84]=t()),s[85]||(s[85]=e("span",{class:"jlbinding"},"YAXArrays.DAT.mapCube",-1)),s[86]||(s[86]=t()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[87]||(s[87]=l('
julia
mapCube(fun, cube, addargs...;kwargs...)

Map a given function fun over slices of the data cube cube. The additional arguments addargs will be forwarded to the inner function fun. Use InDims to discribe the input dimensions and OutDims to describe the output dimensions of the function.

Keyword arguments

  • max_cache=YAXDefaults.max_cache Float64 maximum size of blocks that are read into memory in bits e.g. max_cache=5.0e8. Or String. e.g. max_cache="10MB" ormax_cache=1GB``` defaults to approx 10Mb.

  • indims::InDims List of input cube descriptors of type InDims for each input data cube.

  • outdims::OutDims List of output cube descriptors of type OutDims for each output cube.

  • inplace does the function write to an output array inplace or return a single value> defaults to true

  • ispar boolean to determine if parallelisation should be applied, defaults to true if workers are available.

  • showprog boolean indicating if a ProgressMeter shall be shown

  • include_loopvars boolean to indicate if the varoables looped over should be added as function arguments

  • nthreads number of threads for the computation, defaults to Threads.nthreads for every worker.

  • loopchunksize determines the chunk sizes of variables which are looped over, a dict

  • kwargs additional keyword arguments are passed to the inner function

The first argument is always the function to be applied, the second is the input cube or a tuple of input cubes if needed.

source

',6))]),e("details",Y,[e("summary",null,[s[88]||(s[88]=e("a",{id:"YAXArrays.Datasets.Dataset",href:"#YAXArrays.Datasets.Dataset"},"#",-1)),s[89]||(s[89]=t()),s[90]||(s[90]=e("span",{class:"jlbinding"},"YAXArrays.Datasets.Dataset",-1)),s[91]||(s[91]=t()),i(a,{type:"info",class:"jlObjectType jlType",text:"Type"})]),s[92]||(s[92]=l('
julia
Dataset object which stores an `OrderedDict` of YAXArrays with Symbol keys.\na dictionary of CubeAxes and a Dictionary of general properties.\nA dictionary can hold cubes with differing axes. But it will share the common axes between the subcubes.

source

',2))]),e("details",x,[e("summary",null,[s[93]||(s[93]=e("a",{id:"YAXArrays.Datasets.Dataset-Tuple{}",href:"#YAXArrays.Datasets.Dataset-Tuple{}"},"#",-1)),s[94]||(s[94]=t()),s[95]||(s[95]=e("span",{class:"jlbinding"},"YAXArrays.Datasets.Dataset",-1)),s[96]||(s[96]=t()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[97]||(s[97]=e("p",null,"Dataset(; properties = Dict{String,Any}, cubes...)",-1)),s[98]||(s[98]=e("p",null,[t("Construct a YAXArray Dataset with global attributes "),e("code",null,"properties"),t(" a and a list of named YAXArrays cubes...")],-1)),s[99]||(s[99]=e("p",null,[e("a",{href:"https://github.com/JuliaDataCubes/YAXArrays.jl/blob/e1cc351c498cc8dc37986f50b6e7a5b6af71ef80/src/DatasetAPI/Datasets.jl#L28-L32",target:"_blank",rel:"noreferrer"},"source")],-1))]),e("details",F,[e("summary",null,[s[100]||(s[100]=e("a",{id:"YAXArrays.Datasets.Cube-Tuple{Dataset}",href:"#YAXArrays.Datasets.Cube-Tuple{Dataset}"},"#",-1)),s[101]||(s[101]=t()),s[102]||(s[102]=e("span",{class:"jlbinding"},"YAXArrays.Datasets.Cube",-1)),s[103]||(s[103]=t()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[104]||(s[104]=l('
julia
Cube(ds::Dataset; joinname="Variable")

Construct a single YAXArray from the dataset ds by concatenating the cubes in the datset on the joinname dimension.

source

',3))]),e("details",w,[e("summary",null,[s[105]||(s[105]=e("a",{id:"YAXArrays.Datasets.open_dataset-Tuple{Any}",href:"#YAXArrays.Datasets.open_dataset-Tuple{Any}"},"#",-1)),s[106]||(s[106]=t()),s[107]||(s[107]=e("span",{class:"jlbinding"},"YAXArrays.Datasets.open_dataset",-1)),s[108]||(s[108]=t()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[109]||(s[109]=e("p",null,"open_dataset(g; driver=:all)",-1)),s[110]||(s[110]=e("p",null,[t("Open the dataset at "),e("code",null,"g"),t(" with the given "),e("code",null,"driver"),t(". The default driver will search for available drivers and tries to detect the useable driver from the filename extension.")],-1)),s[111]||(s[111]=e("p",null,[e("a",{href:"https://github.com/JuliaDataCubes/YAXArrays.jl/blob/e1cc351c498cc8dc37986f50b6e7a5b6af71ef80/src/DatasetAPI/Datasets.jl#L330-L335",target:"_blank",rel:"noreferrer"},"source")],-1))]),e("details",L,[e("summary",null,[s[112]||(s[112]=e("a",{id:"YAXArrays.Datasets.savecube-Tuple{Any, AbstractString}",href:"#YAXArrays.Datasets.savecube-Tuple{Any, AbstractString}"},"#",-1)),s[113]||(s[113]=t()),s[114]||(s[114]=e("span",{class:"jlbinding"},"YAXArrays.Datasets.savecube",-1)),s[115]||(s[115]=t()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[116]||(s[116]=l('
julia
savecube(cube,name::String)

Save a YAXArray to the path.

Extended Help

The keyword arguments are:

  • name:

  • datasetaxis="Variable" special treatment of a categorical axis that gets written into separate zarr arrays

  • max_cache: The number of bits that are used as cache for the data handling.

  • backend: The backend, that is used to save the data. Falls back to searching the backend according to the extension of the path.

  • driver: The same setting as backend.

  • overwrite::Bool=false overwrite cube if it already exists

source

',6))]),e("details",M,[e("summary",null,[s[117]||(s[117]=e("a",{id:"YAXArrays.Datasets.savedataset-Tuple{Dataset}",href:"#YAXArrays.Datasets.savedataset-Tuple{Dataset}"},"#",-1)),s[118]||(s[118]=t()),s[119]||(s[119]=e("span",{class:"jlbinding"},"YAXArrays.Datasets.savedataset",-1)),s[120]||(s[120]=t()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[121]||(s[121]=e("p",null,'savedataset(ds::Dataset; path = "", persist = nothing, overwrite = false, append = false, skeleton=false, backend = :all, driver = backend, max_cache = 5e8, writefac=4.0)',-1)),s[122]||(s[122]=e("p",null,[t("Saves a Dataset into a file at "),e("code",null,"path"),t(" with the format given by "),e("code",null,"driver"),t(", i.e., driver=:netcdf or driver=:zarr.")],-1)),s[123]||(s[123]=e("div",{class:"warning custom-block"},[e("p",{class:"custom-block-title"},"Warning"),e("p",null,"overwrite = true, deletes ALL your data and it will create a new file.")],-1)),s[124]||(s[124]=e("p",null,[e("a",{href:"https://github.com/JuliaDataCubes/YAXArrays.jl/blob/e1cc351c498cc8dc37986f50b6e7a5b6af71ef80/src/DatasetAPI/Datasets.jl#L557-L566",target:"_blank",rel:"noreferrer"},"source")],-1))]),e("details",O,[e("summary",null,[s[125]||(s[125]=e("a",{id:"YAXArrays.Datasets.to_dataset-Tuple{Any}",href:"#YAXArrays.Datasets.to_dataset-Tuple{Any}"},"#",-1)),s[126]||(s[126]=t()),s[127]||(s[127]=e("span",{class:"jlbinding"},"YAXArrays.Datasets.to_dataset",-1)),s[128]||(s[128]=t()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[129]||(s[129]=e("p",null,'to_dataset(c;datasetaxis = "Variable", layername = "layer")',-1)),s[130]||(s[130]=e("p",null,[t(`Convert a Data Cube into a Dataset. It is possible to treat one of the Cube's axes as a "DatasetAxis" i.e. the cube will be split into different parts that become variables in the Dataset. If no such axis is specified or found, there will only be a single variable in the dataset with the name `),e("code",null,"layername")],-1)),s[131]||(s[131]=e("p",null,[e("a",{href:"https://github.com/JuliaDataCubes/YAXArrays.jl/blob/e1cc351c498cc8dc37986f50b6e7a5b6af71ef80/src/DatasetAPI/Datasets.jl#L45-L53",target:"_blank",rel:"noreferrer"},"source")],-1))]),s[261]||(s[261]=e("h2",{id:"Internal-API",tabindex:"-1"},[t("Internal API "),e("a",{class:"header-anchor",href:"#Internal-API","aria-label":'Permalink to "Internal API {#Internal-API}"'},"​")],-1)),e("details",I,[e("summary",null,[s[132]||(s[132]=e("a",{id:"YAXArrays.YAXDefaults",href:"#YAXArrays.YAXDefaults"},"#",-1)),s[133]||(s[133]=t()),s[134]||(s[134]=e("span",{class:"jlbinding"},"YAXArrays.YAXDefaults",-1)),s[135]||(s[135]=t()),i(a,{type:"info",class:"jlObjectType jlConstant",text:"Constant"})]),s[136]||(s[136]=l('

Default configuration for YAXArrays, has the following fields:

  • workdir[]::String = "./" The default location for temporary cubes.

  • recal[]::Bool = false set to true if you want @loadOrGenerate to always recalculate the results.

  • chunksize[]::Any = :input Set the default output chunksize.

  • max_cache[]::Float64 = 1e8 The maximum cache used by mapCube.

  • cubedir[]::"" the default location for Cube() without an argument.

  • subsetextensions::Array{Any} = [] List of registered functions, that convert subsetting input into dimension boundaries.

source

',3))]),e("details",B,[e("summary",null,[s[137]||(s[137]=e("a",{id:"YAXArrays.findAxis-Tuple{Any, Any}",href:"#YAXArrays.findAxis-Tuple{Any, Any}"},"#",-1)),s[138]||(s[138]=t()),s[139]||(s[139]=e("span",{class:"jlbinding"},"YAXArrays.findAxis",-1)),s[140]||(s[140]=t()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[141]||(s[141]=l('
julia
findAxis(desc, c)

Internal function

Extended Help

Given an Axis description and a cube return the index of the Axis.

The Axis description can be:

  • the name as a string or symbol.

  • an Axis object

source

',7))]),e("details",J,[e("summary",null,[s[142]||(s[142]=e("a",{id:"YAXArrays.getOutAxis-NTuple{5, Any}",href:"#YAXArrays.getOutAxis-NTuple{5, Any}"},"#",-1)),s[143]||(s[143]=t()),s[144]||(s[144]=e("span",{class:"jlbinding"},"YAXArrays.getOutAxis",-1)),s[145]||(s[145]=t()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[146]||(s[146]=l('
julia
getOutAxis

source

',2))]),e("details",P,[e("summary",null,[s[147]||(s[147]=e("a",{id:"YAXArrays.get_descriptor-Tuple{String}",href:"#YAXArrays.get_descriptor-Tuple{String}"},"#",-1)),s[148]||(s[148]=t()),s[149]||(s[149]=e("span",{class:"jlbinding"},"YAXArrays.get_descriptor",-1)),s[150]||(s[150]=t()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[151]||(s[151]=l('
julia
get_descriptor(a)

Get the descriptor of an Axis. This is used to dispatch on the descriptor.

source

',3))]),e("details",z,[e("summary",null,[s[152]||(s[152]=e("a",{id:"YAXArrays.match_axis-Tuple{YAXArrays.ByName, Any}",href:"#YAXArrays.match_axis-Tuple{YAXArrays.ByName, Any}"},"#",-1)),s[153]||(s[153]=t()),s[154]||(s[154]=e("span",{class:"jlbinding"},"YAXArrays.match_axis",-1)),s[155]||(s[155]=t()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[156]||(s[156]=l(`
julia
match_axis

Internal function

Extended Help

Match the Axis based on the AxisDescriptor.
+For the specific keyword arguments see the docstring of the mapCube function for cubes.

source

`,2))]),e("details",X,[e("summary",null,[s[83]||(s[83]=e("a",{id:"YAXArrays.DAT.mapCube-Tuple{Function, Tuple, Vararg{Any}}",href:"#YAXArrays.DAT.mapCube-Tuple{Function, Tuple, Vararg{Any}}"},"#",-1)),s[84]||(s[84]=t()),s[85]||(s[85]=e("span",{class:"jlbinding"},"YAXArrays.DAT.mapCube",-1)),s[86]||(s[86]=t()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[87]||(s[87]=l('
julia
mapCube(fun, cube, addargs...;kwargs...)

Map a given function fun over slices of the data cube cube. The additional arguments addargs will be forwarded to the inner function fun. Use InDims to discribe the input dimensions and OutDims to describe the output dimensions of the function.

Keyword arguments

  • max_cache=YAXDefaults.max_cache Float64 maximum size of blocks that are read into memory in bits e.g. max_cache=5.0e8. Or String. e.g. max_cache="10MB" ormax_cache=1GB``` defaults to approx 10Mb.

  • indims::InDims List of input cube descriptors of type InDims for each input data cube.

  • outdims::OutDims List of output cube descriptors of type OutDims for each output cube.

  • inplace does the function write to an output array inplace or return a single value> defaults to true

  • ispar boolean to determine if parallelisation should be applied, defaults to true if workers are available.

  • showprog boolean indicating if a ProgressMeter shall be shown

  • include_loopvars boolean to indicate if the varoables looped over should be added as function arguments

  • nthreads number of threads for the computation, defaults to Threads.nthreads for every worker.

  • loopchunksize determines the chunk sizes of variables which are looped over, a dict

  • kwargs additional keyword arguments are passed to the inner function

The first argument is always the function to be applied, the second is the input cube or a tuple of input cubes if needed.

source

',6))]),e("details",Y,[e("summary",null,[s[88]||(s[88]=e("a",{id:"YAXArrays.Datasets.Dataset",href:"#YAXArrays.Datasets.Dataset"},"#",-1)),s[89]||(s[89]=t()),s[90]||(s[90]=e("span",{class:"jlbinding"},"YAXArrays.Datasets.Dataset",-1)),s[91]||(s[91]=t()),i(a,{type:"info",class:"jlObjectType jlType",text:"Type"})]),s[92]||(s[92]=l('
julia
Dataset object which stores an `OrderedDict` of YAXArrays with Symbol keys.\na dictionary of CubeAxes and a Dictionary of general properties.\nA dictionary can hold cubes with differing axes. But it will share the common axes between the subcubes.

source

',2))]),e("details",x,[e("summary",null,[s[93]||(s[93]=e("a",{id:"YAXArrays.Datasets.Dataset-Tuple{}",href:"#YAXArrays.Datasets.Dataset-Tuple{}"},"#",-1)),s[94]||(s[94]=t()),s[95]||(s[95]=e("span",{class:"jlbinding"},"YAXArrays.Datasets.Dataset",-1)),s[96]||(s[96]=t()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[97]||(s[97]=e("p",null,"Dataset(; properties = Dict{String,Any}, cubes...)",-1)),s[98]||(s[98]=e("p",null,[t("Construct a YAXArray Dataset with global attributes "),e("code",null,"properties"),t(" a and a list of named YAXArrays cubes...")],-1)),s[99]||(s[99]=e("p",null,[e("a",{href:"https://github.com/JuliaDataCubes/YAXArrays.jl/blob/745a37981c880d46c63cf59ae9600b8ba3b3e713/src/DatasetAPI/Datasets.jl#L28-L32",target:"_blank",rel:"noreferrer"},"source")],-1))]),e("details",F,[e("summary",null,[s[100]||(s[100]=e("a",{id:"YAXArrays.Datasets.Cube-Tuple{Dataset}",href:"#YAXArrays.Datasets.Cube-Tuple{Dataset}"},"#",-1)),s[101]||(s[101]=t()),s[102]||(s[102]=e("span",{class:"jlbinding"},"YAXArrays.Datasets.Cube",-1)),s[103]||(s[103]=t()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[104]||(s[104]=l('
julia
Cube(ds::Dataset; joinname="Variable")

Construct a single YAXArray from the dataset ds by concatenating the cubes in the datset on the joinname dimension.

source

',3))]),e("details",w,[e("summary",null,[s[105]||(s[105]=e("a",{id:"YAXArrays.Datasets.open_dataset-Tuple{Any}",href:"#YAXArrays.Datasets.open_dataset-Tuple{Any}"},"#",-1)),s[106]||(s[106]=t()),s[107]||(s[107]=e("span",{class:"jlbinding"},"YAXArrays.Datasets.open_dataset",-1)),s[108]||(s[108]=t()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[109]||(s[109]=e("p",null,"open_dataset(g; driver=:all)",-1)),s[110]||(s[110]=e("p",null,[t("Open the dataset at "),e("code",null,"g"),t(" with the given "),e("code",null,"driver"),t(". The default driver will search for available drivers and tries to detect the useable driver from the filename extension.")],-1)),s[111]||(s[111]=e("p",null,[e("a",{href:"https://github.com/JuliaDataCubes/YAXArrays.jl/blob/745a37981c880d46c63cf59ae9600b8ba3b3e713/src/DatasetAPI/Datasets.jl#L330-L335",target:"_blank",rel:"noreferrer"},"source")],-1))]),e("details",L,[e("summary",null,[s[112]||(s[112]=e("a",{id:"YAXArrays.Datasets.savecube-Tuple{Any, AbstractString}",href:"#YAXArrays.Datasets.savecube-Tuple{Any, AbstractString}"},"#",-1)),s[113]||(s[113]=t()),s[114]||(s[114]=e("span",{class:"jlbinding"},"YAXArrays.Datasets.savecube",-1)),s[115]||(s[115]=t()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[116]||(s[116]=l('
julia
savecube(cube,name::String)

Save a YAXArray to the path.

Extended Help

The keyword arguments are:

  • name:

  • datasetaxis="Variable" special treatment of a categorical axis that gets written into separate zarr arrays

  • max_cache: The number of bits that are used as cache for the data handling.

  • backend: The backend, that is used to save the data. Falls back to searching the backend according to the extension of the path.

  • driver: The same setting as backend.

  • overwrite::Bool=false overwrite cube if it already exists

source

',6))]),e("details",M,[e("summary",null,[s[117]||(s[117]=e("a",{id:"YAXArrays.Datasets.savedataset-Tuple{Dataset}",href:"#YAXArrays.Datasets.savedataset-Tuple{Dataset}"},"#",-1)),s[118]||(s[118]=t()),s[119]||(s[119]=e("span",{class:"jlbinding"},"YAXArrays.Datasets.savedataset",-1)),s[120]||(s[120]=t()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[121]||(s[121]=e("p",null,'savedataset(ds::Dataset; path = "", persist = nothing, overwrite = false, append = false, skeleton=false, backend = :all, driver = backend, max_cache = 5e8, writefac=4.0)',-1)),s[122]||(s[122]=e("p",null,[t("Saves a Dataset into a file at "),e("code",null,"path"),t(" with the format given by "),e("code",null,"driver"),t(", i.e., driver=:netcdf or driver=:zarr.")],-1)),s[123]||(s[123]=e("div",{class:"warning custom-block"},[e("p",{class:"custom-block-title"},"Warning"),e("p",null,"overwrite = true, deletes ALL your data and it will create a new file.")],-1)),s[124]||(s[124]=e("p",null,[e("a",{href:"https://github.com/JuliaDataCubes/YAXArrays.jl/blob/745a37981c880d46c63cf59ae9600b8ba3b3e713/src/DatasetAPI/Datasets.jl#L557-L566",target:"_blank",rel:"noreferrer"},"source")],-1))]),e("details",O,[e("summary",null,[s[125]||(s[125]=e("a",{id:"YAXArrays.Datasets.to_dataset-Tuple{Any}",href:"#YAXArrays.Datasets.to_dataset-Tuple{Any}"},"#",-1)),s[126]||(s[126]=t()),s[127]||(s[127]=e("span",{class:"jlbinding"},"YAXArrays.Datasets.to_dataset",-1)),s[128]||(s[128]=t()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[129]||(s[129]=e("p",null,'to_dataset(c;datasetaxis = "Variable", layername = "layer")',-1)),s[130]||(s[130]=e("p",null,[t(`Convert a Data Cube into a Dataset. It is possible to treat one of the Cube's axes as a "DatasetAxis" i.e. the cube will be split into different parts that become variables in the Dataset. If no such axis is specified or found, there will only be a single variable in the dataset with the name `),e("code",null,"layername")],-1)),s[131]||(s[131]=e("p",null,[e("a",{href:"https://github.com/JuliaDataCubes/YAXArrays.jl/blob/745a37981c880d46c63cf59ae9600b8ba3b3e713/src/DatasetAPI/Datasets.jl#L45-L53",target:"_blank",rel:"noreferrer"},"source")],-1))]),s[261]||(s[261]=e("h2",{id:"Internal-API",tabindex:"-1"},[t("Internal API "),e("a",{class:"header-anchor",href:"#Internal-API","aria-label":'Permalink to "Internal API {#Internal-API}"'},"​")],-1)),e("details",I,[e("summary",null,[s[132]||(s[132]=e("a",{id:"YAXArrays.YAXDefaults",href:"#YAXArrays.YAXDefaults"},"#",-1)),s[133]||(s[133]=t()),s[134]||(s[134]=e("span",{class:"jlbinding"},"YAXArrays.YAXDefaults",-1)),s[135]||(s[135]=t()),i(a,{type:"info",class:"jlObjectType jlConstant",text:"Constant"})]),s[136]||(s[136]=l('

Default configuration for YAXArrays, has the following fields:

  • workdir[]::String = "./" The default location for temporary cubes.

  • recal[]::Bool = false set to true if you want @loadOrGenerate to always recalculate the results.

  • chunksize[]::Any = :input Set the default output chunksize.

  • max_cache[]::Float64 = 1e8 The maximum cache used by mapCube.

  • cubedir[]::"" the default location for Cube() without an argument.

  • subsetextensions::Array{Any} = [] List of registered functions, that convert subsetting input into dimension boundaries.

source

',3))]),e("details",B,[e("summary",null,[s[137]||(s[137]=e("a",{id:"YAXArrays.findAxis-Tuple{Any, Any}",href:"#YAXArrays.findAxis-Tuple{Any, Any}"},"#",-1)),s[138]||(s[138]=t()),s[139]||(s[139]=e("span",{class:"jlbinding"},"YAXArrays.findAxis",-1)),s[140]||(s[140]=t()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[141]||(s[141]=l('
julia
findAxis(desc, c)

Internal function

Extended Help

Given an Axis description and a cube return the index of the Axis.

The Axis description can be:

  • the name as a string or symbol.

  • an Axis object

source

',7))]),e("details",J,[e("summary",null,[s[142]||(s[142]=e("a",{id:"YAXArrays.getOutAxis-NTuple{5, Any}",href:"#YAXArrays.getOutAxis-NTuple{5, Any}"},"#",-1)),s[143]||(s[143]=t()),s[144]||(s[144]=e("span",{class:"jlbinding"},"YAXArrays.getOutAxis",-1)),s[145]||(s[145]=t()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[146]||(s[146]=l('
julia
getOutAxis

source

',2))]),e("details",P,[e("summary",null,[s[147]||(s[147]=e("a",{id:"YAXArrays.get_descriptor-Tuple{String}",href:"#YAXArrays.get_descriptor-Tuple{String}"},"#",-1)),s[148]||(s[148]=t()),s[149]||(s[149]=e("span",{class:"jlbinding"},"YAXArrays.get_descriptor",-1)),s[150]||(s[150]=t()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[151]||(s[151]=l('
julia
get_descriptor(a)

Get the descriptor of an Axis. This is used to dispatch on the descriptor.

source

',3))]),e("details",z,[e("summary",null,[s[152]||(s[152]=e("a",{id:"YAXArrays.match_axis-Tuple{YAXArrays.ByName, Any}",href:"#YAXArrays.match_axis-Tuple{YAXArrays.ByName, Any}"},"#",-1)),s[153]||(s[153]=t()),s[154]||(s[154]=e("span",{class:"jlbinding"},"YAXArrays.match_axis",-1)),s[155]||(s[155]=t()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[156]||(s[156]=l(`
julia
match_axis

Internal function

Extended Help

Match the Axis based on the AxisDescriptor.
 This is used to find different axes and to make certain axis description the same.
-For example to disregard differences of captialisation.

source

`,5))]),e("details",N,[e("summary",null,[s[157]||(s[157]=e("a",{id:"YAXArrays.Cubes.CleanMe",href:"#YAXArrays.Cubes.CleanMe"},"#",-1)),s[158]||(s[158]=t()),s[159]||(s[159]=e("span",{class:"jlbinding"},"YAXArrays.Cubes.CleanMe",-1)),s[160]||(s[160]=t()),i(a,{type:"info",class:"jlObjectType jlType",text:"Type"})]),s[161]||(s[161]=l('
julia
mutable struct CleanMe

Struct which describes data paths and their persistency. Non-persistend paths/files are removed at finalize step

source

',3))]),e("details",S,[e("summary",null,[s[162]||(s[162]=e("a",{id:"YAXArrays.Cubes.clean-Tuple{YAXArrays.Cubes.CleanMe}",href:"#YAXArrays.Cubes.clean-Tuple{YAXArrays.Cubes.CleanMe}"},"#",-1)),s[163]||(s[163]=t()),s[164]||(s[164]=e("span",{class:"jlbinding"},"YAXArrays.Cubes.clean",-1)),s[165]||(s[165]=t()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[166]||(s[166]=l('
julia
clean(c::CleanMe)

finalizer function for CleanMe struct. The main process removes all directories/files which are not persistent.

source

',3))]),e("details",q,[e("summary",null,[s[167]||(s[167]=e("a",{id:"YAXArrays.Cubes.copydata-Tuple{Any, Any, Any}",href:"#YAXArrays.Cubes.copydata-Tuple{Any, Any, Any}"},"#",-1)),s[168]||(s[168]=t()),s[169]||(s[169]=e("span",{class:"jlbinding"},"YAXArrays.Cubes.copydata",-1)),s[170]||(s[170]=t()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[171]||(s[171]=l('
julia
copydata(outar, inar, copybuf)

Internal function which copies the data from the input inar into the output outar at the copybuf positions.

source

',3))]),e("details",R,[e("summary",null,[s[172]||(s[172]=e("a",{id:"YAXArrays.Cubes.optifunc-NTuple{7, Any}",href:"#YAXArrays.Cubes.optifunc-NTuple{7, Any}"},"#",-1)),s[173]||(s[173]=t()),s[174]||(s[174]=e("span",{class:"jlbinding"},"YAXArrays.Cubes.optifunc",-1)),s[175]||(s[175]=t()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[176]||(s[176]=l('
julia
optifunc(s, maxbuf, incs, outcs, insize, outsize, writefac)

Internal

This function is going to be minimized to detect the best possible chunk setting for the rechunking of the data.

source

',4))]),e("details",V,[e("summary",null,[s[177]||(s[177]=e("a",{id:"YAXArrays.DAT.DATConfig",href:"#YAXArrays.DAT.DATConfig"},"#",-1)),s[178]||(s[178]=t()),s[179]||(s[179]=e("span",{class:"jlbinding"},"YAXArrays.DAT.DATConfig",-1)),s[180]||(s[180]=t()),i(a,{type:"info",class:"jlObjectType jlType",text:"Type"})]),s[181]||(s[181]=l('

Configuration object of a DAT process. This holds all necessary information to perform the calculations. It contains the following fields:

  • incubes::Tuple{Vararg{YAXArrays.DAT.InputCube, NIN}} where NIN: The input data cubes

  • outcubes::Tuple{Vararg{YAXArrays.DAT.OutputCube, NOUT}} where NOUT: The output data cubes

  • allInAxes::Vector: List of all axes of the input cubes

  • LoopAxes::Vector: List of axes that are looped through

  • ispar::Bool: Flag whether the computation is parallelized

  • loopcachesize::Vector{Int64}:

  • allow_irregular_chunks::Bool:

  • max_cache::Any: Maximal size of the in memory cache

  • fu::Any: Inner function which is computed

  • inplace::Bool: Flag whether the computation happens in place

  • include_loopvars::Bool:

  • ntr::Any:

  • do_gc::Bool: Flag if GC should be called explicitly. Probably necessary for many runs in Julia 1.9

  • addargs::Any: Additional arguments for the inner function

  • kwargs::Any: Additional keyword arguments for the inner function

source

',3))]),e("details",G,[e("summary",null,[s[182]||(s[182]=e("a",{id:"YAXArrays.DAT.InputCube",href:"#YAXArrays.DAT.InputCube"},"#",-1)),s[183]||(s[183]=t()),s[184]||(s[184]=e("span",{class:"jlbinding"},"YAXArrays.DAT.InputCube",-1)),s[185]||(s[185]=t()),i(a,{type:"info",class:"jlObjectType jlType",text:"Type"})]),s[186]||(s[186]=l('

Internal representation of an input cube for DAT operations

  • cube: The input data

  • desc: The input description given by the user/registration

  • axesSmall: List of axes that were actually selected through the description

  • icolon

  • colonperm

  • loopinds: Indices of loop axes that this cube does not contain, i.e. broadcasts

  • cachesize: Number of elements to keep in cache along each axis

  • window

  • iwindow

  • windowloopinds

  • iall

source

',3))]),e("details",W,[e("summary",null,[s[187]||(s[187]=e("a",{id:"YAXArrays.DAT.OutputCube",href:"#YAXArrays.DAT.OutputCube"},"#",-1)),s[188]||(s[188]=t()),s[189]||(s[189]=e("span",{class:"jlbinding"},"YAXArrays.DAT.OutputCube",-1)),s[190]||(s[190]=t()),i(a,{type:"info",class:"jlObjectType jlType",text:"Type"})]),s[191]||(s[191]=l('

Internal representation of an output cube for DAT operations

Fields

  • cube: The actual outcube cube, once it is generated

  • cube_unpermuted: The unpermuted output cube

  • desc: The description of the output axes as given by users or registration

  • axesSmall: The list of output axes determined through the description

  • allAxes: List of all the axes of the cube

  • loopinds: Index of the loop axes that are broadcasted for this output cube

  • innerchunks

  • outtype: Elementtype of the outputcube

source

',4))]),e("details",U,[e("summary",null,[s[192]||(s[192]=e("a",{id:"YAXArrays.DAT.YAXColumn",href:"#YAXArrays.DAT.YAXColumn"},"#",-1)),s[193]||(s[193]=t()),s[194]||(s[194]=e("span",{class:"jlbinding"},"YAXArrays.DAT.YAXColumn",-1)),s[195]||(s[195]=t()),i(a,{type:"info",class:"jlObjectType jlType",text:"Type"})]),s[196]||(s[196]=l('
julia
YAXColumn

A struct representing a single column of a YAXArray partitioned Table # Fields

  • inarBC

  • inds

source

',4))]),e("details",$,[e("summary",null,[s[197]||(s[197]=e("a",{id:"YAXArrays.DAT.cmpcachmisses-Tuple{Any, Any}",href:"#YAXArrays.DAT.cmpcachmisses-Tuple{Any, Any}"},"#",-1)),s[198]||(s[198]=t()),s[199]||(s[199]=e("span",{class:"jlbinding"},"YAXArrays.DAT.cmpcachmisses",-1)),s[200]||(s[200]=t()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[201]||(s[201]=e("p",null,"Function that compares two cache miss specifiers by their importance",-1)),s[202]||(s[202]=e("p",null,[e("a",{href:"https://github.com/JuliaDataCubes/YAXArrays.jl/blob/e1cc351c498cc8dc37986f50b6e7a5b6af71ef80/src/DAT/DAT.jl#L954-L956",target:"_blank",rel:"noreferrer"},"source")],-1))]),e("details",H,[e("summary",null,[s[203]||(s[203]=e("a",{id:"YAXArrays.DAT.getFrontPerm-Tuple{Any, Any}",href:"#YAXArrays.DAT.getFrontPerm-Tuple{Any, Any}"},"#",-1)),s[204]||(s[204]=t()),s[205]||(s[205]=e("span",{class:"jlbinding"},"YAXArrays.DAT.getFrontPerm",-1)),s[206]||(s[206]=t()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[207]||(s[207]=e("p",null,"Calculate an axis permutation that brings the wanted dimensions to the front",-1)),s[208]||(s[208]=e("p",null,[e("a",{href:"https://github.com/JuliaDataCubes/YAXArrays.jl/blob/e1cc351c498cc8dc37986f50b6e7a5b6af71ef80/src/DAT/DAT.jl#L1199",target:"_blank",rel:"noreferrer"},"source")],-1))]),e("details",K,[e("summary",null,[s[209]||(s[209]=e("a",{id:"YAXArrays.DAT.getLoopCacheSize-NTuple{5, Any}",href:"#YAXArrays.DAT.getLoopCacheSize-NTuple{5, Any}"},"#",-1)),s[210]||(s[210]=t()),s[211]||(s[211]=e("span",{class:"jlbinding"},"YAXArrays.DAT.getLoopCacheSize",-1)),s[212]||(s[212]=t()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[213]||(s[213]=e("p",null,"Calculate optimal Cache size to DAT operation",-1)),s[214]||(s[214]=e("p",null,[e("a",{href:"https://github.com/JuliaDataCubes/YAXArrays.jl/blob/e1cc351c498cc8dc37986f50b6e7a5b6af71ef80/src/DAT/DAT.jl#L1053",target:"_blank",rel:"noreferrer"},"source")],-1))]),e("details",Z,[e("summary",null,[s[215]||(s[215]=e("a",{id:"YAXArrays.DAT.getOuttype-Tuple{Int64, Any}",href:"#YAXArrays.DAT.getOuttype-Tuple{Int64, Any}"},"#",-1)),s[216]||(s[216]=t()),s[217]||(s[217]=e("span",{class:"jlbinding"},"YAXArrays.DAT.getOuttype",-1)),s[218]||(s[218]=t()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[219]||(s[219]=l('
julia
getOuttype(outtype, cdata)

Internal function

Get the element type for the output cube

source

',4))]),e("details",Q,[e("summary",null,[s[220]||(s[220]=e("a",{id:"YAXArrays.DAT.getloopchunks-Tuple{YAXArrays.DAT.DATConfig}",href:"#YAXArrays.DAT.getloopchunks-Tuple{YAXArrays.DAT.DATConfig}"},"#",-1)),s[221]||(s[221]=t()),s[222]||(s[222]=e("span",{class:"jlbinding"},"YAXArrays.DAT.getloopchunks",-1)),s[223]||(s[223]=t()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[224]||(s[224]=l('
julia
getloopchunks(dc::DATConfig)

Internal function

Returns the chunks that can be looped over toghether for all dimensions.\nThis computation of the size of the chunks is handled by [`DiskArrays.approx_chunksize`](@ref)

source

',4))]),e("details",_,[e("summary",null,[s[225]||(s[225]=e("a",{id:"YAXArrays.DAT.permuteloopaxes-Tuple{Any}",href:"#YAXArrays.DAT.permuteloopaxes-Tuple{Any}"},"#",-1)),s[226]||(s[226]=t()),s[227]||(s[227]=e("span",{class:"jlbinding"},"YAXArrays.DAT.permuteloopaxes",-1)),s[228]||(s[228]=t()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[229]||(s[229]=l('
julia
permuteloopaxes(dc)

Internal function

Permute the dimensions of the cube, so that the axes that are looped through are in the first positions. This is necessary for a faster looping through the data.

source

',4))]),e("details",ss,[e("summary",null,[s[230]||(s[230]=e("a",{id:"YAXArrays.Cubes.setchunks-Tuple{Dataset, Any}",href:"#YAXArrays.Cubes.setchunks-Tuple{Dataset, Any}"},"#",-1)),s[231]||(s[231]=t()),s[232]||(s[232]=e("span",{class:"jlbinding"},"YAXArrays.Cubes.setchunks",-1)),s[233]||(s[233]=t()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[234]||(s[234]=l('
julia
setchunks(c::Dataset,chunks)

Resets the chunks of all or a subset YAXArrays in the dataset and returns a new Dataset. Note that this will not change the chunking of the underlying data itself, it will just make the data "look" like it had a different chunking. If you need a persistent on-disk representation of this chunking, use savedataset on the resulting array. The chunks argument can take one of the following forms:

  • a NamedTuple or AbstractDict mapping from variable name to a description of the desired variable chunks

  • a NamedTuple or AbstractDict mapping from dimension name to a description of the desired variable chunks

  • a description of the desired variable chunks applied to all members of the Dataset

where a description of the desired variable chunks can take one of the following forms:

  • a DiskArrays.GridChunks object

  • a tuple specifying the chunk size along each dimension

  • an AbstractDict or NamedTuple mapping one or more axis names to chunk sizes

source

',6))]),e("details",es,[e("summary",null,[s[235]||(s[235]=e("a",{id:"YAXArrays.Datasets.collectfromhandle-Tuple{Any, Any, Any}",href:"#YAXArrays.Datasets.collectfromhandle-Tuple{Any, Any, Any}"},"#",-1)),s[236]||(s[236]=t()),s[237]||(s[237]=e("span",{class:"jlbinding"},"YAXArrays.Datasets.collectfromhandle",-1)),s[238]||(s[238]=t()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[239]||(s[239]=e("p",null,"Extracts a YAXArray from a dataset handle that was just created from a arrayinfo",-1)),s[240]||(s[240]=e("p",null,[e("a",{href:"https://github.com/JuliaDataCubes/YAXArrays.jl/blob/e1cc351c498cc8dc37986f50b6e7a5b6af71ef80/src/DatasetAPI/Datasets.jl#L463-L465",target:"_blank",rel:"noreferrer"},"source")],-1))]),e("details",ts,[e("summary",null,[s[241]||(s[241]=e("a",{id:"YAXArrays.Datasets.createdataset-Tuple{Any, Any}",href:"#YAXArrays.Datasets.createdataset-Tuple{Any, Any}"},"#",-1)),s[242]||(s[242]=t()),s[243]||(s[243]=e("span",{class:"jlbinding"},"YAXArrays.Datasets.createdataset",-1)),s[244]||(s[244]=t()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[245]||(s[245]=l('

function createdataset(DS::Type,axlist; kwargs...)

Creates a new dataset with axes specified in axlist. Each axis must be a subtype of CubeAxis. A new empty Zarr array will be created and can serve as a sink for mapCube operations.

Keyword arguments

  • path="" location where the new cube is stored

  • T=Union{Float32,Missing} data type of the target cube

  • chunksize = ntuple(i->length(axlist[i]),length(axlist)) chunk sizes of the array

  • chunkoffset = ntuple(i->0,length(axlist)) offsets of the chunks

  • persist::Bool=true shall the disk data be garbage-collected when the cube goes out of scope?

  • overwrite::Bool=false overwrite cube if it already exists

  • properties=Dict{String,Any}() additional cube properties

  • globalproperties=Dict{String,Any} global attributes to be added to the dataset

  • fillvalue= T>:Missing ? defaultfillval(Base.nonmissingtype(T)) : nothing fill value

  • datasetaxis="Variable" special treatment of a categorical axis that gets written into separate zarr arrays

  • layername="layer" Fallback name of the variable stored in the dataset if no datasetaxis is found

source

',6))]),e("details",as,[e("summary",null,[s[246]||(s[246]=e("a",{id:"YAXArrays.Datasets.getarrayinfo-Tuple{Any, Any}",href:"#YAXArrays.Datasets.getarrayinfo-Tuple{Any, Any}"},"#",-1)),s[247]||(s[247]=t()),s[248]||(s[248]=e("span",{class:"jlbinding"},"YAXArrays.Datasets.getarrayinfo",-1)),s[249]||(s[249]=t()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[250]||(s[250]=e("p",null,"Extract necessary information to create a YAXArrayBase dataset from a name and YAXArray pair",-1)),s[251]||(s[251]=e("p",null,[e("a",{href:"https://github.com/JuliaDataCubes/YAXArrays.jl/blob/e1cc351c498cc8dc37986f50b6e7a5b6af71ef80/src/DatasetAPI/Datasets.jl#L432-L434",target:"_blank",rel:"noreferrer"},"source")],-1))]),e("details",is,[e("summary",null,[s[252]||(s[252]=e("a",{id:"YAXArrays.Datasets.testrange-Tuple{Any}",href:"#YAXArrays.Datasets.testrange-Tuple{Any}"},"#",-1)),s[253]||(s[253]=t()),s[254]||(s[254]=e("span",{class:"jlbinding"},"YAXArrays.Datasets.testrange",-1)),s[255]||(s[255]=t()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[256]||(s[256]=e("p",null,"Test if data in x can be approximated by a step range",-1)),s[257]||(s[257]=e("p",null,[e("a",{href:"https://github.com/JuliaDataCubes/YAXArrays.jl/blob/e1cc351c498cc8dc37986f50b6e7a5b6af71ef80/src/DatasetAPI/Datasets.jl#L302",target:"_blank",rel:"noreferrer"},"source")],-1))])])}const cs=n(d,[["render",ls]]);export{bs as __pageData,cs as default}; +For example to disregard differences of captialisation.

source

`,5))]),e("details",N,[e("summary",null,[s[157]||(s[157]=e("a",{id:"YAXArrays.Cubes.CleanMe",href:"#YAXArrays.Cubes.CleanMe"},"#",-1)),s[158]||(s[158]=t()),s[159]||(s[159]=e("span",{class:"jlbinding"},"YAXArrays.Cubes.CleanMe",-1)),s[160]||(s[160]=t()),i(a,{type:"info",class:"jlObjectType jlType",text:"Type"})]),s[161]||(s[161]=l('
julia
mutable struct CleanMe

Struct which describes data paths and their persistency. Non-persistend paths/files are removed at finalize step

source

',3))]),e("details",S,[e("summary",null,[s[162]||(s[162]=e("a",{id:"YAXArrays.Cubes.clean-Tuple{YAXArrays.Cubes.CleanMe}",href:"#YAXArrays.Cubes.clean-Tuple{YAXArrays.Cubes.CleanMe}"},"#",-1)),s[163]||(s[163]=t()),s[164]||(s[164]=e("span",{class:"jlbinding"},"YAXArrays.Cubes.clean",-1)),s[165]||(s[165]=t()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[166]||(s[166]=l('
julia
clean(c::CleanMe)

finalizer function for CleanMe struct. The main process removes all directories/files which are not persistent.

source

',3))]),e("details",q,[e("summary",null,[s[167]||(s[167]=e("a",{id:"YAXArrays.Cubes.copydata-Tuple{Any, Any, Any}",href:"#YAXArrays.Cubes.copydata-Tuple{Any, Any, Any}"},"#",-1)),s[168]||(s[168]=t()),s[169]||(s[169]=e("span",{class:"jlbinding"},"YAXArrays.Cubes.copydata",-1)),s[170]||(s[170]=t()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[171]||(s[171]=l('
julia
copydata(outar, inar, copybuf)

Internal function which copies the data from the input inar into the output outar at the copybuf positions.

source

',3))]),e("details",R,[e("summary",null,[s[172]||(s[172]=e("a",{id:"YAXArrays.Cubes.optifunc-NTuple{7, Any}",href:"#YAXArrays.Cubes.optifunc-NTuple{7, Any}"},"#",-1)),s[173]||(s[173]=t()),s[174]||(s[174]=e("span",{class:"jlbinding"},"YAXArrays.Cubes.optifunc",-1)),s[175]||(s[175]=t()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[176]||(s[176]=l('
julia
optifunc(s, maxbuf, incs, outcs, insize, outsize, writefac)

Internal

This function is going to be minimized to detect the best possible chunk setting for the rechunking of the data.

source

',4))]),e("details",V,[e("summary",null,[s[177]||(s[177]=e("a",{id:"YAXArrays.DAT.DATConfig",href:"#YAXArrays.DAT.DATConfig"},"#",-1)),s[178]||(s[178]=t()),s[179]||(s[179]=e("span",{class:"jlbinding"},"YAXArrays.DAT.DATConfig",-1)),s[180]||(s[180]=t()),i(a,{type:"info",class:"jlObjectType jlType",text:"Type"})]),s[181]||(s[181]=l('

Configuration object of a DAT process. This holds all necessary information to perform the calculations. It contains the following fields:

  • incubes::Tuple{Vararg{YAXArrays.DAT.InputCube, NIN}} where NIN: The input data cubes

  • outcubes::Tuple{Vararg{YAXArrays.DAT.OutputCube, NOUT}} where NOUT: The output data cubes

  • allInAxes::Vector: List of all axes of the input cubes

  • LoopAxes::Vector: List of axes that are looped through

  • ispar::Bool: Flag whether the computation is parallelized

  • loopcachesize::Vector{Int64}:

  • allow_irregular_chunks::Bool:

  • max_cache::Any: Maximal size of the in memory cache

  • fu::Any: Inner function which is computed

  • inplace::Bool: Flag whether the computation happens in place

  • include_loopvars::Bool:

  • ntr::Any:

  • do_gc::Bool: Flag if GC should be called explicitly. Probably necessary for many runs in Julia 1.9

  • addargs::Any: Additional arguments for the inner function

  • kwargs::Any: Additional keyword arguments for the inner function

source

',3))]),e("details",G,[e("summary",null,[s[182]||(s[182]=e("a",{id:"YAXArrays.DAT.InputCube",href:"#YAXArrays.DAT.InputCube"},"#",-1)),s[183]||(s[183]=t()),s[184]||(s[184]=e("span",{class:"jlbinding"},"YAXArrays.DAT.InputCube",-1)),s[185]||(s[185]=t()),i(a,{type:"info",class:"jlObjectType jlType",text:"Type"})]),s[186]||(s[186]=l('

Internal representation of an input cube for DAT operations

  • cube: The input data

  • desc: The input description given by the user/registration

  • axesSmall: List of axes that were actually selected through the description

  • icolon

  • colonperm

  • loopinds: Indices of loop axes that this cube does not contain, i.e. broadcasts

  • cachesize: Number of elements to keep in cache along each axis

  • window

  • iwindow

  • windowloopinds

  • iall

source

',3))]),e("details",W,[e("summary",null,[s[187]||(s[187]=e("a",{id:"YAXArrays.DAT.OutputCube",href:"#YAXArrays.DAT.OutputCube"},"#",-1)),s[188]||(s[188]=t()),s[189]||(s[189]=e("span",{class:"jlbinding"},"YAXArrays.DAT.OutputCube",-1)),s[190]||(s[190]=t()),i(a,{type:"info",class:"jlObjectType jlType",text:"Type"})]),s[191]||(s[191]=l('

Internal representation of an output cube for DAT operations

Fields

  • cube: The actual outcube cube, once it is generated

  • cube_unpermuted: The unpermuted output cube

  • desc: The description of the output axes as given by users or registration

  • axesSmall: The list of output axes determined through the description

  • allAxes: List of all the axes of the cube

  • loopinds: Index of the loop axes that are broadcasted for this output cube

  • innerchunks

  • outtype: Elementtype of the outputcube

source

',4))]),e("details",U,[e("summary",null,[s[192]||(s[192]=e("a",{id:"YAXArrays.DAT.YAXColumn",href:"#YAXArrays.DAT.YAXColumn"},"#",-1)),s[193]||(s[193]=t()),s[194]||(s[194]=e("span",{class:"jlbinding"},"YAXArrays.DAT.YAXColumn",-1)),s[195]||(s[195]=t()),i(a,{type:"info",class:"jlObjectType jlType",text:"Type"})]),s[196]||(s[196]=l('
julia
YAXColumn

A struct representing a single column of a YAXArray partitioned Table # Fields

  • inarBC

  • inds

source

',4))]),e("details",$,[e("summary",null,[s[197]||(s[197]=e("a",{id:"YAXArrays.DAT.cmpcachmisses-Tuple{Any, Any}",href:"#YAXArrays.DAT.cmpcachmisses-Tuple{Any, Any}"},"#",-1)),s[198]||(s[198]=t()),s[199]||(s[199]=e("span",{class:"jlbinding"},"YAXArrays.DAT.cmpcachmisses",-1)),s[200]||(s[200]=t()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[201]||(s[201]=e("p",null,"Function that compares two cache miss specifiers by their importance",-1)),s[202]||(s[202]=e("p",null,[e("a",{href:"https://github.com/JuliaDataCubes/YAXArrays.jl/blob/745a37981c880d46c63cf59ae9600b8ba3b3e713/src/DAT/DAT.jl#L957-L959",target:"_blank",rel:"noreferrer"},"source")],-1))]),e("details",H,[e("summary",null,[s[203]||(s[203]=e("a",{id:"YAXArrays.DAT.getFrontPerm-Tuple{Any, Any}",href:"#YAXArrays.DAT.getFrontPerm-Tuple{Any, Any}"},"#",-1)),s[204]||(s[204]=t()),s[205]||(s[205]=e("span",{class:"jlbinding"},"YAXArrays.DAT.getFrontPerm",-1)),s[206]||(s[206]=t()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[207]||(s[207]=e("p",null,"Calculate an axis permutation that brings the wanted dimensions to the front",-1)),s[208]||(s[208]=e("p",null,[e("a",{href:"https://github.com/JuliaDataCubes/YAXArrays.jl/blob/745a37981c880d46c63cf59ae9600b8ba3b3e713/src/DAT/DAT.jl#L1202",target:"_blank",rel:"noreferrer"},"source")],-1))]),e("details",K,[e("summary",null,[s[209]||(s[209]=e("a",{id:"YAXArrays.DAT.getLoopCacheSize-NTuple{5, Any}",href:"#YAXArrays.DAT.getLoopCacheSize-NTuple{5, Any}"},"#",-1)),s[210]||(s[210]=t()),s[211]||(s[211]=e("span",{class:"jlbinding"},"YAXArrays.DAT.getLoopCacheSize",-1)),s[212]||(s[212]=t()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[213]||(s[213]=e("p",null,"Calculate optimal Cache size to DAT operation",-1)),s[214]||(s[214]=e("p",null,[e("a",{href:"https://github.com/JuliaDataCubes/YAXArrays.jl/blob/745a37981c880d46c63cf59ae9600b8ba3b3e713/src/DAT/DAT.jl#L1056",target:"_blank",rel:"noreferrer"},"source")],-1))]),e("details",Z,[e("summary",null,[s[215]||(s[215]=e("a",{id:"YAXArrays.DAT.getOuttype-Tuple{Int64, Any}",href:"#YAXArrays.DAT.getOuttype-Tuple{Int64, Any}"},"#",-1)),s[216]||(s[216]=t()),s[217]||(s[217]=e("span",{class:"jlbinding"},"YAXArrays.DAT.getOuttype",-1)),s[218]||(s[218]=t()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[219]||(s[219]=l('
julia
getOuttype(outtype, cdata)

Internal function

Get the element type for the output cube

source

',4))]),e("details",Q,[e("summary",null,[s[220]||(s[220]=e("a",{id:"YAXArrays.DAT.getloopchunks-Tuple{YAXArrays.DAT.DATConfig}",href:"#YAXArrays.DAT.getloopchunks-Tuple{YAXArrays.DAT.DATConfig}"},"#",-1)),s[221]||(s[221]=t()),s[222]||(s[222]=e("span",{class:"jlbinding"},"YAXArrays.DAT.getloopchunks",-1)),s[223]||(s[223]=t()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[224]||(s[224]=l('
julia
getloopchunks(dc::DATConfig)

Internal function

Returns the chunks that can be looped over toghether for all dimensions.\nThis computation of the size of the chunks is handled by [`DiskArrays.approx_chunksize`](@ref)

source

',4))]),e("details",_,[e("summary",null,[s[225]||(s[225]=e("a",{id:"YAXArrays.DAT.permuteloopaxes-Tuple{Any}",href:"#YAXArrays.DAT.permuteloopaxes-Tuple{Any}"},"#",-1)),s[226]||(s[226]=t()),s[227]||(s[227]=e("span",{class:"jlbinding"},"YAXArrays.DAT.permuteloopaxes",-1)),s[228]||(s[228]=t()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[229]||(s[229]=l('
julia
permuteloopaxes(dc)

Internal function

Permute the dimensions of the cube, so that the axes that are looped through are in the first positions. This is necessary for a faster looping through the data.

source

',4))]),e("details",ss,[e("summary",null,[s[230]||(s[230]=e("a",{id:"YAXArrays.Cubes.setchunks-Tuple{Dataset, Any}",href:"#YAXArrays.Cubes.setchunks-Tuple{Dataset, Any}"},"#",-1)),s[231]||(s[231]=t()),s[232]||(s[232]=e("span",{class:"jlbinding"},"YAXArrays.Cubes.setchunks",-1)),s[233]||(s[233]=t()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[234]||(s[234]=l('
julia
setchunks(c::Dataset,chunks)

Resets the chunks of all or a subset YAXArrays in the dataset and returns a new Dataset. Note that this will not change the chunking of the underlying data itself, it will just make the data "look" like it had a different chunking. If you need a persistent on-disk representation of this chunking, use savedataset on the resulting array. The chunks argument can take one of the following forms:

  • a NamedTuple or AbstractDict mapping from variable name to a description of the desired variable chunks

  • a NamedTuple or AbstractDict mapping from dimension name to a description of the desired variable chunks

  • a description of the desired variable chunks applied to all members of the Dataset

where a description of the desired variable chunks can take one of the following forms:

  • a DiskArrays.GridChunks object

  • a tuple specifying the chunk size along each dimension

  • an AbstractDict or NamedTuple mapping one or more axis names to chunk sizes

source

',6))]),e("details",es,[e("summary",null,[s[235]||(s[235]=e("a",{id:"YAXArrays.Datasets.collectfromhandle-Tuple{Any, Any, Any}",href:"#YAXArrays.Datasets.collectfromhandle-Tuple{Any, Any, Any}"},"#",-1)),s[236]||(s[236]=t()),s[237]||(s[237]=e("span",{class:"jlbinding"},"YAXArrays.Datasets.collectfromhandle",-1)),s[238]||(s[238]=t()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[239]||(s[239]=e("p",null,"Extracts a YAXArray from a dataset handle that was just created from a arrayinfo",-1)),s[240]||(s[240]=e("p",null,[e("a",{href:"https://github.com/JuliaDataCubes/YAXArrays.jl/blob/745a37981c880d46c63cf59ae9600b8ba3b3e713/src/DatasetAPI/Datasets.jl#L463-L465",target:"_blank",rel:"noreferrer"},"source")],-1))]),e("details",ts,[e("summary",null,[s[241]||(s[241]=e("a",{id:"YAXArrays.Datasets.createdataset-Tuple{Any, Any}",href:"#YAXArrays.Datasets.createdataset-Tuple{Any, Any}"},"#",-1)),s[242]||(s[242]=t()),s[243]||(s[243]=e("span",{class:"jlbinding"},"YAXArrays.Datasets.createdataset",-1)),s[244]||(s[244]=t()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[245]||(s[245]=l('

function createdataset(DS::Type,axlist; kwargs...)

Creates a new dataset with axes specified in axlist. Each axis must be a subtype of CubeAxis. A new empty Zarr array will be created and can serve as a sink for mapCube operations.

Keyword arguments

  • path="" location where the new cube is stored

  • T=Union{Float32,Missing} data type of the target cube

  • chunksize = ntuple(i->length(axlist[i]),length(axlist)) chunk sizes of the array

  • chunkoffset = ntuple(i->0,length(axlist)) offsets of the chunks

  • persist::Bool=true shall the disk data be garbage-collected when the cube goes out of scope?

  • overwrite::Bool=false overwrite cube if it already exists

  • properties=Dict{String,Any}() additional cube properties

  • globalproperties=Dict{String,Any} global attributes to be added to the dataset

  • fillvalue= T>:Missing ? defaultfillval(Base.nonmissingtype(T)) : nothing fill value

  • datasetaxis="Variable" special treatment of a categorical axis that gets written into separate zarr arrays

  • layername="layer" Fallback name of the variable stored in the dataset if no datasetaxis is found

source

',6))]),e("details",as,[e("summary",null,[s[246]||(s[246]=e("a",{id:"YAXArrays.Datasets.getarrayinfo-Tuple{Any, Any}",href:"#YAXArrays.Datasets.getarrayinfo-Tuple{Any, Any}"},"#",-1)),s[247]||(s[247]=t()),s[248]||(s[248]=e("span",{class:"jlbinding"},"YAXArrays.Datasets.getarrayinfo",-1)),s[249]||(s[249]=t()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[250]||(s[250]=e("p",null,"Extract necessary information to create a YAXArrayBase dataset from a name and YAXArray pair",-1)),s[251]||(s[251]=e("p",null,[e("a",{href:"https://github.com/JuliaDataCubes/YAXArrays.jl/blob/745a37981c880d46c63cf59ae9600b8ba3b3e713/src/DatasetAPI/Datasets.jl#L432-L434",target:"_blank",rel:"noreferrer"},"source")],-1))]),e("details",is,[e("summary",null,[s[252]||(s[252]=e("a",{id:"YAXArrays.Datasets.testrange-Tuple{Any}",href:"#YAXArrays.Datasets.testrange-Tuple{Any}"},"#",-1)),s[253]||(s[253]=t()),s[254]||(s[254]=e("span",{class:"jlbinding"},"YAXArrays.Datasets.testrange",-1)),s[255]||(s[255]=t()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[256]||(s[256]=e("p",null,"Test if data in x can be approximated by a step range",-1)),s[257]||(s[257]=e("p",null,[e("a",{href:"https://github.com/JuliaDataCubes/YAXArrays.jl/blob/745a37981c880d46c63cf59ae9600b8ba3b3e713/src/DatasetAPI/Datasets.jl#L302",target:"_blank",rel:"noreferrer"},"source")],-1))])])}const hs=n(d,[["render",ls]]);export{bs as __pageData,hs as default}; diff --git a/previews/PR439/assets/api.md.Dly8rYKd.lean.js b/previews/PR439/assets/api.md.CuxAjYWA.lean.js similarity index 91% rename from previews/PR439/assets/api.md.Dly8rYKd.lean.js rename to previews/PR439/assets/api.md.CuxAjYWA.lean.js index 17648f4c..87c5dfb6 100644 --- a/previews/PR439/assets/api.md.Dly8rYKd.lean.js +++ b/previews/PR439/assets/api.md.CuxAjYWA.lean.js @@ -1,10 +1,10 @@ -import{_ as n,c as o,j as e,a as t,G as i,a2 as l,B as r,o as p}from"./chunks/framework.DsPJznl_.js";const bs=JSON.parse('{"title":"API Reference","description":"","frontmatter":{},"headers":[],"relativePath":"api.md","filePath":"api.md","lastUpdated":null}'),d={name:"api.md"},u={class:"jldocstring custom-block",open:""},b={class:"jldocstring custom-block",open:""},c={class:"jldocstring custom-block",open:""},h={class:"jldocstring custom-block",open:""},y={class:"jldocstring custom-block",open:""},g={class:"jldocstring custom-block",open:""},A={class:"jldocstring custom-block",open:""},k={class:"jldocstring custom-block",open:""},f={class:"jldocstring custom-block",open:""},m={class:"jldocstring custom-block",open:""},j={class:"jldocstring custom-block",open:""},C={class:"jldocstring custom-block",open:""},D={class:"jldocstring custom-block",open:""},E={class:"jldocstring custom-block",open:""},T={class:"jldocstring custom-block",open:""},v={class:"jldocstring custom-block",open:""},X={class:"jldocstring custom-block",open:""},Y={class:"jldocstring custom-block",open:""},x={class:"jldocstring custom-block",open:""},F={class:"jldocstring custom-block",open:""},w={class:"jldocstring custom-block",open:""},L={class:"jldocstring custom-block",open:""},M={class:"jldocstring custom-block",open:""},O={class:"jldocstring custom-block",open:""},I={class:"jldocstring custom-block",open:""},B={class:"jldocstring custom-block",open:""},J={class:"jldocstring custom-block",open:""},P={class:"jldocstring custom-block",open:""},z={class:"jldocstring custom-block",open:""},N={class:"jldocstring custom-block",open:""},S={class:"jldocstring custom-block",open:""},q={class:"jldocstring custom-block",open:""},R={class:"jldocstring custom-block",open:""},V={class:"jldocstring custom-block",open:""},G={class:"jldocstring custom-block",open:""},W={class:"jldocstring custom-block",open:""},U={class:"jldocstring custom-block",open:""},$={class:"jldocstring custom-block",open:""},H={class:"jldocstring custom-block",open:""},K={class:"jldocstring custom-block",open:""},Z={class:"jldocstring custom-block",open:""},Q={class:"jldocstring custom-block",open:""},_={class:"jldocstring custom-block",open:""},ss={class:"jldocstring custom-block",open:""},es={class:"jldocstring custom-block",open:""},ts={class:"jldocstring custom-block",open:""},as={class:"jldocstring custom-block",open:""},is={class:"jldocstring custom-block",open:""};function ls(ns,s,os,rs,ps,ds){const a=r("Badge");return p(),o("div",null,[s[258]||(s[258]=e("h1",{id:"API-Reference",tabindex:"-1"},[t("API Reference "),e("a",{class:"header-anchor",href:"#API-Reference","aria-label":'Permalink to "API Reference {#API-Reference}"'},"​")],-1)),s[259]||(s[259]=e("p",null,"This section describes all available functions of this package.",-1)),s[260]||(s[260]=e("h2",{id:"Public-API",tabindex:"-1"},[t("Public API "),e("a",{class:"header-anchor",href:"#Public-API","aria-label":'Permalink to "Public API {#Public-API}"'},"​")],-1)),e("details",u,[e("summary",null,[s[0]||(s[0]=e("a",{id:"YAXArrays.getAxis-Tuple{Any, Any}",href:"#YAXArrays.getAxis-Tuple{Any, Any}"},"#",-1)),s[1]||(s[1]=t()),s[2]||(s[2]=e("span",{class:"jlbinding"},"YAXArrays.getAxis",-1)),s[3]||(s[3]=t()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[4]||(s[4]=l('
julia
getAxis(desc, c)

Given an Axis description and a cube, returns the corresponding axis of the cube. The Axis description can be:

  • the name as a string or symbol.

  • an Axis object

source

',4))]),e("details",b,[e("summary",null,[s[5]||(s[5]=e("a",{id:"YAXArrays.Cubes",href:"#YAXArrays.Cubes"},"#",-1)),s[6]||(s[6]=t()),s[7]||(s[7]=e("span",{class:"jlbinding"},"YAXArrays.Cubes",-1)),s[8]||(s[8]=t()),i(a,{type:"info",class:"jlObjectType jlModule",text:"Module"})]),s[9]||(s[9]=e("p",null,"The functions provided by YAXArrays are supposed to work on different types of cubes. This module defines the interface for all Data types that",-1)),s[10]||(s[10]=e("p",null,[e("a",{href:"https://github.com/JuliaDataCubes/YAXArrays.jl/blob/e1cc351c498cc8dc37986f50b6e7a5b6af71ef80/src/Cubes/Cubes.jl#L1-L4",target:"_blank",rel:"noreferrer"},"source")],-1))]),e("details",c,[e("summary",null,[s[11]||(s[11]=e("a",{id:"YAXArrays.Cubes.YAXArray",href:"#YAXArrays.Cubes.YAXArray"},"#",-1)),s[12]||(s[12]=t()),s[13]||(s[13]=e("span",{class:"jlbinding"},"YAXArrays.Cubes.YAXArray",-1)),s[14]||(s[14]=t()),i(a,{type:"info",class:"jlObjectType jlType",text:"Type"})]),s[15]||(s[15]=l('
julia
YAXArray{T,N}

An array labelled with named axes that have values associated with them. It can wrap normal arrays or, more typically DiskArrays.

Fields

  • axes: Tuple of Dimensions containing the Axes of the Cube

  • data: length(axes)-dimensional array which holds the data, this can be a lazy DiskArray

  • properties: Metadata properties describing the content of the data

  • chunks: Representation of the chunking of the data

  • cleaner: Cleaner objects to track which objects to tidy up when the YAXArray goes out of scope

source

',5))]),e("details",h,[e("summary",null,[s[16]||(s[16]=e("a",{id:"YAXArrays.Cubes.caxes",href:"#YAXArrays.Cubes.caxes"},"#",-1)),s[17]||(s[17]=t()),s[18]||(s[18]=e("span",{class:"jlbinding"},"YAXArrays.Cubes.caxes",-1)),s[19]||(s[19]=t()),i(a,{type:"info",class:"jlObjectType jlFunction",text:"Function"})]),s[20]||(s[20]=e("p",null,"Returns the axes of a Cube",-1)),s[21]||(s[21]=e("p",null,[e("a",{href:"https://github.com/JuliaDataCubes/YAXArrays.jl/blob/e1cc351c498cc8dc37986f50b6e7a5b6af71ef80/src/Cubes/Cubes.jl#L27",target:"_blank",rel:"noreferrer"},"source")],-1))]),e("details",y,[e("summary",null,[s[22]||(s[22]=e("a",{id:"YAXArrays.Cubes.caxes-Tuple{DimensionalData.Dimensions.Dimension}",href:"#YAXArrays.Cubes.caxes-Tuple{DimensionalData.Dimensions.Dimension}"},"#",-1)),s[23]||(s[23]=t()),s[24]||(s[24]=e("span",{class:"jlbinding"},"YAXArrays.Cubes.caxes",-1)),s[25]||(s[25]=t()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[26]||(s[26]=l('
julia
caxes

Embeds Cube inside a new Cube

source

',3))]),e("details",g,[e("summary",null,[s[27]||(s[27]=e("a",{id:"YAXArrays.Cubes.concatenatecubes-Tuple{Any, DimensionalData.Dimensions.Dimension}",href:"#YAXArrays.Cubes.concatenatecubes-Tuple{Any, DimensionalData.Dimensions.Dimension}"},"#",-1)),s[28]||(s[28]=t()),s[29]||(s[29]=e("span",{class:"jlbinding"},"YAXArrays.Cubes.concatenatecubes",-1)),s[30]||(s[30]=t()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[31]||(s[31]=l('
julia
function concatenateCubes(cubelist, cataxis::CategoricalAxis)

Concatenates a vector of datacubes that have identical axes to a new single cube along the new axis cataxis

source

',3))]),e("details",A,[e("summary",null,[s[32]||(s[32]=e("a",{id:"YAXArrays.Cubes.readcubedata-Tuple{Any}",href:"#YAXArrays.Cubes.readcubedata-Tuple{Any}"},"#",-1)),s[33]||(s[33]=t()),s[34]||(s[34]=e("span",{class:"jlbinding"},"YAXArrays.Cubes.readcubedata",-1)),s[35]||(s[35]=t()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[36]||(s[36]=l('
julia
readcubedata(cube)

Given any array implementing the YAXArray interface it returns an in-memory YAXArray from it.

source

',3))]),e("details",k,[e("summary",null,[s[37]||(s[37]=e("a",{id:"YAXArrays.Cubes.setchunks-Tuple{YAXArray, Any}",href:"#YAXArrays.Cubes.setchunks-Tuple{YAXArray, Any}"},"#",-1)),s[38]||(s[38]=t()),s[39]||(s[39]=e("span",{class:"jlbinding"},"YAXArrays.Cubes.setchunks",-1)),s[40]||(s[40]=t()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[41]||(s[41]=l('
julia
setchunks(c::YAXArray,chunks)

Resets the chunks of a YAXArray and returns a new YAXArray. Note that this will not change the chunking of the underlying data itself, it will just make the data "look" like it had a different chunking. If you need a persistent on-disk representation of this chunking, use savecube on the resulting array. The chunks argument can take one of the following forms:

  • a DiskArrays.GridChunks object

  • a tuple specifying the chunk size along each dimension

  • an AbstractDict or NamedTuple mapping one or more axis names to chunk sizes

source

',4))]),e("details",f,[e("summary",null,[s[42]||(s[42]=e("a",{id:"YAXArrays.Cubes.subsetcube",href:"#YAXArrays.Cubes.subsetcube"},"#",-1)),s[43]||(s[43]=t()),s[44]||(s[44]=e("span",{class:"jlbinding"},"YAXArrays.Cubes.subsetcube",-1)),s[45]||(s[45]=t()),i(a,{type:"info",class:"jlObjectType jlFunction",text:"Function"})]),s[46]||(s[46]=e("p",null,"This function calculates a subset of a cube's data",-1)),s[47]||(s[47]=e("p",null,[e("a",{href:"https://github.com/JuliaDataCubes/YAXArrays.jl/blob/e1cc351c498cc8dc37986f50b6e7a5b6af71ef80/src/Cubes/Cubes.jl#L22-L24",target:"_blank",rel:"noreferrer"},"source")],-1))]),e("details",m,[e("summary",null,[s[48]||(s[48]=e("a",{id:"YAXArrays.DAT.InDims",href:"#YAXArrays.DAT.InDims"},"#",-1)),s[49]||(s[49]=t()),s[50]||(s[50]=e("span",{class:"jlbinding"},"YAXArrays.DAT.InDims",-1)),s[51]||(s[51]=t()),i(a,{type:"info",class:"jlObjectType jlType",text:"Type"})]),s[52]||(s[52]=l('
julia
InDims(axisdesc...;...)

Creates a description of an Input Data Cube for cube operations. Takes a single or multiple axis descriptions as first arguments. Alternatively a MovingWindow(@ref) struct can be passed to include neighbour slices of one or more axes in the computation. Axes can be specified by their name (String), through an Axis type, or by passing a concrete axis.

Keyword arguments

  • artype how shall the array be represented in the inner function. Defaults to Array, alternatives are DataFrame or AsAxisArray

  • filter define some filter to skip the computation, e.g. when all values are missing. Defaults to AllMissing(), possible values are AnyMissing(), AnyOcean(), StdZero(), NValid(n) (for at least n non-missing elements). It is also possible to provide a custom one-argument function that takes the array and returns true if the compuation shall be skipped and false otherwise.

  • window_oob_value if one of the input dimensions is a MowingWindow, this value will be used to fill out-of-bounds areas

source

',5))]),e("details",j,[e("summary",null,[s[53]||(s[53]=e("a",{id:"YAXArrays.DAT.MovingWindow",href:"#YAXArrays.DAT.MovingWindow"},"#",-1)),s[54]||(s[54]=t()),s[55]||(s[55]=e("span",{class:"jlbinding"},"YAXArrays.DAT.MovingWindow",-1)),s[56]||(s[56]=t()),i(a,{type:"info",class:"jlObjectType jlType",text:"Type"})]),s[57]||(s[57]=l('
julia
MovingWindow(desc, pre, after)

Constructs a MovingWindow object to be passed to an InDims constructor to define that the axis in desc shall participate in the inner function (i.e. shall be looped over), but inside the inner function pre values before and after values after the center value will be passed as well.

For example passing MovingWindow("Time", 2, 0) will loop over the time axis and always pass the current time step plus the 2 previous steps. So in the inner function the array will have an additional dimension of size 3.

source

',4))]),e("details",C,[e("summary",null,[s[58]||(s[58]=e("a",{id:"YAXArrays.DAT.OutDims-Tuple",href:"#YAXArrays.DAT.OutDims-Tuple"},"#",-1)),s[59]||(s[59]=t()),s[60]||(s[60]=e("span",{class:"jlbinding"},"YAXArrays.DAT.OutDims",-1)),s[61]||(s[61]=t()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[62]||(s[62]=l('
julia
OutDims(axisdesc;...)

Creates a description of an Output Data Cube for cube operations. Takes a single or a Vector/Tuple of axes as first argument. Axes can be specified by their name (String), through an Axis type, or by passing a concrete axis.

  • axisdesc: List of input axis names

  • backend : specifies the dataset backend to write data to, must be either :auto or a key in YAXArrayBase.backendlist

  • update : specifies wether the function operates inplace or if an output is returned

  • artype : specifies the Array type inside the inner function that is mapped over

  • chunksize: A Dict specifying the chunksizes for the output dimensions of the cube, or :input to copy chunksizes from input cube axes or :max to not chunk the inner dimensions

  • outtype: force the output type to a specific type, defaults to Any which means that the element type of the first input cube is used

source

',4))]),e("details",D,[e("summary",null,[s[63]||(s[63]=e("a",{id:"YAXArrays.DAT.CubeTable-Tuple{}",href:"#YAXArrays.DAT.CubeTable-Tuple{}"},"#",-1)),s[64]||(s[64]=t()),s[65]||(s[65]=e("span",{class:"jlbinding"},"YAXArrays.DAT.CubeTable",-1)),s[66]||(s[66]=t()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[67]||(s[67]=l('
julia
CubeTable()

Function to turn a DataCube object into an iterable table. Takes a list of as arguments, specified as a name=cube expression. For example CubeTable(data=cube1,country=cube2) would generate a Table with the entries data and country, where data contains the values of cube1 and country the values of cube2. The cubes are matched and broadcasted along their axes like in mapCube.

source

',3))]),e("details",E,[e("summary",null,[s[68]||(s[68]=e("a",{id:"YAXArrays.DAT.cubefittable-Tuple{Any, Any, Any}",href:"#YAXArrays.DAT.cubefittable-Tuple{Any, Any, Any}"},"#",-1)),s[69]||(s[69]=t()),s[70]||(s[70]=e("span",{class:"jlbinding"},"YAXArrays.DAT.cubefittable",-1)),s[71]||(s[71]=t()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[72]||(s[72]=l('
julia
cubefittable(tab,o,fitsym;post=getpostfunction(o),kwargs...)

Executes fittable on the CubeTable tab with the (Weighted-)OnlineStat o, looping through the values specified by fitsym. Finally, writes the results from the TableAggregator to an output data cube.

source

',3))]),e("details",T,[e("summary",null,[s[73]||(s[73]=e("a",{id:"YAXArrays.DAT.fittable-Tuple{YAXArrays.DAT.CubeIterator, Any, Any}",href:"#YAXArrays.DAT.fittable-Tuple{YAXArrays.DAT.CubeIterator, Any, Any}"},"#",-1)),s[74]||(s[74]=t()),s[75]||(s[75]=e("span",{class:"jlbinding"},"YAXArrays.DAT.fittable",-1)),s[76]||(s[76]=t()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[77]||(s[77]=l('
julia
fittable(tab,o,fitsym;by=(),weight=nothing)

Loops through an iterable table tab and thereby fitting an OnlineStat o with the values specified through fitsym. Optionally one can specify a field (or tuple) to group by. Any groupby specifier can either be a symbol denoting the entry to group by or an anynymous function calculating the group from a table row.

For example the following would caluclate a weighted mean over a cube weighted by grid cell area and grouped by country and month:

julia
fittable(iter,WeightedMean,:tair,weight=(i->abs(cosd(i.lat))),by=(i->month(i.time),:country))

source

',5))]),e("details",v,[e("summary",null,[s[78]||(s[78]=e("a",{id:"YAXArrays.DAT.mapCube-Tuple{Function, Dataset, Vararg{Any}}",href:"#YAXArrays.DAT.mapCube-Tuple{Function, Dataset, Vararg{Any}}"},"#",-1)),s[79]||(s[79]=t()),s[80]||(s[80]=e("span",{class:"jlbinding"},"YAXArrays.DAT.mapCube",-1)),s[81]||(s[81]=t()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[82]||(s[82]=l(`
julia
mapCube(fun, cube, addargs...;kwargs...)
+import{_ as n,B as o,c as r,j as e,a as t,G as i,a2 as l,o as p}from"./chunks/framework.eQVMtpgY.js";const bs=JSON.parse('{"title":"API Reference","description":"","frontmatter":{},"headers":[],"relativePath":"api.md","filePath":"api.md","lastUpdated":null}'),d={name:"api.md"},u={class:"jldocstring custom-block",open:""},b={class:"jldocstring custom-block",open:""},h={class:"jldocstring custom-block",open:""},c={class:"jldocstring custom-block",open:""},y={class:"jldocstring custom-block",open:""},g={class:"jldocstring custom-block",open:""},A={class:"jldocstring custom-block",open:""},k={class:"jldocstring custom-block",open:""},f={class:"jldocstring custom-block",open:""},m={class:"jldocstring custom-block",open:""},j={class:"jldocstring custom-block",open:""},C={class:"jldocstring custom-block",open:""},D={class:"jldocstring custom-block",open:""},E={class:"jldocstring custom-block",open:""},T={class:"jldocstring custom-block",open:""},v={class:"jldocstring custom-block",open:""},X={class:"jldocstring custom-block",open:""},Y={class:"jldocstring custom-block",open:""},x={class:"jldocstring custom-block",open:""},F={class:"jldocstring custom-block",open:""},w={class:"jldocstring custom-block",open:""},L={class:"jldocstring custom-block",open:""},M={class:"jldocstring custom-block",open:""},O={class:"jldocstring custom-block",open:""},I={class:"jldocstring custom-block",open:""},B={class:"jldocstring custom-block",open:""},J={class:"jldocstring custom-block",open:""},P={class:"jldocstring custom-block",open:""},z={class:"jldocstring custom-block",open:""},N={class:"jldocstring custom-block",open:""},S={class:"jldocstring custom-block",open:""},q={class:"jldocstring custom-block",open:""},R={class:"jldocstring custom-block",open:""},V={class:"jldocstring custom-block",open:""},G={class:"jldocstring custom-block",open:""},W={class:"jldocstring custom-block",open:""},U={class:"jldocstring custom-block",open:""},$={class:"jldocstring custom-block",open:""},H={class:"jldocstring custom-block",open:""},K={class:"jldocstring custom-block",open:""},Z={class:"jldocstring custom-block",open:""},Q={class:"jldocstring custom-block",open:""},_={class:"jldocstring custom-block",open:""},ss={class:"jldocstring custom-block",open:""},es={class:"jldocstring custom-block",open:""},ts={class:"jldocstring custom-block",open:""},as={class:"jldocstring custom-block",open:""},is={class:"jldocstring custom-block",open:""};function ls(ns,s,os,rs,ps,ds){const a=o("Badge");return p(),r("div",null,[s[258]||(s[258]=e("h1",{id:"API-Reference",tabindex:"-1"},[t("API Reference "),e("a",{class:"header-anchor",href:"#API-Reference","aria-label":'Permalink to "API Reference {#API-Reference}"'},"​")],-1)),s[259]||(s[259]=e("p",null,"This section describes all available functions of this package.",-1)),s[260]||(s[260]=e("h2",{id:"Public-API",tabindex:"-1"},[t("Public API "),e("a",{class:"header-anchor",href:"#Public-API","aria-label":'Permalink to "Public API {#Public-API}"'},"​")],-1)),e("details",u,[e("summary",null,[s[0]||(s[0]=e("a",{id:"YAXArrays.getAxis-Tuple{Any, Any}",href:"#YAXArrays.getAxis-Tuple{Any, Any}"},"#",-1)),s[1]||(s[1]=t()),s[2]||(s[2]=e("span",{class:"jlbinding"},"YAXArrays.getAxis",-1)),s[3]||(s[3]=t()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[4]||(s[4]=l('
julia
getAxis(desc, c)

Given an Axis description and a cube, returns the corresponding axis of the cube. The Axis description can be:

  • the name as a string or symbol.

  • an Axis object

source

',4))]),e("details",b,[e("summary",null,[s[5]||(s[5]=e("a",{id:"YAXArrays.Cubes",href:"#YAXArrays.Cubes"},"#",-1)),s[6]||(s[6]=t()),s[7]||(s[7]=e("span",{class:"jlbinding"},"YAXArrays.Cubes",-1)),s[8]||(s[8]=t()),i(a,{type:"info",class:"jlObjectType jlModule",text:"Module"})]),s[9]||(s[9]=e("p",null,"The functions provided by YAXArrays are supposed to work on different types of cubes. This module defines the interface for all Data types that",-1)),s[10]||(s[10]=e("p",null,[e("a",{href:"https://github.com/JuliaDataCubes/YAXArrays.jl/blob/745a37981c880d46c63cf59ae9600b8ba3b3e713/src/Cubes/Cubes.jl#L1-L4",target:"_blank",rel:"noreferrer"},"source")],-1))]),e("details",h,[e("summary",null,[s[11]||(s[11]=e("a",{id:"YAXArrays.Cubes.YAXArray",href:"#YAXArrays.Cubes.YAXArray"},"#",-1)),s[12]||(s[12]=t()),s[13]||(s[13]=e("span",{class:"jlbinding"},"YAXArrays.Cubes.YAXArray",-1)),s[14]||(s[14]=t()),i(a,{type:"info",class:"jlObjectType jlType",text:"Type"})]),s[15]||(s[15]=l('
julia
YAXArray{T,N}

An array labelled with named axes that have values associated with them. It can wrap normal arrays or, more typically DiskArrays.

Fields

  • axes: Tuple of Dimensions containing the Axes of the Cube

  • data: length(axes)-dimensional array which holds the data, this can be a lazy DiskArray

  • properties: Metadata properties describing the content of the data

  • chunks: Representation of the chunking of the data

  • cleaner: Cleaner objects to track which objects to tidy up when the YAXArray goes out of scope

source

',5))]),e("details",c,[e("summary",null,[s[16]||(s[16]=e("a",{id:"YAXArrays.Cubes.caxes",href:"#YAXArrays.Cubes.caxes"},"#",-1)),s[17]||(s[17]=t()),s[18]||(s[18]=e("span",{class:"jlbinding"},"YAXArrays.Cubes.caxes",-1)),s[19]||(s[19]=t()),i(a,{type:"info",class:"jlObjectType jlFunction",text:"Function"})]),s[20]||(s[20]=e("p",null,"Returns the axes of a Cube",-1)),s[21]||(s[21]=e("p",null,[e("a",{href:"https://github.com/JuliaDataCubes/YAXArrays.jl/blob/745a37981c880d46c63cf59ae9600b8ba3b3e713/src/Cubes/Cubes.jl#L27",target:"_blank",rel:"noreferrer"},"source")],-1))]),e("details",y,[e("summary",null,[s[22]||(s[22]=e("a",{id:"YAXArrays.Cubes.caxes-Tuple{DimensionalData.Dimensions.Dimension}",href:"#YAXArrays.Cubes.caxes-Tuple{DimensionalData.Dimensions.Dimension}"},"#",-1)),s[23]||(s[23]=t()),s[24]||(s[24]=e("span",{class:"jlbinding"},"YAXArrays.Cubes.caxes",-1)),s[25]||(s[25]=t()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[26]||(s[26]=l('
julia
caxes

Embeds Cube inside a new Cube

source

',3))]),e("details",g,[e("summary",null,[s[27]||(s[27]=e("a",{id:"YAXArrays.Cubes.concatenatecubes-Tuple{Any, DimensionalData.Dimensions.Dimension}",href:"#YAXArrays.Cubes.concatenatecubes-Tuple{Any, DimensionalData.Dimensions.Dimension}"},"#",-1)),s[28]||(s[28]=t()),s[29]||(s[29]=e("span",{class:"jlbinding"},"YAXArrays.Cubes.concatenatecubes",-1)),s[30]||(s[30]=t()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[31]||(s[31]=l('
julia
function concatenateCubes(cubelist, cataxis::CategoricalAxis)

Concatenates a vector of datacubes that have identical axes to a new single cube along the new axis cataxis

source

',3))]),e("details",A,[e("summary",null,[s[32]||(s[32]=e("a",{id:"YAXArrays.Cubes.readcubedata-Tuple{Any}",href:"#YAXArrays.Cubes.readcubedata-Tuple{Any}"},"#",-1)),s[33]||(s[33]=t()),s[34]||(s[34]=e("span",{class:"jlbinding"},"YAXArrays.Cubes.readcubedata",-1)),s[35]||(s[35]=t()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[36]||(s[36]=l('
julia
readcubedata(cube)

Given any array implementing the YAXArray interface it returns an in-memory YAXArray from it.

source

',3))]),e("details",k,[e("summary",null,[s[37]||(s[37]=e("a",{id:"YAXArrays.Cubes.setchunks-Tuple{YAXArray, Any}",href:"#YAXArrays.Cubes.setchunks-Tuple{YAXArray, Any}"},"#",-1)),s[38]||(s[38]=t()),s[39]||(s[39]=e("span",{class:"jlbinding"},"YAXArrays.Cubes.setchunks",-1)),s[40]||(s[40]=t()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[41]||(s[41]=l('
julia
setchunks(c::YAXArray,chunks)

Resets the chunks of a YAXArray and returns a new YAXArray. Note that this will not change the chunking of the underlying data itself, it will just make the data "look" like it had a different chunking. If you need a persistent on-disk representation of this chunking, use savecube on the resulting array. The chunks argument can take one of the following forms:

  • a DiskArrays.GridChunks object

  • a tuple specifying the chunk size along each dimension

  • an AbstractDict or NamedTuple mapping one or more axis names to chunk sizes

source

',4))]),e("details",f,[e("summary",null,[s[42]||(s[42]=e("a",{id:"YAXArrays.Cubes.subsetcube",href:"#YAXArrays.Cubes.subsetcube"},"#",-1)),s[43]||(s[43]=t()),s[44]||(s[44]=e("span",{class:"jlbinding"},"YAXArrays.Cubes.subsetcube",-1)),s[45]||(s[45]=t()),i(a,{type:"info",class:"jlObjectType jlFunction",text:"Function"})]),s[46]||(s[46]=e("p",null,"This function calculates a subset of a cube's data",-1)),s[47]||(s[47]=e("p",null,[e("a",{href:"https://github.com/JuliaDataCubes/YAXArrays.jl/blob/745a37981c880d46c63cf59ae9600b8ba3b3e713/src/Cubes/Cubes.jl#L22-L24",target:"_blank",rel:"noreferrer"},"source")],-1))]),e("details",m,[e("summary",null,[s[48]||(s[48]=e("a",{id:"YAXArrays.DAT.InDims",href:"#YAXArrays.DAT.InDims"},"#",-1)),s[49]||(s[49]=t()),s[50]||(s[50]=e("span",{class:"jlbinding"},"YAXArrays.DAT.InDims",-1)),s[51]||(s[51]=t()),i(a,{type:"info",class:"jlObjectType jlType",text:"Type"})]),s[52]||(s[52]=l('
julia
InDims(axisdesc...;...)

Creates a description of an Input Data Cube for cube operations. Takes a single or multiple axis descriptions as first arguments. Alternatively a MovingWindow(@ref) struct can be passed to include neighbour slices of one or more axes in the computation. Axes can be specified by their name (String), through an Axis type, or by passing a concrete axis.

Keyword arguments

  • artype how shall the array be represented in the inner function. Defaults to Array, alternatives are DataFrame or AsAxisArray

  • filter define some filter to skip the computation, e.g. when all values are missing. Defaults to AllMissing(), possible values are AnyMissing(), AnyOcean(), StdZero(), NValid(n) (for at least n non-missing elements). It is also possible to provide a custom one-argument function that takes the array and returns true if the compuation shall be skipped and false otherwise.

  • window_oob_value if one of the input dimensions is a MowingWindow, this value will be used to fill out-of-bounds areas

source

',5))]),e("details",j,[e("summary",null,[s[53]||(s[53]=e("a",{id:"YAXArrays.DAT.MovingWindow",href:"#YAXArrays.DAT.MovingWindow"},"#",-1)),s[54]||(s[54]=t()),s[55]||(s[55]=e("span",{class:"jlbinding"},"YAXArrays.DAT.MovingWindow",-1)),s[56]||(s[56]=t()),i(a,{type:"info",class:"jlObjectType jlType",text:"Type"})]),s[57]||(s[57]=l('
julia
MovingWindow(desc, pre, after)

Constructs a MovingWindow object to be passed to an InDims constructor to define that the axis in desc shall participate in the inner function (i.e. shall be looped over), but inside the inner function pre values before and after values after the center value will be passed as well.

For example passing MovingWindow("Time", 2, 0) will loop over the time axis and always pass the current time step plus the 2 previous steps. So in the inner function the array will have an additional dimension of size 3.

source

',4))]),e("details",C,[e("summary",null,[s[58]||(s[58]=e("a",{id:"YAXArrays.DAT.OutDims-Tuple",href:"#YAXArrays.DAT.OutDims-Tuple"},"#",-1)),s[59]||(s[59]=t()),s[60]||(s[60]=e("span",{class:"jlbinding"},"YAXArrays.DAT.OutDims",-1)),s[61]||(s[61]=t()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[62]||(s[62]=l('
julia
OutDims(axisdesc;...)

Creates a description of an Output Data Cube for cube operations. Takes a single or a Vector/Tuple of axes as first argument. Axes can be specified by their name (String), through an Axis type, or by passing a concrete axis.

  • axisdesc: List of input axis names

  • backend : specifies the dataset backend to write data to, must be either :auto or a key in YAXArrayBase.backendlist

  • update : specifies wether the function operates inplace or if an output is returned

  • artype : specifies the Array type inside the inner function that is mapped over

  • chunksize: A Dict specifying the chunksizes for the output dimensions of the cube, or :input to copy chunksizes from input cube axes or :max to not chunk the inner dimensions

  • outtype: force the output type to a specific type, defaults to Any which means that the element type of the first input cube is used

source

',4))]),e("details",D,[e("summary",null,[s[63]||(s[63]=e("a",{id:"YAXArrays.DAT.CubeTable-Tuple{}",href:"#YAXArrays.DAT.CubeTable-Tuple{}"},"#",-1)),s[64]||(s[64]=t()),s[65]||(s[65]=e("span",{class:"jlbinding"},"YAXArrays.DAT.CubeTable",-1)),s[66]||(s[66]=t()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[67]||(s[67]=l('
julia
CubeTable()

Function to turn a DataCube object into an iterable table. Takes a list of as arguments, specified as a name=cube expression. For example CubeTable(data=cube1,country=cube2) would generate a Table with the entries data and country, where data contains the values of cube1 and country the values of cube2. The cubes are matched and broadcasted along their axes like in mapCube.

source

',3))]),e("details",E,[e("summary",null,[s[68]||(s[68]=e("a",{id:"YAXArrays.DAT.cubefittable-Tuple{Any, Any, Any}",href:"#YAXArrays.DAT.cubefittable-Tuple{Any, Any, Any}"},"#",-1)),s[69]||(s[69]=t()),s[70]||(s[70]=e("span",{class:"jlbinding"},"YAXArrays.DAT.cubefittable",-1)),s[71]||(s[71]=t()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[72]||(s[72]=l('
julia
cubefittable(tab,o,fitsym;post=getpostfunction(o),kwargs...)

Executes fittable on the CubeTable tab with the (Weighted-)OnlineStat o, looping through the values specified by fitsym. Finally, writes the results from the TableAggregator to an output data cube.

source

',3))]),e("details",T,[e("summary",null,[s[73]||(s[73]=e("a",{id:"YAXArrays.DAT.fittable-Tuple{YAXArrays.DAT.CubeIterator, Any, Any}",href:"#YAXArrays.DAT.fittable-Tuple{YAXArrays.DAT.CubeIterator, Any, Any}"},"#",-1)),s[74]||(s[74]=t()),s[75]||(s[75]=e("span",{class:"jlbinding"},"YAXArrays.DAT.fittable",-1)),s[76]||(s[76]=t()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[77]||(s[77]=l('
julia
fittable(tab,o,fitsym;by=(),weight=nothing)

Loops through an iterable table tab and thereby fitting an OnlineStat o with the values specified through fitsym. Optionally one can specify a field (or tuple) to group by. Any groupby specifier can either be a symbol denoting the entry to group by or an anynymous function calculating the group from a table row.

For example the following would caluclate a weighted mean over a cube weighted by grid cell area and grouped by country and month:

julia
fittable(iter,WeightedMean,:tair,weight=(i->abs(cosd(i.lat))),by=(i->month(i.time),:country))

source

',5))]),e("details",v,[e("summary",null,[s[78]||(s[78]=e("a",{id:"YAXArrays.DAT.mapCube-Tuple{Function, Dataset, Vararg{Any}}",href:"#YAXArrays.DAT.mapCube-Tuple{Function, Dataset, Vararg{Any}}"},"#",-1)),s[79]||(s[79]=t()),s[80]||(s[80]=e("span",{class:"jlbinding"},"YAXArrays.DAT.mapCube",-1)),s[81]||(s[81]=t()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[82]||(s[82]=l(`
julia
mapCube(fun, cube, addargs...;kwargs...)
 
 Map a given function \`fun\` over slices of all cubes of the dataset \`ds\`. 
 Use InDims to discribe the input dimensions and OutDims to describe the output dimensions of the function.
 For Datasets, only one output cube can be specified.
 In contrast to the mapCube function for cubes, additional arguments for the inner function should be set as keyword arguments.
 
-For the specific keyword arguments see the docstring of the mapCube function for cubes.

source

`,2))]),e("details",X,[e("summary",null,[s[83]||(s[83]=e("a",{id:"YAXArrays.DAT.mapCube-Tuple{Function, Tuple, Vararg{Any}}",href:"#YAXArrays.DAT.mapCube-Tuple{Function, Tuple, Vararg{Any}}"},"#",-1)),s[84]||(s[84]=t()),s[85]||(s[85]=e("span",{class:"jlbinding"},"YAXArrays.DAT.mapCube",-1)),s[86]||(s[86]=t()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[87]||(s[87]=l('
julia
mapCube(fun, cube, addargs...;kwargs...)

Map a given function fun over slices of the data cube cube. The additional arguments addargs will be forwarded to the inner function fun. Use InDims to discribe the input dimensions and OutDims to describe the output dimensions of the function.

Keyword arguments

  • max_cache=YAXDefaults.max_cache Float64 maximum size of blocks that are read into memory in bits e.g. max_cache=5.0e8. Or String. e.g. max_cache="10MB" ormax_cache=1GB``` defaults to approx 10Mb.

  • indims::InDims List of input cube descriptors of type InDims for each input data cube.

  • outdims::OutDims List of output cube descriptors of type OutDims for each output cube.

  • inplace does the function write to an output array inplace or return a single value> defaults to true

  • ispar boolean to determine if parallelisation should be applied, defaults to true if workers are available.

  • showprog boolean indicating if a ProgressMeter shall be shown

  • include_loopvars boolean to indicate if the varoables looped over should be added as function arguments

  • nthreads number of threads for the computation, defaults to Threads.nthreads for every worker.

  • loopchunksize determines the chunk sizes of variables which are looped over, a dict

  • kwargs additional keyword arguments are passed to the inner function

The first argument is always the function to be applied, the second is the input cube or a tuple of input cubes if needed.

source

',6))]),e("details",Y,[e("summary",null,[s[88]||(s[88]=e("a",{id:"YAXArrays.Datasets.Dataset",href:"#YAXArrays.Datasets.Dataset"},"#",-1)),s[89]||(s[89]=t()),s[90]||(s[90]=e("span",{class:"jlbinding"},"YAXArrays.Datasets.Dataset",-1)),s[91]||(s[91]=t()),i(a,{type:"info",class:"jlObjectType jlType",text:"Type"})]),s[92]||(s[92]=l('
julia
Dataset object which stores an `OrderedDict` of YAXArrays with Symbol keys.\na dictionary of CubeAxes and a Dictionary of general properties.\nA dictionary can hold cubes with differing axes. But it will share the common axes between the subcubes.

source

',2))]),e("details",x,[e("summary",null,[s[93]||(s[93]=e("a",{id:"YAXArrays.Datasets.Dataset-Tuple{}",href:"#YAXArrays.Datasets.Dataset-Tuple{}"},"#",-1)),s[94]||(s[94]=t()),s[95]||(s[95]=e("span",{class:"jlbinding"},"YAXArrays.Datasets.Dataset",-1)),s[96]||(s[96]=t()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[97]||(s[97]=e("p",null,"Dataset(; properties = Dict{String,Any}, cubes...)",-1)),s[98]||(s[98]=e("p",null,[t("Construct a YAXArray Dataset with global attributes "),e("code",null,"properties"),t(" a and a list of named YAXArrays cubes...")],-1)),s[99]||(s[99]=e("p",null,[e("a",{href:"https://github.com/JuliaDataCubes/YAXArrays.jl/blob/e1cc351c498cc8dc37986f50b6e7a5b6af71ef80/src/DatasetAPI/Datasets.jl#L28-L32",target:"_blank",rel:"noreferrer"},"source")],-1))]),e("details",F,[e("summary",null,[s[100]||(s[100]=e("a",{id:"YAXArrays.Datasets.Cube-Tuple{Dataset}",href:"#YAXArrays.Datasets.Cube-Tuple{Dataset}"},"#",-1)),s[101]||(s[101]=t()),s[102]||(s[102]=e("span",{class:"jlbinding"},"YAXArrays.Datasets.Cube",-1)),s[103]||(s[103]=t()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[104]||(s[104]=l('
julia
Cube(ds::Dataset; joinname="Variable")

Construct a single YAXArray from the dataset ds by concatenating the cubes in the datset on the joinname dimension.

source

',3))]),e("details",w,[e("summary",null,[s[105]||(s[105]=e("a",{id:"YAXArrays.Datasets.open_dataset-Tuple{Any}",href:"#YAXArrays.Datasets.open_dataset-Tuple{Any}"},"#",-1)),s[106]||(s[106]=t()),s[107]||(s[107]=e("span",{class:"jlbinding"},"YAXArrays.Datasets.open_dataset",-1)),s[108]||(s[108]=t()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[109]||(s[109]=e("p",null,"open_dataset(g; driver=:all)",-1)),s[110]||(s[110]=e("p",null,[t("Open the dataset at "),e("code",null,"g"),t(" with the given "),e("code",null,"driver"),t(". The default driver will search for available drivers and tries to detect the useable driver from the filename extension.")],-1)),s[111]||(s[111]=e("p",null,[e("a",{href:"https://github.com/JuliaDataCubes/YAXArrays.jl/blob/e1cc351c498cc8dc37986f50b6e7a5b6af71ef80/src/DatasetAPI/Datasets.jl#L330-L335",target:"_blank",rel:"noreferrer"},"source")],-1))]),e("details",L,[e("summary",null,[s[112]||(s[112]=e("a",{id:"YAXArrays.Datasets.savecube-Tuple{Any, AbstractString}",href:"#YAXArrays.Datasets.savecube-Tuple{Any, AbstractString}"},"#",-1)),s[113]||(s[113]=t()),s[114]||(s[114]=e("span",{class:"jlbinding"},"YAXArrays.Datasets.savecube",-1)),s[115]||(s[115]=t()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[116]||(s[116]=l('
julia
savecube(cube,name::String)

Save a YAXArray to the path.

Extended Help

The keyword arguments are:

  • name:

  • datasetaxis="Variable" special treatment of a categorical axis that gets written into separate zarr arrays

  • max_cache: The number of bits that are used as cache for the data handling.

  • backend: The backend, that is used to save the data. Falls back to searching the backend according to the extension of the path.

  • driver: The same setting as backend.

  • overwrite::Bool=false overwrite cube if it already exists

source

',6))]),e("details",M,[e("summary",null,[s[117]||(s[117]=e("a",{id:"YAXArrays.Datasets.savedataset-Tuple{Dataset}",href:"#YAXArrays.Datasets.savedataset-Tuple{Dataset}"},"#",-1)),s[118]||(s[118]=t()),s[119]||(s[119]=e("span",{class:"jlbinding"},"YAXArrays.Datasets.savedataset",-1)),s[120]||(s[120]=t()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[121]||(s[121]=e("p",null,'savedataset(ds::Dataset; path = "", persist = nothing, overwrite = false, append = false, skeleton=false, backend = :all, driver = backend, max_cache = 5e8, writefac=4.0)',-1)),s[122]||(s[122]=e("p",null,[t("Saves a Dataset into a file at "),e("code",null,"path"),t(" with the format given by "),e("code",null,"driver"),t(", i.e., driver=:netcdf or driver=:zarr.")],-1)),s[123]||(s[123]=e("div",{class:"warning custom-block"},[e("p",{class:"custom-block-title"},"Warning"),e("p",null,"overwrite = true, deletes ALL your data and it will create a new file.")],-1)),s[124]||(s[124]=e("p",null,[e("a",{href:"https://github.com/JuliaDataCubes/YAXArrays.jl/blob/e1cc351c498cc8dc37986f50b6e7a5b6af71ef80/src/DatasetAPI/Datasets.jl#L557-L566",target:"_blank",rel:"noreferrer"},"source")],-1))]),e("details",O,[e("summary",null,[s[125]||(s[125]=e("a",{id:"YAXArrays.Datasets.to_dataset-Tuple{Any}",href:"#YAXArrays.Datasets.to_dataset-Tuple{Any}"},"#",-1)),s[126]||(s[126]=t()),s[127]||(s[127]=e("span",{class:"jlbinding"},"YAXArrays.Datasets.to_dataset",-1)),s[128]||(s[128]=t()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[129]||(s[129]=e("p",null,'to_dataset(c;datasetaxis = "Variable", layername = "layer")',-1)),s[130]||(s[130]=e("p",null,[t(`Convert a Data Cube into a Dataset. It is possible to treat one of the Cube's axes as a "DatasetAxis" i.e. the cube will be split into different parts that become variables in the Dataset. If no such axis is specified or found, there will only be a single variable in the dataset with the name `),e("code",null,"layername")],-1)),s[131]||(s[131]=e("p",null,[e("a",{href:"https://github.com/JuliaDataCubes/YAXArrays.jl/blob/e1cc351c498cc8dc37986f50b6e7a5b6af71ef80/src/DatasetAPI/Datasets.jl#L45-L53",target:"_blank",rel:"noreferrer"},"source")],-1))]),s[261]||(s[261]=e("h2",{id:"Internal-API",tabindex:"-1"},[t("Internal API "),e("a",{class:"header-anchor",href:"#Internal-API","aria-label":'Permalink to "Internal API {#Internal-API}"'},"​")],-1)),e("details",I,[e("summary",null,[s[132]||(s[132]=e("a",{id:"YAXArrays.YAXDefaults",href:"#YAXArrays.YAXDefaults"},"#",-1)),s[133]||(s[133]=t()),s[134]||(s[134]=e("span",{class:"jlbinding"},"YAXArrays.YAXDefaults",-1)),s[135]||(s[135]=t()),i(a,{type:"info",class:"jlObjectType jlConstant",text:"Constant"})]),s[136]||(s[136]=l('

Default configuration for YAXArrays, has the following fields:

  • workdir[]::String = "./" The default location for temporary cubes.

  • recal[]::Bool = false set to true if you want @loadOrGenerate to always recalculate the results.

  • chunksize[]::Any = :input Set the default output chunksize.

  • max_cache[]::Float64 = 1e8 The maximum cache used by mapCube.

  • cubedir[]::"" the default location for Cube() without an argument.

  • subsetextensions::Array{Any} = [] List of registered functions, that convert subsetting input into dimension boundaries.

source

',3))]),e("details",B,[e("summary",null,[s[137]||(s[137]=e("a",{id:"YAXArrays.findAxis-Tuple{Any, Any}",href:"#YAXArrays.findAxis-Tuple{Any, Any}"},"#",-1)),s[138]||(s[138]=t()),s[139]||(s[139]=e("span",{class:"jlbinding"},"YAXArrays.findAxis",-1)),s[140]||(s[140]=t()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[141]||(s[141]=l('
julia
findAxis(desc, c)

Internal function

Extended Help

Given an Axis description and a cube return the index of the Axis.

The Axis description can be:

  • the name as a string or symbol.

  • an Axis object

source

',7))]),e("details",J,[e("summary",null,[s[142]||(s[142]=e("a",{id:"YAXArrays.getOutAxis-NTuple{5, Any}",href:"#YAXArrays.getOutAxis-NTuple{5, Any}"},"#",-1)),s[143]||(s[143]=t()),s[144]||(s[144]=e("span",{class:"jlbinding"},"YAXArrays.getOutAxis",-1)),s[145]||(s[145]=t()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[146]||(s[146]=l('
julia
getOutAxis

source

',2))]),e("details",P,[e("summary",null,[s[147]||(s[147]=e("a",{id:"YAXArrays.get_descriptor-Tuple{String}",href:"#YAXArrays.get_descriptor-Tuple{String}"},"#",-1)),s[148]||(s[148]=t()),s[149]||(s[149]=e("span",{class:"jlbinding"},"YAXArrays.get_descriptor",-1)),s[150]||(s[150]=t()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[151]||(s[151]=l('
julia
get_descriptor(a)

Get the descriptor of an Axis. This is used to dispatch on the descriptor.

source

',3))]),e("details",z,[e("summary",null,[s[152]||(s[152]=e("a",{id:"YAXArrays.match_axis-Tuple{YAXArrays.ByName, Any}",href:"#YAXArrays.match_axis-Tuple{YAXArrays.ByName, Any}"},"#",-1)),s[153]||(s[153]=t()),s[154]||(s[154]=e("span",{class:"jlbinding"},"YAXArrays.match_axis",-1)),s[155]||(s[155]=t()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[156]||(s[156]=l(`
julia
match_axis

Internal function

Extended Help

Match the Axis based on the AxisDescriptor.
+For the specific keyword arguments see the docstring of the mapCube function for cubes.

source

`,2))]),e("details",X,[e("summary",null,[s[83]||(s[83]=e("a",{id:"YAXArrays.DAT.mapCube-Tuple{Function, Tuple, Vararg{Any}}",href:"#YAXArrays.DAT.mapCube-Tuple{Function, Tuple, Vararg{Any}}"},"#",-1)),s[84]||(s[84]=t()),s[85]||(s[85]=e("span",{class:"jlbinding"},"YAXArrays.DAT.mapCube",-1)),s[86]||(s[86]=t()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[87]||(s[87]=l('
julia
mapCube(fun, cube, addargs...;kwargs...)

Map a given function fun over slices of the data cube cube. The additional arguments addargs will be forwarded to the inner function fun. Use InDims to discribe the input dimensions and OutDims to describe the output dimensions of the function.

Keyword arguments

  • max_cache=YAXDefaults.max_cache Float64 maximum size of blocks that are read into memory in bits e.g. max_cache=5.0e8. Or String. e.g. max_cache="10MB" ormax_cache=1GB``` defaults to approx 10Mb.

  • indims::InDims List of input cube descriptors of type InDims for each input data cube.

  • outdims::OutDims List of output cube descriptors of type OutDims for each output cube.

  • inplace does the function write to an output array inplace or return a single value> defaults to true

  • ispar boolean to determine if parallelisation should be applied, defaults to true if workers are available.

  • showprog boolean indicating if a ProgressMeter shall be shown

  • include_loopvars boolean to indicate if the varoables looped over should be added as function arguments

  • nthreads number of threads for the computation, defaults to Threads.nthreads for every worker.

  • loopchunksize determines the chunk sizes of variables which are looped over, a dict

  • kwargs additional keyword arguments are passed to the inner function

The first argument is always the function to be applied, the second is the input cube or a tuple of input cubes if needed.

source

',6))]),e("details",Y,[e("summary",null,[s[88]||(s[88]=e("a",{id:"YAXArrays.Datasets.Dataset",href:"#YAXArrays.Datasets.Dataset"},"#",-1)),s[89]||(s[89]=t()),s[90]||(s[90]=e("span",{class:"jlbinding"},"YAXArrays.Datasets.Dataset",-1)),s[91]||(s[91]=t()),i(a,{type:"info",class:"jlObjectType jlType",text:"Type"})]),s[92]||(s[92]=l('
julia
Dataset object which stores an `OrderedDict` of YAXArrays with Symbol keys.\na dictionary of CubeAxes and a Dictionary of general properties.\nA dictionary can hold cubes with differing axes. But it will share the common axes between the subcubes.

source

',2))]),e("details",x,[e("summary",null,[s[93]||(s[93]=e("a",{id:"YAXArrays.Datasets.Dataset-Tuple{}",href:"#YAXArrays.Datasets.Dataset-Tuple{}"},"#",-1)),s[94]||(s[94]=t()),s[95]||(s[95]=e("span",{class:"jlbinding"},"YAXArrays.Datasets.Dataset",-1)),s[96]||(s[96]=t()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[97]||(s[97]=e("p",null,"Dataset(; properties = Dict{String,Any}, cubes...)",-1)),s[98]||(s[98]=e("p",null,[t("Construct a YAXArray Dataset with global attributes "),e("code",null,"properties"),t(" a and a list of named YAXArrays cubes...")],-1)),s[99]||(s[99]=e("p",null,[e("a",{href:"https://github.com/JuliaDataCubes/YAXArrays.jl/blob/745a37981c880d46c63cf59ae9600b8ba3b3e713/src/DatasetAPI/Datasets.jl#L28-L32",target:"_blank",rel:"noreferrer"},"source")],-1))]),e("details",F,[e("summary",null,[s[100]||(s[100]=e("a",{id:"YAXArrays.Datasets.Cube-Tuple{Dataset}",href:"#YAXArrays.Datasets.Cube-Tuple{Dataset}"},"#",-1)),s[101]||(s[101]=t()),s[102]||(s[102]=e("span",{class:"jlbinding"},"YAXArrays.Datasets.Cube",-1)),s[103]||(s[103]=t()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[104]||(s[104]=l('
julia
Cube(ds::Dataset; joinname="Variable")

Construct a single YAXArray from the dataset ds by concatenating the cubes in the datset on the joinname dimension.

source

',3))]),e("details",w,[e("summary",null,[s[105]||(s[105]=e("a",{id:"YAXArrays.Datasets.open_dataset-Tuple{Any}",href:"#YAXArrays.Datasets.open_dataset-Tuple{Any}"},"#",-1)),s[106]||(s[106]=t()),s[107]||(s[107]=e("span",{class:"jlbinding"},"YAXArrays.Datasets.open_dataset",-1)),s[108]||(s[108]=t()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[109]||(s[109]=e("p",null,"open_dataset(g; driver=:all)",-1)),s[110]||(s[110]=e("p",null,[t("Open the dataset at "),e("code",null,"g"),t(" with the given "),e("code",null,"driver"),t(". The default driver will search for available drivers and tries to detect the useable driver from the filename extension.")],-1)),s[111]||(s[111]=e("p",null,[e("a",{href:"https://github.com/JuliaDataCubes/YAXArrays.jl/blob/745a37981c880d46c63cf59ae9600b8ba3b3e713/src/DatasetAPI/Datasets.jl#L330-L335",target:"_blank",rel:"noreferrer"},"source")],-1))]),e("details",L,[e("summary",null,[s[112]||(s[112]=e("a",{id:"YAXArrays.Datasets.savecube-Tuple{Any, AbstractString}",href:"#YAXArrays.Datasets.savecube-Tuple{Any, AbstractString}"},"#",-1)),s[113]||(s[113]=t()),s[114]||(s[114]=e("span",{class:"jlbinding"},"YAXArrays.Datasets.savecube",-1)),s[115]||(s[115]=t()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[116]||(s[116]=l('
julia
savecube(cube,name::String)

Save a YAXArray to the path.

Extended Help

The keyword arguments are:

  • name:

  • datasetaxis="Variable" special treatment of a categorical axis that gets written into separate zarr arrays

  • max_cache: The number of bits that are used as cache for the data handling.

  • backend: The backend, that is used to save the data. Falls back to searching the backend according to the extension of the path.

  • driver: The same setting as backend.

  • overwrite::Bool=false overwrite cube if it already exists

source

',6))]),e("details",M,[e("summary",null,[s[117]||(s[117]=e("a",{id:"YAXArrays.Datasets.savedataset-Tuple{Dataset}",href:"#YAXArrays.Datasets.savedataset-Tuple{Dataset}"},"#",-1)),s[118]||(s[118]=t()),s[119]||(s[119]=e("span",{class:"jlbinding"},"YAXArrays.Datasets.savedataset",-1)),s[120]||(s[120]=t()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[121]||(s[121]=e("p",null,'savedataset(ds::Dataset; path = "", persist = nothing, overwrite = false, append = false, skeleton=false, backend = :all, driver = backend, max_cache = 5e8, writefac=4.0)',-1)),s[122]||(s[122]=e("p",null,[t("Saves a Dataset into a file at "),e("code",null,"path"),t(" with the format given by "),e("code",null,"driver"),t(", i.e., driver=:netcdf or driver=:zarr.")],-1)),s[123]||(s[123]=e("div",{class:"warning custom-block"},[e("p",{class:"custom-block-title"},"Warning"),e("p",null,"overwrite = true, deletes ALL your data and it will create a new file.")],-1)),s[124]||(s[124]=e("p",null,[e("a",{href:"https://github.com/JuliaDataCubes/YAXArrays.jl/blob/745a37981c880d46c63cf59ae9600b8ba3b3e713/src/DatasetAPI/Datasets.jl#L557-L566",target:"_blank",rel:"noreferrer"},"source")],-1))]),e("details",O,[e("summary",null,[s[125]||(s[125]=e("a",{id:"YAXArrays.Datasets.to_dataset-Tuple{Any}",href:"#YAXArrays.Datasets.to_dataset-Tuple{Any}"},"#",-1)),s[126]||(s[126]=t()),s[127]||(s[127]=e("span",{class:"jlbinding"},"YAXArrays.Datasets.to_dataset",-1)),s[128]||(s[128]=t()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[129]||(s[129]=e("p",null,'to_dataset(c;datasetaxis = "Variable", layername = "layer")',-1)),s[130]||(s[130]=e("p",null,[t(`Convert a Data Cube into a Dataset. It is possible to treat one of the Cube's axes as a "DatasetAxis" i.e. the cube will be split into different parts that become variables in the Dataset. If no such axis is specified or found, there will only be a single variable in the dataset with the name `),e("code",null,"layername")],-1)),s[131]||(s[131]=e("p",null,[e("a",{href:"https://github.com/JuliaDataCubes/YAXArrays.jl/blob/745a37981c880d46c63cf59ae9600b8ba3b3e713/src/DatasetAPI/Datasets.jl#L45-L53",target:"_blank",rel:"noreferrer"},"source")],-1))]),s[261]||(s[261]=e("h2",{id:"Internal-API",tabindex:"-1"},[t("Internal API "),e("a",{class:"header-anchor",href:"#Internal-API","aria-label":'Permalink to "Internal API {#Internal-API}"'},"​")],-1)),e("details",I,[e("summary",null,[s[132]||(s[132]=e("a",{id:"YAXArrays.YAXDefaults",href:"#YAXArrays.YAXDefaults"},"#",-1)),s[133]||(s[133]=t()),s[134]||(s[134]=e("span",{class:"jlbinding"},"YAXArrays.YAXDefaults",-1)),s[135]||(s[135]=t()),i(a,{type:"info",class:"jlObjectType jlConstant",text:"Constant"})]),s[136]||(s[136]=l('

Default configuration for YAXArrays, has the following fields:

  • workdir[]::String = "./" The default location for temporary cubes.

  • recal[]::Bool = false set to true if you want @loadOrGenerate to always recalculate the results.

  • chunksize[]::Any = :input Set the default output chunksize.

  • max_cache[]::Float64 = 1e8 The maximum cache used by mapCube.

  • cubedir[]::"" the default location for Cube() without an argument.

  • subsetextensions::Array{Any} = [] List of registered functions, that convert subsetting input into dimension boundaries.

source

',3))]),e("details",B,[e("summary",null,[s[137]||(s[137]=e("a",{id:"YAXArrays.findAxis-Tuple{Any, Any}",href:"#YAXArrays.findAxis-Tuple{Any, Any}"},"#",-1)),s[138]||(s[138]=t()),s[139]||(s[139]=e("span",{class:"jlbinding"},"YAXArrays.findAxis",-1)),s[140]||(s[140]=t()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[141]||(s[141]=l('
julia
findAxis(desc, c)

Internal function

Extended Help

Given an Axis description and a cube return the index of the Axis.

The Axis description can be:

  • the name as a string or symbol.

  • an Axis object

source

',7))]),e("details",J,[e("summary",null,[s[142]||(s[142]=e("a",{id:"YAXArrays.getOutAxis-NTuple{5, Any}",href:"#YAXArrays.getOutAxis-NTuple{5, Any}"},"#",-1)),s[143]||(s[143]=t()),s[144]||(s[144]=e("span",{class:"jlbinding"},"YAXArrays.getOutAxis",-1)),s[145]||(s[145]=t()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[146]||(s[146]=l('
julia
getOutAxis

source

',2))]),e("details",P,[e("summary",null,[s[147]||(s[147]=e("a",{id:"YAXArrays.get_descriptor-Tuple{String}",href:"#YAXArrays.get_descriptor-Tuple{String}"},"#",-1)),s[148]||(s[148]=t()),s[149]||(s[149]=e("span",{class:"jlbinding"},"YAXArrays.get_descriptor",-1)),s[150]||(s[150]=t()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[151]||(s[151]=l('
julia
get_descriptor(a)

Get the descriptor of an Axis. This is used to dispatch on the descriptor.

source

',3))]),e("details",z,[e("summary",null,[s[152]||(s[152]=e("a",{id:"YAXArrays.match_axis-Tuple{YAXArrays.ByName, Any}",href:"#YAXArrays.match_axis-Tuple{YAXArrays.ByName, Any}"},"#",-1)),s[153]||(s[153]=t()),s[154]||(s[154]=e("span",{class:"jlbinding"},"YAXArrays.match_axis",-1)),s[155]||(s[155]=t()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[156]||(s[156]=l(`
julia
match_axis

Internal function

Extended Help

Match the Axis based on the AxisDescriptor.
 This is used to find different axes and to make certain axis description the same.
-For example to disregard differences of captialisation.

source

`,5))]),e("details",N,[e("summary",null,[s[157]||(s[157]=e("a",{id:"YAXArrays.Cubes.CleanMe",href:"#YAXArrays.Cubes.CleanMe"},"#",-1)),s[158]||(s[158]=t()),s[159]||(s[159]=e("span",{class:"jlbinding"},"YAXArrays.Cubes.CleanMe",-1)),s[160]||(s[160]=t()),i(a,{type:"info",class:"jlObjectType jlType",text:"Type"})]),s[161]||(s[161]=l('
julia
mutable struct CleanMe

Struct which describes data paths and their persistency. Non-persistend paths/files are removed at finalize step

source

',3))]),e("details",S,[e("summary",null,[s[162]||(s[162]=e("a",{id:"YAXArrays.Cubes.clean-Tuple{YAXArrays.Cubes.CleanMe}",href:"#YAXArrays.Cubes.clean-Tuple{YAXArrays.Cubes.CleanMe}"},"#",-1)),s[163]||(s[163]=t()),s[164]||(s[164]=e("span",{class:"jlbinding"},"YAXArrays.Cubes.clean",-1)),s[165]||(s[165]=t()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[166]||(s[166]=l('
julia
clean(c::CleanMe)

finalizer function for CleanMe struct. The main process removes all directories/files which are not persistent.

source

',3))]),e("details",q,[e("summary",null,[s[167]||(s[167]=e("a",{id:"YAXArrays.Cubes.copydata-Tuple{Any, Any, Any}",href:"#YAXArrays.Cubes.copydata-Tuple{Any, Any, Any}"},"#",-1)),s[168]||(s[168]=t()),s[169]||(s[169]=e("span",{class:"jlbinding"},"YAXArrays.Cubes.copydata",-1)),s[170]||(s[170]=t()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[171]||(s[171]=l('
julia
copydata(outar, inar, copybuf)

Internal function which copies the data from the input inar into the output outar at the copybuf positions.

source

',3))]),e("details",R,[e("summary",null,[s[172]||(s[172]=e("a",{id:"YAXArrays.Cubes.optifunc-NTuple{7, Any}",href:"#YAXArrays.Cubes.optifunc-NTuple{7, Any}"},"#",-1)),s[173]||(s[173]=t()),s[174]||(s[174]=e("span",{class:"jlbinding"},"YAXArrays.Cubes.optifunc",-1)),s[175]||(s[175]=t()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[176]||(s[176]=l('
julia
optifunc(s, maxbuf, incs, outcs, insize, outsize, writefac)

Internal

This function is going to be minimized to detect the best possible chunk setting for the rechunking of the data.

source

',4))]),e("details",V,[e("summary",null,[s[177]||(s[177]=e("a",{id:"YAXArrays.DAT.DATConfig",href:"#YAXArrays.DAT.DATConfig"},"#",-1)),s[178]||(s[178]=t()),s[179]||(s[179]=e("span",{class:"jlbinding"},"YAXArrays.DAT.DATConfig",-1)),s[180]||(s[180]=t()),i(a,{type:"info",class:"jlObjectType jlType",text:"Type"})]),s[181]||(s[181]=l('

Configuration object of a DAT process. This holds all necessary information to perform the calculations. It contains the following fields:

  • incubes::Tuple{Vararg{YAXArrays.DAT.InputCube, NIN}} where NIN: The input data cubes

  • outcubes::Tuple{Vararg{YAXArrays.DAT.OutputCube, NOUT}} where NOUT: The output data cubes

  • allInAxes::Vector: List of all axes of the input cubes

  • LoopAxes::Vector: List of axes that are looped through

  • ispar::Bool: Flag whether the computation is parallelized

  • loopcachesize::Vector{Int64}:

  • allow_irregular_chunks::Bool:

  • max_cache::Any: Maximal size of the in memory cache

  • fu::Any: Inner function which is computed

  • inplace::Bool: Flag whether the computation happens in place

  • include_loopvars::Bool:

  • ntr::Any:

  • do_gc::Bool: Flag if GC should be called explicitly. Probably necessary for many runs in Julia 1.9

  • addargs::Any: Additional arguments for the inner function

  • kwargs::Any: Additional keyword arguments for the inner function

source

',3))]),e("details",G,[e("summary",null,[s[182]||(s[182]=e("a",{id:"YAXArrays.DAT.InputCube",href:"#YAXArrays.DAT.InputCube"},"#",-1)),s[183]||(s[183]=t()),s[184]||(s[184]=e("span",{class:"jlbinding"},"YAXArrays.DAT.InputCube",-1)),s[185]||(s[185]=t()),i(a,{type:"info",class:"jlObjectType jlType",text:"Type"})]),s[186]||(s[186]=l('

Internal representation of an input cube for DAT operations

  • cube: The input data

  • desc: The input description given by the user/registration

  • axesSmall: List of axes that were actually selected through the description

  • icolon

  • colonperm

  • loopinds: Indices of loop axes that this cube does not contain, i.e. broadcasts

  • cachesize: Number of elements to keep in cache along each axis

  • window

  • iwindow

  • windowloopinds

  • iall

source

',3))]),e("details",W,[e("summary",null,[s[187]||(s[187]=e("a",{id:"YAXArrays.DAT.OutputCube",href:"#YAXArrays.DAT.OutputCube"},"#",-1)),s[188]||(s[188]=t()),s[189]||(s[189]=e("span",{class:"jlbinding"},"YAXArrays.DAT.OutputCube",-1)),s[190]||(s[190]=t()),i(a,{type:"info",class:"jlObjectType jlType",text:"Type"})]),s[191]||(s[191]=l('

Internal representation of an output cube for DAT operations

Fields

  • cube: The actual outcube cube, once it is generated

  • cube_unpermuted: The unpermuted output cube

  • desc: The description of the output axes as given by users or registration

  • axesSmall: The list of output axes determined through the description

  • allAxes: List of all the axes of the cube

  • loopinds: Index of the loop axes that are broadcasted for this output cube

  • innerchunks

  • outtype: Elementtype of the outputcube

source

',4))]),e("details",U,[e("summary",null,[s[192]||(s[192]=e("a",{id:"YAXArrays.DAT.YAXColumn",href:"#YAXArrays.DAT.YAXColumn"},"#",-1)),s[193]||(s[193]=t()),s[194]||(s[194]=e("span",{class:"jlbinding"},"YAXArrays.DAT.YAXColumn",-1)),s[195]||(s[195]=t()),i(a,{type:"info",class:"jlObjectType jlType",text:"Type"})]),s[196]||(s[196]=l('
julia
YAXColumn

A struct representing a single column of a YAXArray partitioned Table # Fields

  • inarBC

  • inds

source

',4))]),e("details",$,[e("summary",null,[s[197]||(s[197]=e("a",{id:"YAXArrays.DAT.cmpcachmisses-Tuple{Any, Any}",href:"#YAXArrays.DAT.cmpcachmisses-Tuple{Any, Any}"},"#",-1)),s[198]||(s[198]=t()),s[199]||(s[199]=e("span",{class:"jlbinding"},"YAXArrays.DAT.cmpcachmisses",-1)),s[200]||(s[200]=t()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[201]||(s[201]=e("p",null,"Function that compares two cache miss specifiers by their importance",-1)),s[202]||(s[202]=e("p",null,[e("a",{href:"https://github.com/JuliaDataCubes/YAXArrays.jl/blob/e1cc351c498cc8dc37986f50b6e7a5b6af71ef80/src/DAT/DAT.jl#L954-L956",target:"_blank",rel:"noreferrer"},"source")],-1))]),e("details",H,[e("summary",null,[s[203]||(s[203]=e("a",{id:"YAXArrays.DAT.getFrontPerm-Tuple{Any, Any}",href:"#YAXArrays.DAT.getFrontPerm-Tuple{Any, Any}"},"#",-1)),s[204]||(s[204]=t()),s[205]||(s[205]=e("span",{class:"jlbinding"},"YAXArrays.DAT.getFrontPerm",-1)),s[206]||(s[206]=t()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[207]||(s[207]=e("p",null,"Calculate an axis permutation that brings the wanted dimensions to the front",-1)),s[208]||(s[208]=e("p",null,[e("a",{href:"https://github.com/JuliaDataCubes/YAXArrays.jl/blob/e1cc351c498cc8dc37986f50b6e7a5b6af71ef80/src/DAT/DAT.jl#L1199",target:"_blank",rel:"noreferrer"},"source")],-1))]),e("details",K,[e("summary",null,[s[209]||(s[209]=e("a",{id:"YAXArrays.DAT.getLoopCacheSize-NTuple{5, Any}",href:"#YAXArrays.DAT.getLoopCacheSize-NTuple{5, Any}"},"#",-1)),s[210]||(s[210]=t()),s[211]||(s[211]=e("span",{class:"jlbinding"},"YAXArrays.DAT.getLoopCacheSize",-1)),s[212]||(s[212]=t()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[213]||(s[213]=e("p",null,"Calculate optimal Cache size to DAT operation",-1)),s[214]||(s[214]=e("p",null,[e("a",{href:"https://github.com/JuliaDataCubes/YAXArrays.jl/blob/e1cc351c498cc8dc37986f50b6e7a5b6af71ef80/src/DAT/DAT.jl#L1053",target:"_blank",rel:"noreferrer"},"source")],-1))]),e("details",Z,[e("summary",null,[s[215]||(s[215]=e("a",{id:"YAXArrays.DAT.getOuttype-Tuple{Int64, Any}",href:"#YAXArrays.DAT.getOuttype-Tuple{Int64, Any}"},"#",-1)),s[216]||(s[216]=t()),s[217]||(s[217]=e("span",{class:"jlbinding"},"YAXArrays.DAT.getOuttype",-1)),s[218]||(s[218]=t()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[219]||(s[219]=l('
julia
getOuttype(outtype, cdata)

Internal function

Get the element type for the output cube

source

',4))]),e("details",Q,[e("summary",null,[s[220]||(s[220]=e("a",{id:"YAXArrays.DAT.getloopchunks-Tuple{YAXArrays.DAT.DATConfig}",href:"#YAXArrays.DAT.getloopchunks-Tuple{YAXArrays.DAT.DATConfig}"},"#",-1)),s[221]||(s[221]=t()),s[222]||(s[222]=e("span",{class:"jlbinding"},"YAXArrays.DAT.getloopchunks",-1)),s[223]||(s[223]=t()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[224]||(s[224]=l('
julia
getloopchunks(dc::DATConfig)

Internal function

Returns the chunks that can be looped over toghether for all dimensions.\nThis computation of the size of the chunks is handled by [`DiskArrays.approx_chunksize`](@ref)

source

',4))]),e("details",_,[e("summary",null,[s[225]||(s[225]=e("a",{id:"YAXArrays.DAT.permuteloopaxes-Tuple{Any}",href:"#YAXArrays.DAT.permuteloopaxes-Tuple{Any}"},"#",-1)),s[226]||(s[226]=t()),s[227]||(s[227]=e("span",{class:"jlbinding"},"YAXArrays.DAT.permuteloopaxes",-1)),s[228]||(s[228]=t()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[229]||(s[229]=l('
julia
permuteloopaxes(dc)

Internal function

Permute the dimensions of the cube, so that the axes that are looped through are in the first positions. This is necessary for a faster looping through the data.

source

',4))]),e("details",ss,[e("summary",null,[s[230]||(s[230]=e("a",{id:"YAXArrays.Cubes.setchunks-Tuple{Dataset, Any}",href:"#YAXArrays.Cubes.setchunks-Tuple{Dataset, Any}"},"#",-1)),s[231]||(s[231]=t()),s[232]||(s[232]=e("span",{class:"jlbinding"},"YAXArrays.Cubes.setchunks",-1)),s[233]||(s[233]=t()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[234]||(s[234]=l('
julia
setchunks(c::Dataset,chunks)

Resets the chunks of all or a subset YAXArrays in the dataset and returns a new Dataset. Note that this will not change the chunking of the underlying data itself, it will just make the data "look" like it had a different chunking. If you need a persistent on-disk representation of this chunking, use savedataset on the resulting array. The chunks argument can take one of the following forms:

  • a NamedTuple or AbstractDict mapping from variable name to a description of the desired variable chunks

  • a NamedTuple or AbstractDict mapping from dimension name to a description of the desired variable chunks

  • a description of the desired variable chunks applied to all members of the Dataset

where a description of the desired variable chunks can take one of the following forms:

  • a DiskArrays.GridChunks object

  • a tuple specifying the chunk size along each dimension

  • an AbstractDict or NamedTuple mapping one or more axis names to chunk sizes

source

',6))]),e("details",es,[e("summary",null,[s[235]||(s[235]=e("a",{id:"YAXArrays.Datasets.collectfromhandle-Tuple{Any, Any, Any}",href:"#YAXArrays.Datasets.collectfromhandle-Tuple{Any, Any, Any}"},"#",-1)),s[236]||(s[236]=t()),s[237]||(s[237]=e("span",{class:"jlbinding"},"YAXArrays.Datasets.collectfromhandle",-1)),s[238]||(s[238]=t()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[239]||(s[239]=e("p",null,"Extracts a YAXArray from a dataset handle that was just created from a arrayinfo",-1)),s[240]||(s[240]=e("p",null,[e("a",{href:"https://github.com/JuliaDataCubes/YAXArrays.jl/blob/e1cc351c498cc8dc37986f50b6e7a5b6af71ef80/src/DatasetAPI/Datasets.jl#L463-L465",target:"_blank",rel:"noreferrer"},"source")],-1))]),e("details",ts,[e("summary",null,[s[241]||(s[241]=e("a",{id:"YAXArrays.Datasets.createdataset-Tuple{Any, Any}",href:"#YAXArrays.Datasets.createdataset-Tuple{Any, Any}"},"#",-1)),s[242]||(s[242]=t()),s[243]||(s[243]=e("span",{class:"jlbinding"},"YAXArrays.Datasets.createdataset",-1)),s[244]||(s[244]=t()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[245]||(s[245]=l('

function createdataset(DS::Type,axlist; kwargs...)

Creates a new dataset with axes specified in axlist. Each axis must be a subtype of CubeAxis. A new empty Zarr array will be created and can serve as a sink for mapCube operations.

Keyword arguments

  • path="" location where the new cube is stored

  • T=Union{Float32,Missing} data type of the target cube

  • chunksize = ntuple(i->length(axlist[i]),length(axlist)) chunk sizes of the array

  • chunkoffset = ntuple(i->0,length(axlist)) offsets of the chunks

  • persist::Bool=true shall the disk data be garbage-collected when the cube goes out of scope?

  • overwrite::Bool=false overwrite cube if it already exists

  • properties=Dict{String,Any}() additional cube properties

  • globalproperties=Dict{String,Any} global attributes to be added to the dataset

  • fillvalue= T>:Missing ? defaultfillval(Base.nonmissingtype(T)) : nothing fill value

  • datasetaxis="Variable" special treatment of a categorical axis that gets written into separate zarr arrays

  • layername="layer" Fallback name of the variable stored in the dataset if no datasetaxis is found

source

',6))]),e("details",as,[e("summary",null,[s[246]||(s[246]=e("a",{id:"YAXArrays.Datasets.getarrayinfo-Tuple{Any, Any}",href:"#YAXArrays.Datasets.getarrayinfo-Tuple{Any, Any}"},"#",-1)),s[247]||(s[247]=t()),s[248]||(s[248]=e("span",{class:"jlbinding"},"YAXArrays.Datasets.getarrayinfo",-1)),s[249]||(s[249]=t()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[250]||(s[250]=e("p",null,"Extract necessary information to create a YAXArrayBase dataset from a name and YAXArray pair",-1)),s[251]||(s[251]=e("p",null,[e("a",{href:"https://github.com/JuliaDataCubes/YAXArrays.jl/blob/e1cc351c498cc8dc37986f50b6e7a5b6af71ef80/src/DatasetAPI/Datasets.jl#L432-L434",target:"_blank",rel:"noreferrer"},"source")],-1))]),e("details",is,[e("summary",null,[s[252]||(s[252]=e("a",{id:"YAXArrays.Datasets.testrange-Tuple{Any}",href:"#YAXArrays.Datasets.testrange-Tuple{Any}"},"#",-1)),s[253]||(s[253]=t()),s[254]||(s[254]=e("span",{class:"jlbinding"},"YAXArrays.Datasets.testrange",-1)),s[255]||(s[255]=t()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[256]||(s[256]=e("p",null,"Test if data in x can be approximated by a step range",-1)),s[257]||(s[257]=e("p",null,[e("a",{href:"https://github.com/JuliaDataCubes/YAXArrays.jl/blob/e1cc351c498cc8dc37986f50b6e7a5b6af71ef80/src/DatasetAPI/Datasets.jl#L302",target:"_blank",rel:"noreferrer"},"source")],-1))])])}const cs=n(d,[["render",ls]]);export{bs as __pageData,cs as default}; +For example to disregard differences of captialisation.

source

`,5))]),e("details",N,[e("summary",null,[s[157]||(s[157]=e("a",{id:"YAXArrays.Cubes.CleanMe",href:"#YAXArrays.Cubes.CleanMe"},"#",-1)),s[158]||(s[158]=t()),s[159]||(s[159]=e("span",{class:"jlbinding"},"YAXArrays.Cubes.CleanMe",-1)),s[160]||(s[160]=t()),i(a,{type:"info",class:"jlObjectType jlType",text:"Type"})]),s[161]||(s[161]=l('
julia
mutable struct CleanMe

Struct which describes data paths and their persistency. Non-persistend paths/files are removed at finalize step

source

',3))]),e("details",S,[e("summary",null,[s[162]||(s[162]=e("a",{id:"YAXArrays.Cubes.clean-Tuple{YAXArrays.Cubes.CleanMe}",href:"#YAXArrays.Cubes.clean-Tuple{YAXArrays.Cubes.CleanMe}"},"#",-1)),s[163]||(s[163]=t()),s[164]||(s[164]=e("span",{class:"jlbinding"},"YAXArrays.Cubes.clean",-1)),s[165]||(s[165]=t()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[166]||(s[166]=l('
julia
clean(c::CleanMe)

finalizer function for CleanMe struct. The main process removes all directories/files which are not persistent.

source

',3))]),e("details",q,[e("summary",null,[s[167]||(s[167]=e("a",{id:"YAXArrays.Cubes.copydata-Tuple{Any, Any, Any}",href:"#YAXArrays.Cubes.copydata-Tuple{Any, Any, Any}"},"#",-1)),s[168]||(s[168]=t()),s[169]||(s[169]=e("span",{class:"jlbinding"},"YAXArrays.Cubes.copydata",-1)),s[170]||(s[170]=t()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[171]||(s[171]=l('
julia
copydata(outar, inar, copybuf)

Internal function which copies the data from the input inar into the output outar at the copybuf positions.

source

',3))]),e("details",R,[e("summary",null,[s[172]||(s[172]=e("a",{id:"YAXArrays.Cubes.optifunc-NTuple{7, Any}",href:"#YAXArrays.Cubes.optifunc-NTuple{7, Any}"},"#",-1)),s[173]||(s[173]=t()),s[174]||(s[174]=e("span",{class:"jlbinding"},"YAXArrays.Cubes.optifunc",-1)),s[175]||(s[175]=t()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[176]||(s[176]=l('
julia
optifunc(s, maxbuf, incs, outcs, insize, outsize, writefac)

Internal

This function is going to be minimized to detect the best possible chunk setting for the rechunking of the data.

source

',4))]),e("details",V,[e("summary",null,[s[177]||(s[177]=e("a",{id:"YAXArrays.DAT.DATConfig",href:"#YAXArrays.DAT.DATConfig"},"#",-1)),s[178]||(s[178]=t()),s[179]||(s[179]=e("span",{class:"jlbinding"},"YAXArrays.DAT.DATConfig",-1)),s[180]||(s[180]=t()),i(a,{type:"info",class:"jlObjectType jlType",text:"Type"})]),s[181]||(s[181]=l('

Configuration object of a DAT process. This holds all necessary information to perform the calculations. It contains the following fields:

  • incubes::Tuple{Vararg{YAXArrays.DAT.InputCube, NIN}} where NIN: The input data cubes

  • outcubes::Tuple{Vararg{YAXArrays.DAT.OutputCube, NOUT}} where NOUT: The output data cubes

  • allInAxes::Vector: List of all axes of the input cubes

  • LoopAxes::Vector: List of axes that are looped through

  • ispar::Bool: Flag whether the computation is parallelized

  • loopcachesize::Vector{Int64}:

  • allow_irregular_chunks::Bool:

  • max_cache::Any: Maximal size of the in memory cache

  • fu::Any: Inner function which is computed

  • inplace::Bool: Flag whether the computation happens in place

  • include_loopvars::Bool:

  • ntr::Any:

  • do_gc::Bool: Flag if GC should be called explicitly. Probably necessary for many runs in Julia 1.9

  • addargs::Any: Additional arguments for the inner function

  • kwargs::Any: Additional keyword arguments for the inner function

source

',3))]),e("details",G,[e("summary",null,[s[182]||(s[182]=e("a",{id:"YAXArrays.DAT.InputCube",href:"#YAXArrays.DAT.InputCube"},"#",-1)),s[183]||(s[183]=t()),s[184]||(s[184]=e("span",{class:"jlbinding"},"YAXArrays.DAT.InputCube",-1)),s[185]||(s[185]=t()),i(a,{type:"info",class:"jlObjectType jlType",text:"Type"})]),s[186]||(s[186]=l('

Internal representation of an input cube for DAT operations

  • cube: The input data

  • desc: The input description given by the user/registration

  • axesSmall: List of axes that were actually selected through the description

  • icolon

  • colonperm

  • loopinds: Indices of loop axes that this cube does not contain, i.e. broadcasts

  • cachesize: Number of elements to keep in cache along each axis

  • window

  • iwindow

  • windowloopinds

  • iall

source

',3))]),e("details",W,[e("summary",null,[s[187]||(s[187]=e("a",{id:"YAXArrays.DAT.OutputCube",href:"#YAXArrays.DAT.OutputCube"},"#",-1)),s[188]||(s[188]=t()),s[189]||(s[189]=e("span",{class:"jlbinding"},"YAXArrays.DAT.OutputCube",-1)),s[190]||(s[190]=t()),i(a,{type:"info",class:"jlObjectType jlType",text:"Type"})]),s[191]||(s[191]=l('

Internal representation of an output cube for DAT operations

Fields

  • cube: The actual outcube cube, once it is generated

  • cube_unpermuted: The unpermuted output cube

  • desc: The description of the output axes as given by users or registration

  • axesSmall: The list of output axes determined through the description

  • allAxes: List of all the axes of the cube

  • loopinds: Index of the loop axes that are broadcasted for this output cube

  • innerchunks

  • outtype: Elementtype of the outputcube

source

',4))]),e("details",U,[e("summary",null,[s[192]||(s[192]=e("a",{id:"YAXArrays.DAT.YAXColumn",href:"#YAXArrays.DAT.YAXColumn"},"#",-1)),s[193]||(s[193]=t()),s[194]||(s[194]=e("span",{class:"jlbinding"},"YAXArrays.DAT.YAXColumn",-1)),s[195]||(s[195]=t()),i(a,{type:"info",class:"jlObjectType jlType",text:"Type"})]),s[196]||(s[196]=l('
julia
YAXColumn

A struct representing a single column of a YAXArray partitioned Table # Fields

  • inarBC

  • inds

source

',4))]),e("details",$,[e("summary",null,[s[197]||(s[197]=e("a",{id:"YAXArrays.DAT.cmpcachmisses-Tuple{Any, Any}",href:"#YAXArrays.DAT.cmpcachmisses-Tuple{Any, Any}"},"#",-1)),s[198]||(s[198]=t()),s[199]||(s[199]=e("span",{class:"jlbinding"},"YAXArrays.DAT.cmpcachmisses",-1)),s[200]||(s[200]=t()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[201]||(s[201]=e("p",null,"Function that compares two cache miss specifiers by their importance",-1)),s[202]||(s[202]=e("p",null,[e("a",{href:"https://github.com/JuliaDataCubes/YAXArrays.jl/blob/745a37981c880d46c63cf59ae9600b8ba3b3e713/src/DAT/DAT.jl#L957-L959",target:"_blank",rel:"noreferrer"},"source")],-1))]),e("details",H,[e("summary",null,[s[203]||(s[203]=e("a",{id:"YAXArrays.DAT.getFrontPerm-Tuple{Any, Any}",href:"#YAXArrays.DAT.getFrontPerm-Tuple{Any, Any}"},"#",-1)),s[204]||(s[204]=t()),s[205]||(s[205]=e("span",{class:"jlbinding"},"YAXArrays.DAT.getFrontPerm",-1)),s[206]||(s[206]=t()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[207]||(s[207]=e("p",null,"Calculate an axis permutation that brings the wanted dimensions to the front",-1)),s[208]||(s[208]=e("p",null,[e("a",{href:"https://github.com/JuliaDataCubes/YAXArrays.jl/blob/745a37981c880d46c63cf59ae9600b8ba3b3e713/src/DAT/DAT.jl#L1202",target:"_blank",rel:"noreferrer"},"source")],-1))]),e("details",K,[e("summary",null,[s[209]||(s[209]=e("a",{id:"YAXArrays.DAT.getLoopCacheSize-NTuple{5, Any}",href:"#YAXArrays.DAT.getLoopCacheSize-NTuple{5, Any}"},"#",-1)),s[210]||(s[210]=t()),s[211]||(s[211]=e("span",{class:"jlbinding"},"YAXArrays.DAT.getLoopCacheSize",-1)),s[212]||(s[212]=t()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[213]||(s[213]=e("p",null,"Calculate optimal Cache size to DAT operation",-1)),s[214]||(s[214]=e("p",null,[e("a",{href:"https://github.com/JuliaDataCubes/YAXArrays.jl/blob/745a37981c880d46c63cf59ae9600b8ba3b3e713/src/DAT/DAT.jl#L1056",target:"_blank",rel:"noreferrer"},"source")],-1))]),e("details",Z,[e("summary",null,[s[215]||(s[215]=e("a",{id:"YAXArrays.DAT.getOuttype-Tuple{Int64, Any}",href:"#YAXArrays.DAT.getOuttype-Tuple{Int64, Any}"},"#",-1)),s[216]||(s[216]=t()),s[217]||(s[217]=e("span",{class:"jlbinding"},"YAXArrays.DAT.getOuttype",-1)),s[218]||(s[218]=t()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[219]||(s[219]=l('
julia
getOuttype(outtype, cdata)

Internal function

Get the element type for the output cube

source

',4))]),e("details",Q,[e("summary",null,[s[220]||(s[220]=e("a",{id:"YAXArrays.DAT.getloopchunks-Tuple{YAXArrays.DAT.DATConfig}",href:"#YAXArrays.DAT.getloopchunks-Tuple{YAXArrays.DAT.DATConfig}"},"#",-1)),s[221]||(s[221]=t()),s[222]||(s[222]=e("span",{class:"jlbinding"},"YAXArrays.DAT.getloopchunks",-1)),s[223]||(s[223]=t()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[224]||(s[224]=l('
julia
getloopchunks(dc::DATConfig)

Internal function

Returns the chunks that can be looped over toghether for all dimensions.\nThis computation of the size of the chunks is handled by [`DiskArrays.approx_chunksize`](@ref)

source

',4))]),e("details",_,[e("summary",null,[s[225]||(s[225]=e("a",{id:"YAXArrays.DAT.permuteloopaxes-Tuple{Any}",href:"#YAXArrays.DAT.permuteloopaxes-Tuple{Any}"},"#",-1)),s[226]||(s[226]=t()),s[227]||(s[227]=e("span",{class:"jlbinding"},"YAXArrays.DAT.permuteloopaxes",-1)),s[228]||(s[228]=t()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[229]||(s[229]=l('
julia
permuteloopaxes(dc)

Internal function

Permute the dimensions of the cube, so that the axes that are looped through are in the first positions. This is necessary for a faster looping through the data.

source

',4))]),e("details",ss,[e("summary",null,[s[230]||(s[230]=e("a",{id:"YAXArrays.Cubes.setchunks-Tuple{Dataset, Any}",href:"#YAXArrays.Cubes.setchunks-Tuple{Dataset, Any}"},"#",-1)),s[231]||(s[231]=t()),s[232]||(s[232]=e("span",{class:"jlbinding"},"YAXArrays.Cubes.setchunks",-1)),s[233]||(s[233]=t()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[234]||(s[234]=l('
julia
setchunks(c::Dataset,chunks)

Resets the chunks of all or a subset YAXArrays in the dataset and returns a new Dataset. Note that this will not change the chunking of the underlying data itself, it will just make the data "look" like it had a different chunking. If you need a persistent on-disk representation of this chunking, use savedataset on the resulting array. The chunks argument can take one of the following forms:

  • a NamedTuple or AbstractDict mapping from variable name to a description of the desired variable chunks

  • a NamedTuple or AbstractDict mapping from dimension name to a description of the desired variable chunks

  • a description of the desired variable chunks applied to all members of the Dataset

where a description of the desired variable chunks can take one of the following forms:

  • a DiskArrays.GridChunks object

  • a tuple specifying the chunk size along each dimension

  • an AbstractDict or NamedTuple mapping one or more axis names to chunk sizes

source

',6))]),e("details",es,[e("summary",null,[s[235]||(s[235]=e("a",{id:"YAXArrays.Datasets.collectfromhandle-Tuple{Any, Any, Any}",href:"#YAXArrays.Datasets.collectfromhandle-Tuple{Any, Any, Any}"},"#",-1)),s[236]||(s[236]=t()),s[237]||(s[237]=e("span",{class:"jlbinding"},"YAXArrays.Datasets.collectfromhandle",-1)),s[238]||(s[238]=t()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[239]||(s[239]=e("p",null,"Extracts a YAXArray from a dataset handle that was just created from a arrayinfo",-1)),s[240]||(s[240]=e("p",null,[e("a",{href:"https://github.com/JuliaDataCubes/YAXArrays.jl/blob/745a37981c880d46c63cf59ae9600b8ba3b3e713/src/DatasetAPI/Datasets.jl#L463-L465",target:"_blank",rel:"noreferrer"},"source")],-1))]),e("details",ts,[e("summary",null,[s[241]||(s[241]=e("a",{id:"YAXArrays.Datasets.createdataset-Tuple{Any, Any}",href:"#YAXArrays.Datasets.createdataset-Tuple{Any, Any}"},"#",-1)),s[242]||(s[242]=t()),s[243]||(s[243]=e("span",{class:"jlbinding"},"YAXArrays.Datasets.createdataset",-1)),s[244]||(s[244]=t()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[245]||(s[245]=l('

function createdataset(DS::Type,axlist; kwargs...)

Creates a new dataset with axes specified in axlist. Each axis must be a subtype of CubeAxis. A new empty Zarr array will be created and can serve as a sink for mapCube operations.

Keyword arguments

  • path="" location where the new cube is stored

  • T=Union{Float32,Missing} data type of the target cube

  • chunksize = ntuple(i->length(axlist[i]),length(axlist)) chunk sizes of the array

  • chunkoffset = ntuple(i->0,length(axlist)) offsets of the chunks

  • persist::Bool=true shall the disk data be garbage-collected when the cube goes out of scope?

  • overwrite::Bool=false overwrite cube if it already exists

  • properties=Dict{String,Any}() additional cube properties

  • globalproperties=Dict{String,Any} global attributes to be added to the dataset

  • fillvalue= T>:Missing ? defaultfillval(Base.nonmissingtype(T)) : nothing fill value

  • datasetaxis="Variable" special treatment of a categorical axis that gets written into separate zarr arrays

  • layername="layer" Fallback name of the variable stored in the dataset if no datasetaxis is found

source

',6))]),e("details",as,[e("summary",null,[s[246]||(s[246]=e("a",{id:"YAXArrays.Datasets.getarrayinfo-Tuple{Any, Any}",href:"#YAXArrays.Datasets.getarrayinfo-Tuple{Any, Any}"},"#",-1)),s[247]||(s[247]=t()),s[248]||(s[248]=e("span",{class:"jlbinding"},"YAXArrays.Datasets.getarrayinfo",-1)),s[249]||(s[249]=t()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[250]||(s[250]=e("p",null,"Extract necessary information to create a YAXArrayBase dataset from a name and YAXArray pair",-1)),s[251]||(s[251]=e("p",null,[e("a",{href:"https://github.com/JuliaDataCubes/YAXArrays.jl/blob/745a37981c880d46c63cf59ae9600b8ba3b3e713/src/DatasetAPI/Datasets.jl#L432-L434",target:"_blank",rel:"noreferrer"},"source")],-1))]),e("details",is,[e("summary",null,[s[252]||(s[252]=e("a",{id:"YAXArrays.Datasets.testrange-Tuple{Any}",href:"#YAXArrays.Datasets.testrange-Tuple{Any}"},"#",-1)),s[253]||(s[253]=t()),s[254]||(s[254]=e("span",{class:"jlbinding"},"YAXArrays.Datasets.testrange",-1)),s[255]||(s[255]=t()),i(a,{type:"info",class:"jlObjectType jlMethod",text:"Method"})]),s[256]||(s[256]=e("p",null,"Test if data in x can be approximated by a step range",-1)),s[257]||(s[257]=e("p",null,[e("a",{href:"https://github.com/JuliaDataCubes/YAXArrays.jl/blob/745a37981c880d46c63cf59ae9600b8ba3b3e713/src/DatasetAPI/Datasets.jl#L302",target:"_blank",rel:"noreferrer"},"source")],-1))])])}const hs=n(d,[["render",ls]]);export{bs as __pageData,hs as default}; diff --git a/previews/PR439/assets/app.lifmFEhC.js b/previews/PR439/assets/app.fg2SdyjO.js similarity index 90% rename from previews/PR439/assets/app.lifmFEhC.js rename to previews/PR439/assets/app.fg2SdyjO.js index f84339e0..d0cb4662 100644 --- a/previews/PR439/assets/app.lifmFEhC.js +++ b/previews/PR439/assets/app.fg2SdyjO.js @@ -1 +1 @@ -import{R as p}from"./chunks/theme.BTHK6YKI.js";import{R as o,a6 as u,a7 as c,a8 as l,a9 as f,aa as d,ab as m,ac as h,ad as g,ae as A,af as v,d as P,u as R,v as w,s as y,ag as C,ah as b,ai as E,a5 as S}from"./chunks/framework.DsPJznl_.js";function i(e){if(e.extends){const a=i(e.extends);return{...a,...e,async enhanceApp(t){a.enhanceApp&&await a.enhanceApp(t),e.enhanceApp&&await e.enhanceApp(t)}}}return e}const s=i(p),T=P({name:"VitePressApp",setup(){const{site:e,lang:a,dir:t}=R();return w(()=>{y(()=>{document.documentElement.lang=a.value,document.documentElement.dir=t.value})}),e.value.router.prefetchLinks&&C(),b(),E(),s.setup&&s.setup(),()=>S(s.Layout)}});async function D(){globalThis.__VITEPRESS__=!0;const e=j(),a=_();a.provide(c,e);const t=l(e.route);return a.provide(f,t),a.component("Content",d),a.component("ClientOnly",m),Object.defineProperties(a.config.globalProperties,{$frontmatter:{get(){return t.frontmatter.value}},$params:{get(){return t.page.value.params}}}),s.enhanceApp&&await s.enhanceApp({app:a,router:e,siteData:h}),{app:a,router:e,data:t}}function _(){return g(T)}function j(){let e=o,a;return A(t=>{let n=v(t),r=null;return n&&(e&&(a=n),(e||a===n)&&(n=n.replace(/\.js$/,".lean.js")),r=import(n)),o&&(e=!1),r},s.NotFound)}o&&D().then(({app:e,router:a,data:t})=>{a.go().then(()=>{u(a.route,t.site),e.mount("#app")})});export{D as createApp}; +import{R as p}from"./chunks/theme.7rY793H8.js";import{R as o,a6 as u,a7 as c,a8 as l,a9 as f,aa as d,ab as m,ac as h,ad as g,ae as A,af as v,d as P,u as R,v as w,s as y,ag as C,ah as b,ai as E,a5 as S}from"./chunks/framework.eQVMtpgY.js";function i(e){if(e.extends){const a=i(e.extends);return{...a,...e,async enhanceApp(t){a.enhanceApp&&await a.enhanceApp(t),e.enhanceApp&&await e.enhanceApp(t)}}}return e}const s=i(p),T=P({name:"VitePressApp",setup(){const{site:e,lang:a,dir:t}=R();return w(()=>{y(()=>{document.documentElement.lang=a.value,document.documentElement.dir=t.value})}),e.value.router.prefetchLinks&&C(),b(),E(),s.setup&&s.setup(),()=>S(s.Layout)}});async function D(){globalThis.__VITEPRESS__=!0;const e=j(),a=_();a.provide(c,e);const t=l(e.route);return a.provide(f,t),a.component("Content",d),a.component("ClientOnly",m),Object.defineProperties(a.config.globalProperties,{$frontmatter:{get(){return t.frontmatter.value}},$params:{get(){return t.page.value.params}}}),s.enhanceApp&&await s.enhanceApp({app:a,router:e,siteData:h}),{app:a,router:e,data:t}}function _(){return g(T)}function j(){let e=o,a;return A(t=>{let n=v(t),r=null;return n&&(e&&(a=n),(e||a===n)&&(n=n.replace(/\.js$/,".lean.js")),r=import(n)),o&&(e=!1),r},s.NotFound)}o&&D().then(({app:e,router:a,data:t})=>{a.go().then(()=>{u(a.route,t.site),e.mount("#app")})});export{D as createApp}; diff --git a/previews/PR439/assets/chunks/@localSearchIndexroot.BKiQu1HE.js b/previews/PR439/assets/chunks/@localSearchIndexroot.BKiQu1HE.js new file mode 100644 index 00000000..f13d92af --- /dev/null +++ b/previews/PR439/assets/chunks/@localSearchIndexroot.BKiQu1HE.js @@ -0,0 +1 @@ +const e='{"documentCount":95,"nextId":95,"documentIds":{"0":"/YAXArrays.jl/previews/PR439/UserGuide/cache.html#Caching-YAXArrays","1":"/YAXArrays.jl/previews/PR439/UserGuide/chunk.html#Chunk-YAXArrays","2":"/YAXArrays.jl/previews/PR439/UserGuide/chunk.html#Chunking-YAXArrays","3":"/YAXArrays.jl/previews/PR439/UserGuide/chunk.html#Chunking-Datasets","4":"/YAXArrays.jl/previews/PR439/UserGuide/chunk.html#Set-Chunks-by-Axis","5":"/YAXArrays.jl/previews/PR439/UserGuide/chunk.html#Set-chunking-by-Variable","6":"/YAXArrays.jl/previews/PR439/UserGuide/chunk.html#Set-chunking-for-all-variables","7":"/YAXArrays.jl/previews/PR439/UserGuide/combine.html#Combine-YAXArrays","8":"/YAXArrays.jl/previews/PR439/UserGuide/combine.html#cat-along-an-existing-dimension","9":"/YAXArrays.jl/previews/PR439/UserGuide/combine.html#concatenatecubes-to-a-new-dimension","10":"/YAXArrays.jl/previews/PR439/UserGuide/compute.html#Compute-YAXArrays","11":"/YAXArrays.jl/previews/PR439/UserGuide/compute.html#Modify-elements-of-a-YAXArray","12":"/YAXArrays.jl/previews/PR439/UserGuide/compute.html#arithmetics","13":"/YAXArrays.jl/previews/PR439/UserGuide/compute.html#map","14":"/YAXArrays.jl/previews/PR439/UserGuide/compute.html#mapslices","15":"/YAXArrays.jl/previews/PR439/UserGuide/compute.html#mapCube","16":"/YAXArrays.jl/previews/PR439/UserGuide/compute.html#Operations-over-several-YAXArrays","17":"/YAXArrays.jl/previews/PR439/UserGuide/compute.html#Creating-a-vector-array","18":"/YAXArrays.jl/previews/PR439/UserGuide/compute.html#Distributed-Computation","19":"/YAXArrays.jl/previews/PR439/UserGuide/convert.html#Convert-YAXArrays","20":"/YAXArrays.jl/previews/PR439/UserGuide/convert.html#Convert-Base.Array","21":"/YAXArrays.jl/previews/PR439/UserGuide/convert.html#Convert-Raster","22":"/YAXArrays.jl/previews/PR439/UserGuide/convert.html#Convert-DimArray","23":"/YAXArrays.jl/previews/PR439/UserGuide/create.html#Create-YAXArrays-and-Datasets","24":"/YAXArrays.jl/previews/PR439/UserGuide/create.html#Create-a-YAXArray","25":"/YAXArrays.jl/previews/PR439/UserGuide/create.html#Create-a-Dataset","26":"/YAXArrays.jl/previews/PR439/UserGuide/faq.html#Frequently-Asked-Questions-(FAQ)","27":"/YAXArrays.jl/previews/PR439/UserGuide/faq.html#Extract-the-axes-names-from-a-Cube","28":"/YAXArrays.jl/previews/PR439/UserGuide/faq.html#rebuild","29":"/YAXArrays.jl/previews/PR439/UserGuide/faq.html#Obtain-values-from-axes-and-data-from-the-cube","30":"/YAXArrays.jl/previews/PR439/UserGuide/faq.html#How-do-I-concatenate-cubes","31":"/YAXArrays.jl/previews/PR439/UserGuide/faq.html#How-do-I-subset-a-YAXArray-(-Cube-)-or-Dataset?","32":"/YAXArrays.jl/previews/PR439/UserGuide/faq.html#Subsetting-a-YAXArray","33":"/YAXArrays.jl/previews/PR439/UserGuide/faq.html#Subsetting-a-Dataset","34":"/YAXArrays.jl/previews/PR439/UserGuide/faq.html#Subsetting-a-Dataset-whose-variables-share-all-their-dimensions","35":"/YAXArrays.jl/previews/PR439/UserGuide/faq.html#Subsetting-a-Dataset-whose-variables-share-some-but-not-all-of-their-dimensions","36":"/YAXArrays.jl/previews/PR439/UserGuide/faq.html#How-do-I-apply-map-algebra?","37":"/YAXArrays.jl/previews/PR439/UserGuide/faq.html#How-do-I-use-the-CubeTable-function?","38":"/YAXArrays.jl/previews/PR439/UserGuide/faq.html#How-do-I-assign-variable-names-to-YAXArrays-in-a-Dataset","39":"/YAXArrays.jl/previews/PR439/UserGuide/faq.html#One-variable-name","40":"/YAXArrays.jl/previews/PR439/UserGuide/faq.html#Multiple-variable-names","41":"/YAXArrays.jl/previews/PR439/UserGuide/faq.html#Ho-do-I-construct-a-Dataset-from-a-TimeArray","42":"/YAXArrays.jl/previews/PR439/UserGuide/read.html#Read-YAXArrays-and-Datasets","43":"/YAXArrays.jl/previews/PR439/UserGuide/read.html#Read-Zarr","44":"/YAXArrays.jl/previews/PR439/UserGuide/read.html#Read-NetCDF","45":"/YAXArrays.jl/previews/PR439/UserGuide/read.html#Read-GDAL-(GeoTIFF,-GeoJSON)","46":"/YAXArrays.jl/previews/PR439/UserGuide/group.html#Group-YAXArrays-and-Datasets","47":"/YAXArrays.jl/previews/PR439/UserGuide/group.html#Seasonal-Averages-from-Time-Series-of-Monthly-Means","48":"/YAXArrays.jl/previews/PR439/UserGuide/group.html#Download-the-data","49":"/YAXArrays.jl/previews/PR439/UserGuide/group.html#GroupBy:-seasons","50":"/YAXArrays.jl/previews/PR439/UserGuide/group.html#dropdims","51":"/YAXArrays.jl/previews/PR439/UserGuide/group.html#seasons","52":"/YAXArrays.jl/previews/PR439/UserGuide/group.html#GroupBy:-weight","53":"/YAXArrays.jl/previews/PR439/UserGuide/group.html#weights","54":"/YAXArrays.jl/previews/PR439/UserGuide/group.html#weighted-seasons","55":"/YAXArrays.jl/previews/PR439/UserGuide/select.html#Select-YAXArrays-and-Datasets","56":"/YAXArrays.jl/previews/PR439/UserGuide/select.html#Select-a-YAXArray","57":"/YAXArrays.jl/previews/PR439/UserGuide/select.html#Select-elements","58":"/YAXArrays.jl/previews/PR439/UserGuide/select.html#Select-ranges","59":"/YAXArrays.jl/previews/PR439/UserGuide/select.html#Closed-and-open-intervals","60":"/YAXArrays.jl/previews/PR439/UserGuide/select.html#Get-a-dimension","61":"/YAXArrays.jl/previews/PR439/UserGuide/types.html#types","62":"/YAXArrays.jl/previews/PR439/UserGuide/types.html#yaxarray","63":"/YAXArrays.jl/previews/PR439/UserGuide/types.html#dataset","64":"/YAXArrays.jl/previews/PR439/UserGuide/types.html#(Data)-Cube","65":"/YAXArrays.jl/previews/PR439/UserGuide/types.html#dimension","66":"/YAXArrays.jl/previews/PR439/UserGuide/write.html#Write-YAXArrays-and-Datasets","67":"/YAXArrays.jl/previews/PR439/UserGuide/write.html#Write-Zarr","68":"/YAXArrays.jl/previews/PR439/UserGuide/write.html#Write-NetCDF","69":"/YAXArrays.jl/previews/PR439/UserGuide/write.html#Overwrite-a-Dataset","70":"/YAXArrays.jl/previews/PR439/UserGuide/write.html#Append-to-a-Dataset","71":"/YAXArrays.jl/previews/PR439/UserGuide/write.html#Save-Skeleton","72":"/YAXArrays.jl/previews/PR439/UserGuide/write.html#Update-values-of-dataset","73":"/YAXArrays.jl/previews/PR439/api.html#API-Reference","74":"/YAXArrays.jl/previews/PR439/api.html#Public-API","75":"/YAXArrays.jl/previews/PR439/api.html#Internal-API","76":"/YAXArrays.jl/previews/PR439/development/contribute.html#Contribute-to-YAXArrays.jl","77":"/YAXArrays.jl/previews/PR439/development/contribute.html#Contribute-to-Documentation","78":"/YAXArrays.jl/previews/PR439/development/contribute.html#Build-docs-locally","79":"/YAXArrays.jl/previews/PR439/get_started.html#Getting-Started","80":"/YAXArrays.jl/previews/PR439/get_started.html#installation","81":"/YAXArrays.jl/previews/PR439/get_started.html#quickstart","82":"/YAXArrays.jl/previews/PR439/get_started.html#updates","83":"/YAXArrays.jl/previews/PR439/tutorials/mean_seasonal_cycle.html#Mean-Seasonal-Cycle-for-a-single-pixel","84":"/YAXArrays.jl/previews/PR439/tutorials/mean_seasonal_cycle.html#Define-the-cube","85":"/YAXArrays.jl/previews/PR439/tutorials/mean_seasonal_cycle.html#Plot-results:-mean-seasonal-cycle","86":"/YAXArrays.jl/previews/PR439/tutorials/other_tutorials.html#Other-tutorials","87":"/YAXArrays.jl/previews/PR439/tutorials/other_tutorials.html#General-overview-of-the-functionality-of-YAXArrays","88":"/YAXArrays.jl/previews/PR439/tutorials/other_tutorials.html#Table-style-iteration-over-YAXArrays","89":"/YAXArrays.jl/previews/PR439/tutorials/other_tutorials.html#Combining-multiple-tiff-files-into-a-zarr-based-datacube","90":"/YAXArrays.jl/previews/PR439/tutorials/plottingmaps.html#Plotting-maps","91":"/YAXArrays.jl/previews/PR439/tutorials/plottingmaps.html#Heatmap-plot","92":"/YAXArrays.jl/previews/PR439/tutorials/plottingmaps.html#Wintri-Projection","93":"/YAXArrays.jl/previews/PR439/tutorials/plottingmaps.html#Moll-projection","94":"/YAXArrays.jl/previews/PR439/tutorials/plottingmaps.html#3D-sphere-plot"},"fieldIds":{"title":0,"titles":1,"text":2},"fieldLength":{"0":[2,1,86],"1":[2,1,58],"2":[2,2,57],"3":[2,2,9],"4":[4,4,76],"5":[4,4,76],"6":[5,4,81],"7":[2,1,31],"8":[5,2,80],"9":[5,2,89],"10":[2,1,117],"11":[5,2,30],"12":[1,2,70],"13":[1,2,118],"14":[1,2,88],"15":[1,2,22],"16":[4,3,210],"17":[4,3,248],"18":[2,2,138],"19":[2,1,52],"20":[3,2,84],"21":[2,2,116],"22":[2,2,120],"23":[4,1,14],"24":[3,4,106],"25":[3,4,45],"26":[5,1,19],"27":[7,5,75],"28":[1,11,90],"29":[8,5,75],"30":[5,5,87],"31":[10,5,33],"32":[3,14,144],"33":[3,14,18],"34":[9,14,69],"35":[13,14,155],"36":[7,5,112],"37":[8,5,169],"38":[11,5,1],"39":[3,15,24],"40":[3,15,59],"41":[8,5,140],"42":[4,1,14],"43":[2,4,188],"44":[2,4,206],"45":[5,4,90],"46":[4,1,30],"47":[8,4,35],"48":[3,4,67],"49":[2,4,136],"50":[1,6,102],"51":[1,6,49],"52":[2,4,107],"53":[1,6,87],"54":[2,6,349],"55":[4,1,165],"56":[3,4,106],"57":[2,4,117],"58":[2,4,131],"59":[4,4,144],"60":[3,4,73],"61":[1,1,16],"62":[1,1,113],"63":[1,1,78],"64":[3,1,70],"65":[1,1,32],"66":[4,1,146],"67":[2,4,19],"68":[2,4,20],"69":[3,4,77],"70":[4,4,157],"71":[2,4,154],"72":[4,4,93],"73":[2,1,10],"74":[2,2,554],"75":[2,2,463],"76":[4,1,15],"77":[3,4,40],"78":[3,5,75],"79":[2,1,1],"80":[1,2,34],"81":[1,2,186],"82":[1,2,49],"83":[7,1,73],"84":[3,7,132],"85":[5,7,48],"86":[2,1,49],"87":[6,2,12],"88":[5,2,38],"89":[9,2,1],"90":[2,1,136],"91":[2,2,21],"92":[2,1,46],"93":[2,2,33],"94":[3,2,57]},"averageFieldLength":[3.463157894736843,3.7157894736842105,91.94736842105264],"storedFields":{"0":{"title":"Caching YAXArrays","titles":[]},"1":{"title":"Chunk YAXArrays","titles":[]},"2":{"title":"Chunking YAXArrays","titles":["Chunk YAXArrays"]},"3":{"title":"Chunking Datasets","titles":["Chunk YAXArrays"]},"4":{"title":"Set Chunks by Axis","titles":["Chunk YAXArrays","Chunking Datasets"]},"5":{"title":"Set chunking by Variable","titles":["Chunk YAXArrays","Chunking Datasets"]},"6":{"title":"Set chunking for all variables","titles":["Chunk YAXArrays","Chunking Datasets"]},"7":{"title":"Combine YAXArrays","titles":[]},"8":{"title":"cat along an existing dimension","titles":["Combine YAXArrays"]},"9":{"title":"concatenatecubes to a new dimension","titles":["Combine YAXArrays"]},"10":{"title":"Compute YAXArrays","titles":[]},"11":{"title":"Modify elements of a YAXArray","titles":["Compute YAXArrays"]},"12":{"title":"Arithmetics","titles":["Compute YAXArrays"]},"13":{"title":"map","titles":["Compute YAXArrays"]},"14":{"title":"mapslices","titles":["Compute YAXArrays"]},"15":{"title":"mapCube","titles":["Compute YAXArrays"]},"16":{"title":"Operations over several YAXArrays","titles":["Compute YAXArrays","mapCube"]},"17":{"title":"Creating a vector array","titles":["Compute YAXArrays","mapCube"]},"18":{"title":"Distributed Computation","titles":["Compute YAXArrays"]},"19":{"title":"Convert YAXArrays","titles":[]},"20":{"title":"Convert Base.Array","titles":["Convert YAXArrays"]},"21":{"title":"Convert Raster","titles":["Convert YAXArrays"]},"22":{"title":"Convert DimArray","titles":["Convert YAXArrays"]},"23":{"title":"Create YAXArrays and Datasets","titles":[]},"24":{"title":"Create a YAXArray","titles":["Create YAXArrays and Datasets"]},"25":{"title":"Create a Dataset","titles":["Create YAXArrays and Datasets"]},"26":{"title":"Frequently Asked Questions (FAQ)","titles":[]},"27":{"title":"Extract the axes names from a Cube","titles":["Frequently Asked Questions (FAQ)"]},"28":{"title":"rebuild","titles":["Frequently Asked Questions (FAQ)","Extract the axes names from a Cube"]},"29":{"title":"Obtain values from axes and data from the cube","titles":["Frequently Asked Questions (FAQ)"]},"30":{"title":"How do I concatenate cubes","titles":["Frequently Asked Questions (FAQ)"]},"31":{"title":"How do I subset a YAXArray ( Cube ) or Dataset?","titles":["Frequently Asked Questions (FAQ)"]},"32":{"title":"Subsetting a YAXArray","titles":["Frequently Asked Questions (FAQ)","How do I subset a YAXArray ( Cube ) or Dataset?"]},"33":{"title":"Subsetting a Dataset","titles":["Frequently Asked Questions (FAQ)","How do I subset a YAXArray ( Cube ) or Dataset?"]},"34":{"title":"Subsetting a Dataset whose variables share all their dimensions","titles":["Frequently Asked Questions (FAQ)","How do I subset a YAXArray ( Cube ) or Dataset?","Subsetting a Dataset"]},"35":{"title":"Subsetting a Dataset whose variables share some but not all of their dimensions","titles":["Frequently Asked Questions (FAQ)","How do I subset a YAXArray ( Cube ) or Dataset?","Subsetting a Dataset"]},"36":{"title":"How do I apply map algebra?","titles":["Frequently Asked Questions (FAQ)"]},"37":{"title":"How do I use the CubeTable function?","titles":["Frequently Asked Questions (FAQ)"]},"38":{"title":"How do I assign variable names to YAXArrays in a Dataset","titles":["Frequently Asked Questions (FAQ)"]},"39":{"title":"One variable name","titles":["Frequently Asked Questions (FAQ)","How do I assign variable names to YAXArrays in a Dataset"]},"40":{"title":"Multiple variable names","titles":["Frequently Asked Questions (FAQ)","How do I assign variable names to YAXArrays in a Dataset"]},"41":{"title":"Ho do I construct a Dataset from a TimeArray","titles":["Frequently Asked Questions (FAQ)"]},"42":{"title":"Read YAXArrays and Datasets","titles":[]},"43":{"title":"Read Zarr","titles":["Read YAXArrays and Datasets"]},"44":{"title":"Read NetCDF","titles":["Read YAXArrays and Datasets"]},"45":{"title":"Read GDAL (GeoTIFF, GeoJSON)","titles":["Read YAXArrays and Datasets"]},"46":{"title":"Group YAXArrays and Datasets","titles":[]},"47":{"title":"Seasonal Averages from Time Series of Monthly Means","titles":["Group YAXArrays and Datasets"]},"48":{"title":"Download the data","titles":["Group YAXArrays and Datasets"]},"49":{"title":"GroupBy: seasons","titles":["Group YAXArrays and Datasets"]},"50":{"title":"dropdims","titles":["Group YAXArrays and Datasets","GroupBy: seasons"]},"51":{"title":"seasons","titles":["Group YAXArrays and Datasets","GroupBy: seasons"]},"52":{"title":"GroupBy: weight","titles":["Group YAXArrays and Datasets"]},"53":{"title":"weights","titles":["Group YAXArrays and Datasets","GroupBy: weight"]},"54":{"title":"weighted seasons","titles":["Group YAXArrays and Datasets","GroupBy: weight"]},"55":{"title":"Select YAXArrays and Datasets","titles":[]},"56":{"title":"Select a YAXArray","titles":["Select YAXArrays and Datasets"]},"57":{"title":"Select elements","titles":["Select YAXArrays and Datasets"]},"58":{"title":"Select ranges","titles":["Select YAXArrays and Datasets"]},"59":{"title":"Closed and open intervals","titles":["Select YAXArrays and Datasets"]},"60":{"title":"Get a dimension","titles":["Select YAXArrays and Datasets"]},"61":{"title":"Types","titles":[]},"62":{"title":"YAXArray","titles":["Types"]},"63":{"title":"Dataset","titles":["Types"]},"64":{"title":"(Data) Cube","titles":["Types"]},"65":{"title":"Dimension","titles":["Types"]},"66":{"title":"Write YAXArrays and Datasets","titles":[]},"67":{"title":"Write Zarr","titles":["Write YAXArrays and Datasets"]},"68":{"title":"Write NetCDF","titles":["Write YAXArrays and Datasets"]},"69":{"title":"Overwrite a Dataset","titles":["Write YAXArrays and Datasets"]},"70":{"title":"Append to a Dataset","titles":["Write YAXArrays and Datasets"]},"71":{"title":"Save Skeleton","titles":["Write YAXArrays and Datasets"]},"72":{"title":"Update values of dataset","titles":["Write YAXArrays and Datasets"]},"73":{"title":"API Reference","titles":[]},"74":{"title":"Public API","titles":["API Reference"]},"75":{"title":"Internal API","titles":["API Reference"]},"76":{"title":"Contribute to YAXArrays.jl","titles":[]},"77":{"title":"Contribute to Documentation","titles":["Contribute to YAXArrays.jl"]},"78":{"title":"Build docs locally","titles":["Contribute to YAXArrays.jl","Contribute to Documentation"]},"79":{"title":"Getting Started","titles":[]},"80":{"title":"Installation","titles":["Getting Started"]},"81":{"title":"Quickstart","titles":["Getting Started"]},"82":{"title":"Updates","titles":["Getting Started"]},"83":{"title":"Mean Seasonal Cycle for a single pixel","titles":[]},"84":{"title":"Define the cube","titles":["Mean Seasonal Cycle for a single pixel"]},"85":{"title":"Plot results: mean seasonal cycle","titles":["Mean Seasonal Cycle for a single pixel"]},"86":{"title":"Other tutorials","titles":[]},"87":{"title":"General overview of the functionality of YAXArrays","titles":["Other tutorials"]},"88":{"title":"Table-style iteration over YAXArrays","titles":["Other tutorials"]},"89":{"title":"Combining multiple tiff files into a zarr based datacube","titles":["Other tutorials"]},"90":{"title":"Plotting maps","titles":[]},"91":{"title":"Heatmap plot","titles":["Plotting maps"]},"92":{"title":"Wintri Projection","titles":[]},"93":{"title":"Moll projection","titles":["Wintri Projection"]},"94":{"title":"3D sphere plot","titles":["Wintri Projection"]}},"dirtCount":0,"index":[["δlon",{"2":{"92":1}}],["`diskarrays",{"2":{"75":1}}],["`ds`",{"2":{"74":1}}],["`ordereddict`",{"2":{"74":1}}],["`fun`",{"2":{"74":1}}],["`a",{"2":{"32":1}}],["π",{"2":{"36":2,"83":1,"85":1}}],[">var",{"2":{"84":1}}],[">dates",{"2":{"84":1}}],[">month",{"2":{"74":1}}],[">abs",{"2":{"74":1}}],[">=",{"2":{"35":4}}],[">",{"2":{"35":2,"36":2,"84":1}}],["└──────────────────────────────────────────────────────────┘",{"2":{"32":1}}],["└─────────────────────────────────────────────────────────────┘",{"2":{"21":2}}],["└──────────────────────────────────────────────────────────────────┘",{"2":{"22":2}}],["└──────────────────────────────────────────────────────────────────────┘",{"2":{"24":1,"28":1}}],["└────────────────────────────────────────────────────────────────────────────────┘",{"2":{"57":1}}],["└──────────────────────────────────────────────────────────────────────────────┘",{"2":{"10":1,"12":1,"13":1,"14":2,"16":5,"17":4,"24":1,"27":1,"28":2,"29":1,"30":1,"32":4,"36":3,"37":3,"43":1,"44":1,"49":2,"50":1,"52":3,"53":2,"54":3,"56":2,"57":2,"58":3,"59":5,"71":1,"81":1,"84":1}}],["└───────────────────────────────────────────────────────────────────────┘",{"2":{"8":1}}],["└─────────────────────────────────────────────────────────────────────┘",{"2":{"20":1,"81":1}}],["└────────────────────────────────────────────────────────────────┘",{"2":{"9":1}}],["⬔",{"2":{"30":1,"81":1}}],["quickstart",{"0":{"81":1}}],["query",{"2":{"55":1}}],["questions",{"0":{"26":1},"1":{"27":1,"28":1,"29":1,"30":1,"31":1,"32":1,"33":1,"34":1,"35":1,"36":1,"37":1,"38":1,"39":1,"40":1,"41":1}}],["quot",{"2":{"16":2,"37":2,"69":2,"71":4,"74":16,"75":12}}],["j",{"2":{"54":8}}],["jan",{"2":{"49":4,"50":2,"51":1,"52":4,"53":4,"54":6}}],["joinname",{"2":{"74":1}}],["joinname=",{"2":{"74":1}}],["joe",{"2":{"47":1,"54":1}}],["journal",{"2":{"44":1,"55":1,"66":1,"70":1}}],["jj+1",{"2":{"44":1,"55":1,"66":1,"70":1}}],["jj",{"2":{"44":1,"55":1,"66":1,"70":1}}],["jl",{"0":{"76":1},"1":{"77":1,"78":1},"2":{"21":1,"22":1,"37":1,"41":2,"48":1,"54":1,"62":1,"65":1,"76":1,"78":2,"80":1,"81":2,"82":3,"88":1}}],["jul",{"2":{"49":4,"50":2,"51":1,"52":4,"53":4,"54":6}}],["juliaδlon",{"2":{"92":1}}],["juliaglmakie",{"2":{"91":1}}],["juliagetloopchunks",{"2":{"75":1}}],["juliagetouttype",{"2":{"75":1}}],["juliagetoutaxis",{"2":{"75":1}}],["juliaget",{"2":{"75":1}}],["juliagetaxis",{"2":{"74":1}}],["juliagettarrayaxes",{"2":{"41":1}}],["juliagen",{"2":{"16":1}}],["juliax",{"2":{"83":1}}],["juliapkg>",{"2":{"80":1,"82":1}}],["juliapermuteloopaxes",{"2":{"75":1}}],["juliaoptifunc",{"2":{"75":1}}],["juliaoutdims",{"2":{"74":1}}],["juliaoffset",{"2":{"13":1}}],["juliaindims",{"2":{"74":1}}],["juliaimport",{"2":{"14":1,"80":1}}],["juliacopydata",{"2":{"75":1}}],["juliacollect",{"2":{"29":1,"60":1}}],["juliaclean",{"2":{"75":1}}],["juliacube",{"2":{"74":1}}],["juliacubefittable",{"2":{"74":1}}],["juliacubetable",{"2":{"74":1}}],["juliacaxes",{"2":{"74":1}}],["juliasavecube",{"2":{"74":1}}],["juliasavedataset",{"2":{"67":1,"68":1,"69":1}}],["juliasetchunks",{"2":{"74":1,"75":1}}],["juliaseasons",{"2":{"51":1}}],["julialon",{"2":{"90":1}}],["julialookup",{"2":{"60":1}}],["julialatitudes",{"2":{"35":1}}],["juliawith",{"2":{"54":1}}],["julia>",{"2":{"54":1,"78":1,"84":1}}],["juliaurl",{"2":{"48":1}}],["juliausing",{"2":{"0":1,"2":1,"4":1,"5":1,"6":1,"8":1,"9":1,"10":1,"16":1,"17":1,"18":2,"20":1,"21":1,"22":1,"24":2,"27":1,"28":1,"30":1,"32":1,"34":1,"35":1,"37":2,"41":1,"43":1,"44":1,"45":1,"46":1,"54":1,"55":1,"57":1,"59":1,"66":1,"67":1,"68":1,"71":1,"81":2,"83":1,"90":1,"94":1}}],["juliakeylist",{"2":{"40":1}}],["juliaylonlat",{"2":{"32":1}}],["juliaytime3",{"2":{"32":1}}],["juliaytime2",{"2":{"32":1}}],["juliaytime",{"2":{"32":1}}],["juliay",{"2":{"32":1}}],["juliayaxcolumn",{"2":{"75":1}}],["juliayaxarray",{"2":{"74":1}}],["juliayax",{"2":{"0":1,"41":2}}],["juliatos",{"2":{"56":2,"57":2,"58":3,"59":1,"60":1}}],["juliatempo",{"2":{"52":1}}],["juliat",{"2":{"32":1,"37":1,"83":1}}],["juliatspan",{"2":{"16":1}}],["juliadataset",{"2":{"74":1}}],["juliadata3",{"2":{"25":1}}],["juliads2",{"2":{"70":1}}],["juliads",{"2":{"34":1,"35":1,"43":1,"44":1,"71":2,"72":3}}],["juliadim",{"2":{"22":1}}],["juliadimarray",{"2":{"17":1}}],["juliareadcubedata",{"2":{"74":1}}],["juliaregions",{"2":{"17":2}}],["juliar",{"2":{"71":1}}],["juliaras2",{"2":{"21":1}}],["juliamutable",{"2":{"75":1}}],["juliamatch",{"2":{"75":1}}],["juliamapcube",{"2":{"74":2}}],["juliamapslices",{"2":{"14":1,"18":1}}],["juliamovingwindow",{"2":{"74":1}}],["juliamean",{"2":{"54":1}}],["juliam2",{"2":{"20":1}}],["julia",{"2":{"19":1,"75":1,"78":1,"80":2,"82":2}}],["juliavector",{"2":{"17":1}}],["juliajulia>",{"2":{"16":5,"27":3,"28":2,"29":1,"30":1,"36":3,"37":3,"39":1,"40":1,"41":2,"49":2,"50":1,"52":2,"53":2,"54":3,"59":4,"70":1,"71":1,"84":2,"90":3}}],["juliaall",{"2":{"71":1}}],["juliaaxs",{"2":{"48":1}}],["juliaaxes",{"2":{"32":1}}],["juliaa2",{"2":{"12":2,"24":2,"81":1}}],["juliaa",{"2":{"2":1,"11":3}}],["juliafig",{"2":{"83":1,"85":1,"92":1,"93":1}}],["juliafindaxis",{"2":{"75":1}}],["juliafittable",{"2":{"74":2}}],["juliafunction",{"2":{"16":1,"49":1,"74":1,"84":1}}],["juliaf",{"2":{"2":1,"4":1,"5":1,"6":1,"16":1}}],["jun",{"2":{"49":4,"50":2,"51":1,"52":4,"53":4,"54":6}}],["jussieu",{"2":{"44":1,"55":1,"66":1,"70":1}}],["just",{"2":{"17":1,"62":1,"64":1,"74":1,"75":2}}],["∘",{"2":{"18":1}}],["|>",{"2":{"17":2}}],["⋱",{"2":{"17":1}}],["⋮",{"2":{"17":2,"60":1,"84":1}}],["83",{"2":{"60":1}}],["86",{"2":{"60":1}}],["86457",{"2":{"54":1}}],["865716",{"2":{"22":1}}],["87108",{"2":{"72":2}}],["877659",{"2":{"72":2}}],["87705",{"2":{"54":1}}],["87",{"2":{"60":1}}],["874754",{"2":{"17":1}}],["885098",{"2":{"72":2}}],["88",{"2":{"30":1,"43":4,"60":1,"81":1,"90":2}}],["883881",{"2":{"21":1}}],["81554",{"2":{"72":2}}],["81",{"2":{"24":1,"60":1}}],["82",{"2":{"60":1}}],["82421875",{"2":{"45":2}}],["826902",{"2":{"21":1}}],["829992",{"2":{"21":1}}],["823992",{"2":{"17":1}}],["8984",{"2":{"54":1}}],["89237",{"2":{"54":1}}],["8901",{"2":{"45":1}}],["89",{"2":{"43":4,"44":2,"45":1,"55":1,"56":2,"57":1,"58":1,"59":5,"60":1,"66":1,"70":1,"90":2}}],["896784",{"2":{"21":1}}],["896575",{"2":{"20":1}}],["893922",{"2":{"17":1}}],["85",{"2":{"60":1,"92":1,"93":1}}],["85091",{"2":{"72":2}}],["850",{"2":{"54":1}}],["85ºn",{"2":{"35":1}}],["853685",{"2":{"20":1}}],["85714",{"2":{"17":1}}],["849854",{"2":{"81":1}}],["84",{"2":{"45":2,"60":1}}],["845502",{"2":{"20":1}}],["845191",{"2":{"17":1}}],["841682",{"2":{"17":1}}],["8",{"2":{"16":12,"17":2,"29":1,"32":1,"44":2,"55":1,"56":2,"66":1,"70":1,"84":1}}],["80759",{"2":{"54":1}}],["800",{"2":{"28":3,"29":1,"32":1}}],["803933",{"2":{"20":1}}],["80",{"2":{"16":1,"35":2}}],["v",{"2":{"44":1,"55":1,"66":1,"70":1}}],["v1",{"2":{"44":2,"55":2,"66":2,"70":2,"80":1}}],["v20190710",{"2":{"43":1,"90":2}}],["vol",{"2":{"44":1,"55":1,"66":1,"70":1}}],["volume",{"2":{"41":4}}],["voilà",{"2":{"41":1}}],["video",{"2":{"86":1}}],["videos",{"2":{"86":1}}],["visualization",{"2":{"37":1}}],["vice",{"2":{"19":1}}],["view",{"2":{"17":1,"81":1}}],["verify",{"2":{"53":1,"72":1}}],["version",{"2":{"43":1,"44":1,"55":1,"66":1,"70":1,"82":2,"90":1}}],["versa",{"2":{"19":1}}],["very",{"2":{"13":1,"37":1,"62":1}}],["vector",{"0":{"17":1},"2":{"17":4,"29":1,"49":1,"51":1,"52":2,"53":3,"54":2,"60":1,"62":1,"74":2,"75":3}}],["val",{"2":{"29":2,"60":1}}],["vals",{"2":{"17":1}}],["value",{"2":{"12":1,"14":3,"16":2,"36":1,"44":1,"56":2,"57":3,"58":3,"59":5,"74":4,"75":1}}],["values=ds1",{"2":{"37":1}}],["values",{"0":{"29":1,"72":1},"2":{"9":1,"17":2,"23":1,"24":2,"27":2,"28":1,"29":1,"35":3,"37":4,"40":1,"41":2,"58":1,"60":2,"62":1,"63":1,"71":1,"72":3,"74":9,"81":1,"90":1}}],["vararg",{"2":{"75":2}}],["varoables",{"2":{"74":1}}],["variant",{"2":{"43":1,"90":1}}],["variable=at",{"2":{"81":1}}],["variable",{"0":{"5":1,"38":1,"39":1,"40":1},"1":{"39":1,"40":1},"2":{"5":1,"9":3,"35":3,"41":5,"43":1,"71":2,"74":4,"75":7,"81":3,"83":1,"84":1,"85":1,"90":1}}],["variables=at",{"2":{"36":2}}],["variables",{"0":{"6":1,"34":1,"35":1},"2":{"4":5,"5":4,"6":2,"9":2,"19":1,"25":1,"30":2,"33":1,"34":2,"35":11,"39":1,"40":4,"41":6,"43":4,"44":1,"45":1,"55":1,"63":1,"64":1,"66":1,"70":4,"71":1,"74":2,"90":4}}],["varlist",{"2":{"40":2}}],["var2=var2",{"2":{"34":1}}],["var2",{"2":{"30":2,"34":3,"36":1}}],["var1=var1",{"2":{"34":1}}],["var1",{"2":{"30":2,"34":3,"36":1}}],["var",{"2":{"9":2,"83":2,"84":2,"85":2}}],["uv",{"2":{"94":1}}],["u",{"2":{"84":1}}],["up",{"2":{"74":1}}],["updates",{"0":{"82":1}}],["updated",{"2":{"72":1}}],["update",{"0":{"72":1},"2":{"72":2,"74":1}}],["updating",{"2":{"46":1,"72":1}}],["ucar",{"2":{"44":1,"55":1,"63":1,"66":1}}],["url",{"2":{"43":1,"48":1}}],["urls",{"2":{"42":1}}],["unpermuted",{"2":{"75":2}}],["unpractical",{"2":{"48":1}}],["underlying",{"2":{"74":1,"75":1,"82":1}}],["unlike",{"2":{"64":1}}],["unweighted",{"2":{"49":1,"54":1}}],["unique",{"2":{"84":1}}],["unitrange",{"2":{"49":2,"50":2,"54":6}}],["unit",{"2":{"45":1}}],["units",{"2":{"43":1,"44":2,"56":4,"57":6,"58":6,"59":10}}],["unidata",{"2":{"44":1,"55":1,"63":1,"66":1}}],["union",{"2":{"14":2,"16":4,"17":1,"36":1,"37":2,"44":1,"56":2,"57":3,"58":3,"59":5,"71":2,"72":1}}],["unordered",{"2":{"41":4,"49":2,"50":1,"51":1,"52":2,"53":2,"54":3}}],["unnecessary",{"2":{"17":1}}],["unchanged",{"2":{"13":1}}],["usual",{"2":{"49":1}}],["usually",{"2":{"43":1,"62":2,"63":2}}],["us",{"2":{"17":1}}],["useable",{"2":{"74":1}}],["uses",{"2":{"37":1}}],["used",{"2":{"17":1,"18":1,"32":1,"55":1,"60":1,"61":1,"62":1,"65":1,"74":4,"75":3}}],["userguide",{"2":{"77":2}}],["users",{"2":{"75":1}}],["user",{"2":{"10":2,"12":1,"13":1,"18":1,"24":3,"25":1,"75":1}}],["use",{"0":{"37":1},"2":{"0":1,"8":1,"9":1,"10":4,"13":1,"18":2,"27":2,"32":1,"34":1,"35":1,"36":1,"37":2,"41":2,"46":1,"48":1,"50":1,"59":2,"64":1,"71":1,"74":3,"75":1,"86":1,"88":1,"90":2}}],["useful",{"2":{"0":1,"64":1}}],["using",{"2":{"0":1,"8":1,"9":1,"10":1,"16":2,"17":2,"18":7,"22":1,"27":1,"28":2,"30":1,"32":2,"34":2,"35":2,"36":1,"37":1,"41":1,"43":2,"44":3,"45":2,"46":4,"55":2,"57":3,"58":2,"66":2,"70":1,"71":3,"82":1,"83":2,"84":1,"90":3}}],["+proj=moll",{"2":{"93":1}}],["+",{"2":{"12":2,"13":1,"16":2,"83":1,"92":1}}],["984036",{"2":{"81":1}}],["986",{"2":{"54":1}}],["992659",{"2":{"81":1}}],["953079",{"2":{"81":1}}],["95",{"2":{"54":1}}],["959161",{"2":{"81":1}}],["959",{"2":{"54":1}}],["958344",{"2":{"20":1}}],["9362",{"2":{"54":1}}],["937264",{"2":{"81":1}}],["93743",{"2":{"54":1}}],["9375",{"2":{"43":2,"90":1}}],["904908",{"2":{"81":1}}],["900078",{"2":{"81":1}}],["90712",{"2":{"54":1}}],["90365",{"2":{"54":1}}],["90",{"2":{"35":8,"45":1,"59":5}}],["918768",{"2":{"72":2}}],["9192",{"2":{"54":1}}],["9122",{"2":{"45":1}}],["91",{"2":{"27":1,"35":6,"59":5}}],["926022",{"2":{"22":1}}],["979778",{"2":{"81":1}}],["971143",{"2":{"81":1}}],["974376",{"2":{"81":1}}],["974797",{"2":{"22":1}}],["97649",{"2":{"54":1}}],["97047",{"2":{"54":1}}],["970757",{"2":{"21":1}}],["97809",{"2":{"21":1}}],["947543",{"2":{"72":2}}],["94534",{"2":{"54":1}}],["9404",{"2":{"49":1,"50":1}}],["9432",{"2":{"49":1,"50":1}}],["948295",{"2":{"22":1}}],["948543",{"2":{"17":1}}],["9463880566583662",{"2":{"11":1}}],["9",{"2":{"16":14,"17":2,"29":1,"32":1,"52":4,"58":4,"75":1}}],["966025",{"2":{"81":1}}],["965556",{"2":{"81":1}}],["9682",{"2":{"49":1,"50":1}}],["968417",{"2":{"21":1}}],["96x71x19",{"2":{"44":1,"55":1,"66":1,"70":1}}],["96f0",{"2":{"44":1,"55":1,"66":1}}],["961764",{"2":{"20":1}}],["962957",{"2":{"20":1}}],["960",{"2":{"17":1}}],["96",{"2":{"8":1,"9":1,"57":2,"70":1}}],["kwargs",{"2":{"74":4,"75":2}}],["k",{"2":{"41":5,"43":1,"44":1,"56":2,"57":3,"58":3,"59":5}}],["keyword",{"2":{"70":1,"74":6,"75":2}}],["key",{"2":{"46":1,"74":1}}],["keyset",{"2":{"41":1}}],["keys",{"2":{"41":7,"74":1}}],["keylist",{"2":{"40":1}}],["keeps",{"2":{"13":1}}],["keep",{"2":{"0":1,"75":1}}],["kb",{"2":{"10":1,"12":1,"13":1,"14":1,"16":2,"17":1,"21":1,"24":2,"27":1,"30":1,"32":4,"36":3,"37":1,"57":1,"58":3,"59":5,"81":1,"84":1}}],["↗",{"2":{"10":1,"12":1,"13":1,"16":2,"17":1,"21":2,"24":3,"25":1,"27":3,"30":1,"32":5,"34":2,"36":3,"43":2,"44":2,"49":1,"55":1,"56":2,"58":3,"59":5,"66":1,"70":2,"71":2,"81":1,"90":1}}],["├─────────────────────────┴──────────────────────────",{"2":{"32":1}}],["├─────────────────────────┴─────────────────────────────────────",{"2":{"81":1}}],["├─────────────────────────┴──────────────────────────────────────────────",{"2":{"29":1,"37":1}}],["├─────────────────────────┴──────────────────────────────────────",{"2":{"28":1}}],["├─────────────────────────┴──────────────────────────────────",{"2":{"22":2}}],["├─────────────────────────┴────────────────────────────────",{"2":{"9":1}}],["├──────────────────────────┴────────────────────────────",{"2":{"21":1}}],["├──────────────────────────┴────────────────────────────────────",{"2":{"20":1}}],["├──────────────────────────┴─────────────────────────────────────────────",{"2":{"17":1,"32":1}}],["├────────────────────────────┴───────────────────────────────────────────",{"2":{"32":2}}],["├────────────────────────────┴──────────────────────────",{"2":{"21":1}}],["├─────────────────────────────┴──────────────────────────────────",{"2":{"24":1}}],["├─────────────────────────────┴──────────────────────────────────────────",{"2":{"16":1,"27":1}}],["├───────────────────────────────┴────────────────────────────────────────",{"2":{"53":1}}],["├──────────────────────────────────┴─────────────────────────────────────",{"2":{"84":1}}],["├────────────────────────────────────┴───────────────────────────────────",{"2":{"43":1}}],["├──────────────────────────────────────────┴─────────────────────────────",{"2":{"17":1,"37":1}}],["├─────────────────────────────────────────────┴─────────────────",{"2":{"57":1}}],["├───────────────────────────────────────────────┴────────────────────────",{"2":{"37":1,"58":1,"59":5}}],["├───────────────────────────────────────────────",{"2":{"32":1}}],["├────────────────────────────────────────────────",{"2":{"32":1}}],["├──────────────────────────────────────────────────┴─────────────────────",{"2":{"49":1}}],["├──────────────────────────────────────────────────",{"2":{"21":1}}],["├───────────────────────────────────────────────────",{"2":{"21":2}}],["├─────────────────────────────────────────────────────",{"2":{"9":1,"21":1}}],["├───────────────────────────────────────────────────────",{"2":{"22":1}}],["├────────────────────────────────────────────────────────",{"2":{"22":2}}],["├──────────────────────────────────────────────────────────",{"2":{"20":1,"81":1}}],["├───────────────────────────────────────────────────────────",{"2":{"20":1,"24":1,"28":1,"81":1}}],["├────────────────────────────────────────────────────────────",{"2":{"8":1,"24":1,"28":1}}],["├──────────────────────────────────────────────────────────────────",{"2":{"49":1,"52":1}}],["├───────────────────────────────────────────────────────────────────",{"2":{"10":1,"12":1,"13":1,"14":2,"16":5,"17":2,"24":1,"27":1,"28":2,"29":1,"30":1,"32":4,"36":3,"37":3,"43":1,"44":1,"52":1,"56":2,"57":2,"58":3,"59":5,"71":1,"81":1,"84":1}}],["├─────────────────────────────────────────────────────────────────────",{"2":{"57":1}}],["├─────────────────────────────────────────────────────────────────────┴",{"2":{"57":1}}],["├────────────────────────────────────────────────────────────────────────",{"2":{"49":1,"50":1,"52":1,"53":1,"54":3}}],["├────────────────────────────────────────────────────────────────────",{"2":{"10":1,"12":1,"13":1,"14":2,"16":5,"17":3,"24":1,"27":1,"28":2,"29":1,"30":1,"32":4,"36":3,"37":3,"43":1,"44":1,"49":2,"50":1,"52":3,"53":2,"54":3,"56":2,"57":2,"58":3,"59":5,"71":1,"81":1,"84":1}}],["├─────────────────────────────────────────────────────────────",{"2":{"8":1}}],["├──────────────────────────────────────────────────────",{"2":{"9":1}}],["├────────────────────────────────────────────────┴───────────────────────",{"2":{"14":1,"44":1,"52":1,"56":2,"57":2}}],["├──────────────────────────────────────────────┴─────────────────────────",{"2":{"16":2,"36":1,"58":2}}],["├───────────────────────────────────────────┴────────────────────────────",{"2":{"14":1,"71":1}}],["├────────────────────────────────┴───────────────────────────────────────",{"2":{"30":1,"81":1}}],["├────────────────────────────────┴────────────────────────────────",{"2":{"8":1}}],["├──────────────────────────────┴─────────────────────────────────────────",{"2":{"10":1,"12":1,"13":1,"16":2,"17":1,"24":1,"36":2,"52":1}}],["├───────────────────────────┴────────────────────────────────────────────",{"2":{"17":1,"28":2,"32":1}}],["╭────────────────────────────╮",{"2":{"21":1,"32":2}}],["╭─────────────────────────────╮",{"2":{"16":1,"24":1,"27":1}}],["╭───────────────────────────────╮",{"2":{"53":1}}],["╭──────────────────────────────────╮",{"2":{"84":1}}],["╭────────────────────────────────────╮",{"2":{"43":1}}],["╭──────────────────────────────────────────╮",{"2":{"17":1,"37":1}}],["╭─────────────────────────────────────────────╮",{"2":{"57":1}}],["╭──────────────────────────────────────────────────────────────────────────────╮",{"2":{"49":1,"50":1,"52":1,"53":1,"54":3}}],["╭──────────────────────────────────────────────────╮",{"2":{"49":1}}],["╭────────────────────────────────────────────────╮",{"2":{"14":1,"44":1,"52":1,"56":2,"57":2}}],["╭───────────────────────────────────────────────╮",{"2":{"37":1,"58":1,"59":5}}],["╭──────────────────────────────────────────────╮",{"2":{"16":2,"36":1,"58":2}}],["╭───────────────────────────────────────────╮",{"2":{"14":1,"71":1}}],["╭────────────────────────────────╮",{"2":{"8":1,"30":1,"81":1}}],["╭──────────────────────────────╮",{"2":{"10":1,"12":1,"13":1,"16":2,"17":1,"24":1,"36":2,"52":1}}],["╭───────────────────────────╮",{"2":{"17":1,"28":2,"32":1}}],["╭──────────────────────────╮",{"2":{"17":1,"20":1,"21":1,"32":1}}],["╭─────────────────────────╮",{"2":{"9":1,"22":2,"28":1,"29":1,"32":1,"37":1,"81":1}}],["0482229805286965",{"2":{"84":1}}],["04096655445135466",{"2":{"84":1}}],["04080351822051476",{"2":{"84":1}}],["040526623795688374",{"2":{"84":1}}],["0465",{"2":{"54":1}}],["0e8",{"2":{"74":1}}],["06478346429191269",{"2":{"84":1}}],["06243503155809218",{"2":{"84":1}}],["0625",{"2":{"43":2,"90":1}}],["0689529",{"2":{"81":1}}],["06755",{"2":{"54":1}}],["08087830435264516",{"2":{"84":1}}],["0857272",{"2":{"81":1}}],["08",{"2":{"52":1}}],["0982191",{"2":{"81":1}}],["09",{"2":{"52":1}}],["0940125",{"2":{"17":1}}],["0295015227104298",{"2":{"84":1}}],["02",{"2":{"43":1}}],["0230207",{"2":{"22":1}}],["0f20",{"2":{"43":1,"44":2,"56":4,"57":6,"58":6,"59":10}}],["0f32",{"2":{"16":2}}],["07352572033535747",{"2":{"84":1}}],["07275599751751732",{"2":{"84":1}}],["0713371",{"2":{"81":1}}],["07",{"2":{"43":2,"90":1}}],["008834246776204854",{"2":{"84":1}}],["00722034",{"2":{"54":1}}],["00709111",{"2":{"54":1}}],["00684233",{"2":{"54":1}}],["00693713",{"2":{"54":1}}],["00610615",{"2":{"20":1}}],["00990356",{"2":{"54":1}}],["0057",{"2":{"54":1}}],["00388",{"2":{"54":1}}],["00",{"2":{"41":16,"43":9,"44":8,"52":4,"55":4,"56":8,"57":8,"58":12,"59":20,"66":4,"70":4,"90":5}}],["0ºe",{"2":{"35":1}}],["05846",{"2":{"54":1}}],["0537",{"2":{"49":1,"50":1}}],["05",{"2":{"32":3}}],["034346591598340526",{"2":{"84":1}}],["03460295994703177",{"2":{"84":1}}],["0344221",{"2":{"20":1}}],["038315328375180986",{"2":{"84":1}}],["03361",{"2":{"54":1}}],["03",{"2":{"21":1}}],["01090464377842514",{"2":{"84":1}}],["0103313",{"2":{"81":1}}],["0178074",{"2":{"54":1}}],["0174532925199433",{"2":{"45":1}}],["011153",{"2":{"81":1}}],["0117519",{"2":{"54":1}}],["0115514",{"2":{"54":1}}],["0127077",{"2":{"54":1}}],["0123091",{"2":{"54":1}}],["0121037",{"2":{"54":1}}],["019016",{"2":{"54":1}}],["018571",{"2":{"54":1}}],["0182373",{"2":{"54":1}}],["0180572",{"2":{"54":1}}],["0183003",{"2":{"54":1}}],["018",{"2":{"49":1,"50":1}}],["01t03",{"2":{"43":2,"90":1}}],["01t00",{"2":{"41":4,"43":2,"90":1}}],["01",{"2":{"10":6,"12":3,"13":3,"14":3,"16":12,"17":9,"18":3,"24":9,"25":3,"32":22,"34":8,"35":11,"41":8,"43":5,"44":4,"55":2,"56":4,"57":6,"58":6,"59":10,"66":2,"70":2,"83":2,"84":4,"90":5}}],["0",{"2":{"8":1,"9":1,"10":6,"11":2,"12":6,"13":6,"14":7,"16":303,"17":75,"20":36,"21":36,"22":45,"24":12,"25":6,"28":3,"29":1,"30":9,"32":1,"35":4,"36":27,"37":11,"43":7,"44":10,"45":6,"52":2,"53":40,"54":19,"55":6,"56":8,"57":6,"58":14,"59":20,"60":6,"66":6,"69":1,"70":6,"71":1,"72":40,"74":2,"75":1,"81":70,"82":1,"83":2,"84":19,"85":1,"90":4,"92":2,"93":2,"94":2}}],["┤",{"2":{"8":2,"9":2,"10":2,"12":2,"13":2,"14":4,"16":10,"17":5,"20":2,"21":4,"22":3,"24":4,"27":2,"28":6,"29":2,"30":2,"32":10,"36":6,"37":6,"43":2,"44":2,"49":4,"50":2,"52":6,"53":3,"54":6,"56":4,"57":5,"58":6,"59":10,"71":2,"81":4,"84":2}}],["┐",{"2":{"8":1,"9":1,"10":1,"12":1,"13":1,"14":2,"16":5,"17":4,"20":1,"21":2,"22":2,"24":2,"27":1,"28":3,"29":1,"30":1,"32":5,"36":3,"37":3,"43":1,"44":1,"49":1,"52":2,"53":1,"56":2,"57":4,"58":3,"59":5,"71":1,"81":2,"84":1}}],["│",{"2":{"8":2,"9":2,"10":2,"12":2,"13":2,"14":4,"16":10,"17":8,"20":2,"21":4,"22":4,"24":4,"27":2,"28":6,"29":2,"30":2,"32":10,"36":6,"37":6,"43":2,"44":2,"49":4,"50":2,"52":6,"53":4,"54":6,"56":4,"57":6,"58":6,"59":10,"71":2,"81":4,"84":2}}],["78",{"2":{"58":1,"60":1}}],["789024",{"2":{"21":1}}],["730",{"2":{"85":1}}],["733506",{"2":{"81":1}}],["734655",{"2":{"72":2}}],["7341",{"2":{"54":1}}],["73",{"2":{"54":1,"60":1}}],["731763",{"2":{"20":1}}],["72",{"2":{"60":1}}],["720552",{"2":{"22":1}}],["728345",{"2":{"22":1}}],["743371",{"2":{"81":1}}],["74",{"2":{"60":1}}],["747801",{"2":{"22":1}}],["74541",{"2":{"21":1}}],["748773",{"2":{"20":1}}],["777618",{"2":{"81":1}}],["77",{"2":{"60":1}}],["77687",{"2":{"54":1}}],["77587",{"2":{"54":1}}],["77522",{"2":{"22":1}}],["771126",{"2":{"21":1}}],["77086",{"2":{"21":1}}],["778103",{"2":{"20":1}}],["79502",{"2":{"54":1}}],["79",{"2":{"44":2,"55":1,"56":2,"57":2,"58":4,"59":5,"60":1,"66":1,"70":1}}],["797333",{"2":{"21":1}}],["799896",{"2":{"17":1}}],["755983",{"2":{"81":1}}],["758746",{"2":{"81":1}}],["75891",{"2":{"54":1}}],["75",{"2":{"60":1}}],["7593",{"2":{"54":1}}],["752389",{"2":{"21":1}}],["750315",{"2":{"20":1}}],["754378",{"2":{"17":1}}],["762404",{"2":{"81":1}}],["76239",{"2":{"17":1}}],["76",{"2":{"60":1}}],["760578",{"2":{"20":1}}],["70",{"2":{"58":3,"60":1}}],["7030",{"2":{"45":1}}],["700836",{"2":{"22":1}}],["704697",{"2":{"17":1}}],["707765",{"2":{"17":1}}],["716538",{"2":{"81":1}}],["717",{"2":{"59":5}}],["71",{"2":{"58":1,"60":1}}],["7158",{"2":{"49":1,"50":1}}],["7119",{"2":{"49":1,"50":1}}],["712142",{"2":{"22":1}}],["710866",{"2":{"17":1}}],["710028",{"2":{"17":1}}],["71429",{"2":{"17":2}}],["7",{"2":{"8":1,"16":10,"17":1,"21":1,"24":1,"29":1,"43":1,"90":1}}],["→",{"2":{"4":1,"5":1,"6":1,"9":1,"10":1,"12":1,"13":1,"14":1,"16":2,"17":6,"20":1,"21":3,"22":3,"24":3,"25":1,"27":3,"28":3,"29":1,"30":1,"32":6,"34":2,"35":2,"36":3,"37":2,"40":2,"41":4,"43":2,"44":2,"45":1,"49":1,"55":1,"56":2,"57":1,"58":3,"59":5,"66":1,"70":2,"71":2,"81":2,"90":1}}],["↓",{"2":{"4":3,"5":3,"6":1,"8":1,"9":1,"10":1,"12":1,"13":1,"14":2,"16":5,"17":6,"20":1,"21":3,"22":3,"24":3,"25":1,"27":3,"28":3,"29":1,"30":1,"32":6,"34":2,"35":8,"36":3,"37":3,"39":1,"40":3,"41":4,"43":2,"44":2,"45":1,"49":3,"50":1,"52":4,"53":2,"54":3,"55":1,"56":2,"57":3,"58":3,"59":5,"66":1,"70":2,"71":2,"81":2,"84":2,"90":1}}],["45×170×24",{"2":{"59":5}}],["450236",{"2":{"20":1}}],["49909",{"2":{"54":1}}],["4947",{"2":{"54":1}}],["497239",{"2":{"22":1}}],["497162",{"2":{"21":1}}],["44",{"2":{"32":1,"36":3}}],["437609",{"2":{"81":1}}],["430734",{"2":{"81":1}}],["43967",{"2":{"81":1}}],["43254",{"2":{"54":1}}],["4325",{"2":{"49":1,"50":1}}],["4326",{"2":{"45":1}}],["434027",{"2":{"22":1}}],["433645",{"2":{"17":1}}],["465431",{"2":{"72":2}}],["46506",{"2":{"54":1}}],["46",{"2":{"30":1,"81":1}}],["466014",{"2":{"22":1}}],["460686",{"2":{"17":1}}],["418982",{"2":{"81":1}}],["418466",{"2":{"21":1}}],["414315",{"2":{"72":2}}],["4198",{"2":{"54":1}}],["41241",{"2":{"54":1}}],["41049",{"2":{"54":1}}],["41634",{"2":{"54":1}}],["416932",{"2":{"20":1}}],["475251",{"2":{"21":1}}],["482169",{"2":{"81":1}}],["48",{"2":{"81":1}}],["48367",{"2":{"54":1}}],["480",{"2":{"37":1}}],["484561",{"2":{"20":1}}],["487635",{"2":{"17":1}}],["40",{"2":{"35":2}}],["402482",{"2":{"22":1}}],["400",{"2":{"20":1,"71":1,"83":1,"85":1}}],["405895",{"2":{"17":1}}],["4×30",{"2":{"17":1}}],["423084",{"2":{"81":1}}],["42857",{"2":{"17":2}}],["42",{"2":{"11":3}}],["4",{"2":{"4":4,"5":4,"16":4,"17":9,"22":1,"29":1,"30":1,"49":2,"50":1,"51":1,"52":2,"53":2,"54":4,"71":3,"72":2,"81":3,"83":1,"85":1}}],["3d",{"0":{"94":1}}],["34818",{"2":{"54":1}}],["34832",{"2":{"54":1}}],["34549",{"2":{"54":1}}],["34218",{"2":{"54":1}}],["342124",{"2":{"17":1}}],["338157",{"2":{"81":1}}],["337627",{"2":{"72":2}}],["339135",{"2":{"72":2}}],["33565",{"2":{"54":1}}],["332484",{"2":{"17":1}}],["375066",{"2":{"81":1}}],["372",{"2":{"54":1}}],["37878",{"2":{"54":1}}],["37",{"2":{"44":2,"55":1,"56":2,"57":3,"58":3,"59":5,"66":1,"70":1}}],["377284",{"2":{"21":1}}],["3hr",{"2":{"43":2,"90":3}}],["3×20",{"2":{"37":1}}],["319642",{"2":{"81":1}}],["315291",{"2":{"81":1}}],["312",{"2":{"54":1}}],["31753",{"2":{"54":1}}],["3169",{"2":{"54":1}}],["3188",{"2":{"54":1}}],["31",{"2":{"32":2,"34":1,"35":1,"83":1,"84":2}}],["32555",{"2":{"54":1}}],["3252",{"2":{"49":1,"50":1}}],["32149",{"2":{"54":1}}],["321023",{"2":{"21":1}}],["321261",{"2":{"21":1}}],["326265",{"2":{"17":1}}],["3866",{"2":{"54":1}}],["383",{"2":{"72":2}}],["38364",{"2":{"54":1}}],["3835",{"2":{"49":1,"50":1}}],["384×192×251288",{"2":{"43":1}}],["38",{"2":{"32":1,"58":3}}],["387394",{"2":{"20":1}}],["387986",{"2":{"20":1}}],["389221",{"2":{"17":1}}],["366",{"2":{"85":1}}],["363858",{"2":{"81":1}}],["365×1",{"2":{"84":1}}],["365",{"2":{"84":1,"85":4}}],["365009",{"2":{"72":2}}],["365406",{"2":{"17":1}}],["36126",{"2":{"54":1}}],["36142",{"2":{"54":1}}],["36836",{"2":{"54":1}}],["369",{"2":{"35":1}}],["36",{"2":{"32":1,"34":2,"35":1,"52":1}}],["3600",{"2":{"32":1,"34":2}}],["367281",{"2":{"17":1}}],["35432",{"2":{"54":1}}],["35483",{"2":{"54":1}}],["35700351866494",{"2":{"43":4,"90":2}}],["359",{"2":{"35":1,"43":2,"44":2,"55":1,"56":2,"57":1,"60":2,"66":1,"70":1,"90":1}}],["355369",{"2":{"21":1}}],["35",{"2":{"10":1,"12":1,"13":1,"17":1,"24":1}}],["3069",{"2":{"54":1}}],["30018",{"2":{"54":1}}],["30142",{"2":{"54":1}}],["30113",{"2":{"54":1}}],["307f8f0e584a39a050c042849004e6a2bd674f99",{"2":{"45":1}}],["307243",{"2":{"17":1}}],["30×15×10",{"2":{"16":1}}],["30×10×15",{"2":{"10":1,"12":1,"13":1,"17":1,"24":1}}],["30",{"2":{"10":3,"12":1,"13":1,"14":2,"16":5,"17":5,"18":2,"21":10,"24":4,"25":2,"43":1,"44":1,"54":2,"56":2,"57":3,"58":3,"59":5,"90":1}}],["390063",{"2":{"72":2}}],["390335",{"2":{"20":1}}],["395566",{"2":{"20":1}}],["39",{"2":{"10":1,"16":3,"28":1,"30":1,"32":1,"34":1,"35":1,"36":2,"54":1,"55":1,"65":1,"74":2,"77":4,"84":3}}],["3",{"2":{"4":8,"5":8,"6":10,"10":1,"11":3,"12":3,"13":2,"16":4,"17":6,"21":2,"22":1,"24":3,"27":5,"29":1,"32":4,"35":6,"36":4,"37":5,"41":1,"43":1,"44":1,"49":2,"54":31,"56":2,"58":4,"59":5,"70":1,"71":3,"74":1,"81":3,"83":2}}],["zoom",{"2":{"94":1}}],["zopen",{"2":{"43":1,"72":1,"90":1}}],["zeros",{"2":{"71":3,"84":1}}],["z",{"2":{"4":2,"5":3,"6":2,"70":2}}],["zarray",{"2":{"72":1}}],["zarr",{"0":{"43":1,"67":1,"89":1},"2":{"0":1,"2":2,"4":2,"5":2,"6":2,"16":5,"18":1,"22":1,"43":3,"67":5,"69":3,"70":4,"71":6,"72":2,"74":2,"75":2,"90":1}}],["xticklabelalign",{"2":{"83":1,"85":1}}],["xticklabelrotation",{"2":{"83":1,"85":1}}],["xlabel=",{"2":{"83":1,"85":1}}],["xarray",{"2":{"47":1,"48":1}}],["xx",{"2":{"44":1,"55":1,"66":1,"70":1}}],["xin",{"2":{"17":3,"36":3}}],["x26",{"2":{"17":12,"35":12}}],["x3c",{"2":{"17":12,"35":4}}],["xout",{"2":{"16":2,"17":3}}],["x",{"2":{"4":2,"5":3,"6":2,"13":2,"21":4,"22":3,"36":4,"45":1,"49":2,"50":1,"54":3,"62":1,"72":2,"75":1,"81":5,"83":1,"84":6}}],["ndata",{"2":{"92":2,"93":1,"94":1}}],["ndays",{"2":{"84":4}}],["nlon",{"2":{"92":2,"93":1}}],["npy",{"2":{"83":2,"84":2}}],["ntuple",{"2":{"75":2}}],["ntr",{"2":{"75":1}}],["nthreads",{"2":{"74":2}}],["nin",{"2":{"75":2}}],["nvalid",{"2":{"74":1}}],["n",{"2":{"61":1,"74":3}}],["n256",{"2":{"54":1}}],["nan",{"2":{"48":1,"49":48,"50":48,"54":384}}],["name=cube",{"2":{"74":1}}],["namedtuple",{"2":{"74":1,"75":3}}],["named",{"2":{"55":1,"57":1,"58":1,"62":1,"74":2,"82":1}}],["names",{"0":{"27":1,"38":1,"40":1},"1":{"28":1,"39":1,"40":1},"2":{"24":2,"41":1,"51":1,"62":2,"74":2,"75":1}}],["namely",{"2":{"16":1}}],["name",{"0":{"39":1},"2":{"2":1,"40":1,"43":3,"44":4,"54":1,"56":8,"57":12,"58":12,"59":20,"65":1,"71":2,"74":6,"75":5,"81":1}}],["number",{"2":{"47":1,"52":1,"74":2,"75":1,"84":1}}],["numbers",{"2":{"10":1,"81":1}}],["nc",{"2":{"44":2,"48":2,"55":2,"66":2,"68":2}}],["nout",{"2":{"75":2}}],["normal",{"2":{"74":1,"94":1}}],["north",{"2":{"45":1}}],["nometadata",{"2":{"49":3,"50":2,"52":1,"53":1,"54":10}}],["nov",{"2":{"49":4,"50":2,"51":1,"52":4,"53":4,"54":6}}],["november",{"2":{"44":1,"55":1,"66":1,"70":1}}],["nonmissingtype",{"2":{"75":1}}],["none",{"2":{"35":2,"40":1,"41":1,"43":1,"70":1,"90":1}}],["non",{"2":{"18":1,"74":1,"75":1,"83":1}}],["now",{"2":{"16":3,"17":1,"28":1,"30":1,"32":1,"37":1,"41":1,"49":1,"50":1,"52":1,"54":1,"71":2,"72":1,"78":1}}],["no",{"2":{"14":1,"22":1,"31":1,"71":1,"74":1,"75":1}}],["nothing",{"2":{"54":3,"69":1,"74":1,"75":1}}],["notation",{"2":{"32":1,"59":1}}],["note",{"2":{"9":1,"13":1,"16":4,"17":1,"28":1,"35":1,"50":1,"71":1,"74":1,"75":1}}],["not",{"0":{"35":1},"2":{"0":1,"1":1,"13":1,"31":1,"35":3,"40":1,"41":2,"48":1,"71":2,"74":2,"75":3}}],["neighbour",{"2":{"74":1}}],["neighboring",{"2":{"13":1}}],["near",{"2":{"43":2,"59":1,"90":1}}],["needed",{"2":{"74":1}}],["need",{"2":{"40":1,"72":1,"74":1,"75":1,"77":1}}],["next",{"2":{"36":1,"37":1,"51":1,"78":2}}],["netcdf",{"0":{"44":1,"68":1},"2":{"22":1,"44":4,"46":2,"55":2,"63":3,"66":2,"68":3,"69":1,"74":1}}],["necessary",{"2":{"16":1,"47":1,"48":1,"72":1,"75":4}}],["new",{"0":{"9":1},"2":{"10":1,"12":1,"16":1,"24":1,"27":1,"28":3,"46":1,"48":1,"51":1,"64":1,"69":1,"70":1,"71":1,"74":5,"75":4,"77":6,"84":1}}],["bits",{"2":{"74":2}}],["big",{"2":{"62":1}}],["black",{"2":{"85":1}}],["blocks",{"2":{"74":1}}],["blue",{"2":{"45":1,"63":1}}],["bonito",{"2":{"94":1}}],["boundaries",{"2":{"75":1}}],["bounds",{"2":{"74":1}}],["bool=true",{"2":{"75":1}}],["bool=false",{"2":{"74":1,"75":1}}],["bool",{"2":{"75":6}}],["boolean",{"2":{"74":3}}],["bold",{"2":{"54":1}}],["bwr",{"2":{"54":1}}],["b`",{"2":{"32":1}}],["broad",{"2":{"87":1}}],["broadcasts",{"2":{"75":1}}],["broadcast",{"2":{"49":1,"54":1}}],["broadcasted",{"2":{"16":2,"74":1,"75":1}}],["brown",{"2":{"85":1}}],["browser",{"2":{"78":1}}],["brightness",{"2":{"62":1,"63":1}}],["brings",{"2":{"75":1}}],["bring",{"2":{"29":1}}],["branch",{"2":{"43":1,"90":1}}],["bug",{"2":{"76":1}}],["bundle",{"2":{"63":1}}],["build",{"0":{"78":1},"2":{"27":1,"78":1}}],["but",{"0":{"35":1},"2":{"8":1,"16":2,"27":1,"28":2,"35":2,"40":1,"41":2,"57":1,"58":1,"74":2}}],["b",{"2":{"17":13,"40":2,"59":2}}],["backgroundcolor=",{"2":{"94":1}}],["back",{"2":{"74":1}}],["backend",{"2":{"69":2,"74":8}}],["backendlist",{"2":{"46":1,"74":1}}],["backend=",{"2":{"2":1,"16":2,"70":1}}],["based",{"0":{"89":1},"2":{"75":1}}],["base",{"0":{"20":1},"2":{"4":4,"5":4,"6":2,"20":4,"24":3,"27":9,"28":6,"39":1,"40":5,"71":6,"75":1,"81":2}}],["by=",{"2":{"37":2,"74":2}}],["bytes",{"2":{"8":1,"9":1,"14":1,"16":3,"17":1,"20":1,"22":1,"28":3,"29":1,"32":1,"37":2,"52":1,"57":2,"71":1,"81":1}}],["by",{"0":{"4":1,"5":1},"2":{"2":1,"10":2,"14":1,"16":1,"17":1,"23":1,"24":1,"28":1,"31":1,"32":6,"35":2,"37":1,"43":1,"47":1,"51":1,"52":1,"53":1,"54":1,"62":3,"64":1,"65":1,"69":1,"72":2,"74":12,"75":6,"77":1,"78":1,"80":1,"84":1}}],["beware",{"2":{"86":1}}],["best",{"2":{"75":1,"88":1}}],["become",{"2":{"74":1}}],["because",{"2":{"1":1,"13":1,"14":1,"16":1}}],["before",{"2":{"71":1,"74":1,"78":1}}],["belonging",{"2":{"63":1}}],["belongs",{"2":{"17":1}}],["being",{"2":{"41":1}}],["been",{"2":{"35":1,"72":1}}],["between",{"2":{"21":1,"22":1,"32":1,"34":1,"35":2,"59":1,"74":1}}],["begin",{"2":{"18":1}}],["be",{"2":{"0":5,"2":1,"3":1,"4":1,"13":1,"15":1,"16":2,"17":1,"19":1,"32":1,"35":1,"36":1,"37":2,"40":1,"41":1,"43":2,"44":1,"45":1,"48":1,"60":1,"62":1,"64":2,"69":1,"70":1,"71":1,"74":22,"75":9,"77":1,"82":1,"86":1,"90":1}}],["680375",{"2":{"81":1}}],["652365",{"2":{"81":1}}],["65105",{"2":{"54":1}}],["6122",{"2":{"54":1}}],["61197",{"2":{"54":1}}],["619",{"2":{"49":1,"50":1}}],["619666",{"2":{"22":1}}],["63006",{"2":{"54":1}}],["6326",{"2":{"45":1}}],["6378137",{"2":{"45":1}}],["600",{"2":{"83":1,"85":1,"91":1,"92":1,"93":1}}],["607992",{"2":{"81":1}}],["60918",{"2":{"54":1}}],["60175",{"2":{"54":1}}],["60265",{"2":{"43":1,"90":1}}],["606961",{"2":{"17":1}}],["64976",{"2":{"54":1}}],["642",{"2":{"48":1}}],["646746",{"2":{"22":1}}],["640734",{"2":{"20":1}}],["673577",{"2":{"21":1}}],["695428",{"2":{"81":1}}],["695285",{"2":{"72":2}}],["69085",{"2":{"54":1}}],["690601",{"2":{"22":1}}],["69",{"2":{"43":1}}],["699567",{"2":{"21":1}}],["693869",{"2":{"20":1}}],["6×6×25",{"2":{"21":2}}],["6×2",{"2":{"9":1}}],["6",{"2":{"2":6,"4":6,"5":6,"6":6,"8":4,"9":5,"16":8,"17":1,"29":1,"32":1,"43":1,"90":1}}],["1e8",{"2":{"75":1}}],["1996511651172422",{"2":{"84":1}}],["196104",{"2":{"81":1}}],["196434",{"2":{"22":1}}],["192",{"2":{"92":1}}],["19241",{"2":{"54":1}}],["19274",{"2":{"21":1}}],["1983",{"2":{"52":1}}],["1980",{"2":{"52":1}}],["1984",{"2":{"45":1}}],["197907",{"2":{"21":1}}],["197056",{"2":{"20":1}}],["19",{"2":{"16":16,"58":3,"59":5}}],["1871713142406989",{"2":{"84":1}}],["18583",{"2":{"54":1}}],["18551",{"2":{"21":1}}],["18892",{"2":{"54":1}}],["18434",{"2":{"54":1}}],["180×170",{"2":{"57":1}}],["180×170×24",{"2":{"44":1,"56":2}}],["180",{"2":{"35":2,"45":1,"59":5,"92":1}}],["180ºe",{"2":{"35":1}}],["189091",{"2":{"20":1}}],["18",{"2":{"16":18}}],["141418",{"2":{"72":2}}],["1437",{"2":{"54":1}}],["149532",{"2":{"20":1}}],["14286",{"2":{"17":1}}],["14",{"2":{"16":20,"22":1}}],["133802",{"2":{"81":1}}],["1372",{"2":{"49":1,"50":1}}],["1363",{"2":{"49":1,"50":1}}],["136",{"2":{"44":1,"55":1,"66":1,"70":1}}],["13z",{"2":{"43":2,"90":1}}],["13829",{"2":{"17":1}}],["13",{"2":{"16":20,"22":1,"44":1,"55":1,"66":1,"70":1}}],["170",{"2":{"60":1}}],["17434",{"2":{"54":1}}],["17852",{"2":{"54":1}}],["17863",{"2":{"54":1}}],["17t00",{"2":{"52":1}}],["17647",{"2":{"54":1}}],["1762",{"2":{"49":1,"50":1}}],["176799",{"2":{"21":1}}],["179",{"2":{"45":1,"59":5}}],["17578125",{"2":{"45":2}}],["17",{"2":{"14":1,"16":22,"37":1,"58":1}}],["1644",{"2":{"54":1}}],["16824",{"2":{"54":1}}],["16581",{"2":{"54":1}}],["16631",{"2":{"54":1}}],["16713",{"2":{"54":1}}],["16258",{"2":{"54":1}}],["162052",{"2":{"20":1}}],["16t12",{"2":{"52":1}}],["16t00",{"2":{"44":4,"55":2,"56":4,"57":4,"58":6,"59":10,"66":2,"70":2}}],["16954",{"2":{"20":1}}],["16",{"2":{"10":1,"12":1,"13":1,"16":20,"17":1,"24":1,"44":2,"55":1,"56":2,"57":4,"58":3,"59":5,"66":1,"70":1}}],["15937678223176033",{"2":{"84":1}}],["159",{"2":{"58":1}}],["156712",{"2":{"81":1}}],["15644",{"2":{"54":1}}],["156829",{"2":{"17":1}}],["15532",{"2":{"54":1}}],["15×10×30",{"2":{"16":1}}],["15×10",{"2":{"16":2}}],["15",{"2":{"10":1,"16":25,"17":6,"18":1,"22":4,"24":1,"25":1,"30":2,"37":1,"81":1}}],["128",{"2":{"94":1}}],["121877",{"2":{"81":1}}],["1242",{"2":{"54":1}}],["12575",{"2":{"54":1}}],["126368",{"2":{"20":1}}],["1200",{"2":{"91":1,"92":1,"93":1}}],["120",{"2":{"16":1}}],["12",{"2":{"8":4,"16":20,"22":1,"32":10,"34":3,"35":4,"44":2,"55":1,"56":2,"57":2,"58":3,"59":5,"66":1,"70":1,"83":1,"84":2}}],["1=5",{"2":{"2":1}}],["1150399051804945",{"2":{"84":1}}],["115728",{"2":{"17":1}}],["111783",{"2":{"81":1}}],["111576",{"2":{"17":1}}],["119",{"2":{"57":1}}],["1181",{"2":{"54":1}}],["113553",{"2":{"53":3}}],["112319",{"2":{"53":12}}],["114815",{"2":{"53":6}}],["110372",{"2":{"21":1}}],["11",{"2":{"2":6,"4":6,"5":6,"6":6,"8":1,"16":18,"22":1,"44":2,"49":4,"50":4,"54":4,"55":1,"56":2,"57":3,"58":3,"59":5,"66":1,"70":1}}],["1",{"2":{"2":12,"4":19,"5":20,"6":22,"8":5,"9":3,"10":8,"11":3,"12":7,"13":5,"14":6,"16":24,"17":34,"18":3,"20":1,"21":7,"22":6,"24":15,"25":4,"27":3,"28":3,"29":8,"30":8,"32":23,"34":10,"35":14,"36":15,"37":14,"39":1,"40":3,"41":1,"43":4,"44":8,"49":4,"50":2,"52":6,"53":11,"54":55,"55":4,"56":8,"57":13,"58":18,"59":15,"60":2,"66":4,"70":11,"71":2,"72":2,"75":1,"81":11,"83":2,"84":5,"85":5,"90":3,"92":4,"93":2,"94":5}}],["1095",{"2":{"84":1}}],["10989",{"2":{"53":6}}],["10mb",{"2":{"74":2}}],["1083",{"2":{"54":1}}],["108696",{"2":{"53":6}}],["103704",{"2":{"53":3}}],["100",{"2":{"35":7}}],["1000",{"2":{"0":1,"92":1,"93":1}}],["10×170×24",{"2":{"58":1}}],["10×10×24",{"2":{"58":2}}],["10×10×8",{"2":{"32":1}}],["10×10×12",{"2":{"32":1}}],["10×10×36",{"2":{"32":1}}],["10×10×5",{"2":{"27":1}}],["10×10",{"2":{"28":3,"29":1,"32":1}}],["10×15×20",{"2":{"36":1}}],["10×15",{"2":{"14":1,"17":2,"37":1,"81":1}}],["10×20×5",{"2":{"24":1}}],["105085",{"2":{"20":1}}],["10x15",{"2":{"17":1}}],["10",{"2":{"2":14,"4":16,"5":18,"6":17,"10":3,"12":1,"13":1,"14":1,"16":21,"17":15,"18":3,"20":2,"22":4,"24":6,"25":2,"27":8,"28":12,"29":5,"30":4,"32":16,"34":10,"36":3,"37":2,"39":2,"40":4,"43":1,"44":1,"56":2,"57":3,"58":6,"59":5,"70":2,"80":1,"81":3}}],["garbage",{"2":{"75":1}}],["gc",{"2":{"75":2}}],["gt",{"2":{"74":1,"75":3,"78":1}}],["ggplot2",{"2":{"54":1}}],["github",{"2":{"45":1,"48":2,"76":1}}],["gives",{"2":{"17":1}}],["given",{"2":{"2":1,"17":2,"62":1,"64":1,"69":1,"74":6,"75":3,"81":1}}],["gdalworkshop",{"2":{"45":1}}],["gdal",{"0":{"45":1},"2":{"45":1}}],["gb",{"2":{"43":1}}],["gn",{"2":{"43":1,"90":2}}],["gs",{"2":{"43":1,"90":2}}],["globalproperties=dict",{"2":{"75":1}}],["global",{"2":{"74":1,"75":1}}],["glmakie",{"2":{"37":2,"90":2}}],["glue",{"2":{"8":1}}],["gradient",{"2":{"91":1,"92":1,"93":1,"94":1}}],["gradually",{"2":{"71":1}}],["grouped",{"2":{"74":1}}],["groups",{"2":{"53":1}}],["groupby",{"0":{"49":1,"52":1},"1":{"50":1,"51":1,"53":1,"54":1},"2":{"46":1,"48":1,"49":6,"50":1,"51":1,"52":3,"53":3,"54":3,"74":1,"84":1}}],["group",{"0":{"46":1},"1":{"47":1,"48":1,"49":1,"50":1,"51":1,"52":1,"53":1,"54":1},"2":{"49":1,"51":1,"52":2,"63":1,"74":3}}],["grouping",{"2":{"37":2,"51":2}}],["grey25",{"2":{"94":1}}],["grey15",{"2":{"37":1,"54":1}}],["greenwich",{"2":{"45":1}}],["green",{"2":{"45":1,"63":1}}],["grid=false",{"2":{"54":1}}],["grid",{"2":{"18":1,"62":1,"74":1}}],["gridchunks",{"2":{"2":3,"4":1,"5":1,"6":1,"74":1,"75":1}}],["go",{"2":{"78":2}}],["going",{"2":{"75":1}}],["good",{"2":{"54":1}}],["goal",{"2":{"28":1,"47":1}}],["goes",{"2":{"16":2,"74":1,"75":1}}],["guide",{"2":{"10":2,"12":1,"13":1,"18":1,"24":3,"25":1}}],["gen",{"2":{"16":6}}],["general",{"0":{"87":1},"2":{"74":1}}],["generated",{"2":{"44":1,"55":1,"66":1,"70":1,"75":1}}],["generate",{"2":{"16":2,"32":1,"34":1,"35":1,"74":1,"78":1}}],["generic",{"2":{"16":2,"24":1}}],["getting",{"0":{"79":1},"1":{"80":1,"81":1,"82":1}}],["gettarrayaxes",{"2":{"41":1}}],["getarrayinfo",{"2":{"75":1}}],["getaxis",{"2":{"29":1,"37":2,"74":1}}],["getloopchunks",{"2":{"75":1}}],["getloopcachesize",{"2":{"75":1}}],["getouttype",{"2":{"75":1}}],["getoutaxis",{"2":{"75":1}}],["getfrontperm",{"2":{"75":1}}],["gets",{"2":{"74":1,"75":1}}],["get",{"0":{"60":1},"2":{"10":1,"27":1,"48":1,"52":1,"56":1,"58":1,"60":1,"75":3,"81":1,"84":1,"90":1}}],["geoaxis",{"2":{"92":1,"93":1}}],["geometrybasics",{"2":{"90":1}}],["geomakie",{"2":{"90":1,"92":2,"93":1}}],["geogcs",{"2":{"45":1}}],["geojson",{"0":{"45":1}}],["geotiff",{"0":{"45":1}}],["geo",{"2":{"1":1}}],["g",{"2":{"7":1,"10":1,"11":1,"13":1,"16":4,"18":1,"24":1,"49":26,"50":2,"51":2,"52":2,"53":1,"54":18,"60":1,"62":1,"65":1,"74":5,"90":2}}],["2π",{"2":{"83":1}}],["2×3",{"2":{"81":1}}],["2×2×3",{"2":{"4":1,"5":1,"6":1}}],["2×2",{"2":{"2":3}}],["2x2l31",{"2":{"44":1,"55":1,"66":1,"70":1}}],["291044",{"2":{"81":1}}],["294422",{"2":{"81":1}}],["29473",{"2":{"54":1}}],["29564",{"2":{"54":1}}],["29816",{"2":{"54":1}}],["298",{"2":{"45":1}}],["292206",{"2":{"21":1}}],["29",{"2":{"21":2}}],["282139",{"2":{"81":1}}],["282311",{"2":{"22":1}}],["28008",{"2":{"54":1}}],["2894",{"2":{"54":1}}],["28866",{"2":{"81":1}}],["288",{"2":{"52":1}}],["288074",{"2":{"21":1}}],["2818",{"2":{"49":1,"50":1}}],["28422753251364",{"2":{"43":4,"90":2}}],["283969",{"2":{"21":1}}],["28",{"2":{"21":2,"32":1,"49":3,"50":3,"54":3}}],["28571",{"2":{"17":2}}],["2857142857142857",{"2":{"10":1,"12":1,"13":1,"14":1,"17":3,"24":2,"25":1,"30":1,"36":3,"37":1,"81":1}}],["2747",{"2":{"54":1}}],["273",{"2":{"52":1}}],["276",{"2":{"52":2}}],["276032",{"2":{"21":1}}],["270",{"2":{"52":1}}],["270034",{"2":{"20":1}}],["275×205×9",{"2":{"49":4}}],["277672",{"2":{"21":1}}],["27",{"2":{"21":2,"49":1,"50":1,"54":1}}],["26274",{"2":{"54":1}}],["264965",{"2":{"22":1}}],["264853",{"2":{"20":1}}],["26951",{"2":{"20":1}}],["26",{"2":{"16":2,"21":2,"43":2,"90":1}}],["257035",{"2":{"81":1}}],["257223563",{"2":{"45":1}}],["25153",{"2":{"54":1}}],["25",{"2":{"16":4,"21":10,"32":1,"83":1}}],["243066",{"2":{"72":2}}],["24375",{"2":{"54":1}}],["2434",{"2":{"54":1}}],["246708",{"2":{"22":1}}],["245398",{"2":{"20":1}}],["247962",{"2":{"17":1}}],["24",{"2":{"16":6,"37":1,"57":2}}],["240",{"2":{"14":1,"16":1,"22":1}}],["238475",{"2":{"81":1}}],["238664",{"2":{"17":1}}],["232697",{"2":{"22":1}}],["235685",{"2":{"21":1}}],["23",{"2":{"16":8,"36":3,"44":2,"54":1,"55":1,"56":2,"57":3,"58":3,"59":5,"66":1,"70":1}}],["228198",{"2":{"81":1}}],["22211",{"2":{"54":1}}],["227521",{"2":{"20":1}}],["22",{"2":{"16":10}}],["218997",{"2":{"72":2}}],["21699",{"2":{"54":1}}],["21209",{"2":{"54":1}}],["21t06",{"2":{"43":2,"90":1}}],["21t19",{"2":{"41":4}}],["2101",{"2":{"43":2,"90":1}}],["217855",{"2":{"21":1}}],["21",{"2":{"16":12,"49":8,"50":8,"54":8}}],["2=10",{"2":{"2":1}}],["2",{"2":{"2":3,"4":8,"5":9,"6":10,"8":1,"9":1,"11":3,"12":2,"13":1,"14":1,"17":9,"18":1,"20":2,"22":3,"24":1,"27":3,"28":6,"29":3,"32":1,"37":6,"40":4,"41":1,"43":3,"44":3,"49":1,"50":1,"54":40,"55":1,"56":4,"57":2,"58":2,"59":5,"60":2,"66":1,"70":2,"71":2,"74":2,"81":5,"90":3,"92":2,"94":1}}],["2003",{"2":{"44":1,"55":1,"66":1,"70":1}}],["2004",{"2":{"44":1,"55":1,"66":1,"70":1}}],["2005",{"2":{"44":2,"55":1,"56":2,"57":3,"58":3,"59":5,"66":1,"70":1}}],["2002",{"2":{"44":3,"55":2,"56":2,"57":2,"58":3,"59":5,"66":2,"70":1}}],["2001",{"2":{"44":3,"55":2,"56":2,"57":3,"58":3,"59":5,"66":2,"70":1}}],["2000",{"2":{"21":4}}],["2019",{"2":{"43":2,"90":1}}],["2015",{"2":{"43":2,"44":1,"55":1,"66":1,"70":1,"90":2}}],["20×10×15",{"2":{"36":2}}],["20×10×15×2",{"2":{"30":1,"81":1}}],["20ºn",{"2":{"35":1}}],["205441",{"2":{"22":1}}],["2023",{"2":{"83":1,"84":2}}],["2021",{"2":{"32":9,"83":1,"84":2,"85":1}}],["2020",{"2":{"32":5,"34":3,"35":4,"41":8,"64":1}}],["2024",{"2":{"21":4}}],["2022",{"2":{"10":4,"12":2,"13":2,"14":2,"16":8,"17":6,"18":2,"24":6,"25":2,"32":5,"34":3,"35":4,"85":1}}],["20",{"2":{"2":7,"4":10,"5":10,"6":10,"16":14,"24":2,"30":4,"35":2,"36":3,"37":1,"54":1,"70":2,"81":3}}],["5173",{"2":{"78":1}}],["513538",{"2":{"22":1}}],["545877",{"2":{"72":2}}],["545633",{"2":{"17":1}}],["5e8",{"2":{"69":1,"74":1}}],["539111",{"2":{"81":1}}],["53",{"2":{"57":1}}],["531563",{"2":{"21":1}}],["599162",{"2":{"81":1}}],["59212",{"2":{"54":1}}],["59085",{"2":{"54":1}}],["590044",{"2":{"22":1}}],["526144",{"2":{"81":1}}],["52419",{"2":{"54":1}}],["521312",{"2":{"17":1}}],["55",{"2":{"84":1}}],["551798",{"2":{"81":1}}],["55636",{"2":{"22":1}}],["558261",{"2":{"21":1}}],["560174",{"2":{"81":1}}],["567886",{"2":{"81":1}}],["56632",{"2":{"54":1}}],["565839",{"2":{"22":1}}],["569377",{"2":{"22":1}}],["564172",{"2":{"17":1}}],["5×4",{"2":{"72":2}}],["5×4×5",{"2":{"71":1}}],["5×6×36",{"2":{"32":1}}],["5×6",{"2":{"22":2}}],["5×10",{"2":{"20":2}}],["579101",{"2":{"81":1}}],["5743",{"2":{"54":1}}],["57873",{"2":{"54":1}}],["57695",{"2":{"54":1}}],["576218",{"2":{"17":1}}],["57143",{"2":{"17":2}}],["5843",{"2":{"49":1,"50":1}}],["586515",{"2":{"22":1}}],["58",{"2":{"16":2}}],["5",{"2":{"2":7,"4":16,"5":18,"6":7,"10":2,"12":3,"13":2,"14":1,"16":6,"17":10,"18":1,"20":2,"22":4,"24":5,"25":1,"27":4,"29":1,"30":2,"32":3,"34":4,"36":3,"37":2,"40":4,"44":4,"54":5,"55":2,"56":4,"57":3,"58":10,"59":10,"60":19,"66":2,"70":4,"71":6,"72":3,"81":2,"82":1,"85":2,"94":2}}],["50089",{"2":{"54":1}}],["500",{"2":{"0":1,"54":1,"94":2}}],["500mb",{"2":{"0":2}}],["rotate",{"2":{"94":1}}],["row",{"2":{"65":1,"74":1}}],["rowgap",{"2":{"54":1}}],["right",{"2":{"83":1,"85":1}}],["rights",{"2":{"72":1}}],["r",{"2":{"71":1}}],["r1i1p1f1",{"2":{"43":2,"90":3}}],["running",{"2":{"78":1}}],["run",{"2":{"18":1,"78":3}}],["runs",{"2":{"13":1,"75":1}}],["rafaqz",{"2":{"48":1}}],["raw",{"2":{"45":1,"48":1}}],["rasm",{"2":{"48":2}}],["ras",{"2":{"21":3}}],["rasters",{"2":{"21":2}}],["raster",{"0":{"21":1},"2":{"17":11,"21":5}}],["ranges",{"0":{"58":1},"2":{"29":1,"55":1}}],["range",{"2":{"10":2,"16":2,"17":2,"18":2,"24":2,"30":3,"32":1,"75":1,"81":3,"83":1}}],["randn",{"2":{"83":1}}],["random",{"2":{"35":2,"41":3,"81":1}}],["rand",{"2":{"2":1,"4":3,"5":3,"6":3,"8":2,"9":2,"10":1,"17":1,"18":1,"20":1,"21":1,"22":1,"24":2,"25":1,"27":1,"28":2,"30":2,"35":3,"37":1,"39":1,"40":3,"70":1,"72":1,"81":2}}],["relational",{"2":{"62":1}}],["related",{"2":{"48":1}}],["recommend",{"2":{"82":1}}],["recommended",{"2":{"59":1}}],["rechunking",{"2":{"75":1}}],["recalculate",{"2":{"75":1}}],["recal",{"2":{"75":1}}],["recently",{"2":{"0":1}}],["reverse",{"2":{"54":1}}],["reverseordered",{"2":{"9":1,"45":1,"81":1}}],["red",{"2":{"45":1,"54":1,"63":1}}],["reduce",{"2":{"10":1,"14":1}}],["rewrote",{"2":{"43":1,"44":1,"55":1,"66":1,"70":1,"90":1}}],["realization",{"2":{"44":1,"55":1,"66":1,"70":1}}],["realm",{"2":{"43":1,"90":1}}],["readcubedata",{"2":{"35":2,"74":1}}],["read",{"0":{"42":1,"43":1,"44":1,"45":1},"1":{"43":1,"44":1,"45":1},"2":{"1":1,"35":1,"42":1,"45":1,"48":1,"58":1,"74":1}}],["rename",{"2":{"40":1}}],["resets",{"2":{"74":1,"75":1}}],["respectively",{"2":{"63":1}}],["reshape",{"2":{"32":1,"34":2}}],["result",{"2":{"29":1,"37":1}}],["resulting",{"2":{"8":1,"9":1,"14":1,"74":1,"75":1}}],["results",{"0":{"85":1},"2":{"2":1,"5":1,"54":2,"74":1,"75":1}}],["references",{"2":{"44":1,"55":1,"66":1,"70":1}}],["reference",{"0":{"73":1},"1":{"74":1,"75":1},"2":{"41":1}}],["ref",{"2":{"30":1,"74":1,"75":1}}],["rebuild",{"0":{"28":1},"2":{"27":1,"28":2,"41":2,"48":1}}],["repeat",{"2":{"83":1}}],["repl",{"2":{"80":1}}],["replace",{"2":{"18":1,"48":1,"94":1}}],["repository",{"2":{"76":1,"86":1}}],["reports",{"2":{"76":1}}],["reproduces",{"2":{"47":1}}],["represented",{"2":{"74":1,"88":1}}],["represents",{"2":{"63":1}}],["representing",{"2":{"17":2,"75":1}}],["representation",{"2":{"1":1,"74":2,"75":3}}],["re",{"2":{"17":1}}],["returned",{"2":{"74":1}}],["returns",{"2":{"74":5,"75":2}}],["return",{"2":{"17":4,"49":1,"74":1,"75":1,"84":1}}],["registration",{"2":{"75":2}}],["registered",{"2":{"75":1}}],["regions",{"2":{"17":8}}],["region",{"2":{"17":12}}],["regular",{"2":{"4":4,"5":4,"6":2,"8":1,"9":1,"10":3,"12":3,"13":3,"14":3,"16":9,"17":8,"20":2,"21":6,"22":4,"24":9,"25":3,"27":9,"28":6,"29":2,"30":3,"32":14,"34":6,"35":4,"36":9,"37":3,"39":1,"40":5,"43":2,"44":4,"45":2,"49":2,"50":2,"54":6,"55":2,"56":4,"57":2,"58":3,"59":10,"60":2,"66":2,"70":5,"71":6,"81":5,"84":1,"90":1}}],["regularchunks",{"2":{"2":6,"4":3,"5":3,"6":3}}],["requests",{"2":{"76":1}}],["requested",{"2":{"13":1}}],["requirements",{"2":{"44":1,"55":1,"66":1,"70":1}}],["required",{"2":{"32":1}}],["requires",{"2":{"16":1}}],["removes",{"2":{"75":1}}],["remove",{"2":{"50":1}}],["removed",{"2":{"15":1,"75":1}}],["remote",{"2":{"0":1}}],["http",{"2":{"78":1}}],["https",{"2":{"44":1,"45":1,"48":2,"55":1,"63":1,"66":1}}],["html",{"2":{"63":1}}],["hm",{"2":{"54":8}}],["hidedecorations",{"2":{"54":1}}],["history",{"2":{"43":2,"44":2,"55":1,"56":2,"57":3,"58":3,"59":5,"66":1,"70":1,"90":1}}],["highclip",{"2":{"54":4}}],["high",{"2":{"41":4}}],["hr",{"2":{"43":1,"90":2}}],["hold",{"2":{"74":1}}],["holds",{"2":{"74":1,"75":1}}],["ho",{"0":{"41":1}}],["however",{"2":{"19":1,"32":1}}],["how",{"0":{"30":1,"31":1,"36":1,"37":1,"38":1},"1":{"32":1,"33":1,"34":1,"35":1,"39":1,"40":1},"2":{"6":1,"7":1,"10":1,"19":1,"23":1,"26":1,"37":1,"42":1,"72":1,"74":1,"86":1,"88":1}}],["happens",{"2":{"75":1}}],["had",{"2":{"72":1,"74":1,"75":1}}],["hamman",{"2":{"47":1,"54":1}}],["handled",{"2":{"75":1}}],["handle",{"2":{"62":1,"75":1}}],["handling",{"2":{"9":1,"74":1}}],["handy",{"2":{"37":1}}],["has",{"2":{"8":1,"9":1,"17":1,"21":1,"22":1,"35":1,"47":1,"50":1,"75":1}}],["half",{"2":{"8":5}}],["have",{"2":{"6":1,"9":1,"17":1,"24":1,"33":1,"35":2,"64":1,"74":3}}],["having",{"2":{"1":1,"17":1}}],["help",{"2":{"74":1,"75":2}}],["height",{"2":{"43":2,"90":1}}],["heatmap",{"0":{"91":1},"2":{"37":1,"54":3,"91":1}}],["hereby",{"2":{"17":1}}],["here",{"2":{"8":1,"9":1,"13":1,"16":2,"17":1,"31":1,"37":1,"58":1,"71":1,"77":2}}],["hence",{"2":{"1":1}}],["ylabel=",{"2":{"83":1,"85":1}}],["ylabel",{"2":{"54":3}}],["yeesian",{"2":{"45":1}}],["years",{"2":{"32":1,"83":1,"84":1}}],["year",{"2":{"8":4,"85":1}}],["yyyy",{"2":{"44":2,"55":2,"66":2,"70":2}}],["yasxa",{"2":{"35":6}}],["yaxcolumn",{"2":{"75":1}}],["yaxconvert",{"2":{"22":2}}],["yaxdefaults",{"2":{"75":1}}],["yaxarraybase",{"2":{"22":1,"74":1,"75":1}}],["yaxarray",{"0":{"11":1,"24":1,"31":1,"32":1,"56":1,"62":1},"1":{"32":1,"33":1,"34":1,"35":1},"2":{"2":1,"4":4,"5":4,"6":4,"7":1,"8":3,"9":3,"10":2,"12":1,"13":1,"14":2,"16":8,"17":3,"18":1,"20":4,"21":3,"22":5,"24":5,"25":2,"27":3,"28":5,"29":1,"30":3,"31":1,"32":15,"34":4,"35":6,"36":3,"37":4,"39":2,"40":4,"41":4,"43":2,"44":2,"45":1,"48":2,"49":7,"50":1,"52":9,"53":1,"54":3,"55":2,"56":2,"57":3,"58":3,"59":5,"62":1,"64":1,"66":1,"67":1,"68":1,"70":2,"71":4,"74":10,"75":3,"81":5,"84":2,"88":1,"90":1}}],["yaxarrays",{"0":{"0":1,"1":1,"2":1,"7":1,"10":1,"16":1,"19":1,"23":1,"38":1,"42":1,"46":1,"55":1,"66":1,"76":1,"87":1,"88":1},"1":{"2":1,"3":1,"4":1,"5":1,"6":1,"8":1,"9":1,"11":1,"12":1,"13":1,"14":1,"15":1,"16":1,"17":1,"18":1,"20":1,"21":1,"22":1,"24":1,"25":1,"39":1,"40":1,"43":1,"44":1,"45":1,"47":1,"48":1,"49":1,"50":1,"51":1,"52":1,"53":1,"54":1,"56":1,"57":1,"58":1,"59":1,"60":1,"67":1,"68":1,"69":1,"70":1,"71":1,"72":1,"77":1,"78":1},"2":{"0":3,"2":1,"4":1,"5":1,"6":1,"8":1,"9":1,"10":2,"16":4,"17":1,"18":2,"19":2,"20":1,"24":1,"27":1,"28":1,"30":1,"31":1,"32":1,"33":1,"34":2,"35":4,"39":1,"40":1,"41":2,"42":1,"43":1,"44":1,"45":2,"46":1,"55":1,"61":1,"63":1,"66":1,"69":1,"71":1,"74":27,"75":28,"76":1,"78":1,"80":3,"81":3,"82":2,"84":1,"86":1,"87":1,"90":1}}],["yax",{"2":{"0":1,"28":1,"41":3}}],["y",{"2":{"4":2,"5":3,"6":2,"21":4,"22":3,"32":4,"36":4,"45":1,"49":2,"50":1,"54":3,"62":1,"81":5}}],["you",{"2":{"1":1,"18":1,"31":1,"35":3,"40":2,"74":1,"75":2,"77":1,"78":2,"80":2,"82":1,"86":3,"88":2}}],["yourself",{"2":{"78":1}}],["your",{"2":{"1":2,"35":2,"69":2,"71":1,"74":1,"77":4,"78":4}}],["circshift",{"2":{"92":1}}],["ct1",{"2":{"90":4,"91":1}}],["cycle",{"0":{"83":1,"85":1},"1":{"84":1,"85":1},"2":{"84":4}}],["cycle=12",{"2":{"49":2,"50":1,"52":2,"53":2,"54":3}}],["cdata",{"2":{"75":1}}],["center",{"2":{"74":1,"83":1,"85":1}}],["certain",{"2":{"55":2,"75":1}}],["cell",{"2":{"43":2,"44":1,"56":2,"57":3,"58":3,"59":5,"74":1}}],["c54",{"2":{"54":1}}],["cb",{"2":{"54":1}}],["cbar",{"2":{"37":1}}],["cftime",{"2":{"44":6,"49":4,"52":7,"53":5,"54":5,"55":3,"56":6,"57":7,"58":9,"59":15,"66":3,"70":3}}],["cf",{"2":{"43":2,"44":2,"55":2,"66":2,"70":2,"90":2}}],["cmpcachmisses",{"2":{"75":1}}],["cm4",{"2":{"44":4,"55":4,"66":4,"70":4}}],["cmip",{"2":{"43":1,"90":1}}],["cmip6",{"2":{"43":3,"90":6}}],["cmor",{"2":{"43":2,"44":3,"55":2,"56":2,"57":3,"58":3,"59":5,"66":2,"70":2,"90":1}}],["cgrad",{"2":{"37":1}}],["cl",{"2":{"92":1,"93":1}}],["cl=lines",{"2":{"92":1,"93":1}}],["clean",{"2":{"75":1}}],["cleanme",{"2":{"75":4}}],["cleaner",{"2":{"74":2}}],["climate",{"2":{"44":1,"55":1,"66":1,"70":1}}],["closedinterval",{"2":{"59":1}}],["closed",{"0":{"59":1},"2":{"59":3}}],["close",{"2":{"41":4}}],["cloud",{"2":{"11":1,"43":1}}],["classes=classes",{"2":{"37":1}}],["classes",{"2":{"37":8}}],["classification",{"2":{"37":2}}],["class",{"2":{"37":3}}],["clustermanagers",{"2":{"18":2}}],["cluster",{"2":{"18":1}}],["cpus",{"2":{"18":1}}],["cpu",{"2":{"18":1}}],["c",{"2":{"17":11,"27":5,"28":7,"29":3,"37":2,"40":2,"63":1,"74":3,"75":3,"84":4,"90":2}}],["custom",{"2":{"24":1,"74":1}}],["current",{"2":{"17":2,"63":1,"74":1,"85":1}}],["currently",{"2":{"16":1,"41":1,"48":1,"86":1}}],["cubeaxis",{"2":{"75":1}}],["cubeaxes",{"2":{"74":1}}],["cubedir",{"2":{"75":1}}],["cube2",{"2":{"74":1}}],["cube1",{"2":{"74":1}}],["cubelist",{"2":{"74":1}}],["cubefittable",{"2":{"37":2,"74":1}}],["cubetable",{"0":{"37":1},"2":{"37":3,"74":3}}],["cubes",{"0":{"30":1},"2":{"9":2,"30":2,"35":1,"36":2,"37":1,"56":1,"64":1,"74":18,"75":9}}],["cube",{"0":{"27":1,"29":1,"31":1,"64":1,"84":1},"1":{"28":1,"32":1,"33":1,"34":1,"35":1},"2":{"2":1,"4":1,"5":1,"6":1,"16":11,"27":1,"29":1,"31":2,"35":1,"36":1,"37":2,"48":1,"64":3,"71":1,"74":34,"75":19,"88":1}}],["chose",{"2":{"63":1}}],["child",{"2":{"43":1,"90":1}}],["check",{"2":{"16":1,"71":1,"82":1}}],["changed",{"2":{"82":1,"86":1}}],["change",{"2":{"10":1,"74":1,"75":1}}],["chunkoffset",{"2":{"75":1}}],["chunksize`",{"2":{"75":1}}],["chunksizes",{"2":{"74":2}}],["chunksize",{"2":{"74":1,"75":3}}],["chunks",{"0":{"4":1},"2":{"2":5,"4":1,"5":1,"6":2,"74":4,"75":11}}],["chunked",{"2":{"2":5}}],["chunking",{"0":{"2":1,"3":1,"5":1,"6":1},"1":{"4":1,"5":1,"6":1},"2":{"1":1,"5":1,"74":4,"75":3}}],["chunk",{"0":{"1":1},"1":{"2":1,"3":1,"4":1,"5":1,"6":1},"2":{"1":1,"2":1,"4":1,"5":1,"74":4,"75":4}}],["criteria",{"2":{"37":1}}],["creating",{"0":{"17":1},"2":{"10":1,"28":1,"32":1,"71":1,"77":1}}],["createdataset",{"2":{"75":2}}],["created",{"2":{"75":2}}],["creates",{"2":{"37":1,"74":2,"75":1}}],["create",{"0":{"23":1,"24":1,"25":1},"1":{"24":1,"25":1},"2":{"10":1,"16":1,"17":2,"23":1,"24":1,"28":1,"30":1,"32":2,"37":1,"41":1,"48":1,"52":1,"66":1,"69":1,"71":3,"74":1,"75":1,"81":1,"83":1}}],["crucial",{"2":{"1":1}}],["coastlines",{"2":{"92":3,"93":1}}],["cosd",{"2":{"74":1}}],["country",{"2":{"74":4}}],["country=cube2",{"2":{"74":1}}],["could",{"2":{"28":1,"41":1}}],["copies",{"2":{"75":1}}],["copied",{"2":{"71":1}}],["copybuf",{"2":{"75":2}}],["copydata",{"2":{"75":1}}],["copy",{"2":{"27":1,"74":1,"78":1}}],["coordinates",{"2":{"43":1}}],["college",{"2":{"86":1}}],["collected",{"2":{"75":1}}],["collectfromhandle",{"2":{"75":1}}],["collection",{"2":{"26":1,"62":1}}],["collect",{"2":{"20":1,"29":3,"84":1}}],["colonperm",{"2":{"75":1}}],["color=",{"2":{"85":3}}],["color",{"2":{"83":1,"92":1,"93":1,"94":1}}],["colormap=",{"2":{"54":1}}],["colormap=makie",{"2":{"37":1}}],["colormap",{"2":{"54":3,"91":1,"92":1,"93":1,"94":1}}],["colorrange=",{"2":{"54":1}}],["colorrange",{"2":{"54":3}}],["colorbar",{"2":{"37":1,"54":2}}],["column",{"2":{"65":1,"75":1}}],["colgap",{"2":{"54":1}}],["colnames",{"2":{"41":1}}],["configuration",{"2":{"75":2}}],["concatenating",{"2":{"74":1}}],["concatenates",{"2":{"74":1}}],["concatenate",{"0":{"30":1},"2":{"30":2}}],["concatenatecubes",{"0":{"9":1},"2":{"9":2,"30":2,"74":2}}],["concrete",{"2":{"74":2}}],["contributing",{"2":{"77":1}}],["contribute",{"0":{"76":1,"77":1},"1":{"77":1,"78":2}}],["contrast",{"2":{"74":1}}],["content",{"2":{"74":1}}],["continue",{"2":{"49":1}}],["contact",{"2":{"44":1,"55":1,"66":1,"70":1}}],["contains",{"2":{"59":1,"74":1,"75":1}}],["contain",{"2":{"43":1,"44":1,"75":1}}],["containing",{"2":{"8":1,"37":1,"63":1,"64":1,"74":1}}],["consolidated=true",{"2":{"43":1,"90":1}}],["constructor",{"2":{"74":1}}],["constructs",{"2":{"74":1}}],["construct",{"0":{"41":1},"2":{"74":2}}],["consistent",{"2":{"43":1,"90":1}}],["consisting",{"2":{"8":1}}],["considering",{"2":{"47":1}}],["considered",{"2":{"37":1}}],["consider",{"2":{"28":1}}],["convinient",{"2":{"26":1}}],["conventions",{"2":{"44":1,"55":1,"66":1,"70":1}}],["convenient",{"2":{"18":1}}],["conversion",{"2":{"19":1,"21":1,"22":1}}],["conversions",{"2":{"19":1}}],["converted",{"2":{"64":1}}],["convert",{"0":{"19":1,"20":1,"21":1,"22":1},"1":{"20":1,"21":1,"22":1},"2":{"19":1,"20":2,"22":2,"74":1,"75":1}}],["corresponding",{"2":{"7":1,"17":2,"64":1,"74":1}}],["combining",{"0":{"89":1}}],["combined",{"2":{"9":2,"64":2}}],["combine",{"0":{"7":1},"1":{"8":1,"9":1},"2":{"7":1,"8":1,"9":1,"88":1}}],["com",{"2":{"45":1,"48":2}}],["comment",{"2":{"43":1}}],["common",{"2":{"35":5,"74":1}}],["compiler",{"2":{"82":1}}],["compares",{"2":{"75":1}}],["compatible",{"2":{"45":1}}],["compuation",{"2":{"74":1}}],["computing",{"2":{"37":1}}],["computations",{"2":{"13":1,"36":1}}],["computation",{"0":{"18":1},"2":{"13":1,"62":1,"74":3,"75":3}}],["computed",{"2":{"75":1}}],["compute",{"0":{"10":1},"1":{"11":1,"12":1,"13":1,"14":1,"15":1,"16":1,"17":1,"18":1},"2":{"84":1}}],["comply",{"2":{"44":1,"55":1,"66":1,"70":1}}],["complexity",{"2":{"36":1}}],["complex",{"2":{"10":2,"81":1}}],["comes",{"2":{"1":1}}],["code",{"2":{"6":1,"13":1,"18":2,"26":1,"41":1}}],["captialisation",{"2":{"75":1}}],["cameracontrols",{"2":{"94":1}}],["came",{"2":{"64":1}}],["cairomakie",{"2":{"54":1,"83":2}}],["caxes",{"2":{"27":2,"74":2}}],["car",{"2":{"17":1}}],["cartesianindex",{"2":{"17":11}}],["caluclate",{"2":{"74":1}}],["calculations",{"2":{"54":1,"75":1}}],["calculating",{"2":{"14":1,"74":1}}],["calculates",{"2":{"74":1}}],["calculated",{"2":{"37":2,"49":1}}],["calculate",{"2":{"14":1,"17":1,"37":2,"46":1,"47":2,"49":1,"54":1,"75":2,"84":1}}],["calling",{"2":{"54":1}}],["called",{"2":{"16":1,"62":3,"75":1}}],["call",{"2":{"1":1,"18":1}}],["case",{"2":{"13":1,"35":1,"43":1,"51":1}}],["cases",{"2":{"0":1,"59":1,"86":1}}],["cataxis",{"2":{"74":2}}],["categoricalaxis",{"2":{"74":1}}],["categorical",{"2":{"9":1,"17":1,"30":1,"37":1,"41":4,"49":2,"50":1,"51":1,"52":2,"53":2,"54":3,"74":1,"75":1,"81":1}}],["cat",{"0":{"8":1},"2":{"8":2}}],["cache=1gb```",{"2":{"74":1}}],["cache=1e9",{"2":{"16":2}}],["cache=",{"2":{"74":1}}],["cache=5",{"2":{"74":1}}],["cache=yaxdefaults",{"2":{"74":1}}],["caches",{"2":{"0":1}}],["cachesize",{"2":{"0":2,"75":1}}],["cache",{"2":{"0":6,"69":1,"74":4,"75":7}}],["caching",{"0":{"0":1}}],["can",{"2":{"0":5,"2":1,"3":1,"13":2,"14":1,"16":3,"17":1,"18":3,"24":2,"30":1,"31":1,"33":1,"35":1,"36":1,"37":2,"41":1,"43":2,"44":1,"45":1,"50":1,"54":1,"60":1,"62":3,"63":2,"64":1,"70":1,"71":1,"72":1,"74":11,"75":6,"77":1,"80":2,"86":2}}],["msc",{"2":{"84":3,"85":2}}],["mscarray",{"2":{"84":2}}],["md",{"2":{"77":2}}],["mm",{"2":{"44":2,"55":2,"66":2,"70":2}}],["mpi",{"2":{"43":1,"90":2}}],["m",{"2":{"20":2}}],["miss",{"2":{"75":1}}],["missing",{"2":{"14":2,"16":6,"17":2,"36":1,"37":2,"44":2,"56":4,"57":6,"58":6,"59":10,"71":3,"72":1,"74":2,"75":2,"94":1}}],["minimized",{"2":{"75":1}}],["minutes",{"2":{"44":1,"56":2,"57":3,"58":3,"59":5}}],["might",{"2":{"19":1,"86":1}}],["mymean",{"2":{"18":4}}],["my",{"2":{"16":2}}],["manager",{"2":{"80":1}}],["many",{"2":{"62":1,"75":1}}],["mahecha",{"2":{"64":1}}],["mar",{"2":{"49":4,"50":2,"51":1,"52":4,"53":4,"54":6}}],["marketdata",{"2":{"41":2}}],["master",{"2":{"48":1}}],["mask",{"2":{"37":2}}],["makie",{"2":{"54":1,"94":1}}],["making",{"2":{"11":1,"55":1}}],["make",{"2":{"34":1,"35":2,"71":1,"74":1,"75":2,"78":1,"94":1}}],["main",{"2":{"31":1,"75":1}}],["machine",{"2":{"18":1,"62":1}}],["matching",{"2":{"81":1}}],["match",{"2":{"75":2}}],["matched",{"2":{"74":1}}],["mat",{"2":{"17":4}}],["matrix",{"2":{"16":2,"17":1,"20":1,"41":1,"50":1,"54":2,"62":1,"72":2,"84":1}}],["maximal",{"2":{"75":1}}],["maximum",{"2":{"36":1,"74":1,"75":1}}],["maxbuf",{"2":{"75":1}}],["max",{"2":{"16":2,"69":1,"74":7,"75":2}}],["maxsize",{"2":{"0":2}}],["may",{"2":{"10":1,"15":1,"43":1,"44":1,"49":4,"50":2,"51":1,"52":4,"53":4,"54":6,"82":1}}],["maps",{"0":{"90":1},"1":{"91":1}}],["mapslice",{"2":{"18":1}}],["mapslices",{"0":{"14":1},"2":{"10":1,"13":1,"14":1,"18":1,"36":1,"84":1}}],["mapped",{"2":{"74":1}}],["mapping",{"2":{"74":1,"75":3}}],["mapcube",{"0":{"15":1},"1":{"16":1,"17":1},"2":{"10":1,"13":1,"15":1,"16":4,"17":2,"18":3,"74":5,"75":2}}],["map",{"0":{"13":1,"36":1},"2":{"10":1,"13":2,"17":3,"18":3,"36":4,"37":1,"49":2,"53":1,"54":1,"74":2,"81":1,"84":2}}],["moll",{"0":{"93":1}}],["mowingwindow",{"2":{"74":1}}],["movingwindow",{"2":{"74":4}}],["module",{"2":{"74":1}}],["model",{"2":{"44":1,"55":1,"63":2,"66":1,"70":1}}],["modification",{"2":{"11":1,"18":1}}],["modify",{"0":{"11":1}}],["monthday",{"2":{"84":4}}],["monthly",{"0":{"47":1}}],["month",{"2":{"32":7,"34":3,"35":4,"47":1,"49":4,"50":1,"51":1,"52":5,"53":2,"54":3,"74":1,"84":2}}],["moment",{"2":{"22":1}}],["more",{"2":{"9":1,"10":1,"31":1,"36":1,"37":1,"58":1,"59":1,"64":1,"69":1,"74":3,"75":1,"81":1}}],["most",{"2":{"1":1,"15":1,"19":1}}],["mesh",{"2":{"94":2}}],["merely",{"2":{"71":1}}],["measured",{"2":{"63":1,"64":1}}],["measure",{"2":{"62":1}}],["measures",{"2":{"43":1}}],["means",{"0":{"47":1},"2":{"14":1,"74":1}}],["mean",{"0":{"83":1,"85":1},"1":{"84":1,"85":1},"2":{"10":1,"14":3,"18":4,"37":4,"43":1,"44":1,"49":10,"50":2,"51":1,"54":2,"56":2,"57":3,"58":3,"59":5,"74":1,"84":5}}],["meter",{"2":{"43":1}}],["method",{"2":{"16":2}}],["methods",{"2":{"7":1,"18":1,"43":1,"44":1,"56":2,"57":3,"58":3,"59":5}}],["metadata",{"2":{"8":1,"9":1,"10":1,"12":1,"13":1,"14":2,"16":5,"17":3,"19":1,"20":1,"21":2,"22":3,"24":2,"27":1,"28":3,"29":1,"30":1,"32":5,"36":3,"37":3,"43":1,"44":1,"49":2,"50":1,"52":3,"53":2,"54":3,"56":2,"57":3,"58":3,"59":5,"71":2,"74":1,"81":3,"84":1}}],["members",{"2":{"75":1}}],["member",{"2":{"6":1}}],["memory",{"2":{"1":1,"17":1,"19":3,"35":4,"48":1,"62":1,"71":1,"74":2,"75":1}}],["multiplying",{"2":{"36":1}}],["multiply",{"2":{"10":1,"36":1}}],["multiple",{"0":{"40":1,"89":1},"2":{"7":1,"18":1,"43":1,"44":1,"62":1,"74":1}}],["must",{"2":{"0":1,"64":1,"74":1,"75":1}}],["mb",{"2":{"0":1,"44":1,"56":2}}],["pkg",{"2":{"80":2}}],["pkg>",{"2":{"78":1}}],["purple",{"2":{"83":1}}],["purpose",{"2":{"26":1,"36":1}}],["pull",{"2":{"76":1}}],["public",{"0":{"74":1}}],["published",{"2":{"54":1}}],["plt",{"2":{"91":1}}],["place",{"2":{"75":1}}],["plots",{"2":{"94":1}}],["plot",{"0":{"85":1,"91":1,"94":1},"2":{"54":2}}],["plotting",{"0":{"90":1},"1":{"91":1},"2":{"0":1}}],["plus",{"2":{"48":1,"74":1}}],["pydata",{"2":{"48":1}}],["p",{"2":{"35":10,"44":1,"55":1,"66":1,"70":1}}],["picture",{"2":{"62":1,"63":1}}],["pieces",{"2":{"26":1}}],["pixel",{"0":{"83":1},"1":{"84":1,"85":1},"2":{"18":2}}],["post=getpostfunction",{"2":{"74":1}}],["positions",{"2":{"75":2}}],["position",{"2":{"62":1}}],["positional",{"2":{"57":1,"58":1}}],["possible",{"2":{"18":2,"19":1,"30":1,"71":1,"74":3,"75":1}}],["pos",{"2":{"17":2}}],["point3f",{"2":{"94":1}}],["point",{"2":{"17":3,"43":1,"81":1}}],["points",{"2":{"4":4,"5":4,"6":2,"8":1,"9":1,"10":3,"12":3,"13":3,"14":4,"16":9,"17":16,"18":1,"20":2,"21":6,"22":4,"24":9,"25":3,"27":9,"28":6,"29":2,"30":3,"32":14,"34":6,"35":21,"36":9,"37":5,"39":1,"40":5,"41":4,"43":6,"44":6,"45":2,"49":3,"50":2,"52":2,"53":1,"54":7,"55":3,"56":6,"57":4,"58":9,"59":16,"60":2,"62":2,"63":1,"66":3,"70":6,"71":6,"81":5,"84":1,"90":3}}],["page",{"2":{"94":1}}],["paste",{"2":{"78":1}}],["pass",{"2":{"74":1}}],["passing",{"2":{"74":3}}],["passed",{"2":{"74":4}}],["pair",{"2":{"75":1}}],["partitioned",{"2":{"75":1}}],["participate",{"2":{"74":1}}],["particular",{"2":{"65":1}}],["parts",{"2":{"74":1}}],["parent",{"2":{"43":1,"90":1}}],["parallelized",{"2":{"75":1}}],["parallelisation",{"2":{"74":1}}],["parallel",{"2":{"18":1,"62":1}}],["package",{"2":{"18":1,"58":1,"60":1,"73":1,"80":1}}],["packages",{"2":{"16":1,"19":1}}],["paths",{"2":{"75":2}}],["path=",{"2":{"16":2,"43":1,"67":1,"68":1,"69":1,"70":1,"71":1,"75":1}}],["path=f",{"2":{"4":1,"5":1,"6":1}}],["path",{"2":{"0":1,"43":3,"44":2,"45":2,"48":2,"55":2,"66":2,"69":3,"74":4,"78":1}}],["pr",{"2":{"78":1}}],["primem",{"2":{"45":1}}],["printed",{"2":{"41":2}}],["prior",{"2":{"1":1}}],["props",{"2":{"81":2}}],["properly",{"2":{"47":1}}],["properties=dict",{"2":{"75":1}}],["properties",{"2":{"10":2,"18":2,"24":3,"25":3,"43":1,"44":1,"45":1,"48":1,"54":1,"55":1,"66":1,"70":1,"74":5,"75":1,"90":1}}],["probably",{"2":{"75":1}}],["provide",{"2":{"74":1}}],["provides",{"2":{"62":1,"87":1}}],["provided",{"2":{"31":1,"71":1,"74":1}}],["process",{"2":{"62":1,"75":2}}],["processed",{"2":{"13":1}}],["progressmeter",{"2":{"74":1}}],["progress",{"2":{"48":1,"86":1,"88":1}}],["projection",{"0":{"92":1,"93":1},"1":{"93":1,"94":1},"2":{"45":1}}],["product",{"2":{"17":1}}],["pressing",{"2":{"80":1}}],["pre",{"2":{"74":2}}],["previous",{"2":{"54":1,"69":1,"71":1,"74":1}}],["previously",{"2":{"37":1}}],["prepared",{"2":{"44":1,"55":1,"66":1,"70":1}}],["prep",{"2":{"9":2}}],["precipitation",{"2":{"9":2,"63":1,"64":1,"81":2}}],["permute",{"2":{"75":1}}],["permuteloopaxes",{"2":{"75":1}}],["permutation",{"2":{"75":1}}],["persistend",{"2":{"75":1}}],["persistency",{"2":{"75":1}}],["persistent",{"2":{"74":1,"75":2}}],["persist",{"2":{"69":1,"74":1,"75":1}}],["perform",{"2":{"75":1}}],["performed",{"2":{"13":2}}],["performing",{"2":{"10":1}}],["per",{"2":{"7":1,"14":1,"49":1,"52":1,"53":1}}],["=interval",{"2":{"59":2}}],["===",{"2":{"41":1}}],["==",{"2":{"12":1,"41":1,"84":1}}],["=>nan",{"2":{"94":1}}],["=>",{"2":{"10":2,"12":1,"13":1,"16":2,"17":5,"18":1,"24":3,"25":3,"39":1,"40":1,"41":5,"43":20,"44":20,"45":1,"48":1,"49":5,"50":1,"52":3,"53":2,"54":3,"55":10,"56":20,"57":30,"58":30,"59":50,"66":10,"70":10,"81":6,"90":10}}],["=>2",{"2":{"4":1}}],["=>10",{"2":{"4":1}}],["=>5",{"2":{"4":1,"5":1}}],["=",{"2":{"0":5,"2":4,"4":9,"5":15,"6":9,"8":5,"9":5,"10":4,"11":1,"12":1,"13":1,"16":14,"17":16,"18":5,"20":3,"21":8,"22":4,"24":5,"25":4,"27":1,"28":3,"30":6,"32":7,"34":6,"35":17,"37":7,"39":1,"40":3,"41":7,"43":2,"44":2,"45":2,"48":8,"49":16,"50":1,"51":1,"52":4,"53":1,"54":22,"55":2,"56":2,"57":6,"58":6,"59":3,"66":2,"69":8,"70":2,"71":4,"72":5,"74":11,"75":7,"81":5,"83":10,"84":11,"85":5,"90":8,"91":5,"92":7,"93":5,"94":6}}],["dc",{"2":{"75":2}}],["drop",{"2":{"54":1}}],["dropdims",{"0":{"50":1},"2":{"49":2,"50":2,"54":1}}],["drivers",{"2":{"74":1}}],["driver",{"2":{"46":1,"69":2,"74":6}}],["driver=",{"2":{"4":1,"5":1,"6":1,"67":2,"68":2,"69":3,"70":1,"71":2,"74":3}}],["dkrz",{"2":{"43":1,"90":2}}],["due",{"2":{"51":1}}],["dufresne",{"2":{"44":1,"55":1,"66":1,"70":1}}],["dummy",{"2":{"30":1,"32":1,"83":1,"84":1}}],["during",{"2":{"17":1,"18":1,"19":1}}],["dd",{"2":{"27":1,"84":1}}],["d",{"2":{"17":5,"41":5,"54":3,"84":1}}],["dash",{"2":{"85":1}}],["danger",{"2":{"69":1}}],["daysinmonth",{"2":{"49":1,"52":1}}],["days",{"2":{"47":1,"49":2,"51":1,"52":2,"53":2}}],["dayofyear",{"2":{"16":1}}],["day",{"2":{"10":2,"12":1,"13":1,"14":1,"16":4,"17":3,"18":1,"24":3,"25":1,"83":1,"84":4,"85":1}}],["datconfig",{"2":{"75":2}}],["datset",{"2":{"74":1}}],["dat",{"2":{"74":8,"75":16}}],["datum",{"2":{"45":1}}],["datetimenoleap",{"2":{"49":4,"52":7,"53":5,"54":5}}],["datetime360day",{"2":{"44":6,"55":3,"56":6,"57":7,"58":9,"59":15,"66":3,"70":3}}],["datetime",{"2":{"41":5,"43":2,"90":1}}],["date",{"2":{"10":5,"12":3,"13":3,"14":3,"16":12,"17":11,"18":3,"24":8,"25":3,"32":24,"34":8,"35":11,"62":1,"83":2,"84":5,"90":1}}],["datesid",{"2":{"84":2}}],["dates",{"2":{"10":2,"12":1,"13":1,"14":1,"16":5,"17":3,"18":1,"24":3,"25":1,"32":8,"34":4,"35":5,"46":1,"64":1,"83":1,"84":2,"90":1}}],["data=cube1",{"2":{"74":1}}],["databases",{"2":{"62":1}}],["dataframe",{"2":{"37":1,"74":1}}],["dataframes",{"2":{"37":1}}],["datacubes",{"2":{"74":1}}],["datacube",{"0":{"89":1},"2":{"37":2,"71":1,"74":1}}],["datatypes",{"2":{"31":1}}],["data1",{"2":{"30":2}}],["data3",{"2":{"25":1}}],["data2",{"2":{"24":2,"30":2}}],["datasetaxis",{"2":{"74":2,"75":1}}],["datasetaxis=",{"2":{"74":1,"75":1}}],["dataset",{"0":{"25":1,"31":1,"33":1,"34":1,"35":1,"38":1,"41":1,"63":1,"69":1,"70":1,"72":1},"1":{"32":1,"33":1,"34":2,"35":2,"39":1,"40":1},"2":{"0":3,"3":1,"4":4,"5":2,"6":3,"9":1,"10":1,"19":1,"25":2,"33":1,"34":3,"35":5,"39":2,"40":3,"41":5,"43":3,"44":3,"45":3,"55":3,"56":1,"63":3,"64":2,"66":3,"67":1,"68":1,"69":3,"70":4,"71":2,"72":2,"74":18,"75":9,"90":2}}],["datasets",{"0":{"3":1,"23":1,"42":1,"46":1,"55":1,"66":1},"1":{"4":1,"5":1,"6":1,"24":1,"25":1,"43":1,"44":1,"45":1,"47":1,"48":1,"49":1,"50":1,"51":1,"52":1,"53":1,"54":1,"56":1,"57":1,"58":1,"59":1,"60":1,"67":1,"68":1,"69":1,"70":1,"71":1,"72":1},"2":{"0":2,"19":1,"23":1,"35":1,"42":1,"69":1,"74":8,"75":4,"88":1}}],["data",{"0":{"29":1,"48":1,"64":1},"2":{"0":3,"1":2,"7":1,"8":1,"10":2,"11":1,"16":4,"17":2,"18":2,"20":1,"21":1,"29":1,"32":1,"34":1,"35":2,"37":2,"43":2,"44":4,"48":8,"55":3,"56":2,"57":3,"58":3,"59":5,"61":1,"62":3,"63":2,"64":3,"66":3,"69":2,"70":3,"71":3,"72":1,"74":20,"75":12,"81":4,"82":1,"83":2,"84":1,"88":4,"90":5,"92":1}}],["dev",{"2":{"78":1}}],["dependencies",{"2":{"78":1}}],["detect",{"2":{"74":1,"75":1}}],["determined",{"2":{"75":1}}],["determines",{"2":{"74":1}}],["determine",{"2":{"1":1,"74":1}}],["defaultfillval",{"2":{"75":1}}],["defaults",{"2":{"74":7}}],["default",{"2":{"71":1,"74":1,"75":4}}],["definition",{"2":{"64":1}}],["defining",{"2":{"18":1}}],["defines",{"2":{"74":1}}],["defined",{"2":{"21":1,"22":1,"37":1,"54":1,"60":1,"62":1,"65":1,"71":1,"81":1}}],["define",{"0":{"84":1},"2":{"16":2,"32":1,"37":1,"54":1,"74":2,"83":1}}],["deletes",{"2":{"69":1,"74":1}}],["delete",{"2":{"69":2,"71":1}}],["denoting",{"2":{"74":1}}],["dense",{"2":{"62":1}}],["denvil",{"2":{"44":2,"55":2,"66":2,"70":2}}],["dec",{"2":{"49":4,"50":2,"51":1,"52":4,"53":4,"54":6}}],["degree",{"2":{"45":1}}],["degc",{"2":{"44":1,"56":2,"57":3,"58":3,"59":5}}],["dest",{"2":{"93":1}}],["desc",{"2":{"74":3,"75":3}}],["descriptor",{"2":{"75":4}}],["descriptors",{"2":{"74":2}}],["descriptions",{"2":{"74":1}}],["description",{"2":{"31":1,"74":4,"75":11}}],["described",{"2":{"88":1}}],["describe",{"2":{"74":2}}],["describes",{"2":{"7":1,"10":1,"19":1,"23":1,"42":1,"59":1,"61":1,"73":1,"75":1}}],["describing",{"2":{"74":1}}],["designed",{"2":{"19":2,"62":1}}],["desired",{"2":{"16":1,"75":4}}],["demand",{"2":{"13":1}}],["diverging",{"2":{"54":1}}],["divided",{"2":{"36":1}}],["differing",{"2":{"74":1}}],["difference",{"2":{"54":1}}],["differences",{"2":{"41":1,"49":1,"54":1,"75":1}}],["different",{"2":{"9":2,"16":1,"18":1,"27":1,"28":1,"40":1,"47":1,"63":1,"74":3,"75":2,"86":1}}],["diff",{"2":{"49":2,"54":3}}],["directory",{"2":{"43":1,"67":2,"68":2}}],["directories",{"2":{"42":1,"75":1}}],["direct",{"2":{"41":1}}],["directly",{"2":{"16":1,"22":1,"23":1,"24":1,"72":2}}],["dictionary",{"2":{"63":1,"74":3}}],["dict",{"2":{"4":1,"5":1,"8":1,"9":1,"10":2,"12":1,"13":1,"14":2,"16":5,"17":4,"18":1,"20":1,"21":2,"22":3,"24":4,"25":2,"27":1,"28":3,"29":1,"30":1,"32":5,"36":3,"37":3,"41":2,"43":2,"44":2,"45":1,"49":3,"50":2,"52":4,"53":3,"54":3,"55":1,"56":2,"57":3,"58":3,"59":5,"66":1,"70":1,"71":1,"74":3,"81":3,"84":1,"90":1}}],["dimgroupbyarray",{"2":{"49":1,"52":1}}],["dime",{"2":{"43":1}}],["dimensional",{"2":{"61":1,"62":2,"74":1}}],["dimensionaldata",{"2":{"17":1,"22":2,"27":1,"28":1,"32":1,"34":1,"35":1,"41":1,"46":1,"48":1,"49":16,"50":10,"52":6,"53":6,"54":39,"58":1,"59":2,"60":3,"62":1,"65":1,"81":1,"82":3,"84":1,"90":1}}],["dimensions",{"0":{"34":1,"35":1},"2":{"9":1,"10":1,"13":1,"15":1,"16":2,"17":2,"18":1,"24":2,"28":1,"30":1,"33":1,"35":3,"36":2,"40":1,"48":1,"49":16,"50":10,"52":6,"53":6,"54":39,"55":1,"60":2,"62":3,"63":1,"74":8,"75":3,"81":3,"82":1}}],["dimension",{"0":{"8":1,"9":1,"60":1,"65":1},"2":{"2":1,"8":2,"9":1,"10":1,"14":2,"16":3,"17":3,"32":1,"35":1,"50":1,"51":1,"54":1,"58":1,"60":1,"62":1,"64":1,"65":1,"74":3,"75":3,"81":1}}],["dimarray",{"0":{"22":1},"2":{"17":3,"22":6,"49":1,"50":1,"52":1,"53":2,"54":3,"62":1}}],["dims=2",{"2":{"84":1}}],["dims=",{"2":{"14":2,"18":1,"36":1,"49":5,"50":1,"52":1,"54":1}}],["dims",{"2":{"8":3,"9":1,"10":1,"12":1,"13":1,"14":2,"16":5,"17":4,"20":1,"21":3,"22":2,"24":2,"27":3,"28":4,"29":1,"30":1,"32":5,"36":3,"37":3,"41":1,"43":1,"44":1,"48":1,"49":6,"50":1,"52":5,"53":2,"54":5,"56":2,"57":3,"58":3,"59":5,"71":1,"81":2,"84":1}}],["dim",{"2":{"2":2,"4":7,"5":8,"6":2,"8":2,"9":3,"10":3,"16":3,"17":4,"18":3,"20":2,"22":2,"24":7,"27":9,"28":6,"29":3,"30":4,"32":3,"34":3,"35":2,"39":1,"40":5,"41":2,"49":2,"50":2,"54":6,"70":3,"71":6,"81":4,"84":1}}],["disregard",{"2":{"75":1}}],["dispatch",{"2":{"75":1}}],["discribe",{"2":{"74":2}}],["distribute",{"2":{"18":1}}],["distributed",{"0":{"18":1},"2":{"0":1,"18":2}}],["diskarray",{"2":{"74":1}}],["diskarrays",{"2":{"2":9,"4":4,"5":4,"6":4,"74":2,"75":1}}],["disk",{"2":{"1":1,"16":1,"22":1,"62":1,"71":3,"72":2,"74":1,"75":2}}],["dodgerblue",{"2":{"85":1}}],["dot",{"2":{"85":1}}],["documenter",{"2":{"94":1}}],["documentation",{"0":{"77":1},"1":{"78":1}}],["doc",{"2":{"69":1}}],["docstring",{"2":{"74":1}}],["docs",{"0":{"78":1},"2":{"63":1,"77":2,"78":6,"82":1}}],["download",{"0":{"48":1},"2":{"44":2,"45":2,"48":1,"55":2,"66":2}}],["downloads",{"2":{"44":1,"45":1,"46":1,"48":1,"55":1,"66":1}}],["done",{"2":{"28":1,"36":1,"54":1,"77":2}}],["doing",{"2":{"18":1,"27":1,"29":1,"78":1}}],["does",{"2":{"18":1,"71":1,"74":1,"75":1}}],["do",{"0":{"30":1,"31":1,"36":1,"37":1,"38":1,"41":1},"1":{"32":1,"33":1,"34":1,"35":1,"39":1,"40":1},"2":{"1":1,"13":1,"16":1,"17":3,"18":1,"26":2,"36":1,"47":1,"54":1,"71":1,"72":1,"75":1,"78":1,"80":1}}],["dsw",{"2":{"49":2,"54":2}}],["dsfinal",{"2":{"30":1,"36":2,"37":2}}],["ds2",{"2":{"30":3,"36":1,"70":1}}],["ds1",{"2":{"30":3,"36":3,"37":1}}],["dschunked",{"2":{"4":3,"5":3,"6":3}}],["ds",{"2":{"0":3,"4":2,"5":2,"6":2,"25":1,"34":2,"35":12,"39":1,"40":1,"41":2,"43":1,"44":1,"45":1,"48":5,"49":10,"52":1,"54":3,"55":1,"56":2,"66":1,"67":3,"68":3,"69":3,"70":2,"71":1,"72":5,"74":3,"75":1,"94":2}}],["wglmakie",{"2":{"94":2}}],["wgs",{"2":{"45":3}}],["would",{"2":{"74":2}}],["world",{"2":{"45":2}}],["workdir",{"2":{"75":1}}],["worker",{"2":{"74":1}}],["workers",{"2":{"74":1}}],["work",{"2":{"19":2,"48":1,"61":1,"74":1,"86":2,"88":1}}],["workload",{"2":{"18":1}}],["working",{"2":{"16":1,"72":1}}],["works",{"2":{"6":1,"29":1,"34":1,"35":1,"71":1}}],["workflows",{"2":{"1":1}}],["written",{"2":{"74":1,"75":1}}],["writing",{"2":{"72":1}}],["writefac",{"2":{"75":1}}],["writefac=4",{"2":{"69":1,"74":1}}],["writes",{"2":{"74":1}}],["write",{"0":{"66":1,"67":1,"68":1},"1":{"67":1,"68":1,"69":1,"70":1,"71":1,"72":1},"2":{"71":1,"74":2}}],["wrapping",{"2":{"51":1,"60":2}}],["wrapped",{"2":{"16":1}}],["wrap",{"2":{"0":1,"74":1}}],["w",{"2":{"54":2,"72":2}}],["www",{"2":{"44":1,"55":1,"66":1}}],["was",{"2":{"17":1,"18":1,"75":1}}],["way",{"2":{"15":1,"19":1,"27":1}}],["warning",{"2":{"11":1,"19":1,"27":1,"35":1,"40":1,"48":1,"69":1,"71":1,"74":1}}],["wanted",{"2":{"75":1}}],["wants",{"2":{"71":1}}],["want",{"2":{"0":1,"1":1,"64":1,"75":1,"78":1,"88":1}}],["white",{"2":{"92":1,"93":1}}],["while",{"2":{"71":1}}],["which",{"2":{"9":1,"16":1,"17":2,"28":1,"35":2,"54":1,"56":1,"59":1,"60":1,"64":3,"74":5,"75":4,"88":1}}],["whose",{"0":{"34":1,"35":1}}],["whole",{"2":{"8":3}}],["whether",{"2":{"75":2}}],["when",{"2":{"1":1,"6":1,"13":1,"64":1,"74":2,"75":1}}],["whereas",{"2":{"62":1}}],["where",{"2":{"0":1,"18":1,"35":4,"47":1,"59":1,"72":1,"74":1,"75":4}}],["wintri",{"0":{"92":1},"1":{"93":1,"94":1}}],["windowloopinds",{"2":{"75":1}}],["window",{"2":{"74":1,"75":1}}],["without",{"2":{"75":1}}],["within",{"2":{"58":1}}],["with",{"2":{"4":1,"5":1,"8":1,"10":1,"12":1,"13":1,"16":7,"17":4,"18":2,"19":1,"24":3,"27":1,"28":1,"35":6,"36":2,"37":3,"40":2,"41":3,"43":3,"44":2,"49":3,"50":1,"52":2,"53":2,"54":5,"55":1,"56":2,"57":3,"58":3,"59":5,"61":1,"63":1,"66":1,"69":1,"70":2,"71":2,"72":1,"74":11,"75":1,"77":1,"81":4,"82":3,"86":1,"88":1,"90":2,"92":1}}],["will",{"2":{"0":1,"1":1,"4":1,"5":1,"13":1,"16":3,"17":1,"31":1,"35":1,"36":2,"37":2,"40":2,"41":1,"46":1,"51":2,"69":3,"71":3,"72":1,"74":12,"75":3,"88":1}}],["wether",{"2":{"74":1}}],["weight=",{"2":{"74":1}}],["weight=nothing",{"2":{"74":1}}],["weight",{"0":{"52":1},"1":{"53":1,"54":1},"2":{"51":1,"53":1,"54":1}}],["weights",{"0":{"53":1},"2":{"49":3,"53":2,"54":1}}],["weightedmean",{"2":{"74":1}}],["weighted",{"0":{"54":1},"2":{"37":1,"47":1,"49":8,"54":8,"74":3}}],["well",{"2":{"37":1,"41":1,"71":1,"74":1}}],["welcome",{"2":{"6":1,"76":1}}],["were",{"2":{"13":2,"59":1,"75":1,"83":1}}],["we",{"2":{"0":1,"8":2,"9":1,"13":2,"14":1,"16":5,"17":5,"18":2,"24":2,"28":1,"30":1,"31":1,"32":1,"33":1,"35":2,"36":2,"37":5,"41":4,"43":1,"49":1,"50":1,"51":2,"54":1,"58":1,"64":1,"71":3,"72":4,"82":2,"83":1,"90":1}}],["oob",{"2":{"74":1}}],["o",{"2":{"48":4,"54":4,"74":5}}],["oct",{"2":{"49":4,"50":2,"51":1,"52":4,"53":4,"54":6}}],["ocean",{"2":{"44":1,"55":1,"66":1,"70":1}}],["occuring",{"2":{"4":1}}],["o1",{"2":{"44":2,"55":2,"66":2,"70":1}}],["ohlcv",{"2":{"41":3}}],["ouput",{"2":{"78":1}}],["our",{"2":{"36":1,"37":1,"84":1}}],["outcube",{"2":{"75":1}}],["outcubes",{"2":{"75":1}}],["outcs",{"2":{"75":1}}],["outsize",{"2":{"75":1}}],["outar",{"2":{"75":2}}],["out",{"2":{"48":1,"74":2,"75":1}}],["outtype",{"2":{"16":2,"74":1,"75":2}}],["outdims=outdims",{"2":{"17":1,"18":1}}],["outdims",{"2":{"16":4,"74":6}}],["outputcube",{"2":{"75":3}}],["outputs",{"2":{"16":1}}],["output",{"2":{"6":1,"16":3,"17":1,"18":3,"44":1,"55":1,"66":1,"70":1,"74":11,"75":9,"94":1}}],["optimal",{"2":{"75":1}}],["optifunc",{"2":{"75":1}}],["optionally",{"2":{"74":1}}],["option",{"2":{"32":1,"34":1}}],["options",{"2":{"29":1}}],["operation",{"2":{"75":1}}],["operations",{"0":{"16":1},"2":{"10":1,"49":1,"74":2,"75":3}}],["operates",{"2":{"74":1}}],["openinterval",{"2":{"59":1}}],["open",{"0":{"59":1},"2":{"0":2,"41":4,"43":2,"44":2,"45":1,"55":2,"59":2,"66":1,"70":1,"72":6,"74":3,"90":1}}],["obj",{"2":{"37":2,"83":1,"85":1}}],["objects",{"2":{"74":2}}],["object",{"2":{"11":1,"43":1,"74":5,"75":3}}],["obtain",{"0":{"29":1},"2":{"41":1,"51":1}}],["otherwise",{"2":{"74":1}}],["others",{"2":{"41":1}}],["other",{"0":{"86":1},"1":{"87":1,"88":1,"89":1},"2":{"19":1,"86":1,"88":1}}],["omit",{"2":{"18":1}}],["overview",{"0":{"87":1},"2":{"86":1,"87":1}}],["overwrite",{"0":{"69":1},"2":{"69":3,"74":4,"75":2}}],["overwrite=true",{"2":{"16":2,"69":2,"71":3}}],["over",{"0":{"16":1,"88":1},"2":{"10":1,"15":1,"18":1,"54":1,"74":8,"75":1,"88":1}}],["ormax",{"2":{"74":1}}],["orca2",{"2":{"44":1,"55":1,"66":1,"70":1}}],["orangered",{"2":{"37":1}}],["ordered",{"2":{"62":1,"63":1}}],["ordereddict",{"2":{"17":1}}],["orderedcollections",{"2":{"17":1}}],["order",{"2":{"16":1,"47":1,"72":1}}],["original",{"2":{"44":2,"56":4,"57":6,"58":6,"59":10}}],["originates",{"2":{"9":1}}],["origin",{"2":{"10":2,"12":1,"13":1,"18":1,"24":3,"25":1,"81":2}}],["or",{"0":{"31":1},"1":{"32":1,"33":1,"34":1,"35":1},"2":{"1":2,"6":1,"10":1,"13":2,"15":1,"22":1,"28":1,"33":1,"43":1,"55":2,"62":3,"65":2,"69":1,"74":21,"75":7,"80":1,"81":2}}],["once",{"2":{"54":1,"64":1,"75":1,"77":1}}],["onlinestat",{"2":{"74":2}}],["onlinestats",{"2":{"37":2}}],["only",{"2":{"6":1,"13":1,"14":1,"16":1,"17":1,"19":1,"24":2,"36":1,"71":1,"74":2}}],["on",{"2":{"1":2,"6":1,"7":1,"10":2,"13":2,"16":1,"18":2,"26":1,"44":2,"55":1,"56":2,"57":3,"58":3,"59":5,"62":1,"66":1,"70":1,"71":1,"74":5,"75":4}}],["ones",{"2":{"28":1}}],["oneto",{"2":{"4":4,"5":4,"6":2,"20":2,"24":3,"27":9,"28":6,"39":1,"40":5,"71":6,"81":2}}],["one",{"0":{"39":1},"2":{"0":1,"7":1,"8":2,"14":2,"17":2,"37":1,"41":1,"50":1,"62":2,"63":1,"71":2,"74":8,"75":3,"86":1}}],["own",{"2":{"0":1}}],["offline=true",{"2":{"94":1}}],["offsets",{"2":{"75":1}}],["offset",{"2":{"13":1}}],["often",{"2":{"7":1}}],["of",{"0":{"11":1,"35":1,"47":1,"72":1,"87":2},"2":{"0":2,"1":1,"6":1,"8":3,"9":1,"10":2,"11":1,"12":1,"13":2,"14":1,"15":1,"17":7,"18":3,"19":1,"21":1,"22":1,"26":3,"27":3,"31":1,"32":2,"33":1,"34":1,"35":2,"36":1,"37":1,"44":1,"47":1,"48":1,"52":1,"55":3,"56":1,"58":1,"60":1,"62":7,"63":1,"64":2,"65":2,"66":1,"70":1,"71":1,"72":1,"73":1,"74":50,"75":42,"81":1,"82":2,"84":2,"85":1,"86":1,"87":1}}],["eo",{"2":{"86":1}}],["esdltutorials",{"2":{"86":1}}],["esm1",{"2":{"43":1,"90":2}}],["eltype",{"2":{"81":1}}],["elementtype",{"2":{"75":1}}],["element",{"2":{"8":1,"9":1,"10":2,"13":2,"14":1,"16":3,"17":2,"29":1,"37":1,"49":2,"50":1,"51":1,"52":7,"53":2,"54":3,"57":2,"60":1,"63":1,"64":2,"74":1,"75":1,"84":1}}],["elements",{"0":{"11":1,"57":1},"2":{"8":1,"12":1,"13":2,"18":1,"55":1,"62":1,"74":1,"75":1}}],["empty",{"2":{"75":1}}],["embeds",{"2":{"74":1}}],["either",{"2":{"74":2}}],["error",{"2":{"69":1}}],["equivalent",{"2":{"54":1,"60":1}}],["equally",{"2":{"0":1}}],["epsg",{"2":{"45":5}}],["et",{"2":{"44":1,"55":1,"64":1,"66":1,"70":1}}],["edu",{"2":{"44":1,"55":1,"63":1,"66":1}}],["effectively",{"2":{"36":1}}],["env",{"2":{"78":1}}],["enabling",{"2":{"24":1}}],["enter",{"2":{"80":1}}],["entire",{"2":{"17":1,"19":1,"67":1,"68":1}}],["entries",{"2":{"17":1,"41":1,"43":1,"44":1,"56":2,"57":3,"58":3,"59":5,"72":1,"74":1,"81":1}}],["entry",{"2":{"10":1,"12":1,"13":1,"16":2,"24":2,"49":2,"50":1,"52":2,"53":2,"54":3,"74":1,"77":3}}],["enumerate",{"2":{"17":2,"54":2}}],["end",{"2":{"13":1,"16":1,"17":4,"18":2,"36":1,"49":2,"54":2,"84":2,"94":1}}],["exists",{"2":{"69":1,"74":1,"75":1}}],["existing",{"0":{"8":1},"2":{"69":1,"70":1}}],["exportable=true",{"2":{"94":1}}],["expression",{"2":{"74":1}}],["experiment",{"2":{"44":3,"55":3,"66":3,"70":3}}],["explicitly",{"2":{"13":1,"28":1,"31":1,"75":1}}],["external",{"2":{"43":1,"90":1}}],["extension",{"2":{"74":2}}],["extent",{"2":{"21":2}}],["extended",{"2":{"16":1,"74":1,"75":2}}],["extracts",{"2":{"75":1}}],["extract",{"0":{"27":1},"1":{"28":1},"2":{"75":1}}],["extra",{"2":{"18":1}}],["executes",{"2":{"74":1}}],["execute",{"2":{"18":1}}],["exactly",{"2":{"5":1,"29":1,"41":1}}],["examples",{"2":{"6":1,"29":2,"44":1,"46":1,"55":1,"66":1,"77":1}}],["example",{"2":{"0":1,"1":1,"5":1,"10":1,"18":2,"28":1,"34":1,"35":1,"36":1,"37":1,"44":1,"47":1,"55":2,"62":2,"63":1,"64":1,"66":2,"74":3,"75":1,"77":2,"81":2}}],["e",{"2":{"7":1,"8":1,"10":1,"11":1,"13":1,"17":2,"18":1,"21":1,"22":1,"24":1,"32":1,"60":1,"62":1,"65":1,"69":1,"74":6,"75":1,"78":1,"81":1}}],["east",{"2":{"45":1}}],["easier",{"2":{"24":1,"55":1}}],["easily",{"2":{"0":1,"18":1}}],["easy",{"2":{"21":1,"22":1}}],["each",{"2":{"4":1,"5":1,"10":1,"13":1,"17":5,"18":2,"36":2,"37":2,"47":1,"51":1,"63":1,"65":1,"74":3,"75":3,"81":1}}],["everywhere",{"2":{"18":2}}],["every",{"2":{"0":1,"10":1,"13":1,"74":1}}],["features",{"2":{"87":1}}],["feb",{"2":{"49":4,"50":2,"51":1,"52":4,"53":4,"54":6}}],["fallback",{"2":{"75":1}}],["falls",{"2":{"74":1}}],["false",{"2":{"53":1,"54":1,"69":2,"74":3,"75":1}}],["faq",{"0":{"26":1},"1":{"27":1,"28":1,"29":1,"30":1,"31":1,"32":1,"33":1,"34":1,"35":1,"36":1,"37":1,"38":1,"39":1,"40":1,"41":1}}],["faster",{"2":{"75":1}}],["fastest",{"2":{"1":1}}],["fast",{"2":{"1":1,"13":1}}],["frame",{"2":{"88":1}}],["frames",{"2":{"62":1}}],["front",{"2":{"75":1}}],["from",{"0":{"27":1,"29":2,"41":1,"47":1},"1":{"28":1},"2":{"0":1,"8":1,"9":1,"19":1,"27":1,"28":1,"29":4,"35":3,"41":2,"59":1,"64":2,"72":1,"74":6,"75":6,"81":1,"84":1}}],["fr",{"2":{"44":1,"55":1,"66":1,"70":1}}],["frequently",{"0":{"26":1},"1":{"27":1,"28":1,"29":1,"30":1,"31":1,"32":1,"33":1,"34":1,"35":1,"36":1,"37":1,"38":1,"39":1,"40":1,"41":1}}],["fu",{"2":{"75":1}}],["funtion",{"2":{"84":1}}],["fun",{"2":{"74":4}}],["functionality",{"0":{"87":1}}],["functions",{"2":{"10":2,"62":2,"73":1,"74":1,"75":1}}],["function",{"0":{"37":1},"2":{"0":1,"1":1,"13":2,"15":1,"16":6,"18":6,"27":2,"30":1,"36":1,"37":1,"41":1,"46":1,"49":1,"51":1,"54":1,"59":1,"71":1,"74":22,"75":13}}],["future",{"2":{"48":1}}],["further",{"2":{"13":1,"86":1}}],["flag",{"2":{"75":3}}],["float32",{"2":{"16":6,"43":1,"44":1,"56":2,"57":3,"58":3,"59":5,"71":2,"72":4,"75":1}}],["float64",{"2":{"8":1,"9":1,"10":3,"12":3,"13":3,"14":4,"17":9,"20":2,"21":2,"22":4,"24":6,"25":2,"27":1,"28":3,"30":4,"36":12,"37":5,"41":2,"43":4,"44":4,"45":2,"49":3,"50":2,"53":3,"54":6,"55":2,"56":4,"57":2,"58":6,"59":10,"60":3,"66":2,"70":2,"74":1,"75":1,"81":7,"84":2,"90":2}}],["flexible",{"2":{"9":1,"15":1}}],["folder",{"2":{"78":1}}],["follow",{"2":{"78":1,"86":1}}],["follows",{"2":{"16":2,"49":1,"54":1,"72":1}}],["following",{"2":{"2":1,"5":1,"6":1,"16":1,"18":1,"28":1,"46":1,"47":1,"48":1,"74":2,"75":4,"86":1}}],["found",{"2":{"74":1,"75":1}}],["fourth",{"2":{"44":2,"55":2,"66":2,"70":2}}],["fontsize=24",{"2":{"91":1}}],["fontsize=18",{"2":{"54":1}}],["font=",{"2":{"54":1}}],["forwarded",{"2":{"74":1}}],["forwardordered",{"2":{"4":4,"5":4,"6":2,"8":1,"9":1,"10":3,"12":3,"13":3,"14":3,"16":9,"17":9,"20":2,"21":6,"22":4,"24":9,"25":3,"27":9,"28":6,"29":2,"30":4,"32":14,"34":6,"35":10,"36":9,"37":5,"39":1,"40":5,"41":4,"43":6,"44":6,"45":1,"49":3,"50":2,"52":2,"53":1,"54":7,"55":3,"56":6,"57":4,"58":9,"59":15,"60":2,"66":3,"70":6,"71":6,"81":5,"84":1,"90":3}}],["force",{"2":{"74":1}}],["forcing",{"2":{"43":1,"90":1}}],["forms",{"2":{"74":1,"75":2}}],["format",{"2":{"69":1,"74":1,"84":1}}],["formal",{"2":{"64":1}}],["former",{"2":{"27":1}}],["for",{"0":{"6":1,"83":1},"1":{"84":1,"85":1},"2":{"0":2,"1":3,"4":1,"5":1,"6":1,"17":4,"18":1,"32":1,"34":2,"35":2,"36":4,"37":6,"41":5,"44":1,"48":1,"52":1,"54":3,"55":1,"59":1,"60":1,"62":4,"63":3,"64":1,"66":1,"69":1,"70":1,"71":2,"74":19,"75":16,"83":1,"84":2,"86":1}}],["f",{"2":{"2":2,"16":3}}],["field",{"2":{"74":1}}],["fields",{"2":{"37":1,"74":1,"75":4}}],["figure=",{"2":{"85":1}}],["figure",{"2":{"54":2,"83":1,"85":1,"91":1,"92":1,"93":1,"94":1}}],["fig",{"2":{"37":3,"54":8,"83":1,"85":1,"91":2,"92":2,"93":2,"94":3}}],["filterig",{"2":{"84":1}}],["filter",{"2":{"74":2}}],["fillarrays",{"2":{"71":3}}],["fill",{"2":{"71":1,"74":1,"75":1}}],["fillvalue=",{"2":{"75":1}}],["fillvalue",{"2":{"43":1,"44":1,"48":3,"56":2,"57":3,"58":3,"59":5}}],["filling",{"2":{"23":1,"24":1}}],["filename",{"2":{"48":2,"74":1}}],["files",{"0":{"89":1},"2":{"7":1,"42":1,"45":1,"75":2,"78":1}}],["file",{"2":{"2":1,"7":1,"8":2,"9":2,"10":2,"12":2,"13":2,"14":4,"16":10,"17":4,"20":2,"21":2,"22":3,"24":4,"27":2,"28":6,"29":2,"30":2,"32":10,"35":1,"36":6,"37":6,"43":2,"44":4,"52":2,"56":4,"57":6,"58":6,"59":10,"69":2,"71":3,"74":2,"77":4,"81":4,"84":2}}],["findaxis",{"2":{"75":1}}],["findall",{"2":{"17":1,"84":1}}],["find",{"2":{"31":1,"75":1,"86":1}}],["finalizer",{"2":{"75":1}}],["finalize",{"2":{"75":1}}],["finally",{"2":{"17":1,"74":1}}],["final",{"2":{"17":1}}],["firstly",{"2":{"32":1}}],["first",{"2":{"8":4,"16":3,"17":1,"37":1,"40":1,"54":1,"72":1,"74":4,"75":1,"77":1,"81":1,"90":1}}],["fitting",{"2":{"74":1}}],["fittable",{"2":{"74":2}}],["fitcube",{"2":{"37":2}}],["fitsym",{"2":{"74":4}}],["fits",{"2":{"19":1}}],["fit",{"2":{"1":1,"62":1}}],["t=union",{"2":{"75":1}}],["typing",{"2":{"80":1}}],["typically",{"2":{"74":1}}],["type",{"2":{"28":1,"62":1,"64":1,"74":8,"75":3,"81":1,"82":1}}],["types",{"0":{"61":1},"1":{"62":1,"63":1,"64":1,"65":1},"2":{"19":2,"21":1,"22":1,"57":1,"63":1,"74":2,"82":1}}],["tutorial",{"2":{"86":2,"87":1,"88":1}}],["tutorials",{"0":{"86":1},"1":{"87":1,"88":1,"89":1},"2":{"59":1,"86":3}}],["turn",{"2":{"74":1}}],["tuple",{"2":{"2":3,"4":1,"5":1,"6":1,"49":2,"50":1,"52":2,"53":3,"54":5,"74":5,"75":3}}],["tbl",{"2":{"37":2}}],["target",{"2":{"75":1}}],["tab",{"2":{"74":4}}],["tables",{"2":{"88":1}}],["tableaggregator",{"2":{"74":1}}],["table",{"0":{"88":1},"2":{"37":2,"43":1,"44":2,"55":2,"66":2,"70":2,"74":4,"75":1,"90":1}}],["tair",{"2":{"54":1,"74":1}}],["tas",{"2":{"43":5,"90":5}}],["ta",{"2":{"41":3}}],["takes",{"2":{"74":4}}],["taken",{"2":{"35":2}}],["take",{"2":{"16":1,"74":1,"75":2,"78":1}}],["tesselation",{"2":{"94":1}}],["test",{"2":{"75":1,"90":1}}],["testrange",{"2":{"75":1}}],["terminal",{"2":{"78":1}}],["text",{"2":{"77":1}}],["tensors",{"2":{"62":1}}],["tell",{"2":{"31":1}}],["temporary",{"2":{"75":1}}],["temporal",{"2":{"36":1,"46":1,"62":1}}],["tempo",{"2":{"49":6,"52":4,"53":1}}],["temp",{"2":{"9":2}}],["temperature=temperature",{"2":{"35":1}}],["temperature",{"2":{"9":2,"35":4,"43":3,"44":2,"54":2,"56":5,"57":6,"58":6,"59":10,"62":1,"63":1,"64":1,"81":4}}],["tempname",{"2":{"2":1,"4":1,"5":1,"6":1}}],["tip",{"2":{"82":1}}],["tidy",{"2":{"74":1}}],["ticks",{"2":{"62":1}}],["ticks=false",{"2":{"54":1}}],["tick",{"2":{"60":1,"65":1,"81":1}}],["ti=at",{"2":{"54":3}}],["ti=>cyclicbins",{"2":{"49":2,"50":1,"52":2,"53":2,"54":3}}],["tiff",{"0":{"89":1}}],["tif",{"2":{"45":2}}],["title",{"2":{"44":1,"54":1,"55":1,"66":1,"70":1,"77":1}}],["ti",{"2":{"21":4,"43":2,"44":2,"49":15,"50":2,"51":1,"52":8,"53":3,"54":6,"55":1,"56":2,"57":2,"58":3,"59":5,"66":1,"70":1,"90":2}}],["time1",{"2":{"57":2}}],["timearray",{"0":{"41":1},"2":{"41":3}}],["time=1",{"2":{"81":1}}],["time=date",{"2":{"32":1}}],["time=at",{"2":{"32":1}}],["time=between",{"2":{"32":1}}],["time",{"0":{"47":1},"2":{"1":1,"7":1,"8":4,"9":3,"10":3,"12":1,"13":1,"14":7,"16":14,"17":8,"18":5,"21":2,"24":3,"25":1,"30":2,"32":8,"34":4,"35":7,"36":4,"37":3,"41":5,"43":2,"44":1,"50":1,"51":1,"54":1,"56":2,"57":4,"58":3,"59":5,"62":2,"63":1,"74":4,"81":4,"83":1,"84":4,"90":2}}],["timestamp",{"2":{"41":1}}],["timestep",{"2":{"37":1}}],["timeseries",{"2":{"41":3}}],["times",{"2":{"0":1}}],["treat",{"2":{"74":1}}],["treatment",{"2":{"74":1,"75":1}}],["treated",{"2":{"43":1}}],["tries",{"2":{"74":1}}],["translate",{"2":{"92":1,"93":1}}],["transformed",{"2":{"44":1,"55":1,"66":1,"70":1}}],["transformations",{"2":{"92":1}}],["transformation",{"2":{"17":1}}],["transform",{"2":{"17":2}}],["track",{"2":{"74":1}}],["true",{"2":{"12":1,"69":1,"71":1,"74":4,"75":1,"94":1}}],["tspan",{"2":{"16":1}}],["t",{"2":{"16":4,"32":1,"34":2,"35":2,"37":3,"44":1,"56":2,"57":3,"58":3,"59":5,"74":1,"75":2,"83":1,"84":1}}],["two",{"2":{"8":1,"9":1,"29":2,"30":1,"62":1,"75":1}}],["todo",{"2":{"84":1}}],["toghether",{"2":{"75":1}}],["together",{"2":{"41":1,"64":1}}],["toy",{"2":{"71":1}}],["touches",{"2":{"59":1}}],["tolerances",{"2":{"58":1}}],["top",{"2":{"54":1}}],["tos",{"2":{"44":4,"55":2,"56":4,"57":4,"58":3,"59":9,"60":2,"66":2,"67":2,"68":2,"70":1}}],["too",{"2":{"35":1,"62":1}}],["to",{"0":{"9":1,"38":1,"70":1,"76":1,"77":1},"1":{"39":1,"40":1,"77":1,"78":2},"2":{"0":4,"1":4,"3":1,"4":1,"6":2,"7":1,"8":1,"9":1,"10":8,"12":1,"15":1,"16":2,"17":2,"18":6,"19":3,"20":2,"22":3,"23":1,"26":2,"27":2,"29":3,"30":1,"32":2,"34":2,"35":6,"36":1,"37":1,"40":2,"41":2,"42":1,"43":3,"44":1,"46":1,"47":3,"48":2,"50":1,"51":1,"54":1,"55":3,"59":1,"60":1,"61":1,"62":5,"63":3,"64":2,"65":2,"66":1,"67":2,"68":2,"69":1,"70":2,"71":4,"72":3,"74":47,"75":19,"77":2,"78":3,"82":2,"86":1,"88":3,"90":2,"94":1}}],["though",{"2":{"71":1}}],["those",{"2":{"11":1,"19":1,"21":1,"22":1,"40":1,"63":1,"72":1}}],["through",{"2":{"74":5,"75":5,"80":1}}],["thrown",{"2":{"69":1}}],["three",{"2":{"31":1,"63":1,"83":1}}],["threads",{"2":{"74":2}}],["thread",{"2":{"18":1}}],["than",{"2":{"19":1,"31":1,"36":1,"37":1}}],["that",{"2":{"0":1,"9":2,"10":1,"13":1,"16":5,"17":2,"18":1,"19":1,"28":1,"30":1,"33":1,"35":2,"37":1,"41":1,"47":1,"50":1,"53":1,"60":1,"62":1,"63":2,"65":1,"71":2,"74":13,"75":13,"86":1,"88":1}}],["things",{"2":{"26":1}}],["think",{"2":{"1":1}}],["thinking",{"2":{"1":1}}],["this",{"2":{"0":1,"1":1,"4":1,"7":1,"10":1,"13":2,"16":4,"17":3,"18":1,"19":1,"23":1,"26":1,"29":1,"34":1,"35":2,"36":2,"37":2,"40":1,"41":1,"42":1,"43":1,"47":1,"51":2,"59":1,"61":1,"64":1,"72":2,"73":2,"74":6,"75":10,"77":1,"78":2,"87":1,"88":1}}],["they",{"2":{"41":4}}],["their",{"0":{"34":1,"35":1},"2":{"33":1,"35":1,"62":1,"74":3,"75":2}}],["then",{"2":{"17":2,"28":1,"36":1,"41":1,"71":1,"72":1,"78":2,"80":1}}],["thereby",{"2":{"74":1}}],["therefore",{"2":{"37":1,"82":1}}],["there",{"2":{"14":2,"22":1,"29":1,"41":2,"74":1}}],["theme",{"2":{"54":2}}],["them",{"2":{"7":1,"10":1,"31":1,"72":1,"74":1}}],["these",{"2":{"0":1,"6":1,"29":1,"31":1,"60":1,"62":1}}],["the",{"0":{"27":1,"29":1,"37":1,"48":1,"84":1,"87":1},"1":{"28":1},"2":{"0":5,"1":4,"2":3,"4":1,"5":4,"6":4,"8":6,"9":3,"10":1,"11":1,"13":3,"14":2,"15":1,"16":12,"17":14,"18":7,"19":2,"22":1,"24":3,"26":1,"27":3,"28":5,"29":3,"30":2,"31":2,"32":9,"34":3,"35":10,"36":3,"37":10,"40":1,"41":7,"44":1,"46":2,"47":5,"48":4,"49":2,"50":1,"51":2,"52":2,"53":2,"54":9,"55":1,"56":5,"57":3,"58":5,"59":6,"60":1,"61":1,"62":5,"63":4,"64":4,"69":3,"70":1,"71":10,"72":2,"74":116,"75":83,"76":1,"77":1,"78":6,"80":2,"81":6,"82":8,"83":1,"84":4,"86":6,"87":1,"88":5,"90":1}}],["switched",{"2":{"82":1}}],["syntax",{"2":{"82":1,"86":1}}],["system",{"2":{"78":1}}],["symbol",{"2":{"10":1,"12":1,"13":1,"24":2,"41":5,"49":4,"50":2,"51":2,"52":4,"53":4,"54":6,"74":3,"75":1}}],["src",{"2":{"77":1}}],["sres",{"2":{"44":2,"55":2,"66":2,"70":2}}],["skipped",{"2":{"74":1}}],["skip",{"2":{"74":1}}],["skipmissing",{"2":{"18":1,"36":1}}],["skeleton=a",{"2":{"71":1}}],["skeleton=true",{"2":{"71":2}}],["skeleton=false",{"2":{"69":1,"74":1}}],["skeleton",{"0":{"71":1},"2":{"71":8,"72":4}}],["ssp585",{"2":{"43":1,"90":2}}],["scene",{"2":{"94":3}}],["scenarios",{"2":{"90":1}}],["scenariomip",{"2":{"43":1,"90":2}}],["scripts",{"2":{"78":1}}],["scope",{"2":{"74":1,"75":1}}],["scalar",{"2":{"43":1}}],["scattered",{"2":{"7":1}}],["snow3",{"2":{"37":1}}],["snippet",{"2":{"6":1}}],["small",{"2":{"26":1,"41":1}}],["slightly",{"2":{"86":1}}],["slicing",{"2":{"16":1}}],["slices",{"2":{"74":3}}],["slice",{"2":{"16":1,"90":4,"91":1}}],["slow",{"2":{"35":1}}],["slurmmanager",{"2":{"18":1}}],["shinclude",{"2":{"78":1}}],["shdocs>",{"2":{"78":1}}],["shnpm",{"2":{"78":2}}],["should",{"2":{"32":1,"41":1,"48":1,"74":3,"75":1,"77":1,"78":1}}],["shown",{"2":{"74":1}}],["showprog",{"2":{"74":1}}],["shows",{"2":{"54":1}}],["showing",{"2":{"41":1}}],["show",{"2":{"18":1,"72":1,"94":1}}],["shading=false",{"2":{"92":1,"93":1,"94":1}}],["shall",{"2":{"74":5,"75":1}}],["shares",{"2":{"35":1}}],["share",{"0":{"34":1,"35":1},"2":{"33":1,"35":1,"63":1,"74":1}}],["shared",{"2":{"4":1,"5":1,"6":1,"25":1,"30":1,"34":2,"35":3,"39":1,"40":1,"41":2,"43":1,"44":1,"45":1,"55":1,"66":1,"70":1,"71":1,"90":1}}],["shape",{"2":{"6":1}}],["sure",{"2":{"94":1}}],["surface",{"2":{"43":2,"44":2,"54":2,"56":5,"57":6,"58":6,"59":10,"92":1,"93":1}}],["such",{"2":{"59":1,"74":1,"82":1}}],["subcubes",{"2":{"74":1}}],["subtype",{"2":{"62":1,"75":1,"82":1}}],["subtables",{"2":{"37":1}}],["subarray",{"2":{"53":1,"54":1}}],["subsetextensions",{"2":{"75":1}}],["subsetcube",{"2":{"74":1}}],["subseting",{"2":{"60":1}}],["subsetting",{"0":{"32":1,"33":1,"34":1,"35":1},"1":{"34":1,"35":1},"2":{"43":1,"44":1,"75":1,"84":1}}],["subset",{"0":{"31":1},"1":{"32":1,"33":1,"34":1,"35":1},"2":{"32":5,"35":4,"55":1,"58":1,"74":1,"75":1,"90":1}}],["subsets",{"2":{"15":1,"65":1}}],["supposed",{"2":{"74":1}}],["support",{"2":{"22":1,"41":1}}],["supertype",{"2":{"21":1,"22":1}}],["sum",{"2":{"17":2,"36":1,"49":4,"52":2,"53":4,"54":2}}],["suggestions",{"2":{"6":1}}],["s",{"2":{"10":1,"16":3,"28":1,"30":1,"32":1,"34":1,"35":2,"54":7,"55":1,"65":1,"71":1,"74":2,"75":1,"84":1}}],["style",{"0":{"88":1}}],["st",{"2":{"82":1}}],["stdzero",{"2":{"74":1}}],["stock3",{"2":{"41":4}}],["stock2",{"2":{"41":4}}],["stock1",{"2":{"41":4}}],["stocks",{"2":{"41":7}}],["storing",{"2":{"63":1}}],["storage",{"2":{"11":1,"43":1}}],["stored",{"2":{"62":3,"75":2}}],["stores",{"2":{"62":1,"74":1}}],["store",{"2":{"0":1,"43":4,"62":1,"63":1,"90":2}}],["struct",{"2":{"74":1,"75":4}}],["structures",{"2":{"61":1}}],["structure",{"2":{"28":2,"41":1,"64":1}}],["string",{"2":{"8":1,"9":2,"10":1,"12":1,"13":1,"14":2,"16":5,"17":6,"20":1,"21":2,"22":3,"24":3,"27":1,"28":3,"29":1,"30":2,"32":5,"36":3,"37":3,"43":2,"44":2,"45":1,"49":1,"50":1,"52":2,"53":1,"54":1,"55":1,"56":2,"57":3,"58":3,"59":5,"66":1,"69":1,"70":1,"71":1,"74":6,"75":4,"81":4,"84":1,"90":1}}],["stable",{"2":{"82":1}}],["standard",{"2":{"43":1,"44":1,"56":2,"57":3,"58":3,"59":5}}],["standards",{"2":{"43":1,"44":1,"55":1,"66":1,"70":1,"90":1}}],["statistics",{"2":{"14":1,"18":1,"37":3,"46":1,"83":1}}],["started",{"0":{"79":1},"1":{"80":1,"81":1,"82":1}}],["start=12",{"2":{"49":2,"50":1,"52":2,"53":2,"54":3}}],["start=december",{"2":{"49":3,"52":1}}],["start",{"2":{"10":1,"32":1,"72":1}}],["still",{"2":{"8":1,"17":1,"63":1,"86":1}}],["step=3",{"2":{"49":2,"50":1,"52":2,"53":2,"54":3}}],["steps",{"2":{"10":1,"14":1,"54":1,"74":1,"78":1}}],["step",{"2":{"7":1,"14":1,"36":2,"74":1,"75":2,"90":1}}],["sphere",{"0":{"94":1},"2":{"94":3}}],["spheroid",{"2":{"45":1}}],["split",{"2":{"74":1}}],["splitted",{"2":{"2":1}}],["special",{"2":{"57":1,"74":1,"75":1}}],["specifiers",{"2":{"75":1}}],["specifier",{"2":{"74":1}}],["specifies",{"2":{"74":3}}],["specified",{"2":{"74":7,"75":1}}],["specific",{"2":{"32":1,"74":2}}],["specifying",{"2":{"74":2,"75":1}}],["specify",{"2":{"24":1,"74":1}}],["spectral",{"2":{"54":1}}],["specs",{"2":{"43":1,"90":1}}],["sparse",{"2":{"62":1}}],["spatio",{"2":{"36":1}}],["spatial",{"2":{"1":1,"14":1,"17":5,"18":1,"46":1,"62":1}}],["span",{"2":{"32":1,"83":1}}],["space",{"2":{"1":1,"16":1}}],["sampled",{"2":{"4":4,"5":4,"6":2,"8":1,"9":1,"10":3,"12":3,"13":3,"14":3,"16":9,"17":8,"20":2,"21":6,"22":4,"24":9,"25":3,"27":9,"28":6,"29":2,"30":3,"32":14,"34":6,"35":10,"36":9,"37":5,"39":1,"40":5,"41":4,"43":6,"44":6,"45":2,"49":3,"50":2,"52":2,"53":1,"54":7,"55":3,"56":6,"57":4,"58":9,"59":15,"60":2,"66":3,"70":6,"71":6,"81":5,"84":1,"90":3}}],["same",{"2":{"0":1,"2":1,"5":1,"6":1,"9":1,"16":1,"17":2,"21":1,"22":1,"28":2,"29":2,"30":1,"35":1,"40":1,"41":2,"56":1,"57":1,"58":1,"62":1,"63":3,"64":2,"74":1,"75":1,"78":1}}],["saves",{"2":{"69":1,"74":1}}],["save",{"0":{"71":1},"2":{"12":1,"22":1,"40":1,"67":2,"68":2,"71":1,"74":2}}],["savecube",{"2":{"2":1,"67":1,"68":1,"71":1,"74":2}}],["savedataset",{"2":{"4":1,"5":1,"6":1,"69":2,"70":1,"71":2,"74":2,"75":1}}],["saved",{"2":{"2":1,"11":1,"69":1}}],["saving",{"2":{"1":1,"4":1,"5":1,"6":1,"16":1}}],["serve",{"2":{"75":1}}],["series",{"0":{"47":1},"2":{"18":1}}],["sequence",{"2":{"62":1}}],["separate",{"2":{"74":1,"75":1}}],["separated",{"2":{"63":1}}],["separately",{"2":{"5":1,"17":1,"18":1}}],["sep",{"2":{"49":4,"50":2,"51":1,"52":4,"53":4,"54":6}}],["seaborn",{"2":{"91":1,"92":1,"93":1,"94":1}}],["searching",{"2":{"74":1}}],["search",{"2":{"74":1}}],["season",{"2":{"49":1,"52":2,"53":1}}],["seasons",{"0":{"49":1,"51":1,"54":1},"1":{"50":1,"51":1},"2":{"49":9,"52":1,"54":5}}],["seasonal",{"0":{"47":1,"83":1,"85":1},"1":{"84":1,"85":1},"2":{"47":1,"53":1,"54":1,"83":1,"84":4}}],["sea",{"2":{"44":3,"55":1,"56":5,"57":6,"58":6,"59":10,"66":1,"70":1}}],["sebastien",{"2":{"44":2,"55":2,"66":2,"70":2}}],["selected",{"2":{"75":1,"83":1}}],["select",{"0":{"55":1,"56":1,"57":1,"58":1},"1":{"56":1,"57":1,"58":1,"59":1,"60":1},"2":{"35":1,"55":1}}],["selectors",{"2":{"59":1}}],["selector",{"2":{"35":1,"58":1}}],["selection",{"2":{"35":2}}],["selecting",{"2":{"32":1,"34":1,"35":1}}],["see",{"2":{"16":1,"59":1,"74":1,"82":1}}],["second",{"2":{"8":3,"74":1}}],["section",{"2":{"7":1,"10":1,"19":1,"23":1,"26":1,"41":1,"42":1,"61":1,"73":1}}],["setting",{"2":{"69":1,"74":1,"75":1}}],["sets",{"2":{"6":1,"48":1}}],["set",{"0":{"4":1,"5":1,"6":1},"2":{"4":1,"5":1,"17":1,"43":1,"69":1,"74":1,"75":2,"78":1}}],["setchunks",{"2":{"1":1,"2":2,"3":1,"4":1,"5":1,"6":1,"74":1,"75":1}}],["several",{"0":{"16":1},"2":{"0":1,"16":1,"30":1,"33":1}}],["sin",{"2":{"83":1}}],["sink",{"2":{"75":1}}],["single",{"0":{"83":1},"1":{"84":1,"85":1},"2":{"0":1,"7":1,"8":1,"64":1,"67":1,"68":1,"74":6,"75":1}}],["simulate",{"2":{"41":1}}],["simplicity",{"2":{"83":1}}],["simply",{"2":{"18":1,"72":1,"78":1}}],["simple",{"2":{"16":1,"26":1,"81":1}}],["situations",{"2":{"1":1}}],["size=",{"2":{"92":1,"93":1,"94":1}}],["sizes",{"2":{"2":1,"74":2,"75":2}}],["size",{"2":{"0":1,"1":1,"4":1,"5":1,"8":2,"9":2,"10":2,"12":2,"13":2,"14":4,"16":10,"17":4,"20":2,"21":2,"22":2,"24":4,"27":2,"28":6,"29":2,"30":2,"32":10,"36":6,"37":6,"43":2,"44":2,"52":2,"54":1,"56":4,"57":6,"58":6,"59":10,"71":2,"72":1,"74":3,"75":4,"81":5,"83":1,"84":3,"85":1,"91":1}}],["sosstsst",{"2":{"44":1,"56":2,"57":3,"58":3,"59":5}}],["software",{"2":{"44":1,"55":1,"66":1}}],["sort",{"2":{"17":1}}],["so",{"2":{"2":1,"18":1,"31":1,"35":1,"74":1,"75":1}}],["source",{"2":{"0":2,"44":1,"55":1,"66":1,"69":1,"70":1,"74":24,"75":24}}],["sometimes",{"2":{"71":1,"88":1}}],["some",{"0":{"35":1},"2":{"0":1,"11":1,"33":1,"35":1,"36":1,"41":2,"54":1,"74":1,"83":1,"92":1}}],["again",{"2":{"69":1,"72":1}}],["agreement",{"2":{"54":1}}],["aggregation",{"2":{"18":1}}],["aggregate",{"2":{"17":1}}],["auto",{"2":{"74":1}}],["authority",{"2":{"45":5}}],["aug",{"2":{"49":4,"50":2,"51":1,"52":4,"53":4,"54":6}}],["api",{"0":{"73":1,"74":1,"75":1},"1":{"74":1,"75":1}}],["apr",{"2":{"49":4,"50":2,"51":1,"52":4,"53":4,"54":6}}],["appropriate",{"2":{"77":1}}],["approximated",{"2":{"75":1}}],["approx",{"2":{"74":1,"75":1}}],["approach",{"2":{"9":1}}],["append=true",{"2":{"70":2}}],["append",{"0":{"70":1},"2":{"69":1,"74":1}}],["apply",{"0":{"36":1},"2":{"10":2,"13":1,"15":1,"18":1,"54":1,"84":1}}],["applies",{"2":{"13":1}}],["applied",{"2":{"0":1,"3":1,"4":1,"17":1,"74":2,"75":1}}],["applications",{"2":{"0":1}}],["air",{"2":{"43":3,"54":2}}],["a3",{"2":{"25":4}}],["a2",{"2":{"24":1,"25":3,"44":2,"55":2,"66":2,"70":2,"81":1}}],["a1",{"2":{"24":1}}],["abstractdict",{"2":{"74":1,"75":3}}],["abstractdimarray",{"2":{"21":1,"22":1,"62":1}}],["able",{"2":{"40":1}}],["about",{"2":{"1":2,"31":1,"58":1,"81":1,"87":1}}],["above",{"2":{"0":1,"5":1,"16":1,"71":1,"80":1}}],["atol",{"2":{"58":1}}],["attributes",{"2":{"54":1,"74":1,"75":1}}],["atmosphere",{"2":{"44":1,"55":1,"66":1,"70":1}}],["atmos",{"2":{"43":1,"90":1}}],["at",{"2":{"17":4,"22":1,"35":1,"41":3,"44":2,"54":1,"55":1,"56":2,"57":6,"58":7,"59":5,"63":1,"64":2,"66":1,"69":2,"70":1,"74":3,"75":2,"76":1,"77":2,"78":2,"81":1,"86":2}}],["after",{"2":{"14":1,"16":1,"45":1,"74":3}}],["addargs",{"2":{"74":3,"75":1}}],["adds",{"2":{"62":2,"65":1}}],["addprocs",{"2":{"18":2}}],["addition",{"2":{"17":1,"19":1,"62":1}}],["additional",{"2":{"4":3,"5":3,"9":1,"16":1,"35":10,"40":4,"41":4,"43":2,"70":3,"74":4,"75":3,"90":2}}],["added",{"2":{"15":1,"70":1,"74":1,"75":1}}],["add",{"2":{"6":1,"10":1,"12":1,"36":1,"77":2,"80":2,"92":1}}],["asaxisarray",{"2":{"74":1}}],["aspect=dataaspect",{"2":{"54":1,"91":1}}],["assemble",{"2":{"81":1}}],["assessment",{"2":{"44":2,"55":2,"66":2,"70":2}}],["associated",{"2":{"74":1}}],["assign",{"0":{"38":1},"1":{"39":1,"40":1}}],["asked",{"0":{"26":1},"1":{"27":1,"28":1,"29":1,"30":1,"31":1,"32":1,"33":1,"34":1,"35":1,"36":1,"37":1,"38":1,"39":1,"40":1,"41":1}}],["as",{"2":{"5":1,"12":1,"16":5,"17":1,"18":1,"21":1,"22":2,"28":2,"29":1,"35":1,"37":1,"41":2,"43":1,"44":1,"45":1,"49":2,"54":1,"56":1,"59":1,"60":1,"62":1,"65":1,"71":1,"72":1,"74":11,"75":3,"82":1,"88":1,"90":1}}],["axs",{"2":{"48":1,"54":9}}],["ax",{"2":{"37":1,"83":3,"85":3,"91":1,"92":3,"93":3,"94":5}}],["axlist",{"2":{"10":2,"17":2,"18":2,"24":2,"25":1,"30":3,"75":5,"81":3}}],["axessmall",{"2":{"75":2}}],["axes",{"0":{"27":1,"29":1},"1":{"28":1},"2":{"4":4,"5":4,"6":1,"24":1,"25":1,"27":2,"28":1,"29":2,"32":2,"34":5,"35":13,"39":1,"40":5,"41":8,"43":3,"44":1,"45":1,"55":2,"62":2,"66":1,"70":4,"71":1,"74":15,"75":11,"81":1,"84":2,"90":3}}],["axislegend",{"2":{"85":1}}],["axis=false",{"2":{"94":1}}],["axis=",{"2":{"83":1}}],["axisdescriptor",{"2":{"75":1}}],["axisdesc",{"2":{"74":3}}],["axis",{"0":{"4":1},"2":{"4":1,"9":2,"16":3,"29":1,"32":1,"34":1,"35":7,"41":1,"45":2,"54":1,"60":1,"65":1,"71":1,"74":16,"75":14,"81":1,"85":1,"90":1,"91":1}}],["always",{"2":{"74":2,"75":1,"76":1,"82":1}}],["already",{"2":{"69":1,"74":1,"75":1}}],["al",{"2":{"44":1,"55":1,"64":1,"66":1,"70":1}}],["alternatives",{"2":{"74":1}}],["alternatively",{"2":{"0":1,"2":1,"74":1,"80":1}}],["altered",{"2":{"43":1,"44":1,"56":2,"57":3,"58":3,"59":5}}],["although",{"2":{"41":1,"59":1}}],["algebra",{"0":{"36":1},"2":{"36":1}}],["along",{"0":{"8":1},"2":{"8":1,"16":1,"74":3,"75":2,"86":1}}],["allaxes",{"2":{"75":1}}],["allinaxes",{"2":{"75":1}}],["allmissing",{"2":{"74":1}}],["allocate",{"2":{"71":1}}],["allocation",{"2":{"17":1}}],["allow",{"2":{"75":1}}],["allowing",{"2":{"21":1,"22":1,"63":1}}],["allows",{"2":{"18":1}}],["all",{"0":{"6":1,"34":1,"35":1},"2":{"4":1,"6":2,"10":1,"12":1,"13":1,"14":2,"17":1,"18":4,"33":1,"35":2,"41":3,"45":1,"54":2,"59":1,"62":1,"64":2,"69":3,"71":1,"73":1,"74":6,"75":7,"78":1}}],["also",{"2":{"2":1,"3":1,"14":1,"18":1,"24":1,"27":1,"35":1,"37":1,"62":2,"63":1,"71":2,"74":1,"80":1}}],["analog",{"2":{"63":1}}],["analyzing",{"2":{"1":1}}],["another",{"2":{"16":1,"35":1}}],["anynymous",{"2":{"74":1}}],["anyocean",{"2":{"74":1}}],["anymissing",{"2":{"74":1}}],["any",{"2":{"8":1,"9":1,"10":1,"11":1,"14":2,"16":5,"17":4,"20":1,"21":2,"22":3,"24":1,"27":1,"28":3,"29":1,"30":1,"32":6,"36":3,"37":3,"43":2,"44":2,"45":1,"49":3,"50":2,"52":4,"53":3,"54":3,"55":1,"56":2,"57":3,"58":3,"59":5,"66":1,"70":1,"71":1,"74":4,"75":9,"81":1,"84":1,"90":1}}],["an",{"0":{"8":1},"2":{"9":1,"10":4,"12":1,"13":1,"15":1,"18":2,"28":1,"29":1,"34":1,"35":1,"37":1,"55":3,"58":1,"62":1,"63":1,"65":1,"66":1,"67":1,"68":1,"69":1,"70":1,"74":19,"75":8}}],["and",{"0":{"23":1,"29":1,"42":1,"46":1,"55":1,"59":1,"66":1},"1":{"24":1,"25":1,"43":1,"44":1,"45":1,"47":1,"48":1,"49":1,"50":1,"51":1,"52":1,"53":1,"54":1,"56":1,"57":1,"58":1,"59":1,"60":1,"67":1,"68":1,"69":1,"70":1,"71":1,"72":1},"2":{"0":1,"2":1,"5":1,"6":1,"7":1,"8":1,"12":1,"16":4,"17":2,"19":1,"23":1,"24":1,"27":1,"30":1,"32":1,"35":6,"36":1,"37":6,"41":5,"42":2,"43":1,"44":1,"46":1,"47":1,"49":1,"54":1,"55":1,"59":1,"62":5,"63":3,"64":2,"66":1,"69":1,"70":1,"71":3,"72":1,"74":18,"75":6,"76":1,"78":4,"80":1,"81":2,"83":1,"90":1,"92":1}}],["available",{"2":{"59":2,"71":1,"73":1,"74":2,"80":1}}],["avariable",{"2":{"0":1}}],["avoids",{"2":{"17":1}}],["avoided",{"2":{"0":1}}],["averaging",{"2":{"14":1}}],["averages",{"0":{"47":1},"2":{"46":1}}],["average",{"2":{"14":1,"47":2}}],["artype",{"2":{"74":2}}],["archgdaldatasets",{"2":{"45":1}}],["archgdal",{"2":{"45":2}}],["arguments",{"2":{"54":1,"74":11,"75":3}}],["argument",{"2":{"18":1,"71":1,"74":4,"75":2}}],["arr2",{"2":{"22":1}}],["arr",{"2":{"17":7,"22":2}}],["arrayinfo",{"2":{"75":1}}],["arrays",{"2":{"6":1,"7":1,"8":2,"9":1,"11":1,"23":1,"25":2,"43":2,"44":2,"61":1,"62":4,"63":3,"64":3,"74":2,"75":1}}],["array",{"0":{"17":1,"20":1},"2":{"0":1,"1":1,"8":2,"9":2,"10":3,"12":2,"13":2,"15":1,"17":8,"20":2,"29":1,"49":1,"54":1,"55":1,"62":4,"63":1,"64":1,"65":2,"71":5,"72":5,"74":10,"75":4,"81":3}}],["arbitrary",{"2":{"16":1}}],["arithmetics",{"0":{"12":1},"2":{"10":1}}],["areas",{"2":{"74":1}}],["area",{"2":{"43":2,"74":1}}],["areacella",{"2":{"43":2,"90":1}}],["are",{"2":{"0":1,"11":1,"19":3,"29":1,"31":1,"35":1,"41":3,"54":2,"55":1,"59":1,"60":1,"62":3,"63":2,"64":3,"71":1,"74":11,"75":6,"76":1,"78":1,"86":2,"88":1}}],["according",{"2":{"74":1}}],["access",{"2":{"1":2,"13":1,"24":1,"62":1,"65":1}}],["accessed",{"2":{"0":2,"43":1,"44":1}}],["activate",{"2":{"37":1,"78":2,"83":1,"91":1,"94":1}}],["actually",{"2":{"75":1}}],["actual",{"2":{"13":1,"71":1,"75":1,"81":1}}],["achieves",{"2":{"28":1}}],["achieved",{"2":{"0":1}}],["across",{"2":{"0":1,"7":1,"16":1,"62":3}}],["a",{"0":{"9":1,"11":1,"17":1,"24":1,"25":1,"27":1,"31":1,"32":1,"33":1,"34":1,"35":1,"38":1,"41":2,"56":1,"60":1,"69":1,"70":1,"83":1,"89":1},"1":{"28":1,"32":1,"33":1,"34":2,"35":2,"39":1,"40":1,"84":1,"85":1},"2":{"0":4,"2":7,"3":1,"4":1,"7":1,"8":1,"9":2,"10":3,"11":1,"12":4,"13":2,"14":2,"15":1,"16":5,"17":75,"18":11,"20":2,"21":5,"22":8,"24":1,"26":1,"27":2,"28":2,"29":1,"31":4,"32":3,"33":1,"35":2,"37":3,"39":2,"40":2,"41":4,"43":6,"44":3,"45":1,"47":1,"52":1,"54":2,"58":2,"59":4,"60":1,"62":12,"63":4,"64":8,"65":1,"67":3,"68":3,"69":4,"71":5,"74":60,"75":31,"77":2,"78":2,"81":4,"82":1,"87":1,"88":1}}],["iall",{"2":{"75":1}}],["iwindow",{"2":{"75":1}}],["icolon",{"2":{"75":1}}],["icefire",{"2":{"91":1,"92":1,"93":1,"94":1}}],["ice",{"2":{"44":1,"55":1,"66":1,"70":1}}],["ipcc",{"2":{"44":3,"55":3,"66":3,"70":3}}],["ipsl",{"2":{"44":6,"55":6,"66":6,"70":6}}],["idx",{"2":{"84":3}}],["identical",{"2":{"74":1}}],["id",{"2":{"43":2,"44":2,"55":2,"66":2,"70":2,"90":2}}],["irregular",{"2":{"35":6,"37":2,"41":4,"43":4,"44":2,"49":1,"52":2,"53":1,"54":1,"55":1,"56":2,"57":2,"58":6,"59":5,"66":1,"70":1,"75":1,"90":2}}],["immutable",{"2":{"11":1}}],["improving",{"2":{"82":1}}],["improve",{"2":{"6":1}}],["implementing",{"2":{"74":1}}],["importance",{"2":{"75":1}}],["important",{"2":{"1":1}}],["impossible",{"2":{"11":1}}],["i",{"0":{"30":1,"31":1,"36":1,"37":1,"38":1,"41":1},"1":{"32":1,"33":1,"34":1,"35":1,"39":1,"40":1},"2":{"8":1,"17":3,"21":1,"22":1,"32":1,"54":2,"69":1,"74":7,"75":4,"78":2,"81":1,"84":3}}],["ispar",{"2":{"74":1,"75":1}}],["ismissing",{"2":{"71":1}}],["issues",{"2":{"48":1}}],["isequal",{"2":{"17":1}}],["is",{"2":{"1":2,"2":1,"6":1,"7":1,"9":1,"13":1,"14":2,"15":1,"16":4,"17":2,"18":3,"19":1,"22":1,"26":1,"28":2,"30":1,"31":1,"35":2,"36":1,"37":4,"41":2,"47":2,"48":2,"49":1,"53":1,"56":1,"59":2,"60":1,"62":4,"63":1,"64":2,"65":1,"71":4,"72":1,"74":10,"75":10,"77":1,"80":1,"82":1,"86":1,"88":1}}],["if",{"2":{"0":1,"19":1,"35":3,"69":1,"71":2,"74":11,"75":6,"78":1,"86":1}}],["inline",{"2":{"94":2}}],["incubes",{"2":{"75":1}}],["incs",{"2":{"75":1}}],["include",{"2":{"74":2,"75":1}}],["included",{"2":{"59":1}}],["inarbc",{"2":{"75":1}}],["inar",{"2":{"75":2}}],["inplace",{"2":{"74":3,"75":1}}],["inputcube",{"2":{"75":2}}],["input",{"2":{"16":1,"18":2,"37":1,"74":12,"75":8}}],["innerchunks",{"2":{"75":1}}],["inner",{"2":{"74":9,"75":3}}],["installed",{"2":{"82":1}}],["installation",{"0":{"80":1}}],["install",{"2":{"78":1,"80":1}}],["instead",{"2":{"8":1,"9":1,"13":1,"27":1,"32":1,"59":1,"62":1}}],["insize",{"2":{"75":1}}],["inside",{"2":{"74":3}}],["initialization",{"2":{"43":1,"90":1}}],["initially",{"2":{"17":1}}],["inds",{"2":{"75":1}}],["indeed",{"2":{"72":1}}],["indexing",{"2":{"57":2,"58":2,"72":1,"82":1}}],["index",{"2":{"43":2,"75":2,"90":2}}],["independently",{"2":{"41":1}}],["indices",{"2":{"75":1,"84":1}}],["indicate",{"2":{"74":1}}],["indicating",{"2":{"9":1,"17":1,"74":1}}],["indims=indims",{"2":{"17":1,"18":1}}],["indims",{"2":{"16":8,"74":7}}],["individually",{"2":{"13":2}}],["individual",{"2":{"0":1,"43":1,"44":1}}],["information",{"2":{"69":1,"75":2}}],["info",{"2":{"16":2,"22":1,"27":1,"46":1,"71":1,"82":1}}],["introducing",{"2":{"64":1}}],["int",{"2":{"28":1,"84":3}}],["interested",{"2":{"86":1}}],["internal",{"0":{"75":1},"2":{"75":9}}],["internally",{"2":{"63":1}}],["interface",{"2":{"74":2,"88":1}}],["interval",{"2":{"44":1,"56":2,"57":3,"58":4,"59":6}}],["intervalsets",{"2":{"59":1}}],["intervals",{"0":{"59":1},"2":{"32":1}}],["interactive",{"2":{"0":1}}],["integer",{"2":{"24":1,"57":1,"58":1,"62":1}}],["int64",{"2":{"4":4,"5":4,"6":2,"8":1,"9":1,"16":8,"20":2,"21":6,"22":2,"24":3,"27":9,"28":7,"29":4,"32":15,"34":4,"35":7,"37":3,"39":1,"40":5,"49":6,"50":6,"52":4,"53":1,"54":19,"70":3,"71":6,"75":1,"81":2}}],["into",{"0":{"89":1},"2":{"0":1,"1":1,"2":1,"7":1,"8":1,"16":1,"17":1,"19":2,"22":1,"35":4,"42":1,"64":2,"69":1,"72":1,"74":6,"75":3,"78":1,"94":1}}],["in",{"0":{"38":1},"1":{"39":1,"40":1},"2":{"0":5,"1":1,"2":1,"4":2,"5":1,"9":1,"11":1,"13":1,"14":2,"16":2,"17":6,"18":3,"19":2,"21":1,"22":1,"29":1,"33":1,"35":1,"37":2,"41":4,"43":2,"44":1,"47":2,"48":2,"51":3,"54":4,"56":2,"57":3,"58":4,"59":7,"60":1,"61":1,"62":5,"63":1,"64":2,"71":1,"72":1,"74":13,"75":9,"78":2,"80":1,"81":2,"84":1,"86":3,"88":4,"90":1}}],["iter",{"2":{"74":1}}],["iterate",{"2":{"88":1}}],["iteration",{"0":{"88":1}}],["iterator",{"2":{"37":1}}],["iterators",{"2":{"17":1}}],["iterable",{"2":{"37":2,"74":2}}],["itself",{"2":{"74":1,"75":1}}],["its",{"2":{"0":1}}],["it",{"2":{"0":2,"1":3,"12":1,"16":1,"18":2,"27":1,"29":1,"30":1,"35":2,"37":2,"41":2,"50":1,"52":1,"54":1,"55":1,"62":2,"63":1,"65":1,"69":1,"71":2,"72":1,"74":10,"75":5,"78":1,"80":1}}],["lscene",{"2":{"94":1}}],["lmdz",{"2":{"44":1,"55":1,"66":1,"70":1}}],["link",{"2":{"77":1}}],["linewidth=0",{"2":{"92":1,"93":1}}],["linewidth=2",{"2":{"85":2}}],["linewidth=1",{"2":{"83":1,"85":1}}],["linestyle=",{"2":{"85":2}}],["lines",{"2":{"83":1,"85":3}}],["line",{"2":{"37":1}}],["lim",{"2":{"44":1,"55":1,"66":1,"70":1}}],["libraries",{"2":{"32":1,"62":1}}],["libray",{"2":{"31":1}}],["little",{"2":{"18":1}}],["list",{"2":{"17":1,"41":5,"74":5,"75":6}}],["like",{"2":{"0":1,"37":1,"41":1,"74":2,"75":1,"77":1}}],["loopinds",{"2":{"75":2}}],["looping",{"2":{"74":1,"75":1}}],["loopcachesize",{"2":{"75":1}}],["loopchunksize",{"2":{"74":1}}],["loopaxes",{"2":{"75":1}}],["loopvars",{"2":{"74":1,"75":1}}],["loops",{"2":{"74":1}}],["loop",{"2":{"74":1,"75":2}}],["looped",{"2":{"74":3,"75":3}}],["look",{"2":{"69":1,"74":1,"75":1,"77":1,"78":1}}],["lookups",{"2":{"49":15,"50":10,"52":5,"53":5,"54":38,"60":3}}],["lookup",{"2":{"49":1,"51":1,"90":3}}],["looks",{"2":{"37":1,"41":1}}],["located",{"2":{"86":1}}],["locate",{"2":{"78":1}}],["location",{"2":{"75":3}}],["locations",{"2":{"63":1,"64":1}}],["localhost",{"2":{"78":1}}],["locally",{"0":{"78":1},"2":{"78":1}}],["local",{"2":{"18":1,"43":1}}],["lowclip",{"2":{"54":4}}],["low",{"2":{"41":4}}],["lost",{"2":{"19":1}}],["lo",{"2":{"16":4}}],["loadorgenerate",{"2":{"75":1}}],["loading",{"2":{"45":1,"72":1}}],["loaded",{"2":{"35":2}}],["load",{"2":{"16":1,"32":1,"35":2,"62":1}}],["long",{"2":{"43":1,"44":1,"54":1,"56":2,"57":3,"58":3,"59":5}}],["longitudes=longitudes",{"2":{"35":1}}],["longitudes",{"2":{"35":12}}],["longitude",{"2":{"32":1,"45":1,"81":2}}],["lonlat",{"2":{"34":1}}],["lon=1",{"2":{"32":1,"34":1}}],["lon",{"2":{"10":2,"12":1,"13":1,"14":2,"16":10,"17":12,"18":1,"21":2,"24":3,"25":1,"30":2,"32":7,"34":3,"36":4,"37":3,"43":2,"44":2,"55":1,"56":2,"57":3,"58":6,"59":10,"60":2,"66":1,"70":1,"90":2,"92":3}}],["lazy",{"2":{"74":1}}],["lazily",{"2":{"13":1}}],["layername",{"2":{"74":2}}],["layername=",{"2":{"71":2,"75":1}}],["layer",{"2":{"71":1,"74":1,"75":1}}],["layout",{"2":{"54":2}}],["labelled",{"2":{"74":1}}],["labels",{"2":{"54":1,"60":1,"64":1,"65":1}}],["label=false",{"2":{"54":1}}],["label=",{"2":{"54":1,"85":3}}],["label=cb",{"2":{"54":1}}],["label",{"2":{"43":1,"54":3,"90":1}}],["last",{"2":{"16":1,"18":1}}],["la",{"2":{"16":4}}],["latest",{"2":{"82":1}}],["lat=5",{"2":{"32":1,"34":1}}],["latitudes=latitudes",{"2":{"35":1}}],["latitudes",{"2":{"35":11}}],["latitude",{"2":{"32":1,"45":1,"81":2}}],["lat",{"2":{"10":2,"12":1,"13":1,"14":2,"16":7,"17":12,"18":1,"21":2,"24":3,"25":1,"30":2,"32":7,"34":3,"36":4,"37":3,"43":2,"44":2,"55":1,"56":2,"57":3,"58":5,"59":5,"60":1,"66":1,"70":1,"74":1,"90":3,"92":1,"93":1}}],["larger",{"2":{"19":1}}],["large",{"2":{"0":2,"19":1,"48":1,"62":1}}],["learn",{"2":{"88":1}}],["learning",{"2":{"62":1,"86":1}}],["leap",{"2":{"83":1}}],["least",{"2":{"35":1,"41":1,"74":1}}],["length",{"2":{"49":2,"50":1,"52":3,"74":1,"75":3}}],["length=365",{"2":{"83":1}}],["length=20",{"2":{"30":1,"81":1}}],["length=15",{"2":{"10":1,"17":1,"18":1,"24":1,"30":1,"81":1}}],["length=10",{"2":{"10":1,"17":1,"18":1,"24":1,"30":1,"81":1}}],["level",{"2":{"41":1,"77":1,"78":1}}],["left",{"2":{"14":2}}],["let",{"2":{"10":1,"16":2,"28":1,"30":1,"32":1,"34":1,"35":1,"54":1,"55":1,"84":1}}]],"serializationVersion":2}';export{e as default}; diff --git a/previews/PR439/assets/chunks/@localSearchIndexroot.Dr9nyg5O.js b/previews/PR439/assets/chunks/@localSearchIndexroot.Dr9nyg5O.js deleted file mode 100644 index 0a20283b..00000000 --- a/previews/PR439/assets/chunks/@localSearchIndexroot.Dr9nyg5O.js +++ /dev/null @@ -1 +0,0 @@ -const e='{"documentCount":95,"nextId":95,"documentIds":{"0":"/YAXArrays.jl/previews/PR439/UserGuide/cache.html#Caching-YAXArrays","1":"/YAXArrays.jl/previews/PR439/UserGuide/chunk.html#Chunk-YAXArrays","2":"/YAXArrays.jl/previews/PR439/UserGuide/chunk.html#Chunking-YAXArrays","3":"/YAXArrays.jl/previews/PR439/UserGuide/chunk.html#Chunking-Datasets","4":"/YAXArrays.jl/previews/PR439/UserGuide/chunk.html#Set-Chunks-by-Axis","5":"/YAXArrays.jl/previews/PR439/UserGuide/chunk.html#Set-chunking-by-Variable","6":"/YAXArrays.jl/previews/PR439/UserGuide/chunk.html#Set-chunking-for-all-variables","7":"/YAXArrays.jl/previews/PR439/UserGuide/combine.html#Combine-YAXArrays","8":"/YAXArrays.jl/previews/PR439/UserGuide/combine.html#cat-along-an-existing-dimension","9":"/YAXArrays.jl/previews/PR439/UserGuide/combine.html#concatenatecubes-to-a-new-dimension","10":"/YAXArrays.jl/previews/PR439/UserGuide/compute.html#Compute-YAXArrays","11":"/YAXArrays.jl/previews/PR439/UserGuide/compute.html#Modify-elements-of-a-YAXArray","12":"/YAXArrays.jl/previews/PR439/UserGuide/compute.html#arithmetics","13":"/YAXArrays.jl/previews/PR439/UserGuide/compute.html#map","14":"/YAXArrays.jl/previews/PR439/UserGuide/compute.html#mapslices","15":"/YAXArrays.jl/previews/PR439/UserGuide/compute.html#mapCube","16":"/YAXArrays.jl/previews/PR439/UserGuide/compute.html#Operations-over-several-YAXArrays","17":"/YAXArrays.jl/previews/PR439/UserGuide/compute.html#Creating-a-vector-array","18":"/YAXArrays.jl/previews/PR439/UserGuide/compute.html#Distributed-Computation","19":"/YAXArrays.jl/previews/PR439/UserGuide/convert.html#Convert-YAXArrays","20":"/YAXArrays.jl/previews/PR439/UserGuide/convert.html#Convert-Base.Array","21":"/YAXArrays.jl/previews/PR439/UserGuide/convert.html#Convert-Raster","22":"/YAXArrays.jl/previews/PR439/UserGuide/convert.html#Convert-DimArray","23":"/YAXArrays.jl/previews/PR439/UserGuide/create.html#Create-YAXArrays-and-Datasets","24":"/YAXArrays.jl/previews/PR439/UserGuide/create.html#Create-a-YAXArray","25":"/YAXArrays.jl/previews/PR439/UserGuide/create.html#Create-a-Dataset","26":"/YAXArrays.jl/previews/PR439/UserGuide/faq.html#Frequently-Asked-Questions-(FAQ)","27":"/YAXArrays.jl/previews/PR439/UserGuide/faq.html#Extract-the-axes-names-from-a-Cube","28":"/YAXArrays.jl/previews/PR439/UserGuide/faq.html#rebuild","29":"/YAXArrays.jl/previews/PR439/UserGuide/faq.html#Obtain-values-from-axes-and-data-from-the-cube","30":"/YAXArrays.jl/previews/PR439/UserGuide/faq.html#How-do-I-concatenate-cubes","31":"/YAXArrays.jl/previews/PR439/UserGuide/faq.html#How-do-I-subset-a-YAXArray-(-Cube-)-or-Dataset?","32":"/YAXArrays.jl/previews/PR439/UserGuide/faq.html#Subsetting-a-YAXArray","33":"/YAXArrays.jl/previews/PR439/UserGuide/faq.html#Subsetting-a-Dataset","34":"/YAXArrays.jl/previews/PR439/UserGuide/faq.html#Subsetting-a-Dataset-whose-variables-share-all-their-dimensions","35":"/YAXArrays.jl/previews/PR439/UserGuide/faq.html#Subsetting-a-Dataset-whose-variables-share-some-but-not-all-of-their-dimensions","36":"/YAXArrays.jl/previews/PR439/UserGuide/faq.html#How-do-I-apply-map-algebra?","37":"/YAXArrays.jl/previews/PR439/UserGuide/faq.html#How-do-I-use-the-CubeTable-function?","38":"/YAXArrays.jl/previews/PR439/UserGuide/faq.html#How-do-I-assign-variable-names-to-YAXArrays-in-a-Dataset","39":"/YAXArrays.jl/previews/PR439/UserGuide/faq.html#One-variable-name","40":"/YAXArrays.jl/previews/PR439/UserGuide/faq.html#Multiple-variable-names","41":"/YAXArrays.jl/previews/PR439/UserGuide/faq.html#Ho-do-I-construct-a-Dataset-from-a-TimeArray","42":"/YAXArrays.jl/previews/PR439/UserGuide/group.html#Group-YAXArrays-and-Datasets","43":"/YAXArrays.jl/previews/PR439/UserGuide/group.html#Seasonal-Averages-from-Time-Series-of-Monthly-Means","44":"/YAXArrays.jl/previews/PR439/UserGuide/group.html#Download-the-data","45":"/YAXArrays.jl/previews/PR439/UserGuide/group.html#GroupBy:-seasons","46":"/YAXArrays.jl/previews/PR439/UserGuide/group.html#dropdims","47":"/YAXArrays.jl/previews/PR439/UserGuide/group.html#seasons","48":"/YAXArrays.jl/previews/PR439/UserGuide/group.html#GroupBy:-weight","49":"/YAXArrays.jl/previews/PR439/UserGuide/group.html#weights","50":"/YAXArrays.jl/previews/PR439/UserGuide/group.html#weighted-seasons","51":"/YAXArrays.jl/previews/PR439/UserGuide/read.html#Read-YAXArrays-and-Datasets","52":"/YAXArrays.jl/previews/PR439/UserGuide/read.html#Read-Zarr","53":"/YAXArrays.jl/previews/PR439/UserGuide/read.html#Read-NetCDF","54":"/YAXArrays.jl/previews/PR439/UserGuide/read.html#Read-GDAL-(GeoTIFF,-GeoJSON)","55":"/YAXArrays.jl/previews/PR439/UserGuide/select.html#Select-YAXArrays-and-Datasets","56":"/YAXArrays.jl/previews/PR439/UserGuide/select.html#Select-a-YAXArray","57":"/YAXArrays.jl/previews/PR439/UserGuide/select.html#Select-elements","58":"/YAXArrays.jl/previews/PR439/UserGuide/select.html#Select-ranges","59":"/YAXArrays.jl/previews/PR439/UserGuide/select.html#Closed-and-open-intervals","60":"/YAXArrays.jl/previews/PR439/UserGuide/select.html#Get-a-dimension","61":"/YAXArrays.jl/previews/PR439/UserGuide/types.html#types","62":"/YAXArrays.jl/previews/PR439/UserGuide/types.html#yaxarray","63":"/YAXArrays.jl/previews/PR439/UserGuide/types.html#dataset","64":"/YAXArrays.jl/previews/PR439/UserGuide/types.html#(Data)-Cube","65":"/YAXArrays.jl/previews/PR439/UserGuide/types.html#dimension","66":"/YAXArrays.jl/previews/PR439/UserGuide/write.html#Write-YAXArrays-and-Datasets","67":"/YAXArrays.jl/previews/PR439/UserGuide/write.html#Write-Zarr","68":"/YAXArrays.jl/previews/PR439/UserGuide/write.html#Write-NetCDF","69":"/YAXArrays.jl/previews/PR439/UserGuide/write.html#Overwrite-a-Dataset","70":"/YAXArrays.jl/previews/PR439/UserGuide/write.html#Append-to-a-Dataset","71":"/YAXArrays.jl/previews/PR439/UserGuide/write.html#Save-Skeleton","72":"/YAXArrays.jl/previews/PR439/UserGuide/write.html#Update-values-of-dataset","73":"/YAXArrays.jl/previews/PR439/api.html#API-Reference","74":"/YAXArrays.jl/previews/PR439/api.html#Public-API","75":"/YAXArrays.jl/previews/PR439/api.html#Internal-API","76":"/YAXArrays.jl/previews/PR439/development/contribute.html#Contribute-to-YAXArrays.jl","77":"/YAXArrays.jl/previews/PR439/development/contribute.html#Contribute-to-Documentation","78":"/YAXArrays.jl/previews/PR439/development/contribute.html#Build-docs-locally","79":"/YAXArrays.jl/previews/PR439/get_started.html#Getting-Started","80":"/YAXArrays.jl/previews/PR439/get_started.html#installation","81":"/YAXArrays.jl/previews/PR439/get_started.html#quickstart","82":"/YAXArrays.jl/previews/PR439/get_started.html#updates","83":"/YAXArrays.jl/previews/PR439/tutorials/mean_seasonal_cycle.html#Mean-Seasonal-Cycle-for-a-single-pixel","84":"/YAXArrays.jl/previews/PR439/tutorials/mean_seasonal_cycle.html#Define-the-cube","85":"/YAXArrays.jl/previews/PR439/tutorials/mean_seasonal_cycle.html#Plot-results:-mean-seasonal-cycle","86":"/YAXArrays.jl/previews/PR439/tutorials/other_tutorials.html#Other-tutorials","87":"/YAXArrays.jl/previews/PR439/tutorials/other_tutorials.html#General-overview-of-the-functionality-of-YAXArrays","88":"/YAXArrays.jl/previews/PR439/tutorials/other_tutorials.html#Table-style-iteration-over-YAXArrays","89":"/YAXArrays.jl/previews/PR439/tutorials/other_tutorials.html#Combining-multiple-tiff-files-into-a-zarr-based-datacube","90":"/YAXArrays.jl/previews/PR439/tutorials/plottingmaps.html#Plotting-maps","91":"/YAXArrays.jl/previews/PR439/tutorials/plottingmaps.html#Heatmap-plot","92":"/YAXArrays.jl/previews/PR439/tutorials/plottingmaps.html#Wintri-Projection","93":"/YAXArrays.jl/previews/PR439/tutorials/plottingmaps.html#Moll-projection","94":"/YAXArrays.jl/previews/PR439/tutorials/plottingmaps.html#3D-sphere-plot"},"fieldIds":{"title":0,"titles":1,"text":2},"fieldLength":{"0":[2,1,86],"1":[2,1,58],"2":[2,2,57],"3":[2,2,9],"4":[4,4,76],"5":[4,4,76],"6":[5,4,81],"7":[2,1,31],"8":[5,2,80],"9":[5,2,89],"10":[2,1,117],"11":[5,2,30],"12":[1,2,70],"13":[1,2,118],"14":[1,2,88],"15":[1,2,22],"16":[4,3,212],"17":[4,3,248],"18":[2,2,138],"19":[2,1,52],"20":[3,2,84],"21":[2,2,116],"22":[2,2,120],"23":[4,1,14],"24":[3,4,106],"25":[3,4,45],"26":[5,1,19],"27":[7,5,75],"28":[1,11,90],"29":[8,5,75],"30":[5,5,87],"31":[10,5,33],"32":[3,14,144],"33":[3,14,18],"34":[9,14,69],"35":[13,14,156],"36":[7,5,112],"37":[8,5,169],"38":[11,5,1],"39":[3,15,24],"40":[3,15,37],"41":[8,5,140],"42":[4,1,30],"43":[8,4,35],"44":[3,4,67],"45":[2,4,136],"46":[1,6,102],"47":[1,6,49],"48":[2,4,107],"49":[1,6,87],"50":[2,6,349],"51":[4,1,14],"52":[2,4,188],"53":[2,4,206],"54":[5,4,91],"55":[4,1,165],"56":[3,4,106],"57":[2,4,117],"58":[2,4,131],"59":[4,4,144],"60":[3,4,73],"61":[1,1,16],"62":[1,1,113],"63":[1,1,78],"64":[3,1,70],"65":[1,1,32],"66":[4,1,146],"67":[2,4,19],"68":[2,4,20],"69":[3,4,77],"70":[4,4,157],"71":[2,4,154],"72":[4,4,97],"73":[2,1,10],"74":[2,2,554],"75":[2,2,463],"76":[4,1,15],"77":[3,4,40],"78":[3,5,75],"79":[2,1,1],"80":[1,2,34],"81":[1,2,196],"82":[1,2,49],"83":[7,1,73],"84":[3,7,132],"85":[5,7,48],"86":[2,1,49],"87":[6,2,12],"88":[5,2,38],"89":[9,2,1],"90":[2,1,136],"91":[2,2,21],"92":[2,1,46],"93":[2,2,33],"94":[3,2,57]},"averageFieldLength":[3.463157894736843,3.7157894736842105,91.90526315789478],"storedFields":{"0":{"title":"Caching YAXArrays","titles":[]},"1":{"title":"Chunk YAXArrays","titles":[]},"2":{"title":"Chunking YAXArrays","titles":["Chunk YAXArrays"]},"3":{"title":"Chunking Datasets","titles":["Chunk YAXArrays"]},"4":{"title":"Set Chunks by Axis","titles":["Chunk YAXArrays","Chunking Datasets"]},"5":{"title":"Set chunking by Variable","titles":["Chunk YAXArrays","Chunking Datasets"]},"6":{"title":"Set chunking for all variables","titles":["Chunk YAXArrays","Chunking Datasets"]},"7":{"title":"Combine YAXArrays","titles":[]},"8":{"title":"cat along an existing dimension","titles":["Combine YAXArrays"]},"9":{"title":"concatenatecubes to a new dimension","titles":["Combine YAXArrays"]},"10":{"title":"Compute YAXArrays","titles":[]},"11":{"title":"Modify elements of a YAXArray","titles":["Compute YAXArrays"]},"12":{"title":"Arithmetics","titles":["Compute YAXArrays"]},"13":{"title":"map","titles":["Compute YAXArrays"]},"14":{"title":"mapslices","titles":["Compute YAXArrays"]},"15":{"title":"mapCube","titles":["Compute YAXArrays"]},"16":{"title":"Operations over several YAXArrays","titles":["Compute YAXArrays","mapCube"]},"17":{"title":"Creating a vector array","titles":["Compute YAXArrays","mapCube"]},"18":{"title":"Distributed Computation","titles":["Compute YAXArrays"]},"19":{"title":"Convert YAXArrays","titles":[]},"20":{"title":"Convert Base.Array","titles":["Convert YAXArrays"]},"21":{"title":"Convert Raster","titles":["Convert YAXArrays"]},"22":{"title":"Convert DimArray","titles":["Convert YAXArrays"]},"23":{"title":"Create YAXArrays and Datasets","titles":[]},"24":{"title":"Create a YAXArray","titles":["Create YAXArrays and Datasets"]},"25":{"title":"Create a Dataset","titles":["Create YAXArrays and Datasets"]},"26":{"title":"Frequently Asked Questions (FAQ)","titles":[]},"27":{"title":"Extract the axes names from a Cube","titles":["Frequently Asked Questions (FAQ)"]},"28":{"title":"rebuild","titles":["Frequently Asked Questions (FAQ)","Extract the axes names from a Cube"]},"29":{"title":"Obtain values from axes and data from the cube","titles":["Frequently Asked Questions (FAQ)"]},"30":{"title":"How do I concatenate cubes","titles":["Frequently Asked Questions (FAQ)"]},"31":{"title":"How do I subset a YAXArray ( Cube ) or Dataset?","titles":["Frequently Asked Questions (FAQ)"]},"32":{"title":"Subsetting a YAXArray","titles":["Frequently Asked Questions (FAQ)","How do I subset a YAXArray ( Cube ) or Dataset?"]},"33":{"title":"Subsetting a Dataset","titles":["Frequently Asked Questions (FAQ)","How do I subset a YAXArray ( Cube ) or Dataset?"]},"34":{"title":"Subsetting a Dataset whose variables share all their dimensions","titles":["Frequently Asked Questions (FAQ)","How do I subset a YAXArray ( Cube ) or Dataset?","Subsetting a Dataset"]},"35":{"title":"Subsetting a Dataset whose variables share some but not all of their dimensions","titles":["Frequently Asked Questions (FAQ)","How do I subset a YAXArray ( Cube ) or Dataset?","Subsetting a Dataset"]},"36":{"title":"How do I apply map algebra?","titles":["Frequently Asked Questions (FAQ)"]},"37":{"title":"How do I use the CubeTable function?","titles":["Frequently Asked Questions (FAQ)"]},"38":{"title":"How do I assign variable names to YAXArrays in a Dataset","titles":["Frequently Asked Questions (FAQ)"]},"39":{"title":"One variable name","titles":["Frequently Asked Questions (FAQ)","How do I assign variable names to YAXArrays in a Dataset"]},"40":{"title":"Multiple variable names","titles":["Frequently Asked Questions (FAQ)","How do I assign variable names to YAXArrays in a Dataset"]},"41":{"title":"Ho do I construct a Dataset from a TimeArray","titles":["Frequently Asked Questions (FAQ)"]},"42":{"title":"Group YAXArrays and Datasets","titles":[]},"43":{"title":"Seasonal Averages from Time Series of Monthly Means","titles":["Group YAXArrays and Datasets"]},"44":{"title":"Download the data","titles":["Group YAXArrays and Datasets"]},"45":{"title":"GroupBy: seasons","titles":["Group YAXArrays and Datasets"]},"46":{"title":"dropdims","titles":["Group YAXArrays and Datasets","GroupBy: seasons"]},"47":{"title":"seasons","titles":["Group YAXArrays and Datasets","GroupBy: seasons"]},"48":{"title":"GroupBy: weight","titles":["Group YAXArrays and Datasets"]},"49":{"title":"weights","titles":["Group YAXArrays and Datasets","GroupBy: weight"]},"50":{"title":"weighted seasons","titles":["Group YAXArrays and Datasets","GroupBy: weight"]},"51":{"title":"Read YAXArrays and Datasets","titles":[]},"52":{"title":"Read Zarr","titles":["Read YAXArrays and Datasets"]},"53":{"title":"Read NetCDF","titles":["Read YAXArrays and Datasets"]},"54":{"title":"Read GDAL (GeoTIFF, GeoJSON)","titles":["Read YAXArrays and Datasets"]},"55":{"title":"Select YAXArrays and Datasets","titles":[]},"56":{"title":"Select a YAXArray","titles":["Select YAXArrays and Datasets"]},"57":{"title":"Select elements","titles":["Select YAXArrays and Datasets"]},"58":{"title":"Select ranges","titles":["Select YAXArrays and Datasets"]},"59":{"title":"Closed and open intervals","titles":["Select YAXArrays and Datasets"]},"60":{"title":"Get a dimension","titles":["Select YAXArrays and Datasets"]},"61":{"title":"Types","titles":[]},"62":{"title":"YAXArray","titles":["Types"]},"63":{"title":"Dataset","titles":["Types"]},"64":{"title":"(Data) Cube","titles":["Types"]},"65":{"title":"Dimension","titles":["Types"]},"66":{"title":"Write YAXArrays and Datasets","titles":[]},"67":{"title":"Write Zarr","titles":["Write YAXArrays and Datasets"]},"68":{"title":"Write NetCDF","titles":["Write YAXArrays and Datasets"]},"69":{"title":"Overwrite a Dataset","titles":["Write YAXArrays and Datasets"]},"70":{"title":"Append to a Dataset","titles":["Write YAXArrays and Datasets"]},"71":{"title":"Save Skeleton","titles":["Write YAXArrays and Datasets"]},"72":{"title":"Update values of dataset","titles":["Write YAXArrays and Datasets"]},"73":{"title":"API Reference","titles":[]},"74":{"title":"Public API","titles":["API Reference"]},"75":{"title":"Internal API","titles":["API Reference"]},"76":{"title":"Contribute to YAXArrays.jl","titles":[]},"77":{"title":"Contribute to Documentation","titles":["Contribute to YAXArrays.jl"]},"78":{"title":"Build docs locally","titles":["Contribute to YAXArrays.jl","Contribute to Documentation"]},"79":{"title":"Getting Started","titles":[]},"80":{"title":"Installation","titles":["Getting Started"]},"81":{"title":"Quickstart","titles":["Getting Started"]},"82":{"title":"Updates","titles":["Getting Started"]},"83":{"title":"Mean Seasonal Cycle for a single pixel","titles":[]},"84":{"title":"Define the cube","titles":["Mean Seasonal Cycle for a single pixel"]},"85":{"title":"Plot results: mean seasonal cycle","titles":["Mean Seasonal Cycle for a single pixel"]},"86":{"title":"Other tutorials","titles":[]},"87":{"title":"General overview of the functionality of YAXArrays","titles":["Other tutorials"]},"88":{"title":"Table-style iteration over YAXArrays","titles":["Other tutorials"]},"89":{"title":"Combining multiple tiff files into a zarr based datacube","titles":["Other tutorials"]},"90":{"title":"Plotting maps","titles":[]},"91":{"title":"Heatmap plot","titles":["Plotting maps"]},"92":{"title":"Wintri Projection","titles":[]},"93":{"title":"Moll projection","titles":["Wintri Projection"]},"94":{"title":"3D sphere plot","titles":["Wintri Projection"]}},"dirtCount":0,"index":[["δlon",{"2":{"92":1}}],["`diskarrays",{"2":{"75":1}}],["`ds`",{"2":{"74":1}}],["`ordereddict`",{"2":{"74":1}}],["`fun`",{"2":{"74":1}}],["`a",{"2":{"32":1}}],["π",{"2":{"36":2,"83":1,"85":1}}],[">var",{"2":{"84":1}}],[">dates",{"2":{"84":1}}],[">month",{"2":{"74":1}}],[">abs",{"2":{"74":1}}],[">=",{"2":{"35":4}}],[">",{"2":{"35":2,"36":2,"84":1}}],["└──────────────────────────────────────────────────────────┘",{"2":{"32":1}}],["└─────────────────────────────────────────────────────────────┘",{"2":{"21":2}}],["└──────────────────────────────────────────────────────────────────┘",{"2":{"22":2}}],["└──────────────────────────────────────────────────────────────────────┘",{"2":{"24":1,"28":1}}],["└────────────────────────────────────────────────────────────────────────────────┘",{"2":{"57":1}}],["└──────────────────────────────────────────────────────────────────────────────┘",{"2":{"10":1,"12":1,"13":1,"14":2,"16":5,"17":4,"24":1,"27":1,"28":2,"29":1,"30":1,"32":4,"36":3,"37":3,"45":2,"46":1,"48":3,"49":2,"50":3,"52":1,"53":1,"56":2,"57":2,"58":3,"59":5,"71":1,"81":1,"84":1}}],["└───────────────────────────────────────────────────────────────────────┘",{"2":{"8":1}}],["└─────────────────────────────────────────────────────────────────────┘",{"2":{"20":1,"81":1}}],["└────────────────────────────────────────────────────────────────┘",{"2":{"9":1}}],["⬔",{"2":{"30":1,"81":1}}],["quickstart",{"0":{"81":1}}],["query",{"2":{"55":1}}],["questions",{"0":{"26":1},"1":{"27":1,"28":1,"29":1,"30":1,"31":1,"32":1,"33":1,"34":1,"35":1,"36":1,"37":1,"38":1,"39":1,"40":1,"41":1}}],["quot",{"2":{"16":2,"37":2,"69":2,"71":4,"74":16,"75":12}}],["jj+1",{"2":{"53":1,"55":1,"66":1,"70":1}}],["jj",{"2":{"53":1,"55":1,"66":1,"70":1}}],["joinname",{"2":{"74":1}}],["joinname=",{"2":{"74":1}}],["journal",{"2":{"53":1,"55":1,"66":1,"70":1}}],["joe",{"2":{"43":1,"50":1}}],["j",{"2":{"50":8}}],["jan",{"2":{"45":4,"46":2,"47":1,"48":4,"49":4,"50":6}}],["jl",{"0":{"76":1},"1":{"77":1,"78":1},"2":{"21":1,"22":1,"37":1,"41":2,"44":1,"50":1,"62":1,"65":1,"76":1,"78":2,"80":1,"81":2,"82":3,"88":1}}],["jussieu",{"2":{"53":1,"55":1,"66":1,"70":1}}],["just",{"2":{"17":1,"62":1,"64":1,"74":1,"75":2}}],["jul",{"2":{"45":4,"46":2,"47":1,"48":4,"49":4,"50":6}}],["juliaδlon",{"2":{"92":1}}],["juliaglmakie",{"2":{"91":1}}],["juliagetloopchunks",{"2":{"75":1}}],["juliagetouttype",{"2":{"75":1}}],["juliagetoutaxis",{"2":{"75":1}}],["juliaget",{"2":{"75":1}}],["juliagetaxis",{"2":{"74":1}}],["juliagettarrayaxes",{"2":{"41":1}}],["juliagen",{"2":{"16":1}}],["juliax",{"2":{"83":1}}],["juliapkg>",{"2":{"80":1,"82":1}}],["juliapermuteloopaxes",{"2":{"75":1}}],["juliaoptifunc",{"2":{"75":1}}],["juliaoutdims",{"2":{"74":1}}],["juliaoffset",{"2":{"13":1}}],["juliaindims",{"2":{"74":1}}],["juliaimport",{"2":{"14":1,"80":1}}],["juliacopydata",{"2":{"75":1}}],["juliacollect",{"2":{"29":1,"60":1}}],["juliaclean",{"2":{"75":1}}],["juliacube",{"2":{"74":1}}],["juliacubefittable",{"2":{"74":1}}],["juliacubetable",{"2":{"74":1}}],["juliacaxes",{"2":{"74":1}}],["juliasavecube",{"2":{"74":1}}],["juliasavedataset",{"2":{"67":1,"68":1,"69":1}}],["juliasetchunks",{"2":{"74":1,"75":1}}],["juliaseasons",{"2":{"47":1}}],["julialon",{"2":{"90":1}}],["julialookup",{"2":{"60":1}}],["julialatitudes",{"2":{"35":1}}],["juliawith",{"2":{"50":1}}],["julia>",{"2":{"50":1,"78":1,"84":1}}],["juliaurl",{"2":{"44":1}}],["juliausing",{"2":{"0":1,"2":1,"4":1,"5":1,"6":1,"8":1,"9":1,"10":1,"16":1,"17":1,"18":2,"20":1,"21":1,"22":1,"24":2,"27":1,"28":1,"30":1,"32":1,"34":1,"35":1,"37":2,"41":1,"42":1,"50":1,"52":1,"53":1,"54":1,"55":1,"57":1,"59":1,"66":1,"67":1,"68":1,"71":1,"81":2,"83":1,"90":1,"94":1}}],["juliakeylist",{"2":{"40":1}}],["juliaylonlat",{"2":{"32":1}}],["juliaytime3",{"2":{"32":1}}],["juliaytime2",{"2":{"32":1}}],["juliaytime",{"2":{"32":1}}],["juliay",{"2":{"32":1}}],["juliayaxcolumn",{"2":{"75":1}}],["juliayaxarray",{"2":{"74":1}}],["juliayax",{"2":{"0":1,"41":2}}],["juliatos",{"2":{"56":2,"57":2,"58":3,"59":1,"60":1}}],["juliatempo",{"2":{"48":1}}],["juliat",{"2":{"32":1,"37":1,"83":1}}],["juliatspan",{"2":{"16":1}}],["juliadataset",{"2":{"74":1}}],["juliadata3",{"2":{"25":1}}],["juliads2",{"2":{"70":1}}],["juliads",{"2":{"34":1,"35":1,"52":1,"53":1,"71":2,"72":3}}],["juliadim",{"2":{"22":1}}],["juliadimarray",{"2":{"17":1}}],["juliareadcubedata",{"2":{"74":1}}],["juliaregions",{"2":{"17":2}}],["juliar",{"2":{"71":1}}],["juliaras2",{"2":{"21":1}}],["juliamutable",{"2":{"75":1}}],["juliamatch",{"2":{"75":1}}],["juliamapcube",{"2":{"74":2}}],["juliamapslices",{"2":{"14":1,"18":1}}],["juliamovingwindow",{"2":{"74":1}}],["juliamean",{"2":{"50":1}}],["juliam2",{"2":{"20":1}}],["julia",{"2":{"19":1,"75":1,"78":1,"80":2,"82":2}}],["juliavector",{"2":{"17":1}}],["juliajulia>",{"2":{"16":5,"27":3,"28":2,"29":1,"30":1,"36":3,"37":3,"39":1,"40":1,"41":2,"45":2,"46":1,"48":2,"49":2,"50":3,"59":4,"70":1,"71":1,"84":2,"90":3}}],["juliaall",{"2":{"71":1}}],["juliaaxs",{"2":{"44":1}}],["juliaaxes",{"2":{"32":1}}],["juliaa2",{"2":{"12":2,"24":2,"81":1}}],["juliaa",{"2":{"2":1,"11":3}}],["juliafig",{"2":{"83":1,"85":1,"92":1,"93":1}}],["juliafindaxis",{"2":{"75":1}}],["juliafittable",{"2":{"74":2}}],["juliafunction",{"2":{"16":1,"45":1,"74":1,"84":1}}],["juliaf",{"2":{"2":1,"4":1,"5":1,"6":1,"16":1}}],["jun",{"2":{"45":4,"46":2,"47":1,"48":4,"49":4,"50":6}}],["∘",{"2":{"18":1}}],["|>",{"2":{"17":2}}],["⋱",{"2":{"17":1}}],["⋮",{"2":{"17":2,"60":1,"84":1}}],["929437",{"2":{"81":1}}],["923123",{"2":{"21":1}}],["930783",{"2":{"81":1}}],["9375",{"2":{"52":2,"90":1}}],["93743",{"2":{"50":1}}],["9362",{"2":{"50":1}}],["97649",{"2":{"50":1}}],["97047",{"2":{"50":1}}],["970858",{"2":{"20":1}}],["94534",{"2":{"50":1}}],["9404",{"2":{"45":1,"46":1}}],["9432",{"2":{"45":1,"46":1}}],["944509",{"2":{"21":1}}],["994603",{"2":{"81":1}}],["990195",{"2":{"81":1}}],["99",{"2":{"35":6}}],["99587",{"2":{"21":1}}],["995635",{"2":{"17":1}}],["9122",{"2":{"54":1}}],["9192",{"2":{"50":1}}],["91",{"2":{"27":1,"59":5}}],["95",{"2":{"50":1}}],["959",{"2":{"50":1}}],["950426",{"2":{"22":1}}],["952215",{"2":{"17":1}}],["90712",{"2":{"50":1}}],["90365",{"2":{"50":1}}],["903195",{"2":{"22":1}}],["903146",{"2":{"20":1}}],["90",{"2":{"35":2,"54":1,"59":5}}],["909935",{"2":{"21":1}}],["901677",{"2":{"20":1}}],["900563",{"2":{"17":1}}],["986",{"2":{"50":1}}],["986739",{"2":{"17":1}}],["989301",{"2":{"21":1}}],["980693",{"2":{"20":1}}],["981179",{"2":{"17":1}}],["9",{"2":{"16":14,"17":2,"29":1,"32":1,"48":4,"58":4,"75":1}}],["967799",{"2":{"81":1}}],["965042",{"2":{"72":2}}],["96x71x19",{"2":{"53":1,"55":1,"66":1,"70":1}}],["96f0",{"2":{"53":1,"55":1,"66":1}}],["9682",{"2":{"45":1,"46":1}}],["961969",{"2":{"21":1}}],["960",{"2":{"17":1}}],["96",{"2":{"8":1,"9":1,"57":2,"70":1}}],["87",{"2":{"60":1}}],["87705",{"2":{"50":1}}],["826147",{"2":{"81":1}}],["82",{"2":{"60":1}}],["82421875",{"2":{"54":2}}],["843691",{"2":{"81":1}}],["844079",{"2":{"81":1}}],["84",{"2":{"54":2,"60":1}}],["840391",{"2":{"21":1}}],["89797",{"2":{"72":2}}],["8901",{"2":{"54":1}}],["89",{"2":{"52":4,"53":2,"54":1,"55":1,"56":2,"57":1,"58":1,"59":5,"60":1,"66":1,"70":1,"90":2}}],["8984",{"2":{"50":1}}],["89237",{"2":{"50":1}}],["892528",{"2":{"22":1}}],["880638",{"2":{"81":1}}],["88",{"2":{"30":1,"52":4,"60":1,"81":1,"90":2}}],["887044",{"2":{"22":1}}],["855416",{"2":{"81":1}}],["854213",{"2":{"81":1}}],["854122",{"2":{"21":1}}],["852771",{"2":{"81":1}}],["85",{"2":{"60":1,"92":1,"93":1}}],["850",{"2":{"50":1}}],["85ºn",{"2":{"35":1}}],["85714",{"2":{"17":1}}],["83",{"2":{"60":1}}],["832117",{"2":{"21":1}}],["834424",{"2":{"20":1}}],["81805",{"2":{"81":1}}],["815069",{"2":{"81":1}}],["81",{"2":{"24":1,"60":1}}],["813539",{"2":{"21":1}}],["816965",{"2":{"17":1}}],["86309",{"2":{"81":1}}],["863044",{"2":{"17":1}}],["864074",{"2":{"72":2}}],["86457",{"2":{"50":1}}],["86",{"2":{"60":1}}],["866623",{"2":{"20":1}}],["8",{"2":{"16":12,"17":2,"29":1,"32":1,"53":2,"55":1,"56":2,"66":1,"70":1,"84":1}}],["803436",{"2":{"81":1}}],["808801",{"2":{"81":1}}],["808832",{"2":{"72":2}}],["80759",{"2":{"50":1}}],["800",{"2":{"28":3,"29":1,"32":1}}],["800783",{"2":{"20":1}}],["801021",{"2":{"17":1}}],["80",{"2":{"16":1,"35":2}}],["v",{"2":{"53":1,"55":1,"66":1,"70":1}}],["v1",{"2":{"53":2,"55":2,"66":2,"70":2,"80":1}}],["v20190710",{"2":{"52":1,"90":2}}],["vol",{"2":{"53":1,"55":1,"66":1,"70":1}}],["volume",{"2":{"41":4}}],["voilà",{"2":{"41":1}}],["video",{"2":{"86":1}}],["videos",{"2":{"86":1}}],["visualization",{"2":{"37":1}}],["vice",{"2":{"19":1}}],["view",{"2":{"17":1,"81":1}}],["version",{"2":{"52":1,"53":1,"55":1,"66":1,"70":1,"82":2,"90":1}}],["versa",{"2":{"19":1}}],["verify",{"2":{"49":1,"72":1}}],["very",{"2":{"13":1,"37":1,"62":1}}],["vector",{"0":{"17":1},"2":{"17":4,"29":1,"45":1,"47":1,"48":2,"49":3,"50":2,"60":1,"62":1,"74":2,"75":3}}],["val",{"2":{"29":2,"60":1}}],["vals",{"2":{"17":1}}],["value",{"2":{"12":1,"14":3,"16":2,"36":1,"53":1,"56":2,"57":3,"58":3,"59":5,"74":4,"75":1}}],["values=ds1",{"2":{"37":1}}],["values",{"0":{"29":1,"72":1},"2":{"9":1,"17":2,"23":1,"24":2,"27":2,"28":1,"29":1,"35":3,"37":4,"41":2,"58":1,"60":2,"62":1,"63":1,"71":1,"72":3,"74":9,"81":1,"90":1}}],["vararg",{"2":{"75":2}}],["varoables",{"2":{"74":1}}],["variant",{"2":{"52":1,"90":1}}],["variable=at",{"2":{"81":1}}],["variable",{"0":{"5":1,"38":1,"39":1,"40":1},"1":{"39":1,"40":1},"2":{"5":1,"9":3,"35":3,"41":5,"52":1,"71":2,"74":4,"75":7,"81":3,"83":1,"84":1,"85":1,"90":1}}],["variables=at",{"2":{"36":2}}],["variables",{"0":{"6":1,"34":1,"35":1},"2":{"4":5,"5":4,"6":2,"9":2,"19":1,"25":1,"30":2,"33":1,"34":2,"35":11,"39":1,"40":4,"41":6,"52":4,"53":1,"54":1,"55":1,"63":1,"64":1,"66":1,"70":4,"71":1,"74":2,"90":4}}],["varlist",{"2":{"40":2}}],["var2=var2",{"2":{"34":1}}],["var2",{"2":{"30":2,"34":3,"36":1}}],["var1=var1",{"2":{"34":1}}],["var1",{"2":{"30":2,"34":3,"36":1}}],["var",{"2":{"9":2,"83":2,"84":2,"85":2}}],["uv",{"2":{"94":1}}],["u",{"2":{"84":1}}],["up",{"2":{"74":1}}],["updates",{"0":{"82":1}}],["updated",{"2":{"72":1}}],["update",{"0":{"72":1},"2":{"72":2,"74":1}}],["updating",{"2":{"42":1,"72":1}}],["ucar",{"2":{"53":1,"55":1,"63":1,"66":1}}],["urls",{"2":{"51":1}}],["url",{"2":{"44":1,"52":1}}],["unpermuted",{"2":{"75":2}}],["unpractical",{"2":{"44":1}}],["underlying",{"2":{"74":1,"75":1,"82":1}}],["unlike",{"2":{"64":1}}],["unique",{"2":{"84":1}}],["unidata",{"2":{"53":1,"55":1,"63":1,"66":1}}],["unit",{"2":{"54":1}}],["units",{"2":{"52":1,"53":2,"56":4,"57":6,"58":6,"59":10}}],["unitrange",{"2":{"45":2,"46":2,"50":6}}],["union",{"2":{"14":2,"16":6,"17":1,"36":1,"37":2,"53":1,"56":2,"57":3,"58":3,"59":5,"71":2,"72":2}}],["unweighted",{"2":{"45":1,"50":1}}],["unordered",{"2":{"41":4,"45":2,"46":1,"47":1,"48":2,"49":2,"50":3}}],["unnecessary",{"2":{"17":1}}],["unchanged",{"2":{"13":1}}],["usually",{"2":{"52":1,"62":2,"63":2}}],["usual",{"2":{"45":1}}],["us",{"2":{"17":1}}],["useable",{"2":{"74":1}}],["uses",{"2":{"37":1}}],["used",{"2":{"17":1,"18":1,"32":1,"55":1,"60":1,"61":1,"62":1,"65":1,"74":4,"75":3}}],["userguide",{"2":{"77":2}}],["users",{"2":{"75":1}}],["user",{"2":{"10":2,"12":1,"13":1,"18":1,"24":3,"25":1,"75":1}}],["use",{"0":{"37":1},"2":{"0":1,"8":1,"9":1,"10":4,"13":1,"18":2,"27":2,"32":1,"34":1,"35":1,"36":1,"37":2,"41":2,"42":1,"44":1,"46":1,"59":2,"64":1,"71":1,"74":3,"75":1,"86":1,"88":1,"90":2}}],["useful",{"2":{"0":1,"64":1}}],["using",{"2":{"0":1,"8":1,"9":1,"10":1,"16":2,"17":2,"18":7,"22":1,"27":1,"28":2,"30":1,"32":2,"34":2,"35":2,"36":1,"37":1,"41":1,"42":4,"52":2,"53":3,"54":2,"55":2,"57":3,"58":2,"66":2,"70":1,"71":3,"82":1,"83":2,"84":1,"90":3}}],["+proj=moll",{"2":{"93":1}}],["+",{"2":{"12":2,"13":1,"16":2,"83":1,"92":1}}],["kwargs",{"2":{"74":4,"75":2}}],["k",{"2":{"41":5,"52":1,"53":1,"56":2,"57":3,"58":3,"59":5}}],["keyword",{"2":{"70":1,"74":6,"75":2}}],["key",{"2":{"42":1,"74":1}}],["keyset",{"2":{"41":1}}],["keys",{"2":{"41":7,"74":1}}],["keylist",{"2":{"40":1}}],["keeps",{"2":{"13":1}}],["keep",{"2":{"0":1,"75":1}}],["kb",{"2":{"10":1,"12":1,"13":1,"14":1,"16":2,"17":1,"21":1,"24":2,"27":1,"30":1,"32":4,"36":3,"37":1,"57":1,"58":3,"59":5,"81":1,"84":1}}],["↗",{"2":{"10":1,"12":1,"13":1,"16":2,"17":1,"21":2,"24":3,"25":1,"27":3,"30":1,"32":5,"34":2,"36":3,"45":1,"52":2,"53":2,"55":1,"56":2,"58":3,"59":5,"66":1,"70":2,"71":2,"81":1,"90":1}}],["├─────────────────────────┴──────────────────────────",{"2":{"32":1}}],["├─────────────────────────┴─────────────────────────────────────",{"2":{"81":1}}],["├─────────────────────────┴──────────────────────────────────────────────",{"2":{"29":1,"37":1}}],["├─────────────────────────┴──────────────────────────────────────",{"2":{"28":1}}],["├─────────────────────────┴──────────────────────────────────",{"2":{"22":2}}],["├─────────────────────────┴────────────────────────────────",{"2":{"9":1}}],["├──────────────────────────┴────────────────────────────",{"2":{"21":1}}],["├──────────────────────────┴────────────────────────────────────",{"2":{"20":1}}],["├──────────────────────────┴─────────────────────────────────────────────",{"2":{"17":1,"32":1}}],["├────────────────────────────┴───────────────────────────────────────────",{"2":{"32":2}}],["├────────────────────────────┴──────────────────────────",{"2":{"21":1}}],["├─────────────────────────────┴──────────────────────────────────",{"2":{"24":1}}],["├─────────────────────────────┴──────────────────────────────────────────",{"2":{"16":1,"27":1}}],["├───────────────────────────────┴────────────────────────────────────────",{"2":{"49":1}}],["├──────────────────────────────────┴─────────────────────────────────────",{"2":{"84":1}}],["├────────────────────────────────────┴───────────────────────────────────",{"2":{"52":1}}],["├──────────────────────────────────────────┴─────────────────────────────",{"2":{"17":1,"37":1}}],["├─────────────────────────────────────────────┴─────────────────",{"2":{"57":1}}],["├───────────────────────────────────────────────┴────────────────────────",{"2":{"37":1,"58":1,"59":5}}],["├───────────────────────────────────────────────",{"2":{"32":1}}],["├────────────────────────────────────────────────",{"2":{"32":1}}],["├──────────────────────────────────────────────────┴─────────────────────",{"2":{"45":1}}],["├──────────────────────────────────────────────────",{"2":{"21":1}}],["├───────────────────────────────────────────────────",{"2":{"21":2}}],["├─────────────────────────────────────────────────────",{"2":{"9":1,"21":1}}],["├───────────────────────────────────────────────────────",{"2":{"22":1}}],["├────────────────────────────────────────────────────────",{"2":{"22":2}}],["├──────────────────────────────────────────────────────────",{"2":{"20":1,"81":1}}],["├───────────────────────────────────────────────────────────",{"2":{"20":1,"24":1,"28":1,"81":1}}],["├────────────────────────────────────────────────────────────",{"2":{"8":1,"24":1,"28":1}}],["├──────────────────────────────────────────────────────────────────",{"2":{"45":1,"48":1}}],["├───────────────────────────────────────────────────────────────────",{"2":{"10":1,"12":1,"13":1,"14":2,"16":5,"17":2,"24":1,"27":1,"28":2,"29":1,"30":1,"32":4,"36":3,"37":3,"48":1,"52":1,"53":1,"56":2,"57":2,"58":3,"59":5,"71":1,"81":1,"84":1}}],["├─────────────────────────────────────────────────────────────────────",{"2":{"57":1}}],["├─────────────────────────────────────────────────────────────────────┴",{"2":{"57":1}}],["├────────────────────────────────────────────────────────────────────────",{"2":{"45":1,"46":1,"48":1,"49":1,"50":3}}],["├────────────────────────────────────────────────────────────────────",{"2":{"10":1,"12":1,"13":1,"14":2,"16":5,"17":3,"24":1,"27":1,"28":2,"29":1,"30":1,"32":4,"36":3,"37":3,"45":2,"46":1,"48":3,"49":2,"50":3,"52":1,"53":1,"56":2,"57":2,"58":3,"59":5,"71":1,"81":1,"84":1}}],["├─────────────────────────────────────────────────────────────",{"2":{"8":1}}],["├──────────────────────────────────────────────────────",{"2":{"9":1}}],["├────────────────────────────────────────────────┴───────────────────────",{"2":{"14":1,"48":1,"53":1,"56":2,"57":2}}],["├──────────────────────────────────────────────┴─────────────────────────",{"2":{"16":2,"36":1,"58":2}}],["├───────────────────────────────────────────┴────────────────────────────",{"2":{"14":1,"71":1}}],["├────────────────────────────────┴───────────────────────────────────────",{"2":{"30":1,"81":1}}],["├────────────────────────────────┴────────────────────────────────",{"2":{"8":1}}],["├──────────────────────────────┴─────────────────────────────────────────",{"2":{"10":1,"12":1,"13":1,"16":2,"17":1,"24":1,"36":2,"48":1}}],["├───────────────────────────┴────────────────────────────────────────────",{"2":{"17":1,"28":2,"32":1}}],["╭────────────────────────────╮",{"2":{"21":1,"32":2}}],["╭─────────────────────────────╮",{"2":{"16":1,"24":1,"27":1}}],["╭───────────────────────────────╮",{"2":{"49":1}}],["╭──────────────────────────────────╮",{"2":{"84":1}}],["╭────────────────────────────────────╮",{"2":{"52":1}}],["╭──────────────────────────────────────────╮",{"2":{"17":1,"37":1}}],["╭─────────────────────────────────────────────╮",{"2":{"57":1}}],["╭──────────────────────────────────────────────────────────────────────────────╮",{"2":{"45":1,"46":1,"48":1,"49":1,"50":3}}],["╭──────────────────────────────────────────────────╮",{"2":{"45":1}}],["╭────────────────────────────────────────────────╮",{"2":{"14":1,"48":1,"53":1,"56":2,"57":2}}],["╭───────────────────────────────────────────────╮",{"2":{"37":1,"58":1,"59":5}}],["╭──────────────────────────────────────────────╮",{"2":{"16":2,"36":1,"58":2}}],["╭───────────────────────────────────────────╮",{"2":{"14":1,"71":1}}],["╭────────────────────────────────╮",{"2":{"8":1,"30":1,"81":1}}],["╭──────────────────────────────╮",{"2":{"10":1,"12":1,"13":1,"16":2,"17":1,"24":1,"36":2,"48":1}}],["╭───────────────────────────╮",{"2":{"17":1,"28":2,"32":1}}],["╭──────────────────────────╮",{"2":{"17":1,"20":1,"21":1,"32":1}}],["╭─────────────────────────╮",{"2":{"9":1,"22":2,"28":1,"29":1,"32":1,"37":1,"81":1}}],["0e8",{"2":{"74":1}}],["020514608916575052",{"2":{"84":1}}],["0277956887000952",{"2":{"84":1}}],["02476075259795259",{"2":{"84":1}}],["026899",{"2":{"81":1}}],["02",{"2":{"52":1}}],["0f20",{"2":{"52":1,"53":2,"56":4,"57":6,"58":6,"59":10}}],["0f32",{"2":{"16":2}}],["0735199",{"2":{"81":1}}],["07",{"2":{"52":2,"90":1}}],["0625",{"2":{"52":2,"90":1}}],["06755",{"2":{"50":1}}],["0604828",{"2":{"22":1}}],["0822811869251565",{"2":{"84":1}}],["08817673905511103",{"2":{"84":1}}],["08901859058714479",{"2":{"84":1}}],["08",{"2":{"48":1}}],["081909",{"2":{"20":1}}],["0936418",{"2":{"81":1}}],["0939467",{"2":{"17":1}}],["09",{"2":{"48":1}}],["00722034",{"2":{"50":1}}],["00709111",{"2":{"50":1}}],["00684233",{"2":{"50":1}}],["00693713",{"2":{"50":1}}],["00990356",{"2":{"50":1}}],["0057",{"2":{"50":1}}],["00388",{"2":{"50":1}}],["00",{"2":{"41":16,"48":4,"52":9,"53":8,"55":4,"56":8,"57":8,"58":12,"59":20,"66":4,"70":4,"90":5}}],["0ºe",{"2":{"35":1}}],["05846",{"2":{"50":1}}],["0537",{"2":{"45":1,"46":1}}],["05",{"2":{"32":3}}],["0449604",{"2":{"72":2}}],["0449176",{"2":{"22":1}}],["0465",{"2":{"50":1}}],["0422229",{"2":{"17":1}}],["03973148385823724",{"2":{"84":1}}],["03361",{"2":{"50":1}}],["03",{"2":{"21":1}}],["0321161",{"2":{"20":1}}],["0366927",{"2":{"20":1}}],["013209602475927312",{"2":{"84":1}}],["016861627371078585",{"2":{"84":1}}],["0166238",{"2":{"17":1}}],["010599650263461291",{"2":{"84":1}}],["0101602",{"2":{"81":1}}],["0158282",{"2":{"81":1}}],["0190005",{"2":{"72":2}}],["019016",{"2":{"50":1}}],["01t03",{"2":{"52":2,"90":1}}],["01t00",{"2":{"41":4,"52":2,"90":1}}],["0174532925199433",{"2":{"54":1}}],["0178074",{"2":{"50":1}}],["0176159",{"2":{"21":1}}],["0117519",{"2":{"50":1}}],["0115514",{"2":{"50":1}}],["0127077",{"2":{"50":1}}],["0123091",{"2":{"50":1}}],["0121037",{"2":{"50":1}}],["018571",{"2":{"50":1}}],["0182373",{"2":{"50":1}}],["0180572",{"2":{"50":1}}],["0183003",{"2":{"50":1}}],["018",{"2":{"45":1,"46":1}}],["0187872",{"2":{"21":1}}],["01",{"2":{"10":6,"12":3,"13":3,"14":3,"16":12,"17":9,"18":3,"24":9,"25":3,"32":22,"34":8,"35":11,"41":8,"52":5,"53":4,"55":2,"56":4,"57":6,"58":6,"59":10,"66":2,"70":2,"83":2,"84":4,"90":5}}],["0",{"2":{"8":1,"9":1,"10":6,"11":2,"12":6,"13":6,"14":7,"16":303,"17":75,"20":36,"21":36,"22":45,"24":12,"25":6,"28":3,"29":1,"30":9,"32":1,"35":4,"36":27,"37":11,"48":2,"49":40,"50":19,"52":7,"53":10,"54":6,"55":6,"56":8,"57":6,"58":14,"59":20,"60":6,"66":6,"69":1,"70":6,"71":1,"72":40,"74":2,"75":1,"81":80,"82":1,"83":2,"84":19,"85":1,"90":4,"92":2,"93":2,"94":2}}],["┤",{"2":{"8":2,"9":2,"10":2,"12":2,"13":2,"14":4,"16":10,"17":5,"20":2,"21":4,"22":3,"24":4,"27":2,"28":6,"29":2,"30":2,"32":10,"36":6,"37":6,"45":4,"46":2,"48":6,"49":3,"50":6,"52":2,"53":2,"56":4,"57":5,"58":6,"59":10,"71":2,"81":4,"84":2}}],["┐",{"2":{"8":1,"9":1,"10":1,"12":1,"13":1,"14":2,"16":5,"17":4,"20":1,"21":2,"22":2,"24":2,"27":1,"28":3,"29":1,"30":1,"32":5,"36":3,"37":3,"45":1,"48":2,"49":1,"52":1,"53":1,"56":2,"57":4,"58":3,"59":5,"71":1,"81":2,"84":1}}],["│",{"2":{"8":2,"9":2,"10":2,"12":2,"13":2,"14":4,"16":10,"17":8,"20":2,"21":4,"22":4,"24":4,"27":2,"28":6,"29":2,"30":2,"32":10,"36":6,"37":6,"45":4,"46":2,"48":6,"49":4,"50":6,"52":2,"53":2,"56":4,"57":6,"58":6,"59":10,"71":2,"81":4,"84":2}}],["72",{"2":{"60":1}}],["72839",{"2":{"21":1}}],["766402",{"2":{"81":1}}],["76",{"2":{"60":1}}],["764608",{"2":{"21":1}}],["787703",{"2":{"72":2}}],["78",{"2":{"58":1,"60":1}}],["701337",{"2":{"81":1}}],["702987",{"2":{"81":1}}],["705507",{"2":{"72":2}}],["70",{"2":{"58":3,"60":1}}],["7030",{"2":{"54":1}}],["704581",{"2":{"20":1}}],["730",{"2":{"85":1}}],["732383",{"2":{"81":1}}],["737428",{"2":{"72":2}}],["7341",{"2":{"50":1}}],["73",{"2":{"50":1,"60":1}}],["754065",{"2":{"81":1}}],["75",{"2":{"60":1}}],["7593",{"2":{"50":1}}],["75891",{"2":{"50":1}}],["753249",{"2":{"22":1}}],["77",{"2":{"60":1}}],["77687",{"2":{"50":1}}],["77587",{"2":{"50":1}}],["774508",{"2":{"22":1}}],["74",{"2":{"60":1}}],["745564",{"2":{"22":1}}],["744671",{"2":{"21":1}}],["746641",{"2":{"21":1}}],["717",{"2":{"59":5}}],["71",{"2":{"58":1,"60":1}}],["7158",{"2":{"45":1,"46":1}}],["7119",{"2":{"45":1,"46":1}}],["711856",{"2":{"20":1}}],["71429",{"2":{"17":2}}],["794844",{"2":{"81":1}}],["791865",{"2":{"72":2}}],["79",{"2":{"53":2,"55":1,"56":2,"57":2,"58":4,"59":5,"60":1,"66":1,"70":1}}],["79502",{"2":{"50":1}}],["795445",{"2":{"17":1}}],["79872",{"2":{"21":1}}],["790482",{"2":{"17":1}}],["792869",{"2":{"17":1}}],["7",{"2":{"8":1,"16":10,"17":1,"21":1,"24":1,"29":1,"52":1,"90":1}}],["→",{"2":{"4":1,"5":1,"6":1,"9":1,"10":1,"12":1,"13":1,"14":1,"16":2,"17":6,"20":1,"21":3,"22":3,"24":3,"25":1,"27":3,"28":3,"29":1,"30":1,"32":6,"34":2,"35":2,"36":3,"37":2,"40":2,"41":4,"45":1,"52":2,"53":2,"54":1,"55":1,"56":2,"57":1,"58":3,"59":5,"66":1,"70":2,"71":2,"81":2,"90":1}}],["↓",{"2":{"4":3,"5":3,"6":1,"8":1,"9":1,"10":1,"12":1,"13":1,"14":2,"16":5,"17":6,"20":1,"21":3,"22":3,"24":3,"25":1,"27":3,"28":3,"29":1,"30":1,"32":6,"34":2,"35":8,"36":3,"37":3,"39":1,"40":3,"41":4,"45":3,"46":1,"48":4,"49":2,"50":3,"52":2,"53":2,"54":1,"55":1,"56":2,"57":3,"58":3,"59":5,"66":1,"70":2,"71":2,"81":2,"84":2,"90":1}}],["476681",{"2":{"81":1}}],["478229",{"2":{"81":1}}],["48",{"2":{"81":1}}],["48367",{"2":{"50":1}}],["480",{"2":{"37":1}}],["49909",{"2":{"50":1}}],["4947",{"2":{"50":1}}],["4198",{"2":{"50":1}}],["41241",{"2":{"50":1}}],["41049",{"2":{"50":1}}],["41634",{"2":{"50":1}}],["44",{"2":{"32":1,"36":3}}],["468415",{"2":{"72":2}}],["46506",{"2":{"50":1}}],["46",{"2":{"30":1,"81":1}}],["40",{"2":{"35":2}}],["409563",{"2":{"20":1}}],["400911",{"2":{"72":2}}],["400",{"2":{"20":1,"71":1,"83":1,"85":1}}],["45×170×24",{"2":{"59":5}}],["454727",{"2":{"20":1}}],["452836",{"2":{"17":1}}],["4×30",{"2":{"17":1}}],["436438",{"2":{"81":1}}],["43666",{"2":{"17":1}}],["4326",{"2":{"54":1}}],["43254",{"2":{"50":1}}],["4325",{"2":{"45":1,"46":1}}],["430147",{"2":{"20":1}}],["431302",{"2":{"17":1}}],["42857",{"2":{"17":2}}],["42",{"2":{"11":3}}],["4",{"2":{"4":4,"5":4,"16":4,"17":9,"22":1,"29":1,"30":1,"45":2,"46":1,"47":1,"48":2,"49":2,"50":4,"71":3,"72":3,"81":3,"83":1,"85":1}}],["3d",{"0":{"94":1}}],["3hr",{"2":{"52":2,"90":3}}],["323718",{"2":{"81":1}}],["32555",{"2":{"50":1}}],["3252",{"2":{"45":1,"46":1}}],["32149",{"2":{"50":1}}],["3×20",{"2":{"37":1}}],["366",{"2":{"85":1}}],["365×1",{"2":{"84":1}}],["365",{"2":{"84":1,"85":4}}],["36126",{"2":{"50":1}}],["36142",{"2":{"50":1}}],["36836",{"2":{"50":1}}],["369",{"2":{"35":1}}],["36",{"2":{"32":1,"34":2,"35":1,"48":1}}],["3600",{"2":{"32":1,"34":2}}],["360597",{"2":{"20":1}}],["384×192×251288",{"2":{"52":1}}],["3866",{"2":{"50":1}}],["38364",{"2":{"50":1}}],["3835",{"2":{"45":1,"46":1}}],["38",{"2":{"32":1,"58":3}}],["388524",{"2":{"22":1}}],["380869",{"2":{"21":1}}],["33565",{"2":{"50":1}}],["334679",{"2":{"22":1}}],["338304",{"2":{"21":1}}],["340619",{"2":{"81":1}}],["347398",{"2":{"81":1}}],["344085",{"2":{"81":1}}],["34818",{"2":{"50":1}}],["34832",{"2":{"50":1}}],["345767",{"2":{"81":1}}],["34549",{"2":{"50":1}}],["345546",{"2":{"17":1}}],["34218",{"2":{"50":1}}],["342119",{"2":{"21":1}}],["312",{"2":{"50":1}}],["312572",{"2":{"20":1}}],["31753",{"2":{"50":1}}],["3169",{"2":{"50":1}}],["3188",{"2":{"50":1}}],["31",{"2":{"32":2,"34":1,"35":1,"83":1,"84":2}}],["310954",{"2":{"20":1}}],["314714",{"2":{"20":1}}],["379751",{"2":{"81":1}}],["379323",{"2":{"81":1}}],["379958",{"2":{"20":1}}],["378478",{"2":{"81":1}}],["37878",{"2":{"50":1}}],["376862",{"2":{"72":2}}],["37",{"2":{"53":2,"55":1,"56":2,"57":3,"58":3,"59":5,"66":1,"70":1}}],["372",{"2":{"50":1}}],["372925",{"2":{"17":1}}],["35393",{"2":{"81":1}}],["353021",{"2":{"72":2}}],["35700351866494",{"2":{"52":4,"90":2}}],["35432",{"2":{"50":1}}],["35483",{"2":{"50":1}}],["3594",{"2":{"81":1}}],["359",{"2":{"35":1,"52":2,"53":2,"55":1,"56":2,"57":1,"60":2,"66":1,"70":1,"90":1}}],["359681",{"2":{"22":1}}],["355221",{"2":{"22":1}}],["352361",{"2":{"22":1}}],["356694",{"2":{"17":1}}],["35",{"2":{"10":1,"12":1,"13":1,"17":1,"24":1}}],["307f8f0e584a39a050c042849004e6a2bd674f99",{"2":{"54":1}}],["3069",{"2":{"50":1}}],["30018",{"2":{"50":1}}],["30142",{"2":{"50":1}}],["30113",{"2":{"50":1}}],["305973",{"2":{"21":1}}],["30×15×10",{"2":{"16":1}}],["30×10×15",{"2":{"10":1,"12":1,"13":1,"17":1,"24":1}}],["3037786082748125",{"2":{"11":1}}],["30",{"2":{"10":3,"12":1,"13":1,"14":2,"16":5,"17":5,"18":2,"21":10,"24":4,"25":2,"50":2,"52":1,"53":1,"56":2,"57":3,"58":3,"59":5,"90":1}}],["392517",{"2":{"81":1}}],["392236",{"2":{"17":1}}],["397237",{"2":{"81":1}}],["398791",{"2":{"72":2}}],["398799",{"2":{"17":1}}],["395338",{"2":{"22":1}}],["393892",{"2":{"21":1}}],["399464",{"2":{"20":1}}],["39",{"2":{"10":1,"16":3,"28":1,"30":1,"32":1,"34":1,"35":1,"36":2,"50":1,"55":1,"65":1,"74":2,"77":4,"84":3}}],["3",{"2":{"4":8,"5":8,"6":10,"10":1,"11":3,"12":3,"13":2,"16":6,"17":6,"21":2,"22":1,"24":3,"27":5,"29":1,"32":4,"35":6,"36":4,"37":5,"41":1,"45":2,"50":31,"52":1,"53":1,"56":2,"58":4,"59":5,"70":1,"71":3,"72":1,"74":1,"81":3,"83":2}}],["zoom",{"2":{"94":1}}],["zopen",{"2":{"52":1,"72":1,"90":1}}],["zeros",{"2":{"71":3,"84":1}}],["z",{"2":{"4":2,"5":3,"6":2,"70":2}}],["zarray",{"2":{"72":1}}],["zarr",{"0":{"52":1,"67":1,"89":1},"2":{"0":1,"2":2,"4":2,"5":2,"6":2,"16":5,"18":1,"22":1,"52":3,"67":5,"69":3,"70":4,"71":6,"72":2,"74":2,"75":2,"90":1}}],["xticklabelalign",{"2":{"83":1,"85":1}}],["xticklabelrotation",{"2":{"83":1,"85":1}}],["xlabel=",{"2":{"83":1,"85":1}}],["xx",{"2":{"53":1,"55":1,"66":1,"70":1}}],["xarray",{"2":{"43":1,"44":1}}],["xin",{"2":{"17":3,"36":3}}],["x26",{"2":{"17":12,"35":12}}],["x3c",{"2":{"17":12,"35":4}}],["xout",{"2":{"16":2,"17":3}}],["x",{"2":{"4":2,"5":3,"6":2,"13":2,"21":4,"22":3,"36":4,"45":2,"46":1,"50":3,"54":1,"62":1,"72":2,"75":1,"81":5,"83":1,"84":6}}],["ndata",{"2":{"92":2,"93":1,"94":1}}],["ndays",{"2":{"84":4}}],["nlon",{"2":{"92":2,"93":1}}],["npy",{"2":{"83":2,"84":2}}],["ntuple",{"2":{"75":2}}],["ntr",{"2":{"75":1}}],["nthreads",{"2":{"74":2}}],["nin",{"2":{"75":2}}],["nvalid",{"2":{"74":1}}],["n",{"2":{"61":1,"74":3}}],["n256",{"2":{"50":1}}],["nan",{"2":{"44":1,"45":48,"46":48,"50":384}}],["name=cube",{"2":{"74":1}}],["namedtuple",{"2":{"74":1,"75":3}}],["named",{"2":{"55":1,"57":1,"58":1,"62":1,"74":2,"82":1}}],["names",{"0":{"27":1,"38":1,"40":1},"1":{"28":1,"39":1,"40":1},"2":{"24":2,"41":1,"47":1,"62":2,"74":2,"75":1}}],["namely",{"2":{"16":1}}],["name",{"0":{"39":1},"2":{"2":1,"50":1,"52":3,"53":4,"56":8,"57":12,"58":12,"59":20,"65":1,"71":2,"74":6,"75":5,"81":1}}],["nc",{"2":{"44":2,"53":2,"55":2,"66":2,"68":2}}],["number",{"2":{"43":1,"48":1,"74":2,"75":1,"84":1}}],["numbers",{"2":{"10":1,"81":1}}],["nout",{"2":{"75":2}}],["normal",{"2":{"74":1,"94":1}}],["north",{"2":{"54":1}}],["nometadata",{"2":{"45":3,"46":2,"48":1,"49":1,"50":10}}],["november",{"2":{"53":1,"55":1,"66":1,"70":1}}],["nov",{"2":{"45":4,"46":2,"47":1,"48":4,"49":4,"50":6}}],["nonmissingtype",{"2":{"75":1}}],["none",{"2":{"35":2,"40":1,"41":1,"52":1,"70":1,"90":1}}],["non",{"2":{"18":1,"74":1,"75":1,"83":1}}],["now",{"2":{"16":3,"17":1,"28":1,"30":1,"32":1,"37":1,"41":1,"45":1,"46":1,"48":1,"50":1,"71":2,"72":1,"78":1}}],["no",{"2":{"14":1,"22":1,"31":1,"71":1,"74":1,"75":1}}],["nothing",{"2":{"50":3,"54":1,"69":1,"74":1,"75":1}}],["notation",{"2":{"32":1,"59":1}}],["note",{"2":{"9":1,"13":1,"16":4,"17":1,"28":1,"35":1,"46":1,"71":1,"74":1,"75":1}}],["not",{"0":{"35":1},"2":{"0":1,"1":1,"13":1,"31":1,"35":3,"41":2,"44":1,"71":2,"74":2,"75":3}}],["neighbour",{"2":{"74":1}}],["neighboring",{"2":{"13":1}}],["needed",{"2":{"74":1}}],["need",{"2":{"72":1,"74":1,"75":1,"77":1}}],["near",{"2":{"52":2,"59":1,"90":1}}],["next",{"2":{"36":1,"37":1,"47":1,"78":2}}],["netcdf",{"0":{"53":1,"68":1},"2":{"22":1,"42":2,"53":4,"55":2,"63":3,"66":2,"68":3,"69":1,"74":1}}],["necessary",{"2":{"16":1,"43":1,"44":1,"72":1,"75":4}}],["new",{"0":{"9":1},"2":{"10":1,"12":1,"16":1,"24":1,"27":1,"28":3,"42":1,"44":1,"47":1,"64":1,"69":1,"70":1,"71":1,"74":5,"75":4,"77":6,"84":1}}],["bits",{"2":{"74":2}}],["big",{"2":{"62":1}}],["black",{"2":{"85":1}}],["blocks",{"2":{"74":1}}],["blue",{"2":{"54":1,"63":1}}],["bonito",{"2":{"94":1}}],["boundaries",{"2":{"75":1}}],["bounds",{"2":{"74":1}}],["bool=true",{"2":{"75":1}}],["bool=false",{"2":{"74":1,"75":1}}],["bool",{"2":{"75":6}}],["boolean",{"2":{"74":3}}],["bold",{"2":{"50":1}}],["bwr",{"2":{"50":1}}],["b`",{"2":{"32":1}}],["broad",{"2":{"87":1}}],["broadcasts",{"2":{"75":1}}],["broadcast",{"2":{"45":1,"50":1}}],["broadcasted",{"2":{"16":2,"74":1,"75":1}}],["brown",{"2":{"85":1}}],["browser",{"2":{"78":1}}],["brightness",{"2":{"62":1,"63":1}}],["brings",{"2":{"75":1}}],["bring",{"2":{"29":1}}],["branch",{"2":{"52":1,"90":1}}],["bug",{"2":{"76":1}}],["bundle",{"2":{"63":1}}],["build",{"0":{"78":1},"2":{"27":1,"78":1}}],["but",{"0":{"35":1},"2":{"8":1,"16":2,"27":1,"28":2,"35":2,"41":2,"57":1,"58":1,"74":2}}],["b",{"2":{"17":13,"40":2,"59":2}}],["backgroundcolor=",{"2":{"94":1}}],["back",{"2":{"74":1}}],["backend",{"2":{"69":2,"74":8}}],["backendlist",{"2":{"42":1,"74":1}}],["backend=",{"2":{"2":1,"16":2,"70":1}}],["based",{"0":{"89":1},"2":{"75":1}}],["base",{"0":{"20":1},"2":{"4":4,"5":4,"6":2,"20":4,"24":3,"27":9,"28":6,"39":1,"40":5,"71":6,"75":1,"81":2}}],["by=",{"2":{"37":2,"74":2}}],["bytes",{"2":{"8":1,"9":1,"14":1,"16":3,"17":1,"20":1,"22":1,"28":3,"29":1,"32":1,"37":2,"48":1,"57":2,"71":1,"81":1}}],["by",{"0":{"4":1,"5":1},"2":{"2":1,"10":2,"14":1,"16":1,"17":1,"23":1,"24":1,"28":1,"31":1,"32":6,"35":2,"37":1,"43":1,"47":1,"48":1,"49":1,"50":1,"52":1,"62":3,"64":1,"65":1,"69":1,"72":2,"74":12,"75":6,"77":1,"78":1,"80":1,"84":1}}],["beware",{"2":{"86":1}}],["best",{"2":{"75":1,"88":1}}],["become",{"2":{"74":1}}],["because",{"2":{"1":1,"13":1,"14":1,"16":1}}],["before",{"2":{"71":1,"74":1,"78":1}}],["belonging",{"2":{"63":1}}],["belongs",{"2":{"17":1}}],["being",{"2":{"41":1}}],["been",{"2":{"35":1,"72":1}}],["between",{"2":{"21":1,"22":1,"32":1,"34":1,"35":2,"59":1,"74":1}}],["begin",{"2":{"18":1}}],["be",{"2":{"0":5,"2":1,"3":1,"4":1,"13":1,"15":1,"16":2,"17":1,"19":1,"32":1,"35":1,"36":1,"37":2,"41":1,"44":1,"52":2,"53":1,"54":1,"60":1,"62":1,"64":2,"69":1,"70":1,"71":1,"74":22,"75":9,"77":1,"82":1,"86":1,"90":1}}],["663953",{"2":{"81":1}}],["669616",{"2":{"21":1}}],["669061",{"2":{"20":1}}],["627428",{"2":{"81":1}}],["627566",{"2":{"81":1}}],["620262",{"2":{"81":1}}],["654809",{"2":{"81":1}}],["659839",{"2":{"81":1}}],["656012",{"2":{"81":1}}],["65105",{"2":{"50":1}}],["6326",{"2":{"54":1}}],["6378137",{"2":{"54":1}}],["63006",{"2":{"50":1}}],["635349",{"2":{"20":1}}],["600",{"2":{"83":1,"85":1,"91":1,"92":1,"93":1}}],["604165",{"2":{"81":1}}],["60265",{"2":{"52":1,"90":1}}],["60918",{"2":{"50":1}}],["60175",{"2":{"50":1}}],["603151",{"2":{"17":1}}],["69",{"2":{"52":1}}],["69085",{"2":{"50":1}}],["6983",{"2":{"17":1}}],["64976",{"2":{"50":1}}],["642158",{"2":{"81":1}}],["642",{"2":{"44":1}}],["647845",{"2":{"21":1}}],["679104",{"2":{"22":1}}],["675925",{"2":{"17":1}}],["6×6×25",{"2":{"21":2}}],["6×2",{"2":{"9":1}}],["684082",{"2":{"22":1}}],["684548",{"2":{"17":1}}],["682063",{"2":{"22":1}}],["686475",{"2":{"17":1}}],["616055",{"2":{"72":2}}],["6122",{"2":{"50":1}}],["61197",{"2":{"50":1}}],["619",{"2":{"45":1,"46":1}}],["617808",{"2":{"21":1}}],["613754",{"2":{"17":1}}],["615387",{"2":{"17":1}}],["6",{"2":{"2":6,"4":6,"5":6,"6":6,"8":4,"9":5,"16":8,"17":1,"29":1,"32":1,"35":6,"52":1,"90":1}}],["1e8",{"2":{"75":1}}],["192",{"2":{"92":1}}],["19274071078555954",{"2":{"84":1}}],["19241",{"2":{"50":1}}],["198213",{"2":{"72":2}}],["1984",{"2":{"54":1}}],["198342210915642",{"2":{"84":1}}],["1983",{"2":{"48":1}}],["1980",{"2":{"48":1}}],["195342",{"2":{"20":1}}],["193988",{"2":{"17":1}}],["197075",{"2":{"17":1}}],["19",{"2":{"16":16,"58":3,"59":5}}],["18377130350197302",{"2":{"84":1}}],["18356",{"2":{"81":1}}],["189296",{"2":{"81":1}}],["188521",{"2":{"72":2}}],["18892",{"2":{"50":1}}],["18583",{"2":{"50":1}}],["18434",{"2":{"50":1}}],["180×170",{"2":{"57":1}}],["180×170×24",{"2":{"53":1,"56":2}}],["180",{"2":{"35":2,"54":1,"59":5,"92":1}}],["180ºe",{"2":{"35":1}}],["18627",{"2":{"22":1}}],["18",{"2":{"16":18}}],["14133553323232134",{"2":{"84":1}}],["149175",{"2":{"81":1}}],["1437",{"2":{"50":1}}],["14286",{"2":{"17":1}}],["14",{"2":{"16":20,"22":1}}],["13343247127168564",{"2":{"84":1}}],["133485",{"2":{"22":1}}],["136",{"2":{"53":1,"55":1,"66":1,"70":1}}],["1363",{"2":{"45":1,"46":1}}],["13z",{"2":{"52":2,"90":1}}],["1372",{"2":{"45":1,"46":1}}],["139148",{"2":{"21":1}}],["13",{"2":{"16":20,"22":1,"53":1,"55":1,"66":1,"70":1}}],["170",{"2":{"60":1}}],["179",{"2":{"54":1,"59":5}}],["17578125",{"2":{"54":2}}],["17434",{"2":{"50":1}}],["17852",{"2":{"50":1}}],["17863",{"2":{"50":1}}],["17647",{"2":{"50":1}}],["1762",{"2":{"45":1,"46":1}}],["17t00",{"2":{"48":1}}],["17",{"2":{"14":1,"16":22,"37":1,"58":1}}],["162528",{"2":{"81":1}}],["16258",{"2":{"50":1}}],["16t00",{"2":{"53":4,"55":2,"56":4,"57":4,"58":6,"59":10,"66":2,"70":2}}],["16t12",{"2":{"48":1}}],["1644",{"2":{"50":1}}],["16824",{"2":{"50":1}}],["16581",{"2":{"50":1}}],["16631",{"2":{"50":1}}],["16713",{"2":{"50":1}}],["16",{"2":{"10":1,"12":1,"13":1,"16":20,"17":1,"24":1,"53":2,"55":1,"56":2,"57":4,"58":3,"59":5,"66":1,"70":1}}],["159",{"2":{"58":1}}],["15644",{"2":{"50":1}}],["156236",{"2":{"21":1}}],["15532",{"2":{"50":1}}],["150634",{"2":{"21":1}}],["15×10×30",{"2":{"16":1}}],["15×10",{"2":{"16":2}}],["15",{"2":{"10":1,"16":27,"17":6,"18":1,"22":4,"24":1,"25":1,"30":2,"37":1,"81":1}}],["128",{"2":{"94":1}}],["12436224777191839",{"2":{"84":1}}],["1242",{"2":{"50":1}}],["12575",{"2":{"50":1}}],["129298",{"2":{"17":1}}],["1200",{"2":{"91":1,"92":1,"93":1}}],["120",{"2":{"16":1}}],["12",{"2":{"8":4,"16":20,"22":1,"32":10,"34":3,"35":4,"53":2,"55":1,"56":2,"57":2,"58":3,"59":5,"66":1,"70":1,"83":1,"84":2}}],["1=5",{"2":{"2":1}}],["119",{"2":{"57":1}}],["1181",{"2":{"50":1}}],["113553",{"2":{"49":3}}],["112319",{"2":{"49":12}}],["114815",{"2":{"49":6}}],["114142",{"2":{"20":1}}],["115843",{"2":{"20":1}}],["116241",{"2":{"17":1}}],["11",{"2":{"2":6,"4":6,"5":6,"6":6,"8":1,"16":18,"22":1,"45":4,"46":4,"50":4,"53":2,"55":1,"56":2,"57":3,"58":3,"59":5,"66":1,"70":1}}],["1",{"2":{"2":12,"4":19,"5":20,"6":22,"8":5,"9":3,"10":8,"11":3,"12":7,"13":5,"14":6,"16":24,"17":34,"18":3,"20":1,"21":7,"22":6,"24":15,"25":4,"27":3,"28":3,"29":8,"30":8,"32":23,"34":10,"35":8,"36":15,"37":14,"39":1,"40":3,"41":1,"45":4,"46":2,"48":6,"49":11,"50":55,"52":4,"53":8,"55":4,"56":8,"57":13,"58":18,"59":15,"60":2,"66":4,"70":11,"71":2,"72":2,"75":1,"81":11,"83":2,"84":5,"85":5,"90":3,"92":4,"93":2,"94":5}}],["10646417542589198",{"2":{"84":1}}],["10309078031467937",{"2":{"84":1}}],["103704",{"2":{"49":3}}],["10995536299007104",{"2":{"84":1}}],["1095",{"2":{"84":1}}],["10989",{"2":{"49":6}}],["10mb",{"2":{"74":2}}],["1083",{"2":{"50":1}}],["108696",{"2":{"49":6}}],["100",{"2":{"35":13}}],["1000",{"2":{"0":1,"92":1,"93":1}}],["10×170×24",{"2":{"58":1}}],["10×10×24",{"2":{"58":2}}],["10×10×8",{"2":{"32":1}}],["10×10×12",{"2":{"32":1}}],["10×10×36",{"2":{"32":1}}],["10×10×5",{"2":{"27":1}}],["10×10",{"2":{"28":3,"29":1,"32":1}}],["10×15×20",{"2":{"36":1}}],["10×15",{"2":{"14":1,"17":2,"37":1,"81":1}}],["10×20×5",{"2":{"24":1}}],["10145",{"2":{"20":1}}],["10x15",{"2":{"17":1}}],["10",{"2":{"2":14,"4":16,"5":18,"6":17,"10":3,"12":1,"13":1,"14":1,"16":23,"17":15,"18":3,"20":2,"22":4,"24":6,"25":2,"27":8,"28":12,"29":5,"30":4,"32":16,"34":10,"36":3,"37":2,"39":2,"40":4,"52":1,"53":1,"56":2,"57":3,"58":6,"59":5,"70":2,"80":1,"81":3}}],["garbage",{"2":{"75":1}}],["gc",{"2":{"75":2}}],["gt",{"2":{"74":1,"75":3,"78":1}}],["gdalworkshop",{"2":{"54":1}}],["gdal",{"0":{"54":1},"2":{"54":1}}],["gb",{"2":{"52":1}}],["gn",{"2":{"52":1,"90":2}}],["gs",{"2":{"52":1,"90":2}}],["ggplot2",{"2":{"50":1}}],["github",{"2":{"44":2,"54":1,"76":1}}],["gives",{"2":{"17":1}}],["given",{"2":{"2":1,"17":2,"62":1,"64":1,"69":1,"74":6,"75":3,"81":1}}],["globalproperties=dict",{"2":{"75":1}}],["global",{"2":{"74":1,"75":1}}],["glmakie",{"2":{"37":2,"90":2}}],["glue",{"2":{"8":1}}],["gradient",{"2":{"91":1,"92":1,"93":1,"94":1}}],["gradually",{"2":{"71":1}}],["grey25",{"2":{"94":1}}],["grey15",{"2":{"37":1,"50":1}}],["greenwich",{"2":{"54":1}}],["green",{"2":{"54":1,"63":1}}],["grouped",{"2":{"74":1}}],["groups",{"2":{"49":1}}],["groupby",{"0":{"45":1,"48":1},"1":{"46":1,"47":1,"49":1,"50":1},"2":{"42":1,"44":1,"45":6,"46":1,"47":1,"48":3,"49":3,"50":3,"74":1,"84":1}}],["group",{"0":{"42":1},"1":{"43":1,"44":1,"45":1,"46":1,"47":1,"48":1,"49":1,"50":1},"2":{"45":1,"47":1,"48":2,"63":1,"74":3}}],["grouping",{"2":{"37":2,"47":2}}],["grid=false",{"2":{"50":1}}],["grid",{"2":{"18":1,"62":1,"74":1}}],["gridchunks",{"2":{"2":3,"4":1,"5":1,"6":1,"74":1,"75":1}}],["go",{"2":{"78":2}}],["going",{"2":{"75":1}}],["good",{"2":{"50":1}}],["goal",{"2":{"28":1,"43":1}}],["goes",{"2":{"16":2,"74":1,"75":1}}],["guide",{"2":{"10":2,"12":1,"13":1,"18":1,"24":3,"25":1}}],["gen",{"2":{"16":6}}],["general",{"0":{"87":1},"2":{"74":1}}],["generated",{"2":{"53":1,"55":1,"66":1,"70":1,"75":1}}],["generate",{"2":{"16":2,"32":1,"34":1,"35":1,"74":1,"78":1}}],["generic",{"2":{"16":2,"24":1}}],["getting",{"0":{"79":1},"1":{"80":1,"81":1,"82":1}}],["gettarrayaxes",{"2":{"41":1}}],["getarrayinfo",{"2":{"75":1}}],["getaxis",{"2":{"29":1,"37":2,"74":1}}],["getloopchunks",{"2":{"75":1}}],["getloopcachesize",{"2":{"75":1}}],["getouttype",{"2":{"75":1}}],["getoutaxis",{"2":{"75":1}}],["getfrontperm",{"2":{"75":1}}],["gets",{"2":{"74":1,"75":1}}],["get",{"0":{"60":1},"2":{"10":1,"27":1,"44":1,"48":1,"56":1,"58":1,"60":1,"75":3,"81":1,"84":1,"90":1}}],["geoaxis",{"2":{"92":1,"93":1}}],["geometrybasics",{"2":{"90":1}}],["geomakie",{"2":{"90":1,"92":2,"93":1}}],["geogcs",{"2":{"54":1}}],["geojson",{"0":{"54":1}}],["geotiff",{"0":{"54":1}}],["geo",{"2":{"1":1}}],["g",{"2":{"7":1,"10":1,"11":1,"13":1,"16":4,"18":1,"24":1,"45":26,"46":2,"47":2,"48":2,"49":1,"50":18,"60":1,"62":1,"65":1,"74":5,"90":2}}],["2π",{"2":{"83":1}}],["2×3",{"2":{"81":1}}],["2×2×3",{"2":{"4":1,"5":1,"6":1}}],["2×2",{"2":{"2":3}}],["2x2l31",{"2":{"53":1,"55":1,"66":1,"70":1}}],["291416",{"2":{"81":1}}],["298",{"2":{"54":1}}],["29816",{"2":{"50":1}}],["29473",{"2":{"50":1}}],["29564",{"2":{"50":1}}],["29025",{"2":{"22":1}}],["290818",{"2":{"21":1}}],["293102",{"2":{"21":1}}],["29",{"2":{"21":2}}],["280241",{"2":{"81":1}}],["28008",{"2":{"50":1}}],["28422753251364",{"2":{"52":4,"90":2}}],["2894",{"2":{"50":1}}],["288",{"2":{"48":1}}],["2818",{"2":{"45":1,"46":1}}],["28",{"2":{"21":2,"32":1,"45":3,"46":3,"50":3}}],["28571",{"2":{"17":2}}],["2857142857142857",{"2":{"10":1,"12":1,"13":1,"14":1,"17":3,"24":2,"25":1,"30":1,"36":3,"37":1,"81":1}}],["2747",{"2":{"50":1}}],["273",{"2":{"48":1}}],["276",{"2":{"48":2}}],["270",{"2":{"48":1}}],["275×205×9",{"2":{"45":4}}],["272469",{"2":{"22":1}}],["27",{"2":{"21":2,"45":1,"46":1,"50":1}}],["26274",{"2":{"50":1}}],["263795",{"2":{"21":1}}],["26",{"2":{"16":2,"21":2,"52":2,"90":1}}],["250047",{"2":{"81":1}}],["259157",{"2":{"81":1}}],["251903",{"2":{"81":1}}],["25153",{"2":{"50":1}}],["257223563",{"2":{"54":1}}],["256489",{"2":{"22":1}}],["253437",{"2":{"21":1}}],["258699",{"2":{"21":1}}],["258298",{"2":{"17":1}}],["25",{"2":{"16":4,"21":10,"32":1,"83":1}}],["24375",{"2":{"50":1}}],["2434",{"2":{"50":1}}],["245134",{"2":{"22":1}}],["24",{"2":{"16":6,"37":1,"57":2}}],["240",{"2":{"14":1,"16":1,"22":1}}],["230661",{"2":{"81":1}}],["230081",{"2":{"20":1}}],["23",{"2":{"16":8,"36":3,"50":1,"53":2,"55":1,"56":2,"57":3,"58":3,"59":5,"66":1,"70":1}}],["220229",{"2":{"81":1}}],["22211",{"2":{"50":1}}],["222322",{"2":{"20":1}}],["225497",{"2":{"22":1}}],["221764",{"2":{"20":1}}],["227539",{"2":{"20":1}}],["229731",{"2":{"20":1}}],["22",{"2":{"16":10}}],["21t06",{"2":{"52":2,"90":1}}],["21t19",{"2":{"41":4}}],["2101",{"2":{"52":2,"90":1}}],["21699",{"2":{"50":1}}],["21209",{"2":{"50":1}}],["213897",{"2":{"22":1}}],["215574",{"2":{"20":1}}],["21",{"2":{"16":12,"45":8,"46":8,"50":8}}],["2=10",{"2":{"2":1}}],["2",{"2":{"2":3,"4":8,"5":9,"6":10,"8":1,"9":1,"11":3,"12":2,"13":1,"14":1,"17":9,"18":1,"20":2,"22":3,"24":1,"27":3,"28":6,"29":3,"32":1,"37":6,"40":4,"41":1,"45":1,"46":1,"50":40,"52":3,"53":3,"55":1,"56":4,"57":2,"58":2,"59":5,"60":2,"66":1,"70":2,"71":2,"74":2,"81":5,"90":3,"92":2,"94":1}}],["207575",{"2":{"81":1}}],["2019",{"2":{"52":2,"90":1}}],["2015",{"2":{"52":2,"53":1,"55":1,"66":1,"70":1,"90":2}}],["201319",{"2":{"17":1}}],["20×10×15",{"2":{"36":2}}],["20×10×15×2",{"2":{"30":1,"81":1}}],["20ºn",{"2":{"35":1}}],["2023",{"2":{"83":1,"84":2}}],["2021",{"2":{"32":9,"83":1,"84":2,"85":1}}],["2020",{"2":{"32":5,"34":3,"35":4,"41":8,"64":1}}],["20244",{"2":{"81":1}}],["2024",{"2":{"21":4}}],["2022",{"2":{"10":4,"12":2,"13":2,"14":2,"16":8,"17":6,"18":2,"24":6,"25":2,"32":5,"34":3,"35":4,"85":1}}],["2003",{"2":{"53":1,"55":1,"66":1,"70":1}}],["2004",{"2":{"53":1,"55":1,"66":1,"70":1}}],["2005",{"2":{"53":2,"55":1,"56":2,"57":3,"58":3,"59":5,"66":1,"70":1}}],["2002",{"2":{"53":3,"55":2,"56":2,"57":2,"58":3,"59":5,"66":2,"70":1}}],["2001",{"2":{"53":3,"55":2,"56":2,"57":3,"58":3,"59":5,"66":2,"70":1}}],["2000",{"2":{"21":4}}],["200687",{"2":{"20":1}}],["20",{"2":{"2":7,"4":10,"5":10,"6":10,"16":14,"24":2,"30":4,"35":2,"36":3,"37":1,"50":1,"70":2,"81":3}}],["567633",{"2":{"81":1}}],["56632",{"2":{"50":1}}],["55",{"2":{"84":1}}],["556428",{"2":{"81":1}}],["555863",{"2":{"81":1}}],["5173",{"2":{"78":1}}],["5e8",{"2":{"69":1,"74":1}}],["537539",{"2":{"72":2}}],["53",{"2":{"57":1}}],["53943",{"2":{"22":1}}],["527227",{"2":{"72":2}}],["52419",{"2":{"50":1}}],["529827",{"2":{"22":1}}],["59212",{"2":{"50":1}}],["59085",{"2":{"50":1}}],["594324",{"2":{"17":1}}],["543572",{"2":{"22":1}}],["543411",{"2":{"22":1}}],["5×4",{"2":{"72":2}}],["5×4×5",{"2":{"71":1}}],["5×6×36",{"2":{"32":1}}],["5×6",{"2":{"22":2}}],["5×10",{"2":{"20":2}}],["502413",{"2":{"81":1}}],["506979",{"2":{"81":1}}],["501212",{"2":{"21":1}}],["50089",{"2":{"50":1}}],["500",{"2":{"0":1,"50":1,"94":2}}],["500mb",{"2":{"0":2}}],["5743",{"2":{"50":1}}],["57873",{"2":{"50":1}}],["578852",{"2":{"21":1}}],["57695",{"2":{"50":1}}],["577708",{"2":{"20":1}}],["57143",{"2":{"17":2}}],["5843",{"2":{"45":1,"46":1}}],["584291",{"2":{"21":1}}],["58",{"2":{"16":2}}],["5",{"2":{"2":7,"4":16,"5":18,"6":7,"10":2,"12":3,"13":2,"14":1,"16":6,"17":10,"18":1,"20":2,"22":4,"24":5,"25":1,"27":4,"29":1,"30":2,"32":3,"34":4,"36":3,"37":2,"40":4,"50":5,"53":4,"55":2,"56":4,"57":3,"58":10,"59":10,"60":19,"66":2,"70":4,"71":6,"72":4,"81":2,"82":1,"85":2,"94":2}}],["rotate",{"2":{"94":1}}],["row",{"2":{"65":1,"74":1}}],["rowgap",{"2":{"50":1}}],["right",{"2":{"83":1,"85":1}}],["rights",{"2":{"72":1}}],["r",{"2":{"71":1}}],["r1i1p1f1",{"2":{"52":2,"90":3}}],["running",{"2":{"78":1}}],["run",{"2":{"18":1,"78":3}}],["runs",{"2":{"13":1,"75":1}}],["rafaqz",{"2":{"44":1}}],["raw",{"2":{"44":1,"54":1}}],["rasm",{"2":{"44":2}}],["ras",{"2":{"21":3}}],["rasters",{"2":{"21":2}}],["raster",{"0":{"21":1},"2":{"17":11,"21":5}}],["ranges",{"0":{"58":1},"2":{"29":1,"55":1}}],["range",{"2":{"10":2,"16":2,"17":2,"18":2,"24":2,"30":3,"32":1,"75":1,"81":3,"83":1}}],["randn",{"2":{"83":1}}],["random",{"2":{"35":2,"41":3,"81":1}}],["rand",{"2":{"2":1,"4":3,"5":3,"6":3,"8":2,"9":2,"10":1,"17":1,"18":1,"20":1,"21":1,"22":1,"24":2,"25":1,"27":1,"28":2,"30":2,"35":3,"37":1,"39":1,"40":3,"70":1,"72":1,"81":2}}],["relational",{"2":{"62":1}}],["related",{"2":{"44":1}}],["recommend",{"2":{"82":1}}],["recommended",{"2":{"59":1}}],["rechunking",{"2":{"75":1}}],["recalculate",{"2":{"75":1}}],["recal",{"2":{"75":1}}],["recently",{"2":{"0":1}}],["rewrote",{"2":{"52":1,"53":1,"55":1,"66":1,"70":1,"90":1}}],["realization",{"2":{"53":1,"55":1,"66":1,"70":1}}],["realm",{"2":{"52":1,"90":1}}],["readcubedata",{"2":{"35":2,"74":1}}],["read",{"0":{"51":1,"52":1,"53":1,"54":1},"1":{"52":1,"53":1,"54":1},"2":{"1":1,"35":1,"44":1,"51":1,"54":1,"58":1,"74":1}}],["red",{"2":{"50":1,"54":1,"63":1}}],["reduce",{"2":{"10":1,"14":1}}],["reverse",{"2":{"50":1}}],["reverseordered",{"2":{"9":1,"54":1,"81":1}}],["references",{"2":{"53":1,"55":1,"66":1,"70":1}}],["reference",{"0":{"73":1},"1":{"74":1,"75":1},"2":{"41":1}}],["ref",{"2":{"30":1,"74":1,"75":1}}],["rebuild",{"0":{"28":1},"2":{"27":1,"28":2,"41":2,"44":1}}],["repeat",{"2":{"83":1}}],["repl",{"2":{"80":1}}],["replace",{"2":{"18":1,"44":1,"94":1}}],["repository",{"2":{"76":1,"86":1}}],["reports",{"2":{"76":1}}],["reproduces",{"2":{"43":1}}],["represented",{"2":{"74":1,"88":1}}],["represents",{"2":{"63":1}}],["representing",{"2":{"17":2,"75":1}}],["representation",{"2":{"1":1,"74":2,"75":3}}],["re",{"2":{"17":1}}],["returned",{"2":{"74":1}}],["returns",{"2":{"74":5,"75":2}}],["return",{"2":{"17":4,"45":1,"74":1,"75":1,"84":1}}],["registration",{"2":{"75":2}}],["registered",{"2":{"75":1}}],["regions",{"2":{"17":8}}],["region",{"2":{"17":12}}],["regular",{"2":{"4":4,"5":4,"6":2,"8":1,"9":1,"10":3,"12":3,"13":3,"14":3,"16":9,"17":8,"20":2,"21":6,"22":4,"24":9,"25":3,"27":9,"28":6,"29":2,"30":3,"32":14,"34":6,"35":4,"36":9,"37":3,"39":1,"40":5,"45":2,"46":2,"50":6,"52":2,"53":4,"54":2,"55":2,"56":4,"57":2,"58":3,"59":10,"60":2,"66":2,"70":5,"71":6,"81":5,"84":1,"90":1}}],["regularchunks",{"2":{"2":6,"4":3,"5":3,"6":3}}],["resets",{"2":{"74":1,"75":1}}],["respectively",{"2":{"63":1}}],["reshape",{"2":{"16":2,"32":1,"34":2,"72":1}}],["result",{"2":{"29":1,"37":1}}],["resulting",{"2":{"8":1,"9":1,"14":1,"74":1,"75":1}}],["results",{"0":{"85":1},"2":{"2":1,"5":1,"50":2,"74":1,"75":1}}],["requests",{"2":{"76":1}}],["requested",{"2":{"13":1}}],["requirements",{"2":{"53":1,"55":1,"66":1,"70":1}}],["required",{"2":{"32":1}}],["requires",{"2":{"16":1}}],["removes",{"2":{"75":1}}],["remove",{"2":{"46":1}}],["removed",{"2":{"15":1,"75":1}}],["remote",{"2":{"0":1}}],["http",{"2":{"78":1}}],["https",{"2":{"44":2,"53":1,"54":1,"55":1,"63":1,"66":1}}],["html",{"2":{"63":1}}],["hr",{"2":{"52":1,"90":2}}],["history",{"2":{"52":2,"53":2,"55":1,"56":2,"57":3,"58":3,"59":5,"66":1,"70":1,"90":1}}],["hidedecorations",{"2":{"50":1}}],["highclip",{"2":{"50":4}}],["high",{"2":{"41":4}}],["hm",{"2":{"50":8}}],["hold",{"2":{"74":1}}],["holds",{"2":{"74":1,"75":1}}],["ho",{"0":{"41":1}}],["however",{"2":{"19":1,"32":1}}],["how",{"0":{"30":1,"31":1,"36":1,"37":1,"38":1},"1":{"32":1,"33":1,"34":1,"35":1,"39":1,"40":1},"2":{"6":1,"7":1,"10":1,"19":1,"23":1,"26":1,"37":1,"51":1,"72":1,"74":1,"86":1,"88":1}}],["happens",{"2":{"75":1}}],["had",{"2":{"72":1,"74":1,"75":1}}],["hamman",{"2":{"43":1,"50":1}}],["handled",{"2":{"75":1}}],["handle",{"2":{"62":1,"75":1}}],["handling",{"2":{"9":1,"74":1}}],["handy",{"2":{"37":1}}],["has",{"2":{"8":1,"9":1,"17":1,"21":1,"22":1,"35":1,"43":1,"46":1,"75":1}}],["half",{"2":{"8":5}}],["have",{"2":{"6":1,"9":1,"17":1,"24":1,"33":1,"35":2,"64":1,"74":3}}],["having",{"2":{"1":1,"17":1}}],["help",{"2":{"74":1,"75":2}}],["height",{"2":{"52":2,"90":1}}],["heatmap",{"0":{"91":1},"2":{"37":1,"50":3,"91":1}}],["hereby",{"2":{"17":1}}],["here",{"2":{"8":1,"9":1,"13":1,"16":2,"17":1,"31":1,"37":1,"58":1,"71":1,"77":2}}],["hence",{"2":{"1":1}}],["yeesian",{"2":{"54":1}}],["years",{"2":{"32":1,"83":1,"84":1}}],["year",{"2":{"8":4,"85":1}}],["yyyy",{"2":{"53":2,"55":2,"66":2,"70":2}}],["ylabel=",{"2":{"83":1,"85":1}}],["ylabel",{"2":{"50":3}}],["yasxa",{"2":{"35":6}}],["yaxcolumn",{"2":{"75":1}}],["yaxconvert",{"2":{"22":2}}],["yaxdefaults",{"2":{"75":1}}],["yaxarraybase",{"2":{"22":1,"74":1,"75":1}}],["yaxarray",{"0":{"11":1,"24":1,"31":1,"32":1,"56":1,"62":1},"1":{"32":1,"33":1,"34":1,"35":1},"2":{"2":1,"4":4,"5":4,"6":4,"7":1,"8":3,"9":3,"10":2,"12":1,"13":1,"14":2,"16":8,"17":3,"18":1,"20":4,"21":3,"22":5,"24":5,"25":2,"27":3,"28":5,"29":1,"30":3,"31":1,"32":15,"34":4,"35":6,"36":3,"37":4,"39":2,"40":4,"41":4,"44":2,"45":7,"46":1,"48":9,"49":1,"50":3,"52":2,"53":2,"54":1,"55":2,"56":2,"57":3,"58":3,"59":5,"62":1,"64":1,"66":1,"67":1,"68":1,"70":2,"71":4,"74":10,"75":3,"81":5,"84":2,"88":1,"90":1}}],["yaxarrays",{"0":{"0":1,"1":1,"2":1,"7":1,"10":1,"16":1,"19":1,"23":1,"38":1,"42":1,"51":1,"55":1,"66":1,"76":1,"87":1,"88":1},"1":{"2":1,"3":1,"4":1,"5":1,"6":1,"8":1,"9":1,"11":1,"12":1,"13":1,"14":1,"15":1,"16":1,"17":1,"18":1,"20":1,"21":1,"22":1,"24":1,"25":1,"39":1,"40":1,"43":1,"44":1,"45":1,"46":1,"47":1,"48":1,"49":1,"50":1,"52":1,"53":1,"54":1,"56":1,"57":1,"58":1,"59":1,"60":1,"67":1,"68":1,"69":1,"70":1,"71":1,"72":1,"77":1,"78":1},"2":{"0":3,"2":1,"4":1,"5":1,"6":1,"8":1,"9":1,"10":2,"16":4,"17":1,"18":2,"19":2,"20":1,"24":1,"27":1,"28":1,"30":1,"31":1,"32":1,"33":1,"34":2,"35":4,"39":1,"40":1,"41":2,"42":1,"51":1,"52":1,"53":1,"54":2,"55":1,"61":1,"63":1,"66":1,"69":1,"71":1,"74":27,"75":28,"76":1,"78":1,"80":3,"81":3,"82":2,"84":1,"86":1,"87":1,"90":1}}],["yax",{"2":{"0":1,"28":1,"41":3}}],["y",{"2":{"4":2,"5":3,"6":2,"21":4,"22":3,"32":4,"36":4,"45":2,"46":1,"50":3,"54":1,"62":1,"81":5}}],["you",{"2":{"1":1,"18":1,"31":1,"35":3,"74":1,"75":2,"77":1,"78":2,"80":2,"82":1,"86":3,"88":2}}],["yourself",{"2":{"78":1}}],["your",{"2":{"1":2,"35":2,"69":2,"71":1,"74":1,"77":4,"78":4}}],["circshift",{"2":{"92":1}}],["ct1",{"2":{"90":4,"91":1}}],["cycle",{"0":{"83":1,"85":1},"1":{"84":1,"85":1},"2":{"84":4}}],["cycle=12",{"2":{"45":2,"46":1,"48":2,"49":2,"50":3}}],["cdata",{"2":{"75":1}}],["center",{"2":{"74":1,"83":1,"85":1}}],["certain",{"2":{"55":2,"75":1}}],["cell",{"2":{"52":2,"53":1,"56":2,"57":3,"58":3,"59":5,"74":1}}],["cf",{"2":{"52":2,"53":2,"55":2,"66":2,"70":2,"90":2}}],["cftime",{"2":{"45":4,"48":7,"49":5,"50":5,"53":6,"55":3,"56":6,"57":7,"58":9,"59":15,"66":3,"70":3}}],["cmpcachmisses",{"2":{"75":1}}],["cm4",{"2":{"53":4,"55":4,"66":4,"70":4}}],["cmip",{"2":{"52":1,"90":1}}],["cmip6",{"2":{"52":3,"90":6}}],["cmor",{"2":{"52":2,"53":3,"55":2,"56":2,"57":3,"58":3,"59":5,"66":2,"70":2,"90":1}}],["c54",{"2":{"50":1}}],["cb",{"2":{"50":1}}],["cbar",{"2":{"37":1}}],["cgrad",{"2":{"37":1}}],["cl",{"2":{"92":1,"93":1}}],["cl=lines",{"2":{"92":1,"93":1}}],["clean",{"2":{"75":1}}],["cleanme",{"2":{"75":4}}],["cleaner",{"2":{"74":2}}],["climate",{"2":{"53":1,"55":1,"66":1,"70":1}}],["closedinterval",{"2":{"59":1}}],["closed",{"0":{"59":1},"2":{"59":3}}],["close",{"2":{"41":4}}],["cloud",{"2":{"11":1,"52":1}}],["classes=classes",{"2":{"37":1}}],["classes",{"2":{"37":8}}],["classification",{"2":{"37":2}}],["class",{"2":{"37":3}}],["clustermanagers",{"2":{"18":2}}],["cluster",{"2":{"18":1}}],["cpus",{"2":{"18":1}}],["cpu",{"2":{"18":1}}],["c",{"2":{"17":11,"27":5,"28":7,"29":3,"37":2,"40":2,"63":1,"74":3,"75":3,"84":4,"90":2}}],["custom",{"2":{"24":1,"74":1}}],["current",{"2":{"17":2,"63":1,"74":1,"85":1}}],["currently",{"2":{"16":1,"41":1,"44":1,"86":1}}],["cubeaxis",{"2":{"75":1}}],["cubeaxes",{"2":{"74":1}}],["cubedir",{"2":{"75":1}}],["cube2",{"2":{"74":1}}],["cube1",{"2":{"74":1}}],["cubelist",{"2":{"74":1}}],["cubefittable",{"2":{"37":2,"74":1}}],["cubetable",{"0":{"37":1},"2":{"37":3,"74":3}}],["cubes",{"0":{"30":1},"2":{"9":2,"30":2,"35":1,"36":2,"37":1,"56":1,"64":1,"74":18,"75":9}}],["cube",{"0":{"27":1,"29":1,"31":1,"64":1,"84":1},"1":{"28":1,"32":1,"33":1,"34":1,"35":1},"2":{"2":1,"4":1,"5":1,"6":1,"16":11,"27":1,"29":1,"31":2,"35":1,"36":1,"37":2,"44":1,"64":3,"71":1,"74":34,"75":19,"88":1}}],["chose",{"2":{"63":1}}],["child",{"2":{"52":1,"90":1}}],["check",{"2":{"16":1,"71":1,"82":1}}],["changed",{"2":{"82":1,"86":1}}],["change",{"2":{"10":1,"74":1,"75":1}}],["chunkoffset",{"2":{"75":1}}],["chunksize`",{"2":{"75":1}}],["chunksizes",{"2":{"74":2}}],["chunksize",{"2":{"74":1,"75":3}}],["chunks",{"0":{"4":1},"2":{"2":5,"4":1,"5":1,"6":2,"74":4,"75":11}}],["chunked",{"2":{"2":5}}],["chunking",{"0":{"2":1,"3":1,"5":1,"6":1},"1":{"4":1,"5":1,"6":1},"2":{"1":1,"5":1,"74":4,"75":3}}],["chunk",{"0":{"1":1},"1":{"2":1,"3":1,"4":1,"5":1,"6":1},"2":{"1":1,"2":1,"4":1,"5":1,"74":4,"75":4}}],["criteria",{"2":{"37":1}}],["creating",{"0":{"17":1},"2":{"10":1,"28":1,"32":1,"71":1,"77":1}}],["createdataset",{"2":{"75":2}}],["created",{"2":{"75":2}}],["creates",{"2":{"37":1,"74":2,"75":1}}],["create",{"0":{"23":1,"24":1,"25":1},"1":{"24":1,"25":1},"2":{"10":1,"16":1,"17":2,"23":1,"24":1,"28":1,"30":1,"32":2,"37":1,"41":1,"44":1,"48":1,"66":1,"69":1,"71":3,"74":1,"75":1,"81":1,"83":1}}],["crucial",{"2":{"1":1}}],["coastlines",{"2":{"92":3,"93":1}}],["cosd",{"2":{"74":1}}],["country",{"2":{"74":4}}],["country=cube2",{"2":{"74":1}}],["could",{"2":{"28":1,"41":1}}],["copies",{"2":{"75":1}}],["copied",{"2":{"71":1}}],["copybuf",{"2":{"75":2}}],["copydata",{"2":{"75":1}}],["copy",{"2":{"27":1,"74":1,"78":1}}],["coordinates",{"2":{"52":1}}],["college",{"2":{"86":1}}],["collected",{"2":{"75":1}}],["collectfromhandle",{"2":{"75":1}}],["collection",{"2":{"26":1,"62":1}}],["collect",{"2":{"20":1,"29":3,"84":1}}],["colonperm",{"2":{"75":1}}],["color=",{"2":{"85":3}}],["color",{"2":{"83":1,"92":1,"93":1,"94":1}}],["colormap=",{"2":{"50":1}}],["colormap=makie",{"2":{"37":1}}],["colormap",{"2":{"50":3,"91":1,"92":1,"93":1,"94":1}}],["colorrange=",{"2":{"50":1}}],["colorrange",{"2":{"50":3}}],["colorbar",{"2":{"37":1,"50":2}}],["column",{"2":{"65":1,"75":1}}],["colgap",{"2":{"50":1}}],["colnames",{"2":{"41":1}}],["configuration",{"2":{"75":2}}],["concatenating",{"2":{"74":1}}],["concatenates",{"2":{"74":1}}],["concatenate",{"0":{"30":1},"2":{"30":2}}],["concatenatecubes",{"0":{"9":1},"2":{"9":2,"30":2,"74":2}}],["concrete",{"2":{"74":2}}],["contributing",{"2":{"77":1}}],["contribute",{"0":{"76":1,"77":1},"1":{"77":1,"78":2}}],["contrast",{"2":{"74":1}}],["content",{"2":{"74":1}}],["contact",{"2":{"53":1,"55":1,"66":1,"70":1}}],["contains",{"2":{"59":1,"74":1,"75":1}}],["contain",{"2":{"52":1,"53":1,"75":1}}],["containing",{"2":{"8":1,"37":1,"63":1,"64":1,"74":1}}],["continue",{"2":{"45":1}}],["consolidated=true",{"2":{"52":1,"90":1}}],["constructor",{"2":{"74":1}}],["constructs",{"2":{"74":1}}],["construct",{"0":{"41":1},"2":{"74":2}}],["consistent",{"2":{"52":1,"90":1}}],["consisting",{"2":{"8":1}}],["considering",{"2":{"43":1}}],["considered",{"2":{"37":1}}],["consider",{"2":{"28":1}}],["convinient",{"2":{"26":1}}],["conventions",{"2":{"53":1,"55":1,"66":1,"70":1}}],["convenient",{"2":{"18":1}}],["conversion",{"2":{"19":1,"21":1,"22":1}}],["conversions",{"2":{"19":1}}],["converted",{"2":{"64":1}}],["convert",{"0":{"19":1,"20":1,"21":1,"22":1},"1":{"20":1,"21":1,"22":1},"2":{"19":1,"20":2,"22":2,"74":1,"75":1}}],["corresponding",{"2":{"7":1,"17":2,"64":1,"74":1}}],["combining",{"0":{"89":1}}],["combined",{"2":{"9":2,"64":2}}],["combine",{"0":{"7":1},"1":{"8":1,"9":1},"2":{"7":1,"8":1,"9":1,"88":1}}],["comment",{"2":{"52":1}}],["common",{"2":{"35":5,"74":1}}],["com",{"2":{"44":2,"54":1}}],["compiler",{"2":{"82":1}}],["compares",{"2":{"75":1}}],["compatible",{"2":{"54":1}}],["compuation",{"2":{"74":1}}],["computing",{"2":{"37":1}}],["computations",{"2":{"13":1,"36":1}}],["computation",{"0":{"18":1},"2":{"13":1,"62":1,"74":3,"75":3}}],["computed",{"2":{"75":1}}],["compute",{"0":{"10":1},"1":{"11":1,"12":1,"13":1,"14":1,"15":1,"16":1,"17":1,"18":1},"2":{"84":1}}],["comply",{"2":{"53":1,"55":1,"66":1,"70":1}}],["complexity",{"2":{"36":1}}],["complex",{"2":{"10":2,"81":1}}],["comes",{"2":{"1":1}}],["code",{"2":{"6":1,"13":1,"18":2,"26":1,"41":1}}],["captialisation",{"2":{"75":1}}],["cameracontrols",{"2":{"94":1}}],["came",{"2":{"64":1}}],["cairomakie",{"2":{"50":1,"83":2}}],["caxes",{"2":{"27":2,"74":2}}],["car",{"2":{"17":1}}],["cartesianindex",{"2":{"17":11}}],["caluclate",{"2":{"74":1}}],["calculations",{"2":{"50":1,"75":1}}],["calculating",{"2":{"14":1,"74":1}}],["calculates",{"2":{"74":1}}],["calculated",{"2":{"37":2,"45":1}}],["calculate",{"2":{"14":1,"17":1,"37":2,"42":1,"43":2,"45":1,"50":1,"75":2,"84":1}}],["calling",{"2":{"50":1}}],["called",{"2":{"16":1,"62":3,"75":1}}],["call",{"2":{"1":1,"18":1}}],["case",{"2":{"13":1,"35":1,"47":1,"52":1}}],["cases",{"2":{"0":1,"59":1,"86":1}}],["cataxis",{"2":{"74":2}}],["categoricalaxis",{"2":{"74":1}}],["categorical",{"2":{"9":1,"17":1,"30":1,"37":1,"41":4,"45":2,"46":1,"47":1,"48":2,"49":2,"50":3,"74":1,"75":1,"81":1}}],["cat",{"0":{"8":1},"2":{"8":2}}],["cache=1gb```",{"2":{"74":1}}],["cache=1e9",{"2":{"16":2}}],["cache=",{"2":{"74":1}}],["cache=5",{"2":{"74":1}}],["cache=yaxdefaults",{"2":{"74":1}}],["caches",{"2":{"0":1}}],["cachesize",{"2":{"0":2,"75":1}}],["cache",{"2":{"0":6,"69":1,"74":4,"75":7}}],["caching",{"0":{"0":1}}],["can",{"2":{"0":5,"2":1,"3":1,"13":2,"14":1,"16":3,"17":1,"18":3,"24":2,"30":1,"31":1,"33":1,"35":1,"36":1,"37":2,"41":1,"46":1,"50":1,"52":2,"53":1,"54":1,"60":1,"62":3,"63":2,"64":1,"70":1,"71":1,"72":1,"74":11,"75":6,"77":1,"80":2,"86":2}}],["msc",{"2":{"84":3,"85":2}}],["mscarray",{"2":{"84":2}}],["md",{"2":{"77":2}}],["mm",{"2":{"53":2,"55":2,"66":2,"70":2}}],["mpi",{"2":{"52":1,"90":2}}],["m",{"2":{"20":2}}],["miss",{"2":{"75":1}}],["missing",{"2":{"14":2,"16":8,"17":2,"36":1,"37":2,"53":2,"56":4,"57":6,"58":6,"59":10,"71":3,"72":2,"74":2,"75":2,"94":1}}],["minimized",{"2":{"75":1}}],["minutes",{"2":{"53":1,"56":2,"57":3,"58":3,"59":5}}],["might",{"2":{"19":1,"86":1}}],["mymean",{"2":{"18":4}}],["my",{"2":{"16":2}}],["manager",{"2":{"80":1}}],["many",{"2":{"62":1,"75":1}}],["mahecha",{"2":{"64":1}}],["mar",{"2":{"45":4,"46":2,"47":1,"48":4,"49":4,"50":6}}],["marketdata",{"2":{"41":2}}],["master",{"2":{"44":1}}],["mask",{"2":{"37":2}}],["makie",{"2":{"50":1,"94":1}}],["making",{"2":{"11":1,"55":1}}],["make",{"2":{"34":1,"35":2,"71":1,"74":1,"75":2,"78":1,"94":1}}],["main",{"2":{"31":1,"75":1}}],["machine",{"2":{"18":1,"62":1}}],["matching",{"2":{"81":1}}],["match",{"2":{"75":2}}],["matched",{"2":{"74":1}}],["mat",{"2":{"17":4}}],["matrix",{"2":{"17":1,"20":1,"41":1,"46":1,"50":2,"62":1,"72":1,"84":1}}],["maximal",{"2":{"75":1}}],["maximum",{"2":{"36":1,"74":1,"75":1}}],["maxbuf",{"2":{"75":1}}],["max",{"2":{"16":2,"69":1,"74":7,"75":2}}],["maxsize",{"2":{"0":2}}],["may",{"2":{"10":1,"15":1,"45":4,"46":2,"47":1,"48":4,"49":4,"50":6,"52":1,"53":1,"82":1}}],["maps",{"0":{"90":1},"1":{"91":1}}],["mapslice",{"2":{"18":1}}],["mapslices",{"0":{"14":1},"2":{"10":1,"13":1,"14":1,"18":1,"36":1,"84":1}}],["mapped",{"2":{"74":1}}],["mapping",{"2":{"74":1,"75":3}}],["mapcube",{"0":{"15":1},"1":{"16":1,"17":1},"2":{"10":1,"13":1,"15":1,"16":4,"17":2,"18":3,"74":5,"75":2}}],["map",{"0":{"13":1,"36":1},"2":{"10":1,"13":2,"17":3,"18":3,"36":4,"37":1,"45":2,"49":1,"50":1,"74":2,"81":1,"84":2}}],["moll",{"0":{"93":1}}],["mowingwindow",{"2":{"74":1}}],["movingwindow",{"2":{"74":4}}],["module",{"2":{"74":1}}],["model",{"2":{"53":1,"55":1,"63":2,"66":1,"70":1}}],["modification",{"2":{"11":1,"18":1}}],["modify",{"0":{"11":1}}],["monthday",{"2":{"84":4}}],["monthly",{"0":{"43":1}}],["month",{"2":{"32":7,"34":3,"35":4,"43":1,"45":4,"46":1,"47":1,"48":5,"49":2,"50":3,"74":1,"84":2}}],["moment",{"2":{"22":1}}],["more",{"2":{"9":1,"10":1,"31":1,"36":1,"37":1,"58":1,"59":1,"64":1,"69":1,"74":3,"75":1,"81":1}}],["most",{"2":{"1":1,"15":1,"19":1}}],["mesh",{"2":{"94":2}}],["merely",{"2":{"71":1}}],["measured",{"2":{"63":1,"64":1}}],["measure",{"2":{"62":1}}],["measures",{"2":{"52":1}}],["means",{"0":{"43":1},"2":{"14":1,"74":1}}],["mean",{"0":{"83":1,"85":1},"1":{"84":1,"85":1},"2":{"10":1,"14":3,"18":4,"37":4,"45":10,"46":2,"47":1,"50":2,"52":1,"53":1,"56":2,"57":3,"58":3,"59":5,"74":1,"84":5}}],["meter",{"2":{"52":1}}],["method",{"2":{"16":2}}],["methods",{"2":{"7":1,"18":1,"52":1,"53":1,"56":2,"57":3,"58":3,"59":5}}],["metadata",{"2":{"8":1,"9":1,"10":1,"12":1,"13":1,"14":2,"16":5,"17":3,"19":1,"20":1,"21":2,"22":3,"24":2,"27":1,"28":3,"29":1,"30":1,"32":5,"36":3,"37":3,"45":2,"46":1,"48":3,"49":2,"50":3,"52":1,"53":1,"56":2,"57":3,"58":3,"59":5,"71":2,"74":1,"81":3,"84":1}}],["members",{"2":{"75":1}}],["member",{"2":{"6":1}}],["memory",{"2":{"1":1,"17":1,"19":3,"35":4,"44":1,"62":1,"71":1,"74":2,"75":1}}],["multiplying",{"2":{"36":1}}],["multiply",{"2":{"10":1,"36":1}}],["multiple",{"0":{"40":1,"89":1},"2":{"7":1,"18":1,"52":1,"53":1,"62":1,"74":1}}],["must",{"2":{"0":1,"64":1,"74":1,"75":1}}],["mb",{"2":{"0":1,"53":1,"56":2}}],["pkg",{"2":{"80":2}}],["pkg>",{"2":{"78":1}}],["purple",{"2":{"83":1}}],["purpose",{"2":{"26":1,"36":1}}],["pull",{"2":{"76":1}}],["public",{"0":{"74":1}}],["published",{"2":{"50":1}}],["plt",{"2":{"91":1}}],["place",{"2":{"75":1}}],["plots",{"2":{"94":1}}],["plot",{"0":{"85":1,"91":1,"94":1},"2":{"50":2}}],["plotting",{"0":{"90":1},"1":{"91":1},"2":{"0":1}}],["plus",{"2":{"44":1,"74":1}}],["pydata",{"2":{"44":1}}],["p",{"2":{"35":10,"53":1,"55":1,"66":1,"70":1}}],["picture",{"2":{"62":1,"63":1}}],["pieces",{"2":{"26":1}}],["pixel",{"0":{"83":1},"1":{"84":1,"85":1},"2":{"18":2}}],["post=getpostfunction",{"2":{"74":1}}],["positions",{"2":{"75":2}}],["position",{"2":{"62":1}}],["positional",{"2":{"57":1,"58":1}}],["possible",{"2":{"18":2,"19":1,"30":1,"71":1,"74":3,"75":1}}],["pos",{"2":{"17":2}}],["point3f",{"2":{"94":1}}],["point",{"2":{"17":3,"52":1,"81":1}}],["points",{"2":{"4":4,"5":4,"6":2,"8":1,"9":1,"10":3,"12":3,"13":3,"14":4,"16":9,"17":16,"18":1,"20":2,"21":6,"22":4,"24":9,"25":3,"27":9,"28":6,"29":2,"30":3,"32":14,"34":6,"35":21,"36":9,"37":5,"39":1,"40":5,"41":4,"45":3,"46":2,"48":2,"49":1,"50":7,"52":6,"53":6,"54":2,"55":3,"56":6,"57":4,"58":9,"59":16,"60":2,"62":2,"63":1,"66":3,"70":6,"71":6,"81":5,"84":1,"90":3}}],["page",{"2":{"94":1}}],["paste",{"2":{"78":1}}],["pass",{"2":{"74":1}}],["passing",{"2":{"74":3}}],["passed",{"2":{"74":4}}],["pair",{"2":{"75":1}}],["partitioned",{"2":{"75":1}}],["participate",{"2":{"74":1}}],["particular",{"2":{"65":1}}],["parts",{"2":{"74":1}}],["parent",{"2":{"52":1,"90":1}}],["parallelized",{"2":{"75":1}}],["parallelisation",{"2":{"74":1}}],["parallel",{"2":{"18":1,"62":1}}],["package",{"2":{"18":1,"58":1,"60":1,"73":1,"80":1}}],["packages",{"2":{"16":1,"19":1}}],["paths",{"2":{"75":2}}],["path=",{"2":{"16":2,"52":1,"67":1,"68":1,"69":1,"70":1,"71":1,"75":1}}],["path=f",{"2":{"4":1,"5":1,"6":1}}],["path",{"2":{"0":1,"44":2,"52":3,"53":2,"54":3,"55":2,"66":2,"69":3,"74":4,"78":1}}],["pr",{"2":{"78":1}}],["primem",{"2":{"54":1}}],["printed",{"2":{"41":2}}],["prior",{"2":{"1":1}}],["props",{"2":{"81":2}}],["properly",{"2":{"43":1}}],["properties=dict",{"2":{"75":1}}],["properties",{"2":{"10":2,"18":2,"24":3,"25":3,"44":1,"50":1,"52":1,"53":1,"54":1,"55":1,"66":1,"70":1,"74":5,"75":1,"90":1}}],["probably",{"2":{"75":1}}],["provide",{"2":{"74":1}}],["provides",{"2":{"62":1,"87":1}}],["provided",{"2":{"31":1,"71":1,"74":1}}],["process",{"2":{"62":1,"75":2}}],["processed",{"2":{"13":1}}],["projection",{"0":{"92":1,"93":1},"1":{"93":1,"94":1},"2":{"54":1}}],["progressmeter",{"2":{"74":1}}],["progress",{"2":{"44":1,"86":1,"88":1}}],["product",{"2":{"17":1}}],["pressing",{"2":{"80":1}}],["pre",{"2":{"74":2}}],["previous",{"2":{"50":1,"69":1,"71":1,"74":1}}],["previously",{"2":{"37":1}}],["prepared",{"2":{"53":1,"55":1,"66":1,"70":1}}],["prep",{"2":{"9":2}}],["precipitation",{"2":{"9":2,"63":1,"64":1,"81":2}}],["permute",{"2":{"75":1}}],["permuteloopaxes",{"2":{"75":1}}],["permutation",{"2":{"75":1}}],["persistend",{"2":{"75":1}}],["persistency",{"2":{"75":1}}],["persistent",{"2":{"74":1,"75":2}}],["persist",{"2":{"69":1,"74":1,"75":1}}],["perform",{"2":{"75":1}}],["performed",{"2":{"13":2}}],["performing",{"2":{"10":1}}],["per",{"2":{"7":1,"14":1,"45":1,"48":1,"49":1}}],["=interval",{"2":{"59":2}}],["===",{"2":{"41":1}}],["==",{"2":{"12":1,"41":1,"84":1}}],["=>nan",{"2":{"94":1}}],["=>",{"2":{"10":2,"12":1,"13":1,"16":2,"17":5,"18":1,"24":3,"25":3,"39":1,"40":1,"41":5,"44":1,"45":5,"46":1,"48":3,"49":2,"50":3,"52":20,"53":20,"54":1,"55":10,"56":20,"57":30,"58":30,"59":50,"66":10,"70":10,"81":6,"90":10}}],["=>2",{"2":{"4":1}}],["=>10",{"2":{"4":1}}],["=>5",{"2":{"4":1,"5":1}}],["=",{"2":{"0":5,"2":4,"4":9,"5":15,"6":9,"8":5,"9":5,"10":4,"11":1,"12":1,"13":1,"16":14,"17":16,"18":5,"20":3,"21":8,"22":4,"24":5,"25":4,"27":1,"28":3,"30":6,"32":7,"34":6,"35":17,"37":7,"39":1,"40":3,"41":7,"44":8,"45":16,"46":1,"47":1,"48":4,"49":1,"50":22,"52":2,"53":2,"54":3,"55":2,"56":2,"57":6,"58":6,"59":3,"66":2,"69":8,"70":2,"71":4,"72":5,"74":11,"75":7,"81":5,"83":10,"84":11,"85":5,"90":8,"91":5,"92":7,"93":5,"94":6}}],["dc",{"2":{"75":2}}],["dkrz",{"2":{"52":1,"90":2}}],["drop",{"2":{"50":1}}],["dropdims",{"0":{"46":1},"2":{"45":2,"46":2,"50":1}}],["drivers",{"2":{"74":1}}],["driver",{"2":{"42":1,"69":2,"74":6}}],["driver=",{"2":{"4":1,"5":1,"6":1,"67":2,"68":2,"69":3,"70":1,"71":2,"74":3}}],["dufresne",{"2":{"53":1,"55":1,"66":1,"70":1}}],["due",{"2":{"47":1}}],["dummy",{"2":{"30":1,"32":1,"83":1,"84":1}}],["during",{"2":{"17":1,"18":1,"19":1}}],["dd",{"2":{"27":1,"84":1}}],["d",{"2":{"17":5,"41":5,"50":3,"84":1}}],["dash",{"2":{"85":1}}],["danger",{"2":{"69":1}}],["daysinmonth",{"2":{"45":1,"48":1}}],["days",{"2":{"43":1,"45":2,"47":1,"48":2,"49":2}}],["dayofyear",{"2":{"16":1}}],["day",{"2":{"10":2,"12":1,"13":1,"14":1,"16":4,"17":3,"18":1,"24":3,"25":1,"83":1,"84":4,"85":1}}],["datconfig",{"2":{"75":2}}],["datset",{"2":{"74":1}}],["dat",{"2":{"74":8,"75":16}}],["datum",{"2":{"54":1}}],["datetime360day",{"2":{"53":6,"55":3,"56":6,"57":7,"58":9,"59":15,"66":3,"70":3}}],["datetimenoleap",{"2":{"45":4,"48":7,"49":5,"50":5}}],["datetime",{"2":{"41":5,"52":2,"90":1}}],["date",{"2":{"10":5,"12":3,"13":3,"14":3,"16":12,"17":11,"18":3,"24":8,"25":3,"32":24,"34":8,"35":11,"62":1,"83":2,"84":5,"90":1}}],["datesid",{"2":{"84":2}}],["dates",{"2":{"10":2,"12":1,"13":1,"14":1,"16":5,"17":3,"18":1,"24":3,"25":1,"32":8,"34":4,"35":5,"42":1,"64":1,"83":1,"84":2,"90":1}}],["data=cube1",{"2":{"74":1}}],["databases",{"2":{"62":1}}],["dataframe",{"2":{"37":1,"74":1}}],["dataframes",{"2":{"37":1}}],["datacubes",{"2":{"74":1}}],["datacube",{"0":{"89":1},"2":{"37":2,"71":1,"74":1}}],["datatypes",{"2":{"31":1}}],["data1",{"2":{"30":2}}],["data3",{"2":{"25":1}}],["data2",{"2":{"24":2,"30":2}}],["datasetaxis",{"2":{"74":2,"75":1}}],["datasetaxis=",{"2":{"74":1,"75":1}}],["dataset",{"0":{"25":1,"31":1,"33":1,"34":1,"35":1,"38":1,"41":1,"63":1,"69":1,"70":1,"72":1},"1":{"32":1,"33":1,"34":2,"35":2,"39":1,"40":1},"2":{"0":3,"3":1,"4":4,"5":2,"6":3,"9":1,"10":1,"19":1,"25":2,"33":1,"34":3,"35":5,"39":2,"40":2,"41":5,"52":3,"53":3,"54":4,"55":3,"56":1,"63":3,"64":2,"66":3,"67":1,"68":1,"69":3,"70":4,"71":2,"72":2,"74":18,"75":9,"90":2}}],["datasets",{"0":{"3":1,"23":1,"42":1,"51":1,"55":1,"66":1},"1":{"4":1,"5":1,"6":1,"24":1,"25":1,"43":1,"44":1,"45":1,"46":1,"47":1,"48":1,"49":1,"50":1,"52":1,"53":1,"54":1,"56":1,"57":1,"58":1,"59":1,"60":1,"67":1,"68":1,"69":1,"70":1,"71":1,"72":1},"2":{"0":2,"19":1,"23":1,"35":1,"51":1,"69":1,"74":8,"75":4,"88":1}}],["data",{"0":{"29":1,"44":1,"64":1},"2":{"0":3,"1":2,"7":1,"8":1,"10":2,"11":1,"16":4,"17":2,"18":2,"20":1,"21":1,"29":1,"32":1,"34":1,"35":2,"37":2,"44":8,"52":2,"53":4,"55":3,"56":2,"57":3,"58":3,"59":5,"61":1,"62":3,"63":2,"64":3,"66":3,"69":2,"70":3,"71":3,"72":1,"74":20,"75":12,"81":4,"82":1,"83":2,"84":1,"88":4,"90":5,"92":1}}],["dev",{"2":{"78":1}}],["dependencies",{"2":{"78":1}}],["detect",{"2":{"74":1,"75":1}}],["determined",{"2":{"75":1}}],["determines",{"2":{"74":1}}],["determine",{"2":{"1":1,"74":1}}],["defaultfillval",{"2":{"75":1}}],["defaults",{"2":{"74":7}}],["default",{"2":{"71":1,"74":1,"75":4}}],["definition",{"2":{"64":1}}],["defining",{"2":{"18":1}}],["defines",{"2":{"74":1}}],["defined",{"2":{"21":1,"22":1,"37":1,"50":1,"60":1,"62":1,"65":1,"71":1,"81":1}}],["define",{"0":{"84":1},"2":{"16":2,"32":1,"37":1,"50":1,"74":2,"83":1}}],["deletes",{"2":{"69":1,"74":1}}],["delete",{"2":{"69":2,"71":1}}],["denoting",{"2":{"74":1}}],["dense",{"2":{"62":1}}],["denvil",{"2":{"53":2,"55":2,"66":2,"70":2}}],["degree",{"2":{"54":1}}],["degc",{"2":{"53":1,"56":2,"57":3,"58":3,"59":5}}],["dec",{"2":{"45":4,"46":2,"47":1,"48":4,"49":4,"50":6}}],["dest",{"2":{"93":1}}],["desc",{"2":{"74":3,"75":3}}],["descriptor",{"2":{"75":4}}],["descriptors",{"2":{"74":2}}],["descriptions",{"2":{"74":1}}],["description",{"2":{"31":1,"74":4,"75":11}}],["described",{"2":{"88":1}}],["describe",{"2":{"74":2}}],["describes",{"2":{"7":1,"10":1,"19":1,"23":1,"51":1,"59":1,"61":1,"73":1,"75":1}}],["describing",{"2":{"74":1}}],["designed",{"2":{"19":2,"62":1}}],["desired",{"2":{"16":1,"75":4}}],["demand",{"2":{"13":1}}],["diverging",{"2":{"50":1}}],["divided",{"2":{"36":1}}],["differing",{"2":{"74":1}}],["difference",{"2":{"50":1}}],["differences",{"2":{"41":1,"45":1,"50":1,"75":1}}],["different",{"2":{"9":2,"16":1,"18":1,"27":1,"28":1,"43":1,"63":1,"74":3,"75":2,"86":1}}],["diff",{"2":{"45":2,"50":3}}],["directory",{"2":{"52":1,"67":2,"68":2}}],["directories",{"2":{"51":1,"75":1}}],["direct",{"2":{"41":1}}],["directly",{"2":{"16":1,"22":1,"23":1,"24":1,"72":2}}],["dictionary",{"2":{"63":1,"74":3}}],["dict",{"2":{"4":1,"5":1,"8":1,"9":1,"10":2,"12":1,"13":1,"14":2,"16":5,"17":4,"18":1,"20":1,"21":2,"22":3,"24":4,"25":2,"27":1,"28":3,"29":1,"30":1,"32":5,"36":3,"37":3,"41":2,"45":3,"46":2,"48":4,"49":3,"50":3,"52":2,"53":2,"54":1,"55":1,"56":2,"57":3,"58":3,"59":5,"66":1,"70":1,"71":1,"74":3,"81":3,"84":1,"90":1}}],["dime",{"2":{"52":1}}],["dimensional",{"2":{"61":1,"62":2,"74":1}}],["dimensionaldata",{"2":{"17":1,"22":2,"27":1,"28":1,"32":1,"34":1,"35":1,"41":1,"42":1,"44":1,"45":16,"46":10,"48":6,"49":6,"50":39,"58":1,"59":2,"60":3,"62":1,"65":1,"81":1,"82":3,"84":1,"90":1}}],["dimensions",{"0":{"34":1,"35":1},"2":{"9":1,"10":1,"13":1,"15":1,"16":2,"17":2,"18":1,"24":2,"28":1,"30":1,"33":1,"35":3,"36":2,"44":1,"45":16,"46":10,"48":6,"49":6,"50":39,"55":1,"60":2,"62":3,"63":1,"74":8,"75":3,"81":3,"82":1}}],["dimension",{"0":{"8":1,"9":1,"60":1,"65":1},"2":{"2":1,"8":2,"9":1,"10":1,"14":2,"16":3,"17":3,"32":1,"35":1,"46":1,"47":1,"50":1,"58":1,"60":1,"62":1,"64":1,"65":1,"74":3,"75":3,"81":1}}],["dimgroupbyarray",{"2":{"45":1,"48":1}}],["dimarray",{"0":{"22":1},"2":{"17":3,"22":6,"45":1,"46":1,"48":1,"49":2,"50":3,"62":1}}],["dims=2",{"2":{"84":1}}],["dims=",{"2":{"14":2,"18":1,"36":1,"45":5,"46":1,"48":1,"50":1}}],["dims",{"2":{"8":3,"9":1,"10":1,"12":1,"13":1,"14":2,"16":5,"17":4,"20":1,"21":3,"22":2,"24":2,"27":3,"28":4,"29":1,"30":1,"32":5,"36":3,"37":3,"41":1,"44":1,"45":6,"46":1,"48":5,"49":2,"50":5,"52":1,"53":1,"56":2,"57":3,"58":3,"59":5,"71":1,"81":2,"84":1}}],["dim",{"2":{"2":2,"4":7,"5":8,"6":2,"8":2,"9":3,"10":3,"16":3,"17":4,"18":3,"20":2,"22":2,"24":7,"27":9,"28":6,"29":3,"30":4,"32":3,"34":3,"35":2,"39":1,"40":5,"41":2,"45":2,"46":2,"50":6,"70":3,"71":6,"81":4,"84":1}}],["disregard",{"2":{"75":1}}],["dispatch",{"2":{"75":1}}],["discribe",{"2":{"74":2}}],["distribute",{"2":{"18":1}}],["distributed",{"0":{"18":1},"2":{"0":1,"18":2}}],["diskarray",{"2":{"74":1}}],["diskarrays",{"2":{"2":9,"4":4,"5":4,"6":4,"74":2,"75":1}}],["disk",{"2":{"1":1,"16":1,"22":1,"62":1,"71":3,"72":2,"74":1,"75":2}}],["dodgerblue",{"2":{"85":1}}],["dot",{"2":{"85":1}}],["documenter",{"2":{"94":1}}],["documentation",{"0":{"77":1},"1":{"78":1}}],["doc",{"2":{"69":1}}],["docstring",{"2":{"74":1}}],["docs",{"0":{"78":1},"2":{"63":1,"77":2,"78":6,"82":1}}],["download",{"0":{"44":1},"2":{"44":1,"53":2,"54":2,"55":2,"66":2}}],["downloads",{"2":{"42":1,"44":1,"53":1,"54":1,"55":1,"66":1}}],["done",{"2":{"28":1,"36":1,"50":1,"77":2}}],["doing",{"2":{"18":1,"27":1,"29":1,"78":1}}],["does",{"2":{"18":1,"71":1,"74":1,"75":1}}],["do",{"0":{"30":1,"31":1,"36":1,"37":1,"38":1,"41":1},"1":{"32":1,"33":1,"34":1,"35":1,"39":1,"40":1},"2":{"1":1,"13":1,"16":1,"17":3,"18":1,"26":2,"36":1,"43":1,"50":1,"71":1,"72":1,"75":1,"78":1,"80":1}}],["dsw",{"2":{"45":2,"50":2}}],["dsfinal",{"2":{"30":1,"36":2,"37":2}}],["ds2",{"2":{"30":3,"36":1,"70":1}}],["ds1",{"2":{"30":3,"36":3,"37":1}}],["dschunked",{"2":{"4":3,"5":3,"6":3}}],["ds",{"2":{"0":3,"4":2,"5":2,"6":2,"25":1,"34":2,"35":12,"39":1,"40":1,"41":2,"44":5,"45":10,"48":1,"50":3,"52":1,"53":1,"54":2,"55":1,"56":2,"66":1,"67":3,"68":3,"69":3,"70":2,"71":1,"72":5,"74":3,"75":1,"94":2}}],["wglmakie",{"2":{"94":2}}],["wgs",{"2":{"54":3}}],["would",{"2":{"74":2}}],["world",{"2":{"54":2}}],["workdir",{"2":{"75":1}}],["worker",{"2":{"74":1}}],["workers",{"2":{"74":1}}],["work",{"2":{"19":2,"44":1,"61":1,"74":1,"86":2,"88":1}}],["workload",{"2":{"18":1}}],["working",{"2":{"16":1,"72":1}}],["works",{"2":{"6":1,"29":1,"34":1,"35":1,"71":1}}],["workflows",{"2":{"1":1}}],["written",{"2":{"74":1,"75":1}}],["writing",{"2":{"72":1}}],["writefac",{"2":{"75":1}}],["writefac=4",{"2":{"69":1,"74":1}}],["writes",{"2":{"74":1}}],["write",{"0":{"66":1,"67":1,"68":1},"1":{"67":1,"68":1,"69":1,"70":1,"71":1,"72":1},"2":{"71":1,"74":2}}],["wrapping",{"2":{"47":1,"60":2}}],["wrapped",{"2":{"16":1}}],["wrap",{"2":{"0":1,"74":1}}],["www",{"2":{"53":1,"55":1,"66":1}}],["w",{"2":{"50":2,"72":2}}],["was",{"2":{"17":1,"18":1,"75":1}}],["way",{"2":{"15":1,"19":1,"27":1}}],["warning",{"2":{"11":1,"19":1,"27":1,"35":1,"44":1,"69":1,"71":1,"74":1}}],["wanted",{"2":{"75":1}}],["wants",{"2":{"71":1}}],["want",{"2":{"0":1,"1":1,"64":1,"75":1,"78":1,"88":1}}],["white",{"2":{"92":1,"93":1}}],["while",{"2":{"71":1}}],["which",{"2":{"9":1,"16":1,"17":2,"28":1,"35":2,"50":1,"56":1,"59":1,"60":1,"64":3,"74":5,"75":4,"88":1}}],["whose",{"0":{"34":1,"35":1}}],["whole",{"2":{"8":3}}],["whether",{"2":{"75":2}}],["when",{"2":{"1":1,"6":1,"13":1,"64":1,"74":2,"75":1}}],["whereas",{"2":{"62":1}}],["where",{"2":{"0":1,"18":1,"35":4,"43":1,"59":1,"72":1,"74":1,"75":4}}],["wintri",{"0":{"92":1},"1":{"93":1,"94":1}}],["windowloopinds",{"2":{"75":1}}],["window",{"2":{"74":1,"75":1}}],["without",{"2":{"75":1}}],["within",{"2":{"58":1}}],["with",{"2":{"4":1,"5":1,"8":1,"10":1,"12":1,"13":1,"16":9,"17":4,"18":2,"19":1,"24":3,"27":1,"28":1,"35":6,"36":2,"37":3,"40":1,"41":3,"45":3,"46":1,"48":2,"49":2,"50":5,"52":3,"53":2,"55":1,"56":2,"57":3,"58":3,"59":5,"61":1,"63":1,"66":1,"69":1,"70":2,"71":2,"72":2,"74":11,"75":1,"77":1,"81":4,"82":3,"86":1,"88":1,"90":2,"92":1}}],["will",{"2":{"0":1,"1":1,"4":1,"5":1,"13":1,"16":3,"17":1,"31":1,"35":1,"36":2,"37":2,"41":1,"42":1,"47":2,"69":3,"71":3,"72":1,"74":12,"75":3,"88":1}}],["wether",{"2":{"74":1}}],["weight=",{"2":{"74":1}}],["weight=nothing",{"2":{"74":1}}],["weight",{"0":{"48":1},"1":{"49":1,"50":1},"2":{"47":1,"49":1,"50":1}}],["weights",{"0":{"49":1},"2":{"45":3,"49":2,"50":1}}],["weightedmean",{"2":{"74":1}}],["weighted",{"0":{"50":1},"2":{"37":1,"43":1,"45":8,"50":8,"74":3}}],["well",{"2":{"37":1,"41":1,"71":1,"74":1}}],["welcome",{"2":{"6":1,"76":1}}],["were",{"2":{"13":2,"59":1,"75":1,"83":1}}],["we",{"2":{"0":1,"8":2,"9":1,"13":2,"14":1,"16":5,"17":5,"18":2,"24":2,"28":1,"30":1,"31":1,"32":1,"33":1,"35":2,"36":2,"37":5,"41":4,"45":1,"46":1,"47":2,"50":1,"52":1,"58":1,"64":1,"71":3,"72":4,"82":2,"83":1,"90":1}}],["oob",{"2":{"74":1}}],["o1",{"2":{"53":2,"55":2,"66":2,"70":1}}],["ocean",{"2":{"53":1,"55":1,"66":1,"70":1}}],["oct",{"2":{"45":4,"46":2,"47":1,"48":4,"49":4,"50":6}}],["occuring",{"2":{"4":1}}],["o",{"2":{"44":4,"50":4,"74":5}}],["ohlcv",{"2":{"41":3}}],["ouput",{"2":{"78":1}}],["our",{"2":{"36":1,"37":1,"84":1}}],["outcube",{"2":{"75":1}}],["outcubes",{"2":{"75":1}}],["outcs",{"2":{"75":1}}],["outsize",{"2":{"75":1}}],["outar",{"2":{"75":2}}],["out",{"2":{"44":1,"74":2,"75":1}}],["outtype",{"2":{"16":2,"74":1,"75":2}}],["outdims=outdims",{"2":{"17":1,"18":1}}],["outdims",{"2":{"16":4,"74":6}}],["outputcube",{"2":{"75":3}}],["outputs",{"2":{"16":1}}],["output",{"2":{"6":1,"16":3,"17":1,"18":3,"53":1,"55":1,"66":1,"70":1,"74":11,"75":9,"94":1}}],["optimal",{"2":{"75":1}}],["optifunc",{"2":{"75":1}}],["optionally",{"2":{"74":1}}],["option",{"2":{"32":1,"34":1}}],["options",{"2":{"29":1}}],["operation",{"2":{"75":1}}],["operations",{"0":{"16":1},"2":{"10":1,"45":1,"74":2,"75":3}}],["operates",{"2":{"74":1}}],["openinterval",{"2":{"59":1}}],["open",{"0":{"59":1},"2":{"0":2,"41":4,"52":2,"53":2,"54":2,"55":2,"59":2,"66":1,"70":1,"72":6,"74":3,"90":1}}],["obj",{"2":{"37":2,"83":1,"85":1}}],["objects",{"2":{"74":2}}],["object",{"2":{"11":1,"52":1,"74":5,"75":3}}],["obtain",{"0":{"29":1},"2":{"41":1,"47":1}}],["otherwise",{"2":{"74":1}}],["others",{"2":{"41":1}}],["other",{"0":{"86":1},"1":{"87":1,"88":1,"89":1},"2":{"19":1,"86":1,"88":1}}],["omit",{"2":{"18":1}}],["overview",{"0":{"87":1},"2":{"86":1,"87":1}}],["overwrite",{"0":{"69":1},"2":{"69":3,"74":4,"75":2}}],["overwrite=true",{"2":{"16":2,"69":2,"71":3}}],["over",{"0":{"16":1,"88":1},"2":{"10":1,"15":1,"18":1,"50":1,"74":8,"75":1,"88":1}}],["ormax",{"2":{"74":1}}],["orca2",{"2":{"53":1,"55":1,"66":1,"70":1}}],["orangered",{"2":{"37":1}}],["ordered",{"2":{"62":1,"63":1}}],["ordereddict",{"2":{"17":1}}],["orderedcollections",{"2":{"17":1}}],["order",{"2":{"16":1,"43":1,"72":1}}],["original",{"2":{"53":2,"56":4,"57":6,"58":6,"59":10}}],["originates",{"2":{"9":1}}],["origin",{"2":{"10":2,"12":1,"13":1,"18":1,"24":3,"25":1,"81":2}}],["or",{"0":{"31":1},"1":{"32":1,"33":1,"34":1,"35":1},"2":{"1":2,"6":1,"10":1,"13":2,"15":1,"22":1,"28":1,"33":1,"52":1,"55":2,"62":3,"65":2,"69":1,"74":21,"75":7,"80":1,"81":2}}],["once",{"2":{"50":1,"64":1,"75":1,"77":1}}],["onlinestat",{"2":{"74":2}}],["onlinestats",{"2":{"37":2}}],["only",{"2":{"6":1,"13":1,"14":1,"16":1,"17":1,"19":1,"24":2,"36":1,"71":1,"74":2}}],["on",{"2":{"1":2,"6":1,"7":1,"10":2,"13":2,"16":1,"18":2,"26":1,"53":2,"55":1,"56":2,"57":3,"58":3,"59":5,"62":1,"66":1,"70":1,"71":1,"74":5,"75":4}}],["ones",{"2":{"28":1}}],["oneto",{"2":{"4":4,"5":4,"6":2,"20":2,"24":3,"27":9,"28":6,"39":1,"40":5,"71":6,"81":2}}],["one",{"0":{"39":1},"2":{"0":1,"7":1,"8":2,"14":2,"17":2,"37":1,"41":1,"46":1,"62":2,"63":1,"71":2,"74":8,"75":3,"86":1}}],["own",{"2":{"0":1}}],["offline=true",{"2":{"94":1}}],["offsets",{"2":{"75":1}}],["offset",{"2":{"13":1}}],["often",{"2":{"7":1}}],["of",{"0":{"11":1,"35":1,"43":1,"72":1,"87":2},"2":{"0":2,"1":1,"6":1,"8":3,"9":1,"10":2,"11":1,"12":1,"13":2,"14":1,"15":1,"17":7,"18":3,"19":1,"21":1,"22":1,"26":3,"27":3,"31":1,"32":2,"33":1,"34":1,"35":2,"36":1,"37":1,"43":1,"44":1,"48":1,"53":1,"55":3,"56":1,"58":1,"60":1,"62":7,"63":1,"64":2,"65":2,"66":1,"70":1,"71":1,"72":1,"73":1,"74":50,"75":42,"81":1,"82":2,"84":2,"85":1,"86":1,"87":1}}],["eo",{"2":{"86":1}}],["esdltutorials",{"2":{"86":1}}],["esm1",{"2":{"52":1,"90":2}}],["empty",{"2":{"75":1}}],["embeds",{"2":{"74":1}}],["either",{"2":{"74":2}}],["error",{"2":{"69":1}}],["epsg",{"2":{"54":5}}],["et",{"2":{"53":1,"55":1,"64":1,"66":1,"70":1}}],["edu",{"2":{"53":1,"55":1,"63":1,"66":1}}],["equivalent",{"2":{"50":1,"60":1}}],["equally",{"2":{"0":1}}],["effectively",{"2":{"36":1}}],["eltype",{"2":{"16":2,"72":1,"81":1}}],["elementtype",{"2":{"75":1}}],["element",{"2":{"8":1,"9":1,"10":2,"13":2,"14":1,"16":3,"17":2,"29":1,"37":1,"45":2,"46":1,"47":1,"48":7,"49":2,"50":3,"57":2,"60":1,"63":1,"64":2,"74":1,"75":1,"84":1}}],["elements",{"0":{"11":1,"57":1},"2":{"8":1,"12":1,"13":2,"18":1,"55":1,"62":1,"74":1,"75":1}}],["env",{"2":{"78":1}}],["enabling",{"2":{"24":1}}],["enter",{"2":{"80":1}}],["entire",{"2":{"17":1,"19":1,"67":1,"68":1}}],["entries",{"2":{"17":1,"41":1,"52":1,"53":1,"56":2,"57":3,"58":3,"59":5,"72":1,"74":1,"81":1}}],["entry",{"2":{"10":1,"12":1,"13":1,"16":2,"24":2,"45":2,"46":1,"48":2,"49":2,"50":3,"74":1,"77":3}}],["enumerate",{"2":{"17":2,"50":2}}],["end",{"2":{"13":1,"16":1,"17":4,"18":2,"36":1,"45":2,"50":2,"84":2,"94":1}}],["exists",{"2":{"69":1,"74":1,"75":1}}],["existing",{"0":{"8":1},"2":{"69":1,"70":1}}],["exportable=true",{"2":{"94":1}}],["expression",{"2":{"74":1}}],["experiment",{"2":{"53":3,"55":3,"66":3,"70":3}}],["explicitly",{"2":{"13":1,"28":1,"31":1,"75":1}}],["external",{"2":{"52":1,"90":1}}],["extension",{"2":{"74":2}}],["extent",{"2":{"21":2}}],["extended",{"2":{"16":1,"74":1,"75":2}}],["extracts",{"2":{"75":1}}],["extract",{"0":{"27":1},"1":{"28":1},"2":{"75":1}}],["extra",{"2":{"18":1}}],["executes",{"2":{"74":1}}],["execute",{"2":{"18":1}}],["exactly",{"2":{"5":1,"29":1,"41":1}}],["examples",{"2":{"6":1,"29":2,"42":1,"53":1,"55":1,"66":1,"77":1}}],["example",{"2":{"0":1,"1":1,"5":1,"10":1,"18":2,"28":1,"34":1,"35":1,"36":1,"37":1,"43":1,"53":1,"55":2,"62":2,"63":1,"64":1,"66":2,"74":3,"75":1,"77":2,"81":2}}],["e",{"2":{"7":1,"8":1,"10":1,"11":1,"13":1,"17":2,"18":1,"21":1,"22":1,"24":1,"32":1,"60":1,"62":1,"65":1,"69":1,"74":6,"75":1,"78":1,"81":1}}],["east",{"2":{"54":1}}],["easier",{"2":{"24":1,"55":1}}],["easily",{"2":{"0":1,"18":1}}],["easy",{"2":{"21":1,"22":1}}],["each",{"2":{"4":1,"5":1,"10":1,"13":1,"17":5,"18":2,"36":2,"37":2,"43":1,"47":1,"63":1,"65":1,"74":3,"75":3,"81":1}}],["everywhere",{"2":{"18":2}}],["every",{"2":{"0":1,"10":1,"13":1,"74":1}}],["features",{"2":{"87":1}}],["feb",{"2":{"45":4,"46":2,"47":1,"48":4,"49":4,"50":6}}],["fallback",{"2":{"75":1}}],["falls",{"2":{"74":1}}],["false",{"2":{"49":1,"50":1,"69":2,"74":3,"75":1}}],["faq",{"0":{"26":1},"1":{"27":1,"28":1,"29":1,"30":1,"31":1,"32":1,"33":1,"34":1,"35":1,"36":1,"37":1,"38":1,"39":1,"40":1,"41":1}}],["faster",{"2":{"75":1}}],["fastest",{"2":{"1":1}}],["fast",{"2":{"1":1,"13":1}}],["frame",{"2":{"88":1}}],["frames",{"2":{"62":1}}],["front",{"2":{"75":1}}],["from",{"0":{"27":1,"29":2,"41":1,"43":1},"1":{"28":1},"2":{"0":1,"8":1,"9":1,"19":1,"27":1,"28":1,"29":4,"35":3,"41":2,"59":1,"64":2,"72":1,"74":6,"75":6,"81":1,"84":1}}],["fr",{"2":{"53":1,"55":1,"66":1,"70":1}}],["frequently",{"0":{"26":1},"1":{"27":1,"28":1,"29":1,"30":1,"31":1,"32":1,"33":1,"34":1,"35":1,"36":1,"37":1,"38":1,"39":1,"40":1,"41":1}}],["fu",{"2":{"75":1}}],["funtion",{"2":{"84":1}}],["fun",{"2":{"74":4}}],["functionality",{"0":{"87":1}}],["functions",{"2":{"10":2,"62":2,"73":1,"74":1,"75":1}}],["function",{"0":{"37":1},"2":{"0":1,"1":1,"13":2,"15":1,"16":6,"18":6,"27":2,"30":1,"36":1,"37":1,"41":1,"42":1,"45":1,"47":1,"50":1,"59":1,"71":1,"74":22,"75":13}}],["future",{"2":{"44":1}}],["further",{"2":{"13":1,"86":1}}],["flag",{"2":{"75":3}}],["float32",{"2":{"16":8,"52":1,"53":1,"56":2,"57":3,"58":3,"59":5,"71":2,"72":5,"75":1}}],["float64",{"2":{"8":1,"9":1,"10":3,"12":3,"13":3,"14":4,"17":9,"20":2,"21":2,"22":4,"24":6,"25":2,"27":1,"28":3,"30":4,"36":12,"37":5,"41":2,"45":3,"46":2,"49":3,"50":6,"52":4,"53":4,"54":2,"55":2,"56":4,"57":2,"58":6,"59":10,"60":3,"66":2,"70":2,"74":1,"75":1,"81":7,"84":2,"90":2}}],["flexible",{"2":{"9":1,"15":1}}],["folder",{"2":{"78":1}}],["follow",{"2":{"78":1,"86":1}}],["follows",{"2":{"16":2,"45":1,"50":1,"72":1}}],["following",{"2":{"2":1,"5":1,"6":1,"16":1,"18":1,"28":1,"42":1,"43":1,"44":1,"74":2,"75":4,"86":1}}],["found",{"2":{"74":1,"75":1}}],["fourth",{"2":{"53":2,"55":2,"66":2,"70":2}}],["fontsize=24",{"2":{"91":1}}],["fontsize=18",{"2":{"50":1}}],["font=",{"2":{"50":1}}],["forwarded",{"2":{"74":1}}],["forwardordered",{"2":{"4":4,"5":4,"6":2,"8":1,"9":1,"10":3,"12":3,"13":3,"14":3,"16":9,"17":9,"20":2,"21":6,"22":4,"24":9,"25":3,"27":9,"28":6,"29":2,"30":4,"32":14,"34":6,"35":10,"36":9,"37":5,"39":1,"40":5,"41":4,"45":3,"46":2,"48":2,"49":1,"50":7,"52":6,"53":6,"54":1,"55":3,"56":6,"57":4,"58":9,"59":15,"60":2,"66":3,"70":6,"71":6,"81":5,"84":1,"90":3}}],["force",{"2":{"74":1}}],["forcing",{"2":{"52":1,"90":1}}],["forms",{"2":{"74":1,"75":2}}],["format",{"2":{"69":1,"74":1,"84":1}}],["formal",{"2":{"64":1}}],["former",{"2":{"27":1}}],["for",{"0":{"6":1,"83":1},"1":{"84":1,"85":1},"2":{"0":2,"1":3,"4":1,"5":1,"6":1,"17":4,"18":1,"32":1,"34":2,"35":2,"36":4,"37":6,"41":5,"44":1,"48":1,"50":3,"53":1,"55":1,"59":1,"60":1,"62":4,"63":3,"64":1,"66":1,"69":1,"70":1,"71":2,"74":19,"75":16,"83":1,"84":2,"86":1}}],["f",{"2":{"2":2,"16":3}}],["field",{"2":{"74":1}}],["fields",{"2":{"37":1,"74":1,"75":4}}],["figure=",{"2":{"85":1}}],["figure",{"2":{"50":2,"83":1,"85":1,"91":1,"92":1,"93":1,"94":1}}],["fig",{"2":{"37":3,"50":8,"83":1,"85":1,"91":2,"92":2,"93":2,"94":3}}],["filterig",{"2":{"84":1}}],["filter",{"2":{"74":2}}],["fillarrays",{"2":{"71":3}}],["fill",{"2":{"71":1,"74":1,"75":1}}],["fillvalue=",{"2":{"75":1}}],["fillvalue",{"2":{"44":3,"52":1,"53":1,"56":2,"57":3,"58":3,"59":5}}],["filling",{"2":{"23":1,"24":1}}],["filename",{"2":{"44":2,"74":1}}],["files",{"0":{"89":1},"2":{"7":1,"51":1,"54":1,"75":2,"78":1}}],["file",{"2":{"2":1,"7":1,"8":2,"9":2,"10":2,"12":2,"13":2,"14":4,"16":10,"17":4,"20":2,"21":2,"22":3,"24":4,"27":2,"28":6,"29":2,"30":2,"32":10,"35":1,"36":6,"37":6,"48":2,"52":2,"53":4,"56":4,"57":6,"58":6,"59":10,"69":2,"71":3,"74":2,"77":4,"81":4,"84":2}}],["findaxis",{"2":{"75":1}}],["findall",{"2":{"17":1,"84":1}}],["find",{"2":{"31":1,"75":1,"86":1}}],["finalizer",{"2":{"75":1}}],["finalize",{"2":{"75":1}}],["finally",{"2":{"17":1,"74":1}}],["final",{"2":{"17":1}}],["firstly",{"2":{"32":1}}],["first",{"2":{"8":4,"16":3,"17":1,"37":1,"50":1,"72":1,"74":4,"75":1,"77":1,"81":1,"90":1}}],["fitting",{"2":{"74":1}}],["fittable",{"2":{"74":2}}],["fitcube",{"2":{"37":2}}],["fitsym",{"2":{"74":4}}],["fits",{"2":{"19":1}}],["fit",{"2":{"1":1,"62":1}}],["t=union",{"2":{"75":1}}],["typing",{"2":{"80":1}}],["typically",{"2":{"74":1}}],["type",{"2":{"28":1,"62":1,"64":1,"74":8,"75":3,"81":1,"82":1}}],["types",{"0":{"61":1},"1":{"62":1,"63":1,"64":1,"65":1},"2":{"19":2,"21":1,"22":1,"57":1,"63":1,"74":2,"82":1}}],["tutorial",{"2":{"86":2,"87":1,"88":1}}],["tutorials",{"0":{"86":1},"1":{"87":1,"88":1,"89":1},"2":{"59":1,"86":3}}],["turn",{"2":{"74":1}}],["tuple",{"2":{"2":3,"4":1,"5":1,"6":1,"45":2,"46":1,"48":2,"49":3,"50":5,"74":5,"75":3}}],["tbl",{"2":{"37":2}}],["target",{"2":{"75":1}}],["tab",{"2":{"74":4}}],["tables",{"2":{"88":1}}],["tableaggregator",{"2":{"74":1}}],["table",{"0":{"88":1},"2":{"37":2,"52":1,"53":2,"55":2,"66":2,"70":2,"74":4,"75":1,"90":1}}],["tas",{"2":{"52":5,"90":5}}],["tair",{"2":{"50":1,"74":1}}],["ta",{"2":{"41":3}}],["takes",{"2":{"74":4}}],["taken",{"2":{"35":2}}],["take",{"2":{"16":1,"74":1,"75":2,"78":1}}],["tesselation",{"2":{"94":1}}],["test",{"2":{"75":1,"90":1}}],["testrange",{"2":{"75":1}}],["terminal",{"2":{"78":1}}],["text",{"2":{"77":1}}],["tensors",{"2":{"62":1}}],["tell",{"2":{"31":1}}],["temporary",{"2":{"75":1}}],["temporal",{"2":{"36":1,"42":1,"62":1}}],["tempo",{"2":{"45":6,"48":4,"49":1}}],["temp",{"2":{"9":2}}],["temperature=temperature",{"2":{"35":1}}],["temperature",{"2":{"9":2,"35":4,"50":2,"52":3,"53":2,"56":5,"57":6,"58":6,"59":10,"62":1,"63":1,"64":1,"81":4}}],["tempname",{"2":{"2":1,"4":1,"5":1,"6":1}}],["tip",{"2":{"82":1}}],["tidy",{"2":{"74":1}}],["ticks",{"2":{"62":1}}],["ticks=false",{"2":{"50":1}}],["tick",{"2":{"60":1,"65":1,"81":1}}],["tiff",{"0":{"89":1}}],["tif",{"2":{"54":2}}],["title",{"2":{"50":1,"53":1,"55":1,"66":1,"70":1,"77":1}}],["ti=at",{"2":{"50":3}}],["ti=>cyclicbins",{"2":{"45":2,"46":1,"48":2,"49":2,"50":3}}],["ti",{"2":{"21":4,"45":15,"46":2,"47":1,"48":8,"49":3,"50":6,"52":2,"53":2,"55":1,"56":2,"57":2,"58":3,"59":5,"66":1,"70":1,"90":2}}],["time1",{"2":{"57":2}}],["timearray",{"0":{"41":1},"2":{"41":3}}],["time=1",{"2":{"81":1}}],["time=date",{"2":{"32":1}}],["time=at",{"2":{"32":1}}],["time=between",{"2":{"32":1}}],["time",{"0":{"43":1},"2":{"1":1,"7":1,"8":4,"9":3,"10":3,"12":1,"13":1,"14":7,"16":14,"17":8,"18":5,"21":2,"24":3,"25":1,"30":2,"32":8,"34":4,"35":7,"36":4,"37":3,"41":5,"46":1,"47":1,"50":1,"52":2,"53":1,"56":2,"57":4,"58":3,"59":5,"62":2,"63":1,"74":4,"81":4,"83":1,"84":4,"90":2}}],["timestamp",{"2":{"41":1}}],["timestep",{"2":{"37":1}}],["timeseries",{"2":{"41":3}}],["times",{"2":{"0":1}}],["treat",{"2":{"74":1}}],["treatment",{"2":{"74":1,"75":1}}],["treated",{"2":{"52":1}}],["tries",{"2":{"74":1}}],["translate",{"2":{"92":1,"93":1}}],["transformed",{"2":{"53":1,"55":1,"66":1,"70":1}}],["transformations",{"2":{"92":1}}],["transformation",{"2":{"17":1}}],["transform",{"2":{"17":2}}],["track",{"2":{"74":1}}],["true",{"2":{"12":1,"69":1,"71":1,"74":4,"75":1,"94":1}}],["tspan",{"2":{"16":1}}],["t",{"2":{"16":4,"32":1,"34":2,"35":2,"37":3,"53":1,"56":2,"57":3,"58":3,"59":5,"74":1,"75":2,"83":1,"84":1}}],["two",{"2":{"8":1,"9":1,"29":2,"30":1,"62":1,"75":1}}],["todo",{"2":{"84":1}}],["toghether",{"2":{"75":1}}],["together",{"2":{"41":1,"64":1}}],["toy",{"2":{"71":1}}],["touches",{"2":{"59":1}}],["tolerances",{"2":{"58":1}}],["tos",{"2":{"53":4,"55":2,"56":4,"57":4,"58":3,"59":9,"60":2,"66":2,"67":2,"68":2,"70":1}}],["top",{"2":{"50":1}}],["too",{"2":{"35":1,"62":1}}],["to",{"0":{"9":1,"38":1,"70":1,"76":1,"77":1},"1":{"39":1,"40":1,"77":1,"78":2},"2":{"0":4,"1":4,"3":1,"4":1,"6":2,"7":1,"8":1,"9":1,"10":8,"12":1,"15":1,"16":2,"17":2,"18":6,"19":3,"20":2,"22":3,"23":1,"26":2,"27":2,"29":3,"30":1,"32":2,"34":2,"35":6,"36":1,"37":1,"41":2,"42":1,"43":3,"44":2,"46":1,"47":1,"50":1,"51":1,"52":3,"53":1,"55":3,"59":1,"60":1,"61":1,"62":5,"63":3,"64":2,"65":2,"66":1,"67":2,"68":2,"69":1,"70":2,"71":4,"72":3,"74":47,"75":19,"77":2,"78":3,"82":2,"86":1,"88":3,"90":2,"94":1}}],["though",{"2":{"71":1}}],["those",{"2":{"11":1,"19":1,"21":1,"22":1,"63":1,"72":1}}],["through",{"2":{"74":5,"75":5,"80":1}}],["thrown",{"2":{"69":1}}],["three",{"2":{"31":1,"63":1,"83":1}}],["threads",{"2":{"74":2}}],["thread",{"2":{"18":1}}],["than",{"2":{"19":1,"31":1,"36":1,"37":1}}],["that",{"2":{"0":1,"9":2,"10":1,"13":1,"16":5,"17":2,"18":1,"19":1,"28":1,"30":1,"33":1,"35":2,"37":1,"41":1,"43":1,"46":1,"49":1,"60":1,"62":1,"63":2,"65":1,"71":2,"74":13,"75":13,"86":1,"88":1}}],["things",{"2":{"26":1}}],["think",{"2":{"1":1}}],["thinking",{"2":{"1":1}}],["this",{"2":{"0":1,"1":1,"4":1,"7":1,"10":1,"13":2,"16":4,"17":3,"18":1,"19":1,"23":1,"26":1,"29":1,"34":1,"35":2,"36":2,"37":2,"41":1,"43":1,"47":2,"51":1,"52":1,"59":1,"61":1,"64":1,"72":2,"73":2,"74":6,"75":10,"77":1,"78":2,"87":1,"88":1}}],["they",{"2":{"41":4}}],["their",{"0":{"34":1,"35":1},"2":{"33":1,"35":1,"62":1,"74":3,"75":2}}],["then",{"2":{"17":2,"28":1,"36":1,"41":1,"71":1,"72":1,"78":2,"80":1}}],["thereby",{"2":{"74":1}}],["therefore",{"2":{"37":1,"82":1}}],["there",{"2":{"14":2,"22":1,"29":1,"41":2,"74":1}}],["theme",{"2":{"50":2}}],["them",{"2":{"7":1,"10":1,"31":1,"72":1,"74":1}}],["these",{"2":{"0":1,"6":1,"29":1,"31":1,"60":1,"62":1}}],["the",{"0":{"27":1,"29":1,"37":1,"44":1,"84":1,"87":1},"1":{"28":1},"2":{"0":5,"1":4,"2":3,"4":1,"5":4,"6":4,"8":6,"9":3,"10":1,"11":1,"13":3,"14":2,"15":1,"16":12,"17":14,"18":7,"19":2,"22":1,"24":3,"26":1,"27":3,"28":5,"29":3,"30":2,"31":2,"32":9,"34":3,"35":10,"36":3,"37":10,"41":7,"42":2,"43":5,"44":4,"45":2,"46":1,"47":2,"48":2,"49":2,"50":9,"53":1,"55":1,"56":5,"57":3,"58":5,"59":6,"60":1,"61":1,"62":5,"63":4,"64":4,"69":3,"70":1,"71":10,"72":2,"74":116,"75":83,"76":1,"77":1,"78":6,"80":2,"81":6,"82":8,"83":1,"84":4,"86":6,"87":1,"88":5,"90":1}}],["switched",{"2":{"82":1}}],["syntax",{"2":{"82":1,"86":1}}],["system",{"2":{"78":1}}],["symbol",{"2":{"10":1,"12":1,"13":1,"24":2,"41":5,"45":4,"46":2,"47":2,"48":4,"49":4,"50":6,"74":3,"75":1}}],["src",{"2":{"77":1}}],["sres",{"2":{"53":2,"55":2,"66":2,"70":2}}],["skipped",{"2":{"74":1}}],["skip",{"2":{"74":1}}],["skipmissing",{"2":{"18":1,"36":1}}],["skeleton=a",{"2":{"71":1}}],["skeleton=true",{"2":{"71":2}}],["skeleton=false",{"2":{"69":1,"74":1}}],["skeleton",{"0":{"71":1},"2":{"71":8,"72":4}}],["ssp585",{"2":{"52":1,"90":2}}],["scene",{"2":{"94":3}}],["scenarios",{"2":{"90":1}}],["scenariomip",{"2":{"52":1,"90":2}}],["scripts",{"2":{"78":1}}],["scope",{"2":{"74":1,"75":1}}],["scalar",{"2":{"52":1}}],["scattered",{"2":{"7":1}}],["snow3",{"2":{"37":1}}],["snippet",{"2":{"6":1}}],["small",{"2":{"26":1,"41":1}}],["slightly",{"2":{"86":1}}],["slicing",{"2":{"16":1}}],["slices",{"2":{"74":3}}],["slice",{"2":{"16":1,"90":4,"91":1}}],["slow",{"2":{"35":1}}],["slurmmanager",{"2":{"18":1}}],["shinclude",{"2":{"78":1}}],["shdocs>",{"2":{"78":1}}],["shnpm",{"2":{"78":2}}],["should",{"2":{"32":1,"41":1,"44":1,"74":3,"75":1,"77":1,"78":1}}],["shown",{"2":{"74":1}}],["showprog",{"2":{"74":1}}],["shows",{"2":{"50":1}}],["showing",{"2":{"41":1}}],["show",{"2":{"18":1,"72":1,"94":1}}],["shading=false",{"2":{"92":1,"93":1,"94":1}}],["shall",{"2":{"74":5,"75":1}}],["shares",{"2":{"35":1}}],["share",{"0":{"34":1,"35":1},"2":{"33":1,"35":1,"63":1,"74":1}}],["shared",{"2":{"4":1,"5":1,"6":1,"25":1,"30":1,"34":2,"35":3,"39":1,"40":1,"41":2,"52":1,"53":1,"54":1,"55":1,"66":1,"70":1,"71":1,"90":1}}],["shape",{"2":{"6":1}}],["sure",{"2":{"94":1}}],["surface",{"2":{"50":2,"52":2,"53":2,"56":5,"57":6,"58":6,"59":10,"92":1,"93":1}}],["such",{"2":{"59":1,"74":1,"82":1}}],["subcubes",{"2":{"74":1}}],["subtype",{"2":{"62":1,"75":1,"82":1}}],["subtables",{"2":{"37":1}}],["subarray",{"2":{"49":1,"50":1}}],["subsetextensions",{"2":{"75":1}}],["subsetcube",{"2":{"74":1}}],["subseting",{"2":{"60":1}}],["subsetting",{"0":{"32":1,"33":1,"34":1,"35":1},"1":{"34":1,"35":1},"2":{"52":1,"53":1,"75":1,"84":1}}],["subset",{"0":{"31":1},"1":{"32":1,"33":1,"34":1,"35":1},"2":{"32":5,"35":4,"55":1,"58":1,"74":1,"75":1,"90":1}}],["subsets",{"2":{"15":1,"65":1}}],["supposed",{"2":{"74":1}}],["support",{"2":{"22":1,"41":1}}],["supertype",{"2":{"21":1,"22":1}}],["sum",{"2":{"17":2,"36":1,"45":4,"48":2,"49":4,"50":2}}],["suggestions",{"2":{"6":1}}],["s",{"2":{"10":1,"16":3,"28":1,"30":1,"32":1,"34":1,"35":2,"50":7,"55":1,"65":1,"71":1,"74":2,"75":1,"84":1}}],["style",{"0":{"88":1}}],["st",{"2":{"82":1}}],["stdzero",{"2":{"74":1}}],["stock3",{"2":{"41":4}}],["stock2",{"2":{"41":4}}],["stock1",{"2":{"41":4}}],["stocks",{"2":{"41":7}}],["storing",{"2":{"63":1}}],["storage",{"2":{"11":1,"52":1}}],["stored",{"2":{"62":3,"75":2}}],["stores",{"2":{"62":1,"74":1}}],["store",{"2":{"0":1,"52":4,"62":1,"63":1,"90":2}}],["struct",{"2":{"74":1,"75":4}}],["structures",{"2":{"61":1}}],["structure",{"2":{"28":2,"41":1,"64":1}}],["string",{"2":{"8":1,"9":2,"10":1,"12":1,"13":1,"14":2,"16":5,"17":6,"20":1,"21":2,"22":3,"24":3,"27":1,"28":3,"29":1,"30":2,"32":5,"36":3,"37":3,"45":1,"46":1,"48":2,"49":1,"50":1,"52":2,"53":2,"54":1,"55":1,"56":2,"57":3,"58":3,"59":5,"66":1,"69":1,"70":1,"71":1,"74":6,"75":4,"81":4,"84":1,"90":1}}],["stable",{"2":{"82":1}}],["standard",{"2":{"52":1,"53":1,"56":2,"57":3,"58":3,"59":5}}],["standards",{"2":{"52":1,"53":1,"55":1,"66":1,"70":1,"90":1}}],["statistics",{"2":{"14":1,"18":1,"37":3,"42":1,"83":1}}],["started",{"0":{"79":1},"1":{"80":1,"81":1,"82":1}}],["start=12",{"2":{"45":2,"46":1,"48":2,"49":2,"50":3}}],["start=december",{"2":{"45":3,"48":1}}],["start",{"2":{"10":1,"32":1,"72":1}}],["still",{"2":{"8":1,"17":1,"63":1,"86":1}}],["step=3",{"2":{"45":2,"46":1,"48":2,"49":2,"50":3}}],["steps",{"2":{"10":1,"14":1,"50":1,"74":1,"78":1}}],["step",{"2":{"7":1,"14":1,"36":2,"74":1,"75":2,"90":1}}],["sphere",{"0":{"94":1},"2":{"94":3}}],["spheroid",{"2":{"54":1}}],["split",{"2":{"74":1}}],["splitted",{"2":{"2":1}}],["special",{"2":{"57":1,"74":1,"75":1}}],["specifiers",{"2":{"75":1}}],["specifier",{"2":{"74":1}}],["specifies",{"2":{"74":3}}],["specified",{"2":{"74":7,"75":1}}],["specific",{"2":{"32":1,"74":2}}],["specifying",{"2":{"74":2,"75":1}}],["specify",{"2":{"24":1,"74":1}}],["specs",{"2":{"52":1,"90":1}}],["spectral",{"2":{"50":1}}],["sparse",{"2":{"62":1}}],["spatio",{"2":{"36":1}}],["spatial",{"2":{"1":1,"14":1,"17":5,"18":1,"42":1,"62":1}}],["span",{"2":{"32":1,"83":1}}],["space",{"2":{"1":1,"16":1}}],["sampled",{"2":{"4":4,"5":4,"6":2,"8":1,"9":1,"10":3,"12":3,"13":3,"14":3,"16":9,"17":8,"20":2,"21":6,"22":4,"24":9,"25":3,"27":9,"28":6,"29":2,"30":3,"32":14,"34":6,"35":10,"36":9,"37":5,"39":1,"40":5,"41":4,"45":3,"46":2,"48":2,"49":1,"50":7,"52":6,"53":6,"54":2,"55":3,"56":6,"57":4,"58":9,"59":15,"60":2,"66":3,"70":6,"71":6,"81":5,"84":1,"90":3}}],["same",{"2":{"0":1,"2":1,"5":1,"6":1,"9":1,"16":1,"17":2,"21":1,"22":1,"28":2,"29":2,"30":1,"35":1,"41":2,"56":1,"57":1,"58":1,"62":1,"63":3,"64":2,"74":1,"75":1,"78":1}}],["saves",{"2":{"69":1,"74":1}}],["save",{"0":{"71":1},"2":{"12":1,"22":1,"67":2,"68":2,"71":1,"74":2}}],["savecube",{"2":{"2":1,"67":1,"68":1,"71":1,"74":2}}],["savedataset",{"2":{"4":1,"5":1,"6":1,"69":2,"70":1,"71":2,"74":2,"75":1}}],["saved",{"2":{"2":1,"11":1,"69":1}}],["saving",{"2":{"1":1,"4":1,"5":1,"6":1,"16":1}}],["serve",{"2":{"75":1}}],["series",{"0":{"43":1},"2":{"18":1}}],["sequence",{"2":{"62":1}}],["seaborn",{"2":{"91":1,"92":1,"93":1,"94":1}}],["searching",{"2":{"74":1}}],["search",{"2":{"74":1}}],["sea",{"2":{"53":3,"55":1,"56":5,"57":6,"58":6,"59":10,"66":1,"70":1}}],["season",{"2":{"45":1,"48":2,"49":1}}],["seasons",{"0":{"45":1,"47":1,"50":1},"1":{"46":1,"47":1},"2":{"45":9,"48":1,"50":5}}],["seasonal",{"0":{"43":1,"83":1,"85":1},"1":{"84":1,"85":1},"2":{"43":1,"49":1,"50":1,"83":1,"84":4}}],["sebastien",{"2":{"53":2,"55":2,"66":2,"70":2}}],["separate",{"2":{"74":1,"75":1}}],["separated",{"2":{"63":1}}],["separately",{"2":{"5":1,"17":1,"18":1}}],["sep",{"2":{"45":4,"46":2,"47":1,"48":4,"49":4,"50":6}}],["selected",{"2":{"75":1,"83":1}}],["select",{"0":{"55":1,"56":1,"57":1,"58":1},"1":{"56":1,"57":1,"58":1,"59":1,"60":1},"2":{"35":1,"55":1}}],["selectors",{"2":{"59":1}}],["selector",{"2":{"35":1,"58":1}}],["selection",{"2":{"35":2}}],["selecting",{"2":{"32":1,"34":1,"35":1}}],["see",{"2":{"16":1,"59":1,"74":1,"82":1}}],["second",{"2":{"8":3,"74":1}}],["section",{"2":{"7":1,"10":1,"19":1,"23":1,"26":1,"41":1,"51":1,"61":1,"73":1}}],["setting",{"2":{"69":1,"74":1,"75":1}}],["sets",{"2":{"6":1,"44":1}}],["set",{"0":{"4":1,"5":1,"6":1},"2":{"4":1,"5":1,"17":1,"52":1,"69":1,"74":1,"75":2,"78":1}}],["setchunks",{"2":{"1":1,"2":2,"3":1,"4":1,"5":1,"6":1,"74":1,"75":1}}],["several",{"0":{"16":1},"2":{"0":1,"16":1,"30":1,"33":1}}],["sin",{"2":{"83":1}}],["sink",{"2":{"75":1}}],["single",{"0":{"83":1},"1":{"84":1,"85":1},"2":{"0":1,"7":1,"8":1,"64":1,"67":1,"68":1,"74":6,"75":1}}],["simulate",{"2":{"41":1}}],["simplicity",{"2":{"83":1}}],["simply",{"2":{"18":1,"72":1,"78":1}}],["simple",{"2":{"16":1,"26":1,"81":1}}],["situations",{"2":{"1":1}}],["size=",{"2":{"92":1,"93":1,"94":1}}],["sizes",{"2":{"2":1,"74":2,"75":2}}],["size",{"2":{"0":1,"1":1,"4":1,"5":1,"8":2,"9":2,"10":2,"12":2,"13":2,"14":4,"16":10,"17":4,"20":2,"21":2,"22":2,"24":4,"27":2,"28":6,"29":2,"30":2,"32":10,"36":6,"37":6,"48":2,"50":1,"52":2,"53":2,"56":4,"57":6,"58":6,"59":10,"71":2,"72":1,"74":3,"75":4,"81":5,"83":1,"84":3,"85":1,"91":1}}],["sosstsst",{"2":{"53":1,"56":2,"57":3,"58":3,"59":5}}],["software",{"2":{"53":1,"55":1,"66":1}}],["sort",{"2":{"17":1}}],["so",{"2":{"2":1,"18":1,"31":1,"35":1,"74":1,"75":1}}],["source",{"2":{"0":2,"53":1,"55":1,"66":1,"69":1,"70":1,"74":24,"75":24}}],["sometimes",{"2":{"71":1,"88":1}}],["some",{"0":{"35":1},"2":{"0":1,"11":1,"33":1,"35":1,"36":1,"41":2,"50":1,"74":1,"83":1,"92":1}}],["auto",{"2":{"74":1}}],["authority",{"2":{"54":5}}],["aug",{"2":{"45":4,"46":2,"47":1,"48":4,"49":4,"50":6}}],["again",{"2":{"69":1,"72":1}}],["agreement",{"2":{"50":1}}],["aggregation",{"2":{"18":1}}],["aggregate",{"2":{"17":1}}],["air",{"2":{"50":2,"52":3}}],["api",{"0":{"73":1,"74":1,"75":1},"1":{"74":1,"75":1}}],["apr",{"2":{"45":4,"46":2,"47":1,"48":4,"49":4,"50":6}}],["appropriate",{"2":{"77":1}}],["approximated",{"2":{"75":1}}],["approx",{"2":{"74":1,"75":1}}],["approach",{"2":{"9":1}}],["append=true",{"2":{"70":2}}],["append",{"0":{"70":1},"2":{"69":1,"74":1}}],["apply",{"0":{"36":1},"2":{"10":2,"13":1,"15":1,"18":1,"50":1,"84":1}}],["applies",{"2":{"13":1}}],["applied",{"2":{"0":1,"3":1,"4":1,"17":1,"74":2,"75":1}}],["applications",{"2":{"0":1}}],["a3",{"2":{"25":4}}],["a2",{"2":{"24":1,"25":3,"53":2,"55":2,"66":2,"70":2,"81":1}}],["a1",{"2":{"24":1}}],["abstractdict",{"2":{"74":1,"75":3}}],["abstractdimarray",{"2":{"21":1,"22":1,"62":1}}],["about",{"2":{"1":2,"31":1,"58":1,"81":1,"87":1}}],["above",{"2":{"0":1,"5":1,"16":1,"71":1,"80":1}}],["atol",{"2":{"58":1}}],["atmosphere",{"2":{"53":1,"55":1,"66":1,"70":1}}],["atmos",{"2":{"52":1,"90":1}}],["attributes",{"2":{"50":1,"74":1,"75":1}}],["at",{"2":{"17":4,"22":1,"35":1,"41":3,"50":1,"53":2,"55":1,"56":2,"57":6,"58":7,"59":5,"63":1,"64":2,"66":1,"69":2,"70":1,"74":3,"75":2,"76":1,"77":2,"78":2,"81":1,"86":2}}],["after",{"2":{"14":1,"16":1,"54":1,"74":3}}],["addargs",{"2":{"74":3,"75":1}}],["adds",{"2":{"62":2,"65":1}}],["addprocs",{"2":{"18":2}}],["addition",{"2":{"17":1,"19":1,"62":1}}],["additional",{"2":{"4":3,"5":3,"9":1,"16":1,"35":10,"40":4,"41":4,"52":2,"70":3,"74":4,"75":3,"90":2}}],["added",{"2":{"15":1,"70":1,"74":1,"75":1}}],["add",{"2":{"6":1,"10":1,"12":1,"36":1,"77":2,"80":2,"92":1}}],["asaxisarray",{"2":{"74":1}}],["assemble",{"2":{"81":1}}],["assessment",{"2":{"53":2,"55":2,"66":2,"70":2}}],["associated",{"2":{"74":1}}],["assign",{"0":{"38":1},"1":{"39":1,"40":1}}],["aspect=dataaspect",{"2":{"50":1,"91":1}}],["asked",{"0":{"26":1},"1":{"27":1,"28":1,"29":1,"30":1,"31":1,"32":1,"33":1,"34":1,"35":1,"36":1,"37":1,"38":1,"39":1,"40":1,"41":1}}],["as",{"2":{"5":1,"12":1,"16":5,"17":1,"18":1,"21":1,"22":2,"28":2,"29":1,"35":1,"37":1,"41":2,"45":2,"50":1,"52":1,"53":1,"54":1,"56":1,"59":1,"60":1,"62":1,"65":1,"71":1,"72":1,"74":11,"75":3,"82":1,"88":1,"90":1}}],["axs",{"2":{"44":1,"50":9}}],["ax",{"2":{"37":1,"83":3,"85":3,"91":1,"92":3,"93":3,"94":5}}],["axlist",{"2":{"10":2,"17":2,"18":2,"24":2,"25":1,"30":3,"75":5,"81":3}}],["axessmall",{"2":{"75":2}}],["axes",{"0":{"27":1,"29":1},"1":{"28":1},"2":{"4":4,"5":4,"6":1,"24":1,"25":1,"27":2,"28":1,"29":2,"32":2,"34":5,"35":13,"39":1,"40":5,"41":8,"52":3,"53":1,"54":1,"55":2,"62":2,"66":1,"70":4,"71":1,"74":15,"75":11,"81":1,"84":2,"90":3}}],["axislegend",{"2":{"85":1}}],["axis=false",{"2":{"94":1}}],["axis=",{"2":{"83":1}}],["axisdescriptor",{"2":{"75":1}}],["axisdesc",{"2":{"74":3}}],["axis",{"0":{"4":1},"2":{"4":1,"9":2,"16":3,"29":1,"32":1,"34":1,"35":7,"41":1,"50":1,"54":2,"60":1,"65":1,"71":1,"74":16,"75":14,"81":1,"85":1,"90":1,"91":1}}],["always",{"2":{"74":2,"75":1,"76":1,"82":1}}],["already",{"2":{"69":1,"74":1,"75":1}}],["al",{"2":{"53":1,"55":1,"64":1,"66":1,"70":1}}],["alternatives",{"2":{"74":1}}],["alternatively",{"2":{"0":1,"2":1,"74":1,"80":1}}],["altered",{"2":{"52":1,"53":1,"56":2,"57":3,"58":3,"59":5}}],["although",{"2":{"41":1,"59":1}}],["algebra",{"0":{"36":1},"2":{"36":1}}],["along",{"0":{"8":1},"2":{"8":1,"16":1,"74":3,"75":2,"86":1}}],["allaxes",{"2":{"75":1}}],["allinaxes",{"2":{"75":1}}],["allmissing",{"2":{"74":1}}],["allocate",{"2":{"71":1}}],["allocation",{"2":{"17":1}}],["allow",{"2":{"75":1}}],["allowing",{"2":{"21":1,"22":1,"63":1}}],["allows",{"2":{"18":1}}],["all",{"0":{"6":1,"34":1,"35":1},"2":{"4":1,"6":2,"10":1,"12":1,"13":1,"14":2,"17":1,"18":4,"33":1,"35":2,"41":3,"50":2,"54":1,"59":1,"62":1,"64":2,"69":3,"71":1,"73":1,"74":6,"75":7,"78":1}}],["also",{"2":{"2":1,"3":1,"14":1,"18":1,"24":1,"27":1,"35":1,"37":1,"62":2,"63":1,"71":2,"74":1,"80":1}}],["analog",{"2":{"63":1}}],["analyzing",{"2":{"1":1}}],["another",{"2":{"16":1,"35":1}}],["anynymous",{"2":{"74":1}}],["anyocean",{"2":{"74":1}}],["anymissing",{"2":{"74":1}}],["any",{"2":{"8":1,"9":1,"10":1,"11":1,"14":2,"16":5,"17":4,"20":1,"21":2,"22":3,"24":1,"27":1,"28":3,"29":1,"30":1,"32":6,"36":3,"37":3,"45":3,"46":2,"48":4,"49":3,"50":3,"52":2,"53":2,"54":1,"55":1,"56":2,"57":3,"58":3,"59":5,"66":1,"70":1,"71":1,"74":4,"75":9,"81":1,"84":1,"90":1}}],["an",{"0":{"8":1},"2":{"9":1,"10":4,"12":1,"13":1,"15":1,"18":2,"28":1,"29":1,"34":1,"35":1,"37":1,"55":3,"58":1,"62":1,"63":1,"65":1,"66":1,"67":1,"68":1,"69":1,"70":1,"74":19,"75":8}}],["and",{"0":{"23":1,"29":1,"42":1,"51":1,"55":1,"59":1,"66":1},"1":{"24":1,"25":1,"43":1,"44":1,"45":1,"46":1,"47":1,"48":1,"49":1,"50":1,"52":1,"53":1,"54":1,"56":1,"57":1,"58":1,"59":1,"60":1,"67":1,"68":1,"69":1,"70":1,"71":1,"72":1},"2":{"0":1,"2":1,"5":1,"6":1,"7":1,"8":1,"12":1,"16":4,"17":2,"19":1,"23":1,"24":1,"27":1,"30":1,"32":1,"35":6,"36":1,"37":6,"41":5,"42":1,"43":1,"45":1,"50":1,"51":2,"52":1,"53":1,"55":1,"59":1,"62":5,"63":3,"64":2,"66":1,"69":1,"70":1,"71":3,"72":1,"74":18,"75":6,"76":1,"78":4,"80":1,"81":2,"83":1,"90":1,"92":1}}],["available",{"2":{"59":2,"71":1,"73":1,"74":2,"80":1}}],["avariable",{"2":{"0":1}}],["avoids",{"2":{"17":1}}],["avoided",{"2":{"0":1}}],["averaging",{"2":{"14":1}}],["averages",{"0":{"43":1},"2":{"42":1}}],["average",{"2":{"14":1,"43":2}}],["artype",{"2":{"74":2}}],["archgdaldatasets",{"2":{"54":1}}],["archgdal",{"2":{"54":2}}],["arguments",{"2":{"50":1,"74":11,"75":3}}],["argument",{"2":{"18":1,"71":1,"74":4,"75":2}}],["arr2",{"2":{"22":1}}],["arr",{"2":{"17":7,"22":2}}],["arrayinfo",{"2":{"75":1}}],["arrays",{"2":{"6":1,"7":1,"8":2,"9":1,"11":1,"23":1,"25":2,"52":2,"53":2,"61":1,"62":4,"63":3,"64":3,"74":2,"75":1}}],["array",{"0":{"17":1,"20":1},"2":{"0":1,"1":1,"8":2,"9":2,"10":3,"12":2,"13":2,"15":1,"16":2,"17":8,"20":2,"29":1,"45":1,"50":1,"55":1,"62":4,"63":1,"64":1,"65":2,"71":5,"72":6,"74":10,"75":4,"81":3}}],["arbitrary",{"2":{"16":1}}],["arithmetics",{"0":{"12":1},"2":{"10":1}}],["areas",{"2":{"74":1}}],["area",{"2":{"52":2,"74":1}}],["areacella",{"2":{"52":2,"90":1}}],["are",{"2":{"0":1,"11":1,"19":3,"29":1,"31":1,"35":1,"41":3,"50":2,"55":1,"59":1,"60":1,"62":3,"63":2,"64":3,"71":1,"74":11,"75":6,"76":1,"78":1,"86":2,"88":1}}],["according",{"2":{"74":1}}],["access",{"2":{"1":2,"13":1,"24":1,"62":1,"65":1}}],["accessed",{"2":{"0":2,"52":1,"53":1}}],["activate",{"2":{"37":1,"78":2,"83":1,"91":1,"94":1}}],["actually",{"2":{"75":1}}],["actual",{"2":{"13":1,"71":1,"75":1,"81":1}}],["achieves",{"2":{"28":1}}],["achieved",{"2":{"0":1}}],["across",{"2":{"0":1,"7":1,"16":1,"62":3}}],["a",{"0":{"9":1,"11":1,"17":1,"24":1,"25":1,"27":1,"31":1,"32":1,"33":1,"34":1,"35":1,"38":1,"41":2,"56":1,"60":1,"69":1,"70":1,"83":1,"89":1},"1":{"28":1,"32":1,"33":1,"34":2,"35":2,"39":1,"40":1,"84":1,"85":1},"2":{"0":4,"2":7,"3":1,"4":1,"7":1,"8":1,"9":2,"10":3,"11":1,"12":4,"13":2,"14":2,"15":1,"16":5,"17":75,"18":11,"20":2,"21":5,"22":8,"24":1,"26":1,"27":2,"28":2,"29":1,"31":4,"32":3,"33":1,"35":2,"37":3,"39":2,"40":2,"41":4,"43":1,"48":1,"50":2,"52":6,"53":3,"54":1,"58":2,"59":4,"60":1,"62":12,"63":4,"64":8,"65":1,"67":3,"68":3,"69":4,"71":5,"74":60,"75":31,"77":2,"78":2,"81":4,"82":1,"87":1,"88":1}}],["iall",{"2":{"75":1}}],["iwindow",{"2":{"75":1}}],["icolon",{"2":{"75":1}}],["icefire",{"2":{"91":1,"92":1,"93":1,"94":1}}],["ice",{"2":{"53":1,"55":1,"66":1,"70":1}}],["ipcc",{"2":{"53":3,"55":3,"66":3,"70":3}}],["ipsl",{"2":{"53":6,"55":6,"66":6,"70":6}}],["idx",{"2":{"84":3}}],["identical",{"2":{"74":1}}],["id",{"2":{"52":2,"53":2,"55":2,"66":2,"70":2,"90":2}}],["irregular",{"2":{"35":6,"37":2,"41":4,"45":1,"48":2,"49":1,"50":1,"52":4,"53":2,"55":1,"56":2,"57":2,"58":6,"59":5,"66":1,"70":1,"75":1,"90":2}}],["immutable",{"2":{"11":1}}],["improving",{"2":{"82":1}}],["improve",{"2":{"6":1}}],["implementing",{"2":{"74":1}}],["importance",{"2":{"75":1}}],["important",{"2":{"1":1}}],["impossible",{"2":{"11":1}}],["i",{"0":{"30":1,"31":1,"36":1,"37":1,"38":1,"41":1},"1":{"32":1,"33":1,"34":1,"35":1,"39":1,"40":1},"2":{"8":1,"17":3,"21":1,"22":1,"32":1,"50":2,"69":1,"74":7,"75":4,"78":2,"81":1,"84":3}}],["ispar",{"2":{"74":1,"75":1}}],["ismissing",{"2":{"71":1}}],["issues",{"2":{"44":1}}],["isequal",{"2":{"17":1}}],["is",{"2":{"1":2,"2":1,"6":1,"7":1,"9":1,"13":1,"14":2,"15":1,"16":4,"17":2,"18":3,"19":1,"22":1,"26":1,"28":2,"30":1,"31":1,"35":2,"36":1,"37":4,"41":2,"43":2,"44":2,"45":1,"49":1,"56":1,"59":2,"60":1,"62":4,"63":1,"64":2,"65":1,"71":4,"72":1,"74":10,"75":10,"77":1,"80":1,"82":1,"86":1,"88":1}}],["if",{"2":{"0":1,"19":1,"35":3,"69":1,"71":2,"74":11,"75":6,"78":1,"86":1}}],["inline",{"2":{"94":2}}],["incubes",{"2":{"75":1}}],["incs",{"2":{"75":1}}],["include",{"2":{"74":2,"75":1}}],["included",{"2":{"59":1}}],["inarbc",{"2":{"75":1}}],["inar",{"2":{"75":2}}],["inplace",{"2":{"74":3,"75":1}}],["inputcube",{"2":{"75":2}}],["input",{"2":{"16":1,"18":2,"37":1,"74":12,"75":8}}],["innerchunks",{"2":{"75":1}}],["inner",{"2":{"74":9,"75":3}}],["installed",{"2":{"82":1}}],["installation",{"0":{"80":1}}],["install",{"2":{"78":1,"80":1}}],["instead",{"2":{"8":1,"9":1,"13":1,"27":1,"32":1,"59":1,"62":1}}],["insize",{"2":{"75":1}}],["inside",{"2":{"74":3}}],["initialization",{"2":{"52":1,"90":1}}],["initially",{"2":{"17":1}}],["inds",{"2":{"75":1}}],["indeed",{"2":{"72":1}}],["indexing",{"2":{"57":2,"58":2,"72":1,"82":1}}],["index",{"2":{"52":2,"75":2,"90":2}}],["independently",{"2":{"41":1}}],["indices",{"2":{"75":1,"84":1}}],["indicate",{"2":{"74":1}}],["indicating",{"2":{"9":1,"17":1,"74":1}}],["indims=indims",{"2":{"17":1,"18":1}}],["indims",{"2":{"16":8,"74":7}}],["individually",{"2":{"13":2}}],["individual",{"2":{"0":1,"52":1,"53":1}}],["information",{"2":{"69":1,"75":2}}],["info",{"2":{"16":2,"22":1,"27":1,"42":1,"71":1,"82":1}}],["introducing",{"2":{"64":1}}],["int",{"2":{"28":1,"84":3}}],["interested",{"2":{"86":1}}],["internal",{"0":{"75":1},"2":{"75":9}}],["internally",{"2":{"63":1}}],["interface",{"2":{"74":2,"88":1}}],["interval",{"2":{"53":1,"56":2,"57":3,"58":4,"59":6}}],["intervalsets",{"2":{"59":1}}],["intervals",{"0":{"59":1},"2":{"32":1}}],["interactive",{"2":{"0":1}}],["integer",{"2":{"24":1,"57":1,"58":1,"62":1}}],["int64",{"2":{"4":4,"5":4,"6":2,"8":1,"9":1,"16":8,"20":2,"21":6,"22":2,"24":3,"27":9,"28":7,"29":4,"32":15,"34":4,"35":7,"37":3,"39":1,"40":5,"45":6,"46":6,"48":4,"49":1,"50":19,"70":3,"71":6,"75":1,"81":2}}],["into",{"0":{"89":1},"2":{"0":1,"1":1,"2":1,"7":1,"8":1,"16":1,"17":1,"19":2,"22":1,"35":4,"51":1,"64":2,"69":1,"72":1,"74":6,"75":3,"78":1,"94":1}}],["in",{"0":{"38":1},"1":{"39":1,"40":1},"2":{"0":5,"1":1,"2":1,"4":2,"5":1,"9":1,"11":1,"13":1,"14":2,"16":2,"17":6,"18":3,"19":2,"21":1,"22":1,"29":1,"33":1,"35":1,"37":2,"41":4,"43":2,"44":2,"47":3,"50":4,"52":2,"53":1,"56":2,"57":3,"58":4,"59":7,"60":1,"61":1,"62":5,"63":1,"64":2,"71":1,"72":1,"74":13,"75":9,"78":2,"80":1,"81":2,"84":1,"86":3,"88":4,"90":1}}],["iter",{"2":{"74":1}}],["iterate",{"2":{"88":1}}],["iteration",{"0":{"88":1}}],["iterator",{"2":{"37":1}}],["iterators",{"2":{"17":1}}],["iterable",{"2":{"37":2,"74":2}}],["itself",{"2":{"74":1,"75":1}}],["its",{"2":{"0":1}}],["it",{"2":{"0":2,"1":3,"12":1,"16":1,"18":2,"27":1,"29":1,"30":1,"35":2,"37":2,"41":2,"46":1,"48":1,"50":1,"55":1,"62":2,"63":1,"65":1,"69":1,"71":2,"72":1,"74":10,"75":5,"78":1,"80":1}}],["lscene",{"2":{"94":1}}],["lmdz",{"2":{"53":1,"55":1,"66":1,"70":1}}],["link",{"2":{"77":1}}],["linewidth=0",{"2":{"92":1,"93":1}}],["linewidth=2",{"2":{"85":2}}],["linewidth=1",{"2":{"83":1,"85":1}}],["linestyle=",{"2":{"85":2}}],["lines",{"2":{"83":1,"85":3}}],["line",{"2":{"37":1}}],["lim",{"2":{"53":1,"55":1,"66":1,"70":1}}],["libraries",{"2":{"32":1,"62":1}}],["libray",{"2":{"31":1}}],["little",{"2":{"18":1}}],["list",{"2":{"17":1,"41":5,"74":5,"75":6}}],["like",{"2":{"0":1,"37":1,"41":1,"74":2,"75":1,"77":1}}],["loopinds",{"2":{"75":2}}],["looping",{"2":{"74":1,"75":1}}],["loopcachesize",{"2":{"75":1}}],["loopchunksize",{"2":{"74":1}}],["loopaxes",{"2":{"75":1}}],["loopvars",{"2":{"74":1,"75":1}}],["loops",{"2":{"74":1}}],["loop",{"2":{"74":1,"75":2}}],["looped",{"2":{"74":3,"75":3}}],["look",{"2":{"69":1,"74":1,"75":1,"77":1,"78":1}}],["lookups",{"2":{"45":15,"46":10,"48":5,"49":5,"50":38,"60":3}}],["lookup",{"2":{"45":1,"47":1,"90":3}}],["looks",{"2":{"37":1,"41":1}}],["located",{"2":{"86":1}}],["locate",{"2":{"78":1}}],["location",{"2":{"75":3}}],["locations",{"2":{"63":1,"64":1}}],["localhost",{"2":{"78":1}}],["locally",{"0":{"78":1},"2":{"78":1}}],["local",{"2":{"18":1,"52":1}}],["lowclip",{"2":{"50":4}}],["low",{"2":{"41":4}}],["lost",{"2":{"19":1}}],["lo",{"2":{"16":4}}],["loadorgenerate",{"2":{"75":1}}],["loading",{"2":{"54":1,"72":1}}],["loaded",{"2":{"35":2}}],["load",{"2":{"16":1,"32":1,"35":2,"62":1}}],["long",{"2":{"50":1,"52":1,"53":1,"56":2,"57":3,"58":3,"59":5}}],["longitudes=longitudes",{"2":{"35":1}}],["longitudes",{"2":{"35":12}}],["longitude",{"2":{"32":1,"54":1,"81":2}}],["lonlat",{"2":{"34":1}}],["lon=1",{"2":{"32":1,"34":1}}],["lon",{"2":{"10":2,"12":1,"13":1,"14":2,"16":10,"17":12,"18":1,"21":2,"24":3,"25":1,"30":2,"32":7,"34":3,"36":4,"37":3,"52":2,"53":2,"55":1,"56":2,"57":3,"58":6,"59":10,"60":2,"66":1,"70":1,"90":2,"92":3}}],["lazy",{"2":{"74":1}}],["lazily",{"2":{"13":1}}],["layername",{"2":{"74":2}}],["layername=",{"2":{"71":2,"75":1}}],["layer",{"2":{"71":1,"74":1,"75":1}}],["layout",{"2":{"50":2}}],["labelled",{"2":{"74":1}}],["labels",{"2":{"50":1,"60":1,"64":1,"65":1}}],["label=false",{"2":{"50":1}}],["label=",{"2":{"50":1,"85":3}}],["label=cb",{"2":{"50":1}}],["label",{"2":{"50":3,"52":1,"90":1}}],["last",{"2":{"16":1,"18":1}}],["la",{"2":{"16":4}}],["latest",{"2":{"82":1}}],["lat=5",{"2":{"32":1,"34":1}}],["latitudes=latitudes",{"2":{"35":1}}],["latitudes",{"2":{"35":11}}],["latitude",{"2":{"32":1,"54":1,"81":2}}],["lat",{"2":{"10":2,"12":1,"13":1,"14":2,"16":7,"17":12,"18":1,"21":2,"24":3,"25":1,"30":2,"32":7,"34":3,"36":4,"37":3,"52":2,"53":2,"55":1,"56":2,"57":3,"58":5,"59":5,"60":1,"66":1,"70":1,"74":1,"90":3,"92":1,"93":1}}],["larger",{"2":{"19":1}}],["large",{"2":{"0":2,"19":1,"44":1,"62":1}}],["learn",{"2":{"88":1}}],["learning",{"2":{"62":1,"86":1}}],["leap",{"2":{"83":1}}],["least",{"2":{"35":1,"41":1,"74":1}}],["length",{"2":{"45":2,"46":1,"48":3,"74":1,"75":3}}],["length=365",{"2":{"83":1}}],["length=20",{"2":{"30":1,"81":1}}],["length=15",{"2":{"10":1,"17":1,"18":1,"24":1,"30":1,"81":1}}],["length=10",{"2":{"10":1,"17":1,"18":1,"24":1,"30":1,"81":1}}],["level",{"2":{"41":1,"77":1,"78":1}}],["left",{"2":{"14":2}}],["let",{"2":{"10":1,"16":2,"28":1,"30":1,"32":1,"34":1,"35":1,"50":1,"55":1,"84":1}}]],"serializationVersion":2}';export{e as default}; diff --git a/previews/PR439/assets/chunks/VPLocalSearchBox.Ul3ZdpMO.js b/previews/PR439/assets/chunks/VPLocalSearchBox.BiFL7nx4.js similarity index 99% rename from previews/PR439/assets/chunks/VPLocalSearchBox.Ul3ZdpMO.js rename to previews/PR439/assets/chunks/VPLocalSearchBox.BiFL7nx4.js index dcc7485c..1676846a 100644 --- a/previews/PR439/assets/chunks/VPLocalSearchBox.Ul3ZdpMO.js +++ b/previews/PR439/assets/chunks/VPLocalSearchBox.BiFL7nx4.js @@ -1,4 +1,4 @@ -var Nt=Object.defineProperty;var Ft=(a,e,t)=>e in a?Nt(a,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):a[e]=t;var Re=(a,e,t)=>Ft(a,typeof e!="symbol"?e+"":e,t);import{V as Ot,p as se,h as pe,aj as Xe,ak as Rt,al as Ct,q as je,am as Mt,d as At,D as ye,an as et,ao as Lt,ap as Dt,s as zt,aq as Pt,v as Ce,P as ue,O as we,ar as jt,as as Vt,W as $t,R as Bt,$ as Wt,o as q,b as Kt,j as S,a0 as Jt,k as D,at as Ut,au as qt,av as Gt,c as Y,n as tt,e as xe,C as st,F as nt,a as de,t as he,aw as Ht,ax as it,ay as Qt,a9 as Yt,af as Zt,az as Xt,_ as es}from"./framework.DsPJznl_.js";import{u as ts,d as ss}from"./theme.BTHK6YKI.js";const ns={root:()=>Ot(()=>import("./@localSearchIndexroot.Dr9nyg5O.js"),[])};/*! +var Nt=Object.defineProperty;var Ft=(a,e,t)=>e in a?Nt(a,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):a[e]=t;var Re=(a,e,t)=>Ft(a,typeof e!="symbol"?e+"":e,t);import{V as Ot,p as se,h as pe,aj as Xe,ak as Rt,al as Ct,q as je,am as Mt,d as At,D as ye,an as et,ao as Lt,ap as Dt,s as zt,aq as Pt,v as Ce,P as ue,O as we,ar as jt,as as Vt,W as $t,R as Bt,$ as Wt,o as q,b as Kt,j as S,a0 as Jt,k as D,at as Ut,au as qt,av as Gt,c as Y,n as tt,e as xe,C as st,F as nt,a as de,t as he,aw as Ht,ax as it,ay as Qt,a9 as Yt,af as Zt,az as Xt,_ as es}from"./framework.eQVMtpgY.js";import{u as ts,d as ss}from"./theme.7rY793H8.js";const ns={root:()=>Ot(()=>import("./@localSearchIndexroot.BKiQu1HE.js"),[])};/*! * tabbable 6.2.0 * @license MIT, https://github.com/focus-trap/tabbable/blob/master/LICENSE */var vt=["input:not([inert])","select:not([inert])","textarea:not([inert])","a[href]:not([inert])","button:not([inert])","[tabindex]:not(slot):not([inert])","audio[controls]:not([inert])","video[controls]:not([inert])",'[contenteditable]:not([contenteditable="false"]):not([inert])',"details>summary:first-of-type:not([inert])","details:not([inert])"],Ie=vt.join(","),mt=typeof Element>"u",ie=mt?function(){}:Element.prototype.matches||Element.prototype.msMatchesSelector||Element.prototype.webkitMatchesSelector,ke=!mt&&Element.prototype.getRootNode?function(a){var e;return a==null||(e=a.getRootNode)===null||e===void 0?void 0:e.call(a)}:function(a){return a==null?void 0:a.ownerDocument},Ne=function a(e,t){var s;t===void 0&&(t=!0);var n=e==null||(s=e.getAttribute)===null||s===void 0?void 0:s.call(e,"inert"),r=n===""||n==="true",i=r||t&&e&&a(e.parentNode);return i},is=function(e){var t,s=e==null||(t=e.getAttribute)===null||t===void 0?void 0:t.call(e,"contenteditable");return s===""||s==="true"},gt=function(e,t,s){if(Ne(e))return[];var n=Array.prototype.slice.apply(e.querySelectorAll(Ie));return t&&ie.call(e,Ie)&&n.unshift(e),n=n.filter(s),n},bt=function a(e,t,s){for(var n=[],r=Array.from(e);r.length;){var i=r.shift();if(!Ne(i,!1))if(i.tagName==="SLOT"){var o=i.assignedElements(),l=o.length?o:i.children,c=a(l,!0,s);s.flatten?n.push.apply(n,c):n.push({scopeParent:i,candidates:c})}else{var h=ie.call(i,Ie);h&&s.filter(i)&&(t||!e.includes(i))&&n.push(i);var v=i.shadowRoot||typeof s.getShadowRoot=="function"&&s.getShadowRoot(i),p=!Ne(v,!1)&&(!s.shadowRootFilter||s.shadowRootFilter(i));if(v&&p){var b=a(v===!0?i.children:v.children,!0,s);s.flatten?n.push.apply(n,b):n.push({scopeParent:i,candidates:b})}else r.unshift.apply(r,i.children)}}return n},yt=function(e){return!isNaN(parseInt(e.getAttribute("tabindex"),10))},ne=function(e){if(!e)throw new Error("No node provided");return e.tabIndex<0&&(/^(AUDIO|VIDEO|DETAILS)$/.test(e.tagName)||is(e))&&!yt(e)?0:e.tabIndex},rs=function(e,t){var s=ne(e);return s<0&&t&&!yt(e)?0:s},as=function(e,t){return e.tabIndex===t.tabIndex?e.documentOrder-t.documentOrder:e.tabIndex-t.tabIndex},wt=function(e){return e.tagName==="INPUT"},os=function(e){return wt(e)&&e.type==="hidden"},ls=function(e){var t=e.tagName==="DETAILS"&&Array.prototype.slice.apply(e.children).some(function(s){return s.tagName==="SUMMARY"});return t},cs=function(e,t){for(var s=0;ssummary:first-of-type"),i=r?e.parentElement:e;if(ie.call(i,"details:not([open]) *"))return!0;if(!s||s==="full"||s==="legacy-full"){if(typeof n=="function"){for(var o=e;e;){var l=e.parentElement,c=ke(e);if(l&&!l.shadowRoot&&n(l)===!0)return rt(e);e.assignedSlot?e=e.assignedSlot:!l&&c!==e.ownerDocument?e=c.host:e=l}e=o}if(fs(e))return!e.getClientRects().length;if(s!=="legacy-full")return!0}else if(s==="non-zero-area")return rt(e);return!1},vs=function(e){if(/^(INPUT|BUTTON|SELECT|TEXTAREA)$/.test(e.tagName))for(var t=e.parentElement;t;){if(t.tagName==="FIELDSET"&&t.disabled){for(var s=0;s=0)},gs=function a(e){var t=[],s=[];return e.forEach(function(n,r){var i=!!n.scopeParent,o=i?n.scopeParent:n,l=rs(o,i),c=i?a(n.candidates):o;l===0?i?t.push.apply(t,c):t.push(o):s.push({documentOrder:r,tabIndex:l,item:n,isScope:i,content:c})}),s.sort(as).reduce(function(n,r){return r.isScope?n.push.apply(n,r.content):n.push(r.content),n},[]).concat(t)},bs=function(e,t){t=t||{};var s;return t.getShadowRoot?s=bt([e],t.includeContainer,{filter:Ve.bind(null,t),flatten:!1,getShadowRoot:t.getShadowRoot,shadowRootFilter:ms}):s=gt(e,t.includeContainer,Ve.bind(null,t)),gs(s)},ys=function(e,t){t=t||{};var s;return t.getShadowRoot?s=bt([e],t.includeContainer,{filter:Fe.bind(null,t),flatten:!0,getShadowRoot:t.getShadowRoot}):s=gt(e,t.includeContainer,Fe.bind(null,t)),s},re=function(e,t){if(t=t||{},!e)throw new Error("No node provided");return ie.call(e,Ie)===!1?!1:Ve(t,e)},ws=vt.concat("iframe").join(","),Me=function(e,t){if(t=t||{},!e)throw new Error("No node provided");return ie.call(e,ws)===!1?!1:Fe(t,e)};/*! diff --git a/previews/PR439/assets/chunks/framework.DsPJznl_.js b/previews/PR439/assets/chunks/framework.eQVMtpgY.js similarity index 57% rename from previews/PR439/assets/chunks/framework.DsPJznl_.js rename to previews/PR439/assets/chunks/framework.eQVMtpgY.js index 2117794b..b1be3928 100644 --- a/previews/PR439/assets/chunks/framework.DsPJznl_.js +++ b/previews/PR439/assets/chunks/framework.eQVMtpgY.js @@ -2,17 +2,17 @@ * @vue/shared v3.5.6 * (c) 2018-present Yuxi (Evan) You and Vue contributors * @license MIT -**//*! #__NO_SIDE_EFFECTS__ */function Hr(e){const t=Object.create(null);for(const n of e.split(","))t[n]=1;return n=>n in t}const ee={},Tt=[],Ue=()=>{},zo=()=>!1,Qt=e=>e.charCodeAt(0)===111&&e.charCodeAt(1)===110&&(e.charCodeAt(2)>122||e.charCodeAt(2)<97),$r=e=>e.startsWith("onUpdate:"),fe=Object.assign,Dr=(e,t)=>{const n=e.indexOf(t);n>-1&&e.splice(n,1)},Jo=Object.prototype.hasOwnProperty,J=(e,t)=>Jo.call(e,t),K=Array.isArray,Ct=e=>Fn(e)==="[object Map]",fi=e=>Fn(e)==="[object Set]",q=e=>typeof e=="function",se=e=>typeof e=="string",rt=e=>typeof e=="symbol",ne=e=>e!==null&&typeof e=="object",ui=e=>(ne(e)||q(e))&&q(e.then)&&q(e.catch),di=Object.prototype.toString,Fn=e=>di.call(e),Qo=e=>Fn(e).slice(8,-1),hi=e=>Fn(e)==="[object Object]",jr=e=>se(e)&&e!=="NaN"&&e[0]!=="-"&&""+parseInt(e,10)===e,At=Hr(",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted"),Hn=e=>{const t=Object.create(null);return n=>t[n]||(t[n]=e(n))},Zo=/-(\w)/g,Ne=Hn(e=>e.replace(Zo,(t,n)=>n?n.toUpperCase():"")),el=/\B([A-Z])/g,st=Hn(e=>e.replace(el,"-$1").toLowerCase()),$n=Hn(e=>e.charAt(0).toUpperCase()+e.slice(1)),_n=Hn(e=>e?`on${$n(e)}`:""),tt=(e,t)=>!Object.is(e,t),wn=(e,...t)=>{for(let n=0;n{Object.defineProperty(e,t,{configurable:!0,enumerable:!1,writable:r,value:n})},wr=e=>{const t=parseFloat(e);return isNaN(t)?e:t},tl=e=>{const t=se(e)?Number(e):NaN;return isNaN(t)?e:t};let hs;const gi=()=>hs||(hs=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:typeof global<"u"?global:{});function Vr(e){if(K(e)){const t={};for(let n=0;n{if(n){const r=n.split(rl);r.length>1&&(t[r[0].trim()]=r[1].trim())}}),t}function Ur(e){let t="";if(se(e))t=e;else if(K(e))for(let n=0;n!!(e&&e.__v_isRef===!0),cl=e=>se(e)?e:e==null?"":K(e)||ne(e)&&(e.toString===di||!q(e.toString))?yi(e)?cl(e.value):JSON.stringify(e,vi,2):String(e),vi=(e,t)=>yi(t)?vi(e,t.value):Ct(t)?{[`Map(${t.size})`]:[...t.entries()].reduce((n,[r,s],i)=>(n[Zn(r,i)+" =>"]=s,n),{})}:fi(t)?{[`Set(${t.size})`]:[...t.values()].map(n=>Zn(n))}:rt(t)?Zn(t):ne(t)&&!K(t)&&!hi(t)?String(t):t,Zn=(e,t="")=>{var n;return rt(e)?`Symbol(${(n=e.description)!=null?n:t})`:e};/** +**//*! #__NO_SIDE_EFFECTS__ */function Hr(e){const t=Object.create(null);for(const n of e.split(","))t[n]=1;return n=>n in t}const ee={},Tt=[],Ue=()=>{},zo=()=>!1,Qt=e=>e.charCodeAt(0)===111&&e.charCodeAt(1)===110&&(e.charCodeAt(2)>122||e.charCodeAt(2)<97),$r=e=>e.startsWith("onUpdate:"),fe=Object.assign,Dr=(e,t)=>{const n=e.indexOf(t);n>-1&&e.splice(n,1)},Jo=Object.prototype.hasOwnProperty,J=(e,t)=>Jo.call(e,t),K=Array.isArray,Ct=e=>Fn(e)==="[object Map]",ui=e=>Fn(e)==="[object Set]",q=e=>typeof e=="function",se=e=>typeof e=="string",rt=e=>typeof e=="symbol",ne=e=>e!==null&&typeof e=="object",di=e=>(ne(e)||q(e))&&q(e.then)&&q(e.catch),hi=Object.prototype.toString,Fn=e=>hi.call(e),Qo=e=>Fn(e).slice(8,-1),pi=e=>Fn(e)==="[object Object]",jr=e=>se(e)&&e!=="NaN"&&e[0]!=="-"&&""+parseInt(e,10)===e,At=Hr(",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted"),Hn=e=>{const t=Object.create(null);return n=>t[n]||(t[n]=e(n))},Zo=/-(\w)/g,Ne=Hn(e=>e.replace(Zo,(t,n)=>n?n.toUpperCase():"")),el=/\B([A-Z])/g,st=Hn(e=>e.replace(el,"-$1").toLowerCase()),$n=Hn(e=>e.charAt(0).toUpperCase()+e.slice(1)),_n=Hn(e=>e?`on${$n(e)}`:""),tt=(e,t)=>!Object.is(e,t),wn=(e,...t)=>{for(let n=0;n{Object.defineProperty(e,t,{configurable:!0,enumerable:!1,writable:r,value:n})},wr=e=>{const t=parseFloat(e);return isNaN(t)?e:t},tl=e=>{const t=se(e)?Number(e):NaN;return isNaN(t)?e:t};let ps;const mi=()=>ps||(ps=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:typeof global<"u"?global:{});function Vr(e){if(K(e)){const t={};for(let n=0;n{if(n){const r=n.split(rl);r.length>1&&(t[r[0].trim()]=r[1].trim())}}),t}function Ur(e){let t="";if(se(e))t=e;else if(K(e))for(let n=0;n!!(e&&e.__v_isRef===!0),cl=e=>se(e)?e:e==null?"":K(e)||ne(e)&&(e.toString===hi||!q(e.toString))?vi(e)?cl(e.value):JSON.stringify(e,bi,2):String(e),bi=(e,t)=>vi(t)?bi(e,t.value):Ct(t)?{[`Map(${t.size})`]:[...t.entries()].reduce((n,[r,s],i)=>(n[Zn(r,i)+" =>"]=s,n),{})}:ui(t)?{[`Set(${t.size})`]:[...t.values()].map(n=>Zn(n))}:rt(t)?Zn(t):ne(t)&&!K(t)&&!pi(t)?String(t):t,Zn=(e,t="")=>{var n;return rt(e)?`Symbol(${(n=e.description)!=null?n:t})`:e};/** * @vue/reactivity v3.5.6 * (c) 2018-present Yuxi (Evan) You and Vue contributors * @license MIT -**/let _e;class al{constructor(t=!1){this.detached=t,this._active=!0,this.effects=[],this.cleanups=[],this._isPaused=!1,this.parent=_e,!t&&_e&&(this.index=(_e.scopes||(_e.scopes=[])).push(this)-1)}get active(){return this._active}pause(){if(this._active){this._isPaused=!0;let t,n;if(this.scopes)for(t=0,n=this.scopes.length;t0)return;let e;for(;Dt;){let t=Dt;for(Dt=void 0;t;){const n=t.next;if(t.next=void 0,t.flags&=-9,t.flags&1)try{t.trigger()}catch(r){e||(e=r)}t=n}}if(e)throw e}function Ei(e){for(let t=e.deps;t;t=t.nextDep)t.version=-1,t.prevActiveLink=t.dep.activeLink,t.dep.activeLink=t}function xi(e){let t,n=e.depsTail,r=n;for(;r;){const s=r.prevDep;r.version===-1?(r===n&&(n=s),Wr(r),ul(r)):t=r,r.dep.activeLink=r.prevActiveLink,r.prevActiveLink=void 0,r=s}e.deps=t,e.depsTail=n}function Sr(e){for(let t=e.deps;t;t=t.nextDep)if(t.dep.version!==t.version||t.dep.computed&&(Ti(t.dep.computed)||t.dep.version!==t.version))return!0;return!!e._dirty}function Ti(e){if(e.flags&4&&!(e.flags&16)||(e.flags&=-17,e.globalVersion===Wt))return;e.globalVersion=Wt;const t=e.dep;if(e.flags|=2,t.version>0&&!e.isSSR&&e.deps&&!Sr(e)){e.flags&=-3;return}const n=Z,r=Le;Z=e,Le=!0;try{Ei(e);const s=e.fn(e._value);(t.version===0||tt(s,e._value))&&(e._value=s,t.version++)}catch(s){throw t.version++,s}finally{Z=n,Le=r,xi(e),e.flags&=-3}}function Wr(e){const{dep:t,prevSub:n,nextSub:r}=e;if(n&&(n.nextSub=r,e.prevSub=void 0),r&&(r.prevSub=n,e.nextSub=void 0),t.subs===e&&(t.subs=n),!t.subs&&t.computed){t.computed.flags&=-5;for(let s=t.computed.deps;s;s=s.nextDep)Wr(s)}}function ul(e){const{prevDep:t,nextDep:n}=e;t&&(t.nextDep=n,e.prevDep=void 0),n&&(n.prevDep=t,e.nextDep=void 0)}let Le=!0;const Ci=[];function it(){Ci.push(Le),Le=!1}function ot(){const e=Ci.pop();Le=e===void 0?!0:e}function ps(e){const{cleanup:t}=e;if(e.cleanup=void 0,t){const n=Z;Z=void 0;try{t()}finally{Z=n}}}let Wt=0;class dl{constructor(t,n){this.sub=t,this.dep=n,this.version=n.version,this.nextDep=this.prevDep=this.nextSub=this.prevSub=this.prevActiveLink=void 0}}class Dn{constructor(t){this.computed=t,this.version=0,this.activeLink=void 0,this.subs=void 0}track(t){if(!Z||!Le||Z===this.computed)return;let n=this.activeLink;if(n===void 0||n.sub!==Z)n=this.activeLink=new dl(Z,this),Z.deps?(n.prevDep=Z.depsTail,Z.depsTail.nextDep=n,Z.depsTail=n):Z.deps=Z.depsTail=n,Z.flags&4&&Ai(n);else if(n.version===-1&&(n.version=this.version,n.nextDep)){const r=n.nextDep;r.prevDep=n.prevDep,n.prevDep&&(n.prevDep.nextDep=r),n.prevDep=Z.depsTail,n.nextDep=void 0,Z.depsTail.nextDep=n,Z.depsTail=n,Z.deps===n&&(Z.deps=r)}return n}trigger(t){this.version++,Wt++,this.notify(t)}notify(t){Br();try{for(let n=this.subs;n;n=n.prevSub)n.sub.notify()&&n.sub.dep.notify()}finally{kr()}}}function Ai(e){const t=e.dep.computed;if(t&&!e.dep.subs){t.flags|=20;for(let r=t.deps;r;r=r.nextDep)Ai(r)}const n=e.dep.subs;n!==e&&(e.prevSub=n,n&&(n.nextSub=e)),e.dep.subs=e}const An=new WeakMap,ht=Symbol(""),Er=Symbol(""),Kt=Symbol("");function ve(e,t,n){if(Le&&Z){let r=An.get(e);r||An.set(e,r=new Map);let s=r.get(n);s||r.set(n,s=new Dn),s.track()}}function Ge(e,t,n,r,s,i){const o=An.get(e);if(!o){Wt++;return}const l=c=>{c&&c.trigger()};if(Br(),t==="clear")o.forEach(l);else{const c=K(e),f=c&&jr(n);if(c&&n==="length"){const a=Number(r);o.forEach((h,g)=>{(g==="length"||g===Kt||!rt(g)&&g>=a)&&l(h)})}else switch(n!==void 0&&l(o.get(n)),f&&l(o.get(Kt)),t){case"add":c?f&&l(o.get("length")):(l(o.get(ht)),Ct(e)&&l(o.get(Er)));break;case"delete":c||(l(o.get(ht)),Ct(e)&&l(o.get(Er)));break;case"set":Ct(e)&&l(o.get(ht));break}}kr()}function hl(e,t){var n;return(n=An.get(e))==null?void 0:n.get(t)}function _t(e){const t=z(e);return t===e?t:(ve(t,"iterate",Kt),Pe(e)?t:t.map(me))}function jn(e){return ve(e=z(e),"iterate",Kt),e}const pl={__proto__:null,[Symbol.iterator](){return tr(this,Symbol.iterator,me)},concat(...e){return _t(this).concat(...e.map(t=>K(t)?_t(t):t))},entries(){return tr(this,"entries",e=>(e[1]=me(e[1]),e))},every(e,t){return We(this,"every",e,t,void 0,arguments)},filter(e,t){return We(this,"filter",e,t,n=>n.map(me),arguments)},find(e,t){return We(this,"find",e,t,me,arguments)},findIndex(e,t){return We(this,"findIndex",e,t,void 0,arguments)},findLast(e,t){return We(this,"findLast",e,t,me,arguments)},findLastIndex(e,t){return We(this,"findLastIndex",e,t,void 0,arguments)},forEach(e,t){return We(this,"forEach",e,t,void 0,arguments)},includes(...e){return nr(this,"includes",e)},indexOf(...e){return nr(this,"indexOf",e)},join(e){return _t(this).join(e)},lastIndexOf(...e){return nr(this,"lastIndexOf",e)},map(e,t){return We(this,"map",e,t,void 0,arguments)},pop(){return Ft(this,"pop")},push(...e){return Ft(this,"push",e)},reduce(e,...t){return gs(this,"reduce",e,t)},reduceRight(e,...t){return gs(this,"reduceRight",e,t)},shift(){return Ft(this,"shift")},some(e,t){return We(this,"some",e,t,void 0,arguments)},splice(...e){return Ft(this,"splice",e)},toReversed(){return _t(this).toReversed()},toSorted(e){return _t(this).toSorted(e)},toSpliced(...e){return _t(this).toSpliced(...e)},unshift(...e){return Ft(this,"unshift",e)},values(){return tr(this,"values",me)}};function tr(e,t,n){const r=jn(e),s=r[t]();return r!==e&&!Pe(e)&&(s._next=s.next,s.next=()=>{const i=s._next();return i.value&&(i.value=n(i.value)),i}),s}const gl=Array.prototype;function We(e,t,n,r,s,i){const o=jn(e),l=o!==e&&!Pe(e),c=o[t];if(c!==gl[t]){const h=c.apply(e,i);return l?me(h):h}let f=n;o!==e&&(l?f=function(h,g){return n.call(this,me(h),g,e)}:n.length>2&&(f=function(h,g){return n.call(this,h,g,e)}));const a=c.call(o,f,r);return l&&s?s(a):a}function gs(e,t,n,r){const s=jn(e);let i=n;return s!==e&&(Pe(e)?n.length>3&&(i=function(o,l,c){return n.call(this,o,l,c,e)}):i=function(o,l,c){return n.call(this,o,me(l),c,e)}),s[t](i,...r)}function nr(e,t,n){const r=z(e);ve(r,"iterate",Kt);const s=r[t](...n);return(s===-1||s===!1)&&Yr(n[0])?(n[0]=z(n[0]),r[t](...n)):s}function Ft(e,t,n=[]){it(),Br();const r=z(e)[t].apply(e,n);return kr(),ot(),r}const ml=Hr("__proto__,__v_isRef,__isVue"),Ri=new Set(Object.getOwnPropertyNames(Symbol).filter(e=>e!=="arguments"&&e!=="caller").map(e=>Symbol[e]).filter(rt));function yl(e){rt(e)||(e=String(e));const t=z(this);return ve(t,"has",e),t.hasOwnProperty(e)}class Oi{constructor(t=!1,n=!1){this._isReadonly=t,this._isShallow=n}get(t,n,r){const s=this._isReadonly,i=this._isShallow;if(n==="__v_isReactive")return!s;if(n==="__v_isReadonly")return s;if(n==="__v_isShallow")return i;if(n==="__v_raw")return r===(s?i?Ml:Li:i?Ii:Pi).get(t)||Object.getPrototypeOf(t)===Object.getPrototypeOf(r)?t:void 0;const o=K(t);if(!s){let c;if(o&&(c=pl[n]))return c;if(n==="hasOwnProperty")return yl}const l=Reflect.get(t,n,ae(t)?t:r);return(rt(n)?Ri.has(n):ml(n))||(s||ve(t,"get",n),i)?l:ae(l)?o&&jr(n)?l:l.value:ne(l)?s?Bn(l):Un(l):l}}class Mi extends Oi{constructor(t=!1){super(!1,t)}set(t,n,r,s){let i=t[n];if(!this._isShallow){const c=vt(i);if(!Pe(r)&&!vt(r)&&(i=z(i),r=z(r)),!K(t)&&ae(i)&&!ae(r))return c?!1:(i.value=r,!0)}const o=K(t)&&jr(n)?Number(n)e,Vn=e=>Reflect.getPrototypeOf(e);function ln(e,t,n=!1,r=!1){e=e.__v_raw;const s=z(e),i=z(t);n||(tt(t,i)&&ve(s,"get",t),ve(s,"get",i));const{has:o}=Vn(s),l=r?Kr:n?Xr:me;if(o.call(s,t))return l(e.get(t));if(o.call(s,i))return l(e.get(i));e!==s&&e.get(t)}function cn(e,t=!1){const n=this.__v_raw,r=z(n),s=z(e);return t||(tt(e,s)&&ve(r,"has",e),ve(r,"has",s)),e===s?n.has(e):n.has(e)||n.has(s)}function an(e,t=!1){return e=e.__v_raw,!t&&ve(z(e),"iterate",ht),Reflect.get(e,"size",e)}function ms(e,t=!1){!t&&!Pe(e)&&!vt(e)&&(e=z(e));const n=z(this);return Vn(n).has.call(n,e)||(n.add(e),Ge(n,"add",e,e)),this}function ys(e,t,n=!1){!n&&!Pe(t)&&!vt(t)&&(t=z(t));const r=z(this),{has:s,get:i}=Vn(r);let o=s.call(r,e);o||(e=z(e),o=s.call(r,e));const l=i.call(r,e);return r.set(e,t),o?tt(t,l)&&Ge(r,"set",e,t):Ge(r,"add",e,t),this}function vs(e){const t=z(this),{has:n,get:r}=Vn(t);let s=n.call(t,e);s||(e=z(e),s=n.call(t,e)),r&&r.call(t,e);const i=t.delete(e);return s&&Ge(t,"delete",e,void 0),i}function bs(){const e=z(this),t=e.size!==0,n=e.clear();return t&&Ge(e,"clear",void 0,void 0),n}function fn(e,t){return function(r,s){const i=this,o=i.__v_raw,l=z(o),c=t?Kr:e?Xr:me;return!e&&ve(l,"iterate",ht),o.forEach((f,a)=>r.call(s,c(f),c(a),i))}}function un(e,t,n){return function(...r){const s=this.__v_raw,i=z(s),o=Ct(i),l=e==="entries"||e===Symbol.iterator&&o,c=e==="keys"&&o,f=s[e](...r),a=n?Kr:t?Xr:me;return!t&&ve(i,"iterate",c?Er:ht),{next(){const{value:h,done:g}=f.next();return g?{value:h,done:g}:{value:l?[a(h[0]),a(h[1])]:a(h),done:g}},[Symbol.iterator](){return this}}}}function Xe(e){return function(...t){return e==="delete"?!1:e==="clear"?void 0:this}}function Sl(){const e={get(i){return ln(this,i)},get size(){return an(this)},has:cn,add:ms,set:ys,delete:vs,clear:bs,forEach:fn(!1,!1)},t={get(i){return ln(this,i,!1,!0)},get size(){return an(this)},has:cn,add(i){return ms.call(this,i,!0)},set(i,o){return ys.call(this,i,o,!0)},delete:vs,clear:bs,forEach:fn(!1,!0)},n={get(i){return ln(this,i,!0)},get size(){return an(this,!0)},has(i){return cn.call(this,i,!0)},add:Xe("add"),set:Xe("set"),delete:Xe("delete"),clear:Xe("clear"),forEach:fn(!0,!1)},r={get(i){return ln(this,i,!0,!0)},get size(){return an(this,!0)},has(i){return cn.call(this,i,!0)},add:Xe("add"),set:Xe("set"),delete:Xe("delete"),clear:Xe("clear"),forEach:fn(!0,!0)};return["keys","values","entries",Symbol.iterator].forEach(i=>{e[i]=un(i,!1,!1),n[i]=un(i,!0,!1),t[i]=un(i,!1,!0),r[i]=un(i,!0,!0)}),[e,n,t,r]}const[El,xl,Tl,Cl]=Sl();function qr(e,t){const n=t?e?Cl:Tl:e?xl:El;return(r,s,i)=>s==="__v_isReactive"?!e:s==="__v_isReadonly"?e:s==="__v_raw"?r:Reflect.get(J(n,s)&&s in r?n:r,s,i)}const Al={get:qr(!1,!1)},Rl={get:qr(!1,!0)},Ol={get:qr(!0,!1)};const Pi=new WeakMap,Ii=new WeakMap,Li=new WeakMap,Ml=new WeakMap;function Pl(e){switch(e){case"Object":case"Array":return 1;case"Map":case"Set":case"WeakMap":case"WeakSet":return 2;default:return 0}}function Il(e){return e.__v_skip||!Object.isExtensible(e)?0:Pl(Qo(e))}function Un(e){return vt(e)?e:Gr(e,!1,bl,Al,Pi)}function Ll(e){return Gr(e,!1,wl,Rl,Ii)}function Bn(e){return Gr(e,!0,_l,Ol,Li)}function Gr(e,t,n,r,s){if(!ne(e)||e.__v_raw&&!(t&&e.__v_isReactive))return e;const i=s.get(e);if(i)return i;const o=Il(e);if(o===0)return e;const l=new Proxy(e,o===2?r:n);return s.set(e,l),l}function pt(e){return vt(e)?pt(e.__v_raw):!!(e&&e.__v_isReactive)}function vt(e){return!!(e&&e.__v_isReadonly)}function Pe(e){return!!(e&&e.__v_isShallow)}function Yr(e){return e?!!e.__v_raw:!1}function z(e){const t=e&&e.__v_raw;return t?z(t):e}function Sn(e){return!J(e,"__v_skip")&&Object.isExtensible(e)&&pi(e,"__v_skip",!0),e}const me=e=>ne(e)?Un(e):e,Xr=e=>ne(e)?Bn(e):e;function ae(e){return e?e.__v_isRef===!0:!1}function oe(e){return Ni(e,!1)}function zr(e){return Ni(e,!0)}function Ni(e,t){return ae(e)?e:new Nl(e,t)}class Nl{constructor(t,n){this.dep=new Dn,this.__v_isRef=!0,this.__v_isShallow=!1,this._rawValue=n?t:z(t),this._value=n?t:me(t),this.__v_isShallow=n}get value(){return this.dep.track(),this._value}set value(t){const n=this._rawValue,r=this.__v_isShallow||Pe(t)||vt(t);t=r?t:z(t),tt(t,n)&&(this._rawValue=t,this._value=r?t:me(t),this.dep.trigger())}}function Fi(e){return ae(e)?e.value:e}const Fl={get:(e,t,n)=>t==="__v_raw"?e:Fi(Reflect.get(e,t,n)),set:(e,t,n,r)=>{const s=e[t];return ae(s)&&!ae(n)?(s.value=n,!0):Reflect.set(e,t,n,r)}};function Hi(e){return pt(e)?e:new Proxy(e,Fl)}class Hl{constructor(t){this.__v_isRef=!0,this._value=void 0;const n=this.dep=new Dn,{get:r,set:s}=t(n.track.bind(n),n.trigger.bind(n));this._get=r,this._set=s}get value(){return this._value=this._get()}set value(t){this._set(t)}}function $l(e){return new Hl(e)}class Dl{constructor(t,n,r){this._object=t,this._key=n,this._defaultValue=r,this.__v_isRef=!0,this._value=void 0}get value(){const t=this._object[this._key];return this._value=t===void 0?this._defaultValue:t}set value(t){this._object[this._key]=t}get dep(){return hl(z(this._object),this._key)}}class jl{constructor(t){this._getter=t,this.__v_isRef=!0,this.__v_isReadonly=!0,this._value=void 0}get value(){return this._value=this._getter()}}function Vl(e,t,n){return ae(e)?e:q(e)?new jl(e):ne(e)&&arguments.length>1?Ul(e,t,n):oe(e)}function Ul(e,t,n){const r=e[t];return ae(r)?r:new Dl(e,t,n)}class Bl{constructor(t,n,r){this.fn=t,this.setter=n,this._value=void 0,this.dep=new Dn(this),this.__v_isRef=!0,this.deps=void 0,this.depsTail=void 0,this.flags=16,this.globalVersion=Wt-1,this.effect=this,this.__v_isReadonly=!n,this.isSSR=r}notify(){if(this.flags|=16,!(this.flags&8)&&Z!==this)return Si(this),!0}get value(){const t=this.dep.track();return Ti(this),t&&(t.version=this.dep.version),this._value}set value(t){this.setter&&this.setter(t)}}function kl(e,t,n=!1){let r,s;return q(e)?r=e:(r=e.get,s=e.set),new Bl(r,s,n)}const dn={},Rn=new WeakMap;let ut;function Wl(e,t=!1,n=ut){if(n){let r=Rn.get(n);r||Rn.set(n,r=[]),r.push(e)}}function Kl(e,t,n=ee){const{immediate:r,deep:s,once:i,scheduler:o,augmentJob:l,call:c}=n,f=m=>s?m:Pe(m)||s===!1||s===0?qe(m,1):qe(m);let a,h,g,v,_=!1,S=!1;if(ae(e)?(h=()=>e.value,_=Pe(e)):pt(e)?(h=()=>f(e),_=!0):K(e)?(S=!0,_=e.some(m=>pt(m)||Pe(m)),h=()=>e.map(m=>{if(ae(m))return m.value;if(pt(m))return f(m);if(q(m))return c?c(m,2):m()})):q(e)?t?h=c?()=>c(e,2):e:h=()=>{if(g){it();try{g()}finally{ot()}}const m=ut;ut=a;try{return c?c(e,3,[v]):e(v)}finally{ut=m}}:h=Ue,t&&s){const m=h,M=s===!0?1/0:s;h=()=>qe(m(),M)}const U=bi(),N=()=>{a.stop(),U&&Dr(U.effects,a)};if(i&&t){const m=t;t=(...M)=>{m(...M),N()}}let B=S?new Array(e.length).fill(dn):dn;const p=m=>{if(!(!(a.flags&1)||!a.dirty&&!m))if(t){const M=a.run();if(s||_||(S?M.some((F,$)=>tt(F,B[$])):tt(M,B))){g&&g();const F=ut;ut=a;try{const $=[M,B===dn?void 0:S&&B[0]===dn?[]:B,v];c?c(t,3,$):t(...$),B=M}finally{ut=F}}}else a.run()};return l&&l(p),a=new _i(h),a.scheduler=o?()=>o(p,!1):p,v=m=>Wl(m,!1,a),g=a.onStop=()=>{const m=Rn.get(a);if(m){if(c)c(m,4);else for(const M of m)M();Rn.delete(a)}},t?r?p(!0):B=a.run():o?o(p.bind(null,!0),!0):a.run(),N.pause=a.pause.bind(a),N.resume=a.resume.bind(a),N.stop=N,N}function qe(e,t=1/0,n){if(t<=0||!ne(e)||e.__v_skip||(n=n||new Set,n.has(e)))return e;if(n.add(e),t--,ae(e))qe(e.value,t,n);else if(K(e))for(let r=0;r{qe(r,t,n)});else if(hi(e)){for(const r in e)qe(e[r],t,n);for(const r of Object.getOwnPropertySymbols(e))Object.prototype.propertyIsEnumerable.call(e,r)&&qe(e[r],t,n)}return e}/** +**/let _e;class al{constructor(t=!1){this.detached=t,this._active=!0,this.effects=[],this.cleanups=[],this._isPaused=!1,this.parent=_e,!t&&_e&&(this.index=(_e.scopes||(_e.scopes=[])).push(this)-1)}get active(){return this._active}pause(){if(this._active){this._isPaused=!0;let t,n;if(this.scopes)for(t=0,n=this.scopes.length;t0)return;let e;for(;Dt;){let t=Dt;for(Dt=void 0;t;){const n=t.next;if(t.next=void 0,t.flags&=-9,t.flags&1)try{t.trigger()}catch(r){e||(e=r)}t=n}}if(e)throw e}function xi(e){for(let t=e.deps;t;t=t.nextDep)t.version=-1,t.prevActiveLink=t.dep.activeLink,t.dep.activeLink=t}function Ti(e){let t,n=e.depsTail,r=n;for(;r;){const s=r.prevDep;r.version===-1?(r===n&&(n=s),Wr(r),ul(r)):t=r,r.dep.activeLink=r.prevActiveLink,r.prevActiveLink=void 0,r=s}e.deps=t,e.depsTail=n}function Sr(e){for(let t=e.deps;t;t=t.nextDep)if(t.dep.version!==t.version||t.dep.computed&&(Ci(t.dep.computed)||t.dep.version!==t.version))return!0;return!!e._dirty}function Ci(e){if(e.flags&4&&!(e.flags&16)||(e.flags&=-17,e.globalVersion===Wt))return;e.globalVersion=Wt;const t=e.dep;if(e.flags|=2,t.version>0&&!e.isSSR&&e.deps&&!Sr(e)){e.flags&=-3;return}const n=Z,r=Le;Z=e,Le=!0;try{xi(e);const s=e.fn(e._value);(t.version===0||tt(s,e._value))&&(e._value=s,t.version++)}catch(s){throw t.version++,s}finally{Z=n,Le=r,Ti(e),e.flags&=-3}}function Wr(e){const{dep:t,prevSub:n,nextSub:r}=e;if(n&&(n.nextSub=r,e.prevSub=void 0),r&&(r.prevSub=n,e.nextSub=void 0),t.subs===e&&(t.subs=n),!t.subs&&t.computed){t.computed.flags&=-5;for(let s=t.computed.deps;s;s=s.nextDep)Wr(s)}}function ul(e){const{prevDep:t,nextDep:n}=e;t&&(t.nextDep=n,e.prevDep=void 0),n&&(n.prevDep=t,e.nextDep=void 0)}let Le=!0;const Ai=[];function it(){Ai.push(Le),Le=!1}function ot(){const e=Ai.pop();Le=e===void 0?!0:e}function gs(e){const{cleanup:t}=e;if(e.cleanup=void 0,t){const n=Z;Z=void 0;try{t()}finally{Z=n}}}let Wt=0;class dl{constructor(t,n){this.sub=t,this.dep=n,this.version=n.version,this.nextDep=this.prevDep=this.nextSub=this.prevSub=this.prevActiveLink=void 0}}class Dn{constructor(t){this.computed=t,this.version=0,this.activeLink=void 0,this.subs=void 0}track(t){if(!Z||!Le||Z===this.computed)return;let n=this.activeLink;if(n===void 0||n.sub!==Z)n=this.activeLink=new dl(Z,this),Z.deps?(n.prevDep=Z.depsTail,Z.depsTail.nextDep=n,Z.depsTail=n):Z.deps=Z.depsTail=n,Z.flags&4&&Ri(n);else if(n.version===-1&&(n.version=this.version,n.nextDep)){const r=n.nextDep;r.prevDep=n.prevDep,n.prevDep&&(n.prevDep.nextDep=r),n.prevDep=Z.depsTail,n.nextDep=void 0,Z.depsTail.nextDep=n,Z.depsTail=n,Z.deps===n&&(Z.deps=r)}return n}trigger(t){this.version++,Wt++,this.notify(t)}notify(t){Br();try{for(let n=this.subs;n;n=n.prevSub)n.sub.notify()&&n.sub.dep.notify()}finally{kr()}}}function Ri(e){const t=e.dep.computed;if(t&&!e.dep.subs){t.flags|=20;for(let r=t.deps;r;r=r.nextDep)Ri(r)}const n=e.dep.subs;n!==e&&(e.prevSub=n,n&&(n.nextSub=e)),e.dep.subs=e}const An=new WeakMap,ht=Symbol(""),Er=Symbol(""),Kt=Symbol("");function ve(e,t,n){if(Le&&Z){let r=An.get(e);r||An.set(e,r=new Map);let s=r.get(n);s||r.set(n,s=new Dn),s.track()}}function Ge(e,t,n,r,s,i){const o=An.get(e);if(!o){Wt++;return}const l=c=>{c&&c.trigger()};if(Br(),t==="clear")o.forEach(l);else{const c=K(e),f=c&&jr(n);if(c&&n==="length"){const a=Number(r);o.forEach((h,g)=>{(g==="length"||g===Kt||!rt(g)&&g>=a)&&l(h)})}else switch(n!==void 0&&l(o.get(n)),f&&l(o.get(Kt)),t){case"add":c?f&&l(o.get("length")):(l(o.get(ht)),Ct(e)&&l(o.get(Er)));break;case"delete":c||(l(o.get(ht)),Ct(e)&&l(o.get(Er)));break;case"set":Ct(e)&&l(o.get(ht));break}}kr()}function hl(e,t){var n;return(n=An.get(e))==null?void 0:n.get(t)}function _t(e){const t=z(e);return t===e?t:(ve(t,"iterate",Kt),Pe(e)?t:t.map(me))}function jn(e){return ve(e=z(e),"iterate",Kt),e}const pl={__proto__:null,[Symbol.iterator](){return tr(this,Symbol.iterator,me)},concat(...e){return _t(this).concat(...e.map(t=>K(t)?_t(t):t))},entries(){return tr(this,"entries",e=>(e[1]=me(e[1]),e))},every(e,t){return We(this,"every",e,t,void 0,arguments)},filter(e,t){return We(this,"filter",e,t,n=>n.map(me),arguments)},find(e,t){return We(this,"find",e,t,me,arguments)},findIndex(e,t){return We(this,"findIndex",e,t,void 0,arguments)},findLast(e,t){return We(this,"findLast",e,t,me,arguments)},findLastIndex(e,t){return We(this,"findLastIndex",e,t,void 0,arguments)},forEach(e,t){return We(this,"forEach",e,t,void 0,arguments)},includes(...e){return nr(this,"includes",e)},indexOf(...e){return nr(this,"indexOf",e)},join(e){return _t(this).join(e)},lastIndexOf(...e){return nr(this,"lastIndexOf",e)},map(e,t){return We(this,"map",e,t,void 0,arguments)},pop(){return Ft(this,"pop")},push(...e){return Ft(this,"push",e)},reduce(e,...t){return ms(this,"reduce",e,t)},reduceRight(e,...t){return ms(this,"reduceRight",e,t)},shift(){return Ft(this,"shift")},some(e,t){return We(this,"some",e,t,void 0,arguments)},splice(...e){return Ft(this,"splice",e)},toReversed(){return _t(this).toReversed()},toSorted(e){return _t(this).toSorted(e)},toSpliced(...e){return _t(this).toSpliced(...e)},unshift(...e){return Ft(this,"unshift",e)},values(){return tr(this,"values",me)}};function tr(e,t,n){const r=jn(e),s=r[t]();return r!==e&&!Pe(e)&&(s._next=s.next,s.next=()=>{const i=s._next();return i.value&&(i.value=n(i.value)),i}),s}const gl=Array.prototype;function We(e,t,n,r,s,i){const o=jn(e),l=o!==e&&!Pe(e),c=o[t];if(c!==gl[t]){const h=c.apply(e,i);return l?me(h):h}let f=n;o!==e&&(l?f=function(h,g){return n.call(this,me(h),g,e)}:n.length>2&&(f=function(h,g){return n.call(this,h,g,e)}));const a=c.call(o,f,r);return l&&s?s(a):a}function ms(e,t,n,r){const s=jn(e);let i=n;return s!==e&&(Pe(e)?n.length>3&&(i=function(o,l,c){return n.call(this,o,l,c,e)}):i=function(o,l,c){return n.call(this,o,me(l),c,e)}),s[t](i,...r)}function nr(e,t,n){const r=z(e);ve(r,"iterate",Kt);const s=r[t](...n);return(s===-1||s===!1)&&Yr(n[0])?(n[0]=z(n[0]),r[t](...n)):s}function Ft(e,t,n=[]){it(),Br();const r=z(e)[t].apply(e,n);return kr(),ot(),r}const ml=Hr("__proto__,__v_isRef,__isVue"),Oi=new Set(Object.getOwnPropertyNames(Symbol).filter(e=>e!=="arguments"&&e!=="caller").map(e=>Symbol[e]).filter(rt));function yl(e){rt(e)||(e=String(e));const t=z(this);return ve(t,"has",e),t.hasOwnProperty(e)}class Mi{constructor(t=!1,n=!1){this._isReadonly=t,this._isShallow=n}get(t,n,r){const s=this._isReadonly,i=this._isShallow;if(n==="__v_isReactive")return!s;if(n==="__v_isReadonly")return s;if(n==="__v_isShallow")return i;if(n==="__v_raw")return r===(s?i?Ml:Ni:i?Li:Ii).get(t)||Object.getPrototypeOf(t)===Object.getPrototypeOf(r)?t:void 0;const o=K(t);if(!s){let c;if(o&&(c=pl[n]))return c;if(n==="hasOwnProperty")return yl}const l=Reflect.get(t,n,ae(t)?t:r);return(rt(n)?Oi.has(n):ml(n))||(s||ve(t,"get",n),i)?l:ae(l)?o&&jr(n)?l:l.value:ne(l)?s?Bn(l):Un(l):l}}class Pi extends Mi{constructor(t=!1){super(!1,t)}set(t,n,r,s){let i=t[n];if(!this._isShallow){const c=vt(i);if(!Pe(r)&&!vt(r)&&(i=z(i),r=z(r)),!K(t)&&ae(i)&&!ae(r))return c?!1:(i.value=r,!0)}const o=K(t)&&jr(n)?Number(n)e,Vn=e=>Reflect.getPrototypeOf(e);function ln(e,t,n=!1,r=!1){e=e.__v_raw;const s=z(e),i=z(t);n||(tt(t,i)&&ve(s,"get",t),ve(s,"get",i));const{has:o}=Vn(s),l=r?Kr:n?Xr:me;if(o.call(s,t))return l(e.get(t));if(o.call(s,i))return l(e.get(i));e!==s&&e.get(t)}function cn(e,t=!1){const n=this.__v_raw,r=z(n),s=z(e);return t||(tt(e,s)&&ve(r,"has",e),ve(r,"has",s)),e===s?n.has(e):n.has(e)||n.has(s)}function an(e,t=!1){return e=e.__v_raw,!t&&ve(z(e),"iterate",ht),Reflect.get(e,"size",e)}function ys(e,t=!1){!t&&!Pe(e)&&!vt(e)&&(e=z(e));const n=z(this);return Vn(n).has.call(n,e)||(n.add(e),Ge(n,"add",e,e)),this}function vs(e,t,n=!1){!n&&!Pe(t)&&!vt(t)&&(t=z(t));const r=z(this),{has:s,get:i}=Vn(r);let o=s.call(r,e);o||(e=z(e),o=s.call(r,e));const l=i.call(r,e);return r.set(e,t),o?tt(t,l)&&Ge(r,"set",e,t):Ge(r,"add",e,t),this}function bs(e){const t=z(this),{has:n,get:r}=Vn(t);let s=n.call(t,e);s||(e=z(e),s=n.call(t,e)),r&&r.call(t,e);const i=t.delete(e);return s&&Ge(t,"delete",e,void 0),i}function _s(){const e=z(this),t=e.size!==0,n=e.clear();return t&&Ge(e,"clear",void 0,void 0),n}function fn(e,t){return function(r,s){const i=this,o=i.__v_raw,l=z(o),c=t?Kr:e?Xr:me;return!e&&ve(l,"iterate",ht),o.forEach((f,a)=>r.call(s,c(f),c(a),i))}}function un(e,t,n){return function(...r){const s=this.__v_raw,i=z(s),o=Ct(i),l=e==="entries"||e===Symbol.iterator&&o,c=e==="keys"&&o,f=s[e](...r),a=n?Kr:t?Xr:me;return!t&&ve(i,"iterate",c?Er:ht),{next(){const{value:h,done:g}=f.next();return g?{value:h,done:g}:{value:l?[a(h[0]),a(h[1])]:a(h),done:g}},[Symbol.iterator](){return this}}}}function Xe(e){return function(...t){return e==="delete"?!1:e==="clear"?void 0:this}}function Sl(){const e={get(i){return ln(this,i)},get size(){return an(this)},has:cn,add:ys,set:vs,delete:bs,clear:_s,forEach:fn(!1,!1)},t={get(i){return ln(this,i,!1,!0)},get size(){return an(this)},has:cn,add(i){return ys.call(this,i,!0)},set(i,o){return vs.call(this,i,o,!0)},delete:bs,clear:_s,forEach:fn(!1,!0)},n={get(i){return ln(this,i,!0)},get size(){return an(this,!0)},has(i){return cn.call(this,i,!0)},add:Xe("add"),set:Xe("set"),delete:Xe("delete"),clear:Xe("clear"),forEach:fn(!0,!1)},r={get(i){return ln(this,i,!0,!0)},get size(){return an(this,!0)},has(i){return cn.call(this,i,!0)},add:Xe("add"),set:Xe("set"),delete:Xe("delete"),clear:Xe("clear"),forEach:fn(!0,!0)};return["keys","values","entries",Symbol.iterator].forEach(i=>{e[i]=un(i,!1,!1),n[i]=un(i,!0,!1),t[i]=un(i,!1,!0),r[i]=un(i,!0,!0)}),[e,n,t,r]}const[El,xl,Tl,Cl]=Sl();function qr(e,t){const n=t?e?Cl:Tl:e?xl:El;return(r,s,i)=>s==="__v_isReactive"?!e:s==="__v_isReadonly"?e:s==="__v_raw"?r:Reflect.get(J(n,s)&&s in r?n:r,s,i)}const Al={get:qr(!1,!1)},Rl={get:qr(!1,!0)},Ol={get:qr(!0,!1)};const Ii=new WeakMap,Li=new WeakMap,Ni=new WeakMap,Ml=new WeakMap;function Pl(e){switch(e){case"Object":case"Array":return 1;case"Map":case"Set":case"WeakMap":case"WeakSet":return 2;default:return 0}}function Il(e){return e.__v_skip||!Object.isExtensible(e)?0:Pl(Qo(e))}function Un(e){return vt(e)?e:Gr(e,!1,bl,Al,Ii)}function Ll(e){return Gr(e,!1,wl,Rl,Li)}function Bn(e){return Gr(e,!0,_l,Ol,Ni)}function Gr(e,t,n,r,s){if(!ne(e)||e.__v_raw&&!(t&&e.__v_isReactive))return e;const i=s.get(e);if(i)return i;const o=Il(e);if(o===0)return e;const l=new Proxy(e,o===2?r:n);return s.set(e,l),l}function pt(e){return vt(e)?pt(e.__v_raw):!!(e&&e.__v_isReactive)}function vt(e){return!!(e&&e.__v_isReadonly)}function Pe(e){return!!(e&&e.__v_isShallow)}function Yr(e){return e?!!e.__v_raw:!1}function z(e){const t=e&&e.__v_raw;return t?z(t):e}function Sn(e){return!J(e,"__v_skip")&&Object.isExtensible(e)&&gi(e,"__v_skip",!0),e}const me=e=>ne(e)?Un(e):e,Xr=e=>ne(e)?Bn(e):e;function ae(e){return e?e.__v_isRef===!0:!1}function oe(e){return Fi(e,!1)}function zr(e){return Fi(e,!0)}function Fi(e,t){return ae(e)?e:new Nl(e,t)}class Nl{constructor(t,n){this.dep=new Dn,this.__v_isRef=!0,this.__v_isShallow=!1,this._rawValue=n?t:z(t),this._value=n?t:me(t),this.__v_isShallow=n}get value(){return this.dep.track(),this._value}set value(t){const n=this._rawValue,r=this.__v_isShallow||Pe(t)||vt(t);t=r?t:z(t),tt(t,n)&&(this._rawValue=t,this._value=r?t:me(t),this.dep.trigger())}}function Hi(e){return ae(e)?e.value:e}const Fl={get:(e,t,n)=>t==="__v_raw"?e:Hi(Reflect.get(e,t,n)),set:(e,t,n,r)=>{const s=e[t];return ae(s)&&!ae(n)?(s.value=n,!0):Reflect.set(e,t,n,r)}};function $i(e){return pt(e)?e:new Proxy(e,Fl)}class Hl{constructor(t){this.__v_isRef=!0,this._value=void 0;const n=this.dep=new Dn,{get:r,set:s}=t(n.track.bind(n),n.trigger.bind(n));this._get=r,this._set=s}get value(){return this._value=this._get()}set value(t){this._set(t)}}function $l(e){return new Hl(e)}class Dl{constructor(t,n,r){this._object=t,this._key=n,this._defaultValue=r,this.__v_isRef=!0,this._value=void 0}get value(){const t=this._object[this._key];return this._value=t===void 0?this._defaultValue:t}set value(t){this._object[this._key]=t}get dep(){return hl(z(this._object),this._key)}}class jl{constructor(t){this._getter=t,this.__v_isRef=!0,this.__v_isReadonly=!0,this._value=void 0}get value(){return this._value=this._getter()}}function Vl(e,t,n){return ae(e)?e:q(e)?new jl(e):ne(e)&&arguments.length>1?Ul(e,t,n):oe(e)}function Ul(e,t,n){const r=e[t];return ae(r)?r:new Dl(e,t,n)}class Bl{constructor(t,n,r){this.fn=t,this.setter=n,this._value=void 0,this.dep=new Dn(this),this.__v_isRef=!0,this.deps=void 0,this.depsTail=void 0,this.flags=16,this.globalVersion=Wt-1,this.effect=this,this.__v_isReadonly=!n,this.isSSR=r}notify(){if(this.flags|=16,!(this.flags&8)&&Z!==this)return Ei(this),!0}get value(){const t=this.dep.track();return Ci(this),t&&(t.version=this.dep.version),this._value}set value(t){this.setter&&this.setter(t)}}function kl(e,t,n=!1){let r,s;return q(e)?r=e:(r=e.get,s=e.set),new Bl(r,s,n)}const dn={},Rn=new WeakMap;let ut;function Wl(e,t=!1,n=ut){if(n){let r=Rn.get(n);r||Rn.set(n,r=[]),r.push(e)}}function Kl(e,t,n=ee){const{immediate:r,deep:s,once:i,scheduler:o,augmentJob:l,call:c}=n,f=m=>s?m:Pe(m)||s===!1||s===0?qe(m,1):qe(m);let a,h,g,v,_=!1,S=!1;if(ae(e)?(h=()=>e.value,_=Pe(e)):pt(e)?(h=()=>f(e),_=!0):K(e)?(S=!0,_=e.some(m=>pt(m)||Pe(m)),h=()=>e.map(m=>{if(ae(m))return m.value;if(pt(m))return f(m);if(q(m))return c?c(m,2):m()})):q(e)?t?h=c?()=>c(e,2):e:h=()=>{if(g){it();try{g()}finally{ot()}}const m=ut;ut=a;try{return c?c(e,3,[v]):e(v)}finally{ut=m}}:h=Ue,t&&s){const m=h,M=s===!0?1/0:s;h=()=>qe(m(),M)}const U=_i(),N=()=>{a.stop(),U&&Dr(U.effects,a)};if(i&&t){const m=t;t=(...M)=>{m(...M),N()}}let B=S?new Array(e.length).fill(dn):dn;const p=m=>{if(!(!(a.flags&1)||!a.dirty&&!m))if(t){const M=a.run();if(s||_||(S?M.some((F,$)=>tt(F,B[$])):tt(M,B))){g&&g();const F=ut;ut=a;try{const $=[M,B===dn?void 0:S&&B[0]===dn?[]:B,v];c?c(t,3,$):t(...$),B=M}finally{ut=F}}}else a.run()};return l&&l(p),a=new wi(h),a.scheduler=o?()=>o(p,!1):p,v=m=>Wl(m,!1,a),g=a.onStop=()=>{const m=Rn.get(a);if(m){if(c)c(m,4);else for(const M of m)M();Rn.delete(a)}},t?r?p(!0):B=a.run():o?o(p.bind(null,!0),!0):a.run(),N.pause=a.pause.bind(a),N.resume=a.resume.bind(a),N.stop=N,N}function qe(e,t=1/0,n){if(t<=0||!ne(e)||e.__v_skip||(n=n||new Set,n.has(e)))return e;if(n.add(e),t--,ae(e))qe(e.value,t,n);else if(K(e))for(let r=0;r{qe(r,t,n)});else if(pi(e)){for(const r in e)qe(e[r],t,n);for(const r of Object.getOwnPropertySymbols(e))Object.prototype.propertyIsEnumerable.call(e,r)&&qe(e[r],t,n)}return e}/** * @vue/runtime-core v3.5.6 * (c) 2018-present Yuxi (Evan) You and Vue contributors * @license MIT -**/function Zt(e,t,n,r){try{return r?e(...r):e()}catch(s){en(s,t,n)}}function Fe(e,t,n,r){if(q(e)){const s=Zt(e,t,n,r);return s&&ui(s)&&s.catch(i=>{en(i,t,n)}),s}if(K(e)){const s=[];for(let i=0;i>>1,s=we[r],i=Gt(s);i=Gt(n)?we.push(e):we.splice(Gl(t),0,e),e.flags|=1,Di()}}function Di(){!qt&&!xr&&(xr=!0,Jr=$i.then(ji))}function Yl(e){K(e)?Rt.push(...e):Qe&&e.id===-1?Qe.splice(St+1,0,e):e.flags&1||(Rt.push(e),e.flags|=1),Di()}function _s(e,t,n=qt?je+1:0){for(;nGt(n)-Gt(r));if(Rt.length=0,Qe){Qe.push(...t);return}for(Qe=t,St=0;Ste.id==null?e.flags&2?-1:1/0:e.id;function ji(e){xr=!1,qt=!0;try{for(je=0;je{r._d&&Ns(-1);const i=Mn(t);let o;try{o=e(...s)}finally{Mn(i),r._d&&Ns(1)}return o};return r._n=!0,r._c=!0,r._d=!0,r}function If(e,t){if(de===null)return e;const n=Xn(de),r=e.dirs||(e.dirs=[]);for(let s=0;se.__isTeleport,jt=e=>e&&(e.disabled||e.disabled===""),zl=e=>e&&(e.defer||e.defer===""),ws=e=>typeof SVGElement<"u"&&e instanceof SVGElement,Ss=e=>typeof MathMLElement=="function"&&e instanceof MathMLElement,Tr=(e,t)=>{const n=e&&e.to;return se(n)?t?t(n):null:n},Jl={name:"Teleport",__isTeleport:!0,process(e,t,n,r,s,i,o,l,c,f){const{mc:a,pc:h,pbc:g,o:{insert:v,querySelector:_,createText:S,createComment:U}}=f,N=jt(t.props);let{shapeFlag:B,children:p,dynamicChildren:m}=t;if(e==null){const M=t.el=S(""),F=t.anchor=S("");v(M,n,r),v(F,n,r);const $=(R,b)=>{B&16&&(s&&s.isCE&&(s.ce._teleportTarget=R),a(p,R,b,s,i,o,l,c))},j=()=>{const R=t.target=Tr(t.props,_),b=ki(R,t,S,v);R&&(o!=="svg"&&ws(R)?o="svg":o!=="mathml"&&Ss(R)&&(o="mathml"),N||($(R,b),En(t)))};N&&($(n,F),En(t)),zl(t.props)?Ee(j,i):j()}else{t.el=e.el,t.targetStart=e.targetStart;const M=t.anchor=e.anchor,F=t.target=e.target,$=t.targetAnchor=e.targetAnchor,j=jt(e.props),R=j?n:F,b=j?M:$;if(o==="svg"||ws(F)?o="svg":(o==="mathml"||Ss(F))&&(o="mathml"),m?(g(e.dynamicChildren,m,R,s,i,o,l),rs(e,t,!0)):c||h(e,t,R,b,s,i,o,l,!1),N)j?t.props&&e.props&&t.props.to!==e.props.to&&(t.props.to=e.props.to):hn(t,n,M,f,1);else if((t.props&&t.props.to)!==(e.props&&e.props.to)){const L=t.target=Tr(t.props,_);L&&hn(t,L,null,f,0)}else j&&hn(t,F,$,f,1);En(t)}},remove(e,t,n,{um:r,o:{remove:s}},i){const{shapeFlag:o,children:l,anchor:c,targetStart:f,targetAnchor:a,target:h,props:g}=e;if(h&&(s(f),s(a)),i&&s(c),o&16){const v=i||!jt(g);for(let _=0;_{e.isMounted=!0}),zi(()=>{e.isUnmounting=!0}),e}const Re=[Function,Array],Wi={mode:String,appear:Boolean,persisted:Boolean,onBeforeEnter:Re,onEnter:Re,onAfterEnter:Re,onEnterCancelled:Re,onBeforeLeave:Re,onLeave:Re,onAfterLeave:Re,onLeaveCancelled:Re,onBeforeAppear:Re,onAppear:Re,onAfterAppear:Re,onAppearCancelled:Re},Ki=e=>{const t=e.subTree;return t.component?Ki(t.component):t},ec={name:"BaseTransition",props:Wi,setup(e,{slots:t}){const n=Yn(),r=Zl();return()=>{const s=t.default&&Yi(t.default(),!0);if(!s||!s.length)return;const i=qi(s),o=z(e),{mode:l}=o;if(r.isLeaving)return rr(i);const c=Es(i);if(!c)return rr(i);let f=Cr(c,o,r,n,g=>f=g);c.type!==ye&&Yt(c,f);const a=n.subTree,h=a&&Es(a);if(h&&h.type!==ye&&!dt(c,h)&&Ki(n).type!==ye){const g=Cr(h,o,r,n);if(Yt(h,g),l==="out-in"&&c.type!==ye)return r.isLeaving=!0,g.afterLeave=()=>{r.isLeaving=!1,n.job.flags&8||n.update(),delete g.afterLeave},rr(i);l==="in-out"&&c.type!==ye&&(g.delayLeave=(v,_,S)=>{const U=Gi(r,h);U[String(h.key)]=h,v[Ze]=()=>{_(),v[Ze]=void 0,delete f.delayedLeave},f.delayedLeave=S})}return i}}};function qi(e){let t=e[0];if(e.length>1){for(const n of e)if(n.type!==ye){t=n;break}}return t}const tc=ec;function Gi(e,t){const{leavingVNodes:n}=e;let r=n.get(t.type);return r||(r=Object.create(null),n.set(t.type,r)),r}function Cr(e,t,n,r,s){const{appear:i,mode:o,persisted:l=!1,onBeforeEnter:c,onEnter:f,onAfterEnter:a,onEnterCancelled:h,onBeforeLeave:g,onLeave:v,onAfterLeave:_,onLeaveCancelled:S,onBeforeAppear:U,onAppear:N,onAfterAppear:B,onAppearCancelled:p}=t,m=String(e.key),M=Gi(n,e),F=(R,b)=>{R&&Fe(R,r,9,b)},$=(R,b)=>{const L=b[1];F(R,b),K(R)?R.every(x=>x.length<=1)&&L():R.length<=1&&L()},j={mode:o,persisted:l,beforeEnter(R){let b=c;if(!n.isMounted)if(i)b=U||c;else return;R[Ze]&&R[Ze](!0);const L=M[m];L&&dt(e,L)&&L.el[Ze]&&L.el[Ze](),F(b,[R])},enter(R){let b=f,L=a,x=h;if(!n.isMounted)if(i)b=N||f,L=B||a,x=p||h;else return;let W=!1;const re=R[pn]=ce=>{W||(W=!0,ce?F(x,[R]):F(L,[R]),j.delayedLeave&&j.delayedLeave(),R[pn]=void 0)};b?$(b,[R,re]):re()},leave(R,b){const L=String(e.key);if(R[pn]&&R[pn](!0),n.isUnmounting)return b();F(g,[R]);let x=!1;const W=R[Ze]=re=>{x||(x=!0,b(),re?F(S,[R]):F(_,[R]),R[Ze]=void 0,M[L]===e&&delete M[L])};M[L]=e,v?$(v,[R,W]):W()},clone(R){const b=Cr(R,t,n,r,s);return s&&s(b),b}};return j}function rr(e){if(tn(e))return e=nt(e),e.children=null,e}function Es(e){if(!tn(e))return Bi(e.type)&&e.children?qi(e.children):e;const{shapeFlag:t,children:n}=e;if(n){if(t&16)return n[0];if(t&32&&q(n.default))return n.default()}}function Yt(e,t){e.shapeFlag&6&&e.component?(e.transition=t,Yt(e.component.subTree,t)):e.shapeFlag&128?(e.ssContent.transition=t.clone(e.ssContent),e.ssFallback.transition=t.clone(e.ssFallback)):e.transition=t}function Yi(e,t=!1,n){let r=[],s=0;for(let i=0;i1)for(let i=0;iPn(_,t&&(K(t)?t[S]:t),n,r,s));return}if(gt(r)&&!s)return;const i=r.shapeFlag&4?Xn(r.component):r.el,o=s?null:i,{i:l,r:c}=e,f=t&&t.r,a=l.refs===ee?l.refs={}:l.refs,h=l.setupState,g=z(h),v=h===ee?()=>!1:_=>J(g,_);if(f!=null&&f!==c&&(se(f)?(a[f]=null,v(f)&&(h[f]=null)):ae(f)&&(f.value=null)),q(c))Zt(c,l,12,[o,a]);else{const _=se(c),S=ae(c);if(_||S){const U=()=>{if(e.f){const N=_?v(c)?h[c]:a[c]:c.value;s?K(N)&&Dr(N,i):K(N)?N.includes(i)||N.push(i):_?(a[c]=[i],v(c)&&(h[c]=a[c])):(c.value=[i],e.k&&(a[e.k]=c.value))}else _?(a[c]=o,v(c)&&(h[c]=o)):S&&(c.value=o,e.k&&(a[e.k]=o))};o?(U.id=-1,Ee(U,n)):U()}}}let xs=!1;const wt=()=>{xs||(console.error("Hydration completed but contains mismatches."),xs=!0)},nc=e=>e.namespaceURI.includes("svg")&&e.tagName!=="foreignObject",rc=e=>e.namespaceURI.includes("MathML"),gn=e=>{if(e.nodeType===1){if(nc(e))return"svg";if(rc(e))return"mathml"}},xt=e=>e.nodeType===8;function sc(e){const{mt:t,p:n,o:{patchProp:r,createText:s,nextSibling:i,parentNode:o,remove:l,insert:c,createComment:f}}=e,a=(p,m)=>{if(!m.hasChildNodes()){n(null,p,m),On(),m._vnode=p;return}h(m.firstChild,p,null,null,null),On(),m._vnode=p},h=(p,m,M,F,$,j=!1)=>{j=j||!!m.dynamicChildren;const R=xt(p)&&p.data==="[",b=()=>S(p,m,M,F,$,R),{type:L,ref:x,shapeFlag:W,patchFlag:re}=m;let ce=p.nodeType;m.el=p,re===-2&&(j=!1,m.dynamicChildren=null);let V=null;switch(L){case mt:ce!==3?m.children===""?(c(m.el=s(""),o(p),p),V=p):V=b():(p.data!==m.children&&(wt(),p.data=m.children),V=i(p));break;case ye:B(p)?(V=i(p),N(m.el=p.content.firstChild,p,M)):ce!==8||R?V=b():V=i(p);break;case Ut:if(R&&(p=i(p),ce=p.nodeType),ce===1||ce===3){V=p;const Y=!m.children.length;for(let D=0;D{j=j||!!m.dynamicChildren;const{type:R,props:b,patchFlag:L,shapeFlag:x,dirs:W,transition:re}=m,ce=R==="input"||R==="option";if(ce||L!==-1){W&&Ve(m,null,M,"created");let V=!1;if(B(p)){V=po(F,re)&&M&&M.vnode.props&&M.vnode.props.appear;const D=p.content.firstChild;V&&re.beforeEnter(D),N(D,p,M),m.el=p=D}if(x&16&&!(b&&(b.innerHTML||b.textContent))){let D=v(p.firstChild,m,p,M,F,$,j);for(;D;){mn(p,1)||wt();const he=D;D=D.nextSibling,l(he)}}else if(x&8){let D=m.children;D[0]===` -`&&(p.tagName==="PRE"||p.tagName==="TEXTAREA")&&(D=D.slice(1)),p.textContent!==D&&(mn(p,0)||wt(),p.textContent=m.children)}if(b){if(ce||!j||L&48){const D=p.tagName.includes("-");for(const he in b)(ce&&(he.endsWith("value")||he==="indeterminate")||Qt(he)&&!At(he)||he[0]==="."||D)&&r(p,he,null,b[he],void 0,M)}else if(b.onClick)r(p,"onClick",null,b.onClick,void 0,M);else if(L&4&&pt(b.style))for(const D in b.style)b.style[D]}let Y;(Y=b&&b.onVnodeBeforeMount)&&Oe(Y,M,m),W&&Ve(m,null,M,"beforeMount"),((Y=b&&b.onVnodeMounted)||W||V)&&bo(()=>{Y&&Oe(Y,M,m),V&&re.enter(p),W&&Ve(m,null,M,"mounted")},F)}return p.nextSibling},v=(p,m,M,F,$,j,R)=>{R=R||!!m.dynamicChildren;const b=m.children,L=b.length;for(let x=0;x{const{slotScopeIds:R}=m;R&&($=$?$.concat(R):R);const b=o(p),L=v(i(p),m,b,M,F,$,j);return L&&xt(L)&&L.data==="]"?i(m.anchor=L):(wt(),c(m.anchor=f("]"),b,L),L)},S=(p,m,M,F,$,j)=>{if(mn(p.parentElement,1)||wt(),m.el=null,j){const L=U(p);for(;;){const x=i(p);if(x&&x!==L)l(x);else break}}const R=i(p),b=o(p);return l(p),n(null,m,b,R,M,F,gn(b),$),R},U=(p,m="[",M="]")=>{let F=0;for(;p;)if(p=i(p),p&&xt(p)&&(p.data===m&&F++,p.data===M)){if(F===0)return i(p);F--}return p},N=(p,m,M)=>{const F=m.parentNode;F&&F.replaceChild(p,m);let $=M;for(;$;)$.vnode.el===m&&($.vnode.el=$.subTree.el=p),$=$.parent},B=p=>p.nodeType===1&&p.tagName==="TEMPLATE";return[a,h]}const Ts="data-allow-mismatch",ic={0:"text",1:"children",2:"class",3:"style",4:"attribute"};function mn(e,t){if(t===0||t===1)for(;e&&!e.hasAttribute(Ts);)e=e.parentElement;const n=e&&e.getAttribute(Ts);if(n==null)return!1;if(n==="")return!0;{const r=n.split(",");return t===0&&r.includes("children")?!0:n.split(",").includes(ic[t])}}function oc(e,t){if(xt(e)&&e.data==="["){let n=1,r=e.nextSibling;for(;r;){if(r.nodeType===1)t(r);else if(xt(r))if(r.data==="]"){if(--n===0)break}else r.data==="["&&n++;r=r.nextSibling}}else t(e)}const gt=e=>!!e.type.__asyncLoader;/*! #__NO_SIDE_EFFECTS__ */function Nf(e){q(e)&&(e={loader:e});const{loader:t,loadingComponent:n,errorComponent:r,delay:s=200,hydrate:i,timeout:o,suspensible:l=!0,onError:c}=e;let f=null,a,h=0;const g=()=>(h++,f=null,v()),v=()=>{let _;return f||(_=f=t().catch(S=>{if(S=S instanceof Error?S:new Error(String(S)),c)return new Promise((U,N)=>{c(S,()=>U(g()),()=>N(S),h+1)});throw S}).then(S=>_!==f&&f?f:(S&&(S.__esModule||S[Symbol.toStringTag]==="Module")&&(S=S.default),a=S,S)))};return Zr({name:"AsyncComponentWrapper",__asyncLoader:v,__asyncHydrate(_,S,U){const N=i?()=>{const B=i(U,p=>oc(_,p));B&&(S.bum||(S.bum=[])).push(B)}:U;a?N():v().then(()=>!S.isUnmounted&&N())},get __asyncResolved(){return a},setup(){const _=ue;if(es(_),a)return()=>sr(a,_);const S=p=>{f=null,en(p,_,13,!r)};if(l&&_.suspense||rn)return v().then(p=>()=>sr(p,_)).catch(p=>(S(p),()=>r?le(r,{error:p}):null));const U=oe(!1),N=oe(),B=oe(!!s);return s&&setTimeout(()=>{B.value=!1},s),o!=null&&setTimeout(()=>{if(!U.value&&!N.value){const p=new Error(`Async component timed out after ${o}ms.`);S(p),N.value=p}},o),v().then(()=>{U.value=!0,_.parent&&tn(_.parent.vnode)&&_.parent.update()}).catch(p=>{S(p),N.value=p}),()=>{if(U.value&&a)return sr(a,_);if(N.value&&r)return le(r,{error:N.value});if(n&&!B.value)return le(n)}}})}function sr(e,t){const{ref:n,props:r,children:s,ce:i}=t.vnode,o=le(e,r,s);return o.ref=n,o.ce=i,delete t.vnode.ce,o}const tn=e=>e.type.__isKeepAlive;function lc(e,t){Xi(e,"a",t)}function cc(e,t){Xi(e,"da",t)}function Xi(e,t,n=ue){const r=e.__wdc||(e.__wdc=()=>{let s=n;for(;s;){if(s.isDeactivated)return;s=s.parent}return e()});if(Wn(t,r,n),n){let s=n.parent;for(;s&&s.parent;)tn(s.parent.vnode)&&ac(r,t,n,s),s=s.parent}}function ac(e,t,n,r){const s=Wn(t,e,r,!0);Kn(()=>{Dr(r[t],s)},n)}function Wn(e,t,n=ue,r=!1){if(n){const s=n[e]||(n[e]=[]),i=t.__weh||(t.__weh=(...o)=>{it();const l=nn(n),c=Fe(t,n,e,o);return l(),ot(),c});return r?s.unshift(i):s.push(i),i}}const Ye=e=>(t,n=ue)=>{(!rn||e==="sp")&&Wn(e,(...r)=>t(...r),n)},fc=Ye("bm"),It=Ye("m"),uc=Ye("bu"),dc=Ye("u"),zi=Ye("bum"),Kn=Ye("um"),hc=Ye("sp"),pc=Ye("rtg"),gc=Ye("rtc");function mc(e,t=ue){Wn("ec",e,t)}const Ji="components";function Ff(e,t){return Zi(Ji,e,!0,t)||e}const Qi=Symbol.for("v-ndc");function Hf(e){return se(e)?Zi(Ji,e,!1)||e:e||Qi}function Zi(e,t,n=!0,r=!1){const s=de||ue;if(s){const i=s.type;{const l=ta(i,!1);if(l&&(l===t||l===Ne(t)||l===$n(Ne(t))))return i}const o=Cs(s[e]||i[e],t)||Cs(s.appContext[e],t);return!o&&r?i:o}}function Cs(e,t){return e&&(e[t]||e[Ne(t)]||e[$n(Ne(t))])}function $f(e,t,n,r){let s;const i=n,o=K(e);if(o||se(e)){const l=o&&pt(e);let c=!1;l&&(c=!Pe(e),e=jn(e)),s=new Array(e.length);for(let f=0,a=e.length;ft(l,c,void 0,i));else{const l=Object.keys(e);s=new Array(l.length);for(let c=0,f=l.length;cLn(t)?!(t.type===ye||t.type===Se&&!eo(t.children)):!0)?e:null}function jf(e,t){const n={};for(const r in e)n[/[A-Z]/.test(r)?`on:${r}`:_n(r)]=e[r];return n}const Ar=e=>e?xo(e)?Xn(e):Ar(e.parent):null,Vt=fe(Object.create(null),{$:e=>e,$el:e=>e.vnode.el,$data:e=>e.data,$props:e=>e.props,$attrs:e=>e.attrs,$slots:e=>e.slots,$refs:e=>e.refs,$parent:e=>Ar(e.parent),$root:e=>Ar(e.root),$host:e=>e.ce,$emit:e=>e.emit,$options:e=>ts(e),$forceUpdate:e=>e.f||(e.f=()=>{Qr(e.update)}),$nextTick:e=>e.n||(e.n=kn.bind(e.proxy)),$watch:e=>Dc.bind(e)}),ir=(e,t)=>e!==ee&&!e.__isScriptSetup&&J(e,t),yc={get({_:e},t){if(t==="__v_skip")return!0;const{ctx:n,setupState:r,data:s,props:i,accessCache:o,type:l,appContext:c}=e;let f;if(t[0]!=="$"){const v=o[t];if(v!==void 0)switch(v){case 1:return r[t];case 2:return s[t];case 4:return n[t];case 3:return i[t]}else{if(ir(r,t))return o[t]=1,r[t];if(s!==ee&&J(s,t))return o[t]=2,s[t];if((f=e.propsOptions[0])&&J(f,t))return o[t]=3,i[t];if(n!==ee&&J(n,t))return o[t]=4,n[t];Rr&&(o[t]=0)}}const a=Vt[t];let h,g;if(a)return t==="$attrs"&&ve(e.attrs,"get",""),a(e);if((h=l.__cssModules)&&(h=h[t]))return h;if(n!==ee&&J(n,t))return o[t]=4,n[t];if(g=c.config.globalProperties,J(g,t))return g[t]},set({_:e},t,n){const{data:r,setupState:s,ctx:i}=e;return ir(s,t)?(s[t]=n,!0):r!==ee&&J(r,t)?(r[t]=n,!0):J(e.props,t)||t[0]==="$"&&t.slice(1)in e?!1:(i[t]=n,!0)},has({_:{data:e,setupState:t,accessCache:n,ctx:r,appContext:s,propsOptions:i}},o){let l;return!!n[o]||e!==ee&&J(e,o)||ir(t,o)||(l=i[0])&&J(l,o)||J(r,o)||J(Vt,o)||J(s.config.globalProperties,o)},defineProperty(e,t,n){return n.get!=null?e._.accessCache[t]=0:J(n,"value")&&this.set(e,t,n.value,null),Reflect.defineProperty(e,t,n)}};function Vf(){return vc().slots}function vc(){const e=Yn();return e.setupContext||(e.setupContext=Co(e))}function As(e){return K(e)?e.reduce((t,n)=>(t[n]=null,t),{}):e}let Rr=!0;function bc(e){const t=ts(e),n=e.proxy,r=e.ctx;Rr=!1,t.beforeCreate&&Rs(t.beforeCreate,e,"bc");const{data:s,computed:i,methods:o,watch:l,provide:c,inject:f,created:a,beforeMount:h,mounted:g,beforeUpdate:v,updated:_,activated:S,deactivated:U,beforeDestroy:N,beforeUnmount:B,destroyed:p,unmounted:m,render:M,renderTracked:F,renderTriggered:$,errorCaptured:j,serverPrefetch:R,expose:b,inheritAttrs:L,components:x,directives:W,filters:re}=t;if(f&&_c(f,r,null),o)for(const Y in o){const D=o[Y];q(D)&&(r[Y]=D.bind(n))}if(s){const Y=s.call(n,n);ne(Y)&&(e.data=Un(Y))}if(Rr=!0,i)for(const Y in i){const D=i[Y],he=q(D)?D.bind(n,n):q(D.get)?D.get.bind(n,n):Ue,sn=!q(D)&&q(D.set)?D.set.bind(n):Ue,lt=ie({get:he,set:sn});Object.defineProperty(r,Y,{enumerable:!0,configurable:!0,get:()=>lt.value,set:$e=>lt.value=$e})}if(l)for(const Y in l)to(l[Y],r,n,Y);if(c){const Y=q(c)?c.call(n):c;Reflect.ownKeys(Y).forEach(D=>{Cc(D,Y[D])})}a&&Rs(a,e,"c");function V(Y,D){K(D)?D.forEach(he=>Y(he.bind(n))):D&&Y(D.bind(n))}if(V(fc,h),V(It,g),V(uc,v),V(dc,_),V(lc,S),V(cc,U),V(mc,j),V(gc,F),V(pc,$),V(zi,B),V(Kn,m),V(hc,R),K(b))if(b.length){const Y=e.exposed||(e.exposed={});b.forEach(D=>{Object.defineProperty(Y,D,{get:()=>n[D],set:he=>n[D]=he})})}else e.exposed||(e.exposed={});M&&e.render===Ue&&(e.render=M),L!=null&&(e.inheritAttrs=L),x&&(e.components=x),W&&(e.directives=W),R&&es(e)}function _c(e,t,n=Ue){K(e)&&(e=Or(e));for(const r in e){const s=e[r];let i;ne(s)?"default"in s?i=Mt(s.from||r,s.default,!0):i=Mt(s.from||r):i=Mt(s),ae(i)?Object.defineProperty(t,r,{enumerable:!0,configurable:!0,get:()=>i.value,set:o=>i.value=o}):t[r]=i}}function Rs(e,t,n){Fe(K(e)?e.map(r=>r.bind(t.proxy)):e.bind(t.proxy),t,n)}function to(e,t,n,r){let s=r.includes(".")?mo(n,r):()=>n[r];if(se(e)){const i=t[e];q(i)&&Be(s,i)}else if(q(e))Be(s,e.bind(n));else if(ne(e))if(K(e))e.forEach(i=>to(i,t,n,r));else{const i=q(e.handler)?e.handler.bind(n):t[e.handler];q(i)&&Be(s,i,e)}}function ts(e){const t=e.type,{mixins:n,extends:r}=t,{mixins:s,optionsCache:i,config:{optionMergeStrategies:o}}=e.appContext,l=i.get(t);let c;return l?c=l:!s.length&&!n&&!r?c=t:(c={},s.length&&s.forEach(f=>In(c,f,o,!0)),In(c,t,o)),ne(t)&&i.set(t,c),c}function In(e,t,n,r=!1){const{mixins:s,extends:i}=t;i&&In(e,i,n,!0),s&&s.forEach(o=>In(e,o,n,!0));for(const o in t)if(!(r&&o==="expose")){const l=wc[o]||n&&n[o];e[o]=l?l(e[o],t[o]):t[o]}return e}const wc={data:Os,props:Ms,emits:Ms,methods:$t,computed:$t,beforeCreate:be,created:be,beforeMount:be,mounted:be,beforeUpdate:be,updated:be,beforeDestroy:be,beforeUnmount:be,destroyed:be,unmounted:be,activated:be,deactivated:be,errorCaptured:be,serverPrefetch:be,components:$t,directives:$t,watch:Ec,provide:Os,inject:Sc};function Os(e,t){return t?e?function(){return fe(q(e)?e.call(this,this):e,q(t)?t.call(this,this):t)}:t:e}function Sc(e,t){return $t(Or(e),Or(t))}function Or(e){if(K(e)){const t={};for(let n=0;n1)return n&&q(t)?t.call(r&&r.proxy):t}}const ro={},so=()=>Object.create(ro),io=e=>Object.getPrototypeOf(e)===ro;function Ac(e,t,n,r=!1){const s={},i=so();e.propsDefaults=Object.create(null),oo(e,t,s,i);for(const o in e.propsOptions[0])o in s||(s[o]=void 0);n?e.props=r?s:Ll(s):e.type.props?e.props=s:e.props=i,e.attrs=i}function Rc(e,t,n,r){const{props:s,attrs:i,vnode:{patchFlag:o}}=e,l=z(s),[c]=e.propsOptions;let f=!1;if((r||o>0)&&!(o&16)){if(o&8){const a=e.vnode.dynamicProps;for(let h=0;h{c=!0;const[g,v]=lo(h,t,!0);fe(o,g),v&&l.push(...v)};!n&&t.mixins.length&&t.mixins.forEach(a),e.extends&&a(e.extends),e.mixins&&e.mixins.forEach(a)}if(!i&&!c)return ne(e)&&r.set(e,Tt),Tt;if(K(i))for(let a=0;ae[0]==="_"||e==="$stable",ns=e=>K(e)?e.map(Me):[Me(e)],Mc=(e,t,n)=>{if(t._n)return t;const r=Xl((...s)=>ns(t(...s)),n);return r._c=!1,r},ao=(e,t,n)=>{const r=e._ctx;for(const s in e){if(co(s))continue;const i=e[s];if(q(i))t[s]=Mc(s,i,r);else if(i!=null){const o=ns(i);t[s]=()=>o}}},fo=(e,t)=>{const n=ns(t);e.slots.default=()=>n},uo=(e,t,n)=>{for(const r in t)(n||r!=="_")&&(e[r]=t[r])},Pc=(e,t,n)=>{const r=e.slots=so();if(e.vnode.shapeFlag&32){const s=t._;s?(uo(r,t,n),n&&pi(r,"_",s,!0)):ao(t,r)}else t&&fo(e,t)},Ic=(e,t,n)=>{const{vnode:r,slots:s}=e;let i=!0,o=ee;if(r.shapeFlag&32){const l=t._;l?n&&l===1?i=!1:uo(s,t,n):(i=!t.$stable,ao(t,s)),o=t}else t&&(fo(e,t),o={default:1});if(i)for(const l in s)!co(l)&&o[l]==null&&delete s[l]},Ee=bo;function Lc(e){return ho(e)}function Nc(e){return ho(e,sc)}function ho(e,t){const n=gi();n.__VUE__=!0;const{insert:r,remove:s,patchProp:i,createElement:o,createText:l,createComment:c,setText:f,setElementText:a,parentNode:h,nextSibling:g,setScopeId:v=Ue,insertStaticContent:_}=e,S=(u,d,y,T=null,w=null,E=null,P=void 0,O=null,A=!!d.dynamicChildren)=>{if(u===d)return;u&&!dt(u,d)&&(T=on(u),$e(u,w,E,!0),u=null),d.patchFlag===-2&&(A=!1,d.dynamicChildren=null);const{type:C,ref:k,shapeFlag:I}=d;switch(C){case mt:U(u,d,y,T);break;case ye:N(u,d,y,T);break;case Ut:u==null&&B(d,y,T,P);break;case Se:x(u,d,y,T,w,E,P,O,A);break;default:I&1?M(u,d,y,T,w,E,P,O,A):I&6?W(u,d,y,T,w,E,P,O,A):(I&64||I&128)&&C.process(u,d,y,T,w,E,P,O,A,bt)}k!=null&&w&&Pn(k,u&&u.ref,E,d||u,!d)},U=(u,d,y,T)=>{if(u==null)r(d.el=l(d.children),y,T);else{const w=d.el=u.el;d.children!==u.children&&f(w,d.children)}},N=(u,d,y,T)=>{u==null?r(d.el=c(d.children||""),y,T):d.el=u.el},B=(u,d,y,T)=>{[u.el,u.anchor]=_(u.children,d,y,T,u.el,u.anchor)},p=({el:u,anchor:d},y,T)=>{let w;for(;u&&u!==d;)w=g(u),r(u,y,T),u=w;r(d,y,T)},m=({el:u,anchor:d})=>{let y;for(;u&&u!==d;)y=g(u),s(u),u=y;s(d)},M=(u,d,y,T,w,E,P,O,A)=>{d.type==="svg"?P="svg":d.type==="math"&&(P="mathml"),u==null?F(d,y,T,w,E,P,O,A):R(u,d,w,E,P,O,A)},F=(u,d,y,T,w,E,P,O)=>{let A,C;const{props:k,shapeFlag:I,transition:H,dirs:G}=u;if(A=u.el=o(u.type,E,k&&k.is,k),I&8?a(A,u.children):I&16&&j(u.children,A,null,T,w,or(u,E),P,O),G&&Ve(u,null,T,"created"),$(A,u,u.scopeId,P,T),k){for(const te in k)te!=="value"&&!At(te)&&i(A,te,null,k[te],E,T);"value"in k&&i(A,"value",null,k.value,E),(C=k.onVnodeBeforeMount)&&Oe(C,T,u)}G&&Ve(u,null,T,"beforeMount");const X=po(w,H);X&&H.beforeEnter(A),r(A,d,y),((C=k&&k.onVnodeMounted)||X||G)&&Ee(()=>{C&&Oe(C,T,u),X&&H.enter(A),G&&Ve(u,null,T,"mounted")},w)},$=(u,d,y,T,w)=>{if(y&&v(u,y),T)for(let E=0;E{for(let C=A;C{const O=d.el=u.el;let{patchFlag:A,dynamicChildren:C,dirs:k}=d;A|=u.patchFlag&16;const I=u.props||ee,H=d.props||ee;let G;if(y&&ct(y,!1),(G=H.onVnodeBeforeUpdate)&&Oe(G,y,d,u),k&&Ve(d,u,y,"beforeUpdate"),y&&ct(y,!0),(I.innerHTML&&H.innerHTML==null||I.textContent&&H.textContent==null)&&a(O,""),C?b(u.dynamicChildren,C,O,y,T,or(d,w),E):P||D(u,d,O,null,y,T,or(d,w),E,!1),A>0){if(A&16)L(O,I,H,y,w);else if(A&2&&I.class!==H.class&&i(O,"class",null,H.class,w),A&4&&i(O,"style",I.style,H.style,w),A&8){const X=d.dynamicProps;for(let te=0;te{G&&Oe(G,y,d,u),k&&Ve(d,u,y,"updated")},T)},b=(u,d,y,T,w,E,P)=>{for(let O=0;O{if(d!==y){if(d!==ee)for(const E in d)!At(E)&&!(E in y)&&i(u,E,d[E],null,w,T);for(const E in y){if(At(E))continue;const P=y[E],O=d[E];P!==O&&E!=="value"&&i(u,E,O,P,w,T)}"value"in y&&i(u,"value",d.value,y.value,w)}},x=(u,d,y,T,w,E,P,O,A)=>{const C=d.el=u?u.el:l(""),k=d.anchor=u?u.anchor:l("");let{patchFlag:I,dynamicChildren:H,slotScopeIds:G}=d;G&&(O=O?O.concat(G):G),u==null?(r(C,y,T),r(k,y,T),j(d.children||[],y,k,w,E,P,O,A)):I>0&&I&64&&H&&u.dynamicChildren?(b(u.dynamicChildren,H,y,w,E,P,O),(d.key!=null||w&&d===w.subTree)&&rs(u,d,!0)):D(u,d,y,k,w,E,P,O,A)},W=(u,d,y,T,w,E,P,O,A)=>{d.slotScopeIds=O,u==null?d.shapeFlag&512?w.ctx.activate(d,y,T,P,A):re(d,y,T,w,E,P,A):ce(u,d,A)},re=(u,d,y,T,w,E,P)=>{const O=u.component=Jc(u,T,w);if(tn(u)&&(O.ctx.renderer=bt),Qc(O,!1,P),O.asyncDep){if(w&&w.registerDep(O,V,P),!u.el){const A=O.subTree=le(ye);N(null,A,d,y)}}else V(O,u,d,y,w,E,P)},ce=(u,d,y)=>{const T=d.component=u.component;if(kc(u,d,y))if(T.asyncDep&&!T.asyncResolved){Y(T,d,y);return}else T.next=d,T.update();else d.el=u.el,T.vnode=d},V=(u,d,y,T,w,E,P)=>{const O=()=>{if(u.isMounted){let{next:I,bu:H,u:G,parent:X,vnode:te}=u;{const Te=go(u);if(Te){I&&(I.el=te.el,Y(u,I,P)),Te.asyncDep.then(()=>{u.isUnmounted||O()});return}}let Q=I,xe;ct(u,!1),I?(I.el=te.el,Y(u,I,P)):I=te,H&&wn(H),(xe=I.props&&I.props.onVnodeBeforeUpdate)&&Oe(xe,X,I,te),ct(u,!0);const pe=lr(u),Ie=u.subTree;u.subTree=pe,S(Ie,pe,h(Ie.el),on(Ie),u,w,E),I.el=pe.el,Q===null&&Wc(u,pe.el),G&&Ee(G,w),(xe=I.props&&I.props.onVnodeUpdated)&&Ee(()=>Oe(xe,X,I,te),w)}else{let I;const{el:H,props:G}=d,{bm:X,m:te,parent:Q,root:xe,type:pe}=u,Ie=gt(d);if(ct(u,!1),X&&wn(X),!Ie&&(I=G&&G.onVnodeBeforeMount)&&Oe(I,Q,d),ct(u,!0),H&&Qn){const Te=()=>{u.subTree=lr(u),Qn(H,u.subTree,u,w,null)};Ie&&pe.__asyncHydrate?pe.__asyncHydrate(H,u,Te):Te()}else{xe.ce&&xe.ce._injectChildStyle(pe);const Te=u.subTree=lr(u);S(null,Te,y,T,u,w,E),d.el=Te.el}if(te&&Ee(te,w),!Ie&&(I=G&&G.onVnodeMounted)){const Te=d;Ee(()=>Oe(I,Q,Te),w)}(d.shapeFlag&256||Q&>(Q.vnode)&&Q.vnode.shapeFlag&256)&&u.a&&Ee(u.a,w),u.isMounted=!0,d=y=T=null}};u.scope.on();const A=u.effect=new _i(O);u.scope.off();const C=u.update=A.run.bind(A),k=u.job=A.runIfDirty.bind(A);k.i=u,k.id=u.uid,A.scheduler=()=>Qr(k),ct(u,!0),C()},Y=(u,d,y)=>{d.component=u;const T=u.vnode.props;u.vnode=d,u.next=null,Rc(u,d.props,T,y),Ic(u,d.children,y),it(),_s(u),ot()},D=(u,d,y,T,w,E,P,O,A=!1)=>{const C=u&&u.children,k=u?u.shapeFlag:0,I=d.children,{patchFlag:H,shapeFlag:G}=d;if(H>0){if(H&128){sn(C,I,y,T,w,E,P,O,A);return}else if(H&256){he(C,I,y,T,w,E,P,O,A);return}}G&8?(k&16&&Lt(C,w,E),I!==C&&a(y,I)):k&16?G&16?sn(C,I,y,T,w,E,P,O,A):Lt(C,w,E,!0):(k&8&&a(y,""),G&16&&j(I,y,T,w,E,P,O,A))},he=(u,d,y,T,w,E,P,O,A)=>{u=u||Tt,d=d||Tt;const C=u.length,k=d.length,I=Math.min(C,k);let H;for(H=0;Hk?Lt(u,w,E,!0,!1,I):j(d,y,T,w,E,P,O,A,I)},sn=(u,d,y,T,w,E,P,O,A)=>{let C=0;const k=d.length;let I=u.length-1,H=k-1;for(;C<=I&&C<=H;){const G=u[C],X=d[C]=A?et(d[C]):Me(d[C]);if(dt(G,X))S(G,X,y,null,w,E,P,O,A);else break;C++}for(;C<=I&&C<=H;){const G=u[I],X=d[H]=A?et(d[H]):Me(d[H]);if(dt(G,X))S(G,X,y,null,w,E,P,O,A);else break;I--,H--}if(C>I){if(C<=H){const G=H+1,X=GH)for(;C<=I;)$e(u[C],w,E,!0),C++;else{const G=C,X=C,te=new Map;for(C=X;C<=H;C++){const Ce=d[C]=A?et(d[C]):Me(d[C]);Ce.key!=null&&te.set(Ce.key,C)}let Q,xe=0;const pe=H-X+1;let Ie=!1,Te=0;const Nt=new Array(pe);for(C=0;C=pe){$e(Ce,w,E,!0);continue}let De;if(Ce.key!=null)De=te.get(Ce.key);else for(Q=X;Q<=H;Q++)if(Nt[Q-X]===0&&dt(Ce,d[Q])){De=Q;break}De===void 0?$e(Ce,w,E,!0):(Nt[De-X]=C+1,De>=Te?Te=De:Ie=!0,S(Ce,d[De],y,null,w,E,P,O,A),xe++)}const us=Ie?Fc(Nt):Tt;for(Q=us.length-1,C=pe-1;C>=0;C--){const Ce=X+C,De=d[Ce],ds=Ce+1{const{el:E,type:P,transition:O,children:A,shapeFlag:C}=u;if(C&6){lt(u.component.subTree,d,y,T);return}if(C&128){u.suspense.move(d,y,T);return}if(C&64){P.move(u,d,y,bt);return}if(P===Se){r(E,d,y);for(let I=0;IO.enter(E),w);else{const{leave:I,delayLeave:H,afterLeave:G}=O,X=()=>r(E,d,y),te=()=>{I(E,()=>{X(),G&&G()})};H?H(E,X,te):te()}else r(E,d,y)},$e=(u,d,y,T=!1,w=!1)=>{const{type:E,props:P,ref:O,children:A,dynamicChildren:C,shapeFlag:k,patchFlag:I,dirs:H,cacheIndex:G}=u;if(I===-2&&(w=!1),O!=null&&Pn(O,null,y,u,!0),G!=null&&(d.renderCache[G]=void 0),k&256){d.ctx.deactivate(u);return}const X=k&1&&H,te=!gt(u);let Q;if(te&&(Q=P&&P.onVnodeBeforeUnmount)&&Oe(Q,d,u),k&6)Xo(u.component,y,T);else{if(k&128){u.suspense.unmount(y,T);return}X&&Ve(u,null,d,"beforeUnmount"),k&64?u.type.remove(u,d,y,bt,T):C&&!C.hasOnce&&(E!==Se||I>0&&I&64)?Lt(C,d,y,!1,!0):(E===Se&&I&384||!w&&k&16)&&Lt(A,d,y),T&&as(u)}(te&&(Q=P&&P.onVnodeUnmounted)||X)&&Ee(()=>{Q&&Oe(Q,d,u),X&&Ve(u,null,d,"unmounted")},y)},as=u=>{const{type:d,el:y,anchor:T,transition:w}=u;if(d===Se){Yo(y,T);return}if(d===Ut){m(u);return}const E=()=>{s(y),w&&!w.persisted&&w.afterLeave&&w.afterLeave()};if(u.shapeFlag&1&&w&&!w.persisted){const{leave:P,delayLeave:O}=w,A=()=>P(y,E);O?O(u.el,E,A):A()}else E()},Yo=(u,d)=>{let y;for(;u!==d;)y=g(u),s(u),u=y;s(d)},Xo=(u,d,y)=>{const{bum:T,scope:w,job:E,subTree:P,um:O,m:A,a:C}=u;Is(A),Is(C),T&&wn(T),w.stop(),E&&(E.flags|=8,$e(P,u,d,y)),O&&Ee(O,d),Ee(()=>{u.isUnmounted=!0},d),d&&d.pendingBranch&&!d.isUnmounted&&u.asyncDep&&!u.asyncResolved&&u.suspenseId===d.pendingId&&(d.deps--,d.deps===0&&d.resolve())},Lt=(u,d,y,T=!1,w=!1,E=0)=>{for(let P=E;P{if(u.shapeFlag&6)return on(u.component.subTree);if(u.shapeFlag&128)return u.suspense.next();const d=g(u.anchor||u.el),y=d&&d[Ui];return y?g(y):d};let zn=!1;const fs=(u,d,y)=>{u==null?d._vnode&&$e(d._vnode,null,null,!0):S(d._vnode||null,u,d,null,null,null,y),d._vnode=u,zn||(zn=!0,_s(),On(),zn=!1)},bt={p:S,um:$e,m:lt,r:as,mt:re,mc:j,pc:D,pbc:b,n:on,o:e};let Jn,Qn;return t&&([Jn,Qn]=t(bt)),{render:fs,hydrate:Jn,createApp:Tc(fs,Jn)}}function or({type:e,props:t},n){return n==="svg"&&e==="foreignObject"||n==="mathml"&&e==="annotation-xml"&&t&&t.encoding&&t.encoding.includes("html")?void 0:n}function ct({effect:e,job:t},n){n?(e.flags|=32,t.flags|=4):(e.flags&=-33,t.flags&=-5)}function po(e,t){return(!e||e&&!e.pendingBranch)&&t&&!t.persisted}function rs(e,t,n=!1){const r=e.children,s=t.children;if(K(r)&&K(s))for(let i=0;i>1,e[n[l]]0&&(t[r]=n[i-1]),n[i]=r)}}for(i=n.length,o=n[i-1];i-- >0;)n[i]=o,o=t[o];return n}function go(e){const t=e.subTree.component;if(t)return t.asyncDep&&!t.asyncResolved?t:go(t)}function Is(e){if(e)for(let t=0;tMt(Hc);function ss(e,t){return qn(e,null,t)}function Uf(e,t){return qn(e,null,{flush:"post"})}function Be(e,t,n){return qn(e,t,n)}function qn(e,t,n=ee){const{immediate:r,deep:s,flush:i,once:o}=n,l=fe({},n);let c;if(rn)if(i==="sync"){const g=$c();c=g.__watcherHandles||(g.__watcherHandles=[])}else if(!t||r)l.once=!0;else{const g=()=>{};return g.stop=Ue,g.resume=Ue,g.pause=Ue,g}const f=ue;l.call=(g,v,_)=>Fe(g,f,v,_);let a=!1;i==="post"?l.scheduler=g=>{Ee(g,f&&f.suspense)}:i!=="sync"&&(a=!0,l.scheduler=(g,v)=>{v?g():Qr(g)}),l.augmentJob=g=>{t&&(g.flags|=4),a&&(g.flags|=2,f&&(g.id=f.uid,g.i=f))};const h=Kl(e,t,l);return c&&c.push(h),h}function Dc(e,t,n){const r=this.proxy,s=se(e)?e.includes(".")?mo(r,e):()=>r[e]:e.bind(r,r);let i;q(t)?i=t:(i=t.handler,n=t);const o=nn(this),l=qn(s,i.bind(r),n);return o(),l}function mo(e,t){const n=t.split(".");return()=>{let r=e;for(let s=0;st==="modelValue"||t==="model-value"?e.modelModifiers:e[`${t}Modifiers`]||e[`${Ne(t)}Modifiers`]||e[`${st(t)}Modifiers`];function Vc(e,t,...n){if(e.isUnmounted)return;const r=e.vnode.props||ee;let s=n;const i=t.startsWith("update:"),o=i&&jc(r,t.slice(7));o&&(o.trim&&(s=n.map(a=>se(a)?a.trim():a)),o.number&&(s=n.map(wr)));let l,c=r[l=_n(t)]||r[l=_n(Ne(t))];!c&&i&&(c=r[l=_n(st(t))]),c&&Fe(c,e,6,s);const f=r[l+"Once"];if(f){if(!e.emitted)e.emitted={};else if(e.emitted[l])return;e.emitted[l]=!0,Fe(f,e,6,s)}}function yo(e,t,n=!1){const r=t.emitsCache,s=r.get(e);if(s!==void 0)return s;const i=e.emits;let o={},l=!1;if(!q(e)){const c=f=>{const a=yo(f,t,!0);a&&(l=!0,fe(o,a))};!n&&t.mixins.length&&t.mixins.forEach(c),e.extends&&c(e.extends),e.mixins&&e.mixins.forEach(c)}return!i&&!l?(ne(e)&&r.set(e,null),null):(K(i)?i.forEach(c=>o[c]=null):fe(o,i),ne(e)&&r.set(e,o),o)}function Gn(e,t){return!e||!Qt(t)?!1:(t=t.slice(2).replace(/Once$/,""),J(e,t[0].toLowerCase()+t.slice(1))||J(e,st(t))||J(e,t))}function lr(e){const{type:t,vnode:n,proxy:r,withProxy:s,propsOptions:[i],slots:o,attrs:l,emit:c,render:f,renderCache:a,props:h,data:g,setupState:v,ctx:_,inheritAttrs:S}=e,U=Mn(e);let N,B;try{if(n.shapeFlag&4){const m=s||r,M=m;N=Me(f.call(M,m,a,h,v,g,_)),B=l}else{const m=t;N=Me(m.length>1?m(h,{attrs:l,slots:o,emit:c}):m(h,null)),B=t.props?l:Uc(l)}}catch(m){Bt.length=0,en(m,e,1),N=le(ye)}let p=N;if(B&&S!==!1){const m=Object.keys(B),{shapeFlag:M}=p;m.length&&M&7&&(i&&m.some($r)&&(B=Bc(B,i)),p=nt(p,B,!1,!0))}return n.dirs&&(p=nt(p,null,!1,!0),p.dirs=p.dirs?p.dirs.concat(n.dirs):n.dirs),n.transition&&Yt(p,n.transition),N=p,Mn(U),N}const Uc=e=>{let t;for(const n in e)(n==="class"||n==="style"||Qt(n))&&((t||(t={}))[n]=e[n]);return t},Bc=(e,t)=>{const n={};for(const r in e)(!$r(r)||!(r.slice(9)in t))&&(n[r]=e[r]);return n};function kc(e,t,n){const{props:r,children:s,component:i}=e,{props:o,children:l,patchFlag:c}=t,f=i.emitsOptions;if(t.dirs||t.transition)return!0;if(n&&c>=0){if(c&1024)return!0;if(c&16)return r?Ls(r,o,f):!!o;if(c&8){const a=t.dynamicProps;for(let h=0;he.__isSuspense;function bo(e,t){t&&t.pendingBranch?K(e)?t.effects.push(...e):t.effects.push(e):Yl(e)}const Se=Symbol.for("v-fgt"),mt=Symbol.for("v-txt"),ye=Symbol.for("v-cmt"),Ut=Symbol.for("v-stc"),Bt=[];let Ae=null;function Pr(e=!1){Bt.push(Ae=e?null:[])}function Kc(){Bt.pop(),Ae=Bt[Bt.length-1]||null}let Xt=1;function Ns(e){Xt+=e,e<0&&Ae&&(Ae.hasOnce=!0)}function _o(e){return e.dynamicChildren=Xt>0?Ae||Tt:null,Kc(),Xt>0&&Ae&&Ae.push(e),e}function Bf(e,t,n,r,s,i){return _o(So(e,t,n,r,s,i,!0))}function Ir(e,t,n,r,s){return _o(le(e,t,n,r,s,!0))}function Ln(e){return e?e.__v_isVNode===!0:!1}function dt(e,t){return e.type===t.type&&e.key===t.key}const wo=({key:e})=>e??null,xn=({ref:e,ref_key:t,ref_for:n})=>(typeof e=="number"&&(e=""+e),e!=null?se(e)||ae(e)||q(e)?{i:de,r:e,k:t,f:!!n}:e:null);function So(e,t=null,n=null,r=0,s=null,i=e===Se?0:1,o=!1,l=!1){const c={__v_isVNode:!0,__v_skip:!0,type:e,props:t,key:t&&wo(t),ref:t&&xn(t),scopeId:Vi,slotScopeIds:null,children:n,component:null,suspense:null,ssContent:null,ssFallback:null,dirs:null,transition:null,el:null,anchor:null,target:null,targetStart:null,targetAnchor:null,staticCount:0,shapeFlag:i,patchFlag:r,dynamicProps:s,dynamicChildren:null,appContext:null,ctx:de};return l?(is(c,n),i&128&&e.normalize(c)):n&&(c.shapeFlag|=se(n)?8:16),Xt>0&&!o&&Ae&&(c.patchFlag>0||i&6)&&c.patchFlag!==32&&Ae.push(c),c}const le=qc;function qc(e,t=null,n=null,r=0,s=null,i=!1){if((!e||e===Qi)&&(e=ye),Ln(e)){const l=nt(e,t,!0);return n&&is(l,n),Xt>0&&!i&&Ae&&(l.shapeFlag&6?Ae[Ae.indexOf(e)]=l:Ae.push(l)),l.patchFlag=-2,l}if(na(e)&&(e=e.__vccOpts),t){t=Gc(t);let{class:l,style:c}=t;l&&!se(l)&&(t.class=Ur(l)),ne(c)&&(Yr(c)&&!K(c)&&(c=fe({},c)),t.style=Vr(c))}const o=se(e)?1:vo(e)?128:Bi(e)?64:ne(e)?4:q(e)?2:0;return So(e,t,n,r,s,o,i,!0)}function Gc(e){return e?Yr(e)||io(e)?fe({},e):e:null}function nt(e,t,n=!1,r=!1){const{props:s,ref:i,patchFlag:o,children:l,transition:c}=e,f=t?Yc(s||{},t):s,a={__v_isVNode:!0,__v_skip:!0,type:e.type,props:f,key:f&&wo(f),ref:t&&t.ref?n&&i?K(i)?i.concat(xn(t)):[i,xn(t)]:xn(t):i,scopeId:e.scopeId,slotScopeIds:e.slotScopeIds,children:l,target:e.target,targetStart:e.targetStart,targetAnchor:e.targetAnchor,staticCount:e.staticCount,shapeFlag:e.shapeFlag,patchFlag:t&&e.type!==Se?o===-1?16:o|16:o,dynamicProps:e.dynamicProps,dynamicChildren:e.dynamicChildren,appContext:e.appContext,dirs:e.dirs,transition:c,component:e.component,suspense:e.suspense,ssContent:e.ssContent&&nt(e.ssContent),ssFallback:e.ssFallback&&nt(e.ssFallback),el:e.el,anchor:e.anchor,ctx:e.ctx,ce:e.ce};return c&&r&&Yt(a,c.clone(a)),a}function Eo(e=" ",t=0){return le(mt,null,e,t)}function kf(e,t){const n=le(Ut,null,e);return n.staticCount=t,n}function Wf(e="",t=!1){return t?(Pr(),Ir(ye,null,e)):le(ye,null,e)}function Me(e){return e==null||typeof e=="boolean"?le(ye):K(e)?le(Se,null,e.slice()):typeof e=="object"?et(e):le(mt,null,String(e))}function et(e){return e.el===null&&e.patchFlag!==-1||e.memo?e:nt(e)}function is(e,t){let n=0;const{shapeFlag:r}=e;if(t==null)t=null;else if(K(t))n=16;else if(typeof t=="object")if(r&65){const s=t.default;s&&(s._c&&(s._d=!1),is(e,s()),s._c&&(s._d=!0));return}else{n=32;const s=t._;!s&&!io(t)?t._ctx=de:s===3&&de&&(de.slots._===1?t._=1:(t._=2,e.patchFlag|=1024))}else q(t)?(t={default:t,_ctx:de},n=32):(t=String(t),r&64?(n=16,t=[Eo(t)]):n=8);e.children=t,e.shapeFlag|=n}function Yc(...e){const t={};for(let n=0;nue||de;let Nn,Lr;{const e=gi(),t=(n,r)=>{let s;return(s=e[n])||(s=e[n]=[]),s.push(r),i=>{s.length>1?s.forEach(o=>o(i)):s[0](i)}};Nn=t("__VUE_INSTANCE_SETTERS__",n=>ue=n),Lr=t("__VUE_SSR_SETTERS__",n=>rn=n)}const nn=e=>{const t=ue;return Nn(e),e.scope.on(),()=>{e.scope.off(),Nn(t)}},Fs=()=>{ue&&ue.scope.off(),Nn(null)};function xo(e){return e.vnode.shapeFlag&4}let rn=!1;function Qc(e,t=!1,n=!1){t&&Lr(t);const{props:r,children:s}=e.vnode,i=xo(e);Ac(e,r,i,t),Pc(e,s,n);const o=i?Zc(e,t):void 0;return t&&Lr(!1),o}function Zc(e,t){const n=e.type;e.accessCache=Object.create(null),e.proxy=new Proxy(e.ctx,yc);const{setup:r}=n;if(r){const s=e.setupContext=r.length>1?Co(e):null,i=nn(e);it();const o=Zt(r,e,0,[e.props,s]);if(ot(),i(),ui(o)){if(gt(e)||es(e),o.then(Fs,Fs),t)return o.then(l=>{Hs(e,l,t)}).catch(l=>{en(l,e,0)});e.asyncDep=o}else Hs(e,o,t)}else To(e,t)}function Hs(e,t,n){q(t)?e.type.__ssrInlineRender?e.ssrRender=t:e.render=t:ne(t)&&(e.setupState=Hi(t)),To(e,n)}let $s;function To(e,t,n){const r=e.type;if(!e.render){if(!t&&$s&&!r.render){const s=r.template||ts(e).template;if(s){const{isCustomElement:i,compilerOptions:o}=e.appContext.config,{delimiters:l,compilerOptions:c}=r,f=fe(fe({isCustomElement:i,delimiters:l},o),c);r.render=$s(s,f)}}e.render=r.render||Ue}{const s=nn(e);it();try{bc(e)}finally{ot(),s()}}}const ea={get(e,t){return ve(e,"get",""),e[t]}};function Co(e){const t=n=>{e.exposed=n||{}};return{attrs:new Proxy(e.attrs,ea),slots:e.slots,emit:e.emit,expose:t}}function Xn(e){return e.exposed?e.exposeProxy||(e.exposeProxy=new Proxy(Hi(Sn(e.exposed)),{get(t,n){if(n in t)return t[n];if(n in Vt)return Vt[n](e)},has(t,n){return n in t||n in Vt}})):e.proxy}function ta(e,t=!0){return q(e)?e.displayName||e.name:e.name||t&&e.__name}function na(e){return q(e)&&"__vccOpts"in e}const ie=(e,t)=>kl(e,t,rn);function Nr(e,t,n){const r=arguments.length;return r===2?ne(t)&&!K(t)?Ln(t)?le(e,null,[t]):le(e,t):le(e,null,t):(r>3?n=Array.prototype.slice.call(arguments,2):r===3&&Ln(n)&&(n=[n]),le(e,t,n))}const ra="3.5.6";/** +**/function Zt(e,t,n,r){try{return r?e(...r):e()}catch(s){en(s,t,n)}}function Fe(e,t,n,r){if(q(e)){const s=Zt(e,t,n,r);return s&&di(s)&&s.catch(i=>{en(i,t,n)}),s}if(K(e)){const s=[];for(let i=0;i>>1,s=we[r],i=Gt(s);i=Gt(n)?we.push(e):we.splice(Gl(t),0,e),e.flags|=1,ji()}}function ji(){!qt&&!xr&&(xr=!0,Jr=Di.then(Vi))}function Yl(e){K(e)?Rt.push(...e):Qe&&e.id===-1?Qe.splice(St+1,0,e):e.flags&1||(Rt.push(e),e.flags|=1),ji()}function ws(e,t,n=qt?je+1:0){for(;nGt(n)-Gt(r));if(Rt.length=0,Qe){Qe.push(...t);return}for(Qe=t,St=0;Ste.id==null?e.flags&2?-1:1/0:e.id;function Vi(e){xr=!1,qt=!0;try{for(je=0;je{r._d&&Fs(-1);const i=Mn(t);let o;try{o=e(...s)}finally{Mn(i),r._d&&Fs(1)}return o};return r._n=!0,r._c=!0,r._d=!0,r}function If(e,t){if(de===null)return e;const n=Xn(de),r=e.dirs||(e.dirs=[]);for(let s=0;se.__isTeleport,jt=e=>e&&(e.disabled||e.disabled===""),zl=e=>e&&(e.defer||e.defer===""),Ss=e=>typeof SVGElement<"u"&&e instanceof SVGElement,Es=e=>typeof MathMLElement=="function"&&e instanceof MathMLElement,Tr=(e,t)=>{const n=e&&e.to;return se(n)?t?t(n):null:n},Jl={name:"Teleport",__isTeleport:!0,process(e,t,n,r,s,i,o,l,c,f){const{mc:a,pc:h,pbc:g,o:{insert:v,querySelector:_,createText:S,createComment:U}}=f,N=jt(t.props);let{shapeFlag:B,children:p,dynamicChildren:m}=t;if(e==null){const M=t.el=S(""),F=t.anchor=S("");v(M,n,r),v(F,n,r);const $=(R,b)=>{B&16&&(s&&s.isCE&&(s.ce._teleportTarget=R),a(p,R,b,s,i,o,l,c))},j=()=>{const R=t.target=Tr(t.props,_),b=Wi(R,t,S,v);R&&(o!=="svg"&&Ss(R)?o="svg":o!=="mathml"&&Es(R)&&(o="mathml"),N||($(R,b),En(t)))};N&&($(n,F),En(t)),zl(t.props)?Ee(j,i):j()}else{t.el=e.el,t.targetStart=e.targetStart;const M=t.anchor=e.anchor,F=t.target=e.target,$=t.targetAnchor=e.targetAnchor,j=jt(e.props),R=j?n:F,b=j?M:$;if(o==="svg"||Ss(F)?o="svg":(o==="mathml"||Es(F))&&(o="mathml"),m?(g(e.dynamicChildren,m,R,s,i,o,l),ss(e,t,!0)):c||h(e,t,R,b,s,i,o,l,!1),N)j?t.props&&e.props&&t.props.to!==e.props.to&&(t.props.to=e.props.to):hn(t,n,M,f,1);else if((t.props&&t.props.to)!==(e.props&&e.props.to)){const L=t.target=Tr(t.props,_);L&&hn(t,L,null,f,0)}else j&&hn(t,F,$,f,1);En(t)}},remove(e,t,n,{um:r,o:{remove:s}},i){const{shapeFlag:o,children:l,anchor:c,targetStart:f,targetAnchor:a,target:h,props:g}=e;if(h&&(s(f),s(a)),i&&s(c),o&16){const v=i||!jt(g);for(let _=0;_{e.isMounted=!0}),Ji(()=>{e.isUnmounting=!0}),e}const Re=[Function,Array],Ki={mode:String,appear:Boolean,persisted:Boolean,onBeforeEnter:Re,onEnter:Re,onAfterEnter:Re,onEnterCancelled:Re,onBeforeLeave:Re,onLeave:Re,onAfterLeave:Re,onLeaveCancelled:Re,onBeforeAppear:Re,onAppear:Re,onAfterAppear:Re,onAppearCancelled:Re},qi=e=>{const t=e.subTree;return t.component?qi(t.component):t},ec={name:"BaseTransition",props:Ki,setup(e,{slots:t}){const n=Yn(),r=Zl();return()=>{const s=t.default&&Xi(t.default(),!0);if(!s||!s.length)return;const i=Gi(s),o=z(e),{mode:l}=o;if(r.isLeaving)return rr(i);const c=xs(i);if(!c)return rr(i);let f=Cr(c,o,r,n,g=>f=g);c.type!==ye&&Yt(c,f);const a=n.subTree,h=a&&xs(a);if(h&&h.type!==ye&&!dt(c,h)&&qi(n).type!==ye){const g=Cr(h,o,r,n);if(Yt(h,g),l==="out-in"&&c.type!==ye)return r.isLeaving=!0,g.afterLeave=()=>{r.isLeaving=!1,n.job.flags&8||n.update(),delete g.afterLeave},rr(i);l==="in-out"&&c.type!==ye&&(g.delayLeave=(v,_,S)=>{const U=Yi(r,h);U[String(h.key)]=h,v[Ze]=()=>{_(),v[Ze]=void 0,delete f.delayedLeave},f.delayedLeave=S})}return i}}};function Gi(e){let t=e[0];if(e.length>1){for(const n of e)if(n.type!==ye){t=n;break}}return t}const tc=ec;function Yi(e,t){const{leavingVNodes:n}=e;let r=n.get(t.type);return r||(r=Object.create(null),n.set(t.type,r)),r}function Cr(e,t,n,r,s){const{appear:i,mode:o,persisted:l=!1,onBeforeEnter:c,onEnter:f,onAfterEnter:a,onEnterCancelled:h,onBeforeLeave:g,onLeave:v,onAfterLeave:_,onLeaveCancelled:S,onBeforeAppear:U,onAppear:N,onAfterAppear:B,onAppearCancelled:p}=t,m=String(e.key),M=Yi(n,e),F=(R,b)=>{R&&Fe(R,r,9,b)},$=(R,b)=>{const L=b[1];F(R,b),K(R)?R.every(x=>x.length<=1)&&L():R.length<=1&&L()},j={mode:o,persisted:l,beforeEnter(R){let b=c;if(!n.isMounted)if(i)b=U||c;else return;R[Ze]&&R[Ze](!0);const L=M[m];L&&dt(e,L)&&L.el[Ze]&&L.el[Ze](),F(b,[R])},enter(R){let b=f,L=a,x=h;if(!n.isMounted)if(i)b=N||f,L=B||a,x=p||h;else return;let W=!1;const re=R[pn]=ce=>{W||(W=!0,ce?F(x,[R]):F(L,[R]),j.delayedLeave&&j.delayedLeave(),R[pn]=void 0)};b?$(b,[R,re]):re()},leave(R,b){const L=String(e.key);if(R[pn]&&R[pn](!0),n.isUnmounting)return b();F(g,[R]);let x=!1;const W=R[Ze]=re=>{x||(x=!0,b(),re?F(S,[R]):F(_,[R]),R[Ze]=void 0,M[L]===e&&delete M[L])};M[L]=e,v?$(v,[R,W]):W()},clone(R){const b=Cr(R,t,n,r,s);return s&&s(b),b}};return j}function rr(e){if(tn(e))return e=nt(e),e.children=null,e}function xs(e){if(!tn(e))return ki(e.type)&&e.children?Gi(e.children):e;const{shapeFlag:t,children:n}=e;if(n){if(t&16)return n[0];if(t&32&&q(n.default))return n.default()}}function Yt(e,t){e.shapeFlag&6&&e.component?(e.transition=t,Yt(e.component.subTree,t)):e.shapeFlag&128?(e.ssContent.transition=t.clone(e.ssContent),e.ssFallback.transition=t.clone(e.ssFallback)):e.transition=t}function Xi(e,t=!1,n){let r=[],s=0;for(let i=0;i1)for(let i=0;iPn(_,t&&(K(t)?t[S]:t),n,r,s));return}if(gt(r)&&!s)return;const i=r.shapeFlag&4?Xn(r.component):r.el,o=s?null:i,{i:l,r:c}=e,f=t&&t.r,a=l.refs===ee?l.refs={}:l.refs,h=l.setupState,g=z(h),v=h===ee?()=>!1:_=>J(g,_);if(f!=null&&f!==c&&(se(f)?(a[f]=null,v(f)&&(h[f]=null)):ae(f)&&(f.value=null)),q(c))Zt(c,l,12,[o,a]);else{const _=se(c),S=ae(c);if(_||S){const U=()=>{if(e.f){const N=_?v(c)?h[c]:a[c]:c.value;s?K(N)&&Dr(N,i):K(N)?N.includes(i)||N.push(i):_?(a[c]=[i],v(c)&&(h[c]=a[c])):(c.value=[i],e.k&&(a[e.k]=c.value))}else _?(a[c]=o,v(c)&&(h[c]=o)):S&&(c.value=o,e.k&&(a[e.k]=o))};o?(U.id=-1,Ee(U,n)):U()}}}let Ts=!1;const wt=()=>{Ts||(console.error("Hydration completed but contains mismatches."),Ts=!0)},nc=e=>e.namespaceURI.includes("svg")&&e.tagName!=="foreignObject",rc=e=>e.namespaceURI.includes("MathML"),gn=e=>{if(e.nodeType===1){if(nc(e))return"svg";if(rc(e))return"mathml"}},xt=e=>e.nodeType===8;function sc(e){const{mt:t,p:n,o:{patchProp:r,createText:s,nextSibling:i,parentNode:o,remove:l,insert:c,createComment:f}}=e,a=(p,m)=>{if(!m.hasChildNodes()){n(null,p,m),On(),m._vnode=p;return}h(m.firstChild,p,null,null,null),On(),m._vnode=p},h=(p,m,M,F,$,j=!1)=>{j=j||!!m.dynamicChildren;const R=xt(p)&&p.data==="[",b=()=>S(p,m,M,F,$,R),{type:L,ref:x,shapeFlag:W,patchFlag:re}=m;let ce=p.nodeType;m.el=p,re===-2&&(j=!1,m.dynamicChildren=null);let V=null;switch(L){case mt:ce!==3?m.children===""?(c(m.el=s(""),o(p),p),V=p):V=b():(p.data!==m.children&&(wt(),p.data=m.children),V=i(p));break;case ye:B(p)?(V=i(p),N(m.el=p.content.firstChild,p,M)):ce!==8||R?V=b():V=i(p);break;case Ut:if(R&&(p=i(p),ce=p.nodeType),ce===1||ce===3){V=p;const Y=!m.children.length;for(let D=0;D{j=j||!!m.dynamicChildren;const{type:R,props:b,patchFlag:L,shapeFlag:x,dirs:W,transition:re}=m,ce=R==="input"||R==="option";if(ce||L!==-1){W&&Ve(m,null,M,"created");let V=!1;if(B(p)){V=po(F,re)&&M&&M.vnode.props&&M.vnode.props.appear;const D=p.content.firstChild;V&&re.beforeEnter(D),N(D,p,M),m.el=p=D}if(x&16&&!(b&&(b.innerHTML||b.textContent))){let D=v(p.firstChild,m,p,M,F,$,j);for(;D;){mn(p,1)||wt();const he=D;D=D.nextSibling,l(he)}}else if(x&8){let D=m.children;D[0]===` +`&&(p.tagName==="PRE"||p.tagName==="TEXTAREA")&&(D=D.slice(1)),p.textContent!==D&&(mn(p,0)||wt(),p.textContent=m.children)}if(b){if(ce||!j||L&48){const D=p.tagName.includes("-");for(const he in b)(ce&&(he.endsWith("value")||he==="indeterminate")||Qt(he)&&!At(he)||he[0]==="."||D)&&r(p,he,null,b[he],void 0,M)}else if(b.onClick)r(p,"onClick",null,b.onClick,void 0,M);else if(L&4&&pt(b.style))for(const D in b.style)b.style[D]}let Y;(Y=b&&b.onVnodeBeforeMount)&&Oe(Y,M,m),W&&Ve(m,null,M,"beforeMount"),((Y=b&&b.onVnodeMounted)||W||V)&&bo(()=>{Y&&Oe(Y,M,m),V&&re.enter(p),W&&Ve(m,null,M,"mounted")},F)}return p.nextSibling},v=(p,m,M,F,$,j,R)=>{R=R||!!m.dynamicChildren;const b=m.children,L=b.length;for(let x=0;x{const{slotScopeIds:R}=m;R&&($=$?$.concat(R):R);const b=o(p),L=v(i(p),m,b,M,F,$,j);return L&&xt(L)&&L.data==="]"?i(m.anchor=L):(wt(),c(m.anchor=f("]"),b,L),L)},S=(p,m,M,F,$,j)=>{if(mn(p.parentElement,1)||wt(),m.el=null,j){const L=U(p);for(;;){const x=i(p);if(x&&x!==L)l(x);else break}}const R=i(p),b=o(p);return l(p),n(null,m,b,R,M,F,gn(b),$),R},U=(p,m="[",M="]")=>{let F=0;for(;p;)if(p=i(p),p&&xt(p)&&(p.data===m&&F++,p.data===M)){if(F===0)return i(p);F--}return p},N=(p,m,M)=>{const F=m.parentNode;F&&F.replaceChild(p,m);let $=M;for(;$;)$.vnode.el===m&&($.vnode.el=$.subTree.el=p),$=$.parent},B=p=>p.nodeType===1&&p.tagName==="TEMPLATE";return[a,h]}const Cs="data-allow-mismatch",ic={0:"text",1:"children",2:"class",3:"style",4:"attribute"};function mn(e,t){if(t===0||t===1)for(;e&&!e.hasAttribute(Cs);)e=e.parentElement;const n=e&&e.getAttribute(Cs);if(n==null)return!1;if(n==="")return!0;{const r=n.split(",");return t===0&&r.includes("children")?!0:n.split(",").includes(ic[t])}}function oc(e,t){if(xt(e)&&e.data==="["){let n=1,r=e.nextSibling;for(;r;){if(r.nodeType===1)t(r);else if(xt(r))if(r.data==="]"){if(--n===0)break}else r.data==="["&&n++;r=r.nextSibling}}else t(e)}const gt=e=>!!e.type.__asyncLoader;/*! #__NO_SIDE_EFFECTS__ */function Nf(e){q(e)&&(e={loader:e});const{loader:t,loadingComponent:n,errorComponent:r,delay:s=200,hydrate:i,timeout:o,suspensible:l=!0,onError:c}=e;let f=null,a,h=0;const g=()=>(h++,f=null,v()),v=()=>{let _;return f||(_=f=t().catch(S=>{if(S=S instanceof Error?S:new Error(String(S)),c)return new Promise((U,N)=>{c(S,()=>U(g()),()=>N(S),h+1)});throw S}).then(S=>_!==f&&f?f:(S&&(S.__esModule||S[Symbol.toStringTag]==="Module")&&(S=S.default),a=S,S)))};return Zr({name:"AsyncComponentWrapper",__asyncLoader:v,__asyncHydrate(_,S,U){const N=i?()=>{const B=i(U,p=>oc(_,p));B&&(S.bum||(S.bum=[])).push(B)}:U;a?N():v().then(()=>!S.isUnmounted&&N())},get __asyncResolved(){return a},setup(){const _=ue;if(es(_),a)return()=>sr(a,_);const S=p=>{f=null,en(p,_,13,!r)};if(l&&_.suspense||rn)return v().then(p=>()=>sr(p,_)).catch(p=>(S(p),()=>r?le(r,{error:p}):null));const U=oe(!1),N=oe(),B=oe(!!s);return s&&setTimeout(()=>{B.value=!1},s),o!=null&&setTimeout(()=>{if(!U.value&&!N.value){const p=new Error(`Async component timed out after ${o}ms.`);S(p),N.value=p}},o),v().then(()=>{U.value=!0,_.parent&&tn(_.parent.vnode)&&_.parent.update()}).catch(p=>{S(p),N.value=p}),()=>{if(U.value&&a)return sr(a,_);if(N.value&&r)return le(r,{error:N.value});if(n&&!B.value)return le(n)}}})}function sr(e,t){const{ref:n,props:r,children:s,ce:i}=t.vnode,o=le(e,r,s);return o.ref=n,o.ce=i,delete t.vnode.ce,o}const tn=e=>e.type.__isKeepAlive;function lc(e,t){zi(e,"a",t)}function cc(e,t){zi(e,"da",t)}function zi(e,t,n=ue){const r=e.__wdc||(e.__wdc=()=>{let s=n;for(;s;){if(s.isDeactivated)return;s=s.parent}return e()});if(Wn(t,r,n),n){let s=n.parent;for(;s&&s.parent;)tn(s.parent.vnode)&&ac(r,t,n,s),s=s.parent}}function ac(e,t,n,r){const s=Wn(t,e,r,!0);Kn(()=>{Dr(r[t],s)},n)}function Wn(e,t,n=ue,r=!1){if(n){const s=n[e]||(n[e]=[]),i=t.__weh||(t.__weh=(...o)=>{it();const l=nn(n),c=Fe(t,n,e,o);return l(),ot(),c});return r?s.unshift(i):s.push(i),i}}const Ye=e=>(t,n=ue)=>{(!rn||e==="sp")&&Wn(e,(...r)=>t(...r),n)},fc=Ye("bm"),It=Ye("m"),uc=Ye("bu"),dc=Ye("u"),Ji=Ye("bum"),Kn=Ye("um"),hc=Ye("sp"),pc=Ye("rtg"),gc=Ye("rtc");function mc(e,t=ue){Wn("ec",e,t)}const ts="components";function Ff(e,t){return Zi(ts,e,!0,t)||e}const Qi=Symbol.for("v-ndc");function Hf(e){return se(e)?Zi(ts,e,!1)||e:e||Qi}function Zi(e,t,n=!0,r=!1){const s=de||ue;if(s){const i=s.type;if(e===ts){const l=ta(i,!1);if(l&&(l===t||l===Ne(t)||l===$n(Ne(t))))return i}const o=As(s[e]||i[e],t)||As(s.appContext[e],t);return!o&&r?i:o}}function As(e,t){return e&&(e[t]||e[Ne(t)]||e[$n(Ne(t))])}function $f(e,t,n,r){let s;const i=n,o=K(e);if(o||se(e)){const l=o&&pt(e);let c=!1;l&&(c=!Pe(e),e=jn(e)),s=new Array(e.length);for(let f=0,a=e.length;ft(l,c,void 0,i));else{const l=Object.keys(e);s=new Array(l.length);for(let c=0,f=l.length;cLn(t)?!(t.type===ye||t.type===Se&&!eo(t.children)):!0)?e:null}function jf(e,t){const n={};for(const r in e)n[/[A-Z]/.test(r)?`on:${r}`:_n(r)]=e[r];return n}const Ar=e=>e?xo(e)?Xn(e):Ar(e.parent):null,Vt=fe(Object.create(null),{$:e=>e,$el:e=>e.vnode.el,$data:e=>e.data,$props:e=>e.props,$attrs:e=>e.attrs,$slots:e=>e.slots,$refs:e=>e.refs,$parent:e=>Ar(e.parent),$root:e=>Ar(e.root),$host:e=>e.ce,$emit:e=>e.emit,$options:e=>ns(e),$forceUpdate:e=>e.f||(e.f=()=>{Qr(e.update)}),$nextTick:e=>e.n||(e.n=kn.bind(e.proxy)),$watch:e=>Dc.bind(e)}),ir=(e,t)=>e!==ee&&!e.__isScriptSetup&&J(e,t),yc={get({_:e},t){if(t==="__v_skip")return!0;const{ctx:n,setupState:r,data:s,props:i,accessCache:o,type:l,appContext:c}=e;let f;if(t[0]!=="$"){const v=o[t];if(v!==void 0)switch(v){case 1:return r[t];case 2:return s[t];case 4:return n[t];case 3:return i[t]}else{if(ir(r,t))return o[t]=1,r[t];if(s!==ee&&J(s,t))return o[t]=2,s[t];if((f=e.propsOptions[0])&&J(f,t))return o[t]=3,i[t];if(n!==ee&&J(n,t))return o[t]=4,n[t];Rr&&(o[t]=0)}}const a=Vt[t];let h,g;if(a)return t==="$attrs"&&ve(e.attrs,"get",""),a(e);if((h=l.__cssModules)&&(h=h[t]))return h;if(n!==ee&&J(n,t))return o[t]=4,n[t];if(g=c.config.globalProperties,J(g,t))return g[t]},set({_:e},t,n){const{data:r,setupState:s,ctx:i}=e;return ir(s,t)?(s[t]=n,!0):r!==ee&&J(r,t)?(r[t]=n,!0):J(e.props,t)||t[0]==="$"&&t.slice(1)in e?!1:(i[t]=n,!0)},has({_:{data:e,setupState:t,accessCache:n,ctx:r,appContext:s,propsOptions:i}},o){let l;return!!n[o]||e!==ee&&J(e,o)||ir(t,o)||(l=i[0])&&J(l,o)||J(r,o)||J(Vt,o)||J(s.config.globalProperties,o)},defineProperty(e,t,n){return n.get!=null?e._.accessCache[t]=0:J(n,"value")&&this.set(e,t,n.value,null),Reflect.defineProperty(e,t,n)}};function Vf(){return vc().slots}function vc(){const e=Yn();return e.setupContext||(e.setupContext=Co(e))}function Rs(e){return K(e)?e.reduce((t,n)=>(t[n]=null,t),{}):e}let Rr=!0;function bc(e){const t=ns(e),n=e.proxy,r=e.ctx;Rr=!1,t.beforeCreate&&Os(t.beforeCreate,e,"bc");const{data:s,computed:i,methods:o,watch:l,provide:c,inject:f,created:a,beforeMount:h,mounted:g,beforeUpdate:v,updated:_,activated:S,deactivated:U,beforeDestroy:N,beforeUnmount:B,destroyed:p,unmounted:m,render:M,renderTracked:F,renderTriggered:$,errorCaptured:j,serverPrefetch:R,expose:b,inheritAttrs:L,components:x,directives:W,filters:re}=t;if(f&&_c(f,r,null),o)for(const Y in o){const D=o[Y];q(D)&&(r[Y]=D.bind(n))}if(s){const Y=s.call(n,n);ne(Y)&&(e.data=Un(Y))}if(Rr=!0,i)for(const Y in i){const D=i[Y],he=q(D)?D.bind(n,n):q(D.get)?D.get.bind(n,n):Ue,sn=!q(D)&&q(D.set)?D.set.bind(n):Ue,lt=ie({get:he,set:sn});Object.defineProperty(r,Y,{enumerable:!0,configurable:!0,get:()=>lt.value,set:$e=>lt.value=$e})}if(l)for(const Y in l)to(l[Y],r,n,Y);if(c){const Y=q(c)?c.call(n):c;Reflect.ownKeys(Y).forEach(D=>{Cc(D,Y[D])})}a&&Os(a,e,"c");function V(Y,D){K(D)?D.forEach(he=>Y(he.bind(n))):D&&Y(D.bind(n))}if(V(fc,h),V(It,g),V(uc,v),V(dc,_),V(lc,S),V(cc,U),V(mc,j),V(gc,F),V(pc,$),V(Ji,B),V(Kn,m),V(hc,R),K(b))if(b.length){const Y=e.exposed||(e.exposed={});b.forEach(D=>{Object.defineProperty(Y,D,{get:()=>n[D],set:he=>n[D]=he})})}else e.exposed||(e.exposed={});M&&e.render===Ue&&(e.render=M),L!=null&&(e.inheritAttrs=L),x&&(e.components=x),W&&(e.directives=W),R&&es(e)}function _c(e,t,n=Ue){K(e)&&(e=Or(e));for(const r in e){const s=e[r];let i;ne(s)?"default"in s?i=Mt(s.from||r,s.default,!0):i=Mt(s.from||r):i=Mt(s),ae(i)?Object.defineProperty(t,r,{enumerable:!0,configurable:!0,get:()=>i.value,set:o=>i.value=o}):t[r]=i}}function Os(e,t,n){Fe(K(e)?e.map(r=>r.bind(t.proxy)):e.bind(t.proxy),t,n)}function to(e,t,n,r){let s=r.includes(".")?mo(n,r):()=>n[r];if(se(e)){const i=t[e];q(i)&&Be(s,i)}else if(q(e))Be(s,e.bind(n));else if(ne(e))if(K(e))e.forEach(i=>to(i,t,n,r));else{const i=q(e.handler)?e.handler.bind(n):t[e.handler];q(i)&&Be(s,i,e)}}function ns(e){const t=e.type,{mixins:n,extends:r}=t,{mixins:s,optionsCache:i,config:{optionMergeStrategies:o}}=e.appContext,l=i.get(t);let c;return l?c=l:!s.length&&!n&&!r?c=t:(c={},s.length&&s.forEach(f=>In(c,f,o,!0)),In(c,t,o)),ne(t)&&i.set(t,c),c}function In(e,t,n,r=!1){const{mixins:s,extends:i}=t;i&&In(e,i,n,!0),s&&s.forEach(o=>In(e,o,n,!0));for(const o in t)if(!(r&&o==="expose")){const l=wc[o]||n&&n[o];e[o]=l?l(e[o],t[o]):t[o]}return e}const wc={data:Ms,props:Ps,emits:Ps,methods:$t,computed:$t,beforeCreate:be,created:be,beforeMount:be,mounted:be,beforeUpdate:be,updated:be,beforeDestroy:be,beforeUnmount:be,destroyed:be,unmounted:be,activated:be,deactivated:be,errorCaptured:be,serverPrefetch:be,components:$t,directives:$t,watch:Ec,provide:Ms,inject:Sc};function Ms(e,t){return t?e?function(){return fe(q(e)?e.call(this,this):e,q(t)?t.call(this,this):t)}:t:e}function Sc(e,t){return $t(Or(e),Or(t))}function Or(e){if(K(e)){const t={};for(let n=0;n1)return n&&q(t)?t.call(r&&r.proxy):t}}const ro={},so=()=>Object.create(ro),io=e=>Object.getPrototypeOf(e)===ro;function Ac(e,t,n,r=!1){const s={},i=so();e.propsDefaults=Object.create(null),oo(e,t,s,i);for(const o in e.propsOptions[0])o in s||(s[o]=void 0);n?e.props=r?s:Ll(s):e.type.props?e.props=s:e.props=i,e.attrs=i}function Rc(e,t,n,r){const{props:s,attrs:i,vnode:{patchFlag:o}}=e,l=z(s),[c]=e.propsOptions;let f=!1;if((r||o>0)&&!(o&16)){if(o&8){const a=e.vnode.dynamicProps;for(let h=0;h{c=!0;const[g,v]=lo(h,t,!0);fe(o,g),v&&l.push(...v)};!n&&t.mixins.length&&t.mixins.forEach(a),e.extends&&a(e.extends),e.mixins&&e.mixins.forEach(a)}if(!i&&!c)return ne(e)&&r.set(e,Tt),Tt;if(K(i))for(let a=0;ae[0]==="_"||e==="$stable",rs=e=>K(e)?e.map(Me):[Me(e)],Mc=(e,t,n)=>{if(t._n)return t;const r=Xl((...s)=>rs(t(...s)),n);return r._c=!1,r},ao=(e,t,n)=>{const r=e._ctx;for(const s in e){if(co(s))continue;const i=e[s];if(q(i))t[s]=Mc(s,i,r);else if(i!=null){const o=rs(i);t[s]=()=>o}}},fo=(e,t)=>{const n=rs(t);e.slots.default=()=>n},uo=(e,t,n)=>{for(const r in t)(n||r!=="_")&&(e[r]=t[r])},Pc=(e,t,n)=>{const r=e.slots=so();if(e.vnode.shapeFlag&32){const s=t._;s?(uo(r,t,n),n&&gi(r,"_",s,!0)):ao(t,r)}else t&&fo(e,t)},Ic=(e,t,n)=>{const{vnode:r,slots:s}=e;let i=!0,o=ee;if(r.shapeFlag&32){const l=t._;l?n&&l===1?i=!1:uo(s,t,n):(i=!t.$stable,ao(t,s)),o=t}else t&&(fo(e,t),o={default:1});if(i)for(const l in s)!co(l)&&o[l]==null&&delete s[l]},Ee=bo;function Lc(e){return ho(e)}function Nc(e){return ho(e,sc)}function ho(e,t){const n=mi();n.__VUE__=!0;const{insert:r,remove:s,patchProp:i,createElement:o,createText:l,createComment:c,setText:f,setElementText:a,parentNode:h,nextSibling:g,setScopeId:v=Ue,insertStaticContent:_}=e,S=(u,d,y,T=null,w=null,E=null,P=void 0,O=null,A=!!d.dynamicChildren)=>{if(u===d)return;u&&!dt(u,d)&&(T=on(u),$e(u,w,E,!0),u=null),d.patchFlag===-2&&(A=!1,d.dynamicChildren=null);const{type:C,ref:k,shapeFlag:I}=d;switch(C){case mt:U(u,d,y,T);break;case ye:N(u,d,y,T);break;case Ut:u==null&&B(d,y,T,P);break;case Se:x(u,d,y,T,w,E,P,O,A);break;default:I&1?M(u,d,y,T,w,E,P,O,A):I&6?W(u,d,y,T,w,E,P,O,A):(I&64||I&128)&&C.process(u,d,y,T,w,E,P,O,A,bt)}k!=null&&w&&Pn(k,u&&u.ref,E,d||u,!d)},U=(u,d,y,T)=>{if(u==null)r(d.el=l(d.children),y,T);else{const w=d.el=u.el;d.children!==u.children&&f(w,d.children)}},N=(u,d,y,T)=>{u==null?r(d.el=c(d.children||""),y,T):d.el=u.el},B=(u,d,y,T)=>{[u.el,u.anchor]=_(u.children,d,y,T,u.el,u.anchor)},p=({el:u,anchor:d},y,T)=>{let w;for(;u&&u!==d;)w=g(u),r(u,y,T),u=w;r(d,y,T)},m=({el:u,anchor:d})=>{let y;for(;u&&u!==d;)y=g(u),s(u),u=y;s(d)},M=(u,d,y,T,w,E,P,O,A)=>{d.type==="svg"?P="svg":d.type==="math"&&(P="mathml"),u==null?F(d,y,T,w,E,P,O,A):R(u,d,w,E,P,O,A)},F=(u,d,y,T,w,E,P,O)=>{let A,C;const{props:k,shapeFlag:I,transition:H,dirs:G}=u;if(A=u.el=o(u.type,E,k&&k.is,k),I&8?a(A,u.children):I&16&&j(u.children,A,null,T,w,or(u,E),P,O),G&&Ve(u,null,T,"created"),$(A,u,u.scopeId,P,T),k){for(const te in k)te!=="value"&&!At(te)&&i(A,te,null,k[te],E,T);"value"in k&&i(A,"value",null,k.value,E),(C=k.onVnodeBeforeMount)&&Oe(C,T,u)}G&&Ve(u,null,T,"beforeMount");const X=po(w,H);X&&H.beforeEnter(A),r(A,d,y),((C=k&&k.onVnodeMounted)||X||G)&&Ee(()=>{C&&Oe(C,T,u),X&&H.enter(A),G&&Ve(u,null,T,"mounted")},w)},$=(u,d,y,T,w)=>{if(y&&v(u,y),T)for(let E=0;E{for(let C=A;C{const O=d.el=u.el;let{patchFlag:A,dynamicChildren:C,dirs:k}=d;A|=u.patchFlag&16;const I=u.props||ee,H=d.props||ee;let G;if(y&&ct(y,!1),(G=H.onVnodeBeforeUpdate)&&Oe(G,y,d,u),k&&Ve(d,u,y,"beforeUpdate"),y&&ct(y,!0),(I.innerHTML&&H.innerHTML==null||I.textContent&&H.textContent==null)&&a(O,""),C?b(u.dynamicChildren,C,O,y,T,or(d,w),E):P||D(u,d,O,null,y,T,or(d,w),E,!1),A>0){if(A&16)L(O,I,H,y,w);else if(A&2&&I.class!==H.class&&i(O,"class",null,H.class,w),A&4&&i(O,"style",I.style,H.style,w),A&8){const X=d.dynamicProps;for(let te=0;te{G&&Oe(G,y,d,u),k&&Ve(d,u,y,"updated")},T)},b=(u,d,y,T,w,E,P)=>{for(let O=0;O{if(d!==y){if(d!==ee)for(const E in d)!At(E)&&!(E in y)&&i(u,E,d[E],null,w,T);for(const E in y){if(At(E))continue;const P=y[E],O=d[E];P!==O&&E!=="value"&&i(u,E,O,P,w,T)}"value"in y&&i(u,"value",d.value,y.value,w)}},x=(u,d,y,T,w,E,P,O,A)=>{const C=d.el=u?u.el:l(""),k=d.anchor=u?u.anchor:l("");let{patchFlag:I,dynamicChildren:H,slotScopeIds:G}=d;G&&(O=O?O.concat(G):G),u==null?(r(C,y,T),r(k,y,T),j(d.children||[],y,k,w,E,P,O,A)):I>0&&I&64&&H&&u.dynamicChildren?(b(u.dynamicChildren,H,y,w,E,P,O),(d.key!=null||w&&d===w.subTree)&&ss(u,d,!0)):D(u,d,y,k,w,E,P,O,A)},W=(u,d,y,T,w,E,P,O,A)=>{d.slotScopeIds=O,u==null?d.shapeFlag&512?w.ctx.activate(d,y,T,P,A):re(d,y,T,w,E,P,A):ce(u,d,A)},re=(u,d,y,T,w,E,P)=>{const O=u.component=Jc(u,T,w);if(tn(u)&&(O.ctx.renderer=bt),Qc(O,!1,P),O.asyncDep){if(w&&w.registerDep(O,V,P),!u.el){const A=O.subTree=le(ye);N(null,A,d,y)}}else V(O,u,d,y,w,E,P)},ce=(u,d,y)=>{const T=d.component=u.component;if(kc(u,d,y))if(T.asyncDep&&!T.asyncResolved){Y(T,d,y);return}else T.next=d,T.update();else d.el=u.el,T.vnode=d},V=(u,d,y,T,w,E,P)=>{const O=()=>{if(u.isMounted){let{next:I,bu:H,u:G,parent:X,vnode:te}=u;{const Te=go(u);if(Te){I&&(I.el=te.el,Y(u,I,P)),Te.asyncDep.then(()=>{u.isUnmounted||O()});return}}let Q=I,xe;ct(u,!1),I?(I.el=te.el,Y(u,I,P)):I=te,H&&wn(H),(xe=I.props&&I.props.onVnodeBeforeUpdate)&&Oe(xe,X,I,te),ct(u,!0);const pe=lr(u),Ie=u.subTree;u.subTree=pe,S(Ie,pe,h(Ie.el),on(Ie),u,w,E),I.el=pe.el,Q===null&&Wc(u,pe.el),G&&Ee(G,w),(xe=I.props&&I.props.onVnodeUpdated)&&Ee(()=>Oe(xe,X,I,te),w)}else{let I;const{el:H,props:G}=d,{bm:X,m:te,parent:Q,root:xe,type:pe}=u,Ie=gt(d);if(ct(u,!1),X&&wn(X),!Ie&&(I=G&&G.onVnodeBeforeMount)&&Oe(I,Q,d),ct(u,!0),H&&Qn){const Te=()=>{u.subTree=lr(u),Qn(H,u.subTree,u,w,null)};Ie&&pe.__asyncHydrate?pe.__asyncHydrate(H,u,Te):Te()}else{xe.ce&&xe.ce._injectChildStyle(pe);const Te=u.subTree=lr(u);S(null,Te,y,T,u,w,E),d.el=Te.el}if(te&&Ee(te,w),!Ie&&(I=G&&G.onVnodeMounted)){const Te=d;Ee(()=>Oe(I,Q,Te),w)}(d.shapeFlag&256||Q&>(Q.vnode)&&Q.vnode.shapeFlag&256)&&u.a&&Ee(u.a,w),u.isMounted=!0,d=y=T=null}};u.scope.on();const A=u.effect=new wi(O);u.scope.off();const C=u.update=A.run.bind(A),k=u.job=A.runIfDirty.bind(A);k.i=u,k.id=u.uid,A.scheduler=()=>Qr(k),ct(u,!0),C()},Y=(u,d,y)=>{d.component=u;const T=u.vnode.props;u.vnode=d,u.next=null,Rc(u,d.props,T,y),Ic(u,d.children,y),it(),ws(u),ot()},D=(u,d,y,T,w,E,P,O,A=!1)=>{const C=u&&u.children,k=u?u.shapeFlag:0,I=d.children,{patchFlag:H,shapeFlag:G}=d;if(H>0){if(H&128){sn(C,I,y,T,w,E,P,O,A);return}else if(H&256){he(C,I,y,T,w,E,P,O,A);return}}G&8?(k&16&&Lt(C,w,E),I!==C&&a(y,I)):k&16?G&16?sn(C,I,y,T,w,E,P,O,A):Lt(C,w,E,!0):(k&8&&a(y,""),G&16&&j(I,y,T,w,E,P,O,A))},he=(u,d,y,T,w,E,P,O,A)=>{u=u||Tt,d=d||Tt;const C=u.length,k=d.length,I=Math.min(C,k);let H;for(H=0;Hk?Lt(u,w,E,!0,!1,I):j(d,y,T,w,E,P,O,A,I)},sn=(u,d,y,T,w,E,P,O,A)=>{let C=0;const k=d.length;let I=u.length-1,H=k-1;for(;C<=I&&C<=H;){const G=u[C],X=d[C]=A?et(d[C]):Me(d[C]);if(dt(G,X))S(G,X,y,null,w,E,P,O,A);else break;C++}for(;C<=I&&C<=H;){const G=u[I],X=d[H]=A?et(d[H]):Me(d[H]);if(dt(G,X))S(G,X,y,null,w,E,P,O,A);else break;I--,H--}if(C>I){if(C<=H){const G=H+1,X=GH)for(;C<=I;)$e(u[C],w,E,!0),C++;else{const G=C,X=C,te=new Map;for(C=X;C<=H;C++){const Ce=d[C]=A?et(d[C]):Me(d[C]);Ce.key!=null&&te.set(Ce.key,C)}let Q,xe=0;const pe=H-X+1;let Ie=!1,Te=0;const Nt=new Array(pe);for(C=0;C=pe){$e(Ce,w,E,!0);continue}let De;if(Ce.key!=null)De=te.get(Ce.key);else for(Q=X;Q<=H;Q++)if(Nt[Q-X]===0&&dt(Ce,d[Q])){De=Q;break}De===void 0?$e(Ce,w,E,!0):(Nt[De-X]=C+1,De>=Te?Te=De:Ie=!0,S(Ce,d[De],y,null,w,E,P,O,A),xe++)}const ds=Ie?Fc(Nt):Tt;for(Q=ds.length-1,C=pe-1;C>=0;C--){const Ce=X+C,De=d[Ce],hs=Ce+1{const{el:E,type:P,transition:O,children:A,shapeFlag:C}=u;if(C&6){lt(u.component.subTree,d,y,T);return}if(C&128){u.suspense.move(d,y,T);return}if(C&64){P.move(u,d,y,bt);return}if(P===Se){r(E,d,y);for(let I=0;IO.enter(E),w);else{const{leave:I,delayLeave:H,afterLeave:G}=O,X=()=>r(E,d,y),te=()=>{I(E,()=>{X(),G&&G()})};H?H(E,X,te):te()}else r(E,d,y)},$e=(u,d,y,T=!1,w=!1)=>{const{type:E,props:P,ref:O,children:A,dynamicChildren:C,shapeFlag:k,patchFlag:I,dirs:H,cacheIndex:G}=u;if(I===-2&&(w=!1),O!=null&&Pn(O,null,y,u,!0),G!=null&&(d.renderCache[G]=void 0),k&256){d.ctx.deactivate(u);return}const X=k&1&&H,te=!gt(u);let Q;if(te&&(Q=P&&P.onVnodeBeforeUnmount)&&Oe(Q,d,u),k&6)Xo(u.component,y,T);else{if(k&128){u.suspense.unmount(y,T);return}X&&Ve(u,null,d,"beforeUnmount"),k&64?u.type.remove(u,d,y,bt,T):C&&!C.hasOnce&&(E!==Se||I>0&&I&64)?Lt(C,d,y,!1,!0):(E===Se&&I&384||!w&&k&16)&&Lt(A,d,y),T&&fs(u)}(te&&(Q=P&&P.onVnodeUnmounted)||X)&&Ee(()=>{Q&&Oe(Q,d,u),X&&Ve(u,null,d,"unmounted")},y)},fs=u=>{const{type:d,el:y,anchor:T,transition:w}=u;if(d===Se){Yo(y,T);return}if(d===Ut){m(u);return}const E=()=>{s(y),w&&!w.persisted&&w.afterLeave&&w.afterLeave()};if(u.shapeFlag&1&&w&&!w.persisted){const{leave:P,delayLeave:O}=w,A=()=>P(y,E);O?O(u.el,E,A):A()}else E()},Yo=(u,d)=>{let y;for(;u!==d;)y=g(u),s(u),u=y;s(d)},Xo=(u,d,y)=>{const{bum:T,scope:w,job:E,subTree:P,um:O,m:A,a:C}=u;Ls(A),Ls(C),T&&wn(T),w.stop(),E&&(E.flags|=8,$e(P,u,d,y)),O&&Ee(O,d),Ee(()=>{u.isUnmounted=!0},d),d&&d.pendingBranch&&!d.isUnmounted&&u.asyncDep&&!u.asyncResolved&&u.suspenseId===d.pendingId&&(d.deps--,d.deps===0&&d.resolve())},Lt=(u,d,y,T=!1,w=!1,E=0)=>{for(let P=E;P{if(u.shapeFlag&6)return on(u.component.subTree);if(u.shapeFlag&128)return u.suspense.next();const d=g(u.anchor||u.el),y=d&&d[Bi];return y?g(y):d};let zn=!1;const us=(u,d,y)=>{u==null?d._vnode&&$e(d._vnode,null,null,!0):S(d._vnode||null,u,d,null,null,null,y),d._vnode=u,zn||(zn=!0,ws(),On(),zn=!1)},bt={p:S,um:$e,m:lt,r:fs,mt:re,mc:j,pc:D,pbc:b,n:on,o:e};let Jn,Qn;return t&&([Jn,Qn]=t(bt)),{render:us,hydrate:Jn,createApp:Tc(us,Jn)}}function or({type:e,props:t},n){return n==="svg"&&e==="foreignObject"||n==="mathml"&&e==="annotation-xml"&&t&&t.encoding&&t.encoding.includes("html")?void 0:n}function ct({effect:e,job:t},n){n?(e.flags|=32,t.flags|=4):(e.flags&=-33,t.flags&=-5)}function po(e,t){return(!e||e&&!e.pendingBranch)&&t&&!t.persisted}function ss(e,t,n=!1){const r=e.children,s=t.children;if(K(r)&&K(s))for(let i=0;i>1,e[n[l]]0&&(t[r]=n[i-1]),n[i]=r)}}for(i=n.length,o=n[i-1];i-- >0;)n[i]=o,o=t[o];return n}function go(e){const t=e.subTree.component;if(t)return t.asyncDep&&!t.asyncResolved?t:go(t)}function Ls(e){if(e)for(let t=0;tMt(Hc);function is(e,t){return qn(e,null,t)}function Uf(e,t){return qn(e,null,{flush:"post"})}function Be(e,t,n){return qn(e,t,n)}function qn(e,t,n=ee){const{immediate:r,deep:s,flush:i,once:o}=n,l=fe({},n);let c;if(rn)if(i==="sync"){const g=$c();c=g.__watcherHandles||(g.__watcherHandles=[])}else if(!t||r)l.once=!0;else{const g=()=>{};return g.stop=Ue,g.resume=Ue,g.pause=Ue,g}const f=ue;l.call=(g,v,_)=>Fe(g,f,v,_);let a=!1;i==="post"?l.scheduler=g=>{Ee(g,f&&f.suspense)}:i!=="sync"&&(a=!0,l.scheduler=(g,v)=>{v?g():Qr(g)}),l.augmentJob=g=>{t&&(g.flags|=4),a&&(g.flags|=2,f&&(g.id=f.uid,g.i=f))};const h=Kl(e,t,l);return c&&c.push(h),h}function Dc(e,t,n){const r=this.proxy,s=se(e)?e.includes(".")?mo(r,e):()=>r[e]:e.bind(r,r);let i;q(t)?i=t:(i=t.handler,n=t);const o=nn(this),l=qn(s,i.bind(r),n);return o(),l}function mo(e,t){const n=t.split(".");return()=>{let r=e;for(let s=0;st==="modelValue"||t==="model-value"?e.modelModifiers:e[`${t}Modifiers`]||e[`${Ne(t)}Modifiers`]||e[`${st(t)}Modifiers`];function Vc(e,t,...n){if(e.isUnmounted)return;const r=e.vnode.props||ee;let s=n;const i=t.startsWith("update:"),o=i&&jc(r,t.slice(7));o&&(o.trim&&(s=n.map(a=>se(a)?a.trim():a)),o.number&&(s=n.map(wr)));let l,c=r[l=_n(t)]||r[l=_n(Ne(t))];!c&&i&&(c=r[l=_n(st(t))]),c&&Fe(c,e,6,s);const f=r[l+"Once"];if(f){if(!e.emitted)e.emitted={};else if(e.emitted[l])return;e.emitted[l]=!0,Fe(f,e,6,s)}}function yo(e,t,n=!1){const r=t.emitsCache,s=r.get(e);if(s!==void 0)return s;const i=e.emits;let o={},l=!1;if(!q(e)){const c=f=>{const a=yo(f,t,!0);a&&(l=!0,fe(o,a))};!n&&t.mixins.length&&t.mixins.forEach(c),e.extends&&c(e.extends),e.mixins&&e.mixins.forEach(c)}return!i&&!l?(ne(e)&&r.set(e,null),null):(K(i)?i.forEach(c=>o[c]=null):fe(o,i),ne(e)&&r.set(e,o),o)}function Gn(e,t){return!e||!Qt(t)?!1:(t=t.slice(2).replace(/Once$/,""),J(e,t[0].toLowerCase()+t.slice(1))||J(e,st(t))||J(e,t))}function lr(e){const{type:t,vnode:n,proxy:r,withProxy:s,propsOptions:[i],slots:o,attrs:l,emit:c,render:f,renderCache:a,props:h,data:g,setupState:v,ctx:_,inheritAttrs:S}=e,U=Mn(e);let N,B;try{if(n.shapeFlag&4){const m=s||r,M=m;N=Me(f.call(M,m,a,h,v,g,_)),B=l}else{const m=t;N=Me(m.length>1?m(h,{attrs:l,slots:o,emit:c}):m(h,null)),B=t.props?l:Uc(l)}}catch(m){Bt.length=0,en(m,e,1),N=le(ye)}let p=N;if(B&&S!==!1){const m=Object.keys(B),{shapeFlag:M}=p;m.length&&M&7&&(i&&m.some($r)&&(B=Bc(B,i)),p=nt(p,B,!1,!0))}return n.dirs&&(p=nt(p,null,!1,!0),p.dirs=p.dirs?p.dirs.concat(n.dirs):n.dirs),n.transition&&Yt(p,n.transition),N=p,Mn(U),N}const Uc=e=>{let t;for(const n in e)(n==="class"||n==="style"||Qt(n))&&((t||(t={}))[n]=e[n]);return t},Bc=(e,t)=>{const n={};for(const r in e)(!$r(r)||!(r.slice(9)in t))&&(n[r]=e[r]);return n};function kc(e,t,n){const{props:r,children:s,component:i}=e,{props:o,children:l,patchFlag:c}=t,f=i.emitsOptions;if(t.dirs||t.transition)return!0;if(n&&c>=0){if(c&1024)return!0;if(c&16)return r?Ns(r,o,f):!!o;if(c&8){const a=t.dynamicProps;for(let h=0;he.__isSuspense;function bo(e,t){t&&t.pendingBranch?K(e)?t.effects.push(...e):t.effects.push(e):Yl(e)}const Se=Symbol.for("v-fgt"),mt=Symbol.for("v-txt"),ye=Symbol.for("v-cmt"),Ut=Symbol.for("v-stc"),Bt=[];let Ae=null;function Pr(e=!1){Bt.push(Ae=e?null:[])}function Kc(){Bt.pop(),Ae=Bt[Bt.length-1]||null}let Xt=1;function Fs(e){Xt+=e,e<0&&Ae&&(Ae.hasOnce=!0)}function _o(e){return e.dynamicChildren=Xt>0?Ae||Tt:null,Kc(),Xt>0&&Ae&&Ae.push(e),e}function Bf(e,t,n,r,s,i){return _o(So(e,t,n,r,s,i,!0))}function Ir(e,t,n,r,s){return _o(le(e,t,n,r,s,!0))}function Ln(e){return e?e.__v_isVNode===!0:!1}function dt(e,t){return e.type===t.type&&e.key===t.key}const wo=({key:e})=>e??null,xn=({ref:e,ref_key:t,ref_for:n})=>(typeof e=="number"&&(e=""+e),e!=null?se(e)||ae(e)||q(e)?{i:de,r:e,k:t,f:!!n}:e:null);function So(e,t=null,n=null,r=0,s=null,i=e===Se?0:1,o=!1,l=!1){const c={__v_isVNode:!0,__v_skip:!0,type:e,props:t,key:t&&wo(t),ref:t&&xn(t),scopeId:Ui,slotScopeIds:null,children:n,component:null,suspense:null,ssContent:null,ssFallback:null,dirs:null,transition:null,el:null,anchor:null,target:null,targetStart:null,targetAnchor:null,staticCount:0,shapeFlag:i,patchFlag:r,dynamicProps:s,dynamicChildren:null,appContext:null,ctx:de};return l?(os(c,n),i&128&&e.normalize(c)):n&&(c.shapeFlag|=se(n)?8:16),Xt>0&&!o&&Ae&&(c.patchFlag>0||i&6)&&c.patchFlag!==32&&Ae.push(c),c}const le=qc;function qc(e,t=null,n=null,r=0,s=null,i=!1){if((!e||e===Qi)&&(e=ye),Ln(e)){const l=nt(e,t,!0);return n&&os(l,n),Xt>0&&!i&&Ae&&(l.shapeFlag&6?Ae[Ae.indexOf(e)]=l:Ae.push(l)),l.patchFlag=-2,l}if(na(e)&&(e=e.__vccOpts),t){t=Gc(t);let{class:l,style:c}=t;l&&!se(l)&&(t.class=Ur(l)),ne(c)&&(Yr(c)&&!K(c)&&(c=fe({},c)),t.style=Vr(c))}const o=se(e)?1:vo(e)?128:ki(e)?64:ne(e)?4:q(e)?2:0;return So(e,t,n,r,s,o,i,!0)}function Gc(e){return e?Yr(e)||io(e)?fe({},e):e:null}function nt(e,t,n=!1,r=!1){const{props:s,ref:i,patchFlag:o,children:l,transition:c}=e,f=t?Yc(s||{},t):s,a={__v_isVNode:!0,__v_skip:!0,type:e.type,props:f,key:f&&wo(f),ref:t&&t.ref?n&&i?K(i)?i.concat(xn(t)):[i,xn(t)]:xn(t):i,scopeId:e.scopeId,slotScopeIds:e.slotScopeIds,children:l,target:e.target,targetStart:e.targetStart,targetAnchor:e.targetAnchor,staticCount:e.staticCount,shapeFlag:e.shapeFlag,patchFlag:t&&e.type!==Se?o===-1?16:o|16:o,dynamicProps:e.dynamicProps,dynamicChildren:e.dynamicChildren,appContext:e.appContext,dirs:e.dirs,transition:c,component:e.component,suspense:e.suspense,ssContent:e.ssContent&&nt(e.ssContent),ssFallback:e.ssFallback&&nt(e.ssFallback),el:e.el,anchor:e.anchor,ctx:e.ctx,ce:e.ce};return c&&r&&Yt(a,c.clone(a)),a}function Eo(e=" ",t=0){return le(mt,null,e,t)}function kf(e,t){const n=le(Ut,null,e);return n.staticCount=t,n}function Wf(e="",t=!1){return t?(Pr(),Ir(ye,null,e)):le(ye,null,e)}function Me(e){return e==null||typeof e=="boolean"?le(ye):K(e)?le(Se,null,e.slice()):typeof e=="object"?et(e):le(mt,null,String(e))}function et(e){return e.el===null&&e.patchFlag!==-1||e.memo?e:nt(e)}function os(e,t){let n=0;const{shapeFlag:r}=e;if(t==null)t=null;else if(K(t))n=16;else if(typeof t=="object")if(r&65){const s=t.default;s&&(s._c&&(s._d=!1),os(e,s()),s._c&&(s._d=!0));return}else{n=32;const s=t._;!s&&!io(t)?t._ctx=de:s===3&&de&&(de.slots._===1?t._=1:(t._=2,e.patchFlag|=1024))}else q(t)?(t={default:t,_ctx:de},n=32):(t=String(t),r&64?(n=16,t=[Eo(t)]):n=8);e.children=t,e.shapeFlag|=n}function Yc(...e){const t={};for(let n=0;nue||de;let Nn,Lr;{const e=mi(),t=(n,r)=>{let s;return(s=e[n])||(s=e[n]=[]),s.push(r),i=>{s.length>1?s.forEach(o=>o(i)):s[0](i)}};Nn=t("__VUE_INSTANCE_SETTERS__",n=>ue=n),Lr=t("__VUE_SSR_SETTERS__",n=>rn=n)}const nn=e=>{const t=ue;return Nn(e),e.scope.on(),()=>{e.scope.off(),Nn(t)}},Hs=()=>{ue&&ue.scope.off(),Nn(null)};function xo(e){return e.vnode.shapeFlag&4}let rn=!1;function Qc(e,t=!1,n=!1){t&&Lr(t);const{props:r,children:s}=e.vnode,i=xo(e);Ac(e,r,i,t),Pc(e,s,n);const o=i?Zc(e,t):void 0;return t&&Lr(!1),o}function Zc(e,t){const n=e.type;e.accessCache=Object.create(null),e.proxy=new Proxy(e.ctx,yc);const{setup:r}=n;if(r){const s=e.setupContext=r.length>1?Co(e):null,i=nn(e);it();const o=Zt(r,e,0,[e.props,s]);if(ot(),i(),di(o)){if(gt(e)||es(e),o.then(Hs,Hs),t)return o.then(l=>{$s(e,l,t)}).catch(l=>{en(l,e,0)});e.asyncDep=o}else $s(e,o,t)}else To(e,t)}function $s(e,t,n){q(t)?e.type.__ssrInlineRender?e.ssrRender=t:e.render=t:ne(t)&&(e.setupState=$i(t)),To(e,n)}let Ds;function To(e,t,n){const r=e.type;if(!e.render){if(!t&&Ds&&!r.render){const s=r.template||ns(e).template;if(s){const{isCustomElement:i,compilerOptions:o}=e.appContext.config,{delimiters:l,compilerOptions:c}=r,f=fe(fe({isCustomElement:i,delimiters:l},o),c);r.render=Ds(s,f)}}e.render=r.render||Ue}{const s=nn(e);it();try{bc(e)}finally{ot(),s()}}}const ea={get(e,t){return ve(e,"get",""),e[t]}};function Co(e){const t=n=>{e.exposed=n||{}};return{attrs:new Proxy(e.attrs,ea),slots:e.slots,emit:e.emit,expose:t}}function Xn(e){return e.exposed?e.exposeProxy||(e.exposeProxy=new Proxy($i(Sn(e.exposed)),{get(t,n){if(n in t)return t[n];if(n in Vt)return Vt[n](e)},has(t,n){return n in t||n in Vt}})):e.proxy}function ta(e,t=!0){return q(e)?e.displayName||e.name:e.name||t&&e.__name}function na(e){return q(e)&&"__vccOpts"in e}const ie=(e,t)=>kl(e,t,rn);function Nr(e,t,n){const r=arguments.length;return r===2?ne(t)&&!K(t)?Ln(t)?le(e,null,[t]):le(e,t):le(e,null,t):(r>3?n=Array.prototype.slice.call(arguments,2):r===3&&Ln(n)&&(n=[n]),le(e,t,n))}const ra="3.5.6";/** * @vue/runtime-dom v3.5.6 * (c) 2018-present Yuxi (Evan) You and Vue contributors * @license MIT -**/let Fr;const Ds=typeof window<"u"&&window.trustedTypes;if(Ds)try{Fr=Ds.createPolicy("vue",{createHTML:e=>e})}catch{}const Ao=Fr?e=>Fr.createHTML(e):e=>e,sa="http://www.w3.org/2000/svg",ia="http://www.w3.org/1998/Math/MathML",Ke=typeof document<"u"?document:null,js=Ke&&Ke.createElement("template"),oa={insert:(e,t,n)=>{t.insertBefore(e,n||null)},remove:e=>{const t=e.parentNode;t&&t.removeChild(e)},createElement:(e,t,n,r)=>{const s=t==="svg"?Ke.createElementNS(sa,e):t==="mathml"?Ke.createElementNS(ia,e):n?Ke.createElement(e,{is:n}):Ke.createElement(e);return e==="select"&&r&&r.multiple!=null&&s.setAttribute("multiple",r.multiple),s},createText:e=>Ke.createTextNode(e),createComment:e=>Ke.createComment(e),setText:(e,t)=>{e.nodeValue=t},setElementText:(e,t)=>{e.textContent=t},parentNode:e=>e.parentNode,nextSibling:e=>e.nextSibling,querySelector:e=>Ke.querySelector(e),setScopeId(e,t){e.setAttribute(t,"")},insertStaticContent(e,t,n,r,s,i){const o=n?n.previousSibling:t.lastChild;if(s&&(s===i||s.nextSibling))for(;t.insertBefore(s.cloneNode(!0),n),!(s===i||!(s=s.nextSibling)););else{js.innerHTML=Ao(r==="svg"?`${e}`:r==="mathml"?`${e}`:e);const l=js.content;if(r==="svg"||r==="mathml"){const c=l.firstChild;for(;c.firstChild;)l.appendChild(c.firstChild);l.removeChild(c)}t.insertBefore(l,n)}return[o?o.nextSibling:t.firstChild,n?n.previousSibling:t.lastChild]}},ze="transition",Ht="animation",zt=Symbol("_vtc"),Ro={name:String,type:String,css:{type:Boolean,default:!0},duration:[String,Number,Object],enterFromClass:String,enterActiveClass:String,enterToClass:String,appearFromClass:String,appearActiveClass:String,appearToClass:String,leaveFromClass:String,leaveActiveClass:String,leaveToClass:String},la=fe({},Wi,Ro),ca=e=>(e.displayName="Transition",e.props=la,e),Kf=ca((e,{slots:t})=>Nr(tc,aa(e),t)),at=(e,t=[])=>{K(e)?e.forEach(n=>n(...t)):e&&e(...t)},Vs=e=>e?K(e)?e.some(t=>t.length>1):e.length>1:!1;function aa(e){const t={};for(const x in e)x in Ro||(t[x]=e[x]);if(e.css===!1)return t;const{name:n="v",type:r,duration:s,enterFromClass:i=`${n}-enter-from`,enterActiveClass:o=`${n}-enter-active`,enterToClass:l=`${n}-enter-to`,appearFromClass:c=i,appearActiveClass:f=o,appearToClass:a=l,leaveFromClass:h=`${n}-leave-from`,leaveActiveClass:g=`${n}-leave-active`,leaveToClass:v=`${n}-leave-to`}=e,_=fa(s),S=_&&_[0],U=_&&_[1],{onBeforeEnter:N,onEnter:B,onEnterCancelled:p,onLeave:m,onLeaveCancelled:M,onBeforeAppear:F=N,onAppear:$=B,onAppearCancelled:j=p}=t,R=(x,W,re)=>{ft(x,W?a:l),ft(x,W?f:o),re&&re()},b=(x,W)=>{x._isLeaving=!1,ft(x,h),ft(x,v),ft(x,g),W&&W()},L=x=>(W,re)=>{const ce=x?$:B,V=()=>R(W,x,re);at(ce,[W,V]),Us(()=>{ft(W,x?c:i),Je(W,x?a:l),Vs(ce)||Bs(W,r,S,V)})};return fe(t,{onBeforeEnter(x){at(N,[x]),Je(x,i),Je(x,o)},onBeforeAppear(x){at(F,[x]),Je(x,c),Je(x,f)},onEnter:L(!1),onAppear:L(!0),onLeave(x,W){x._isLeaving=!0;const re=()=>b(x,W);Je(x,h),Je(x,g),ha(),Us(()=>{x._isLeaving&&(ft(x,h),Je(x,v),Vs(m)||Bs(x,r,U,re))}),at(m,[x,re])},onEnterCancelled(x){R(x,!1),at(p,[x])},onAppearCancelled(x){R(x,!0),at(j,[x])},onLeaveCancelled(x){b(x),at(M,[x])}})}function fa(e){if(e==null)return null;if(ne(e))return[cr(e.enter),cr(e.leave)];{const t=cr(e);return[t,t]}}function cr(e){return tl(e)}function Je(e,t){t.split(/\s+/).forEach(n=>n&&e.classList.add(n)),(e[zt]||(e[zt]=new Set)).add(t)}function ft(e,t){t.split(/\s+/).forEach(r=>r&&e.classList.remove(r));const n=e[zt];n&&(n.delete(t),n.size||(e[zt]=void 0))}function Us(e){requestAnimationFrame(()=>{requestAnimationFrame(e)})}let ua=0;function Bs(e,t,n,r){const s=e._endId=++ua,i=()=>{s===e._endId&&r()};if(n)return setTimeout(i,n);const{type:o,timeout:l,propCount:c}=da(e,t);if(!o)return r();const f=o+"end";let a=0;const h=()=>{e.removeEventListener(f,g),i()},g=v=>{v.target===e&&++a>=c&&h()};setTimeout(()=>{a(n[_]||"").split(", "),s=r(`${ze}Delay`),i=r(`${ze}Duration`),o=ks(s,i),l=r(`${Ht}Delay`),c=r(`${Ht}Duration`),f=ks(l,c);let a=null,h=0,g=0;t===ze?o>0&&(a=ze,h=o,g=i.length):t===Ht?f>0&&(a=Ht,h=f,g=c.length):(h=Math.max(o,f),a=h>0?o>f?ze:Ht:null,g=a?a===ze?i.length:c.length:0);const v=a===ze&&/\b(transform|all)(,|$)/.test(r(`${ze}Property`).toString());return{type:a,timeout:h,propCount:g,hasTransform:v}}function ks(e,t){for(;e.lengthWs(n)+Ws(e[r])))}function Ws(e){return e==="auto"?0:Number(e.slice(0,-1).replace(",","."))*1e3}function ha(){return document.body.offsetHeight}function pa(e,t,n){const r=e[zt];r&&(t=(t?[t,...r]:[...r]).join(" ")),t==null?e.removeAttribute("class"):n?e.setAttribute("class",t):e.className=t}const Ks=Symbol("_vod"),ga=Symbol("_vsh"),ma=Symbol(""),ya=/(^|;)\s*display\s*:/;function va(e,t,n){const r=e.style,s=se(n);let i=!1;if(n&&!s){if(t)if(se(t))for(const o of t.split(";")){const l=o.slice(0,o.indexOf(":")).trim();n[l]==null&&Tn(r,l,"")}else for(const o in t)n[o]==null&&Tn(r,o,"");for(const o in n)o==="display"&&(i=!0),Tn(r,o,n[o])}else if(s){if(t!==n){const o=r[ma];o&&(n+=";"+o),r.cssText=n,i=ya.test(n)}}else t&&e.removeAttribute("style");Ks in e&&(e[Ks]=i?r.display:"",e[ga]&&(r.display="none"))}const qs=/\s*!important$/;function Tn(e,t,n){if(K(n))n.forEach(r=>Tn(e,t,r));else if(n==null&&(n=""),t.startsWith("--"))e.setProperty(t,n);else{const r=ba(e,t);qs.test(n)?e.setProperty(st(r),n.replace(qs,""),"important"):e[r]=n}}const Gs=["Webkit","Moz","ms"],ar={};function ba(e,t){const n=ar[t];if(n)return n;let r=Ne(t);if(r!=="filter"&&r in e)return ar[t]=r;r=$n(r);for(let s=0;sfr||(xa.then(()=>fr=0),fr=Date.now());function Ca(e,t){const n=r=>{if(!r._vts)r._vts=Date.now();else if(r._vts<=n.attached)return;Fe(Aa(r,n.value),t,5,[r])};return n.value=e,n.attached=Ta(),n}function Aa(e,t){if(K(t)){const n=e.stopImmediatePropagation;return e.stopImmediatePropagation=()=>{n.call(e),e._stopped=!0},t.map(r=>s=>!s._stopped&&r&&r(s))}else return t}const Qs=e=>e.charCodeAt(0)===111&&e.charCodeAt(1)===110&&e.charCodeAt(2)>96&&e.charCodeAt(2)<123,Ra=(e,t,n,r,s,i)=>{const o=s==="svg";t==="class"?pa(e,r,o):t==="style"?va(e,n,r):Qt(t)?$r(t)||Sa(e,t,n,r,i):(t[0]==="."?(t=t.slice(1),!0):t[0]==="^"?(t=t.slice(1),!1):Oa(e,t,r,o))?(_a(e,t,r),!e.tagName.includes("-")&&(t==="value"||t==="checked"||t==="selected")&&Xs(e,t,r,o,i,t!=="value")):(t==="true-value"?e._trueValue=r:t==="false-value"&&(e._falseValue=r),Xs(e,t,r,o))};function Oa(e,t,n,r){if(r)return!!(t==="innerHTML"||t==="textContent"||t in e&&Qs(t)&&q(n));if(t==="spellcheck"||t==="draggable"||t==="translate"||t==="form"||t==="list"&&e.tagName==="INPUT"||t==="type"&&e.tagName==="TEXTAREA")return!1;if(t==="width"||t==="height"){const s=e.tagName;if(s==="IMG"||s==="VIDEO"||s==="CANVAS"||s==="SOURCE")return!1}return Qs(t)&&se(n)?!1:!!(t in e||e._isVueCE&&(/[A-Z]/.test(t)||!se(n)))}const Zs=e=>{const t=e.props["onUpdate:modelValue"]||!1;return K(t)?n=>wn(t,n):t};function Ma(e){e.target.composing=!0}function ei(e){const t=e.target;t.composing&&(t.composing=!1,t.dispatchEvent(new Event("input")))}const ur=Symbol("_assign"),qf={created(e,{modifiers:{lazy:t,trim:n,number:r}},s){e[ur]=Zs(s);const i=r||s.props&&s.props.type==="number";Et(e,t?"change":"input",o=>{if(o.target.composing)return;let l=e.value;n&&(l=l.trim()),i&&(l=wr(l)),e[ur](l)}),n&&Et(e,"change",()=>{e.value=e.value.trim()}),t||(Et(e,"compositionstart",Ma),Et(e,"compositionend",ei),Et(e,"change",ei))},mounted(e,{value:t}){e.value=t??""},beforeUpdate(e,{value:t,oldValue:n,modifiers:{lazy:r,trim:s,number:i}},o){if(e[ur]=Zs(o),e.composing)return;const l=(i||e.type==="number")&&!/^0\d/.test(e.value)?wr(e.value):e.value,c=t??"";l!==c&&(document.activeElement===e&&e.type!=="range"&&(r&&t===n||s&&e.value.trim()===c)||(e.value=c))}},Pa=["ctrl","shift","alt","meta"],Ia={stop:e=>e.stopPropagation(),prevent:e=>e.preventDefault(),self:e=>e.target!==e.currentTarget,ctrl:e=>!e.ctrlKey,shift:e=>!e.shiftKey,alt:e=>!e.altKey,meta:e=>!e.metaKey,left:e=>"button"in e&&e.button!==0,middle:e=>"button"in e&&e.button!==1,right:e=>"button"in e&&e.button!==2,exact:(e,t)=>Pa.some(n=>e[`${n}Key`]&&!t.includes(n))},Gf=(e,t)=>{const n=e._withMods||(e._withMods={}),r=t.join(".");return n[r]||(n[r]=(s,...i)=>{for(let o=0;o{const n=e._withKeys||(e._withKeys={}),r=t.join(".");return n[r]||(n[r]=s=>{if(!("key"in s))return;const i=st(s.key);if(t.some(o=>o===i||La[o]===i))return e(s)})},Oo=fe({patchProp:Ra},oa);let kt,ti=!1;function Na(){return kt||(kt=Lc(Oo))}function Fa(){return kt=ti?kt:Nc(Oo),ti=!0,kt}const Xf=(...e)=>{const t=Na().createApp(...e),{mount:n}=t;return t.mount=r=>{const s=Po(r);if(!s)return;const i=t._component;!q(i)&&!i.render&&!i.template&&(i.template=s.innerHTML),s.nodeType===1&&(s.textContent="");const o=n(s,!1,Mo(s));return s instanceof Element&&(s.removeAttribute("v-cloak"),s.setAttribute("data-v-app","")),o},t},zf=(...e)=>{const t=Fa().createApp(...e),{mount:n}=t;return t.mount=r=>{const s=Po(r);if(s)return n(s,!0,Mo(s))},t};function Mo(e){if(e instanceof SVGElement)return"svg";if(typeof MathMLElement=="function"&&e instanceof MathMLElement)return"mathml"}function Po(e){return se(e)?document.querySelector(e):e}const Jf=(e,t)=>{const n=e.__vccOpts||e;for(const[r,s]of t)n[r]=s;return n},Ha=window.__VP_SITE_DATA__;function os(e){return bi()?(fl(e),!0):!1}function ke(e){return typeof e=="function"?e():Fi(e)}const Io=typeof window<"u"&&typeof document<"u";typeof WorkerGlobalScope<"u"&&globalThis instanceof WorkerGlobalScope;const Qf=e=>e!=null,$a=Object.prototype.toString,Da=e=>$a.call(e)==="[object Object]",Jt=()=>{},ni=ja();function ja(){var e,t;return Io&&((e=window==null?void 0:window.navigator)==null?void 0:e.userAgent)&&(/iP(?:ad|hone|od)/.test(window.navigator.userAgent)||((t=window==null?void 0:window.navigator)==null?void 0:t.maxTouchPoints)>2&&/iPad|Macintosh/.test(window==null?void 0:window.navigator.userAgent))}function Va(e,t){function n(...r){return new Promise((s,i)=>{Promise.resolve(e(()=>t.apply(this,r),{fn:t,thisArg:this,args:r})).then(s).catch(i)})}return n}const Lo=e=>e();function Ua(e,t={}){let n,r,s=Jt;const i=l=>{clearTimeout(l),s(),s=Jt};return l=>{const c=ke(e),f=ke(t.maxWait);return n&&i(n),c<=0||f!==void 0&&f<=0?(r&&(i(r),r=null),Promise.resolve(l())):new Promise((a,h)=>{s=t.rejectOnCancel?h:a,f&&!r&&(r=setTimeout(()=>{n&&i(n),r=null,a(l())},f)),n=setTimeout(()=>{r&&i(r),r=null,a(l())},c)})}}function Ba(e=Lo){const t=oe(!0);function n(){t.value=!1}function r(){t.value=!0}const s=(...i)=>{t.value&&e(...i)};return{isActive:Bn(t),pause:n,resume:r,eventFilter:s}}function ka(e){return Yn()}function No(...e){if(e.length!==1)return Vl(...e);const t=e[0];return typeof t=="function"?Bn($l(()=>({get:t,set:Jt}))):oe(t)}function Fo(e,t,n={}){const{eventFilter:r=Lo,...s}=n;return Be(e,Va(r,t),s)}function Wa(e,t,n={}){const{eventFilter:r,...s}=n,{eventFilter:i,pause:o,resume:l,isActive:c}=Ba(r);return{stop:Fo(e,t,{...s,eventFilter:i}),pause:o,resume:l,isActive:c}}function ls(e,t=!0,n){ka()?It(e,n):t?e():kn(e)}function Zf(e,t,n={}){const{debounce:r=0,maxWait:s=void 0,...i}=n;return Fo(e,t,{...i,eventFilter:Ua(r,{maxWait:s})})}function eu(e,t,n){let r;ae(n)?r={evaluating:n}:r={};const{lazy:s=!1,evaluating:i=void 0,shallow:o=!0,onError:l=Jt}=r,c=oe(!s),f=o?zr(t):oe(t);let a=0;return ss(async h=>{if(!c.value)return;a++;const g=a;let v=!1;i&&Promise.resolve().then(()=>{i.value=!0});try{const _=await e(S=>{h(()=>{i&&(i.value=!1),v||S()})});g===a&&(f.value=_)}catch(_){l(_)}finally{i&&g===a&&(i.value=!1),v=!0}}),s?ie(()=>(c.value=!0,f.value)):f}const He=Io?window:void 0;function Ho(e){var t;const n=ke(e);return(t=n==null?void 0:n.$el)!=null?t:n}function Pt(...e){let t,n,r,s;if(typeof e[0]=="string"||Array.isArray(e[0])?([n,r,s]=e,t=He):[t,n,r,s]=e,!t)return Jt;Array.isArray(n)||(n=[n]),Array.isArray(r)||(r=[r]);const i=[],o=()=>{i.forEach(a=>a()),i.length=0},l=(a,h,g,v)=>(a.addEventListener(h,g,v),()=>a.removeEventListener(h,g,v)),c=Be(()=>[Ho(t),ke(s)],([a,h])=>{if(o(),!a)return;const g=Da(h)?{...h}:h;i.push(...n.flatMap(v=>r.map(_=>l(a,v,_,g))))},{immediate:!0,flush:"post"}),f=()=>{c(),o()};return os(f),f}function Ka(e){return typeof e=="function"?e:typeof e=="string"?t=>t.key===e:Array.isArray(e)?t=>e.includes(t.key):()=>!0}function tu(...e){let t,n,r={};e.length===3?(t=e[0],n=e[1],r=e[2]):e.length===2?typeof e[1]=="object"?(t=!0,n=e[0],r=e[1]):(t=e[0],n=e[1]):(t=!0,n=e[0]);const{target:s=He,eventName:i="keydown",passive:o=!1,dedupe:l=!1}=r,c=Ka(t);return Pt(s,i,a=>{a.repeat&&ke(l)||c(a)&&n(a)},o)}function qa(){const e=oe(!1),t=Yn();return t&&It(()=>{e.value=!0},t),e}function Ga(e){const t=qa();return ie(()=>(t.value,!!e()))}function $o(e,t={}){const{window:n=He}=t,r=Ga(()=>n&&"matchMedia"in n&&typeof n.matchMedia=="function");let s;const i=oe(!1),o=f=>{i.value=f.matches},l=()=>{s&&("removeEventListener"in s?s.removeEventListener("change",o):s.removeListener(o))},c=ss(()=>{r.value&&(l(),s=n.matchMedia(ke(e)),"addEventListener"in s?s.addEventListener("change",o):s.addListener(o),i.value=s.matches)});return os(()=>{c(),l(),s=void 0}),i}const yn=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{},vn="__vueuse_ssr_handlers__",Ya=Xa();function Xa(){return vn in yn||(yn[vn]=yn[vn]||{}),yn[vn]}function Do(e,t){return Ya[e]||t}function jo(e){return $o("(prefers-color-scheme: dark)",e)}function za(e){return e==null?"any":e instanceof Set?"set":e instanceof Map?"map":e instanceof Date?"date":typeof e=="boolean"?"boolean":typeof e=="string"?"string":typeof e=="object"?"object":Number.isNaN(e)?"any":"number"}const Ja={boolean:{read:e=>e==="true",write:e=>String(e)},object:{read:e=>JSON.parse(e),write:e=>JSON.stringify(e)},number:{read:e=>Number.parseFloat(e),write:e=>String(e)},any:{read:e=>e,write:e=>String(e)},string:{read:e=>e,write:e=>String(e)},map:{read:e=>new Map(JSON.parse(e)),write:e=>JSON.stringify(Array.from(e.entries()))},set:{read:e=>new Set(JSON.parse(e)),write:e=>JSON.stringify(Array.from(e))},date:{read:e=>new Date(e),write:e=>e.toISOString()}},ri="vueuse-storage";function cs(e,t,n,r={}){var s;const{flush:i="pre",deep:o=!0,listenToStorageChanges:l=!0,writeDefaults:c=!0,mergeDefaults:f=!1,shallow:a,window:h=He,eventFilter:g,onError:v=b=>{console.error(b)},initOnMounted:_}=r,S=(a?zr:oe)(typeof t=="function"?t():t);if(!n)try{n=Do("getDefaultStorage",()=>{var b;return(b=He)==null?void 0:b.localStorage})()}catch(b){v(b)}if(!n)return S;const U=ke(t),N=za(U),B=(s=r.serializer)!=null?s:Ja[N],{pause:p,resume:m}=Wa(S,()=>F(S.value),{flush:i,deep:o,eventFilter:g});h&&l&&ls(()=>{n instanceof Storage?Pt(h,"storage",j):Pt(h,ri,R),_&&j()}),_||j();function M(b,L){if(h){const x={key:e,oldValue:b,newValue:L,storageArea:n};h.dispatchEvent(n instanceof Storage?new StorageEvent("storage",x):new CustomEvent(ri,{detail:x}))}}function F(b){try{const L=n.getItem(e);if(b==null)M(L,null),n.removeItem(e);else{const x=B.write(b);L!==x&&(n.setItem(e,x),M(L,x))}}catch(L){v(L)}}function $(b){const L=b?b.newValue:n.getItem(e);if(L==null)return c&&U!=null&&n.setItem(e,B.write(U)),U;if(!b&&f){const x=B.read(L);return typeof f=="function"?f(x,U):N==="object"&&!Array.isArray(x)?{...U,...x}:x}else return typeof L!="string"?L:B.read(L)}function j(b){if(!(b&&b.storageArea!==n)){if(b&&b.key==null){S.value=U;return}if(!(b&&b.key!==e)){p();try{(b==null?void 0:b.newValue)!==B.write(S.value)&&(S.value=$(b))}catch(L){v(L)}finally{b?kn(m):m()}}}}function R(b){j(b.detail)}return S}const Qa="*,*::before,*::after{-webkit-transition:none!important;-moz-transition:none!important;-o-transition:none!important;-ms-transition:none!important;transition:none!important}";function Za(e={}){const{selector:t="html",attribute:n="class",initialValue:r="auto",window:s=He,storage:i,storageKey:o="vueuse-color-scheme",listenToStorageChanges:l=!0,storageRef:c,emitAuto:f,disableTransition:a=!0}=e,h={auto:"",light:"light",dark:"dark",...e.modes||{}},g=jo({window:s}),v=ie(()=>g.value?"dark":"light"),_=c||(o==null?No(r):cs(o,r,i,{window:s,listenToStorageChanges:l})),S=ie(()=>_.value==="auto"?v.value:_.value),U=Do("updateHTMLAttrs",(m,M,F)=>{const $=typeof m=="string"?s==null?void 0:s.document.querySelector(m):Ho(m);if(!$)return;const j=new Set,R=new Set;let b=null;if(M==="class"){const x=F.split(/\s/g);Object.values(h).flatMap(W=>(W||"").split(/\s/g)).filter(Boolean).forEach(W=>{x.includes(W)?j.add(W):R.add(W)})}else b={key:M,value:F};if(j.size===0&&R.size===0&&b===null)return;let L;a&&(L=s.document.createElement("style"),L.appendChild(document.createTextNode(Qa)),s.document.head.appendChild(L));for(const x of j)$.classList.add(x);for(const x of R)$.classList.remove(x);b&&$.setAttribute(b.key,b.value),a&&(s.getComputedStyle(L).opacity,document.head.removeChild(L))});function N(m){var M;U(t,n,(M=h[m])!=null?M:m)}function B(m){e.onChanged?e.onChanged(m,N):N(m)}Be(S,B,{flush:"post",immediate:!0}),ls(()=>B(S.value));const p=ie({get(){return f?_.value:S.value},set(m){_.value=m}});try{return Object.assign(p,{store:_,system:v,state:S})}catch{return p}}function ef(e={}){const{valueDark:t="dark",valueLight:n="",window:r=He}=e,s=Za({...e,onChanged:(l,c)=>{var f;e.onChanged?(f=e.onChanged)==null||f.call(e,l==="dark",c,l):c(l)},modes:{dark:t,light:n}}),i=ie(()=>s.system?s.system.value:jo({window:r}).value?"dark":"light");return ie({get(){return s.value==="dark"},set(l){const c=l?"dark":"light";i.value===c?s.value="auto":s.value=c}})}function dr(e){return typeof Window<"u"&&e instanceof Window?e.document.documentElement:typeof Document<"u"&&e instanceof Document?e.documentElement:e}function nu(e,t,n={}){const{window:r=He}=n;return cs(e,t,r==null?void 0:r.localStorage,n)}function Vo(e){const t=window.getComputedStyle(e);if(t.overflowX==="scroll"||t.overflowY==="scroll"||t.overflowX==="auto"&&e.clientWidth1?!0:(t.preventDefault&&t.preventDefault(),!1)}const hr=new WeakMap;function ru(e,t=!1){const n=oe(t);let r=null,s="";Be(No(e),l=>{const c=dr(ke(l));if(c){const f=c;if(hr.get(f)||hr.set(f,f.style.overflow),f.style.overflow!=="hidden"&&(s=f.style.overflow),f.style.overflow==="hidden")return n.value=!0;if(n.value)return f.style.overflow="hidden"}},{immediate:!0});const i=()=>{const l=dr(ke(e));!l||n.value||(ni&&(r=Pt(l,"touchmove",c=>{tf(c)},{passive:!1})),l.style.overflow="hidden",n.value=!0)},o=()=>{const l=dr(ke(e));!l||!n.value||(ni&&(r==null||r()),l.style.overflow=s,hr.delete(l),n.value=!1)};return os(o),ie({get(){return n.value},set(l){l?i():o()}})}function su(e,t,n={}){const{window:r=He}=n;return cs(e,t,r==null?void 0:r.sessionStorage,n)}function iu(e={}){const{window:t=He,behavior:n="auto"}=e;if(!t)return{x:oe(0),y:oe(0)};const r=oe(t.scrollX),s=oe(t.scrollY),i=ie({get(){return r.value},set(l){scrollTo({left:l,behavior:n})}}),o=ie({get(){return s.value},set(l){scrollTo({top:l,behavior:n})}});return Pt(t,"scroll",()=>{r.value=t.scrollX,s.value=t.scrollY},{capture:!1,passive:!0}),{x:i,y:o}}function ou(e={}){const{window:t=He,initialWidth:n=Number.POSITIVE_INFINITY,initialHeight:r=Number.POSITIVE_INFINITY,listenOrientation:s=!0,includeScrollbar:i=!0,type:o="inner"}=e,l=oe(n),c=oe(r),f=()=>{t&&(o==="outer"?(l.value=t.outerWidth,c.value=t.outerHeight):i?(l.value=t.innerWidth,c.value=t.innerHeight):(l.value=t.document.documentElement.clientWidth,c.value=t.document.documentElement.clientHeight))};if(f(),ls(f),Pt("resize",f,{passive:!0}),s){const a=$o("(orientation: portrait)");Be(a,()=>f())}return{width:l,height:c}}const pr={BASE_URL:"/YAXArrays.jl/previews/PR439/",DEV:!1,MODE:"production",PROD:!0,SSR:!1};var gr={};const Uo=/^(?:[a-z]+:|\/\/)/i,nf="vitepress-theme-appearance",rf=/#.*$/,sf=/[?#].*$/,of=/(?:(^|\/)index)?\.(?:md|html)$/,ge=typeof document<"u",Bo={relativePath:"404.md",filePath:"",title:"404",description:"Not Found",headers:[],frontmatter:{sidebar:!1,layout:"page"},lastUpdated:0,isNotFound:!0};function lf(e,t,n=!1){if(t===void 0)return!1;if(e=si(`/${e}`),n)return new RegExp(t).test(e);if(si(t)!==e)return!1;const r=t.match(rf);return r?(ge?location.hash:"")===r[0]:!0}function si(e){return decodeURI(e).replace(sf,"").replace(of,"$1")}function cf(e){return Uo.test(e)}function af(e,t){return Object.keys((e==null?void 0:e.locales)||{}).find(n=>n!=="root"&&!cf(n)&&lf(t,`/${n}/`,!0))||"root"}function ff(e,t){var r,s,i,o,l,c,f;const n=af(e,t);return Object.assign({},e,{localeIndex:n,lang:((r=e.locales[n])==null?void 0:r.lang)??e.lang,dir:((s=e.locales[n])==null?void 0:s.dir)??e.dir,title:((i=e.locales[n])==null?void 0:i.title)??e.title,titleTemplate:((o=e.locales[n])==null?void 0:o.titleTemplate)??e.titleTemplate,description:((l=e.locales[n])==null?void 0:l.description)??e.description,head:Wo(e.head,((c=e.locales[n])==null?void 0:c.head)??[]),themeConfig:{...e.themeConfig,...(f=e.locales[n])==null?void 0:f.themeConfig}})}function ko(e,t){const n=t.title||e.title,r=t.titleTemplate??e.titleTemplate;if(typeof r=="string"&&r.includes(":title"))return r.replace(/:title/g,n);const s=uf(e.title,r);return n===s.slice(3)?n:`${n}${s}`}function uf(e,t){return t===!1?"":t===!0||t===void 0?` | ${e}`:e===t?"":` | ${t}`}function df(e,t){const[n,r]=t;if(n!=="meta")return!1;const s=Object.entries(r)[0];return s==null?!1:e.some(([i,o])=>i===n&&o[s[0]]===s[1])}function Wo(e,t){return[...e.filter(n=>!df(t,n)),...t]}const hf=/[\u0000-\u001F"#$&*+,:;<=>?[\]^`{|}\u007F]/g,pf=/^[a-z]:/i;function ii(e){const t=pf.exec(e),n=t?t[0]:"";return n+e.slice(n.length).replace(hf,"_").replace(/(^|\/)_+(?=[^/]*$)/,"$1")}const mr=new Set;function gf(e){if(mr.size===0){const n=typeof process=="object"&&(gr==null?void 0:gr.VITE_EXTRA_EXTENSIONS)||(pr==null?void 0:pr.VITE_EXTRA_EXTENSIONS)||"";("3g2,3gp,aac,ai,apng,au,avif,bin,bmp,cer,class,conf,crl,css,csv,dll,doc,eps,epub,exe,gif,gz,ics,ief,jar,jpe,jpeg,jpg,js,json,jsonld,m4a,man,mid,midi,mjs,mov,mp2,mp3,mp4,mpe,mpeg,mpg,mpp,oga,ogg,ogv,ogx,opus,otf,p10,p7c,p7m,p7s,pdf,png,ps,qt,roff,rtf,rtx,ser,svg,t,tif,tiff,tr,ts,tsv,ttf,txt,vtt,wav,weba,webm,webp,woff,woff2,xhtml,xml,yaml,yml,zip"+(n&&typeof n=="string"?","+n:"")).split(",").forEach(r=>mr.add(r))}const t=e.split(".").pop();return t==null||!mr.has(t.toLowerCase())}function lu(e){return e.replace(/[|\\{}()[\]^$+*?.]/g,"\\$&").replace(/-/g,"\\x2d")}const mf=Symbol(),yt=zr(Ha);function cu(e){const t=ie(()=>ff(yt.value,e.data.relativePath)),n=t.value.appearance,r=n==="force-dark"?oe(!0):n?ef({storageKey:nf,initialValue:()=>n==="dark"?"dark":"auto",...typeof n=="object"?n:{}}):oe(!1),s=oe(ge?location.hash:"");return ge&&window.addEventListener("hashchange",()=>{s.value=location.hash}),Be(()=>e.data,()=>{s.value=ge?location.hash:""}),{site:t,theme:ie(()=>t.value.themeConfig),page:ie(()=>e.data),frontmatter:ie(()=>e.data.frontmatter),params:ie(()=>e.data.params),lang:ie(()=>t.value.lang),dir:ie(()=>e.data.frontmatter.dir||t.value.dir),localeIndex:ie(()=>t.value.localeIndex||"root"),title:ie(()=>ko(t.value,e.data)),description:ie(()=>e.data.description||t.value.description),isDark:r,hash:ie(()=>s.value)}}function yf(){const e=Mt(mf);if(!e)throw new Error("vitepress data not properly injected in app");return e}function vf(e,t){return`${e}${t}`.replace(/\/+/g,"/")}function oi(e){return Uo.test(e)||!e.startsWith("/")?e:vf(yt.value.base,e)}function bf(e){let t=e.replace(/\.html$/,"");if(t=decodeURIComponent(t),t=t.replace(/\/$/,"/index"),ge){const n="/YAXArrays.jl/previews/PR439/";t=ii(t.slice(n.length).replace(/\//g,"_")||"index")+".md";let r=__VP_HASH_MAP__[t.toLowerCase()];if(r||(t=t.endsWith("_index.md")?t.slice(0,-9)+".md":t.slice(0,-3)+"_index.md",r=__VP_HASH_MAP__[t.toLowerCase()]),!r)return null;t=`${n}assets/${t}.${r}.js`}else t=`./${ii(t.slice(1).replace(/\//g,"_"))}.md.js`;return t}let Cn=[];function au(e){Cn.push(e),Kn(()=>{Cn=Cn.filter(t=>t!==e)})}function _f(){let e=yt.value.scrollOffset,t=0,n=24;if(typeof e=="object"&&"padding"in e&&(n=e.padding,e=e.selector),typeof e=="number")t=e;else if(typeof e=="string")t=li(e,n);else if(Array.isArray(e))for(const r of e){const s=li(r,n);if(s){t=s;break}}return t}function li(e,t){const n=document.querySelector(e);if(!n)return 0;const r=n.getBoundingClientRect().bottom;return r<0?0:r+t}const wf=Symbol(),Ko="http://a.com",Sf=()=>({path:"/",component:null,data:Bo});function fu(e,t){const n=Un(Sf()),r={route:n,go:s};async function s(l=ge?location.href:"/"){var c,f;l=yr(l),await((c=r.onBeforeRouteChange)==null?void 0:c.call(r,l))!==!1&&(ge&&l!==yr(location.href)&&(history.replaceState({scrollPosition:window.scrollY},""),history.pushState({},"",l)),await o(l),await((f=r.onAfterRouteChanged)==null?void 0:f.call(r,l)))}let i=null;async function o(l,c=0,f=!1){var g;if(await((g=r.onBeforePageLoad)==null?void 0:g.call(r,l))===!1)return;const a=new URL(l,Ko),h=i=a.pathname;try{let v=await e(h);if(!v)throw new Error(`Page not found: ${h}`);if(i===h){i=null;const{default:_,__pageData:S}=v;if(!_)throw new Error(`Invalid route component: ${_}`);n.path=ge?h:oi(h),n.component=Sn(_),n.data=Sn(S),ge&&kn(()=>{let U=yt.value.base+S.relativePath.replace(/(?:(^|\/)index)?\.md$/,"$1");if(!yt.value.cleanUrls&&!U.endsWith("/")&&(U+=".html"),U!==a.pathname&&(a.pathname=U,l=U+a.search+a.hash,history.replaceState({},"",l)),a.hash&&!c){let N=null;try{N=document.getElementById(decodeURIComponent(a.hash).slice(1))}catch(B){console.warn(B)}if(N){ci(N,a.hash);return}}window.scrollTo(0,c)})}}catch(v){if(!/fetch|Page not found/.test(v.message)&&!/^\/404(\.html|\/)?$/.test(l)&&console.error(v),!f)try{const _=await fetch(yt.value.base+"hashmap.json");window.__VP_HASH_MAP__=await _.json(),await o(l,c,!0);return}catch{}if(i===h){i=null,n.path=ge?h:oi(h),n.component=t?Sn(t):null;const _=ge?h.replace(/(^|\/)$/,"$1index").replace(/(\.html)?$/,".md").replace(/^\//,""):"404.md";n.data={...Bo,relativePath:_}}}}return ge&&(history.state===null&&history.replaceState({},""),window.addEventListener("click",l=>{if(l.defaultPrevented||!(l.target instanceof Element)||l.target.closest("button")||l.button!==0||l.ctrlKey||l.shiftKey||l.altKey||l.metaKey)return;const c=l.target.closest("a");if(!c||c.closest(".vp-raw")||c.hasAttribute("download")||c.hasAttribute("target"))return;const f=c.getAttribute("href")??(c instanceof SVGAElement?c.getAttribute("xlink:href"):null);if(f==null)return;const{href:a,origin:h,pathname:g,hash:v,search:_}=new URL(f,c.baseURI),S=new URL(location.href);h===S.origin&&gf(g)&&(l.preventDefault(),g===S.pathname&&_===S.search?(v!==S.hash&&(history.pushState({},"",a),window.dispatchEvent(new HashChangeEvent("hashchange",{oldURL:S.href,newURL:a}))),v?ci(c,v,c.classList.contains("header-anchor")):window.scrollTo(0,0)):s(a))},{capture:!0}),window.addEventListener("popstate",async l=>{var c;l.state!==null&&(await o(yr(location.href),l.state&&l.state.scrollPosition||0),(c=r.onAfterRouteChanged)==null||c.call(r,location.href))}),window.addEventListener("hashchange",l=>{l.preventDefault()})),r}function Ef(){const e=Mt(wf);if(!e)throw new Error("useRouter() is called without provider.");return e}function qo(){return Ef().route}function ci(e,t,n=!1){let r=null;try{r=e.classList.contains("header-anchor")?e:document.getElementById(decodeURIComponent(t).slice(1))}catch(s){console.warn(s)}if(r){let s=function(){!n||Math.abs(o-window.scrollY)>window.innerHeight?window.scrollTo(0,o):window.scrollTo({left:0,top:o,behavior:"smooth"})};const i=parseInt(window.getComputedStyle(r).paddingTop,10),o=window.scrollY+r.getBoundingClientRect().top-_f()+i;requestAnimationFrame(s)}}function yr(e){const t=new URL(e,Ko);return t.pathname=t.pathname.replace(/(^|\/)index(\.html)?$/,"$1"),yt.value.cleanUrls?t.pathname=t.pathname.replace(/\.html$/,""):!t.pathname.endsWith("/")&&!t.pathname.endsWith(".html")&&(t.pathname+=".html"),t.pathname+t.search+t.hash}const vr=()=>Cn.forEach(e=>e()),uu=Zr({name:"VitePressContent",props:{as:{type:[Object,String],default:"div"}},setup(e){const t=qo(),{site:n}=yf();return()=>Nr(e.as,n.value.contentProps??{style:{position:"relative"}},[t.component?Nr(t.component,{onVnodeMounted:vr,onVnodeUpdated:vr,onVnodeUnmounted:vr}):"404 Page Not Found"])}}),xf="modulepreload",Tf=function(e){return"/YAXArrays.jl/previews/PR439/"+e},ai={},du=function(t,n,r){let s=Promise.resolve();if(n&&n.length>0){document.getElementsByTagName("link");const o=document.querySelector("meta[property=csp-nonce]"),l=(o==null?void 0:o.nonce)||(o==null?void 0:o.getAttribute("nonce"));s=Promise.allSettled(n.map(c=>{if(c=Tf(c),c in ai)return;ai[c]=!0;const f=c.endsWith(".css"),a=f?'[rel="stylesheet"]':"";if(document.querySelector(`link[href="${c}"]${a}`))return;const h=document.createElement("link");if(h.rel=f?"stylesheet":xf,f||(h.as="script"),h.crossOrigin="",h.href=c,l&&h.setAttribute("nonce",l),document.head.appendChild(h),f)return new Promise((g,v)=>{h.addEventListener("load",g),h.addEventListener("error",()=>v(new Error(`Unable to preload CSS for ${c}`)))})}))}function i(o){const l=new Event("vite:preloadError",{cancelable:!0});if(l.payload=o,window.dispatchEvent(l),!l.defaultPrevented)throw o}return s.then(o=>{for(const l of o||[])l.status==="rejected"&&i(l.reason);return t().catch(i)})},hu=Zr({setup(e,{slots:t}){const n=oe(!1);return It(()=>{n.value=!0}),()=>n.value&&t.default?t.default():null}});function pu(){ge&&window.addEventListener("click",e=>{var n;const t=e.target;if(t.matches(".vp-code-group input")){const r=(n=t.parentElement)==null?void 0:n.parentElement;if(!r)return;const s=Array.from(r.querySelectorAll("input")).indexOf(t);if(s<0)return;const i=r.querySelector(".blocks");if(!i)return;const o=Array.from(i.children).find(f=>f.classList.contains("active"));if(!o)return;const l=i.children[s];if(!l||o===l)return;o.classList.remove("active"),l.classList.add("active");const c=r==null?void 0:r.querySelector(`label[for="${t.id}"]`);c==null||c.scrollIntoView({block:"nearest"})}})}function gu(){if(ge){const e=new WeakMap;window.addEventListener("click",t=>{var r;const n=t.target;if(n.matches('div[class*="language-"] > button.copy')){const s=n.parentElement,i=(r=n.nextElementSibling)==null?void 0:r.nextElementSibling;if(!s||!i)return;const o=/language-(shellscript|shell|bash|sh|zsh)/.test(s.className),l=[".vp-copy-ignore",".diff.remove"],c=i.cloneNode(!0);c.querySelectorAll(l.join(",")).forEach(a=>a.remove());let f=c.textContent||"";o&&(f=f.replace(/^ *(\$|>) /gm,"").trim()),Cf(f).then(()=>{n.classList.add("copied"),clearTimeout(e.get(n));const a=setTimeout(()=>{n.classList.remove("copied"),n.blur(),e.delete(n)},2e3);e.set(n,a)})}})}}async function Cf(e){try{return navigator.clipboard.writeText(e)}catch{const t=document.createElement("textarea"),n=document.activeElement;t.value=e,t.setAttribute("readonly",""),t.style.contain="strict",t.style.position="absolute",t.style.left="-9999px",t.style.fontSize="12pt";const r=document.getSelection(),s=r?r.rangeCount>0&&r.getRangeAt(0):null;document.body.appendChild(t),t.select(),t.selectionStart=0,t.selectionEnd=e.length,document.execCommand("copy"),document.body.removeChild(t),s&&(r.removeAllRanges(),r.addRange(s)),n&&n.focus()}}function mu(e,t){let n=!0,r=[];const s=i=>{if(n){n=!1,i.forEach(l=>{const c=br(l);for(const f of document.head.children)if(f.isEqualNode(c)){r.push(f);return}});return}const o=i.map(br);r.forEach((l,c)=>{const f=o.findIndex(a=>a==null?void 0:a.isEqualNode(l??null));f!==-1?delete o[f]:(l==null||l.remove(),delete r[c])}),o.forEach(l=>l&&document.head.appendChild(l)),r=[...r,...o].filter(Boolean)};ss(()=>{const i=e.data,o=t.value,l=i&&i.description,c=i&&i.frontmatter.head||[],f=ko(o,i);f!==document.title&&(document.title=f);const a=l||o.description;let h=document.querySelector("meta[name=description]");h?h.getAttribute("content")!==a&&h.setAttribute("content",a):br(["meta",{name:"description",content:a}]),s(Wo(o.head,Rf(c)))})}function br([e,t,n]){const r=document.createElement(e);for(const s in t)r.setAttribute(s,t[s]);return n&&(r.innerHTML=n),e==="script"&&!t.async&&(r.async=!1),r}function Af(e){return e[0]==="meta"&&e[1]&&e[1].name==="description"}function Rf(e){return e.filter(t=>!Af(t))}const _r=new Set,Go=()=>document.createElement("link"),Of=e=>{const t=Go();t.rel="prefetch",t.href=e,document.head.appendChild(t)},Mf=e=>{const t=new XMLHttpRequest;t.open("GET",e,t.withCredentials=!0),t.send()};let bn;const Pf=ge&&(bn=Go())&&bn.relList&&bn.relList.supports&&bn.relList.supports("prefetch")?Of:Mf;function yu(){if(!ge||!window.IntersectionObserver)return;let e;if((e=navigator.connection)&&(e.saveData||/2g/.test(e.effectiveType)))return;const t=window.requestIdleCallback||setTimeout;let n=null;const r=()=>{n&&n.disconnect(),n=new IntersectionObserver(i=>{i.forEach(o=>{if(o.isIntersecting){const l=o.target;n.unobserve(l);const{pathname:c}=l;if(!_r.has(c)){_r.add(c);const f=bf(c);f&&Pf(f)}}})}),t(()=>{document.querySelectorAll("#app a").forEach(i=>{const{hostname:o,pathname:l}=new URL(i.href instanceof SVGAnimatedString?i.href.animVal:i.href,i.baseURI),c=l.match(/\.\w+$/);c&&c[0]!==".html"||i.target!=="_blank"&&o===location.hostname&&(l!==location.pathname?n.observe(i):_r.add(l))})})};It(r);const s=qo();Be(()=>s.path,r),Kn(()=>{n&&n.disconnect()})}export{zi as $,_f as A,Ff as B,$f as C,zr as D,au as E,Se as F,le as G,Hf as H,Uo as I,qo as J,Yc as K,Mt as L,ou as M,Vr as N,tu as O,kn as P,iu as Q,ge as R,Bn as S,Kf as T,Nf as U,du as V,ru as W,Cc as X,jf as Y,Yf as Z,Jf as _,Eo as a,Gf as a0,Vf as a1,kf as a2,Un as a3,Vl as a4,Nr as a5,mu as a6,wf as a7,cu as a8,mf as a9,uu as aa,hu as ab,yt as ac,zf as ad,fu as ae,bf as af,yu as ag,gu as ah,pu as ai,ke as aj,Ho as ak,Qf as al,os as am,eu as an,su as ao,nu as ap,Zf as aq,Ef as ar,Pt as as,If as at,qf as au,ae as av,Lf as aw,Sn as ax,Xf as ay,lu as az,Ir as b,Bf as c,Zr as d,Wf as e,gf as f,oi as g,ie as h,cf as i,So as j,Fi as k,lf as l,$o as m,Ur as n,Pr as o,oe as p,Be as q,Df as r,ss as s,cl as t,yf as u,It as v,Xl as w,Kn as x,Uf as y,dc as z}; +**/let Fr;const js=typeof window<"u"&&window.trustedTypes;if(js)try{Fr=js.createPolicy("vue",{createHTML:e=>e})}catch{}const Ao=Fr?e=>Fr.createHTML(e):e=>e,sa="http://www.w3.org/2000/svg",ia="http://www.w3.org/1998/Math/MathML",Ke=typeof document<"u"?document:null,Vs=Ke&&Ke.createElement("template"),oa={insert:(e,t,n)=>{t.insertBefore(e,n||null)},remove:e=>{const t=e.parentNode;t&&t.removeChild(e)},createElement:(e,t,n,r)=>{const s=t==="svg"?Ke.createElementNS(sa,e):t==="mathml"?Ke.createElementNS(ia,e):n?Ke.createElement(e,{is:n}):Ke.createElement(e);return e==="select"&&r&&r.multiple!=null&&s.setAttribute("multiple",r.multiple),s},createText:e=>Ke.createTextNode(e),createComment:e=>Ke.createComment(e),setText:(e,t)=>{e.nodeValue=t},setElementText:(e,t)=>{e.textContent=t},parentNode:e=>e.parentNode,nextSibling:e=>e.nextSibling,querySelector:e=>Ke.querySelector(e),setScopeId(e,t){e.setAttribute(t,"")},insertStaticContent(e,t,n,r,s,i){const o=n?n.previousSibling:t.lastChild;if(s&&(s===i||s.nextSibling))for(;t.insertBefore(s.cloneNode(!0),n),!(s===i||!(s=s.nextSibling)););else{Vs.innerHTML=Ao(r==="svg"?`${e}`:r==="mathml"?`${e}`:e);const l=Vs.content;if(r==="svg"||r==="mathml"){const c=l.firstChild;for(;c.firstChild;)l.appendChild(c.firstChild);l.removeChild(c)}t.insertBefore(l,n)}return[o?o.nextSibling:t.firstChild,n?n.previousSibling:t.lastChild]}},ze="transition",Ht="animation",zt=Symbol("_vtc"),Ro={name:String,type:String,css:{type:Boolean,default:!0},duration:[String,Number,Object],enterFromClass:String,enterActiveClass:String,enterToClass:String,appearFromClass:String,appearActiveClass:String,appearToClass:String,leaveFromClass:String,leaveActiveClass:String,leaveToClass:String},la=fe({},Ki,Ro),ca=e=>(e.displayName="Transition",e.props=la,e),Kf=ca((e,{slots:t})=>Nr(tc,aa(e),t)),at=(e,t=[])=>{K(e)?e.forEach(n=>n(...t)):e&&e(...t)},Us=e=>e?K(e)?e.some(t=>t.length>1):e.length>1:!1;function aa(e){const t={};for(const x in e)x in Ro||(t[x]=e[x]);if(e.css===!1)return t;const{name:n="v",type:r,duration:s,enterFromClass:i=`${n}-enter-from`,enterActiveClass:o=`${n}-enter-active`,enterToClass:l=`${n}-enter-to`,appearFromClass:c=i,appearActiveClass:f=o,appearToClass:a=l,leaveFromClass:h=`${n}-leave-from`,leaveActiveClass:g=`${n}-leave-active`,leaveToClass:v=`${n}-leave-to`}=e,_=fa(s),S=_&&_[0],U=_&&_[1],{onBeforeEnter:N,onEnter:B,onEnterCancelled:p,onLeave:m,onLeaveCancelled:M,onBeforeAppear:F=N,onAppear:$=B,onAppearCancelled:j=p}=t,R=(x,W,re)=>{ft(x,W?a:l),ft(x,W?f:o),re&&re()},b=(x,W)=>{x._isLeaving=!1,ft(x,h),ft(x,v),ft(x,g),W&&W()},L=x=>(W,re)=>{const ce=x?$:B,V=()=>R(W,x,re);at(ce,[W,V]),Bs(()=>{ft(W,x?c:i),Je(W,x?a:l),Us(ce)||ks(W,r,S,V)})};return fe(t,{onBeforeEnter(x){at(N,[x]),Je(x,i),Je(x,o)},onBeforeAppear(x){at(F,[x]),Je(x,c),Je(x,f)},onEnter:L(!1),onAppear:L(!0),onLeave(x,W){x._isLeaving=!0;const re=()=>b(x,W);Je(x,h),Je(x,g),ha(),Bs(()=>{x._isLeaving&&(ft(x,h),Je(x,v),Us(m)||ks(x,r,U,re))}),at(m,[x,re])},onEnterCancelled(x){R(x,!1),at(p,[x])},onAppearCancelled(x){R(x,!0),at(j,[x])},onLeaveCancelled(x){b(x),at(M,[x])}})}function fa(e){if(e==null)return null;if(ne(e))return[cr(e.enter),cr(e.leave)];{const t=cr(e);return[t,t]}}function cr(e){return tl(e)}function Je(e,t){t.split(/\s+/).forEach(n=>n&&e.classList.add(n)),(e[zt]||(e[zt]=new Set)).add(t)}function ft(e,t){t.split(/\s+/).forEach(r=>r&&e.classList.remove(r));const n=e[zt];n&&(n.delete(t),n.size||(e[zt]=void 0))}function Bs(e){requestAnimationFrame(()=>{requestAnimationFrame(e)})}let ua=0;function ks(e,t,n,r){const s=e._endId=++ua,i=()=>{s===e._endId&&r()};if(n)return setTimeout(i,n);const{type:o,timeout:l,propCount:c}=da(e,t);if(!o)return r();const f=o+"end";let a=0;const h=()=>{e.removeEventListener(f,g),i()},g=v=>{v.target===e&&++a>=c&&h()};setTimeout(()=>{a(n[_]||"").split(", "),s=r(`${ze}Delay`),i=r(`${ze}Duration`),o=Ws(s,i),l=r(`${Ht}Delay`),c=r(`${Ht}Duration`),f=Ws(l,c);let a=null,h=0,g=0;t===ze?o>0&&(a=ze,h=o,g=i.length):t===Ht?f>0&&(a=Ht,h=f,g=c.length):(h=Math.max(o,f),a=h>0?o>f?ze:Ht:null,g=a?a===ze?i.length:c.length:0);const v=a===ze&&/\b(transform|all)(,|$)/.test(r(`${ze}Property`).toString());return{type:a,timeout:h,propCount:g,hasTransform:v}}function Ws(e,t){for(;e.lengthKs(n)+Ks(e[r])))}function Ks(e){return e==="auto"?0:Number(e.slice(0,-1).replace(",","."))*1e3}function ha(){return document.body.offsetHeight}function pa(e,t,n){const r=e[zt];r&&(t=(t?[t,...r]:[...r]).join(" ")),t==null?e.removeAttribute("class"):n?e.setAttribute("class",t):e.className=t}const qs=Symbol("_vod"),ga=Symbol("_vsh"),ma=Symbol(""),ya=/(^|;)\s*display\s*:/;function va(e,t,n){const r=e.style,s=se(n);let i=!1;if(n&&!s){if(t)if(se(t))for(const o of t.split(";")){const l=o.slice(0,o.indexOf(":")).trim();n[l]==null&&Tn(r,l,"")}else for(const o in t)n[o]==null&&Tn(r,o,"");for(const o in n)o==="display"&&(i=!0),Tn(r,o,n[o])}else if(s){if(t!==n){const o=r[ma];o&&(n+=";"+o),r.cssText=n,i=ya.test(n)}}else t&&e.removeAttribute("style");qs in e&&(e[qs]=i?r.display:"",e[ga]&&(r.display="none"))}const Gs=/\s*!important$/;function Tn(e,t,n){if(K(n))n.forEach(r=>Tn(e,t,r));else if(n==null&&(n=""),t.startsWith("--"))e.setProperty(t,n);else{const r=ba(e,t);Gs.test(n)?e.setProperty(st(r),n.replace(Gs,""),"important"):e[r]=n}}const Ys=["Webkit","Moz","ms"],ar={};function ba(e,t){const n=ar[t];if(n)return n;let r=Ne(t);if(r!=="filter"&&r in e)return ar[t]=r;r=$n(r);for(let s=0;sfr||(xa.then(()=>fr=0),fr=Date.now());function Ca(e,t){const n=r=>{if(!r._vts)r._vts=Date.now();else if(r._vts<=n.attached)return;Fe(Aa(r,n.value),t,5,[r])};return n.value=e,n.attached=Ta(),n}function Aa(e,t){if(K(t)){const n=e.stopImmediatePropagation;return e.stopImmediatePropagation=()=>{n.call(e),e._stopped=!0},t.map(r=>s=>!s._stopped&&r&&r(s))}else return t}const Zs=e=>e.charCodeAt(0)===111&&e.charCodeAt(1)===110&&e.charCodeAt(2)>96&&e.charCodeAt(2)<123,Ra=(e,t,n,r,s,i)=>{const o=s==="svg";t==="class"?pa(e,r,o):t==="style"?va(e,n,r):Qt(t)?$r(t)||Sa(e,t,n,r,i):(t[0]==="."?(t=t.slice(1),!0):t[0]==="^"?(t=t.slice(1),!1):Oa(e,t,r,o))?(_a(e,t,r),!e.tagName.includes("-")&&(t==="value"||t==="checked"||t==="selected")&&zs(e,t,r,o,i,t!=="value")):(t==="true-value"?e._trueValue=r:t==="false-value"&&(e._falseValue=r),zs(e,t,r,o))};function Oa(e,t,n,r){if(r)return!!(t==="innerHTML"||t==="textContent"||t in e&&Zs(t)&&q(n));if(t==="spellcheck"||t==="draggable"||t==="translate"||t==="form"||t==="list"&&e.tagName==="INPUT"||t==="type"&&e.tagName==="TEXTAREA")return!1;if(t==="width"||t==="height"){const s=e.tagName;if(s==="IMG"||s==="VIDEO"||s==="CANVAS"||s==="SOURCE")return!1}return Zs(t)&&se(n)?!1:!!(t in e||e._isVueCE&&(/[A-Z]/.test(t)||!se(n)))}const ei=e=>{const t=e.props["onUpdate:modelValue"]||!1;return K(t)?n=>wn(t,n):t};function Ma(e){e.target.composing=!0}function ti(e){const t=e.target;t.composing&&(t.composing=!1,t.dispatchEvent(new Event("input")))}const ur=Symbol("_assign"),qf={created(e,{modifiers:{lazy:t,trim:n,number:r}},s){e[ur]=ei(s);const i=r||s.props&&s.props.type==="number";Et(e,t?"change":"input",o=>{if(o.target.composing)return;let l=e.value;n&&(l=l.trim()),i&&(l=wr(l)),e[ur](l)}),n&&Et(e,"change",()=>{e.value=e.value.trim()}),t||(Et(e,"compositionstart",Ma),Et(e,"compositionend",ti),Et(e,"change",ti))},mounted(e,{value:t}){e.value=t??""},beforeUpdate(e,{value:t,oldValue:n,modifiers:{lazy:r,trim:s,number:i}},o){if(e[ur]=ei(o),e.composing)return;const l=(i||e.type==="number")&&!/^0\d/.test(e.value)?wr(e.value):e.value,c=t??"";l!==c&&(document.activeElement===e&&e.type!=="range"&&(r&&t===n||s&&e.value.trim()===c)||(e.value=c))}},Pa=["ctrl","shift","alt","meta"],Ia={stop:e=>e.stopPropagation(),prevent:e=>e.preventDefault(),self:e=>e.target!==e.currentTarget,ctrl:e=>!e.ctrlKey,shift:e=>!e.shiftKey,alt:e=>!e.altKey,meta:e=>!e.metaKey,left:e=>"button"in e&&e.button!==0,middle:e=>"button"in e&&e.button!==1,right:e=>"button"in e&&e.button!==2,exact:(e,t)=>Pa.some(n=>e[`${n}Key`]&&!t.includes(n))},Gf=(e,t)=>{const n=e._withMods||(e._withMods={}),r=t.join(".");return n[r]||(n[r]=(s,...i)=>{for(let o=0;o{const n=e._withKeys||(e._withKeys={}),r=t.join(".");return n[r]||(n[r]=s=>{if(!("key"in s))return;const i=st(s.key);if(t.some(o=>o===i||La[o]===i))return e(s)})},Oo=fe({patchProp:Ra},oa);let kt,ni=!1;function Na(){return kt||(kt=Lc(Oo))}function Fa(){return kt=ni?kt:Nc(Oo),ni=!0,kt}const Xf=(...e)=>{const t=Na().createApp(...e),{mount:n}=t;return t.mount=r=>{const s=Po(r);if(!s)return;const i=t._component;!q(i)&&!i.render&&!i.template&&(i.template=s.innerHTML),s.nodeType===1&&(s.textContent="");const o=n(s,!1,Mo(s));return s instanceof Element&&(s.removeAttribute("v-cloak"),s.setAttribute("data-v-app","")),o},t},zf=(...e)=>{const t=Fa().createApp(...e),{mount:n}=t;return t.mount=r=>{const s=Po(r);if(s)return n(s,!0,Mo(s))},t};function Mo(e){if(e instanceof SVGElement)return"svg";if(typeof MathMLElement=="function"&&e instanceof MathMLElement)return"mathml"}function Po(e){return se(e)?document.querySelector(e):e}const Jf=(e,t)=>{const n=e.__vccOpts||e;for(const[r,s]of t)n[r]=s;return n},Ha=window.__VP_SITE_DATA__;function ls(e){return _i()?(fl(e),!0):!1}function ke(e){return typeof e=="function"?e():Hi(e)}const Io=typeof window<"u"&&typeof document<"u";typeof WorkerGlobalScope<"u"&&globalThis instanceof WorkerGlobalScope;const Qf=e=>e!=null,$a=Object.prototype.toString,Da=e=>$a.call(e)==="[object Object]",Jt=()=>{},ri=ja();function ja(){var e,t;return Io&&((e=window==null?void 0:window.navigator)==null?void 0:e.userAgent)&&(/iP(?:ad|hone|od)/.test(window.navigator.userAgent)||((t=window==null?void 0:window.navigator)==null?void 0:t.maxTouchPoints)>2&&/iPad|Macintosh/.test(window==null?void 0:window.navigator.userAgent))}function Va(e,t){function n(...r){return new Promise((s,i)=>{Promise.resolve(e(()=>t.apply(this,r),{fn:t,thisArg:this,args:r})).then(s).catch(i)})}return n}const Lo=e=>e();function Ua(e,t={}){let n,r,s=Jt;const i=l=>{clearTimeout(l),s(),s=Jt};return l=>{const c=ke(e),f=ke(t.maxWait);return n&&i(n),c<=0||f!==void 0&&f<=0?(r&&(i(r),r=null),Promise.resolve(l())):new Promise((a,h)=>{s=t.rejectOnCancel?h:a,f&&!r&&(r=setTimeout(()=>{n&&i(n),r=null,a(l())},f)),n=setTimeout(()=>{r&&i(r),r=null,a(l())},c)})}}function Ba(e=Lo){const t=oe(!0);function n(){t.value=!1}function r(){t.value=!0}const s=(...i)=>{t.value&&e(...i)};return{isActive:Bn(t),pause:n,resume:r,eventFilter:s}}function ka(e){return Yn()}function No(...e){if(e.length!==1)return Vl(...e);const t=e[0];return typeof t=="function"?Bn($l(()=>({get:t,set:Jt}))):oe(t)}function Fo(e,t,n={}){const{eventFilter:r=Lo,...s}=n;return Be(e,Va(r,t),s)}function Wa(e,t,n={}){const{eventFilter:r,...s}=n,{eventFilter:i,pause:o,resume:l,isActive:c}=Ba(r);return{stop:Fo(e,t,{...s,eventFilter:i}),pause:o,resume:l,isActive:c}}function cs(e,t=!0,n){ka()?It(e,n):t?e():kn(e)}function Zf(e,t,n={}){const{debounce:r=0,maxWait:s=void 0,...i}=n;return Fo(e,t,{...i,eventFilter:Ua(r,{maxWait:s})})}function eu(e,t,n){let r;ae(n)?r={evaluating:n}:r={};const{lazy:s=!1,evaluating:i=void 0,shallow:o=!0,onError:l=Jt}=r,c=oe(!s),f=o?zr(t):oe(t);let a=0;return is(async h=>{if(!c.value)return;a++;const g=a;let v=!1;i&&Promise.resolve().then(()=>{i.value=!0});try{const _=await e(S=>{h(()=>{i&&(i.value=!1),v||S()})});g===a&&(f.value=_)}catch(_){l(_)}finally{i&&g===a&&(i.value=!1),v=!0}}),s?ie(()=>(c.value=!0,f.value)):f}const He=Io?window:void 0;function Ho(e){var t;const n=ke(e);return(t=n==null?void 0:n.$el)!=null?t:n}function Pt(...e){let t,n,r,s;if(typeof e[0]=="string"||Array.isArray(e[0])?([n,r,s]=e,t=He):[t,n,r,s]=e,!t)return Jt;Array.isArray(n)||(n=[n]),Array.isArray(r)||(r=[r]);const i=[],o=()=>{i.forEach(a=>a()),i.length=0},l=(a,h,g,v)=>(a.addEventListener(h,g,v),()=>a.removeEventListener(h,g,v)),c=Be(()=>[Ho(t),ke(s)],([a,h])=>{if(o(),!a)return;const g=Da(h)?{...h}:h;i.push(...n.flatMap(v=>r.map(_=>l(a,v,_,g))))},{immediate:!0,flush:"post"}),f=()=>{c(),o()};return ls(f),f}function Ka(e){return typeof e=="function"?e:typeof e=="string"?t=>t.key===e:Array.isArray(e)?t=>e.includes(t.key):()=>!0}function tu(...e){let t,n,r={};e.length===3?(t=e[0],n=e[1],r=e[2]):e.length===2?typeof e[1]=="object"?(t=!0,n=e[0],r=e[1]):(t=e[0],n=e[1]):(t=!0,n=e[0]);const{target:s=He,eventName:i="keydown",passive:o=!1,dedupe:l=!1}=r,c=Ka(t);return Pt(s,i,a=>{a.repeat&&ke(l)||c(a)&&n(a)},o)}function qa(){const e=oe(!1),t=Yn();return t&&It(()=>{e.value=!0},t),e}function Ga(e){const t=qa();return ie(()=>(t.value,!!e()))}function $o(e,t={}){const{window:n=He}=t,r=Ga(()=>n&&"matchMedia"in n&&typeof n.matchMedia=="function");let s;const i=oe(!1),o=f=>{i.value=f.matches},l=()=>{s&&("removeEventListener"in s?s.removeEventListener("change",o):s.removeListener(o))},c=is(()=>{r.value&&(l(),s=n.matchMedia(ke(e)),"addEventListener"in s?s.addEventListener("change",o):s.addListener(o),i.value=s.matches)});return ls(()=>{c(),l(),s=void 0}),i}const yn=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{},vn="__vueuse_ssr_handlers__",Ya=Xa();function Xa(){return vn in yn||(yn[vn]=yn[vn]||{}),yn[vn]}function Do(e,t){return Ya[e]||t}function jo(e){return $o("(prefers-color-scheme: dark)",e)}function za(e){return e==null?"any":e instanceof Set?"set":e instanceof Map?"map":e instanceof Date?"date":typeof e=="boolean"?"boolean":typeof e=="string"?"string":typeof e=="object"?"object":Number.isNaN(e)?"any":"number"}const Ja={boolean:{read:e=>e==="true",write:e=>String(e)},object:{read:e=>JSON.parse(e),write:e=>JSON.stringify(e)},number:{read:e=>Number.parseFloat(e),write:e=>String(e)},any:{read:e=>e,write:e=>String(e)},string:{read:e=>e,write:e=>String(e)},map:{read:e=>new Map(JSON.parse(e)),write:e=>JSON.stringify(Array.from(e.entries()))},set:{read:e=>new Set(JSON.parse(e)),write:e=>JSON.stringify(Array.from(e))},date:{read:e=>new Date(e),write:e=>e.toISOString()}},si="vueuse-storage";function as(e,t,n,r={}){var s;const{flush:i="pre",deep:o=!0,listenToStorageChanges:l=!0,writeDefaults:c=!0,mergeDefaults:f=!1,shallow:a,window:h=He,eventFilter:g,onError:v=b=>{console.error(b)},initOnMounted:_}=r,S=(a?zr:oe)(typeof t=="function"?t():t);if(!n)try{n=Do("getDefaultStorage",()=>{var b;return(b=He)==null?void 0:b.localStorage})()}catch(b){v(b)}if(!n)return S;const U=ke(t),N=za(U),B=(s=r.serializer)!=null?s:Ja[N],{pause:p,resume:m}=Wa(S,()=>F(S.value),{flush:i,deep:o,eventFilter:g});h&&l&&cs(()=>{n instanceof Storage?Pt(h,"storage",j):Pt(h,si,R),_&&j()}),_||j();function M(b,L){if(h){const x={key:e,oldValue:b,newValue:L,storageArea:n};h.dispatchEvent(n instanceof Storage?new StorageEvent("storage",x):new CustomEvent(si,{detail:x}))}}function F(b){try{const L=n.getItem(e);if(b==null)M(L,null),n.removeItem(e);else{const x=B.write(b);L!==x&&(n.setItem(e,x),M(L,x))}}catch(L){v(L)}}function $(b){const L=b?b.newValue:n.getItem(e);if(L==null)return c&&U!=null&&n.setItem(e,B.write(U)),U;if(!b&&f){const x=B.read(L);return typeof f=="function"?f(x,U):N==="object"&&!Array.isArray(x)?{...U,...x}:x}else return typeof L!="string"?L:B.read(L)}function j(b){if(!(b&&b.storageArea!==n)){if(b&&b.key==null){S.value=U;return}if(!(b&&b.key!==e)){p();try{(b==null?void 0:b.newValue)!==B.write(S.value)&&(S.value=$(b))}catch(L){v(L)}finally{b?kn(m):m()}}}}function R(b){j(b.detail)}return S}const Qa="*,*::before,*::after{-webkit-transition:none!important;-moz-transition:none!important;-o-transition:none!important;-ms-transition:none!important;transition:none!important}";function Za(e={}){const{selector:t="html",attribute:n="class",initialValue:r="auto",window:s=He,storage:i,storageKey:o="vueuse-color-scheme",listenToStorageChanges:l=!0,storageRef:c,emitAuto:f,disableTransition:a=!0}=e,h={auto:"",light:"light",dark:"dark",...e.modes||{}},g=jo({window:s}),v=ie(()=>g.value?"dark":"light"),_=c||(o==null?No(r):as(o,r,i,{window:s,listenToStorageChanges:l})),S=ie(()=>_.value==="auto"?v.value:_.value),U=Do("updateHTMLAttrs",(m,M,F)=>{const $=typeof m=="string"?s==null?void 0:s.document.querySelector(m):Ho(m);if(!$)return;const j=new Set,R=new Set;let b=null;if(M==="class"){const x=F.split(/\s/g);Object.values(h).flatMap(W=>(W||"").split(/\s/g)).filter(Boolean).forEach(W=>{x.includes(W)?j.add(W):R.add(W)})}else b={key:M,value:F};if(j.size===0&&R.size===0&&b===null)return;let L;a&&(L=s.document.createElement("style"),L.appendChild(document.createTextNode(Qa)),s.document.head.appendChild(L));for(const x of j)$.classList.add(x);for(const x of R)$.classList.remove(x);b&&$.setAttribute(b.key,b.value),a&&(s.getComputedStyle(L).opacity,document.head.removeChild(L))});function N(m){var M;U(t,n,(M=h[m])!=null?M:m)}function B(m){e.onChanged?e.onChanged(m,N):N(m)}Be(S,B,{flush:"post",immediate:!0}),cs(()=>B(S.value));const p=ie({get(){return f?_.value:S.value},set(m){_.value=m}});try{return Object.assign(p,{store:_,system:v,state:S})}catch{return p}}function ef(e={}){const{valueDark:t="dark",valueLight:n="",window:r=He}=e,s=Za({...e,onChanged:(l,c)=>{var f;e.onChanged?(f=e.onChanged)==null||f.call(e,l==="dark",c,l):c(l)},modes:{dark:t,light:n}}),i=ie(()=>s.system?s.system.value:jo({window:r}).value?"dark":"light");return ie({get(){return s.value==="dark"},set(l){const c=l?"dark":"light";i.value===c?s.value="auto":s.value=c}})}function dr(e){return typeof Window<"u"&&e instanceof Window?e.document.documentElement:typeof Document<"u"&&e instanceof Document?e.documentElement:e}function nu(e,t,n={}){const{window:r=He}=n;return as(e,t,r==null?void 0:r.localStorage,n)}function Vo(e){const t=window.getComputedStyle(e);if(t.overflowX==="scroll"||t.overflowY==="scroll"||t.overflowX==="auto"&&e.clientWidth1?!0:(t.preventDefault&&t.preventDefault(),!1)}const hr=new WeakMap;function ru(e,t=!1){const n=oe(t);let r=null,s="";Be(No(e),l=>{const c=dr(ke(l));if(c){const f=c;if(hr.get(f)||hr.set(f,f.style.overflow),f.style.overflow!=="hidden"&&(s=f.style.overflow),f.style.overflow==="hidden")return n.value=!0;if(n.value)return f.style.overflow="hidden"}},{immediate:!0});const i=()=>{const l=dr(ke(e));!l||n.value||(ri&&(r=Pt(l,"touchmove",c=>{tf(c)},{passive:!1})),l.style.overflow="hidden",n.value=!0)},o=()=>{const l=dr(ke(e));!l||!n.value||(ri&&(r==null||r()),l.style.overflow=s,hr.delete(l),n.value=!1)};return ls(o),ie({get(){return n.value},set(l){l?i():o()}})}function su(e,t,n={}){const{window:r=He}=n;return as(e,t,r==null?void 0:r.sessionStorage,n)}function iu(e={}){const{window:t=He,behavior:n="auto"}=e;if(!t)return{x:oe(0),y:oe(0)};const r=oe(t.scrollX),s=oe(t.scrollY),i=ie({get(){return r.value},set(l){scrollTo({left:l,behavior:n})}}),o=ie({get(){return s.value},set(l){scrollTo({top:l,behavior:n})}});return Pt(t,"scroll",()=>{r.value=t.scrollX,s.value=t.scrollY},{capture:!1,passive:!0}),{x:i,y:o}}function ou(e={}){const{window:t=He,initialWidth:n=Number.POSITIVE_INFINITY,initialHeight:r=Number.POSITIVE_INFINITY,listenOrientation:s=!0,includeScrollbar:i=!0,type:o="inner"}=e,l=oe(n),c=oe(r),f=()=>{t&&(o==="outer"?(l.value=t.outerWidth,c.value=t.outerHeight):i?(l.value=t.innerWidth,c.value=t.innerHeight):(l.value=t.document.documentElement.clientWidth,c.value=t.document.documentElement.clientHeight))};if(f(),cs(f),Pt("resize",f,{passive:!0}),s){const a=$o("(orientation: portrait)");Be(a,()=>f())}return{width:l,height:c}}const pr={BASE_URL:"/YAXArrays.jl/previews/PR439/",DEV:!1,MODE:"production",PROD:!0,SSR:!1};var gr={};const Uo=/^(?:[a-z]+:|\/\/)/i,nf="vitepress-theme-appearance",rf=/#.*$/,sf=/[?#].*$/,of=/(?:(^|\/)index)?\.(?:md|html)$/,ge=typeof document<"u",Bo={relativePath:"404.md",filePath:"",title:"404",description:"Not Found",headers:[],frontmatter:{sidebar:!1,layout:"page"},lastUpdated:0,isNotFound:!0};function lf(e,t,n=!1){if(t===void 0)return!1;if(e=ii(`/${e}`),n)return new RegExp(t).test(e);if(ii(t)!==e)return!1;const r=t.match(rf);return r?(ge?location.hash:"")===r[0]:!0}function ii(e){return decodeURI(e).replace(sf,"").replace(of,"$1")}function cf(e){return Uo.test(e)}function af(e,t){return Object.keys((e==null?void 0:e.locales)||{}).find(n=>n!=="root"&&!cf(n)&&lf(t,`/${n}/`,!0))||"root"}function ff(e,t){var r,s,i,o,l,c,f;const n=af(e,t);return Object.assign({},e,{localeIndex:n,lang:((r=e.locales[n])==null?void 0:r.lang)??e.lang,dir:((s=e.locales[n])==null?void 0:s.dir)??e.dir,title:((i=e.locales[n])==null?void 0:i.title)??e.title,titleTemplate:((o=e.locales[n])==null?void 0:o.titleTemplate)??e.titleTemplate,description:((l=e.locales[n])==null?void 0:l.description)??e.description,head:Wo(e.head,((c=e.locales[n])==null?void 0:c.head)??[]),themeConfig:{...e.themeConfig,...(f=e.locales[n])==null?void 0:f.themeConfig}})}function ko(e,t){const n=t.title||e.title,r=t.titleTemplate??e.titleTemplate;if(typeof r=="string"&&r.includes(":title"))return r.replace(/:title/g,n);const s=uf(e.title,r);return n===s.slice(3)?n:`${n}${s}`}function uf(e,t){return t===!1?"":t===!0||t===void 0?` | ${e}`:e===t?"":` | ${t}`}function df(e,t){const[n,r]=t;if(n!=="meta")return!1;const s=Object.entries(r)[0];return s==null?!1:e.some(([i,o])=>i===n&&o[s[0]]===s[1])}function Wo(e,t){return[...e.filter(n=>!df(t,n)),...t]}const hf=/[\u0000-\u001F"#$&*+,:;<=>?[\]^`{|}\u007F]/g,pf=/^[a-z]:/i;function oi(e){const t=pf.exec(e),n=t?t[0]:"";return n+e.slice(n.length).replace(hf,"_").replace(/(^|\/)_+(?=[^/]*$)/,"$1")}const mr=new Set;function gf(e){if(mr.size===0){const n=typeof process=="object"&&(gr==null?void 0:gr.VITE_EXTRA_EXTENSIONS)||(pr==null?void 0:pr.VITE_EXTRA_EXTENSIONS)||"";("3g2,3gp,aac,ai,apng,au,avif,bin,bmp,cer,class,conf,crl,css,csv,dll,doc,eps,epub,exe,gif,gz,ics,ief,jar,jpe,jpeg,jpg,js,json,jsonld,m4a,man,mid,midi,mjs,mov,mp2,mp3,mp4,mpe,mpeg,mpg,mpp,oga,ogg,ogv,ogx,opus,otf,p10,p7c,p7m,p7s,pdf,png,ps,qt,roff,rtf,rtx,ser,svg,t,tif,tiff,tr,ts,tsv,ttf,txt,vtt,wav,weba,webm,webp,woff,woff2,xhtml,xml,yaml,yml,zip"+(n&&typeof n=="string"?","+n:"")).split(",").forEach(r=>mr.add(r))}const t=e.split(".").pop();return t==null||!mr.has(t.toLowerCase())}function lu(e){return e.replace(/[|\\{}()[\]^$+*?.]/g,"\\$&").replace(/-/g,"\\x2d")}const mf=Symbol(),yt=zr(Ha);function cu(e){const t=ie(()=>ff(yt.value,e.data.relativePath)),n=t.value.appearance,r=n==="force-dark"?oe(!0):n?ef({storageKey:nf,initialValue:()=>n==="dark"?"dark":"auto",...typeof n=="object"?n:{}}):oe(!1),s=oe(ge?location.hash:"");return ge&&window.addEventListener("hashchange",()=>{s.value=location.hash}),Be(()=>e.data,()=>{s.value=ge?location.hash:""}),{site:t,theme:ie(()=>t.value.themeConfig),page:ie(()=>e.data),frontmatter:ie(()=>e.data.frontmatter),params:ie(()=>e.data.params),lang:ie(()=>t.value.lang),dir:ie(()=>e.data.frontmatter.dir||t.value.dir),localeIndex:ie(()=>t.value.localeIndex||"root"),title:ie(()=>ko(t.value,e.data)),description:ie(()=>e.data.description||t.value.description),isDark:r,hash:ie(()=>s.value)}}function yf(){const e=Mt(mf);if(!e)throw new Error("vitepress data not properly injected in app");return e}function vf(e,t){return`${e}${t}`.replace(/\/+/g,"/")}function li(e){return Uo.test(e)||!e.startsWith("/")?e:vf(yt.value.base,e)}function bf(e){let t=e.replace(/\.html$/,"");if(t=decodeURIComponent(t),t=t.replace(/\/$/,"/index"),ge){const n="/YAXArrays.jl/previews/PR439/";t=oi(t.slice(n.length).replace(/\//g,"_")||"index")+".md";let r=__VP_HASH_MAP__[t.toLowerCase()];if(r||(t=t.endsWith("_index.md")?t.slice(0,-9)+".md":t.slice(0,-3)+"_index.md",r=__VP_HASH_MAP__[t.toLowerCase()]),!r)return null;t=`${n}assets/${t}.${r}.js`}else t=`./${oi(t.slice(1).replace(/\//g,"_"))}.md.js`;return t}let Cn=[];function au(e){Cn.push(e),Kn(()=>{Cn=Cn.filter(t=>t!==e)})}function _f(){let e=yt.value.scrollOffset,t=0,n=24;if(typeof e=="object"&&"padding"in e&&(n=e.padding,e=e.selector),typeof e=="number")t=e;else if(typeof e=="string")t=ci(e,n);else if(Array.isArray(e))for(const r of e){const s=ci(r,n);if(s){t=s;break}}return t}function ci(e,t){const n=document.querySelector(e);if(!n)return 0;const r=n.getBoundingClientRect().bottom;return r<0?0:r+t}const wf=Symbol(),Ko="http://a.com",Sf=()=>({path:"/",component:null,data:Bo});function fu(e,t){const n=Un(Sf()),r={route:n,go:s};async function s(l=ge?location.href:"/"){var c,f;l=yr(l),await((c=r.onBeforeRouteChange)==null?void 0:c.call(r,l))!==!1&&(ge&&l!==yr(location.href)&&(history.replaceState({scrollPosition:window.scrollY},""),history.pushState({},"",l)),await o(l),await((f=r.onAfterRouteChanged)==null?void 0:f.call(r,l)))}let i=null;async function o(l,c=0,f=!1){var g;if(await((g=r.onBeforePageLoad)==null?void 0:g.call(r,l))===!1)return;const a=new URL(l,Ko),h=i=a.pathname;try{let v=await e(h);if(!v)throw new Error(`Page not found: ${h}`);if(i===h){i=null;const{default:_,__pageData:S}=v;if(!_)throw new Error(`Invalid route component: ${_}`);n.path=ge?h:li(h),n.component=Sn(_),n.data=Sn(S),ge&&kn(()=>{let U=yt.value.base+S.relativePath.replace(/(?:(^|\/)index)?\.md$/,"$1");if(!yt.value.cleanUrls&&!U.endsWith("/")&&(U+=".html"),U!==a.pathname&&(a.pathname=U,l=U+a.search+a.hash,history.replaceState({},"",l)),a.hash&&!c){let N=null;try{N=document.getElementById(decodeURIComponent(a.hash).slice(1))}catch(B){console.warn(B)}if(N){ai(N,a.hash);return}}window.scrollTo(0,c)})}}catch(v){if(!/fetch|Page not found/.test(v.message)&&!/^\/404(\.html|\/)?$/.test(l)&&console.error(v),!f)try{const _=await fetch(yt.value.base+"hashmap.json");window.__VP_HASH_MAP__=await _.json(),await o(l,c,!0);return}catch{}if(i===h){i=null,n.path=ge?h:li(h),n.component=t?Sn(t):null;const _=ge?h.replace(/(^|\/)$/,"$1index").replace(/(\.html)?$/,".md").replace(/^\//,""):"404.md";n.data={...Bo,relativePath:_}}}}return ge&&(history.state===null&&history.replaceState({},""),window.addEventListener("click",l=>{if(l.defaultPrevented||!(l.target instanceof Element)||l.target.closest("button")||l.button!==0||l.ctrlKey||l.shiftKey||l.altKey||l.metaKey)return;const c=l.target.closest("a");if(!c||c.closest(".vp-raw")||c.hasAttribute("download")||c.hasAttribute("target"))return;const f=c.getAttribute("href")??(c instanceof SVGAElement?c.getAttribute("xlink:href"):null);if(f==null)return;const{href:a,origin:h,pathname:g,hash:v,search:_}=new URL(f,c.baseURI),S=new URL(location.href);h===S.origin&&gf(g)&&(l.preventDefault(),g===S.pathname&&_===S.search?(v!==S.hash&&(history.pushState({},"",a),window.dispatchEvent(new HashChangeEvent("hashchange",{oldURL:S.href,newURL:a}))),v?ai(c,v,c.classList.contains("header-anchor")):window.scrollTo(0,0)):s(a))},{capture:!0}),window.addEventListener("popstate",async l=>{var c;l.state!==null&&(await o(yr(location.href),l.state&&l.state.scrollPosition||0),(c=r.onAfterRouteChanged)==null||c.call(r,location.href))}),window.addEventListener("hashchange",l=>{l.preventDefault()})),r}function Ef(){const e=Mt(wf);if(!e)throw new Error("useRouter() is called without provider.");return e}function qo(){return Ef().route}function ai(e,t,n=!1){let r=null;try{r=e.classList.contains("header-anchor")?e:document.getElementById(decodeURIComponent(t).slice(1))}catch(s){console.warn(s)}if(r){let s=function(){!n||Math.abs(o-window.scrollY)>window.innerHeight?window.scrollTo(0,o):window.scrollTo({left:0,top:o,behavior:"smooth"})};const i=parseInt(window.getComputedStyle(r).paddingTop,10),o=window.scrollY+r.getBoundingClientRect().top-_f()+i;requestAnimationFrame(s)}}function yr(e){const t=new URL(e,Ko);return t.pathname=t.pathname.replace(/(^|\/)index(\.html)?$/,"$1"),yt.value.cleanUrls?t.pathname=t.pathname.replace(/\.html$/,""):!t.pathname.endsWith("/")&&!t.pathname.endsWith(".html")&&(t.pathname+=".html"),t.pathname+t.search+t.hash}const vr=()=>Cn.forEach(e=>e()),uu=Zr({name:"VitePressContent",props:{as:{type:[Object,String],default:"div"}},setup(e){const t=qo(),{site:n}=yf();return()=>Nr(e.as,n.value.contentProps??{style:{position:"relative"}},[t.component?Nr(t.component,{onVnodeMounted:vr,onVnodeUpdated:vr,onVnodeUnmounted:vr}):"404 Page Not Found"])}}),xf="modulepreload",Tf=function(e){return"/YAXArrays.jl/previews/PR439/"+e},fi={},du=function(t,n,r){let s=Promise.resolve();if(n&&n.length>0){document.getElementsByTagName("link");const o=document.querySelector("meta[property=csp-nonce]"),l=(o==null?void 0:o.nonce)||(o==null?void 0:o.getAttribute("nonce"));s=Promise.allSettled(n.map(c=>{if(c=Tf(c),c in fi)return;fi[c]=!0;const f=c.endsWith(".css"),a=f?'[rel="stylesheet"]':"";if(document.querySelector(`link[href="${c}"]${a}`))return;const h=document.createElement("link");if(h.rel=f?"stylesheet":xf,f||(h.as="script"),h.crossOrigin="",h.href=c,l&&h.setAttribute("nonce",l),document.head.appendChild(h),f)return new Promise((g,v)=>{h.addEventListener("load",g),h.addEventListener("error",()=>v(new Error(`Unable to preload CSS for ${c}`)))})}))}function i(o){const l=new Event("vite:preloadError",{cancelable:!0});if(l.payload=o,window.dispatchEvent(l),!l.defaultPrevented)throw o}return s.then(o=>{for(const l of o||[])l.status==="rejected"&&i(l.reason);return t().catch(i)})},hu=Zr({setup(e,{slots:t}){const n=oe(!1);return It(()=>{n.value=!0}),()=>n.value&&t.default?t.default():null}});function pu(){ge&&window.addEventListener("click",e=>{var n;const t=e.target;if(t.matches(".vp-code-group input")){const r=(n=t.parentElement)==null?void 0:n.parentElement;if(!r)return;const s=Array.from(r.querySelectorAll("input")).indexOf(t);if(s<0)return;const i=r.querySelector(".blocks");if(!i)return;const o=Array.from(i.children).find(f=>f.classList.contains("active"));if(!o)return;const l=i.children[s];if(!l||o===l)return;o.classList.remove("active"),l.classList.add("active");const c=r==null?void 0:r.querySelector(`label[for="${t.id}"]`);c==null||c.scrollIntoView({block:"nearest"})}})}function gu(){if(ge){const e=new WeakMap;window.addEventListener("click",t=>{var r;const n=t.target;if(n.matches('div[class*="language-"] > button.copy')){const s=n.parentElement,i=(r=n.nextElementSibling)==null?void 0:r.nextElementSibling;if(!s||!i)return;const o=/language-(shellscript|shell|bash|sh|zsh)/.test(s.className),l=[".vp-copy-ignore",".diff.remove"],c=i.cloneNode(!0);c.querySelectorAll(l.join(",")).forEach(a=>a.remove());let f=c.textContent||"";o&&(f=f.replace(/^ *(\$|>) /gm,"").trim()),Cf(f).then(()=>{n.classList.add("copied"),clearTimeout(e.get(n));const a=setTimeout(()=>{n.classList.remove("copied"),n.blur(),e.delete(n)},2e3);e.set(n,a)})}})}}async function Cf(e){try{return navigator.clipboard.writeText(e)}catch{const t=document.createElement("textarea"),n=document.activeElement;t.value=e,t.setAttribute("readonly",""),t.style.contain="strict",t.style.position="absolute",t.style.left="-9999px",t.style.fontSize="12pt";const r=document.getSelection(),s=r?r.rangeCount>0&&r.getRangeAt(0):null;document.body.appendChild(t),t.select(),t.selectionStart=0,t.selectionEnd=e.length,document.execCommand("copy"),document.body.removeChild(t),s&&(r.removeAllRanges(),r.addRange(s)),n&&n.focus()}}function mu(e,t){let n=!0,r=[];const s=i=>{if(n){n=!1,i.forEach(l=>{const c=br(l);for(const f of document.head.children)if(f.isEqualNode(c)){r.push(f);return}});return}const o=i.map(br);r.forEach((l,c)=>{const f=o.findIndex(a=>a==null?void 0:a.isEqualNode(l??null));f!==-1?delete o[f]:(l==null||l.remove(),delete r[c])}),o.forEach(l=>l&&document.head.appendChild(l)),r=[...r,...o].filter(Boolean)};is(()=>{const i=e.data,o=t.value,l=i&&i.description,c=i&&i.frontmatter.head||[],f=ko(o,i);f!==document.title&&(document.title=f);const a=l||o.description;let h=document.querySelector("meta[name=description]");h?h.getAttribute("content")!==a&&h.setAttribute("content",a):br(["meta",{name:"description",content:a}]),s(Wo(o.head,Rf(c)))})}function br([e,t,n]){const r=document.createElement(e);for(const s in t)r.setAttribute(s,t[s]);return n&&(r.innerHTML=n),e==="script"&&!t.async&&(r.async=!1),r}function Af(e){return e[0]==="meta"&&e[1]&&e[1].name==="description"}function Rf(e){return e.filter(t=>!Af(t))}const _r=new Set,Go=()=>document.createElement("link"),Of=e=>{const t=Go();t.rel="prefetch",t.href=e,document.head.appendChild(t)},Mf=e=>{const t=new XMLHttpRequest;t.open("GET",e,t.withCredentials=!0),t.send()};let bn;const Pf=ge&&(bn=Go())&&bn.relList&&bn.relList.supports&&bn.relList.supports("prefetch")?Of:Mf;function yu(){if(!ge||!window.IntersectionObserver)return;let e;if((e=navigator.connection)&&(e.saveData||/2g/.test(e.effectiveType)))return;const t=window.requestIdleCallback||setTimeout;let n=null;const r=()=>{n&&n.disconnect(),n=new IntersectionObserver(i=>{i.forEach(o=>{if(o.isIntersecting){const l=o.target;n.unobserve(l);const{pathname:c}=l;if(!_r.has(c)){_r.add(c);const f=bf(c);f&&Pf(f)}}})}),t(()=>{document.querySelectorAll("#app a").forEach(i=>{const{hostname:o,pathname:l}=new URL(i.href instanceof SVGAnimatedString?i.href.animVal:i.href,i.baseURI),c=l.match(/\.\w+$/);c&&c[0]!==".html"||i.target!=="_blank"&&o===location.hostname&&(l!==location.pathname?n.observe(i):_r.add(l))})})};It(r);const s=qo();Be(()=>s.path,r),Kn(()=>{n&&n.disconnect()})}export{Ji as $,_f as A,Ff as B,$f as C,zr as D,au as E,Se as F,le as G,Hf as H,Uo as I,qo as J,Yc as K,Mt as L,ou as M,Vr as N,tu as O,kn as P,iu as Q,ge as R,Bn as S,Kf as T,Nf as U,du as V,ru as W,Cc as X,jf as Y,Yf as Z,Jf as _,Eo as a,Gf as a0,Vf as a1,kf as a2,Un as a3,Vl as a4,Nr as a5,mu as a6,wf as a7,cu as a8,mf as a9,uu as aa,hu as ab,yt as ac,zf as ad,fu as ae,bf as af,yu as ag,gu as ah,pu as ai,ke as aj,Ho as ak,Qf as al,ls as am,eu as an,su as ao,nu as ap,Zf as aq,Ef as ar,Pt as as,If as at,qf as au,ae as av,Lf as aw,Sn as ax,Xf as ay,lu as az,Ir as b,Bf as c,Zr as d,Wf as e,gf as f,li as g,ie as h,cf as i,So as j,Hi as k,lf as l,$o as m,Ur as n,Pr as o,oe as p,Be as q,Df as r,is as s,cl as t,yf as u,It as v,Xl as w,Kn as x,Uf as y,dc as z}; diff --git a/previews/PR439/assets/chunks/theme.BTHK6YKI.js b/previews/PR439/assets/chunks/theme.7rY793H8.js similarity index 99% rename from previews/PR439/assets/chunks/theme.BTHK6YKI.js rename to previews/PR439/assets/chunks/theme.7rY793H8.js index e766ed47..8ea79bcf 100644 --- a/previews/PR439/assets/chunks/theme.BTHK6YKI.js +++ b/previews/PR439/assets/chunks/theme.7rY793H8.js @@ -1,2 +1,2 @@ -const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/chunks/VPLocalSearchBox.Ul3ZdpMO.js","assets/chunks/framework.DsPJznl_.js"])))=>i.map(i=>d[i]); -import{d as b,o,c as l,r as d,n as T,a as F,t as I,b as $,w as f,e as m,T as pe,_ as k,u as Se,i as Je,f as Ke,g as ve,h as y,j as p,k as i,l as J,m as ie,p as L,q as W,s as q,v as O,x as fe,y as me,z as je,A as ze,B as G,F as C,C as B,D as Le,E as x,G as g,H,I as Ie,J as ee,K as R,L as j,M as Ze,N as Ne,O as le,P as Te,Q as Ce,R as te,S as Ye,U as Xe,V as qe,W as we,X as he,Y as xe,Z as et,$ as tt,a0 as st,a1 as Me,a2 as nt,a3 as at,a4 as ot,a5 as ye}from"./framework.DsPJznl_.js";const rt=b({__name:"VPBadge",props:{text:{},type:{default:"tip"}},setup(a){return(e,t)=>(o(),l("span",{class:T(["VPBadge",e.type])},[d(e.$slots,"default",{},()=>[F(I(e.text),1)])],2))}}),it={key:0,class:"VPBackdrop"},lt=b({__name:"VPBackdrop",props:{show:{type:Boolean}},setup(a){return(e,t)=>(o(),$(pe,{name:"fade"},{default:f(()=>[e.show?(o(),l("div",it)):m("",!0)]),_:1}))}}),ct=k(lt,[["__scopeId","data-v-b06cdb19"]]),S=Se;function ut(a,e){let t,n=!1;return()=>{t&&clearTimeout(t),n?t=setTimeout(a,e):(a(),(n=!0)&&setTimeout(()=>n=!1,e))}}function ce(a){return/^\//.test(a)?a:`/${a}`}function _e(a){const{pathname:e,search:t,hash:n,protocol:s}=new URL(a,"http://a.com");if(Je(a)||a.startsWith("#")||!s.startsWith("http")||!Ke(e))return a;const{site:r}=S(),c=e.endsWith("/")||e.endsWith(".html")?a:a.replace(/(?:(^\.+)\/)?.*$/,`$1${e.replace(/(\.md)?$/,r.value.cleanUrls?"":".html")}${t}${n}`);return ve(c)}function Z({correspondingLink:a=!1}={}){const{site:e,localeIndex:t,page:n,theme:s,hash:r}=S(),c=y(()=>{var u,h;return{label:(u=e.value.locales[t.value])==null?void 0:u.label,link:((h=e.value.locales[t.value])==null?void 0:h.link)||(t.value==="root"?"/":`/${t.value}/`)}});return{localeLinks:y(()=>Object.entries(e.value.locales).flatMap(([u,h])=>c.value.label===h.label?[]:{text:h.label,link:dt(h.link||(u==="root"?"/":`/${u}/`),s.value.i18nRouting!==!1&&a,n.value.relativePath.slice(c.value.link.length-1),!e.value.cleanUrls)+r.value})),currentLang:c}}function dt(a,e,t,n){return e?a.replace(/\/$/,"")+ce(t.replace(/(^|\/)index\.md$/,"$1").replace(/\.md$/,n?".html":"")):a}const pt={class:"NotFound"},vt={class:"code"},ft={class:"title"},mt={class:"quote"},ht={class:"action"},_t=["href","aria-label"],bt=b({__name:"NotFound",setup(a){const{theme:e}=S(),{currentLang:t}=Z();return(n,s)=>{var r,c,v,u,h;return o(),l("div",pt,[p("p",vt,I(((r=i(e).notFound)==null?void 0:r.code)??"404"),1),p("h1",ft,I(((c=i(e).notFound)==null?void 0:c.title)??"PAGE NOT FOUND"),1),s[0]||(s[0]=p("div",{class:"divider"},null,-1)),p("blockquote",mt,I(((v=i(e).notFound)==null?void 0:v.quote)??"But if you don't change your direction, and if you keep looking, you may end up where you are heading."),1),p("div",ht,[p("a",{class:"link",href:i(ve)(i(t).link),"aria-label":((u=i(e).notFound)==null?void 0:u.linkLabel)??"go to home"},I(((h=i(e).notFound)==null?void 0:h.linkText)??"Take me home"),9,_t)])])}}}),gt=k(bt,[["__scopeId","data-v-951cab6c"]]);function Be(a,e){if(Array.isArray(a))return Y(a);if(a==null)return[];e=ce(e);const t=Object.keys(a).sort((s,r)=>r.split("/").length-s.split("/").length).find(s=>e.startsWith(ce(s))),n=t?a[t]:[];return Array.isArray(n)?Y(n):Y(n.items,n.base)}function kt(a){const e=[];let t=0;for(const n in a){const s=a[n];if(s.items){t=e.push(s);continue}e[t]||e.push({items:[]}),e[t].items.push(s)}return e}function $t(a){const e=[];function t(n){for(const s of n)s.text&&s.link&&e.push({text:s.text,link:s.link,docFooterText:s.docFooterText}),s.items&&t(s.items)}return t(a),e}function ue(a,e){return Array.isArray(e)?e.some(t=>ue(a,t)):J(a,e.link)?!0:e.items?ue(a,e.items):!1}function Y(a,e){return[...a].map(t=>{const n={...t},s=n.base||e;return s&&n.link&&(n.link=s+n.link),n.items&&(n.items=Y(n.items,s)),n})}function D(){const{frontmatter:a,page:e,theme:t}=S(),n=ie("(min-width: 960px)"),s=L(!1),r=y(()=>{const M=t.value.sidebar,N=e.value.relativePath;return M?Be(M,N):[]}),c=L(r.value);W(r,(M,N)=>{JSON.stringify(M)!==JSON.stringify(N)&&(c.value=r.value)});const v=y(()=>a.value.sidebar!==!1&&c.value.length>0&&a.value.layout!=="home"),u=y(()=>h?a.value.aside==null?t.value.aside==="left":a.value.aside==="left":!1),h=y(()=>a.value.layout==="home"?!1:a.value.aside!=null?!!a.value.aside:t.value.aside!==!1),A=y(()=>v.value&&n.value),_=y(()=>v.value?kt(c.value):[]);function P(){s.value=!0}function V(){s.value=!1}function w(){s.value?V():P()}return{isOpen:s,sidebar:c,sidebarGroups:_,hasSidebar:v,hasAside:h,leftAside:u,isSidebarEnabled:A,open:P,close:V,toggle:w}}function yt(a,e){let t;q(()=>{t=a.value?document.activeElement:void 0}),O(()=>{window.addEventListener("keyup",n)}),fe(()=>{window.removeEventListener("keyup",n)});function n(s){s.key==="Escape"&&a.value&&(e(),t==null||t.focus())}}function At(a){const{page:e,hash:t}=S(),n=L(!1),s=y(()=>a.value.collapsed!=null),r=y(()=>!!a.value.link),c=L(!1),v=()=>{c.value=J(e.value.relativePath,a.value.link)};W([e,a,t],v),O(v);const u=y(()=>c.value?!0:a.value.items?ue(e.value.relativePath,a.value.items):!1),h=y(()=>!!(a.value.items&&a.value.items.length));q(()=>{n.value=!!(s.value&&a.value.collapsed)}),me(()=>{(c.value||u.value)&&(n.value=!1)});function A(){s.value&&(n.value=!n.value)}return{collapsed:n,collapsible:s,isLink:r,isActiveLink:c,hasActiveLink:u,hasChildren:h,toggle:A}}function Pt(){const{hasSidebar:a}=D(),e=ie("(min-width: 960px)"),t=ie("(min-width: 1280px)");return{isAsideEnabled:y(()=>!t.value&&!e.value?!1:a.value?t.value:e.value)}}const de=[];function Ee(a){return typeof a.outline=="object"&&!Array.isArray(a.outline)&&a.outline.label||a.outlineTitle||"On this page"}function be(a){const e=[...document.querySelectorAll(".VPDoc :where(h1,h2,h3,h4,h5,h6)")].filter(t=>t.id&&t.hasChildNodes()).map(t=>{const n=Number(t.tagName[1]);return{element:t,title:Vt(t),link:"#"+t.id,level:n}});return St(e,a)}function Vt(a){let e="";for(const t of a.childNodes)if(t.nodeType===1){if(t.classList.contains("VPBadge")||t.classList.contains("header-anchor")||t.classList.contains("ignore-header"))continue;e+=t.textContent}else t.nodeType===3&&(e+=t.textContent);return e.trim()}function St(a,e){if(e===!1)return[];const t=(typeof e=="object"&&!Array.isArray(e)?e.level:e)||2,[n,s]=typeof t=="number"?[t,t]:t==="deep"?[2,6]:t;a=a.filter(c=>c.level>=n&&c.level<=s),de.length=0;for(const{element:c,link:v}of a)de.push({element:c,link:v});const r=[];e:for(let c=0;c=0;u--){const h=a[u];if(h.level{requestAnimationFrame(r),window.addEventListener("scroll",n)}),je(()=>{c(location.hash)}),fe(()=>{window.removeEventListener("scroll",n)});function r(){if(!t.value)return;const v=window.scrollY,u=window.innerHeight,h=document.body.offsetHeight,A=Math.abs(v+u-h)<1,_=de.map(({element:V,link:w})=>({link:w,top:It(V)})).filter(({top:V})=>!Number.isNaN(V)).sort((V,w)=>V.top-w.top);if(!_.length){c(null);return}if(v<1){c(null);return}if(A){c(_[_.length-1].link);return}let P=null;for(const{link:V,top:w}of _){if(w>v+ze()+4)break;P=V}c(P)}function c(v){s&&s.classList.remove("active"),v==null?s=null:s=a.value.querySelector(`a[href="${decodeURIComponent(v)}"]`);const u=s;u?(u.classList.add("active"),e.value.style.top=u.offsetTop+39+"px",e.value.style.opacity="1"):(e.value.style.top="33px",e.value.style.opacity="0")}}function It(a){let e=0;for(;a!==document.body;){if(a===null)return NaN;e+=a.offsetTop,a=a.offsetParent}return e}const Nt=["href","title"],Tt=b({__name:"VPDocOutlineItem",props:{headers:{},root:{type:Boolean}},setup(a){function e({target:t}){const n=t.href.split("#")[1],s=document.getElementById(decodeURIComponent(n));s==null||s.focus({preventScroll:!0})}return(t,n)=>{const s=G("VPDocOutlineItem",!0);return o(),l("ul",{class:T(["VPDocOutlineItem",t.root?"root":"nested"])},[(o(!0),l(C,null,B(t.headers,({children:r,link:c,title:v})=>(o(),l("li",null,[p("a",{class:"outline-link",href:c,onClick:e,title:v},I(v),9,Nt),r!=null&&r.length?(o(),$(s,{key:0,headers:r},null,8,["headers"])):m("",!0)]))),256))],2)}}}),Qe=k(Tt,[["__scopeId","data-v-3f927ebe"]]),Ct={class:"content"},wt={"aria-level":"2",class:"outline-title",id:"doc-outline-aria-label",role:"heading"},Mt=b({__name:"VPDocAsideOutline",setup(a){const{frontmatter:e,theme:t}=S(),n=Le([]);x(()=>{n.value=be(e.value.outline??t.value.outline)});const s=L(),r=L();return Lt(s,r),(c,v)=>(o(),l("nav",{"aria-labelledby":"doc-outline-aria-label",class:T(["VPDocAsideOutline",{"has-outline":n.value.length>0}]),ref_key:"container",ref:s},[p("div",Ct,[p("div",{class:"outline-marker",ref_key:"marker",ref:r},null,512),p("div",wt,I(i(Ee)(i(t))),1),g(Qe,{headers:n.value,root:!0},null,8,["headers"])])],2))}}),Bt=k(Mt,[["__scopeId","data-v-b38bf2ff"]]),Et={class:"VPDocAsideCarbonAds"},Qt=b({__name:"VPDocAsideCarbonAds",props:{carbonAds:{}},setup(a){const e=()=>null;return(t,n)=>(o(),l("div",Et,[g(i(e),{"carbon-ads":t.carbonAds},null,8,["carbon-ads"])]))}}),Ft={class:"VPDocAside"},Ht=b({__name:"VPDocAside",setup(a){const{theme:e}=S();return(t,n)=>(o(),l("div",Ft,[d(t.$slots,"aside-top",{},void 0,!0),d(t.$slots,"aside-outline-before",{},void 0,!0),g(Bt),d(t.$slots,"aside-outline-after",{},void 0,!0),n[0]||(n[0]=p("div",{class:"spacer"},null,-1)),d(t.$slots,"aside-ads-before",{},void 0,!0),i(e).carbonAds?(o(),$(Qt,{key:0,"carbon-ads":i(e).carbonAds},null,8,["carbon-ads"])):m("",!0),d(t.$slots,"aside-ads-after",{},void 0,!0),d(t.$slots,"aside-bottom",{},void 0,!0)]))}}),Wt=k(Ht,[["__scopeId","data-v-6d7b3c46"]]);function Ot(){const{theme:a,page:e}=S();return y(()=>{const{text:t="Edit this page",pattern:n=""}=a.value.editLink||{};let s;return typeof n=="function"?s=n(e.value):s=n.replace(/:path/g,e.value.filePath),{url:s,text:t}})}function Dt(){const{page:a,theme:e,frontmatter:t}=S();return y(()=>{var h,A,_,P,V,w,M,N;const n=Be(e.value.sidebar,a.value.relativePath),s=$t(n),r=Ut(s,E=>E.link.replace(/[?#].*$/,"")),c=r.findIndex(E=>J(a.value.relativePath,E.link)),v=((h=e.value.docFooter)==null?void 0:h.prev)===!1&&!t.value.prev||t.value.prev===!1,u=((A=e.value.docFooter)==null?void 0:A.next)===!1&&!t.value.next||t.value.next===!1;return{prev:v?void 0:{text:(typeof t.value.prev=="string"?t.value.prev:typeof t.value.prev=="object"?t.value.prev.text:void 0)??((_=r[c-1])==null?void 0:_.docFooterText)??((P=r[c-1])==null?void 0:P.text),link:(typeof t.value.prev=="object"?t.value.prev.link:void 0)??((V=r[c-1])==null?void 0:V.link)},next:u?void 0:{text:(typeof t.value.next=="string"?t.value.next:typeof t.value.next=="object"?t.value.next.text:void 0)??((w=r[c+1])==null?void 0:w.docFooterText)??((M=r[c+1])==null?void 0:M.text),link:(typeof t.value.next=="object"?t.value.next.link:void 0)??((N=r[c+1])==null?void 0:N.link)}}})}function Ut(a,e){const t=new Set;return a.filter(n=>{const s=e(n);return t.has(s)?!1:t.add(s)})}const Q=b({__name:"VPLink",props:{tag:{},href:{},noIcon:{type:Boolean},target:{},rel:{}},setup(a){const e=a,t=y(()=>e.tag??(e.href?"a":"span")),n=y(()=>e.href&&Ie.test(e.href)||e.target==="_blank");return(s,r)=>(o(),$(H(t.value),{class:T(["VPLink",{link:s.href,"vp-external-link-icon":n.value,"no-icon":s.noIcon}]),href:s.href?i(_e)(s.href):void 0,target:s.target??(n.value?"_blank":void 0),rel:s.rel??(n.value?"noreferrer":void 0)},{default:f(()=>[d(s.$slots,"default")]),_:3},8,["class","href","target","rel"]))}}),Rt={class:"VPLastUpdated"},Gt=["datetime"],Jt=b({__name:"VPDocFooterLastUpdated",setup(a){const{theme:e,page:t,lang:n}=S(),s=y(()=>new Date(t.value.lastUpdated)),r=y(()=>s.value.toISOString()),c=L("");return O(()=>{q(()=>{var v,u,h;c.value=new Intl.DateTimeFormat((u=(v=e.value.lastUpdated)==null?void 0:v.formatOptions)!=null&&u.forceLocale?n.value:void 0,((h=e.value.lastUpdated)==null?void 0:h.formatOptions)??{dateStyle:"short",timeStyle:"short"}).format(s.value)})}),(v,u)=>{var h;return o(),l("p",Rt,[F(I(((h=i(e).lastUpdated)==null?void 0:h.text)||i(e).lastUpdatedText||"Last updated")+": ",1),p("time",{datetime:r.value},I(c.value),9,Gt)])}}}),Kt=k(Jt,[["__scopeId","data-v-475f71b8"]]),jt={key:0,class:"VPDocFooter"},zt={key:0,class:"edit-info"},Zt={key:0,class:"edit-link"},Yt={key:1,class:"last-updated"},Xt={key:1,class:"prev-next","aria-labelledby":"doc-footer-aria-label"},qt={class:"pager"},xt=["innerHTML"],es=["innerHTML"],ts={class:"pager"},ss=["innerHTML"],ns=["innerHTML"],as=b({__name:"VPDocFooter",setup(a){const{theme:e,page:t,frontmatter:n}=S(),s=Ot(),r=Dt(),c=y(()=>e.value.editLink&&n.value.editLink!==!1),v=y(()=>t.value.lastUpdated),u=y(()=>c.value||v.value||r.value.prev||r.value.next);return(h,A)=>{var _,P,V,w;return u.value?(o(),l("footer",jt,[d(h.$slots,"doc-footer-before",{},void 0,!0),c.value||v.value?(o(),l("div",zt,[c.value?(o(),l("div",Zt,[g(Q,{class:"edit-link-button",href:i(s).url,"no-icon":!0},{default:f(()=>[A[0]||(A[0]=p("span",{class:"vpi-square-pen edit-link-icon"},null,-1)),F(" "+I(i(s).text),1)]),_:1},8,["href"])])):m("",!0),v.value?(o(),l("div",Yt,[g(Kt)])):m("",!0)])):m("",!0),(_=i(r).prev)!=null&&_.link||(P=i(r).next)!=null&&P.link?(o(),l("nav",Xt,[A[1]||(A[1]=p("span",{class:"visually-hidden",id:"doc-footer-aria-label"},"Pager",-1)),p("div",qt,[(V=i(r).prev)!=null&&V.link?(o(),$(Q,{key:0,class:"pager-link prev",href:i(r).prev.link},{default:f(()=>{var M;return[p("span",{class:"desc",innerHTML:((M=i(e).docFooter)==null?void 0:M.prev)||"Previous page"},null,8,xt),p("span",{class:"title",innerHTML:i(r).prev.text},null,8,es)]}),_:1},8,["href"])):m("",!0)]),p("div",ts,[(w=i(r).next)!=null&&w.link?(o(),$(Q,{key:0,class:"pager-link next",href:i(r).next.link},{default:f(()=>{var M;return[p("span",{class:"desc",innerHTML:((M=i(e).docFooter)==null?void 0:M.next)||"Next page"},null,8,ss),p("span",{class:"title",innerHTML:i(r).next.text},null,8,ns)]}),_:1},8,["href"])):m("",!0)])])):m("",!0)])):m("",!0)}}}),os=k(as,[["__scopeId","data-v-4f9813fa"]]),rs={class:"container"},is={class:"aside-container"},ls={class:"aside-content"},cs={class:"content"},us={class:"content-container"},ds={class:"main"},ps=b({__name:"VPDoc",setup(a){const{theme:e}=S(),t=ee(),{hasSidebar:n,hasAside:s,leftAside:r}=D(),c=y(()=>t.path.replace(/[./]+/g,"_").replace(/_html$/,""));return(v,u)=>{const h=G("Content");return o(),l("div",{class:T(["VPDoc",{"has-sidebar":i(n),"has-aside":i(s)}])},[d(v.$slots,"doc-top",{},void 0,!0),p("div",rs,[i(s)?(o(),l("div",{key:0,class:T(["aside",{"left-aside":i(r)}])},[u[0]||(u[0]=p("div",{class:"aside-curtain"},null,-1)),p("div",is,[p("div",ls,[g(Wt,null,{"aside-top":f(()=>[d(v.$slots,"aside-top",{},void 0,!0)]),"aside-bottom":f(()=>[d(v.$slots,"aside-bottom",{},void 0,!0)]),"aside-outline-before":f(()=>[d(v.$slots,"aside-outline-before",{},void 0,!0)]),"aside-outline-after":f(()=>[d(v.$slots,"aside-outline-after",{},void 0,!0)]),"aside-ads-before":f(()=>[d(v.$slots,"aside-ads-before",{},void 0,!0)]),"aside-ads-after":f(()=>[d(v.$slots,"aside-ads-after",{},void 0,!0)]),_:3})])])],2)):m("",!0),p("div",cs,[p("div",us,[d(v.$slots,"doc-before",{},void 0,!0),p("main",ds,[g(h,{class:T(["vp-doc",[c.value,i(e).externalLinkIcon&&"external-link-icon-enabled"]])},null,8,["class"])]),g(os,null,{"doc-footer-before":f(()=>[d(v.$slots,"doc-footer-before",{},void 0,!0)]),_:3}),d(v.$slots,"doc-after",{},void 0,!0)])])]),d(v.$slots,"doc-bottom",{},void 0,!0)],2)}}}),vs=k(ps,[["__scopeId","data-v-83890dd9"]]),fs=b({__name:"VPButton",props:{tag:{},size:{default:"medium"},theme:{default:"brand"},text:{},href:{},target:{},rel:{}},setup(a){const e=a,t=y(()=>e.href&&Ie.test(e.href)),n=y(()=>e.tag||e.href?"a":"button");return(s,r)=>(o(),$(H(n.value),{class:T(["VPButton",[s.size,s.theme]]),href:s.href?i(_e)(s.href):void 0,target:e.target??(t.value?"_blank":void 0),rel:e.rel??(t.value?"noreferrer":void 0)},{default:f(()=>[F(I(s.text),1)]),_:1},8,["class","href","target","rel"]))}}),ms=k(fs,[["__scopeId","data-v-14206e74"]]),hs=["src","alt"],_s=b({inheritAttrs:!1,__name:"VPImage",props:{image:{},alt:{}},setup(a){return(e,t)=>{const n=G("VPImage",!0);return e.image?(o(),l(C,{key:0},[typeof e.image=="string"||"src"in e.image?(o(),l("img",R({key:0,class:"VPImage"},typeof e.image=="string"?e.$attrs:{...e.image,...e.$attrs},{src:i(ve)(typeof e.image=="string"?e.image:e.image.src),alt:e.alt??(typeof e.image=="string"?"":e.image.alt||"")}),null,16,hs)):(o(),l(C,{key:1},[g(n,R({class:"dark",image:e.image.dark,alt:e.image.alt},e.$attrs),null,16,["image","alt"]),g(n,R({class:"light",image:e.image.light,alt:e.image.alt},e.$attrs),null,16,["image","alt"])],64))],64)):m("",!0)}}}),X=k(_s,[["__scopeId","data-v-35a7d0b8"]]),bs={class:"container"},gs={class:"main"},ks={key:0,class:"name"},$s=["innerHTML"],ys=["innerHTML"],As=["innerHTML"],Ps={key:0,class:"actions"},Vs={key:0,class:"image"},Ss={class:"image-container"},Ls=b({__name:"VPHero",props:{name:{},text:{},tagline:{},image:{},actions:{}},setup(a){const e=j("hero-image-slot-exists");return(t,n)=>(o(),l("div",{class:T(["VPHero",{"has-image":t.image||i(e)}])},[p("div",bs,[p("div",gs,[d(t.$slots,"home-hero-info-before",{},void 0,!0),d(t.$slots,"home-hero-info",{},()=>[t.name?(o(),l("h1",ks,[p("span",{innerHTML:t.name,class:"clip"},null,8,$s)])):m("",!0),t.text?(o(),l("p",{key:1,innerHTML:t.text,class:"text"},null,8,ys)):m("",!0),t.tagline?(o(),l("p",{key:2,innerHTML:t.tagline,class:"tagline"},null,8,As)):m("",!0)],!0),d(t.$slots,"home-hero-info-after",{},void 0,!0),t.actions?(o(),l("div",Ps,[(o(!0),l(C,null,B(t.actions,s=>(o(),l("div",{key:s.link,class:"action"},[g(ms,{tag:"a",size:"medium",theme:s.theme,text:s.text,href:s.link,target:s.target,rel:s.rel},null,8,["theme","text","href","target","rel"])]))),128))])):m("",!0),d(t.$slots,"home-hero-actions-after",{},void 0,!0)]),t.image||i(e)?(o(),l("div",Vs,[p("div",Ss,[n[0]||(n[0]=p("div",{class:"image-bg"},null,-1)),d(t.$slots,"home-hero-image",{},()=>[t.image?(o(),$(X,{key:0,class:"image-src",image:t.image},null,8,["image"])):m("",!0)],!0)])])):m("",!0)])],2))}}),Is=k(Ls,[["__scopeId","data-v-955009fc"]]),Ns=b({__name:"VPHomeHero",setup(a){const{frontmatter:e}=S();return(t,n)=>i(e).hero?(o(),$(Is,{key:0,class:"VPHomeHero",name:i(e).hero.name,text:i(e).hero.text,tagline:i(e).hero.tagline,image:i(e).hero.image,actions:i(e).hero.actions},{"home-hero-info-before":f(()=>[d(t.$slots,"home-hero-info-before")]),"home-hero-info":f(()=>[d(t.$slots,"home-hero-info")]),"home-hero-info-after":f(()=>[d(t.$slots,"home-hero-info-after")]),"home-hero-actions-after":f(()=>[d(t.$slots,"home-hero-actions-after")]),"home-hero-image":f(()=>[d(t.$slots,"home-hero-image")]),_:3},8,["name","text","tagline","image","actions"])):m("",!0)}}),Ts={class:"box"},Cs={key:0,class:"icon"},ws=["innerHTML"],Ms=["innerHTML"],Bs=["innerHTML"],Es={key:4,class:"link-text"},Qs={class:"link-text-value"},Fs=b({__name:"VPFeature",props:{icon:{},title:{},details:{},link:{},linkText:{},rel:{},target:{}},setup(a){return(e,t)=>(o(),$(Q,{class:"VPFeature",href:e.link,rel:e.rel,target:e.target,"no-icon":!0,tag:e.link?"a":"div"},{default:f(()=>[p("article",Ts,[typeof e.icon=="object"&&e.icon.wrap?(o(),l("div",Cs,[g(X,{image:e.icon,alt:e.icon.alt,height:e.icon.height||48,width:e.icon.width||48},null,8,["image","alt","height","width"])])):typeof e.icon=="object"?(o(),$(X,{key:1,image:e.icon,alt:e.icon.alt,height:e.icon.height||48,width:e.icon.width||48},null,8,["image","alt","height","width"])):e.icon?(o(),l("div",{key:2,class:"icon",innerHTML:e.icon},null,8,ws)):m("",!0),p("h2",{class:"title",innerHTML:e.title},null,8,Ms),e.details?(o(),l("p",{key:3,class:"details",innerHTML:e.details},null,8,Bs)):m("",!0),e.linkText?(o(),l("div",Es,[p("p",Qs,[F(I(e.linkText)+" ",1),t[0]||(t[0]=p("span",{class:"vpi-arrow-right link-text-icon"},null,-1))])])):m("",!0)])]),_:1},8,["href","rel","target","tag"]))}}),Hs=k(Fs,[["__scopeId","data-v-f5e9645b"]]),Ws={key:0,class:"VPFeatures"},Os={class:"container"},Ds={class:"items"},Us=b({__name:"VPFeatures",props:{features:{}},setup(a){const e=a,t=y(()=>{const n=e.features.length;if(n){if(n===2)return"grid-2";if(n===3)return"grid-3";if(n%3===0)return"grid-6";if(n>3)return"grid-4"}else return});return(n,s)=>n.features?(o(),l("div",Ws,[p("div",Os,[p("div",Ds,[(o(!0),l(C,null,B(n.features,r=>(o(),l("div",{key:r.title,class:T(["item",[t.value]])},[g(Hs,{icon:r.icon,title:r.title,details:r.details,link:r.link,"link-text":r.linkText,rel:r.rel,target:r.target},null,8,["icon","title","details","link","link-text","rel","target"])],2))),128))])])])):m("",!0)}}),Rs=k(Us,[["__scopeId","data-v-d0a190d7"]]),Gs=b({__name:"VPHomeFeatures",setup(a){const{frontmatter:e}=S();return(t,n)=>i(e).features?(o(),$(Rs,{key:0,class:"VPHomeFeatures",features:i(e).features},null,8,["features"])):m("",!0)}}),Js=b({__name:"VPHomeContent",setup(a){const{width:e}=Ze({initialWidth:0,includeScrollbar:!1});return(t,n)=>(o(),l("div",{class:"vp-doc container",style:Ne(i(e)?{"--vp-offset":`calc(50% - ${i(e)/2}px)`}:{})},[d(t.$slots,"default",{},void 0,!0)],4))}}),Ks=k(Js,[["__scopeId","data-v-7a48a447"]]),js={class:"VPHome"},zs=b({__name:"VPHome",setup(a){const{frontmatter:e}=S();return(t,n)=>{const s=G("Content");return o(),l("div",js,[d(t.$slots,"home-hero-before",{},void 0,!0),g(Ns,null,{"home-hero-info-before":f(()=>[d(t.$slots,"home-hero-info-before",{},void 0,!0)]),"home-hero-info":f(()=>[d(t.$slots,"home-hero-info",{},void 0,!0)]),"home-hero-info-after":f(()=>[d(t.$slots,"home-hero-info-after",{},void 0,!0)]),"home-hero-actions-after":f(()=>[d(t.$slots,"home-hero-actions-after",{},void 0,!0)]),"home-hero-image":f(()=>[d(t.$slots,"home-hero-image",{},void 0,!0)]),_:3}),d(t.$slots,"home-hero-after",{},void 0,!0),d(t.$slots,"home-features-before",{},void 0,!0),g(Gs),d(t.$slots,"home-features-after",{},void 0,!0),i(e).markdownStyles!==!1?(o(),$(Ks,{key:0},{default:f(()=>[g(s)]),_:1})):(o(),$(s,{key:1}))])}}}),Zs=k(zs,[["__scopeId","data-v-cbb6ec48"]]),Ys={},Xs={class:"VPPage"};function qs(a,e){const t=G("Content");return o(),l("div",Xs,[d(a.$slots,"page-top"),g(t),d(a.$slots,"page-bottom")])}const xs=k(Ys,[["render",qs]]),en=b({__name:"VPContent",setup(a){const{page:e,frontmatter:t}=S(),{hasSidebar:n}=D();return(s,r)=>(o(),l("div",{class:T(["VPContent",{"has-sidebar":i(n),"is-home":i(t).layout==="home"}]),id:"VPContent"},[i(e).isNotFound?d(s.$slots,"not-found",{key:0},()=>[g(gt)],!0):i(t).layout==="page"?(o(),$(xs,{key:1},{"page-top":f(()=>[d(s.$slots,"page-top",{},void 0,!0)]),"page-bottom":f(()=>[d(s.$slots,"page-bottom",{},void 0,!0)]),_:3})):i(t).layout==="home"?(o(),$(Zs,{key:2},{"home-hero-before":f(()=>[d(s.$slots,"home-hero-before",{},void 0,!0)]),"home-hero-info-before":f(()=>[d(s.$slots,"home-hero-info-before",{},void 0,!0)]),"home-hero-info":f(()=>[d(s.$slots,"home-hero-info",{},void 0,!0)]),"home-hero-info-after":f(()=>[d(s.$slots,"home-hero-info-after",{},void 0,!0)]),"home-hero-actions-after":f(()=>[d(s.$slots,"home-hero-actions-after",{},void 0,!0)]),"home-hero-image":f(()=>[d(s.$slots,"home-hero-image",{},void 0,!0)]),"home-hero-after":f(()=>[d(s.$slots,"home-hero-after",{},void 0,!0)]),"home-features-before":f(()=>[d(s.$slots,"home-features-before",{},void 0,!0)]),"home-features-after":f(()=>[d(s.$slots,"home-features-after",{},void 0,!0)]),_:3})):i(t).layout&&i(t).layout!=="doc"?(o(),$(H(i(t).layout),{key:3})):(o(),$(vs,{key:4},{"doc-top":f(()=>[d(s.$slots,"doc-top",{},void 0,!0)]),"doc-bottom":f(()=>[d(s.$slots,"doc-bottom",{},void 0,!0)]),"doc-footer-before":f(()=>[d(s.$slots,"doc-footer-before",{},void 0,!0)]),"doc-before":f(()=>[d(s.$slots,"doc-before",{},void 0,!0)]),"doc-after":f(()=>[d(s.$slots,"doc-after",{},void 0,!0)]),"aside-top":f(()=>[d(s.$slots,"aside-top",{},void 0,!0)]),"aside-outline-before":f(()=>[d(s.$slots,"aside-outline-before",{},void 0,!0)]),"aside-outline-after":f(()=>[d(s.$slots,"aside-outline-after",{},void 0,!0)]),"aside-ads-before":f(()=>[d(s.$slots,"aside-ads-before",{},void 0,!0)]),"aside-ads-after":f(()=>[d(s.$slots,"aside-ads-after",{},void 0,!0)]),"aside-bottom":f(()=>[d(s.$slots,"aside-bottom",{},void 0,!0)]),_:3}))],2))}}),tn=k(en,[["__scopeId","data-v-91765379"]]),sn={class:"container"},nn=["innerHTML"],an=["innerHTML"],on=b({__name:"VPFooter",setup(a){const{theme:e,frontmatter:t}=S(),{hasSidebar:n}=D();return(s,r)=>i(e).footer&&i(t).footer!==!1?(o(),l("footer",{key:0,class:T(["VPFooter",{"has-sidebar":i(n)}])},[p("div",sn,[i(e).footer.message?(o(),l("p",{key:0,class:"message",innerHTML:i(e).footer.message},null,8,nn)):m("",!0),i(e).footer.copyright?(o(),l("p",{key:1,class:"copyright",innerHTML:i(e).footer.copyright},null,8,an)):m("",!0)])],2)):m("",!0)}}),rn=k(on,[["__scopeId","data-v-c970a860"]]);function ln(){const{theme:a,frontmatter:e}=S(),t=Le([]),n=y(()=>t.value.length>0);return x(()=>{t.value=be(e.value.outline??a.value.outline)}),{headers:t,hasLocalNav:n}}const cn={class:"menu-text"},un={class:"header"},dn={class:"outline"},pn=b({__name:"VPLocalNavOutlineDropdown",props:{headers:{},navHeight:{}},setup(a){const e=a,{theme:t}=S(),n=L(!1),s=L(0),r=L(),c=L();function v(_){var P;(P=r.value)!=null&&P.contains(_.target)||(n.value=!1)}W(n,_=>{if(_){document.addEventListener("click",v);return}document.removeEventListener("click",v)}),le("Escape",()=>{n.value=!1}),x(()=>{n.value=!1});function u(){n.value=!n.value,s.value=window.innerHeight+Math.min(window.scrollY-e.navHeight,0)}function h(_){_.target.classList.contains("outline-link")&&(c.value&&(c.value.style.transition="none"),Te(()=>{n.value=!1}))}function A(){n.value=!1,window.scrollTo({top:0,left:0,behavior:"smooth"})}return(_,P)=>(o(),l("div",{class:"VPLocalNavOutlineDropdown",style:Ne({"--vp-vh":s.value+"px"}),ref_key:"main",ref:r},[_.headers.length>0?(o(),l("button",{key:0,onClick:u,class:T({open:n.value})},[p("span",cn,I(i(Ee)(i(t))),1),P[0]||(P[0]=p("span",{class:"vpi-chevron-right icon"},null,-1))],2)):(o(),l("button",{key:1,onClick:A},I(i(t).returnToTopLabel||"Return to top"),1)),g(pe,{name:"flyout"},{default:f(()=>[n.value?(o(),l("div",{key:0,ref_key:"items",ref:c,class:"items",onClick:h},[p("div",un,[p("a",{class:"top-link",href:"#",onClick:A},I(i(t).returnToTopLabel||"Return to top"),1)]),p("div",dn,[g(Qe,{headers:_.headers},null,8,["headers"])])],512)):m("",!0)]),_:1})],4))}}),vn=k(pn,[["__scopeId","data-v-bc9dc845"]]),fn={class:"container"},mn=["aria-expanded"],hn={class:"menu-text"},_n=b({__name:"VPLocalNav",props:{open:{type:Boolean}},emits:["open-menu"],setup(a){const{theme:e,frontmatter:t}=S(),{hasSidebar:n}=D(),{headers:s}=ln(),{y:r}=Ce(),c=L(0);O(()=>{c.value=parseInt(getComputedStyle(document.documentElement).getPropertyValue("--vp-nav-height"))}),x(()=>{s.value=be(t.value.outline??e.value.outline)});const v=y(()=>s.value.length===0),u=y(()=>v.value&&!n.value),h=y(()=>({VPLocalNav:!0,"has-sidebar":n.value,empty:v.value,fixed:u.value}));return(A,_)=>i(t).layout!=="home"&&(!u.value||i(r)>=c.value)?(o(),l("div",{key:0,class:T(h.value)},[p("div",fn,[i(n)?(o(),l("button",{key:0,class:"menu","aria-expanded":A.open,"aria-controls":"VPSidebarNav",onClick:_[0]||(_[0]=P=>A.$emit("open-menu"))},[_[1]||(_[1]=p("span",{class:"vpi-align-left menu-icon"},null,-1)),p("span",hn,I(i(e).sidebarMenuLabel||"Menu"),1)],8,mn)):m("",!0),g(vn,{headers:i(s),navHeight:c.value},null,8,["headers","navHeight"])])],2)):m("",!0)}}),bn=k(_n,[["__scopeId","data-v-070ab83d"]]);function gn(){const a=L(!1);function e(){a.value=!0,window.addEventListener("resize",s)}function t(){a.value=!1,window.removeEventListener("resize",s)}function n(){a.value?t():e()}function s(){window.outerWidth>=768&&t()}const r=ee();return W(()=>r.path,t),{isScreenOpen:a,openScreen:e,closeScreen:t,toggleScreen:n}}const kn={},$n={class:"VPSwitch",type:"button",role:"switch"},yn={class:"check"},An={key:0,class:"icon"};function Pn(a,e){return o(),l("button",$n,[p("span",yn,[a.$slots.default?(o(),l("span",An,[d(a.$slots,"default",{},void 0,!0)])):m("",!0)])])}const Vn=k(kn,[["render",Pn],["__scopeId","data-v-4a1c76db"]]),Sn=b({__name:"VPSwitchAppearance",setup(a){const{isDark:e,theme:t}=S(),n=j("toggle-appearance",()=>{e.value=!e.value}),s=L("");return me(()=>{s.value=e.value?t.value.lightModeSwitchTitle||"Switch to light theme":t.value.darkModeSwitchTitle||"Switch to dark theme"}),(r,c)=>(o(),$(Vn,{title:s.value,class:"VPSwitchAppearance","aria-checked":i(e),onClick:i(n)},{default:f(()=>c[0]||(c[0]=[p("span",{class:"vpi-sun sun"},null,-1),p("span",{class:"vpi-moon moon"},null,-1)])),_:1},8,["title","aria-checked","onClick"]))}}),ge=k(Sn,[["__scopeId","data-v-e40a8bb6"]]),Ln={key:0,class:"VPNavBarAppearance"},In=b({__name:"VPNavBarAppearance",setup(a){const{site:e}=S();return(t,n)=>i(e).appearance&&i(e).appearance!=="force-dark"&&i(e).appearance!=="force-auto"?(o(),l("div",Ln,[g(ge)])):m("",!0)}}),Nn=k(In,[["__scopeId","data-v-af096f4a"]]),ke=L();let Fe=!1,re=0;function Tn(a){const e=L(!1);if(te){!Fe&&Cn(),re++;const t=W(ke,n=>{var s,r,c;n===a.el.value||(s=a.el.value)!=null&&s.contains(n)?(e.value=!0,(r=a.onFocus)==null||r.call(a)):(e.value=!1,(c=a.onBlur)==null||c.call(a))});fe(()=>{t(),re--,re||wn()})}return Ye(e)}function Cn(){document.addEventListener("focusin",He),Fe=!0,ke.value=document.activeElement}function wn(){document.removeEventListener("focusin",He)}function He(){ke.value=document.activeElement}const Mn={class:"VPMenuLink"},Bn=b({__name:"VPMenuLink",props:{item:{}},setup(a){const{page:e}=S();return(t,n)=>(o(),l("div",Mn,[g(Q,{class:T({active:i(J)(i(e).relativePath,t.item.activeMatch||t.item.link,!!t.item.activeMatch)}),href:t.item.link,target:t.item.target,rel:t.item.rel},{default:f(()=>[F(I(t.item.text),1)]),_:1},8,["class","href","target","rel"])]))}}),se=k(Bn,[["__scopeId","data-v-8b74d055"]]),En={class:"VPMenuGroup"},Qn={key:0,class:"title"},Fn=b({__name:"VPMenuGroup",props:{text:{},items:{}},setup(a){return(e,t)=>(o(),l("div",En,[e.text?(o(),l("p",Qn,I(e.text),1)):m("",!0),(o(!0),l(C,null,B(e.items,n=>(o(),l(C,null,["link"in n?(o(),$(se,{key:0,item:n},null,8,["item"])):m("",!0)],64))),256))]))}}),Hn=k(Fn,[["__scopeId","data-v-48c802d0"]]),Wn={class:"VPMenu"},On={key:0,class:"items"},Dn=b({__name:"VPMenu",props:{items:{}},setup(a){return(e,t)=>(o(),l("div",Wn,[e.items?(o(),l("div",On,[(o(!0),l(C,null,B(e.items,n=>(o(),l(C,{key:JSON.stringify(n)},["link"in n?(o(),$(se,{key:0,item:n},null,8,["item"])):"component"in n?(o(),$(H(n.component),R({key:1,ref_for:!0},n.props),null,16)):(o(),$(Hn,{key:2,text:n.text,items:n.items},null,8,["text","items"]))],64))),128))])):m("",!0),d(e.$slots,"default",{},void 0,!0)]))}}),Un=k(Dn,[["__scopeId","data-v-7dd3104a"]]),Rn=["aria-expanded","aria-label"],Gn={key:0,class:"text"},Jn=["innerHTML"],Kn={key:1,class:"vpi-more-horizontal icon"},jn={class:"menu"},zn=b({__name:"VPFlyout",props:{icon:{},button:{},label:{},items:{}},setup(a){const e=L(!1),t=L();Tn({el:t,onBlur:n});function n(){e.value=!1}return(s,r)=>(o(),l("div",{class:"VPFlyout",ref_key:"el",ref:t,onMouseenter:r[1]||(r[1]=c=>e.value=!0),onMouseleave:r[2]||(r[2]=c=>e.value=!1)},[p("button",{type:"button",class:"button","aria-haspopup":"true","aria-expanded":e.value,"aria-label":s.label,onClick:r[0]||(r[0]=c=>e.value=!e.value)},[s.button||s.icon?(o(),l("span",Gn,[s.icon?(o(),l("span",{key:0,class:T([s.icon,"option-icon"])},null,2)):m("",!0),s.button?(o(),l("span",{key:1,innerHTML:s.button},null,8,Jn)):m("",!0),r[3]||(r[3]=p("span",{class:"vpi-chevron-down text-icon"},null,-1))])):(o(),l("span",Kn))],8,Rn),p("div",jn,[g(Un,{items:s.items},{default:f(()=>[d(s.$slots,"default",{},void 0,!0)]),_:3},8,["items"])])],544))}}),$e=k(zn,[["__scopeId","data-v-e5380155"]]),Zn=["href","aria-label","innerHTML"],Yn=b({__name:"VPSocialLink",props:{icon:{},link:{},ariaLabel:{}},setup(a){const e=a,t=y(()=>typeof e.icon=="object"?e.icon.svg:``);return(n,s)=>(o(),l("a",{class:"VPSocialLink no-icon",href:n.link,"aria-label":n.ariaLabel??(typeof n.icon=="string"?n.icon:""),target:"_blank",rel:"noopener",innerHTML:t.value},null,8,Zn))}}),Xn=k(Yn,[["__scopeId","data-v-717b8b75"]]),qn={class:"VPSocialLinks"},xn=b({__name:"VPSocialLinks",props:{links:{}},setup(a){return(e,t)=>(o(),l("div",qn,[(o(!0),l(C,null,B(e.links,({link:n,icon:s,ariaLabel:r})=>(o(),$(Xn,{key:n,icon:s,link:n,ariaLabel:r},null,8,["icon","link","ariaLabel"]))),128))]))}}),ne=k(xn,[["__scopeId","data-v-ee7a9424"]]),ea={key:0,class:"group translations"},ta={class:"trans-title"},sa={key:1,class:"group"},na={class:"item appearance"},aa={class:"label"},oa={class:"appearance-action"},ra={key:2,class:"group"},ia={class:"item social-links"},la=b({__name:"VPNavBarExtra",setup(a){const{site:e,theme:t}=S(),{localeLinks:n,currentLang:s}=Z({correspondingLink:!0}),r=y(()=>n.value.length&&s.value.label||e.value.appearance||t.value.socialLinks);return(c,v)=>r.value?(o(),$($e,{key:0,class:"VPNavBarExtra",label:"extra navigation"},{default:f(()=>[i(n).length&&i(s).label?(o(),l("div",ea,[p("p",ta,I(i(s).label),1),(o(!0),l(C,null,B(i(n),u=>(o(),$(se,{key:u.link,item:u},null,8,["item"]))),128))])):m("",!0),i(e).appearance&&i(e).appearance!=="force-dark"&&i(e).appearance!=="force-auto"?(o(),l("div",sa,[p("div",na,[p("p",aa,I(i(t).darkModeSwitchLabel||"Appearance"),1),p("div",oa,[g(ge)])])])):m("",!0),i(t).socialLinks?(o(),l("div",ra,[p("div",ia,[g(ne,{class:"social-links-list",links:i(t).socialLinks},null,8,["links"])])])):m("",!0)]),_:1})):m("",!0)}}),ca=k(la,[["__scopeId","data-v-925effce"]]),ua=["aria-expanded"],da=b({__name:"VPNavBarHamburger",props:{active:{type:Boolean}},emits:["click"],setup(a){return(e,t)=>(o(),l("button",{type:"button",class:T(["VPNavBarHamburger",{active:e.active}]),"aria-label":"mobile navigation","aria-expanded":e.active,"aria-controls":"VPNavScreen",onClick:t[0]||(t[0]=n=>e.$emit("click"))},t[1]||(t[1]=[p("span",{class:"container"},[p("span",{class:"top"}),p("span",{class:"middle"}),p("span",{class:"bottom"})],-1)]),10,ua))}}),pa=k(da,[["__scopeId","data-v-5dea55bf"]]),va=["innerHTML"],fa=b({__name:"VPNavBarMenuLink",props:{item:{}},setup(a){const{page:e}=S();return(t,n)=>(o(),$(Q,{class:T({VPNavBarMenuLink:!0,active:i(J)(i(e).relativePath,t.item.activeMatch||t.item.link,!!t.item.activeMatch)}),href:t.item.link,noIcon:t.item.noIcon,target:t.item.target,rel:t.item.rel,tabindex:"0"},{default:f(()=>[p("span",{innerHTML:t.item.text},null,8,va)]),_:1},8,["class","href","noIcon","target","rel"]))}}),ma=k(fa,[["__scopeId","data-v-ed5ac1f6"]]),We=b({__name:"VPNavBarMenuGroup",props:{item:{}},setup(a){const e=a,{page:t}=S(),n=r=>"component"in r?!1:"link"in r?J(t.value.relativePath,r.link,!!e.item.activeMatch):r.items.some(n),s=y(()=>n(e.item));return(r,c)=>(o(),$($e,{class:T({VPNavBarMenuGroup:!0,active:i(J)(i(t).relativePath,r.item.activeMatch,!!r.item.activeMatch)||s.value}),button:r.item.text,items:r.item.items},null,8,["class","button","items"]))}}),ha={key:0,"aria-labelledby":"main-nav-aria-label",class:"VPNavBarMenu"},_a=b({__name:"VPNavBarMenu",setup(a){const{theme:e}=S();return(t,n)=>i(e).nav?(o(),l("nav",ha,[n[0]||(n[0]=p("span",{id:"main-nav-aria-label",class:"visually-hidden"}," Main Navigation ",-1)),(o(!0),l(C,null,B(i(e).nav,s=>(o(),l(C,{key:JSON.stringify(s)},["link"in s?(o(),$(ma,{key:0,item:s},null,8,["item"])):"component"in s?(o(),$(H(s.component),R({key:1,ref_for:!0},s.props),null,16)):(o(),$(We,{key:2,item:s},null,8,["item"]))],64))),128))])):m("",!0)}}),ba=k(_a,[["__scopeId","data-v-e6d46098"]]);function ga(a){const{localeIndex:e,theme:t}=S();function n(s){var w,M,N;const r=s.split("."),c=(w=t.value.search)==null?void 0:w.options,v=c&&typeof c=="object",u=v&&((N=(M=c.locales)==null?void 0:M[e.value])==null?void 0:N.translations)||null,h=v&&c.translations||null;let A=u,_=h,P=a;const V=r.pop();for(const E of r){let U=null;const K=P==null?void 0:P[E];K&&(U=P=K);const ae=_==null?void 0:_[E];ae&&(U=_=ae);const oe=A==null?void 0:A[E];oe&&(U=A=oe),K||(P=U),ae||(_=U),oe||(A=U)}return(A==null?void 0:A[V])??(_==null?void 0:_[V])??(P==null?void 0:P[V])??""}return n}const ka=["aria-label"],$a={class:"DocSearch-Button-Container"},ya={class:"DocSearch-Button-Placeholder"},Ae=b({__name:"VPNavBarSearchButton",setup(a){const t=ga({button:{buttonText:"Search",buttonAriaLabel:"Search"}});return(n,s)=>(o(),l("button",{type:"button",class:"DocSearch DocSearch-Button","aria-label":i(t)("button.buttonAriaLabel")},[p("span",$a,[s[0]||(s[0]=p("span",{class:"vp-icon DocSearch-Search-Icon"},null,-1)),p("span",ya,I(i(t)("button.buttonText")),1)]),s[1]||(s[1]=p("span",{class:"DocSearch-Button-Keys"},[p("kbd",{class:"DocSearch-Button-Key"}),p("kbd",{class:"DocSearch-Button-Key"},"K")],-1))],8,ka))}}),Aa={class:"VPNavBarSearch"},Pa={id:"local-search"},Va={key:1,id:"docsearch"},Sa=b({__name:"VPNavBarSearch",setup(a){const e=Xe(()=>qe(()=>import("./VPLocalSearchBox.Ul3ZdpMO.js"),__vite__mapDeps([0,1]))),t=()=>null,{theme:n}=S(),s=L(!1),r=L(!1);O(()=>{});function c(){s.value||(s.value=!0,setTimeout(v,16))}function v(){const _=new Event("keydown");_.key="k",_.metaKey=!0,window.dispatchEvent(_),setTimeout(()=>{document.querySelector(".DocSearch-Modal")||v()},16)}function u(_){const P=_.target,V=P.tagName;return P.isContentEditable||V==="INPUT"||V==="SELECT"||V==="TEXTAREA"}const h=L(!1);le("k",_=>{(_.ctrlKey||_.metaKey)&&(_.preventDefault(),h.value=!0)}),le("/",_=>{u(_)||(_.preventDefault(),h.value=!0)});const A="local";return(_,P)=>{var V;return o(),l("div",Aa,[i(A)==="local"?(o(),l(C,{key:0},[h.value?(o(),$(i(e),{key:0,onClose:P[0]||(P[0]=w=>h.value=!1)})):m("",!0),p("div",Pa,[g(Ae,{onClick:P[1]||(P[1]=w=>h.value=!0)})])],64)):i(A)==="algolia"?(o(),l(C,{key:1},[s.value?(o(),$(i(t),{key:0,algolia:((V=i(n).search)==null?void 0:V.options)??i(n).algolia,onVnodeBeforeMount:P[2]||(P[2]=w=>r.value=!0)},null,8,["algolia"])):m("",!0),r.value?m("",!0):(o(),l("div",Va,[g(Ae,{onClick:c})]))],64)):m("",!0)])}}}),La=b({__name:"VPNavBarSocialLinks",setup(a){const{theme:e}=S();return(t,n)=>i(e).socialLinks?(o(),$(ne,{key:0,class:"VPNavBarSocialLinks",links:i(e).socialLinks},null,8,["links"])):m("",!0)}}),Ia=k(La,[["__scopeId","data-v-164c457f"]]),Na=["href","rel","target"],Ta={key:1},Ca={key:2},wa=b({__name:"VPNavBarTitle",setup(a){const{site:e,theme:t}=S(),{hasSidebar:n}=D(),{currentLang:s}=Z(),r=y(()=>{var u;return typeof t.value.logoLink=="string"?t.value.logoLink:(u=t.value.logoLink)==null?void 0:u.link}),c=y(()=>{var u;return typeof t.value.logoLink=="string"||(u=t.value.logoLink)==null?void 0:u.rel}),v=y(()=>{var u;return typeof t.value.logoLink=="string"||(u=t.value.logoLink)==null?void 0:u.target});return(u,h)=>(o(),l("div",{class:T(["VPNavBarTitle",{"has-sidebar":i(n)}])},[p("a",{class:"title",href:r.value??i(_e)(i(s).link),rel:c.value,target:v.value},[d(u.$slots,"nav-bar-title-before",{},void 0,!0),i(t).logo?(o(),$(X,{key:0,class:"logo",image:i(t).logo},null,8,["image"])):m("",!0),i(t).siteTitle?(o(),l("span",Ta,I(i(t).siteTitle),1)):i(t).siteTitle===void 0?(o(),l("span",Ca,I(i(e).title),1)):m("",!0),d(u.$slots,"nav-bar-title-after",{},void 0,!0)],8,Na)],2))}}),Ma=k(wa,[["__scopeId","data-v-28a961f9"]]),Ba={class:"items"},Ea={class:"title"},Qa=b({__name:"VPNavBarTranslations",setup(a){const{theme:e}=S(),{localeLinks:t,currentLang:n}=Z({correspondingLink:!0});return(s,r)=>i(t).length&&i(n).label?(o(),$($e,{key:0,class:"VPNavBarTranslations",icon:"vpi-languages",label:i(e).langMenuLabel||"Change language"},{default:f(()=>[p("div",Ba,[p("p",Ea,I(i(n).label),1),(o(!0),l(C,null,B(i(t),c=>(o(),$(se,{key:c.link,item:c},null,8,["item"]))),128))])]),_:1},8,["label"])):m("",!0)}}),Fa=k(Qa,[["__scopeId","data-v-c80d9ad0"]]),Ha={class:"wrapper"},Wa={class:"container"},Oa={class:"title"},Da={class:"content"},Ua={class:"content-body"},Ra=b({__name:"VPNavBar",props:{isScreenOpen:{type:Boolean}},emits:["toggle-screen"],setup(a){const e=a,{y:t}=Ce(),{hasSidebar:n}=D(),{frontmatter:s}=S(),r=L({});return me(()=>{r.value={"has-sidebar":n.value,home:s.value.layout==="home",top:t.value===0,"screen-open":e.isScreenOpen}}),(c,v)=>(o(),l("div",{class:T(["VPNavBar",r.value])},[p("div",Ha,[p("div",Wa,[p("div",Oa,[g(Ma,null,{"nav-bar-title-before":f(()=>[d(c.$slots,"nav-bar-title-before",{},void 0,!0)]),"nav-bar-title-after":f(()=>[d(c.$slots,"nav-bar-title-after",{},void 0,!0)]),_:3})]),p("div",Da,[p("div",Ua,[d(c.$slots,"nav-bar-content-before",{},void 0,!0),g(Sa,{class:"search"}),g(ba,{class:"menu"}),g(Fa,{class:"translations"}),g(Nn,{class:"appearance"}),g(Ia,{class:"social-links"}),g(ca,{class:"extra"}),d(c.$slots,"nav-bar-content-after",{},void 0,!0),g(pa,{class:"hamburger",active:c.isScreenOpen,onClick:v[0]||(v[0]=u=>c.$emit("toggle-screen"))},null,8,["active"])])])])]),v[1]||(v[1]=p("div",{class:"divider"},[p("div",{class:"divider-line"})],-1))],2))}}),Ga=k(Ra,[["__scopeId","data-v-822684d1"]]),Ja={key:0,class:"VPNavScreenAppearance"},Ka={class:"text"},ja=b({__name:"VPNavScreenAppearance",setup(a){const{site:e,theme:t}=S();return(n,s)=>i(e).appearance&&i(e).appearance!=="force-dark"&&i(e).appearance!=="force-auto"?(o(),l("div",Ja,[p("p",Ka,I(i(t).darkModeSwitchLabel||"Appearance"),1),g(ge)])):m("",!0)}}),za=k(ja,[["__scopeId","data-v-ffb44008"]]),Za=b({__name:"VPNavScreenMenuLink",props:{item:{}},setup(a){const e=j("close-screen");return(t,n)=>(o(),$(Q,{class:"VPNavScreenMenuLink",href:t.item.link,target:t.item.target,rel:t.item.rel,onClick:i(e),innerHTML:t.item.text},null,8,["href","target","rel","onClick","innerHTML"]))}}),Ya=k(Za,[["__scopeId","data-v-27d04aeb"]]),Xa=b({__name:"VPNavScreenMenuGroupLink",props:{item:{}},setup(a){const e=j("close-screen");return(t,n)=>(o(),$(Q,{class:"VPNavScreenMenuGroupLink",href:t.item.link,target:t.item.target,rel:t.item.rel,onClick:i(e)},{default:f(()=>[F(I(t.item.text),1)]),_:1},8,["href","target","rel","onClick"]))}}),Oe=k(Xa,[["__scopeId","data-v-7179dbb7"]]),qa={class:"VPNavScreenMenuGroupSection"},xa={key:0,class:"title"},eo=b({__name:"VPNavScreenMenuGroupSection",props:{text:{},items:{}},setup(a){return(e,t)=>(o(),l("div",qa,[e.text?(o(),l("p",xa,I(e.text),1)):m("",!0),(o(!0),l(C,null,B(e.items,n=>(o(),$(Oe,{key:n.text,item:n},null,8,["item"]))),128))]))}}),to=k(eo,[["__scopeId","data-v-4b8941ac"]]),so=["aria-controls","aria-expanded"],no=["innerHTML"],ao=["id"],oo={key:0,class:"item"},ro={key:1,class:"item"},io={key:2,class:"group"},lo=b({__name:"VPNavScreenMenuGroup",props:{text:{},items:{}},setup(a){const e=a,t=L(!1),n=y(()=>`NavScreenGroup-${e.text.replace(" ","-").toLowerCase()}`);function s(){t.value=!t.value}return(r,c)=>(o(),l("div",{class:T(["VPNavScreenMenuGroup",{open:t.value}])},[p("button",{class:"button","aria-controls":n.value,"aria-expanded":t.value,onClick:s},[p("span",{class:"button-text",innerHTML:r.text},null,8,no),c[0]||(c[0]=p("span",{class:"vpi-plus button-icon"},null,-1))],8,so),p("div",{id:n.value,class:"items"},[(o(!0),l(C,null,B(r.items,v=>(o(),l(C,{key:JSON.stringify(v)},["link"in v?(o(),l("div",oo,[g(Oe,{item:v},null,8,["item"])])):"component"in v?(o(),l("div",ro,[(o(),$(H(v.component),R({ref_for:!0},v.props,{"screen-menu":""}),null,16))])):(o(),l("div",io,[g(to,{text:v.text,items:v.items},null,8,["text","items"])]))],64))),128))],8,ao)],2))}}),De=k(lo,[["__scopeId","data-v-875057a5"]]),co={key:0,class:"VPNavScreenMenu"},uo=b({__name:"VPNavScreenMenu",setup(a){const{theme:e}=S();return(t,n)=>i(e).nav?(o(),l("nav",co,[(o(!0),l(C,null,B(i(e).nav,s=>(o(),l(C,{key:JSON.stringify(s)},["link"in s?(o(),$(Ya,{key:0,item:s},null,8,["item"])):"component"in s?(o(),$(H(s.component),R({key:1,ref_for:!0},s.props,{"screen-menu":""}),null,16)):(o(),$(De,{key:2,text:s.text||"",items:s.items},null,8,["text","items"]))],64))),128))])):m("",!0)}}),po=b({__name:"VPNavScreenSocialLinks",setup(a){const{theme:e}=S();return(t,n)=>i(e).socialLinks?(o(),$(ne,{key:0,class:"VPNavScreenSocialLinks",links:i(e).socialLinks},null,8,["links"])):m("",!0)}}),vo={class:"list"},fo=b({__name:"VPNavScreenTranslations",setup(a){const{localeLinks:e,currentLang:t}=Z({correspondingLink:!0}),n=L(!1);function s(){n.value=!n.value}return(r,c)=>i(e).length&&i(t).label?(o(),l("div",{key:0,class:T(["VPNavScreenTranslations",{open:n.value}])},[p("button",{class:"title",onClick:s},[c[0]||(c[0]=p("span",{class:"vpi-languages icon lang"},null,-1)),F(" "+I(i(t).label)+" ",1),c[1]||(c[1]=p("span",{class:"vpi-chevron-down icon chevron"},null,-1))]),p("ul",vo,[(o(!0),l(C,null,B(i(e),v=>(o(),l("li",{key:v.link,class:"item"},[g(Q,{class:"link",href:v.link},{default:f(()=>[F(I(v.text),1)]),_:2},1032,["href"])]))),128))])],2)):m("",!0)}}),mo=k(fo,[["__scopeId","data-v-362991c2"]]),ho={class:"container"},_o=b({__name:"VPNavScreen",props:{open:{type:Boolean}},setup(a){const e=L(null),t=we(te?document.body:null);return(n,s)=>(o(),$(pe,{name:"fade",onEnter:s[0]||(s[0]=r=>t.value=!0),onAfterLeave:s[1]||(s[1]=r=>t.value=!1)},{default:f(()=>[n.open?(o(),l("div",{key:0,class:"VPNavScreen",ref_key:"screen",ref:e,id:"VPNavScreen"},[p("div",ho,[d(n.$slots,"nav-screen-content-before",{},void 0,!0),g(uo,{class:"menu"}),g(mo,{class:"translations"}),g(za,{class:"appearance"}),g(po,{class:"social-links"}),d(n.$slots,"nav-screen-content-after",{},void 0,!0)])],512)):m("",!0)]),_:3}))}}),bo=k(_o,[["__scopeId","data-v-833aabba"]]),go={key:0,class:"VPNav"},ko=b({__name:"VPNav",setup(a){const{isScreenOpen:e,closeScreen:t,toggleScreen:n}=gn(),{frontmatter:s}=S(),r=y(()=>s.value.navbar!==!1);return he("close-screen",t),q(()=>{te&&document.documentElement.classList.toggle("hide-nav",!r.value)}),(c,v)=>r.value?(o(),l("header",go,[g(Ga,{"is-screen-open":i(e),onToggleScreen:i(n)},{"nav-bar-title-before":f(()=>[d(c.$slots,"nav-bar-title-before",{},void 0,!0)]),"nav-bar-title-after":f(()=>[d(c.$slots,"nav-bar-title-after",{},void 0,!0)]),"nav-bar-content-before":f(()=>[d(c.$slots,"nav-bar-content-before",{},void 0,!0)]),"nav-bar-content-after":f(()=>[d(c.$slots,"nav-bar-content-after",{},void 0,!0)]),_:3},8,["is-screen-open","onToggleScreen"]),g(bo,{open:i(e)},{"nav-screen-content-before":f(()=>[d(c.$slots,"nav-screen-content-before",{},void 0,!0)]),"nav-screen-content-after":f(()=>[d(c.$slots,"nav-screen-content-after",{},void 0,!0)]),_:3},8,["open"])])):m("",!0)}}),$o=k(ko,[["__scopeId","data-v-f1e365da"]]),yo=["role","tabindex"],Ao={key:1,class:"items"},Po=b({__name:"VPSidebarItem",props:{item:{},depth:{}},setup(a){const e=a,{collapsed:t,collapsible:n,isLink:s,isActiveLink:r,hasActiveLink:c,hasChildren:v,toggle:u}=At(y(()=>e.item)),h=y(()=>v.value?"section":"div"),A=y(()=>s.value?"a":"div"),_=y(()=>v.value?e.depth+2===7?"p":`h${e.depth+2}`:"p"),P=y(()=>s.value?void 0:"button"),V=y(()=>[[`level-${e.depth}`],{collapsible:n.value},{collapsed:t.value},{"is-link":s.value},{"is-active":r.value},{"has-active":c.value}]);function w(N){"key"in N&&N.key!=="Enter"||!e.item.link&&u()}function M(){e.item.link&&u()}return(N,E)=>{const U=G("VPSidebarItem",!0);return o(),$(H(h.value),{class:T(["VPSidebarItem",V.value])},{default:f(()=>[N.item.text?(o(),l("div",R({key:0,class:"item",role:P.value},xe(N.item.items?{click:w,keydown:w}:{},!0),{tabindex:N.item.items&&0}),[E[1]||(E[1]=p("div",{class:"indicator"},null,-1)),N.item.link?(o(),$(Q,{key:0,tag:A.value,class:"link",href:N.item.link,rel:N.item.rel,target:N.item.target},{default:f(()=>[(o(),$(H(_.value),{class:"text",innerHTML:N.item.text},null,8,["innerHTML"]))]),_:1},8,["tag","href","rel","target"])):(o(),$(H(_.value),{key:1,class:"text",innerHTML:N.item.text},null,8,["innerHTML"])),N.item.collapsed!=null&&N.item.items&&N.item.items.length?(o(),l("div",{key:2,class:"caret",role:"button","aria-label":"toggle section",onClick:M,onKeydown:et(M,["enter"]),tabindex:"0"},E[0]||(E[0]=[p("span",{class:"vpi-chevron-right caret-icon"},null,-1)]),32)):m("",!0)],16,yo)):m("",!0),N.item.items&&N.item.items.length?(o(),l("div",Ao,[N.depth<5?(o(!0),l(C,{key:0},B(N.item.items,K=>(o(),$(U,{key:K.text,item:K,depth:N.depth+1},null,8,["item","depth"]))),128)):m("",!0)])):m("",!0)]),_:1},8,["class"])}}}),Vo=k(Po,[["__scopeId","data-v-196b2e5f"]]),So=b({__name:"VPSidebarGroup",props:{items:{}},setup(a){const e=L(!0);let t=null;return O(()=>{t=setTimeout(()=>{t=null,e.value=!1},300)}),tt(()=>{t!=null&&(clearTimeout(t),t=null)}),(n,s)=>(o(!0),l(C,null,B(n.items,r=>(o(),l("div",{key:r.text,class:T(["group",{"no-transition":e.value}])},[g(Vo,{item:r,depth:0},null,8,["item"])],2))),128))}}),Lo=k(So,[["__scopeId","data-v-9e426adc"]]),Io={class:"nav",id:"VPSidebarNav","aria-labelledby":"sidebar-aria-label",tabindex:"-1"},No=b({__name:"VPSidebar",props:{open:{type:Boolean}},setup(a){const{sidebarGroups:e,hasSidebar:t}=D(),n=a,s=L(null),r=we(te?document.body:null);W([n,s],()=>{var v;n.open?(r.value=!0,(v=s.value)==null||v.focus()):r.value=!1},{immediate:!0,flush:"post"});const c=L(0);return W(e,()=>{c.value+=1},{deep:!0}),(v,u)=>i(t)?(o(),l("aside",{key:0,class:T(["VPSidebar",{open:v.open}]),ref_key:"navEl",ref:s,onClick:u[0]||(u[0]=st(()=>{},["stop"]))},[u[2]||(u[2]=p("div",{class:"curtain"},null,-1)),p("nav",Io,[u[1]||(u[1]=p("span",{class:"visually-hidden",id:"sidebar-aria-label"}," Sidebar Navigation ",-1)),d(v.$slots,"sidebar-nav-before",{},void 0,!0),(o(),$(Lo,{items:i(e),key:c.value},null,8,["items"])),d(v.$slots,"sidebar-nav-after",{},void 0,!0)])],2)):m("",!0)}}),To=k(No,[["__scopeId","data-v-18756405"]]),Co=b({__name:"VPSkipLink",setup(a){const e=ee(),t=L();W(()=>e.path,()=>t.value.focus());function n({target:s}){const r=document.getElementById(decodeURIComponent(s.hash).slice(1));if(r){const c=()=>{r.removeAttribute("tabindex"),r.removeEventListener("blur",c)};r.setAttribute("tabindex","-1"),r.addEventListener("blur",c),r.focus(),window.scrollTo(0,0)}}return(s,r)=>(o(),l(C,null,[p("span",{ref_key:"backToTop",ref:t,tabindex:"-1"},null,512),p("a",{href:"#VPContent",class:"VPSkipLink visually-hidden",onClick:n}," Skip to content ")],64))}}),wo=k(Co,[["__scopeId","data-v-c3508ec8"]]),Mo=b({__name:"Layout",setup(a){const{isOpen:e,open:t,close:n}=D(),s=ee();W(()=>s.path,n),yt(e,n);const{frontmatter:r}=S(),c=Me(),v=y(()=>!!c["home-hero-image"]);return he("hero-image-slot-exists",v),(u,h)=>{const A=G("Content");return i(r).layout!==!1?(o(),l("div",{key:0,class:T(["Layout",i(r).pageClass])},[d(u.$slots,"layout-top",{},void 0,!0),g(wo),g(ct,{class:"backdrop",show:i(e),onClick:i(n)},null,8,["show","onClick"]),g($o,null,{"nav-bar-title-before":f(()=>[d(u.$slots,"nav-bar-title-before",{},void 0,!0)]),"nav-bar-title-after":f(()=>[d(u.$slots,"nav-bar-title-after",{},void 0,!0)]),"nav-bar-content-before":f(()=>[d(u.$slots,"nav-bar-content-before",{},void 0,!0)]),"nav-bar-content-after":f(()=>[d(u.$slots,"nav-bar-content-after",{},void 0,!0)]),"nav-screen-content-before":f(()=>[d(u.$slots,"nav-screen-content-before",{},void 0,!0)]),"nav-screen-content-after":f(()=>[d(u.$slots,"nav-screen-content-after",{},void 0,!0)]),_:3}),g(bn,{open:i(e),onOpenMenu:i(t)},null,8,["open","onOpenMenu"]),g(To,{open:i(e)},{"sidebar-nav-before":f(()=>[d(u.$slots,"sidebar-nav-before",{},void 0,!0)]),"sidebar-nav-after":f(()=>[d(u.$slots,"sidebar-nav-after",{},void 0,!0)]),_:3},8,["open"]),g(tn,null,{"page-top":f(()=>[d(u.$slots,"page-top",{},void 0,!0)]),"page-bottom":f(()=>[d(u.$slots,"page-bottom",{},void 0,!0)]),"not-found":f(()=>[d(u.$slots,"not-found",{},void 0,!0)]),"home-hero-before":f(()=>[d(u.$slots,"home-hero-before",{},void 0,!0)]),"home-hero-info-before":f(()=>[d(u.$slots,"home-hero-info-before",{},void 0,!0)]),"home-hero-info":f(()=>[d(u.$slots,"home-hero-info",{},void 0,!0)]),"home-hero-info-after":f(()=>[d(u.$slots,"home-hero-info-after",{},void 0,!0)]),"home-hero-actions-after":f(()=>[d(u.$slots,"home-hero-actions-after",{},void 0,!0)]),"home-hero-image":f(()=>[d(u.$slots,"home-hero-image",{},void 0,!0)]),"home-hero-after":f(()=>[d(u.$slots,"home-hero-after",{},void 0,!0)]),"home-features-before":f(()=>[d(u.$slots,"home-features-before",{},void 0,!0)]),"home-features-after":f(()=>[d(u.$slots,"home-features-after",{},void 0,!0)]),"doc-footer-before":f(()=>[d(u.$slots,"doc-footer-before",{},void 0,!0)]),"doc-before":f(()=>[d(u.$slots,"doc-before",{},void 0,!0)]),"doc-after":f(()=>[d(u.$slots,"doc-after",{},void 0,!0)]),"doc-top":f(()=>[d(u.$slots,"doc-top",{},void 0,!0)]),"doc-bottom":f(()=>[d(u.$slots,"doc-bottom",{},void 0,!0)]),"aside-top":f(()=>[d(u.$slots,"aside-top",{},void 0,!0)]),"aside-bottom":f(()=>[d(u.$slots,"aside-bottom",{},void 0,!0)]),"aside-outline-before":f(()=>[d(u.$slots,"aside-outline-before",{},void 0,!0)]),"aside-outline-after":f(()=>[d(u.$slots,"aside-outline-after",{},void 0,!0)]),"aside-ads-before":f(()=>[d(u.$slots,"aside-ads-before",{},void 0,!0)]),"aside-ads-after":f(()=>[d(u.$slots,"aside-ads-after",{},void 0,!0)]),_:3}),g(rn),d(u.$slots,"layout-bottom",{},void 0,!0)],2)):(o(),$(A,{key:1}))}}}),Bo=k(Mo,[["__scopeId","data-v-a9a9e638"]]),Eo={},Qo={class:"VPTeamPage"};function Fo(a,e){return o(),l("div",Qo,[d(a.$slots,"default")])}const Br=k(Eo,[["render",Fo],["__scopeId","data-v-c2f8e101"]]),Ho={},Wo={class:"VPTeamPageTitle"},Oo={key:0,class:"title"},Do={key:1,class:"lead"};function Uo(a,e){return o(),l("div",Wo,[a.$slots.title?(o(),l("h1",Oo,[d(a.$slots,"title",{},void 0,!0)])):m("",!0),a.$slots.lead?(o(),l("p",Do,[d(a.$slots,"lead",{},void 0,!0)])):m("",!0)])}const Er=k(Ho,[["render",Uo],["__scopeId","data-v-e277e15c"]]),Ro={},Go={class:"VPTeamPageSection"},Jo={class:"title"},Ko={key:0,class:"title-text"},jo={key:0,class:"lead"},zo={key:1,class:"members"};function Zo(a,e){return o(),l("section",Go,[p("div",Jo,[e[0]||(e[0]=p("div",{class:"title-line"},null,-1)),a.$slots.title?(o(),l("h2",Ko,[d(a.$slots,"title",{},void 0,!0)])):m("",!0)]),a.$slots.lead?(o(),l("p",jo,[d(a.$slots,"lead",{},void 0,!0)])):m("",!0),a.$slots.members?(o(),l("div",zo,[d(a.$slots,"members",{},void 0,!0)])):m("",!0)])}const Qr=k(Ro,[["render",Zo],["__scopeId","data-v-d43bc49d"]]),Yo={class:"profile"},Xo={class:"avatar"},qo=["src","alt"],xo={class:"data"},er={class:"name"},tr={key:0,class:"affiliation"},sr={key:0,class:"title"},nr={key:1,class:"at"},ar=["innerHTML"],or={key:2,class:"links"},rr={key:0,class:"sp"},ir=b({__name:"VPTeamMembersItem",props:{size:{default:"medium"},member:{}},setup(a){return(e,t)=>(o(),l("article",{class:T(["VPTeamMembersItem",[e.size]])},[p("div",Yo,[p("figure",Xo,[p("img",{class:"avatar-img",src:e.member.avatar,alt:e.member.name},null,8,qo)]),p("div",xo,[p("h1",er,I(e.member.name),1),e.member.title||e.member.org?(o(),l("p",tr,[e.member.title?(o(),l("span",sr,I(e.member.title),1)):m("",!0),e.member.title&&e.member.org?(o(),l("span",nr," @ ")):m("",!0),e.member.org?(o(),$(Q,{key:2,class:T(["org",{link:e.member.orgLink}]),href:e.member.orgLink,"no-icon":""},{default:f(()=>[F(I(e.member.org),1)]),_:1},8,["class","href"])):m("",!0)])):m("",!0),e.member.desc?(o(),l("p",{key:1,class:"desc",innerHTML:e.member.desc},null,8,ar)):m("",!0),e.member.links?(o(),l("div",or,[g(ne,{links:e.member.links},null,8,["links"])])):m("",!0)])]),e.member.sponsor?(o(),l("div",rr,[g(Q,{class:"sp-link",href:e.member.sponsor,"no-icon":""},{default:f(()=>[t[0]||(t[0]=p("span",{class:"vpi-heart sp-icon"},null,-1)),F(" "+I(e.member.actionText||"Sponsor"),1)]),_:1},8,["href"])])):m("",!0)],2))}}),lr=k(ir,[["__scopeId","data-v-f9987cb6"]]),cr={class:"container"},ur=b({__name:"VPTeamMembers",props:{size:{default:"medium"},members:{}},setup(a){const e=a,t=y(()=>[e.size,`count-${e.members.length}`]);return(n,s)=>(o(),l("div",{class:T(["VPTeamMembers",t.value])},[p("div",cr,[(o(!0),l(C,null,B(n.members,r=>(o(),l("div",{key:r.name,class:"item"},[g(lr,{size:n.size,member:r},null,8,["size","member"])]))),128))])],2))}}),Fr=k(ur,[["__scopeId","data-v-fba19bad"]]),Pe={Layout:Bo,enhanceApp:({app:a})=>{a.component("Badge",rt)}},dr={},pr={style:{"text-align":"center"}};function vr(a,e){const t=G("font");return o(),l(C,null,[e[1]||(e[1]=p("br",null,null,-1)),p("h1",pr,[p("strong",null,[g(t,{color:"orange"},{default:f(()=>e[0]||(e[0]=[F(" Package Ecosystem")])),_:1})])]),e[2]||(e[2]=nt('

Read n-d array like-data

DiskArrays.jl

Get your chunks!

Named Dimensions

DimensionalData.jl

Select & Index!

Out of memory data

Zarr.jl

Chunkerd, compressed !

Rasterized spatial data

Rasters.jl

Read and manipulate !

Array-oriented data

NetCDF.jl

Scientific binary data.

Raster and vector data

ArchGDAL.jl

GDAL in Julia.

An interface for

GeoInterface.jl

geospatial data in Julia.

A higher level interface

GRIBDatasets.jl

for reading GRIB files.

Array-oriented data

NCDatasets.jl

Scientific binary data.

',9))],64)}const fr=k(dr,[["render",vr]]),mr=b({__name:"VersionPicker",props:{screenMenu:{type:Boolean}},setup(a){const e=L([]),t=L("Versions"),n=L(!1);Se();const s=()=>typeof window<"u"&&(window.location.hostname==="localhost"||window.location.hostname==="127.0.0.1"),r=()=>{if(typeof window>"u")return"";const{origin:u,pathname:h}=window.location;if(u.includes("github.io")){const A=h.split("/").filter(Boolean),_=A.length>0?`/${A[0]}/`:"/";return`${u}${_}`}else return u},c=()=>new Promise(u=>{if(s()){u(!1);return}const h=setInterval(()=>{window.DOC_VERSIONS&&window.DOCUMENTER_CURRENT_VERSION&&(clearInterval(h),u(!0))},100);setTimeout(()=>{clearInterval(h),u(!1)},5e3)});return O(async()=>{if(!(typeof window>"u")){try{if(s()){const u=["dev"];e.value=u.map(h=>({text:h,link:"/"})),t.value="dev"}else{const u=await c(),h=y(()=>r());if(u&&window.DOC_VERSIONS&&window.DOCUMENTER_CURRENT_VERSION)e.value=window.DOC_VERSIONS.map(A=>({text:A,link:`${h.value}/${A}/`})),t.value=window.DOCUMENTER_CURRENT_VERSION;else{const A=["dev"];e.value=A.map(_=>({text:_,link:`${h.value}/${_}/`})),t.value="dev"}}}catch(u){console.warn("Error loading versions:",u);const h=["dev"],A=y(()=>r());e.value=h.map(_=>({text:_,link:`${A.value}/${_}/`})),t.value="dev"}n.value=!0}}),(u,h)=>n.value?(o(),l(C,{key:0},[!u.screenMenu&&e.value.length>0?(o(),$(We,{key:0,item:{text:t.value,items:e.value},class:"VPVersionPicker"},null,8,["item"])):u.screenMenu&&e.value.length>0?(o(),$(De,{key:1,text:t.value,items:e.value,class:"VPVersionPicker"},null,8,["text","items"])):m("",!0)],64)):m("",!0)}}),hr=k(mr,[["__scopeId","data-v-f465cb49"]]),_r=a=>{if(typeof document>"u")return{stabilizeScrollPosition:s=>async(...r)=>s(...r)};const e=document.documentElement;return{stabilizeScrollPosition:n=>async(...s)=>{const r=n(...s),c=a.value;if(!c)return r;const v=c.offsetTop-e.scrollTop;return await Te(),e.scrollTop=c.offsetTop-v,r}}},Ue="vitepress:tabSharedState",z=typeof localStorage<"u"?localStorage:null,Re="vitepress:tabsSharedState",br=()=>{const a=z==null?void 0:z.getItem(Re);if(a)try{return JSON.parse(a)}catch{}return{}},gr=a=>{z&&z.setItem(Re,JSON.stringify(a))},kr=a=>{const e=at({});W(()=>e.content,(t,n)=>{t&&n&&gr(t)},{deep:!0}),a.provide(Ue,e)},$r=(a,e)=>{const t=j(Ue);if(!t)throw new Error("[vitepress-plugin-tabs] TabsSharedState should be injected");O(()=>{t.content||(t.content=br())});const n=L(),s=y({get(){var u;const c=e.value,v=a.value;if(c){const h=(u=t.content)==null?void 0:u[c];if(h&&v.includes(h))return h}else{const h=n.value;if(h)return h}return v[0]},set(c){const v=e.value;v?t.content&&(t.content[v]=c):n.value=c}});return{selected:s,select:c=>{s.value=c}}};let Ve=0;const yr=()=>(Ve++,""+Ve);function Ar(){const a=Me();return y(()=>{var n;const t=(n=a.default)==null?void 0:n.call(a);return t?t.filter(s=>typeof s.type=="object"&&"__name"in s.type&&s.type.__name==="PluginTabsTab"&&s.props).map(s=>{var r;return(r=s.props)==null?void 0:r.label}):[]})}const Ge="vitepress:tabSingleState",Pr=a=>{he(Ge,a)},Vr=()=>{const a=j(Ge);if(!a)throw new Error("[vitepress-plugin-tabs] TabsSingleState should be injected");return a},Sr={class:"plugin-tabs"},Lr=["id","aria-selected","aria-controls","tabindex","onClick"],Ir=b({__name:"PluginTabs",props:{sharedStateKey:{}},setup(a){const e=a,t=Ar(),{selected:n,select:s}=$r(t,ot(e,"sharedStateKey")),r=L(),{stabilizeScrollPosition:c}=_r(r),v=c(s),u=L([]),h=_=>{var w;const P=t.value.indexOf(n.value);let V;_.key==="ArrowLeft"?V=P>=1?P-1:t.value.length-1:_.key==="ArrowRight"&&(V=P(o(),l("div",Sr,[p("div",{ref_key:"tablist",ref:r,class:"plugin-tabs--tab-list",role:"tablist",onKeydown:h},[(o(!0),l(C,null,B(i(t),V=>(o(),l("button",{id:`tab-${V}-${i(A)}`,ref_for:!0,ref_key:"buttonRefs",ref:u,key:V,role:"tab",class:"plugin-tabs--tab","aria-selected":V===i(n),"aria-controls":`panel-${V}-${i(A)}`,tabindex:V===i(n)?0:-1,onClick:()=>i(v)(V)},I(V),9,Lr))),128))],544),d(_.$slots,"default")]))}}),Nr=["id","aria-labelledby"],Tr=b({__name:"PluginTabsTab",props:{label:{}},setup(a){const{uid:e,selected:t}=Vr();return(n,s)=>i(t)===n.label?(o(),l("div",{key:0,id:`panel-${n.label}-${i(e)}`,class:"plugin-tabs--content",role:"tabpanel",tabindex:"0","aria-labelledby":`tab-${n.label}-${i(e)}`},[d(n.$slots,"default",{},void 0,!0)],8,Nr)):m("",!0)}}),Cr=k(Tr,[["__scopeId","data-v-9b0d03d2"]]),wr=a=>{kr(a),a.component("PluginTabs",Ir),a.component("PluginTabsTab",Cr)},Hr={extends:Pe,Layout(){return ye(Pe.Layout,null,{"aside-ads-before":()=>ye(fr)})},enhanceApp({app:a,router:e,siteData:t}){wr(a),a.component("VersionPicker",hr)}};export{Hr as R,Er as V,Fr as a,Qr as b,Br as c,ga as d,S as u}; +const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/chunks/VPLocalSearchBox.BiFL7nx4.js","assets/chunks/framework.eQVMtpgY.js"])))=>i.map(i=>d[i]); +import{d as b,o,c as l,r as d,n as T,a as F,t as I,b as $,w as f,e as m,T as pe,_ as k,u as Se,i as Je,f as Ke,g as ve,h as y,j as p,k as i,l as J,m as ie,p as L,q as W,s as q,v as O,x as fe,y as me,z as je,A as ze,B as G,F as C,C as B,D as Le,E as x,G as g,H,I as Ie,J as ee,K as R,L as j,M as Ze,N as Ne,O as le,P as Te,Q as Ce,R as te,S as Ye,U as Xe,V as qe,W as we,X as he,Y as xe,Z as et,$ as tt,a0 as st,a1 as Me,a2 as nt,a3 as at,a4 as ot,a5 as ye}from"./framework.eQVMtpgY.js";const rt=b({__name:"VPBadge",props:{text:{},type:{default:"tip"}},setup(a){return(e,t)=>(o(),l("span",{class:T(["VPBadge",e.type])},[d(e.$slots,"default",{},()=>[F(I(e.text),1)])],2))}}),it={key:0,class:"VPBackdrop"},lt=b({__name:"VPBackdrop",props:{show:{type:Boolean}},setup(a){return(e,t)=>(o(),$(pe,{name:"fade"},{default:f(()=>[e.show?(o(),l("div",it)):m("",!0)]),_:1}))}}),ct=k(lt,[["__scopeId","data-v-b06cdb19"]]),S=Se;function ut(a,e){let t,n=!1;return()=>{t&&clearTimeout(t),n?t=setTimeout(a,e):(a(),(n=!0)&&setTimeout(()=>n=!1,e))}}function ce(a){return/^\//.test(a)?a:`/${a}`}function _e(a){const{pathname:e,search:t,hash:n,protocol:s}=new URL(a,"http://a.com");if(Je(a)||a.startsWith("#")||!s.startsWith("http")||!Ke(e))return a;const{site:r}=S(),c=e.endsWith("/")||e.endsWith(".html")?a:a.replace(/(?:(^\.+)\/)?.*$/,`$1${e.replace(/(\.md)?$/,r.value.cleanUrls?"":".html")}${t}${n}`);return ve(c)}function Z({correspondingLink:a=!1}={}){const{site:e,localeIndex:t,page:n,theme:s,hash:r}=S(),c=y(()=>{var u,h;return{label:(u=e.value.locales[t.value])==null?void 0:u.label,link:((h=e.value.locales[t.value])==null?void 0:h.link)||(t.value==="root"?"/":`/${t.value}/`)}});return{localeLinks:y(()=>Object.entries(e.value.locales).flatMap(([u,h])=>c.value.label===h.label?[]:{text:h.label,link:dt(h.link||(u==="root"?"/":`/${u}/`),s.value.i18nRouting!==!1&&a,n.value.relativePath.slice(c.value.link.length-1),!e.value.cleanUrls)+r.value})),currentLang:c}}function dt(a,e,t,n){return e?a.replace(/\/$/,"")+ce(t.replace(/(^|\/)index\.md$/,"$1").replace(/\.md$/,n?".html":"")):a}const pt={class:"NotFound"},vt={class:"code"},ft={class:"title"},mt={class:"quote"},ht={class:"action"},_t=["href","aria-label"],bt=b({__name:"NotFound",setup(a){const{theme:e}=S(),{currentLang:t}=Z();return(n,s)=>{var r,c,v,u,h;return o(),l("div",pt,[p("p",vt,I(((r=i(e).notFound)==null?void 0:r.code)??"404"),1),p("h1",ft,I(((c=i(e).notFound)==null?void 0:c.title)??"PAGE NOT FOUND"),1),s[0]||(s[0]=p("div",{class:"divider"},null,-1)),p("blockquote",mt,I(((v=i(e).notFound)==null?void 0:v.quote)??"But if you don't change your direction, and if you keep looking, you may end up where you are heading."),1),p("div",ht,[p("a",{class:"link",href:i(ve)(i(t).link),"aria-label":((u=i(e).notFound)==null?void 0:u.linkLabel)??"go to home"},I(((h=i(e).notFound)==null?void 0:h.linkText)??"Take me home"),9,_t)])])}}}),gt=k(bt,[["__scopeId","data-v-951cab6c"]]);function Be(a,e){if(Array.isArray(a))return Y(a);if(a==null)return[];e=ce(e);const t=Object.keys(a).sort((s,r)=>r.split("/").length-s.split("/").length).find(s=>e.startsWith(ce(s))),n=t?a[t]:[];return Array.isArray(n)?Y(n):Y(n.items,n.base)}function kt(a){const e=[];let t=0;for(const n in a){const s=a[n];if(s.items){t=e.push(s);continue}e[t]||e.push({items:[]}),e[t].items.push(s)}return e}function $t(a){const e=[];function t(n){for(const s of n)s.text&&s.link&&e.push({text:s.text,link:s.link,docFooterText:s.docFooterText}),s.items&&t(s.items)}return t(a),e}function ue(a,e){return Array.isArray(e)?e.some(t=>ue(a,t)):J(a,e.link)?!0:e.items?ue(a,e.items):!1}function Y(a,e){return[...a].map(t=>{const n={...t},s=n.base||e;return s&&n.link&&(n.link=s+n.link),n.items&&(n.items=Y(n.items,s)),n})}function D(){const{frontmatter:a,page:e,theme:t}=S(),n=ie("(min-width: 960px)"),s=L(!1),r=y(()=>{const M=t.value.sidebar,N=e.value.relativePath;return M?Be(M,N):[]}),c=L(r.value);W(r,(M,N)=>{JSON.stringify(M)!==JSON.stringify(N)&&(c.value=r.value)});const v=y(()=>a.value.sidebar!==!1&&c.value.length>0&&a.value.layout!=="home"),u=y(()=>h?a.value.aside==null?t.value.aside==="left":a.value.aside==="left":!1),h=y(()=>a.value.layout==="home"?!1:a.value.aside!=null?!!a.value.aside:t.value.aside!==!1),A=y(()=>v.value&&n.value),_=y(()=>v.value?kt(c.value):[]);function P(){s.value=!0}function V(){s.value=!1}function w(){s.value?V():P()}return{isOpen:s,sidebar:c,sidebarGroups:_,hasSidebar:v,hasAside:h,leftAside:u,isSidebarEnabled:A,open:P,close:V,toggle:w}}function yt(a,e){let t;q(()=>{t=a.value?document.activeElement:void 0}),O(()=>{window.addEventListener("keyup",n)}),fe(()=>{window.removeEventListener("keyup",n)});function n(s){s.key==="Escape"&&a.value&&(e(),t==null||t.focus())}}function At(a){const{page:e,hash:t}=S(),n=L(!1),s=y(()=>a.value.collapsed!=null),r=y(()=>!!a.value.link),c=L(!1),v=()=>{c.value=J(e.value.relativePath,a.value.link)};W([e,a,t],v),O(v);const u=y(()=>c.value?!0:a.value.items?ue(e.value.relativePath,a.value.items):!1),h=y(()=>!!(a.value.items&&a.value.items.length));q(()=>{n.value=!!(s.value&&a.value.collapsed)}),me(()=>{(c.value||u.value)&&(n.value=!1)});function A(){s.value&&(n.value=!n.value)}return{collapsed:n,collapsible:s,isLink:r,isActiveLink:c,hasActiveLink:u,hasChildren:h,toggle:A}}function Pt(){const{hasSidebar:a}=D(),e=ie("(min-width: 960px)"),t=ie("(min-width: 1280px)");return{isAsideEnabled:y(()=>!t.value&&!e.value?!1:a.value?t.value:e.value)}}const de=[];function Ee(a){return typeof a.outline=="object"&&!Array.isArray(a.outline)&&a.outline.label||a.outlineTitle||"On this page"}function be(a){const e=[...document.querySelectorAll(".VPDoc :where(h1,h2,h3,h4,h5,h6)")].filter(t=>t.id&&t.hasChildNodes()).map(t=>{const n=Number(t.tagName[1]);return{element:t,title:Vt(t),link:"#"+t.id,level:n}});return St(e,a)}function Vt(a){let e="";for(const t of a.childNodes)if(t.nodeType===1){if(t.classList.contains("VPBadge")||t.classList.contains("header-anchor")||t.classList.contains("ignore-header"))continue;e+=t.textContent}else t.nodeType===3&&(e+=t.textContent);return e.trim()}function St(a,e){if(e===!1)return[];const t=(typeof e=="object"&&!Array.isArray(e)?e.level:e)||2,[n,s]=typeof t=="number"?[t,t]:t==="deep"?[2,6]:t;a=a.filter(c=>c.level>=n&&c.level<=s),de.length=0;for(const{element:c,link:v}of a)de.push({element:c,link:v});const r=[];e:for(let c=0;c=0;u--){const h=a[u];if(h.level{requestAnimationFrame(r),window.addEventListener("scroll",n)}),je(()=>{c(location.hash)}),fe(()=>{window.removeEventListener("scroll",n)});function r(){if(!t.value)return;const v=window.scrollY,u=window.innerHeight,h=document.body.offsetHeight,A=Math.abs(v+u-h)<1,_=de.map(({element:V,link:w})=>({link:w,top:It(V)})).filter(({top:V})=>!Number.isNaN(V)).sort((V,w)=>V.top-w.top);if(!_.length){c(null);return}if(v<1){c(null);return}if(A){c(_[_.length-1].link);return}let P=null;for(const{link:V,top:w}of _){if(w>v+ze()+4)break;P=V}c(P)}function c(v){s&&s.classList.remove("active"),v==null?s=null:s=a.value.querySelector(`a[href="${decodeURIComponent(v)}"]`);const u=s;u?(u.classList.add("active"),e.value.style.top=u.offsetTop+39+"px",e.value.style.opacity="1"):(e.value.style.top="33px",e.value.style.opacity="0")}}function It(a){let e=0;for(;a!==document.body;){if(a===null)return NaN;e+=a.offsetTop,a=a.offsetParent}return e}const Nt=["href","title"],Tt=b({__name:"VPDocOutlineItem",props:{headers:{},root:{type:Boolean}},setup(a){function e({target:t}){const n=t.href.split("#")[1],s=document.getElementById(decodeURIComponent(n));s==null||s.focus({preventScroll:!0})}return(t,n)=>{const s=G("VPDocOutlineItem",!0);return o(),l("ul",{class:T(["VPDocOutlineItem",t.root?"root":"nested"])},[(o(!0),l(C,null,B(t.headers,({children:r,link:c,title:v})=>(o(),l("li",null,[p("a",{class:"outline-link",href:c,onClick:e,title:v},I(v),9,Nt),r!=null&&r.length?(o(),$(s,{key:0,headers:r},null,8,["headers"])):m("",!0)]))),256))],2)}}}),Qe=k(Tt,[["__scopeId","data-v-3f927ebe"]]),Ct={class:"content"},wt={"aria-level":"2",class:"outline-title",id:"doc-outline-aria-label",role:"heading"},Mt=b({__name:"VPDocAsideOutline",setup(a){const{frontmatter:e,theme:t}=S(),n=Le([]);x(()=>{n.value=be(e.value.outline??t.value.outline)});const s=L(),r=L();return Lt(s,r),(c,v)=>(o(),l("nav",{"aria-labelledby":"doc-outline-aria-label",class:T(["VPDocAsideOutline",{"has-outline":n.value.length>0}]),ref_key:"container",ref:s},[p("div",Ct,[p("div",{class:"outline-marker",ref_key:"marker",ref:r},null,512),p("div",wt,I(i(Ee)(i(t))),1),g(Qe,{headers:n.value,root:!0},null,8,["headers"])])],2))}}),Bt=k(Mt,[["__scopeId","data-v-b38bf2ff"]]),Et={class:"VPDocAsideCarbonAds"},Qt=b({__name:"VPDocAsideCarbonAds",props:{carbonAds:{}},setup(a){const e=()=>null;return(t,n)=>(o(),l("div",Et,[g(i(e),{"carbon-ads":t.carbonAds},null,8,["carbon-ads"])]))}}),Ft={class:"VPDocAside"},Ht=b({__name:"VPDocAside",setup(a){const{theme:e}=S();return(t,n)=>(o(),l("div",Ft,[d(t.$slots,"aside-top",{},void 0,!0),d(t.$slots,"aside-outline-before",{},void 0,!0),g(Bt),d(t.$slots,"aside-outline-after",{},void 0,!0),n[0]||(n[0]=p("div",{class:"spacer"},null,-1)),d(t.$slots,"aside-ads-before",{},void 0,!0),i(e).carbonAds?(o(),$(Qt,{key:0,"carbon-ads":i(e).carbonAds},null,8,["carbon-ads"])):m("",!0),d(t.$slots,"aside-ads-after",{},void 0,!0),d(t.$slots,"aside-bottom",{},void 0,!0)]))}}),Wt=k(Ht,[["__scopeId","data-v-6d7b3c46"]]);function Ot(){const{theme:a,page:e}=S();return y(()=>{const{text:t="Edit this page",pattern:n=""}=a.value.editLink||{};let s;return typeof n=="function"?s=n(e.value):s=n.replace(/:path/g,e.value.filePath),{url:s,text:t}})}function Dt(){const{page:a,theme:e,frontmatter:t}=S();return y(()=>{var h,A,_,P,V,w,M,N;const n=Be(e.value.sidebar,a.value.relativePath),s=$t(n),r=Ut(s,E=>E.link.replace(/[?#].*$/,"")),c=r.findIndex(E=>J(a.value.relativePath,E.link)),v=((h=e.value.docFooter)==null?void 0:h.prev)===!1&&!t.value.prev||t.value.prev===!1,u=((A=e.value.docFooter)==null?void 0:A.next)===!1&&!t.value.next||t.value.next===!1;return{prev:v?void 0:{text:(typeof t.value.prev=="string"?t.value.prev:typeof t.value.prev=="object"?t.value.prev.text:void 0)??((_=r[c-1])==null?void 0:_.docFooterText)??((P=r[c-1])==null?void 0:P.text),link:(typeof t.value.prev=="object"?t.value.prev.link:void 0)??((V=r[c-1])==null?void 0:V.link)},next:u?void 0:{text:(typeof t.value.next=="string"?t.value.next:typeof t.value.next=="object"?t.value.next.text:void 0)??((w=r[c+1])==null?void 0:w.docFooterText)??((M=r[c+1])==null?void 0:M.text),link:(typeof t.value.next=="object"?t.value.next.link:void 0)??((N=r[c+1])==null?void 0:N.link)}}})}function Ut(a,e){const t=new Set;return a.filter(n=>{const s=e(n);return t.has(s)?!1:t.add(s)})}const Q=b({__name:"VPLink",props:{tag:{},href:{},noIcon:{type:Boolean},target:{},rel:{}},setup(a){const e=a,t=y(()=>e.tag??(e.href?"a":"span")),n=y(()=>e.href&&Ie.test(e.href)||e.target==="_blank");return(s,r)=>(o(),$(H(t.value),{class:T(["VPLink",{link:s.href,"vp-external-link-icon":n.value,"no-icon":s.noIcon}]),href:s.href?i(_e)(s.href):void 0,target:s.target??(n.value?"_blank":void 0),rel:s.rel??(n.value?"noreferrer":void 0)},{default:f(()=>[d(s.$slots,"default")]),_:3},8,["class","href","target","rel"]))}}),Rt={class:"VPLastUpdated"},Gt=["datetime"],Jt=b({__name:"VPDocFooterLastUpdated",setup(a){const{theme:e,page:t,lang:n}=S(),s=y(()=>new Date(t.value.lastUpdated)),r=y(()=>s.value.toISOString()),c=L("");return O(()=>{q(()=>{var v,u,h;c.value=new Intl.DateTimeFormat((u=(v=e.value.lastUpdated)==null?void 0:v.formatOptions)!=null&&u.forceLocale?n.value:void 0,((h=e.value.lastUpdated)==null?void 0:h.formatOptions)??{dateStyle:"short",timeStyle:"short"}).format(s.value)})}),(v,u)=>{var h;return o(),l("p",Rt,[F(I(((h=i(e).lastUpdated)==null?void 0:h.text)||i(e).lastUpdatedText||"Last updated")+": ",1),p("time",{datetime:r.value},I(c.value),9,Gt)])}}}),Kt=k(Jt,[["__scopeId","data-v-475f71b8"]]),jt={key:0,class:"VPDocFooter"},zt={key:0,class:"edit-info"},Zt={key:0,class:"edit-link"},Yt={key:1,class:"last-updated"},Xt={key:1,class:"prev-next","aria-labelledby":"doc-footer-aria-label"},qt={class:"pager"},xt=["innerHTML"],es=["innerHTML"],ts={class:"pager"},ss=["innerHTML"],ns=["innerHTML"],as=b({__name:"VPDocFooter",setup(a){const{theme:e,page:t,frontmatter:n}=S(),s=Ot(),r=Dt(),c=y(()=>e.value.editLink&&n.value.editLink!==!1),v=y(()=>t.value.lastUpdated),u=y(()=>c.value||v.value||r.value.prev||r.value.next);return(h,A)=>{var _,P,V,w;return u.value?(o(),l("footer",jt,[d(h.$slots,"doc-footer-before",{},void 0,!0),c.value||v.value?(o(),l("div",zt,[c.value?(o(),l("div",Zt,[g(Q,{class:"edit-link-button",href:i(s).url,"no-icon":!0},{default:f(()=>[A[0]||(A[0]=p("span",{class:"vpi-square-pen edit-link-icon"},null,-1)),F(" "+I(i(s).text),1)]),_:1},8,["href"])])):m("",!0),v.value?(o(),l("div",Yt,[g(Kt)])):m("",!0)])):m("",!0),(_=i(r).prev)!=null&&_.link||(P=i(r).next)!=null&&P.link?(o(),l("nav",Xt,[A[1]||(A[1]=p("span",{class:"visually-hidden",id:"doc-footer-aria-label"},"Pager",-1)),p("div",qt,[(V=i(r).prev)!=null&&V.link?(o(),$(Q,{key:0,class:"pager-link prev",href:i(r).prev.link},{default:f(()=>{var M;return[p("span",{class:"desc",innerHTML:((M=i(e).docFooter)==null?void 0:M.prev)||"Previous page"},null,8,xt),p("span",{class:"title",innerHTML:i(r).prev.text},null,8,es)]}),_:1},8,["href"])):m("",!0)]),p("div",ts,[(w=i(r).next)!=null&&w.link?(o(),$(Q,{key:0,class:"pager-link next",href:i(r).next.link},{default:f(()=>{var M;return[p("span",{class:"desc",innerHTML:((M=i(e).docFooter)==null?void 0:M.next)||"Next page"},null,8,ss),p("span",{class:"title",innerHTML:i(r).next.text},null,8,ns)]}),_:1},8,["href"])):m("",!0)])])):m("",!0)])):m("",!0)}}}),os=k(as,[["__scopeId","data-v-4f9813fa"]]),rs={class:"container"},is={class:"aside-container"},ls={class:"aside-content"},cs={class:"content"},us={class:"content-container"},ds={class:"main"},ps=b({__name:"VPDoc",setup(a){const{theme:e}=S(),t=ee(),{hasSidebar:n,hasAside:s,leftAside:r}=D(),c=y(()=>t.path.replace(/[./]+/g,"_").replace(/_html$/,""));return(v,u)=>{const h=G("Content");return o(),l("div",{class:T(["VPDoc",{"has-sidebar":i(n),"has-aside":i(s)}])},[d(v.$slots,"doc-top",{},void 0,!0),p("div",rs,[i(s)?(o(),l("div",{key:0,class:T(["aside",{"left-aside":i(r)}])},[u[0]||(u[0]=p("div",{class:"aside-curtain"},null,-1)),p("div",is,[p("div",ls,[g(Wt,null,{"aside-top":f(()=>[d(v.$slots,"aside-top",{},void 0,!0)]),"aside-bottom":f(()=>[d(v.$slots,"aside-bottom",{},void 0,!0)]),"aside-outline-before":f(()=>[d(v.$slots,"aside-outline-before",{},void 0,!0)]),"aside-outline-after":f(()=>[d(v.$slots,"aside-outline-after",{},void 0,!0)]),"aside-ads-before":f(()=>[d(v.$slots,"aside-ads-before",{},void 0,!0)]),"aside-ads-after":f(()=>[d(v.$slots,"aside-ads-after",{},void 0,!0)]),_:3})])])],2)):m("",!0),p("div",cs,[p("div",us,[d(v.$slots,"doc-before",{},void 0,!0),p("main",ds,[g(h,{class:T(["vp-doc",[c.value,i(e).externalLinkIcon&&"external-link-icon-enabled"]])},null,8,["class"])]),g(os,null,{"doc-footer-before":f(()=>[d(v.$slots,"doc-footer-before",{},void 0,!0)]),_:3}),d(v.$slots,"doc-after",{},void 0,!0)])])]),d(v.$slots,"doc-bottom",{},void 0,!0)],2)}}}),vs=k(ps,[["__scopeId","data-v-83890dd9"]]),fs=b({__name:"VPButton",props:{tag:{},size:{default:"medium"},theme:{default:"brand"},text:{},href:{},target:{},rel:{}},setup(a){const e=a,t=y(()=>e.href&&Ie.test(e.href)),n=y(()=>e.tag||e.href?"a":"button");return(s,r)=>(o(),$(H(n.value),{class:T(["VPButton",[s.size,s.theme]]),href:s.href?i(_e)(s.href):void 0,target:e.target??(t.value?"_blank":void 0),rel:e.rel??(t.value?"noreferrer":void 0)},{default:f(()=>[F(I(s.text),1)]),_:1},8,["class","href","target","rel"]))}}),ms=k(fs,[["__scopeId","data-v-14206e74"]]),hs=["src","alt"],_s=b({inheritAttrs:!1,__name:"VPImage",props:{image:{},alt:{}},setup(a){return(e,t)=>{const n=G("VPImage",!0);return e.image?(o(),l(C,{key:0},[typeof e.image=="string"||"src"in e.image?(o(),l("img",R({key:0,class:"VPImage"},typeof e.image=="string"?e.$attrs:{...e.image,...e.$attrs},{src:i(ve)(typeof e.image=="string"?e.image:e.image.src),alt:e.alt??(typeof e.image=="string"?"":e.image.alt||"")}),null,16,hs)):(o(),l(C,{key:1},[g(n,R({class:"dark",image:e.image.dark,alt:e.image.alt},e.$attrs),null,16,["image","alt"]),g(n,R({class:"light",image:e.image.light,alt:e.image.alt},e.$attrs),null,16,["image","alt"])],64))],64)):m("",!0)}}}),X=k(_s,[["__scopeId","data-v-35a7d0b8"]]),bs={class:"container"},gs={class:"main"},ks={key:0,class:"name"},$s=["innerHTML"],ys=["innerHTML"],As=["innerHTML"],Ps={key:0,class:"actions"},Vs={key:0,class:"image"},Ss={class:"image-container"},Ls=b({__name:"VPHero",props:{name:{},text:{},tagline:{},image:{},actions:{}},setup(a){const e=j("hero-image-slot-exists");return(t,n)=>(o(),l("div",{class:T(["VPHero",{"has-image":t.image||i(e)}])},[p("div",bs,[p("div",gs,[d(t.$slots,"home-hero-info-before",{},void 0,!0),d(t.$slots,"home-hero-info",{},()=>[t.name?(o(),l("h1",ks,[p("span",{innerHTML:t.name,class:"clip"},null,8,$s)])):m("",!0),t.text?(o(),l("p",{key:1,innerHTML:t.text,class:"text"},null,8,ys)):m("",!0),t.tagline?(o(),l("p",{key:2,innerHTML:t.tagline,class:"tagline"},null,8,As)):m("",!0)],!0),d(t.$slots,"home-hero-info-after",{},void 0,!0),t.actions?(o(),l("div",Ps,[(o(!0),l(C,null,B(t.actions,s=>(o(),l("div",{key:s.link,class:"action"},[g(ms,{tag:"a",size:"medium",theme:s.theme,text:s.text,href:s.link,target:s.target,rel:s.rel},null,8,["theme","text","href","target","rel"])]))),128))])):m("",!0),d(t.$slots,"home-hero-actions-after",{},void 0,!0)]),t.image||i(e)?(o(),l("div",Vs,[p("div",Ss,[n[0]||(n[0]=p("div",{class:"image-bg"},null,-1)),d(t.$slots,"home-hero-image",{},()=>[t.image?(o(),$(X,{key:0,class:"image-src",image:t.image},null,8,["image"])):m("",!0)],!0)])])):m("",!0)])],2))}}),Is=k(Ls,[["__scopeId","data-v-955009fc"]]),Ns=b({__name:"VPHomeHero",setup(a){const{frontmatter:e}=S();return(t,n)=>i(e).hero?(o(),$(Is,{key:0,class:"VPHomeHero",name:i(e).hero.name,text:i(e).hero.text,tagline:i(e).hero.tagline,image:i(e).hero.image,actions:i(e).hero.actions},{"home-hero-info-before":f(()=>[d(t.$slots,"home-hero-info-before")]),"home-hero-info":f(()=>[d(t.$slots,"home-hero-info")]),"home-hero-info-after":f(()=>[d(t.$slots,"home-hero-info-after")]),"home-hero-actions-after":f(()=>[d(t.$slots,"home-hero-actions-after")]),"home-hero-image":f(()=>[d(t.$slots,"home-hero-image")]),_:3},8,["name","text","tagline","image","actions"])):m("",!0)}}),Ts={class:"box"},Cs={key:0,class:"icon"},ws=["innerHTML"],Ms=["innerHTML"],Bs=["innerHTML"],Es={key:4,class:"link-text"},Qs={class:"link-text-value"},Fs=b({__name:"VPFeature",props:{icon:{},title:{},details:{},link:{},linkText:{},rel:{},target:{}},setup(a){return(e,t)=>(o(),$(Q,{class:"VPFeature",href:e.link,rel:e.rel,target:e.target,"no-icon":!0,tag:e.link?"a":"div"},{default:f(()=>[p("article",Ts,[typeof e.icon=="object"&&e.icon.wrap?(o(),l("div",Cs,[g(X,{image:e.icon,alt:e.icon.alt,height:e.icon.height||48,width:e.icon.width||48},null,8,["image","alt","height","width"])])):typeof e.icon=="object"?(o(),$(X,{key:1,image:e.icon,alt:e.icon.alt,height:e.icon.height||48,width:e.icon.width||48},null,8,["image","alt","height","width"])):e.icon?(o(),l("div",{key:2,class:"icon",innerHTML:e.icon},null,8,ws)):m("",!0),p("h2",{class:"title",innerHTML:e.title},null,8,Ms),e.details?(o(),l("p",{key:3,class:"details",innerHTML:e.details},null,8,Bs)):m("",!0),e.linkText?(o(),l("div",Es,[p("p",Qs,[F(I(e.linkText)+" ",1),t[0]||(t[0]=p("span",{class:"vpi-arrow-right link-text-icon"},null,-1))])])):m("",!0)])]),_:1},8,["href","rel","target","tag"]))}}),Hs=k(Fs,[["__scopeId","data-v-f5e9645b"]]),Ws={key:0,class:"VPFeatures"},Os={class:"container"},Ds={class:"items"},Us=b({__name:"VPFeatures",props:{features:{}},setup(a){const e=a,t=y(()=>{const n=e.features.length;if(n){if(n===2)return"grid-2";if(n===3)return"grid-3";if(n%3===0)return"grid-6";if(n>3)return"grid-4"}else return});return(n,s)=>n.features?(o(),l("div",Ws,[p("div",Os,[p("div",Ds,[(o(!0),l(C,null,B(n.features,r=>(o(),l("div",{key:r.title,class:T(["item",[t.value]])},[g(Hs,{icon:r.icon,title:r.title,details:r.details,link:r.link,"link-text":r.linkText,rel:r.rel,target:r.target},null,8,["icon","title","details","link","link-text","rel","target"])],2))),128))])])])):m("",!0)}}),Rs=k(Us,[["__scopeId","data-v-d0a190d7"]]),Gs=b({__name:"VPHomeFeatures",setup(a){const{frontmatter:e}=S();return(t,n)=>i(e).features?(o(),$(Rs,{key:0,class:"VPHomeFeatures",features:i(e).features},null,8,["features"])):m("",!0)}}),Js=b({__name:"VPHomeContent",setup(a){const{width:e}=Ze({initialWidth:0,includeScrollbar:!1});return(t,n)=>(o(),l("div",{class:"vp-doc container",style:Ne(i(e)?{"--vp-offset":`calc(50% - ${i(e)/2}px)`}:{})},[d(t.$slots,"default",{},void 0,!0)],4))}}),Ks=k(Js,[["__scopeId","data-v-7a48a447"]]),js={class:"VPHome"},zs=b({__name:"VPHome",setup(a){const{frontmatter:e}=S();return(t,n)=>{const s=G("Content");return o(),l("div",js,[d(t.$slots,"home-hero-before",{},void 0,!0),g(Ns,null,{"home-hero-info-before":f(()=>[d(t.$slots,"home-hero-info-before",{},void 0,!0)]),"home-hero-info":f(()=>[d(t.$slots,"home-hero-info",{},void 0,!0)]),"home-hero-info-after":f(()=>[d(t.$slots,"home-hero-info-after",{},void 0,!0)]),"home-hero-actions-after":f(()=>[d(t.$slots,"home-hero-actions-after",{},void 0,!0)]),"home-hero-image":f(()=>[d(t.$slots,"home-hero-image",{},void 0,!0)]),_:3}),d(t.$slots,"home-hero-after",{},void 0,!0),d(t.$slots,"home-features-before",{},void 0,!0),g(Gs),d(t.$slots,"home-features-after",{},void 0,!0),i(e).markdownStyles!==!1?(o(),$(Ks,{key:0},{default:f(()=>[g(s)]),_:1})):(o(),$(s,{key:1}))])}}}),Zs=k(zs,[["__scopeId","data-v-cbb6ec48"]]),Ys={},Xs={class:"VPPage"};function qs(a,e){const t=G("Content");return o(),l("div",Xs,[d(a.$slots,"page-top"),g(t),d(a.$slots,"page-bottom")])}const xs=k(Ys,[["render",qs]]),en=b({__name:"VPContent",setup(a){const{page:e,frontmatter:t}=S(),{hasSidebar:n}=D();return(s,r)=>(o(),l("div",{class:T(["VPContent",{"has-sidebar":i(n),"is-home":i(t).layout==="home"}]),id:"VPContent"},[i(e).isNotFound?d(s.$slots,"not-found",{key:0},()=>[g(gt)],!0):i(t).layout==="page"?(o(),$(xs,{key:1},{"page-top":f(()=>[d(s.$slots,"page-top",{},void 0,!0)]),"page-bottom":f(()=>[d(s.$slots,"page-bottom",{},void 0,!0)]),_:3})):i(t).layout==="home"?(o(),$(Zs,{key:2},{"home-hero-before":f(()=>[d(s.$slots,"home-hero-before",{},void 0,!0)]),"home-hero-info-before":f(()=>[d(s.$slots,"home-hero-info-before",{},void 0,!0)]),"home-hero-info":f(()=>[d(s.$slots,"home-hero-info",{},void 0,!0)]),"home-hero-info-after":f(()=>[d(s.$slots,"home-hero-info-after",{},void 0,!0)]),"home-hero-actions-after":f(()=>[d(s.$slots,"home-hero-actions-after",{},void 0,!0)]),"home-hero-image":f(()=>[d(s.$slots,"home-hero-image",{},void 0,!0)]),"home-hero-after":f(()=>[d(s.$slots,"home-hero-after",{},void 0,!0)]),"home-features-before":f(()=>[d(s.$slots,"home-features-before",{},void 0,!0)]),"home-features-after":f(()=>[d(s.$slots,"home-features-after",{},void 0,!0)]),_:3})):i(t).layout&&i(t).layout!=="doc"?(o(),$(H(i(t).layout),{key:3})):(o(),$(vs,{key:4},{"doc-top":f(()=>[d(s.$slots,"doc-top",{},void 0,!0)]),"doc-bottom":f(()=>[d(s.$slots,"doc-bottom",{},void 0,!0)]),"doc-footer-before":f(()=>[d(s.$slots,"doc-footer-before",{},void 0,!0)]),"doc-before":f(()=>[d(s.$slots,"doc-before",{},void 0,!0)]),"doc-after":f(()=>[d(s.$slots,"doc-after",{},void 0,!0)]),"aside-top":f(()=>[d(s.$slots,"aside-top",{},void 0,!0)]),"aside-outline-before":f(()=>[d(s.$slots,"aside-outline-before",{},void 0,!0)]),"aside-outline-after":f(()=>[d(s.$slots,"aside-outline-after",{},void 0,!0)]),"aside-ads-before":f(()=>[d(s.$slots,"aside-ads-before",{},void 0,!0)]),"aside-ads-after":f(()=>[d(s.$slots,"aside-ads-after",{},void 0,!0)]),"aside-bottom":f(()=>[d(s.$slots,"aside-bottom",{},void 0,!0)]),_:3}))],2))}}),tn=k(en,[["__scopeId","data-v-91765379"]]),sn={class:"container"},nn=["innerHTML"],an=["innerHTML"],on=b({__name:"VPFooter",setup(a){const{theme:e,frontmatter:t}=S(),{hasSidebar:n}=D();return(s,r)=>i(e).footer&&i(t).footer!==!1?(o(),l("footer",{key:0,class:T(["VPFooter",{"has-sidebar":i(n)}])},[p("div",sn,[i(e).footer.message?(o(),l("p",{key:0,class:"message",innerHTML:i(e).footer.message},null,8,nn)):m("",!0),i(e).footer.copyright?(o(),l("p",{key:1,class:"copyright",innerHTML:i(e).footer.copyright},null,8,an)):m("",!0)])],2)):m("",!0)}}),rn=k(on,[["__scopeId","data-v-c970a860"]]);function ln(){const{theme:a,frontmatter:e}=S(),t=Le([]),n=y(()=>t.value.length>0);return x(()=>{t.value=be(e.value.outline??a.value.outline)}),{headers:t,hasLocalNav:n}}const cn={class:"menu-text"},un={class:"header"},dn={class:"outline"},pn=b({__name:"VPLocalNavOutlineDropdown",props:{headers:{},navHeight:{}},setup(a){const e=a,{theme:t}=S(),n=L(!1),s=L(0),r=L(),c=L();function v(_){var P;(P=r.value)!=null&&P.contains(_.target)||(n.value=!1)}W(n,_=>{if(_){document.addEventListener("click",v);return}document.removeEventListener("click",v)}),le("Escape",()=>{n.value=!1}),x(()=>{n.value=!1});function u(){n.value=!n.value,s.value=window.innerHeight+Math.min(window.scrollY-e.navHeight,0)}function h(_){_.target.classList.contains("outline-link")&&(c.value&&(c.value.style.transition="none"),Te(()=>{n.value=!1}))}function A(){n.value=!1,window.scrollTo({top:0,left:0,behavior:"smooth"})}return(_,P)=>(o(),l("div",{class:"VPLocalNavOutlineDropdown",style:Ne({"--vp-vh":s.value+"px"}),ref_key:"main",ref:r},[_.headers.length>0?(o(),l("button",{key:0,onClick:u,class:T({open:n.value})},[p("span",cn,I(i(Ee)(i(t))),1),P[0]||(P[0]=p("span",{class:"vpi-chevron-right icon"},null,-1))],2)):(o(),l("button",{key:1,onClick:A},I(i(t).returnToTopLabel||"Return to top"),1)),g(pe,{name:"flyout"},{default:f(()=>[n.value?(o(),l("div",{key:0,ref_key:"items",ref:c,class:"items",onClick:h},[p("div",un,[p("a",{class:"top-link",href:"#",onClick:A},I(i(t).returnToTopLabel||"Return to top"),1)]),p("div",dn,[g(Qe,{headers:_.headers},null,8,["headers"])])],512)):m("",!0)]),_:1})],4))}}),vn=k(pn,[["__scopeId","data-v-bc9dc845"]]),fn={class:"container"},mn=["aria-expanded"],hn={class:"menu-text"},_n=b({__name:"VPLocalNav",props:{open:{type:Boolean}},emits:["open-menu"],setup(a){const{theme:e,frontmatter:t}=S(),{hasSidebar:n}=D(),{headers:s}=ln(),{y:r}=Ce(),c=L(0);O(()=>{c.value=parseInt(getComputedStyle(document.documentElement).getPropertyValue("--vp-nav-height"))}),x(()=>{s.value=be(t.value.outline??e.value.outline)});const v=y(()=>s.value.length===0),u=y(()=>v.value&&!n.value),h=y(()=>({VPLocalNav:!0,"has-sidebar":n.value,empty:v.value,fixed:u.value}));return(A,_)=>i(t).layout!=="home"&&(!u.value||i(r)>=c.value)?(o(),l("div",{key:0,class:T(h.value)},[p("div",fn,[i(n)?(o(),l("button",{key:0,class:"menu","aria-expanded":A.open,"aria-controls":"VPSidebarNav",onClick:_[0]||(_[0]=P=>A.$emit("open-menu"))},[_[1]||(_[1]=p("span",{class:"vpi-align-left menu-icon"},null,-1)),p("span",hn,I(i(e).sidebarMenuLabel||"Menu"),1)],8,mn)):m("",!0),g(vn,{headers:i(s),navHeight:c.value},null,8,["headers","navHeight"])])],2)):m("",!0)}}),bn=k(_n,[["__scopeId","data-v-070ab83d"]]);function gn(){const a=L(!1);function e(){a.value=!0,window.addEventListener("resize",s)}function t(){a.value=!1,window.removeEventListener("resize",s)}function n(){a.value?t():e()}function s(){window.outerWidth>=768&&t()}const r=ee();return W(()=>r.path,t),{isScreenOpen:a,openScreen:e,closeScreen:t,toggleScreen:n}}const kn={},$n={class:"VPSwitch",type:"button",role:"switch"},yn={class:"check"},An={key:0,class:"icon"};function Pn(a,e){return o(),l("button",$n,[p("span",yn,[a.$slots.default?(o(),l("span",An,[d(a.$slots,"default",{},void 0,!0)])):m("",!0)])])}const Vn=k(kn,[["render",Pn],["__scopeId","data-v-4a1c76db"]]),Sn=b({__name:"VPSwitchAppearance",setup(a){const{isDark:e,theme:t}=S(),n=j("toggle-appearance",()=>{e.value=!e.value}),s=L("");return me(()=>{s.value=e.value?t.value.lightModeSwitchTitle||"Switch to light theme":t.value.darkModeSwitchTitle||"Switch to dark theme"}),(r,c)=>(o(),$(Vn,{title:s.value,class:"VPSwitchAppearance","aria-checked":i(e),onClick:i(n)},{default:f(()=>c[0]||(c[0]=[p("span",{class:"vpi-sun sun"},null,-1),p("span",{class:"vpi-moon moon"},null,-1)])),_:1},8,["title","aria-checked","onClick"]))}}),ge=k(Sn,[["__scopeId","data-v-e40a8bb6"]]),Ln={key:0,class:"VPNavBarAppearance"},In=b({__name:"VPNavBarAppearance",setup(a){const{site:e}=S();return(t,n)=>i(e).appearance&&i(e).appearance!=="force-dark"&&i(e).appearance!=="force-auto"?(o(),l("div",Ln,[g(ge)])):m("",!0)}}),Nn=k(In,[["__scopeId","data-v-af096f4a"]]),ke=L();let Fe=!1,re=0;function Tn(a){const e=L(!1);if(te){!Fe&&Cn(),re++;const t=W(ke,n=>{var s,r,c;n===a.el.value||(s=a.el.value)!=null&&s.contains(n)?(e.value=!0,(r=a.onFocus)==null||r.call(a)):(e.value=!1,(c=a.onBlur)==null||c.call(a))});fe(()=>{t(),re--,re||wn()})}return Ye(e)}function Cn(){document.addEventListener("focusin",He),Fe=!0,ke.value=document.activeElement}function wn(){document.removeEventListener("focusin",He)}function He(){ke.value=document.activeElement}const Mn={class:"VPMenuLink"},Bn=b({__name:"VPMenuLink",props:{item:{}},setup(a){const{page:e}=S();return(t,n)=>(o(),l("div",Mn,[g(Q,{class:T({active:i(J)(i(e).relativePath,t.item.activeMatch||t.item.link,!!t.item.activeMatch)}),href:t.item.link,target:t.item.target,rel:t.item.rel},{default:f(()=>[F(I(t.item.text),1)]),_:1},8,["class","href","target","rel"])]))}}),se=k(Bn,[["__scopeId","data-v-8b74d055"]]),En={class:"VPMenuGroup"},Qn={key:0,class:"title"},Fn=b({__name:"VPMenuGroup",props:{text:{},items:{}},setup(a){return(e,t)=>(o(),l("div",En,[e.text?(o(),l("p",Qn,I(e.text),1)):m("",!0),(o(!0),l(C,null,B(e.items,n=>(o(),l(C,null,["link"in n?(o(),$(se,{key:0,item:n},null,8,["item"])):m("",!0)],64))),256))]))}}),Hn=k(Fn,[["__scopeId","data-v-48c802d0"]]),Wn={class:"VPMenu"},On={key:0,class:"items"},Dn=b({__name:"VPMenu",props:{items:{}},setup(a){return(e,t)=>(o(),l("div",Wn,[e.items?(o(),l("div",On,[(o(!0),l(C,null,B(e.items,n=>(o(),l(C,{key:JSON.stringify(n)},["link"in n?(o(),$(se,{key:0,item:n},null,8,["item"])):"component"in n?(o(),$(H(n.component),R({key:1,ref_for:!0},n.props),null,16)):(o(),$(Hn,{key:2,text:n.text,items:n.items},null,8,["text","items"]))],64))),128))])):m("",!0),d(e.$slots,"default",{},void 0,!0)]))}}),Un=k(Dn,[["__scopeId","data-v-7dd3104a"]]),Rn=["aria-expanded","aria-label"],Gn={key:0,class:"text"},Jn=["innerHTML"],Kn={key:1,class:"vpi-more-horizontal icon"},jn={class:"menu"},zn=b({__name:"VPFlyout",props:{icon:{},button:{},label:{},items:{}},setup(a){const e=L(!1),t=L();Tn({el:t,onBlur:n});function n(){e.value=!1}return(s,r)=>(o(),l("div",{class:"VPFlyout",ref_key:"el",ref:t,onMouseenter:r[1]||(r[1]=c=>e.value=!0),onMouseleave:r[2]||(r[2]=c=>e.value=!1)},[p("button",{type:"button",class:"button","aria-haspopup":"true","aria-expanded":e.value,"aria-label":s.label,onClick:r[0]||(r[0]=c=>e.value=!e.value)},[s.button||s.icon?(o(),l("span",Gn,[s.icon?(o(),l("span",{key:0,class:T([s.icon,"option-icon"])},null,2)):m("",!0),s.button?(o(),l("span",{key:1,innerHTML:s.button},null,8,Jn)):m("",!0),r[3]||(r[3]=p("span",{class:"vpi-chevron-down text-icon"},null,-1))])):(o(),l("span",Kn))],8,Rn),p("div",jn,[g(Un,{items:s.items},{default:f(()=>[d(s.$slots,"default",{},void 0,!0)]),_:3},8,["items"])])],544))}}),$e=k(zn,[["__scopeId","data-v-e5380155"]]),Zn=["href","aria-label","innerHTML"],Yn=b({__name:"VPSocialLink",props:{icon:{},link:{},ariaLabel:{}},setup(a){const e=a,t=y(()=>typeof e.icon=="object"?e.icon.svg:``);return(n,s)=>(o(),l("a",{class:"VPSocialLink no-icon",href:n.link,"aria-label":n.ariaLabel??(typeof n.icon=="string"?n.icon:""),target:"_blank",rel:"noopener",innerHTML:t.value},null,8,Zn))}}),Xn=k(Yn,[["__scopeId","data-v-717b8b75"]]),qn={class:"VPSocialLinks"},xn=b({__name:"VPSocialLinks",props:{links:{}},setup(a){return(e,t)=>(o(),l("div",qn,[(o(!0),l(C,null,B(e.links,({link:n,icon:s,ariaLabel:r})=>(o(),$(Xn,{key:n,icon:s,link:n,ariaLabel:r},null,8,["icon","link","ariaLabel"]))),128))]))}}),ne=k(xn,[["__scopeId","data-v-ee7a9424"]]),ea={key:0,class:"group translations"},ta={class:"trans-title"},sa={key:1,class:"group"},na={class:"item appearance"},aa={class:"label"},oa={class:"appearance-action"},ra={key:2,class:"group"},ia={class:"item social-links"},la=b({__name:"VPNavBarExtra",setup(a){const{site:e,theme:t}=S(),{localeLinks:n,currentLang:s}=Z({correspondingLink:!0}),r=y(()=>n.value.length&&s.value.label||e.value.appearance||t.value.socialLinks);return(c,v)=>r.value?(o(),$($e,{key:0,class:"VPNavBarExtra",label:"extra navigation"},{default:f(()=>[i(n).length&&i(s).label?(o(),l("div",ea,[p("p",ta,I(i(s).label),1),(o(!0),l(C,null,B(i(n),u=>(o(),$(se,{key:u.link,item:u},null,8,["item"]))),128))])):m("",!0),i(e).appearance&&i(e).appearance!=="force-dark"&&i(e).appearance!=="force-auto"?(o(),l("div",sa,[p("div",na,[p("p",aa,I(i(t).darkModeSwitchLabel||"Appearance"),1),p("div",oa,[g(ge)])])])):m("",!0),i(t).socialLinks?(o(),l("div",ra,[p("div",ia,[g(ne,{class:"social-links-list",links:i(t).socialLinks},null,8,["links"])])])):m("",!0)]),_:1})):m("",!0)}}),ca=k(la,[["__scopeId","data-v-925effce"]]),ua=["aria-expanded"],da=b({__name:"VPNavBarHamburger",props:{active:{type:Boolean}},emits:["click"],setup(a){return(e,t)=>(o(),l("button",{type:"button",class:T(["VPNavBarHamburger",{active:e.active}]),"aria-label":"mobile navigation","aria-expanded":e.active,"aria-controls":"VPNavScreen",onClick:t[0]||(t[0]=n=>e.$emit("click"))},t[1]||(t[1]=[p("span",{class:"container"},[p("span",{class:"top"}),p("span",{class:"middle"}),p("span",{class:"bottom"})],-1)]),10,ua))}}),pa=k(da,[["__scopeId","data-v-5dea55bf"]]),va=["innerHTML"],fa=b({__name:"VPNavBarMenuLink",props:{item:{}},setup(a){const{page:e}=S();return(t,n)=>(o(),$(Q,{class:T({VPNavBarMenuLink:!0,active:i(J)(i(e).relativePath,t.item.activeMatch||t.item.link,!!t.item.activeMatch)}),href:t.item.link,noIcon:t.item.noIcon,target:t.item.target,rel:t.item.rel,tabindex:"0"},{default:f(()=>[p("span",{innerHTML:t.item.text},null,8,va)]),_:1},8,["class","href","noIcon","target","rel"]))}}),ma=k(fa,[["__scopeId","data-v-ed5ac1f6"]]),We=b({__name:"VPNavBarMenuGroup",props:{item:{}},setup(a){const e=a,{page:t}=S(),n=r=>"component"in r?!1:"link"in r?J(t.value.relativePath,r.link,!!e.item.activeMatch):r.items.some(n),s=y(()=>n(e.item));return(r,c)=>(o(),$($e,{class:T({VPNavBarMenuGroup:!0,active:i(J)(i(t).relativePath,r.item.activeMatch,!!r.item.activeMatch)||s.value}),button:r.item.text,items:r.item.items},null,8,["class","button","items"]))}}),ha={key:0,"aria-labelledby":"main-nav-aria-label",class:"VPNavBarMenu"},_a=b({__name:"VPNavBarMenu",setup(a){const{theme:e}=S();return(t,n)=>i(e).nav?(o(),l("nav",ha,[n[0]||(n[0]=p("span",{id:"main-nav-aria-label",class:"visually-hidden"}," Main Navigation ",-1)),(o(!0),l(C,null,B(i(e).nav,s=>(o(),l(C,{key:JSON.stringify(s)},["link"in s?(o(),$(ma,{key:0,item:s},null,8,["item"])):"component"in s?(o(),$(H(s.component),R({key:1,ref_for:!0},s.props),null,16)):(o(),$(We,{key:2,item:s},null,8,["item"]))],64))),128))])):m("",!0)}}),ba=k(_a,[["__scopeId","data-v-e6d46098"]]);function ga(a){const{localeIndex:e,theme:t}=S();function n(s){var w,M,N;const r=s.split("."),c=(w=t.value.search)==null?void 0:w.options,v=c&&typeof c=="object",u=v&&((N=(M=c.locales)==null?void 0:M[e.value])==null?void 0:N.translations)||null,h=v&&c.translations||null;let A=u,_=h,P=a;const V=r.pop();for(const E of r){let U=null;const K=P==null?void 0:P[E];K&&(U=P=K);const ae=_==null?void 0:_[E];ae&&(U=_=ae);const oe=A==null?void 0:A[E];oe&&(U=A=oe),K||(P=U),ae||(_=U),oe||(A=U)}return(A==null?void 0:A[V])??(_==null?void 0:_[V])??(P==null?void 0:P[V])??""}return n}const ka=["aria-label"],$a={class:"DocSearch-Button-Container"},ya={class:"DocSearch-Button-Placeholder"},Ae=b({__name:"VPNavBarSearchButton",setup(a){const t=ga({button:{buttonText:"Search",buttonAriaLabel:"Search"}});return(n,s)=>(o(),l("button",{type:"button",class:"DocSearch DocSearch-Button","aria-label":i(t)("button.buttonAriaLabel")},[p("span",$a,[s[0]||(s[0]=p("span",{class:"vp-icon DocSearch-Search-Icon"},null,-1)),p("span",ya,I(i(t)("button.buttonText")),1)]),s[1]||(s[1]=p("span",{class:"DocSearch-Button-Keys"},[p("kbd",{class:"DocSearch-Button-Key"}),p("kbd",{class:"DocSearch-Button-Key"},"K")],-1))],8,ka))}}),Aa={class:"VPNavBarSearch"},Pa={id:"local-search"},Va={key:1,id:"docsearch"},Sa=b({__name:"VPNavBarSearch",setup(a){const e=Xe(()=>qe(()=>import("./VPLocalSearchBox.BiFL7nx4.js"),__vite__mapDeps([0,1]))),t=()=>null,{theme:n}=S(),s=L(!1),r=L(!1);O(()=>{});function c(){s.value||(s.value=!0,setTimeout(v,16))}function v(){const _=new Event("keydown");_.key="k",_.metaKey=!0,window.dispatchEvent(_),setTimeout(()=>{document.querySelector(".DocSearch-Modal")||v()},16)}function u(_){const P=_.target,V=P.tagName;return P.isContentEditable||V==="INPUT"||V==="SELECT"||V==="TEXTAREA"}const h=L(!1);le("k",_=>{(_.ctrlKey||_.metaKey)&&(_.preventDefault(),h.value=!0)}),le("/",_=>{u(_)||(_.preventDefault(),h.value=!0)});const A="local";return(_,P)=>{var V;return o(),l("div",Aa,[i(A)==="local"?(o(),l(C,{key:0},[h.value?(o(),$(i(e),{key:0,onClose:P[0]||(P[0]=w=>h.value=!1)})):m("",!0),p("div",Pa,[g(Ae,{onClick:P[1]||(P[1]=w=>h.value=!0)})])],64)):i(A)==="algolia"?(o(),l(C,{key:1},[s.value?(o(),$(i(t),{key:0,algolia:((V=i(n).search)==null?void 0:V.options)??i(n).algolia,onVnodeBeforeMount:P[2]||(P[2]=w=>r.value=!0)},null,8,["algolia"])):m("",!0),r.value?m("",!0):(o(),l("div",Va,[g(Ae,{onClick:c})]))],64)):m("",!0)])}}}),La=b({__name:"VPNavBarSocialLinks",setup(a){const{theme:e}=S();return(t,n)=>i(e).socialLinks?(o(),$(ne,{key:0,class:"VPNavBarSocialLinks",links:i(e).socialLinks},null,8,["links"])):m("",!0)}}),Ia=k(La,[["__scopeId","data-v-164c457f"]]),Na=["href","rel","target"],Ta={key:1},Ca={key:2},wa=b({__name:"VPNavBarTitle",setup(a){const{site:e,theme:t}=S(),{hasSidebar:n}=D(),{currentLang:s}=Z(),r=y(()=>{var u;return typeof t.value.logoLink=="string"?t.value.logoLink:(u=t.value.logoLink)==null?void 0:u.link}),c=y(()=>{var u;return typeof t.value.logoLink=="string"||(u=t.value.logoLink)==null?void 0:u.rel}),v=y(()=>{var u;return typeof t.value.logoLink=="string"||(u=t.value.logoLink)==null?void 0:u.target});return(u,h)=>(o(),l("div",{class:T(["VPNavBarTitle",{"has-sidebar":i(n)}])},[p("a",{class:"title",href:r.value??i(_e)(i(s).link),rel:c.value,target:v.value},[d(u.$slots,"nav-bar-title-before",{},void 0,!0),i(t).logo?(o(),$(X,{key:0,class:"logo",image:i(t).logo},null,8,["image"])):m("",!0),i(t).siteTitle?(o(),l("span",Ta,I(i(t).siteTitle),1)):i(t).siteTitle===void 0?(o(),l("span",Ca,I(i(e).title),1)):m("",!0),d(u.$slots,"nav-bar-title-after",{},void 0,!0)],8,Na)],2))}}),Ma=k(wa,[["__scopeId","data-v-28a961f9"]]),Ba={class:"items"},Ea={class:"title"},Qa=b({__name:"VPNavBarTranslations",setup(a){const{theme:e}=S(),{localeLinks:t,currentLang:n}=Z({correspondingLink:!0});return(s,r)=>i(t).length&&i(n).label?(o(),$($e,{key:0,class:"VPNavBarTranslations",icon:"vpi-languages",label:i(e).langMenuLabel||"Change language"},{default:f(()=>[p("div",Ba,[p("p",Ea,I(i(n).label),1),(o(!0),l(C,null,B(i(t),c=>(o(),$(se,{key:c.link,item:c},null,8,["item"]))),128))])]),_:1},8,["label"])):m("",!0)}}),Fa=k(Qa,[["__scopeId","data-v-c80d9ad0"]]),Ha={class:"wrapper"},Wa={class:"container"},Oa={class:"title"},Da={class:"content"},Ua={class:"content-body"},Ra=b({__name:"VPNavBar",props:{isScreenOpen:{type:Boolean}},emits:["toggle-screen"],setup(a){const e=a,{y:t}=Ce(),{hasSidebar:n}=D(),{frontmatter:s}=S(),r=L({});return me(()=>{r.value={"has-sidebar":n.value,home:s.value.layout==="home",top:t.value===0,"screen-open":e.isScreenOpen}}),(c,v)=>(o(),l("div",{class:T(["VPNavBar",r.value])},[p("div",Ha,[p("div",Wa,[p("div",Oa,[g(Ma,null,{"nav-bar-title-before":f(()=>[d(c.$slots,"nav-bar-title-before",{},void 0,!0)]),"nav-bar-title-after":f(()=>[d(c.$slots,"nav-bar-title-after",{},void 0,!0)]),_:3})]),p("div",Da,[p("div",Ua,[d(c.$slots,"nav-bar-content-before",{},void 0,!0),g(Sa,{class:"search"}),g(ba,{class:"menu"}),g(Fa,{class:"translations"}),g(Nn,{class:"appearance"}),g(Ia,{class:"social-links"}),g(ca,{class:"extra"}),d(c.$slots,"nav-bar-content-after",{},void 0,!0),g(pa,{class:"hamburger",active:c.isScreenOpen,onClick:v[0]||(v[0]=u=>c.$emit("toggle-screen"))},null,8,["active"])])])])]),v[1]||(v[1]=p("div",{class:"divider"},[p("div",{class:"divider-line"})],-1))],2))}}),Ga=k(Ra,[["__scopeId","data-v-822684d1"]]),Ja={key:0,class:"VPNavScreenAppearance"},Ka={class:"text"},ja=b({__name:"VPNavScreenAppearance",setup(a){const{site:e,theme:t}=S();return(n,s)=>i(e).appearance&&i(e).appearance!=="force-dark"&&i(e).appearance!=="force-auto"?(o(),l("div",Ja,[p("p",Ka,I(i(t).darkModeSwitchLabel||"Appearance"),1),g(ge)])):m("",!0)}}),za=k(ja,[["__scopeId","data-v-ffb44008"]]),Za=b({__name:"VPNavScreenMenuLink",props:{item:{}},setup(a){const e=j("close-screen");return(t,n)=>(o(),$(Q,{class:"VPNavScreenMenuLink",href:t.item.link,target:t.item.target,rel:t.item.rel,onClick:i(e),innerHTML:t.item.text},null,8,["href","target","rel","onClick","innerHTML"]))}}),Ya=k(Za,[["__scopeId","data-v-27d04aeb"]]),Xa=b({__name:"VPNavScreenMenuGroupLink",props:{item:{}},setup(a){const e=j("close-screen");return(t,n)=>(o(),$(Q,{class:"VPNavScreenMenuGroupLink",href:t.item.link,target:t.item.target,rel:t.item.rel,onClick:i(e)},{default:f(()=>[F(I(t.item.text),1)]),_:1},8,["href","target","rel","onClick"]))}}),Oe=k(Xa,[["__scopeId","data-v-7179dbb7"]]),qa={class:"VPNavScreenMenuGroupSection"},xa={key:0,class:"title"},eo=b({__name:"VPNavScreenMenuGroupSection",props:{text:{},items:{}},setup(a){return(e,t)=>(o(),l("div",qa,[e.text?(o(),l("p",xa,I(e.text),1)):m("",!0),(o(!0),l(C,null,B(e.items,n=>(o(),$(Oe,{key:n.text,item:n},null,8,["item"]))),128))]))}}),to=k(eo,[["__scopeId","data-v-4b8941ac"]]),so=["aria-controls","aria-expanded"],no=["innerHTML"],ao=["id"],oo={key:0,class:"item"},ro={key:1,class:"item"},io={key:2,class:"group"},lo=b({__name:"VPNavScreenMenuGroup",props:{text:{},items:{}},setup(a){const e=a,t=L(!1),n=y(()=>`NavScreenGroup-${e.text.replace(" ","-").toLowerCase()}`);function s(){t.value=!t.value}return(r,c)=>(o(),l("div",{class:T(["VPNavScreenMenuGroup",{open:t.value}])},[p("button",{class:"button","aria-controls":n.value,"aria-expanded":t.value,onClick:s},[p("span",{class:"button-text",innerHTML:r.text},null,8,no),c[0]||(c[0]=p("span",{class:"vpi-plus button-icon"},null,-1))],8,so),p("div",{id:n.value,class:"items"},[(o(!0),l(C,null,B(r.items,v=>(o(),l(C,{key:JSON.stringify(v)},["link"in v?(o(),l("div",oo,[g(Oe,{item:v},null,8,["item"])])):"component"in v?(o(),l("div",ro,[(o(),$(H(v.component),R({ref_for:!0},v.props,{"screen-menu":""}),null,16))])):(o(),l("div",io,[g(to,{text:v.text,items:v.items},null,8,["text","items"])]))],64))),128))],8,ao)],2))}}),De=k(lo,[["__scopeId","data-v-875057a5"]]),co={key:0,class:"VPNavScreenMenu"},uo=b({__name:"VPNavScreenMenu",setup(a){const{theme:e}=S();return(t,n)=>i(e).nav?(o(),l("nav",co,[(o(!0),l(C,null,B(i(e).nav,s=>(o(),l(C,{key:JSON.stringify(s)},["link"in s?(o(),$(Ya,{key:0,item:s},null,8,["item"])):"component"in s?(o(),$(H(s.component),R({key:1,ref_for:!0},s.props,{"screen-menu":""}),null,16)):(o(),$(De,{key:2,text:s.text||"",items:s.items},null,8,["text","items"]))],64))),128))])):m("",!0)}}),po=b({__name:"VPNavScreenSocialLinks",setup(a){const{theme:e}=S();return(t,n)=>i(e).socialLinks?(o(),$(ne,{key:0,class:"VPNavScreenSocialLinks",links:i(e).socialLinks},null,8,["links"])):m("",!0)}}),vo={class:"list"},fo=b({__name:"VPNavScreenTranslations",setup(a){const{localeLinks:e,currentLang:t}=Z({correspondingLink:!0}),n=L(!1);function s(){n.value=!n.value}return(r,c)=>i(e).length&&i(t).label?(o(),l("div",{key:0,class:T(["VPNavScreenTranslations",{open:n.value}])},[p("button",{class:"title",onClick:s},[c[0]||(c[0]=p("span",{class:"vpi-languages icon lang"},null,-1)),F(" "+I(i(t).label)+" ",1),c[1]||(c[1]=p("span",{class:"vpi-chevron-down icon chevron"},null,-1))]),p("ul",vo,[(o(!0),l(C,null,B(i(e),v=>(o(),l("li",{key:v.link,class:"item"},[g(Q,{class:"link",href:v.link},{default:f(()=>[F(I(v.text),1)]),_:2},1032,["href"])]))),128))])],2)):m("",!0)}}),mo=k(fo,[["__scopeId","data-v-362991c2"]]),ho={class:"container"},_o=b({__name:"VPNavScreen",props:{open:{type:Boolean}},setup(a){const e=L(null),t=we(te?document.body:null);return(n,s)=>(o(),$(pe,{name:"fade",onEnter:s[0]||(s[0]=r=>t.value=!0),onAfterLeave:s[1]||(s[1]=r=>t.value=!1)},{default:f(()=>[n.open?(o(),l("div",{key:0,class:"VPNavScreen",ref_key:"screen",ref:e,id:"VPNavScreen"},[p("div",ho,[d(n.$slots,"nav-screen-content-before",{},void 0,!0),g(uo,{class:"menu"}),g(mo,{class:"translations"}),g(za,{class:"appearance"}),g(po,{class:"social-links"}),d(n.$slots,"nav-screen-content-after",{},void 0,!0)])],512)):m("",!0)]),_:3}))}}),bo=k(_o,[["__scopeId","data-v-833aabba"]]),go={key:0,class:"VPNav"},ko=b({__name:"VPNav",setup(a){const{isScreenOpen:e,closeScreen:t,toggleScreen:n}=gn(),{frontmatter:s}=S(),r=y(()=>s.value.navbar!==!1);return he("close-screen",t),q(()=>{te&&document.documentElement.classList.toggle("hide-nav",!r.value)}),(c,v)=>r.value?(o(),l("header",go,[g(Ga,{"is-screen-open":i(e),onToggleScreen:i(n)},{"nav-bar-title-before":f(()=>[d(c.$slots,"nav-bar-title-before",{},void 0,!0)]),"nav-bar-title-after":f(()=>[d(c.$slots,"nav-bar-title-after",{},void 0,!0)]),"nav-bar-content-before":f(()=>[d(c.$slots,"nav-bar-content-before",{},void 0,!0)]),"nav-bar-content-after":f(()=>[d(c.$slots,"nav-bar-content-after",{},void 0,!0)]),_:3},8,["is-screen-open","onToggleScreen"]),g(bo,{open:i(e)},{"nav-screen-content-before":f(()=>[d(c.$slots,"nav-screen-content-before",{},void 0,!0)]),"nav-screen-content-after":f(()=>[d(c.$slots,"nav-screen-content-after",{},void 0,!0)]),_:3},8,["open"])])):m("",!0)}}),$o=k(ko,[["__scopeId","data-v-f1e365da"]]),yo=["role","tabindex"],Ao={key:1,class:"items"},Po=b({__name:"VPSidebarItem",props:{item:{},depth:{}},setup(a){const e=a,{collapsed:t,collapsible:n,isLink:s,isActiveLink:r,hasActiveLink:c,hasChildren:v,toggle:u}=At(y(()=>e.item)),h=y(()=>v.value?"section":"div"),A=y(()=>s.value?"a":"div"),_=y(()=>v.value?e.depth+2===7?"p":`h${e.depth+2}`:"p"),P=y(()=>s.value?void 0:"button"),V=y(()=>[[`level-${e.depth}`],{collapsible:n.value},{collapsed:t.value},{"is-link":s.value},{"is-active":r.value},{"has-active":c.value}]);function w(N){"key"in N&&N.key!=="Enter"||!e.item.link&&u()}function M(){e.item.link&&u()}return(N,E)=>{const U=G("VPSidebarItem",!0);return o(),$(H(h.value),{class:T(["VPSidebarItem",V.value])},{default:f(()=>[N.item.text?(o(),l("div",R({key:0,class:"item",role:P.value},xe(N.item.items?{click:w,keydown:w}:{},!0),{tabindex:N.item.items&&0}),[E[1]||(E[1]=p("div",{class:"indicator"},null,-1)),N.item.link?(o(),$(Q,{key:0,tag:A.value,class:"link",href:N.item.link,rel:N.item.rel,target:N.item.target},{default:f(()=>[(o(),$(H(_.value),{class:"text",innerHTML:N.item.text},null,8,["innerHTML"]))]),_:1},8,["tag","href","rel","target"])):(o(),$(H(_.value),{key:1,class:"text",innerHTML:N.item.text},null,8,["innerHTML"])),N.item.collapsed!=null&&N.item.items&&N.item.items.length?(o(),l("div",{key:2,class:"caret",role:"button","aria-label":"toggle section",onClick:M,onKeydown:et(M,["enter"]),tabindex:"0"},E[0]||(E[0]=[p("span",{class:"vpi-chevron-right caret-icon"},null,-1)]),32)):m("",!0)],16,yo)):m("",!0),N.item.items&&N.item.items.length?(o(),l("div",Ao,[N.depth<5?(o(!0),l(C,{key:0},B(N.item.items,K=>(o(),$(U,{key:K.text,item:K,depth:N.depth+1},null,8,["item","depth"]))),128)):m("",!0)])):m("",!0)]),_:1},8,["class"])}}}),Vo=k(Po,[["__scopeId","data-v-196b2e5f"]]),So=b({__name:"VPSidebarGroup",props:{items:{}},setup(a){const e=L(!0);let t=null;return O(()=>{t=setTimeout(()=>{t=null,e.value=!1},300)}),tt(()=>{t!=null&&(clearTimeout(t),t=null)}),(n,s)=>(o(!0),l(C,null,B(n.items,r=>(o(),l("div",{key:r.text,class:T(["group",{"no-transition":e.value}])},[g(Vo,{item:r,depth:0},null,8,["item"])],2))),128))}}),Lo=k(So,[["__scopeId","data-v-9e426adc"]]),Io={class:"nav",id:"VPSidebarNav","aria-labelledby":"sidebar-aria-label",tabindex:"-1"},No=b({__name:"VPSidebar",props:{open:{type:Boolean}},setup(a){const{sidebarGroups:e,hasSidebar:t}=D(),n=a,s=L(null),r=we(te?document.body:null);W([n,s],()=>{var v;n.open?(r.value=!0,(v=s.value)==null||v.focus()):r.value=!1},{immediate:!0,flush:"post"});const c=L(0);return W(e,()=>{c.value+=1},{deep:!0}),(v,u)=>i(t)?(o(),l("aside",{key:0,class:T(["VPSidebar",{open:v.open}]),ref_key:"navEl",ref:s,onClick:u[0]||(u[0]=st(()=>{},["stop"]))},[u[2]||(u[2]=p("div",{class:"curtain"},null,-1)),p("nav",Io,[u[1]||(u[1]=p("span",{class:"visually-hidden",id:"sidebar-aria-label"}," Sidebar Navigation ",-1)),d(v.$slots,"sidebar-nav-before",{},void 0,!0),(o(),$(Lo,{items:i(e),key:c.value},null,8,["items"])),d(v.$slots,"sidebar-nav-after",{},void 0,!0)])],2)):m("",!0)}}),To=k(No,[["__scopeId","data-v-18756405"]]),Co=b({__name:"VPSkipLink",setup(a){const e=ee(),t=L();W(()=>e.path,()=>t.value.focus());function n({target:s}){const r=document.getElementById(decodeURIComponent(s.hash).slice(1));if(r){const c=()=>{r.removeAttribute("tabindex"),r.removeEventListener("blur",c)};r.setAttribute("tabindex","-1"),r.addEventListener("blur",c),r.focus(),window.scrollTo(0,0)}}return(s,r)=>(o(),l(C,null,[p("span",{ref_key:"backToTop",ref:t,tabindex:"-1"},null,512),p("a",{href:"#VPContent",class:"VPSkipLink visually-hidden",onClick:n}," Skip to content ")],64))}}),wo=k(Co,[["__scopeId","data-v-c3508ec8"]]),Mo=b({__name:"Layout",setup(a){const{isOpen:e,open:t,close:n}=D(),s=ee();W(()=>s.path,n),yt(e,n);const{frontmatter:r}=S(),c=Me(),v=y(()=>!!c["home-hero-image"]);return he("hero-image-slot-exists",v),(u,h)=>{const A=G("Content");return i(r).layout!==!1?(o(),l("div",{key:0,class:T(["Layout",i(r).pageClass])},[d(u.$slots,"layout-top",{},void 0,!0),g(wo),g(ct,{class:"backdrop",show:i(e),onClick:i(n)},null,8,["show","onClick"]),g($o,null,{"nav-bar-title-before":f(()=>[d(u.$slots,"nav-bar-title-before",{},void 0,!0)]),"nav-bar-title-after":f(()=>[d(u.$slots,"nav-bar-title-after",{},void 0,!0)]),"nav-bar-content-before":f(()=>[d(u.$slots,"nav-bar-content-before",{},void 0,!0)]),"nav-bar-content-after":f(()=>[d(u.$slots,"nav-bar-content-after",{},void 0,!0)]),"nav-screen-content-before":f(()=>[d(u.$slots,"nav-screen-content-before",{},void 0,!0)]),"nav-screen-content-after":f(()=>[d(u.$slots,"nav-screen-content-after",{},void 0,!0)]),_:3}),g(bn,{open:i(e),onOpenMenu:i(t)},null,8,["open","onOpenMenu"]),g(To,{open:i(e)},{"sidebar-nav-before":f(()=>[d(u.$slots,"sidebar-nav-before",{},void 0,!0)]),"sidebar-nav-after":f(()=>[d(u.$slots,"sidebar-nav-after",{},void 0,!0)]),_:3},8,["open"]),g(tn,null,{"page-top":f(()=>[d(u.$slots,"page-top",{},void 0,!0)]),"page-bottom":f(()=>[d(u.$slots,"page-bottom",{},void 0,!0)]),"not-found":f(()=>[d(u.$slots,"not-found",{},void 0,!0)]),"home-hero-before":f(()=>[d(u.$slots,"home-hero-before",{},void 0,!0)]),"home-hero-info-before":f(()=>[d(u.$slots,"home-hero-info-before",{},void 0,!0)]),"home-hero-info":f(()=>[d(u.$slots,"home-hero-info",{},void 0,!0)]),"home-hero-info-after":f(()=>[d(u.$slots,"home-hero-info-after",{},void 0,!0)]),"home-hero-actions-after":f(()=>[d(u.$slots,"home-hero-actions-after",{},void 0,!0)]),"home-hero-image":f(()=>[d(u.$slots,"home-hero-image",{},void 0,!0)]),"home-hero-after":f(()=>[d(u.$slots,"home-hero-after",{},void 0,!0)]),"home-features-before":f(()=>[d(u.$slots,"home-features-before",{},void 0,!0)]),"home-features-after":f(()=>[d(u.$slots,"home-features-after",{},void 0,!0)]),"doc-footer-before":f(()=>[d(u.$slots,"doc-footer-before",{},void 0,!0)]),"doc-before":f(()=>[d(u.$slots,"doc-before",{},void 0,!0)]),"doc-after":f(()=>[d(u.$slots,"doc-after",{},void 0,!0)]),"doc-top":f(()=>[d(u.$slots,"doc-top",{},void 0,!0)]),"doc-bottom":f(()=>[d(u.$slots,"doc-bottom",{},void 0,!0)]),"aside-top":f(()=>[d(u.$slots,"aside-top",{},void 0,!0)]),"aside-bottom":f(()=>[d(u.$slots,"aside-bottom",{},void 0,!0)]),"aside-outline-before":f(()=>[d(u.$slots,"aside-outline-before",{},void 0,!0)]),"aside-outline-after":f(()=>[d(u.$slots,"aside-outline-after",{},void 0,!0)]),"aside-ads-before":f(()=>[d(u.$slots,"aside-ads-before",{},void 0,!0)]),"aside-ads-after":f(()=>[d(u.$slots,"aside-ads-after",{},void 0,!0)]),_:3}),g(rn),d(u.$slots,"layout-bottom",{},void 0,!0)],2)):(o(),$(A,{key:1}))}}}),Bo=k(Mo,[["__scopeId","data-v-a9a9e638"]]),Eo={},Qo={class:"VPTeamPage"};function Fo(a,e){return o(),l("div",Qo,[d(a.$slots,"default")])}const Br=k(Eo,[["render",Fo],["__scopeId","data-v-c2f8e101"]]),Ho={},Wo={class:"VPTeamPageTitle"},Oo={key:0,class:"title"},Do={key:1,class:"lead"};function Uo(a,e){return o(),l("div",Wo,[a.$slots.title?(o(),l("h1",Oo,[d(a.$slots,"title",{},void 0,!0)])):m("",!0),a.$slots.lead?(o(),l("p",Do,[d(a.$slots,"lead",{},void 0,!0)])):m("",!0)])}const Er=k(Ho,[["render",Uo],["__scopeId","data-v-e277e15c"]]),Ro={},Go={class:"VPTeamPageSection"},Jo={class:"title"},Ko={key:0,class:"title-text"},jo={key:0,class:"lead"},zo={key:1,class:"members"};function Zo(a,e){return o(),l("section",Go,[p("div",Jo,[e[0]||(e[0]=p("div",{class:"title-line"},null,-1)),a.$slots.title?(o(),l("h2",Ko,[d(a.$slots,"title",{},void 0,!0)])):m("",!0)]),a.$slots.lead?(o(),l("p",jo,[d(a.$slots,"lead",{},void 0,!0)])):m("",!0),a.$slots.members?(o(),l("div",zo,[d(a.$slots,"members",{},void 0,!0)])):m("",!0)])}const Qr=k(Ro,[["render",Zo],["__scopeId","data-v-d43bc49d"]]),Yo={class:"profile"},Xo={class:"avatar"},qo=["src","alt"],xo={class:"data"},er={class:"name"},tr={key:0,class:"affiliation"},sr={key:0,class:"title"},nr={key:1,class:"at"},ar=["innerHTML"],or={key:2,class:"links"},rr={key:0,class:"sp"},ir=b({__name:"VPTeamMembersItem",props:{size:{default:"medium"},member:{}},setup(a){return(e,t)=>(o(),l("article",{class:T(["VPTeamMembersItem",[e.size]])},[p("div",Yo,[p("figure",Xo,[p("img",{class:"avatar-img",src:e.member.avatar,alt:e.member.name},null,8,qo)]),p("div",xo,[p("h1",er,I(e.member.name),1),e.member.title||e.member.org?(o(),l("p",tr,[e.member.title?(o(),l("span",sr,I(e.member.title),1)):m("",!0),e.member.title&&e.member.org?(o(),l("span",nr," @ ")):m("",!0),e.member.org?(o(),$(Q,{key:2,class:T(["org",{link:e.member.orgLink}]),href:e.member.orgLink,"no-icon":""},{default:f(()=>[F(I(e.member.org),1)]),_:1},8,["class","href"])):m("",!0)])):m("",!0),e.member.desc?(o(),l("p",{key:1,class:"desc",innerHTML:e.member.desc},null,8,ar)):m("",!0),e.member.links?(o(),l("div",or,[g(ne,{links:e.member.links},null,8,["links"])])):m("",!0)])]),e.member.sponsor?(o(),l("div",rr,[g(Q,{class:"sp-link",href:e.member.sponsor,"no-icon":""},{default:f(()=>[t[0]||(t[0]=p("span",{class:"vpi-heart sp-icon"},null,-1)),F(" "+I(e.member.actionText||"Sponsor"),1)]),_:1},8,["href"])])):m("",!0)],2))}}),lr=k(ir,[["__scopeId","data-v-f9987cb6"]]),cr={class:"container"},ur=b({__name:"VPTeamMembers",props:{size:{default:"medium"},members:{}},setup(a){const e=a,t=y(()=>[e.size,`count-${e.members.length}`]);return(n,s)=>(o(),l("div",{class:T(["VPTeamMembers",t.value])},[p("div",cr,[(o(!0),l(C,null,B(n.members,r=>(o(),l("div",{key:r.name,class:"item"},[g(lr,{size:n.size,member:r},null,8,["size","member"])]))),128))])],2))}}),Fr=k(ur,[["__scopeId","data-v-fba19bad"]]),Pe={Layout:Bo,enhanceApp:({app:a})=>{a.component("Badge",rt)}},dr={},pr={style:{"text-align":"center"}};function vr(a,e){const t=G("font");return o(),l(C,null,[e[1]||(e[1]=p("br",null,null,-1)),p("h1",pr,[p("strong",null,[g(t,{color:"orange"},{default:f(()=>e[0]||(e[0]=[F(" Package Ecosystem")])),_:1})])]),e[2]||(e[2]=nt('

Read n-d array like-data

DiskArrays.jl

Get your chunks!

Named Dimensions

DimensionalData.jl

Select & Index!

Out of memory data

Zarr.jl

Chunkerd, compressed !

Rasterized spatial data

Rasters.jl

Read and manipulate !

Array-oriented data

NetCDF.jl

Scientific binary data.

Raster and vector data

ArchGDAL.jl

GDAL in Julia.

An interface for

GeoInterface.jl

geospatial data in Julia.

A higher level interface

GRIBDatasets.jl

for reading GRIB files.

Array-oriented data

NCDatasets.jl

Scientific binary data.

',9))],64)}const fr=k(dr,[["render",vr]]),mr=b({__name:"VersionPicker",props:{screenMenu:{type:Boolean}},setup(a){const e=L([]),t=L("Versions"),n=L(!1);Se();const s=()=>typeof window<"u"&&(window.location.hostname==="localhost"||window.location.hostname==="127.0.0.1"),r=()=>{if(typeof window>"u")return"";const{origin:u,pathname:h}=window.location;if(u.includes("github.io")){const A=h.split("/").filter(Boolean),_=A.length>0?`/${A[0]}/`:"/";return`${u}${_}`}else return u},c=()=>new Promise(u=>{if(s()){u(!1);return}const h=setInterval(()=>{window.DOC_VERSIONS&&window.DOCUMENTER_CURRENT_VERSION&&(clearInterval(h),u(!0))},100);setTimeout(()=>{clearInterval(h),u(!1)},5e3)});return O(async()=>{if(!(typeof window>"u")){try{if(s()){const u=["dev"];e.value=u.map(h=>({text:h,link:"/"})),t.value="dev"}else{const u=await c(),h=y(()=>r());if(u&&window.DOC_VERSIONS&&window.DOCUMENTER_CURRENT_VERSION)e.value=window.DOC_VERSIONS.map(A=>({text:A,link:`${h.value}/${A}/`})),t.value=window.DOCUMENTER_CURRENT_VERSION;else{const A=["dev"];e.value=A.map(_=>({text:_,link:`${h.value}/${_}/`})),t.value="dev"}}}catch(u){console.warn("Error loading versions:",u);const h=["dev"],A=y(()=>r());e.value=h.map(_=>({text:_,link:`${A.value}/${_}/`})),t.value="dev"}n.value=!0}}),(u,h)=>n.value?(o(),l(C,{key:0},[!u.screenMenu&&e.value.length>0?(o(),$(We,{key:0,item:{text:t.value,items:e.value},class:"VPVersionPicker"},null,8,["item"])):u.screenMenu&&e.value.length>0?(o(),$(De,{key:1,text:t.value,items:e.value,class:"VPVersionPicker"},null,8,["text","items"])):m("",!0)],64)):m("",!0)}}),hr=k(mr,[["__scopeId","data-v-f465cb49"]]),_r=a=>{if(typeof document>"u")return{stabilizeScrollPosition:s=>async(...r)=>s(...r)};const e=document.documentElement;return{stabilizeScrollPosition:n=>async(...s)=>{const r=n(...s),c=a.value;if(!c)return r;const v=c.offsetTop-e.scrollTop;return await Te(),e.scrollTop=c.offsetTop-v,r}}},Ue="vitepress:tabSharedState",z=typeof localStorage<"u"?localStorage:null,Re="vitepress:tabsSharedState",br=()=>{const a=z==null?void 0:z.getItem(Re);if(a)try{return JSON.parse(a)}catch{}return{}},gr=a=>{z&&z.setItem(Re,JSON.stringify(a))},kr=a=>{const e=at({});W(()=>e.content,(t,n)=>{t&&n&&gr(t)},{deep:!0}),a.provide(Ue,e)},$r=(a,e)=>{const t=j(Ue);if(!t)throw new Error("[vitepress-plugin-tabs] TabsSharedState should be injected");O(()=>{t.content||(t.content=br())});const n=L(),s=y({get(){var u;const c=e.value,v=a.value;if(c){const h=(u=t.content)==null?void 0:u[c];if(h&&v.includes(h))return h}else{const h=n.value;if(h)return h}return v[0]},set(c){const v=e.value;v?t.content&&(t.content[v]=c):n.value=c}});return{selected:s,select:c=>{s.value=c}}};let Ve=0;const yr=()=>(Ve++,""+Ve);function Ar(){const a=Me();return y(()=>{var n;const t=(n=a.default)==null?void 0:n.call(a);return t?t.filter(s=>typeof s.type=="object"&&"__name"in s.type&&s.type.__name==="PluginTabsTab"&&s.props).map(s=>{var r;return(r=s.props)==null?void 0:r.label}):[]})}const Ge="vitepress:tabSingleState",Pr=a=>{he(Ge,a)},Vr=()=>{const a=j(Ge);if(!a)throw new Error("[vitepress-plugin-tabs] TabsSingleState should be injected");return a},Sr={class:"plugin-tabs"},Lr=["id","aria-selected","aria-controls","tabindex","onClick"],Ir=b({__name:"PluginTabs",props:{sharedStateKey:{}},setup(a){const e=a,t=Ar(),{selected:n,select:s}=$r(t,ot(e,"sharedStateKey")),r=L(),{stabilizeScrollPosition:c}=_r(r),v=c(s),u=L([]),h=_=>{var w;const P=t.value.indexOf(n.value);let V;_.key==="ArrowLeft"?V=P>=1?P-1:t.value.length-1:_.key==="ArrowRight"&&(V=P(o(),l("div",Sr,[p("div",{ref_key:"tablist",ref:r,class:"plugin-tabs--tab-list",role:"tablist",onKeydown:h},[(o(!0),l(C,null,B(i(t),V=>(o(),l("button",{id:`tab-${V}-${i(A)}`,ref_for:!0,ref_key:"buttonRefs",ref:u,key:V,role:"tab",class:"plugin-tabs--tab","aria-selected":V===i(n),"aria-controls":`panel-${V}-${i(A)}`,tabindex:V===i(n)?0:-1,onClick:()=>i(v)(V)},I(V),9,Lr))),128))],544),d(_.$slots,"default")]))}}),Nr=["id","aria-labelledby"],Tr=b({__name:"PluginTabsTab",props:{label:{}},setup(a){const{uid:e,selected:t}=Vr();return(n,s)=>i(t)===n.label?(o(),l("div",{key:0,id:`panel-${n.label}-${i(e)}`,class:"plugin-tabs--content",role:"tabpanel",tabindex:"0","aria-labelledby":`tab-${n.label}-${i(e)}`},[d(n.$slots,"default",{},void 0,!0)],8,Nr)):m("",!0)}}),Cr=k(Tr,[["__scopeId","data-v-9b0d03d2"]]),wr=a=>{kr(a),a.component("PluginTabs",Ir),a.component("PluginTabsTab",Cr)},Hr={extends:Pe,Layout(){return ye(Pe.Layout,null,{"aside-ads-before":()=>ye(fr)})},enhanceApp({app:a,router:e,siteData:t}){wr(a),a.component("VersionPicker",hr)}};export{Hr as R,Er as V,Fr as a,Qr as b,Br as c,ga as d,S as u}; diff --git a/previews/PR439/assets/cxbndsy.CnxSdCFY.png b/previews/PR439/assets/cxbndsy.CnxSdCFY.png deleted file mode 100644 index 2f90ec876c3d312a33f31b36b786f18dfa7bd174..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 81189 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 diff --git a/previews/PR439/assets/development_contribute.md.BWwOAw2T.js b/previews/PR439/assets/development_contribute.md.BseKsFbx.js similarity index 97% rename from previews/PR439/assets/development_contribute.md.BWwOAw2T.js rename to previews/PR439/assets/development_contribute.md.BseKsFbx.js index 8c933fc5..bfceaa37 100644 --- a/previews/PR439/assets/development_contribute.md.BWwOAw2T.js +++ b/previews/PR439/assets/development_contribute.md.BseKsFbx.js @@ -1,3 +1,3 @@ -import{_ as s,c as t,a2 as a,o as i}from"./chunks/framework.DsPJznl_.js";const u=JSON.parse('{"title":"Contribute to YAXArrays.jl","description":"","frontmatter":{},"headers":[],"relativePath":"development/contribute.md","filePath":"development/contribute.md","lastUpdated":null}'),l={name:"development/contribute.md"};function o(n,e,r,p,d,h){return i(),t("div",null,e[0]||(e[0]=[a(`

Contribute to YAXArrays.jl

Pull requests and bug reports are always welcome at the YAXArrays.jl GitHub repository.

Contribute to Documentation

Contributing with examples can be done by first creating a new file example here

new file

  • your_new_file.md at docs/src/UserGuide/

Once this is done you need to add a new entry here at the appropriate level.

add entry to docs

Your new entry should look like:

  • { text: 'Your title example', link: '/UserGuide/your_new_file.md' }

Build docs locally

If you want to take a look at the docs locally before doing a PR follow the next steps:

Install the dependencies in your system, locate yourself at the docs level folder, then do

sh
npm i

Then simply go to your docs env and activate it, i.e.

sh
docs> julia
+import{_ as s,c as t,a2 as a,o as i}from"./chunks/framework.eQVMtpgY.js";const u=JSON.parse('{"title":"Contribute to YAXArrays.jl","description":"","frontmatter":{},"headers":[],"relativePath":"development/contribute.md","filePath":"development/contribute.md","lastUpdated":null}'),l={name:"development/contribute.md"};function o(n,e,r,p,d,h){return i(),t("div",null,e[0]||(e[0]=[a(`

Contribute to YAXArrays.jl

Pull requests and bug reports are always welcome at the YAXArrays.jl GitHub repository.

Contribute to Documentation

Contributing with examples can be done by first creating a new file example here

new file

  • your_new_file.md at docs/src/UserGuide/

Once this is done you need to add a new entry here at the appropriate level.

add entry to docs

Your new entry should look like:

  • { text: 'Your title example', link: '/UserGuide/your_new_file.md' }

Build docs locally

If you want to take a look at the docs locally before doing a PR follow the next steps:

Install the dependencies in your system, locate yourself at the docs level folder, then do

sh
npm i

Then simply go to your docs env and activate it, i.e.

sh
docs> julia
 julia> ]
 pkg> activate .

Next, run the scripts. Generate files and build docs by running:

sh
include("make.jl")

Now go to your terminal in the same path docs> and run:

sh
npm run docs:dev

This should ouput http://localhost:5173/YAXArrays.jl/, copy/paste this into your browser and you are all set.

`,18)]))}const k=s(l,[["render",o]]);export{u as __pageData,k as default}; diff --git a/previews/PR439/assets/development_contribute.md.BWwOAw2T.lean.js b/previews/PR439/assets/development_contribute.md.BseKsFbx.lean.js similarity index 97% rename from previews/PR439/assets/development_contribute.md.BWwOAw2T.lean.js rename to previews/PR439/assets/development_contribute.md.BseKsFbx.lean.js index 8c933fc5..bfceaa37 100644 --- a/previews/PR439/assets/development_contribute.md.BWwOAw2T.lean.js +++ b/previews/PR439/assets/development_contribute.md.BseKsFbx.lean.js @@ -1,3 +1,3 @@ -import{_ as s,c as t,a2 as a,o as i}from"./chunks/framework.DsPJznl_.js";const u=JSON.parse('{"title":"Contribute to YAXArrays.jl","description":"","frontmatter":{},"headers":[],"relativePath":"development/contribute.md","filePath":"development/contribute.md","lastUpdated":null}'),l={name:"development/contribute.md"};function o(n,e,r,p,d,h){return i(),t("div",null,e[0]||(e[0]=[a(`

Contribute to YAXArrays.jl

Pull requests and bug reports are always welcome at the YAXArrays.jl GitHub repository.

Contribute to Documentation

Contributing with examples can be done by first creating a new file example here

new file

  • your_new_file.md at docs/src/UserGuide/

Once this is done you need to add a new entry here at the appropriate level.

add entry to docs

Your new entry should look like:

  • { text: 'Your title example', link: '/UserGuide/your_new_file.md' }

Build docs locally

If you want to take a look at the docs locally before doing a PR follow the next steps:

Install the dependencies in your system, locate yourself at the docs level folder, then do

sh
npm i

Then simply go to your docs env and activate it, i.e.

sh
docs> julia
+import{_ as s,c as t,a2 as a,o as i}from"./chunks/framework.eQVMtpgY.js";const u=JSON.parse('{"title":"Contribute to YAXArrays.jl","description":"","frontmatter":{},"headers":[],"relativePath":"development/contribute.md","filePath":"development/contribute.md","lastUpdated":null}'),l={name:"development/contribute.md"};function o(n,e,r,p,d,h){return i(),t("div",null,e[0]||(e[0]=[a(`

Contribute to YAXArrays.jl

Pull requests and bug reports are always welcome at the YAXArrays.jl GitHub repository.

Contribute to Documentation

Contributing with examples can be done by first creating a new file example here

new file

  • your_new_file.md at docs/src/UserGuide/

Once this is done you need to add a new entry here at the appropriate level.

add entry to docs

Your new entry should look like:

  • { text: 'Your title example', link: '/UserGuide/your_new_file.md' }

Build docs locally

If you want to take a look at the docs locally before doing a PR follow the next steps:

Install the dependencies in your system, locate yourself at the docs level folder, then do

sh
npm i

Then simply go to your docs env and activate it, i.e.

sh
docs> julia
 julia> ]
 pkg> activate .

Next, run the scripts. Generate files and build docs by running:

sh
include("make.jl")

Now go to your terminal in the same path docs> and run:

sh
npm run docs:dev

This should ouput http://localhost:5173/YAXArrays.jl/, copy/paste this into your browser and you are all set.

`,18)]))}const k=s(l,[["render",o]]);export{u as __pageData,k as default}; diff --git a/previews/PR439/assets/development_contributors.md.CoMZNRUw.js b/previews/PR439/assets/development_contributors.md.CoMZNRUw.js deleted file mode 100644 index 06372d4e..00000000 --- a/previews/PR439/assets/development_contributors.md.CoMZNRUw.js +++ /dev/null @@ -1 +0,0 @@ -import{V as u,a as l,b as m,c as g}from"./chunks/theme.BTHK6YKI.js";import{c as h,G as r,w as s,k as n,B as c,o as b,a as e,j as t}from"./chunks/framework.DsPJznl_.js";const p={align:"justify"},z=JSON.parse('{"title":"","description":"","frontmatter":{"layout":"page"},"headers":[],"relativePath":"development/contributors.md","filePath":"development/contributors.md","lastUpdated":null}'),v={name:"development/contributors.md"},j=Object.assign(v,{setup(f){const o=[{avatar:"https://www.bgc-jena.mpg.de/employee_images/121366-1667825290?t=eyJ3aWR0aCI6MjEzLCJoZWlnaHQiOjI3NCwiZml0IjoiY3JvcCIsImZpbGVfZXh0ZW5zaW9uIjoid2VicCIsInF1YWxpdHkiOjg2fQ%3D%3D--3e1d41ff4b1ea8928e6734bc473242a90f797dea",name:"Fabian Gans",title:"Geoscientific Programmer",links:[{icon:"github",link:"https://github.com/meggart"}]},{avatar:"https://avatars.githubusercontent.com/u/17124431?v=4",name:"Felix Cremer",title:"PhD Candidate in Remote Sensing",links:[{icon:"github",link:"https://github.com/felixcremer"}]},{avatar:"https://avatars.githubusercontent.com/u/2534009?v=4",name:"Rafael Schouten",title:"Spatial/ecological modelling",links:[{icon:"github",link:"https://github.com/rafaqz"}]},{avatar:"https://avatars.githubusercontent.com/u/19525261?v=4",name:"Lazaro Alonso",title:"Scientist. Data Visualization",links:[{icon:"github",link:"https://github.com/lazarusA"},{icon:"x",link:"https://twitter.com/LazarusAlon"},{icon:"linkedin",link:"https://www.linkedin.com/in/lazaro-alonso/"},{icon:"mastodon",link:"https://julialang.social/@LazaroAlonso"}]}];return(d,a)=>{const i=c("font");return b(),h("div",null,[r(n(g),null,{default:s(()=>[r(n(u),null,{title:s(()=>a[0]||(a[0]=[e("Contributors")])),lead:s(()=>[a[8]||(a[8]=t("strong",null,"Current core contributors ",-1)),a[9]||(a[9]=e()),a[10]||(a[10]=t("br",null,null,-1)),t("div",p,[a[4]||(a[4]=e(" They have taking the lead for the ongoing organizational maintenance and technical direction of ")),r(i,{color:"orange"},{default:s(()=>a[1]||(a[1]=[e("YAXArrays.jl")])),_:1}),a[5]||(a[5]=e(", ")),r(i,{color:"orange"},{default:s(()=>a[2]||(a[2]=[e("DiskArrays.jl")])),_:1}),a[6]||(a[6]=e(" and ")),r(i,{color:"orange"},{default:s(()=>a[3]||(a[3]=[e("DimensionalData.jl")])),_:1}),a[7]||(a[7]=e(". "))])]),_:1}),r(n(l),{size:"small",members:o}),r(n(m),null,{title:s(()=>a[11]||(a[11]=[e("Our valuable contributors")])),lead:s(()=>a[12]||(a[12]=[e(" We appreciate all contributions from the Julia community so that this ecosystem can thrive."),t("br",null,null,-1)])),members:s(()=>a[13]||(a[13]=[t("div",{class:"row"},[t("a",{href:"https://github.com/meggart",target:"_blank"},[t("img",{src:"https://avatars.githubusercontent.com/u/2539563?v=4"})]),t("a",{href:"https://github.com/felixcremer",target:"_blank"},[t("img",{src:"https://avatars.githubusercontent.com/u/17124431?v=4"})]),t("a",{href:"https://github.com/lazarusA",target:"_blank"},[t("img",{src:"https://avatars.githubusercontent.com/u/19525261?v=4"})]),t("a",{href:"https://github.com/gdkrmr",target:"_blank"},[t("img",{src:"https://avatars.githubusercontent.com/u/12512930?v=4"})]),t("a",{href:"https://github.com/apps/github-actions",target:"_blank"},[t("img",{src:"https://avatars.githubusercontent.com/in/15368?v=4"})]),t("a",{href:"https://github.com/pdimens",target:"_blank"},[t("img",{src:"https://avatars.githubusercontent.com/u/19176506?v=4"})]),t("a",{href:"https://github.com/twinGu",target:"_blank"},[t("img",{src:"https://avatars.githubusercontent.com/u/29449917?v=4"})]),t("a",{href:"https://github.com/dpabon",target:"_blank"},[t("img",{src:"https://avatars.githubusercontent.com/u/13040959?v=4"})]),t("a",{href:"https://github.com/Qfl3x",target:"_blank"},[t("img",{src:"https://avatars.githubusercontent.com/u/20775896?v=4"})]),t("a",{href:"https://github.com/kongdd",target:"_blank"},[t("img",{src:"https://avatars.githubusercontent.com/u/9815742?v=4"})]),t("a",{href:"https://github.com/MartinuzziFrancesco",target:"_blank"},[t("img",{src:"https://avatars.githubusercontent.com/u/10376688?v=4"})]),t("a",{href:"https://github.com/Sonicious",target:"_blank"},[t("img",{src:"https://avatars.githubusercontent.com/u/16307399?v=4"})]),t("a",{href:"https://github.com/rafaqz",target:"_blank"},[t("img",{src:"https://avatars.githubusercontent.com/u/2534009?v=4"})]),t("a",{href:"https://github.com/danlooo",target:"_blank"},[t("img",{src:"https://avatars.githubusercontent.com/u/5780565?v=4"})]),t("a",{href:"https://github.com/MarkusZehner",target:"_blank"},[t("img",{src:"https://avatars.githubusercontent.com/u/56972144?v=4"})]),t("a",{href:"https://github.com/Balinus",target:"_blank"},[t("img",{src:"https://avatars.githubusercontent.com/u/3630311?v=4"})]),t("a",{href:"https://github.com/singularitti",target:"_blank"},[t("img",{src:"https://avatars.githubusercontent.com/u/25192197?v=4"})]),t("a",{href:"https://github.com/ckrich",target:"_blank"},[t("img",{src:"https://avatars.githubusercontent.com/u/28727495?v=4"})]),t("a",{href:"https://github.com/apps/femtocleaner",target:"_blank"},[t("img",{src:"https://avatars.githubusercontent.com/in/4123?v=4"})]),t("a",{href:"https://github.com/ikselven",target:"_blank"},[t("img",{src:"https://avatars.githubusercontent.com/u/10441332?v=4"})]),t("a",{href:"https://github.com/linamaes",target:"_blank"},[t("img",{src:"https://avatars.githubusercontent.com/u/7131773?v=4"})])],-1)])),_:1})]),_:1})])}}});export{z as __pageData,j as default}; diff --git a/previews/PR439/assets/development_contributors.md.CoMZNRUw.lean.js b/previews/PR439/assets/development_contributors.md.CoMZNRUw.lean.js deleted file mode 100644 index 06372d4e..00000000 --- a/previews/PR439/assets/development_contributors.md.CoMZNRUw.lean.js +++ /dev/null @@ -1 +0,0 @@ -import{V as u,a as l,b as m,c as g}from"./chunks/theme.BTHK6YKI.js";import{c as h,G as r,w as s,k as n,B as c,o as b,a as e,j as t}from"./chunks/framework.DsPJznl_.js";const p={align:"justify"},z=JSON.parse('{"title":"","description":"","frontmatter":{"layout":"page"},"headers":[],"relativePath":"development/contributors.md","filePath":"development/contributors.md","lastUpdated":null}'),v={name:"development/contributors.md"},j=Object.assign(v,{setup(f){const o=[{avatar:"https://www.bgc-jena.mpg.de/employee_images/121366-1667825290?t=eyJ3aWR0aCI6MjEzLCJoZWlnaHQiOjI3NCwiZml0IjoiY3JvcCIsImZpbGVfZXh0ZW5zaW9uIjoid2VicCIsInF1YWxpdHkiOjg2fQ%3D%3D--3e1d41ff4b1ea8928e6734bc473242a90f797dea",name:"Fabian Gans",title:"Geoscientific Programmer",links:[{icon:"github",link:"https://github.com/meggart"}]},{avatar:"https://avatars.githubusercontent.com/u/17124431?v=4",name:"Felix Cremer",title:"PhD Candidate in Remote Sensing",links:[{icon:"github",link:"https://github.com/felixcremer"}]},{avatar:"https://avatars.githubusercontent.com/u/2534009?v=4",name:"Rafael Schouten",title:"Spatial/ecological modelling",links:[{icon:"github",link:"https://github.com/rafaqz"}]},{avatar:"https://avatars.githubusercontent.com/u/19525261?v=4",name:"Lazaro Alonso",title:"Scientist. Data Visualization",links:[{icon:"github",link:"https://github.com/lazarusA"},{icon:"x",link:"https://twitter.com/LazarusAlon"},{icon:"linkedin",link:"https://www.linkedin.com/in/lazaro-alonso/"},{icon:"mastodon",link:"https://julialang.social/@LazaroAlonso"}]}];return(d,a)=>{const i=c("font");return b(),h("div",null,[r(n(g),null,{default:s(()=>[r(n(u),null,{title:s(()=>a[0]||(a[0]=[e("Contributors")])),lead:s(()=>[a[8]||(a[8]=t("strong",null,"Current core contributors ",-1)),a[9]||(a[9]=e()),a[10]||(a[10]=t("br",null,null,-1)),t("div",p,[a[4]||(a[4]=e(" They have taking the lead for the ongoing organizational maintenance and technical direction of ")),r(i,{color:"orange"},{default:s(()=>a[1]||(a[1]=[e("YAXArrays.jl")])),_:1}),a[5]||(a[5]=e(", ")),r(i,{color:"orange"},{default:s(()=>a[2]||(a[2]=[e("DiskArrays.jl")])),_:1}),a[6]||(a[6]=e(" and ")),r(i,{color:"orange"},{default:s(()=>a[3]||(a[3]=[e("DimensionalData.jl")])),_:1}),a[7]||(a[7]=e(". "))])]),_:1}),r(n(l),{size:"small",members:o}),r(n(m),null,{title:s(()=>a[11]||(a[11]=[e("Our valuable contributors")])),lead:s(()=>a[12]||(a[12]=[e(" We appreciate all contributions from the Julia community so that this ecosystem can thrive."),t("br",null,null,-1)])),members:s(()=>a[13]||(a[13]=[t("div",{class:"row"},[t("a",{href:"https://github.com/meggart",target:"_blank"},[t("img",{src:"https://avatars.githubusercontent.com/u/2539563?v=4"})]),t("a",{href:"https://github.com/felixcremer",target:"_blank"},[t("img",{src:"https://avatars.githubusercontent.com/u/17124431?v=4"})]),t("a",{href:"https://github.com/lazarusA",target:"_blank"},[t("img",{src:"https://avatars.githubusercontent.com/u/19525261?v=4"})]),t("a",{href:"https://github.com/gdkrmr",target:"_blank"},[t("img",{src:"https://avatars.githubusercontent.com/u/12512930?v=4"})]),t("a",{href:"https://github.com/apps/github-actions",target:"_blank"},[t("img",{src:"https://avatars.githubusercontent.com/in/15368?v=4"})]),t("a",{href:"https://github.com/pdimens",target:"_blank"},[t("img",{src:"https://avatars.githubusercontent.com/u/19176506?v=4"})]),t("a",{href:"https://github.com/twinGu",target:"_blank"},[t("img",{src:"https://avatars.githubusercontent.com/u/29449917?v=4"})]),t("a",{href:"https://github.com/dpabon",target:"_blank"},[t("img",{src:"https://avatars.githubusercontent.com/u/13040959?v=4"})]),t("a",{href:"https://github.com/Qfl3x",target:"_blank"},[t("img",{src:"https://avatars.githubusercontent.com/u/20775896?v=4"})]),t("a",{href:"https://github.com/kongdd",target:"_blank"},[t("img",{src:"https://avatars.githubusercontent.com/u/9815742?v=4"})]),t("a",{href:"https://github.com/MartinuzziFrancesco",target:"_blank"},[t("img",{src:"https://avatars.githubusercontent.com/u/10376688?v=4"})]),t("a",{href:"https://github.com/Sonicious",target:"_blank"},[t("img",{src:"https://avatars.githubusercontent.com/u/16307399?v=4"})]),t("a",{href:"https://github.com/rafaqz",target:"_blank"},[t("img",{src:"https://avatars.githubusercontent.com/u/2534009?v=4"})]),t("a",{href:"https://github.com/danlooo",target:"_blank"},[t("img",{src:"https://avatars.githubusercontent.com/u/5780565?v=4"})]),t("a",{href:"https://github.com/MarkusZehner",target:"_blank"},[t("img",{src:"https://avatars.githubusercontent.com/u/56972144?v=4"})]),t("a",{href:"https://github.com/Balinus",target:"_blank"},[t("img",{src:"https://avatars.githubusercontent.com/u/3630311?v=4"})]),t("a",{href:"https://github.com/singularitti",target:"_blank"},[t("img",{src:"https://avatars.githubusercontent.com/u/25192197?v=4"})]),t("a",{href:"https://github.com/ckrich",target:"_blank"},[t("img",{src:"https://avatars.githubusercontent.com/u/28727495?v=4"})]),t("a",{href:"https://github.com/apps/femtocleaner",target:"_blank"},[t("img",{src:"https://avatars.githubusercontent.com/in/4123?v=4"})]),t("a",{href:"https://github.com/ikselven",target:"_blank"},[t("img",{src:"https://avatars.githubusercontent.com/u/10441332?v=4"})]),t("a",{href:"https://github.com/linamaes",target:"_blank"},[t("img",{src:"https://avatars.githubusercontent.com/u/7131773?v=4"})])],-1)])),_:1})]),_:1})])}}});export{z as __pageData,j as default}; diff --git a/previews/PR439/assets/development_contributors.md.DWwIsxSc.js b/previews/PR439/assets/development_contributors.md.DWwIsxSc.js new file mode 100644 index 00000000..7d65ff5c --- /dev/null +++ b/previews/PR439/assets/development_contributors.md.DWwIsxSc.js @@ -0,0 +1 @@ +import{V as u,a as l,b as m,c as g}from"./chunks/theme.7rY793H8.js";import{B as h,c,G as r,w as s,k as n,o as b,a as e,j as t}from"./chunks/framework.eQVMtpgY.js";const p={align:"justify"},z=JSON.parse('{"title":"","description":"","frontmatter":{"layout":"page"},"headers":[],"relativePath":"development/contributors.md","filePath":"development/contributors.md","lastUpdated":null}'),v={name:"development/contributors.md"},j=Object.assign(v,{setup(f){const o=[{avatar:"https://www.bgc-jena.mpg.de/employee_images/121366-1667825290?t=eyJ3aWR0aCI6MjEzLCJoZWlnaHQiOjI3NCwiZml0IjoiY3JvcCIsImZpbGVfZXh0ZW5zaW9uIjoid2VicCIsInF1YWxpdHkiOjg2fQ%3D%3D--3e1d41ff4b1ea8928e6734bc473242a90f797dea",name:"Fabian Gans",title:"Geoscientific Programmer",links:[{icon:"github",link:"https://github.com/meggart"}]},{avatar:"https://avatars.githubusercontent.com/u/17124431?v=4",name:"Felix Cremer",title:"PhD Candidate in Remote Sensing",links:[{icon:"github",link:"https://github.com/felixcremer"}]},{avatar:"https://avatars.githubusercontent.com/u/2534009?v=4",name:"Rafael Schouten",title:"Spatial/ecological modelling",links:[{icon:"github",link:"https://github.com/rafaqz"}]},{avatar:"https://avatars.githubusercontent.com/u/19525261?v=4",name:"Lazaro Alonso",title:"Scientist. Data Visualization",links:[{icon:"github",link:"https://github.com/lazarusA"},{icon:"x",link:"https://twitter.com/LazarusAlon"},{icon:"linkedin",link:"https://www.linkedin.com/in/lazaro-alonso/"},{icon:"mastodon",link:"https://julialang.social/@LazaroAlonso"}]}];return(d,a)=>{const i=h("font");return b(),c("div",null,[r(n(g),null,{default:s(()=>[r(n(u),null,{title:s(()=>a[0]||(a[0]=[e("Contributors")])),lead:s(()=>[a[8]||(a[8]=t("strong",null,"Current core contributors ",-1)),a[9]||(a[9]=e()),a[10]||(a[10]=t("br",null,null,-1)),t("div",p,[a[4]||(a[4]=e(" They have taking the lead for the ongoing organizational maintenance and technical direction of ")),r(i,{color:"orange"},{default:s(()=>a[1]||(a[1]=[e("YAXArrays.jl")])),_:1}),a[5]||(a[5]=e(", ")),r(i,{color:"orange"},{default:s(()=>a[2]||(a[2]=[e("DiskArrays.jl")])),_:1}),a[6]||(a[6]=e(" and ")),r(i,{color:"orange"},{default:s(()=>a[3]||(a[3]=[e("DimensionalData.jl")])),_:1}),a[7]||(a[7]=e(". "))])]),_:1}),r(n(l),{size:"small",members:o}),r(n(m),null,{title:s(()=>a[11]||(a[11]=[e("Our valuable contributors")])),lead:s(()=>a[12]||(a[12]=[e(" We appreciate all contributions from the Julia community so that this ecosystem can thrive."),t("br",null,null,-1)])),members:s(()=>a[13]||(a[13]=[t("div",{class:"row"},[t("a",{href:"https://github.com/meggart",target:"_blank"},[t("img",{src:"https://avatars.githubusercontent.com/u/2539563?v=4"})]),t("a",{href:"https://github.com/felixcremer",target:"_blank"},[t("img",{src:"https://avatars.githubusercontent.com/u/17124431?v=4"})]),t("a",{href:"https://github.com/lazarusA",target:"_blank"},[t("img",{src:"https://avatars.githubusercontent.com/u/19525261?v=4"})]),t("a",{href:"https://github.com/gdkrmr",target:"_blank"},[t("img",{src:"https://avatars.githubusercontent.com/u/12512930?v=4"})]),t("a",{href:"https://github.com/apps/github-actions",target:"_blank"},[t("img",{src:"https://avatars.githubusercontent.com/in/15368?v=4"})]),t("a",{href:"https://github.com/pdimens",target:"_blank"},[t("img",{src:"https://avatars.githubusercontent.com/u/19176506?v=4"})]),t("a",{href:"https://github.com/twinGu",target:"_blank"},[t("img",{src:"https://avatars.githubusercontent.com/u/29449917?v=4"})]),t("a",{href:"https://github.com/dpabon",target:"_blank"},[t("img",{src:"https://avatars.githubusercontent.com/u/13040959?v=4"})]),t("a",{href:"https://github.com/Qfl3x",target:"_blank"},[t("img",{src:"https://avatars.githubusercontent.com/u/20775896?v=4"})]),t("a",{href:"https://github.com/kongdd",target:"_blank"},[t("img",{src:"https://avatars.githubusercontent.com/u/9815742?v=4"})]),t("a",{href:"https://github.com/MartinuzziFrancesco",target:"_blank"},[t("img",{src:"https://avatars.githubusercontent.com/u/10376688?v=4"})]),t("a",{href:"https://github.com/Sonicious",target:"_blank"},[t("img",{src:"https://avatars.githubusercontent.com/u/16307399?v=4"})]),t("a",{href:"https://github.com/rafaqz",target:"_blank"},[t("img",{src:"https://avatars.githubusercontent.com/u/2534009?v=4"})]),t("a",{href:"https://github.com/danlooo",target:"_blank"},[t("img",{src:"https://avatars.githubusercontent.com/u/5780565?v=4"})]),t("a",{href:"https://github.com/MarkusZehner",target:"_blank"},[t("img",{src:"https://avatars.githubusercontent.com/u/56972144?v=4"})]),t("a",{href:"https://github.com/Balinus",target:"_blank"},[t("img",{src:"https://avatars.githubusercontent.com/u/3630311?v=4"})]),t("a",{href:"https://github.com/singularitti",target:"_blank"},[t("img",{src:"https://avatars.githubusercontent.com/u/25192197?v=4"})]),t("a",{href:"https://github.com/ckrich",target:"_blank"},[t("img",{src:"https://avatars.githubusercontent.com/u/28727495?v=4"})]),t("a",{href:"https://github.com/apps/femtocleaner",target:"_blank"},[t("img",{src:"https://avatars.githubusercontent.com/in/4123?v=4"})]),t("a",{href:"https://github.com/ikselven",target:"_blank"},[t("img",{src:"https://avatars.githubusercontent.com/u/10441332?v=4"})]),t("a",{href:"https://github.com/linamaes",target:"_blank"},[t("img",{src:"https://avatars.githubusercontent.com/u/7131773?v=4"})])],-1)])),_:1})]),_:1})])}}});export{z as __pageData,j as default}; diff --git a/previews/PR439/assets/development_contributors.md.DWwIsxSc.lean.js b/previews/PR439/assets/development_contributors.md.DWwIsxSc.lean.js new file mode 100644 index 00000000..7d65ff5c --- /dev/null +++ b/previews/PR439/assets/development_contributors.md.DWwIsxSc.lean.js @@ -0,0 +1 @@ +import{V as u,a as l,b as m,c as g}from"./chunks/theme.7rY793H8.js";import{B as h,c,G as r,w as s,k as n,o as b,a as e,j as t}from"./chunks/framework.eQVMtpgY.js";const p={align:"justify"},z=JSON.parse('{"title":"","description":"","frontmatter":{"layout":"page"},"headers":[],"relativePath":"development/contributors.md","filePath":"development/contributors.md","lastUpdated":null}'),v={name:"development/contributors.md"},j=Object.assign(v,{setup(f){const o=[{avatar:"https://www.bgc-jena.mpg.de/employee_images/121366-1667825290?t=eyJ3aWR0aCI6MjEzLCJoZWlnaHQiOjI3NCwiZml0IjoiY3JvcCIsImZpbGVfZXh0ZW5zaW9uIjoid2VicCIsInF1YWxpdHkiOjg2fQ%3D%3D--3e1d41ff4b1ea8928e6734bc473242a90f797dea",name:"Fabian Gans",title:"Geoscientific Programmer",links:[{icon:"github",link:"https://github.com/meggart"}]},{avatar:"https://avatars.githubusercontent.com/u/17124431?v=4",name:"Felix Cremer",title:"PhD Candidate in Remote Sensing",links:[{icon:"github",link:"https://github.com/felixcremer"}]},{avatar:"https://avatars.githubusercontent.com/u/2534009?v=4",name:"Rafael Schouten",title:"Spatial/ecological modelling",links:[{icon:"github",link:"https://github.com/rafaqz"}]},{avatar:"https://avatars.githubusercontent.com/u/19525261?v=4",name:"Lazaro Alonso",title:"Scientist. Data Visualization",links:[{icon:"github",link:"https://github.com/lazarusA"},{icon:"x",link:"https://twitter.com/LazarusAlon"},{icon:"linkedin",link:"https://www.linkedin.com/in/lazaro-alonso/"},{icon:"mastodon",link:"https://julialang.social/@LazaroAlonso"}]}];return(d,a)=>{const i=h("font");return b(),c("div",null,[r(n(g),null,{default:s(()=>[r(n(u),null,{title:s(()=>a[0]||(a[0]=[e("Contributors")])),lead:s(()=>[a[8]||(a[8]=t("strong",null,"Current core contributors ",-1)),a[9]||(a[9]=e()),a[10]||(a[10]=t("br",null,null,-1)),t("div",p,[a[4]||(a[4]=e(" They have taking the lead for the ongoing organizational maintenance and technical direction of ")),r(i,{color:"orange"},{default:s(()=>a[1]||(a[1]=[e("YAXArrays.jl")])),_:1}),a[5]||(a[5]=e(", ")),r(i,{color:"orange"},{default:s(()=>a[2]||(a[2]=[e("DiskArrays.jl")])),_:1}),a[6]||(a[6]=e(" and ")),r(i,{color:"orange"},{default:s(()=>a[3]||(a[3]=[e("DimensionalData.jl")])),_:1}),a[7]||(a[7]=e(". "))])]),_:1}),r(n(l),{size:"small",members:o}),r(n(m),null,{title:s(()=>a[11]||(a[11]=[e("Our valuable contributors")])),lead:s(()=>a[12]||(a[12]=[e(" We appreciate all contributions from the Julia community so that this ecosystem can thrive."),t("br",null,null,-1)])),members:s(()=>a[13]||(a[13]=[t("div",{class:"row"},[t("a",{href:"https://github.com/meggart",target:"_blank"},[t("img",{src:"https://avatars.githubusercontent.com/u/2539563?v=4"})]),t("a",{href:"https://github.com/felixcremer",target:"_blank"},[t("img",{src:"https://avatars.githubusercontent.com/u/17124431?v=4"})]),t("a",{href:"https://github.com/lazarusA",target:"_blank"},[t("img",{src:"https://avatars.githubusercontent.com/u/19525261?v=4"})]),t("a",{href:"https://github.com/gdkrmr",target:"_blank"},[t("img",{src:"https://avatars.githubusercontent.com/u/12512930?v=4"})]),t("a",{href:"https://github.com/apps/github-actions",target:"_blank"},[t("img",{src:"https://avatars.githubusercontent.com/in/15368?v=4"})]),t("a",{href:"https://github.com/pdimens",target:"_blank"},[t("img",{src:"https://avatars.githubusercontent.com/u/19176506?v=4"})]),t("a",{href:"https://github.com/twinGu",target:"_blank"},[t("img",{src:"https://avatars.githubusercontent.com/u/29449917?v=4"})]),t("a",{href:"https://github.com/dpabon",target:"_blank"},[t("img",{src:"https://avatars.githubusercontent.com/u/13040959?v=4"})]),t("a",{href:"https://github.com/Qfl3x",target:"_blank"},[t("img",{src:"https://avatars.githubusercontent.com/u/20775896?v=4"})]),t("a",{href:"https://github.com/kongdd",target:"_blank"},[t("img",{src:"https://avatars.githubusercontent.com/u/9815742?v=4"})]),t("a",{href:"https://github.com/MartinuzziFrancesco",target:"_blank"},[t("img",{src:"https://avatars.githubusercontent.com/u/10376688?v=4"})]),t("a",{href:"https://github.com/Sonicious",target:"_blank"},[t("img",{src:"https://avatars.githubusercontent.com/u/16307399?v=4"})]),t("a",{href:"https://github.com/rafaqz",target:"_blank"},[t("img",{src:"https://avatars.githubusercontent.com/u/2534009?v=4"})]),t("a",{href:"https://github.com/danlooo",target:"_blank"},[t("img",{src:"https://avatars.githubusercontent.com/u/5780565?v=4"})]),t("a",{href:"https://github.com/MarkusZehner",target:"_blank"},[t("img",{src:"https://avatars.githubusercontent.com/u/56972144?v=4"})]),t("a",{href:"https://github.com/Balinus",target:"_blank"},[t("img",{src:"https://avatars.githubusercontent.com/u/3630311?v=4"})]),t("a",{href:"https://github.com/singularitti",target:"_blank"},[t("img",{src:"https://avatars.githubusercontent.com/u/25192197?v=4"})]),t("a",{href:"https://github.com/ckrich",target:"_blank"},[t("img",{src:"https://avatars.githubusercontent.com/u/28727495?v=4"})]),t("a",{href:"https://github.com/apps/femtocleaner",target:"_blank"},[t("img",{src:"https://avatars.githubusercontent.com/in/4123?v=4"})]),t("a",{href:"https://github.com/ikselven",target:"_blank"},[t("img",{src:"https://avatars.githubusercontent.com/u/10441332?v=4"})]),t("a",{href:"https://github.com/linamaes",target:"_blank"},[t("img",{src:"https://avatars.githubusercontent.com/u/7131773?v=4"})])],-1)])),_:1})]),_:1})])}}});export{z as __pageData,j as default}; diff --git a/previews/PR439/assets/hqxthcy.B7KFIfDV.jpeg b/previews/PR439/assets/dytjtkd.B7KFIfDV.jpeg similarity index 100% rename from previews/PR439/assets/hqxthcy.B7KFIfDV.jpeg rename to previews/PR439/assets/dytjtkd.B7KFIfDV.jpeg diff --git a/previews/PR439/assets/epkiuye.kSio4V24.png b/previews/PR439/assets/epkiuye.kSio4V24.png new file mode 100644 index 0000000000000000000000000000000000000000..8cbcc24476587a588815af9262add784c440abb5 GIT binary patch literal 106370 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%0D0jv+55~l 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 Started

Installation

Install Julia v1.10 or above. YAXArrays.jl is available through the Julia package manager. You can enter it by pressing ] in the REPL and then typing

julia
pkg> add YAXArrays

Alternatively, you can also do

julia
import Pkg; Pkg.add("YAXArrays")

Quickstart

Create a simple array from random numbers given the size of each dimension or axis:

julia
using YAXArrays
+import{_ as a,c as i,a2 as n,o as t}from"./chunks/framework.eQVMtpgY.js";const g=JSON.parse('{"title":"Getting Started","description":"","frontmatter":{},"headers":[],"relativePath":"get_started.md","filePath":"get_started.md","lastUpdated":null}'),p={name:"get_started.md"};function l(e,s,h,k,r,d){return t(),i("div",null,s[0]||(s[0]=[n(`

Getting Started

Installation

Install Julia v1.10 or above. YAXArrays.jl is available through the Julia package manager. You can enter it by pressing ] in the REPL and then typing

julia
pkg> add YAXArrays

Alternatively, you can also do

julia
import Pkg; Pkg.add("YAXArrays")

Quickstart

Create a simple array from random numbers given the size of each dimension or axis:

julia
using YAXArrays
 
 a = YAXArray(rand(2,3))
╭─────────────────────────╮
 │ 2×3 YAXArray{Float64,2} │
@@ -44,13 +44,13 @@ import{_ as a,c as i,a2 as n,o as t}from"./chunks/framework.DsPJznl_.js";const g
 ├─────────────────────────────────────────────────────────────────── file size ┤ 
   file size: 46.88 KB
 └──────────────────────────────────────────────────────────────────────────────┘

Get the temperature map at the first point in time:

julia
a2[variable=At("temperature"), time=1].data
10×15 view(::Array{Float64, 4}, 1, :, :, 1) with eltype Float64:
- 0.323718  0.642158  0.826147  0.345767   …  0.967799  0.555863   0.990195
- 0.220229  0.026899  0.815069  0.766402      0.162528  0.754065   0.0735199
- 0.702987  0.852771  0.930783  0.808801      0.844079  0.604165   0.880638
- 0.701337  0.344085  0.803436  0.0936418     0.556428  0.291416   0.81805
- 0.251903  0.627566  0.397237  0.207575      0.732383  0.18356    0.20244
- 0.506979  0.502413  0.656012  0.3594     …  0.280241  0.378478   0.149175
- 0.478229  0.392517  0.347398  0.929437      0.476681  0.259157   0.620262
- 0.379323  0.627428  0.436438  0.86309       0.843691  0.379751   0.250047
- 0.230661  0.854213  0.659839  0.654809      0.855416  0.0158282  0.0101602
- 0.994603  0.189296  0.340619  0.567633      0.663953  0.35393    0.794844

Updates

TIP

The Julia Compiler is always improving. As such, we recommend using the latest stable version of Julia.

You may check the installed version with:

julia
pkg> st YAXArrays

INFO

With YAXArrays.jl 0.5 we switched the underlying data type to be a subtype of the DimensionalData.jl types. Therefore the indexing with named dimensions changed to the DimensionalData syntax. See the DimensionalData.jl docs.

`,21)]))}const E=a(p,[["render",l]]);export{g as __pageData,E as default}; + 0.695428 0.282139 0.652365 … 0.777618 0.28866 0.0689529 + 0.974376 0.423084 0.526144 0.482169 0.758746 0.900078 + 0.0982191 0.959161 0.965556 0.966025 0.011153 0.539111 + 0.315291 0.567886 0.971143 0.363858 0.338157 0.599162 + 0.228198 0.156712 0.43967 0.0857272 0.716538 0.257035 + 0.294422 0.992659 0.0103313 … 0.430734 0.849854 0.111783 + 0.743371 0.953079 0.196104 0.551798 0.680375 0.937264 + 0.904908 0.291044 0.560174 0.133802 0.0713371 0.375066 + 0.762404 0.319642 0.121877 0.984036 0.733506 0.607992 + 0.238475 0.437609 0.418982 0.579101 0.755983 0.979778

Updates

TIP

The Julia Compiler is always improving. As such, we recommend using the latest stable version of Julia.

You may check the installed version with:

julia
pkg> st YAXArrays

INFO

With YAXArrays.jl 0.5 we switched the underlying data type to be a subtype of the DimensionalData.jl types. Therefore the indexing with named dimensions changed to the DimensionalData syntax. See the DimensionalData.jl docs.

`,21)]))}const E=a(p,[["render",l]]);export{g as __pageData,E as default}; diff --git a/previews/PR439/assets/get_started.md.sZZBtLM3.lean.js b/previews/PR439/assets/get_started.md.Dq5Ai7fh.lean.js similarity index 85% rename from previews/PR439/assets/get_started.md.sZZBtLM3.lean.js rename to previews/PR439/assets/get_started.md.Dq5Ai7fh.lean.js index 481dd5a6..8d3ba39f 100644 --- a/previews/PR439/assets/get_started.md.sZZBtLM3.lean.js +++ b/previews/PR439/assets/get_started.md.Dq5Ai7fh.lean.js @@ -1,4 +1,4 @@ -import{_ as a,c as i,a2 as n,o as t}from"./chunks/framework.DsPJznl_.js";const g=JSON.parse('{"title":"Getting Started","description":"","frontmatter":{},"headers":[],"relativePath":"get_started.md","filePath":"get_started.md","lastUpdated":null}'),p={name:"get_started.md"};function l(e,s,h,k,r,d){return t(),i("div",null,s[0]||(s[0]=[n(`

Getting Started

Installation

Install Julia v1.10 or above. YAXArrays.jl is available through the Julia package manager. You can enter it by pressing ] in the REPL and then typing

julia
pkg> add YAXArrays

Alternatively, you can also do

julia
import Pkg; Pkg.add("YAXArrays")

Quickstart

Create a simple array from random numbers given the size of each dimension or axis:

julia
using YAXArrays
+import{_ as a,c as i,a2 as n,o as t}from"./chunks/framework.eQVMtpgY.js";const g=JSON.parse('{"title":"Getting Started","description":"","frontmatter":{},"headers":[],"relativePath":"get_started.md","filePath":"get_started.md","lastUpdated":null}'),p={name:"get_started.md"};function l(e,s,h,k,r,d){return t(),i("div",null,s[0]||(s[0]=[n(`

Getting Started

Installation

Install Julia v1.10 or above. YAXArrays.jl is available through the Julia package manager. You can enter it by pressing ] in the REPL and then typing

julia
pkg> add YAXArrays

Alternatively, you can also do

julia
import Pkg; Pkg.add("YAXArrays")

Quickstart

Create a simple array from random numbers given the size of each dimension or axis:

julia
using YAXArrays
 
 a = YAXArray(rand(2,3))
╭─────────────────────────╮
 │ 2×3 YAXArray{Float64,2} │
@@ -44,13 +44,13 @@ import{_ as a,c as i,a2 as n,o as t}from"./chunks/framework.DsPJznl_.js";const g
 ├─────────────────────────────────────────────────────────────────── file size ┤ 
   file size: 46.88 KB
 └──────────────────────────────────────────────────────────────────────────────┘

Get the temperature map at the first point in time:

julia
a2[variable=At("temperature"), time=1].data
10×15 view(::Array{Float64, 4}, 1, :, :, 1) with eltype Float64:
- 0.323718  0.642158  0.826147  0.345767   …  0.967799  0.555863   0.990195
- 0.220229  0.026899  0.815069  0.766402      0.162528  0.754065   0.0735199
- 0.702987  0.852771  0.930783  0.808801      0.844079  0.604165   0.880638
- 0.701337  0.344085  0.803436  0.0936418     0.556428  0.291416   0.81805
- 0.251903  0.627566  0.397237  0.207575      0.732383  0.18356    0.20244
- 0.506979  0.502413  0.656012  0.3594     …  0.280241  0.378478   0.149175
- 0.478229  0.392517  0.347398  0.929437      0.476681  0.259157   0.620262
- 0.379323  0.627428  0.436438  0.86309       0.843691  0.379751   0.250047
- 0.230661  0.854213  0.659839  0.654809      0.855416  0.0158282  0.0101602
- 0.994603  0.189296  0.340619  0.567633      0.663953  0.35393    0.794844

Updates

TIP

The Julia Compiler is always improving. As such, we recommend using the latest stable version of Julia.

You may check the installed version with:

julia
pkg> st YAXArrays

INFO

With YAXArrays.jl 0.5 we switched the underlying data type to be a subtype of the DimensionalData.jl types. Therefore the indexing with named dimensions changed to the DimensionalData syntax. See the DimensionalData.jl docs.

`,21)]))}const E=a(p,[["render",l]]);export{g as __pageData,E as default}; + 0.695428 0.282139 0.652365 … 0.777618 0.28866 0.0689529 + 0.974376 0.423084 0.526144 0.482169 0.758746 0.900078 + 0.0982191 0.959161 0.965556 0.966025 0.011153 0.539111 + 0.315291 0.567886 0.971143 0.363858 0.338157 0.599162 + 0.228198 0.156712 0.43967 0.0857272 0.716538 0.257035 + 0.294422 0.992659 0.0103313 … 0.430734 0.849854 0.111783 + 0.743371 0.953079 0.196104 0.551798 0.680375 0.937264 + 0.904908 0.291044 0.560174 0.133802 0.0713371 0.375066 + 0.762404 0.319642 0.121877 0.984036 0.733506 0.607992 + 0.238475 0.437609 0.418982 0.579101 0.755983 0.979778

Updates

TIP

The Julia Compiler is always improving. As such, we recommend using the latest stable version of Julia.

You may check the installed version with:

julia
pkg> st YAXArrays

INFO

With YAXArrays.jl 0.5 we switched the underlying data type to be a subtype of the DimensionalData.jl types. Therefore the indexing with named dimensions changed to the DimensionalData syntax. See the DimensionalData.jl docs.

`,21)]))}const E=a(p,[["render",l]]);export{g as __pageData,E as default}; diff --git a/previews/PR439/assets/btujvon.CBBZcGwj.png b/previews/PR439/assets/hpxlcxg.CBBZcGwj.png similarity index 100% rename from previews/PR439/assets/btujvon.CBBZcGwj.png rename to previews/PR439/assets/hpxlcxg.CBBZcGwj.png diff --git a/previews/PR439/assets/index.md.Bv3wVUT0.js b/previews/PR439/assets/index.md.gTZdB-M9.js similarity index 96% rename from previews/PR439/assets/index.md.Bv3wVUT0.js rename to previews/PR439/assets/index.md.gTZdB-M9.js index 533d64d2..479b4304 100644 --- a/previews/PR439/assets/index.md.Bv3wVUT0.js +++ b/previews/PR439/assets/index.md.gTZdB-M9.js @@ -1 +1 @@ -import{_ as e,c as t,o as a}from"./chunks/framework.DsPJznl_.js";const f=JSON.parse(`{"title":"","description":"","frontmatter":{"layout":"home","hero":{"name":"YAXArrays.jl","text":"Yet another xarray-like Julia package","tagline":"A package for operating on out-of-core labeled arrays, based on stores like NetCDF, Zarr or GDAL.","image":{"src":"/logo.png","alt":"VitePress"},"actions":[{"theme":"brand","text":"Get Started","link":"/get_started"},{"theme":"alt","text":"View on Github","link":"https://github.com/JuliaDataCubes/YAXArrays.jl"},{"theme":"alt","text":"API reference","link":"/api"}]},"features":[{"title":"Flexible I/O capabilities","details":"Open and operate on NetCDF and Zarr datasets directly. Or bring in data from other sources with ArchGDAL.jl, GRIBDatasets.jl, GeoJSON.jl, HDF5.jl, Shapefile.jl, GeoParquet.jl, etc.","link":"/UserGuide/read"},{"title":"Interoperability","details":"Well integrated with Julia's ecosystem, i.e., distributed operations are native. And plotting with Makie.jl is well supported."},{"title":"Named dimensions and GroupBy(in memory)","details":"Apply operations over named dimensions, select values by labels and integers as well as efficient split-apply-combine operations with groupby via DimensionalData.jl.","link":"/UserGuide/group"},{"title":"Efficiency","details":"Efficient mapslices(x) and mapCube operations on huge multiple arrays, optimized for high-latency data access (object storage, compressed datasets).","link":"/UserGuide/compute"}]},"headers":[],"relativePath":"index.md","filePath":"index.md","lastUpdated":null}`),o={name:"index.md"};function i(r,n,l,s,d,c){return a(),t("div")}const m=e(o,[["render",i]]);export{f as __pageData,m as default}; +import{_ as e,c as t,o as a}from"./chunks/framework.eQVMtpgY.js";const f=JSON.parse(`{"title":"","description":"","frontmatter":{"layout":"home","hero":{"name":"YAXArrays.jl","text":"Yet another xarray-like Julia package","tagline":"A package for operating on out-of-core labeled arrays, based on stores like NetCDF, Zarr or GDAL.","image":{"src":"/logo.png","alt":"VitePress"},"actions":[{"theme":"brand","text":"Get Started","link":"/get_started"},{"theme":"alt","text":"View on Github","link":"https://github.com/JuliaDataCubes/YAXArrays.jl"},{"theme":"alt","text":"API reference","link":"/api"}]},"features":[{"title":"Flexible I/O capabilities","details":"Open and operate on NetCDF and Zarr datasets directly. Or bring in data from other sources with ArchGDAL.jl, GRIBDatasets.jl, GeoJSON.jl, HDF5.jl, Shapefile.jl, GeoParquet.jl, etc.","link":"/UserGuide/read"},{"title":"Interoperability","details":"Well integrated with Julia's ecosystem, i.e., distributed operations are native. And plotting with Makie.jl is well supported."},{"title":"Named dimensions and GroupBy(in memory)","details":"Apply operations over named dimensions, select values by labels and integers as well as efficient split-apply-combine operations with groupby via DimensionalData.jl.","link":"/UserGuide/group"},{"title":"Efficiency","details":"Efficient mapslices(x) and mapCube operations on huge multiple arrays, optimized for high-latency data access (object storage, compressed datasets).","link":"/UserGuide/compute"}]},"headers":[],"relativePath":"index.md","filePath":"index.md","lastUpdated":null}`),o={name:"index.md"};function i(r,n,l,s,d,c){return a(),t("div")}const m=e(o,[["render",i]]);export{f as __pageData,m as default}; diff --git a/previews/PR439/assets/index.md.Bv3wVUT0.lean.js b/previews/PR439/assets/index.md.gTZdB-M9.lean.js similarity index 96% rename from previews/PR439/assets/index.md.Bv3wVUT0.lean.js rename to previews/PR439/assets/index.md.gTZdB-M9.lean.js index 533d64d2..479b4304 100644 --- a/previews/PR439/assets/index.md.Bv3wVUT0.lean.js +++ b/previews/PR439/assets/index.md.gTZdB-M9.lean.js @@ -1 +1 @@ -import{_ as e,c as t,o as a}from"./chunks/framework.DsPJznl_.js";const f=JSON.parse(`{"title":"","description":"","frontmatter":{"layout":"home","hero":{"name":"YAXArrays.jl","text":"Yet another xarray-like Julia package","tagline":"A package for operating on out-of-core labeled arrays, based on stores like NetCDF, Zarr or GDAL.","image":{"src":"/logo.png","alt":"VitePress"},"actions":[{"theme":"brand","text":"Get Started","link":"/get_started"},{"theme":"alt","text":"View on Github","link":"https://github.com/JuliaDataCubes/YAXArrays.jl"},{"theme":"alt","text":"API reference","link":"/api"}]},"features":[{"title":"Flexible I/O capabilities","details":"Open and operate on NetCDF and Zarr datasets directly. Or bring in data from other sources with ArchGDAL.jl, GRIBDatasets.jl, GeoJSON.jl, HDF5.jl, Shapefile.jl, GeoParquet.jl, etc.","link":"/UserGuide/read"},{"title":"Interoperability","details":"Well integrated with Julia's ecosystem, i.e., distributed operations are native. And plotting with Makie.jl is well supported."},{"title":"Named dimensions and GroupBy(in memory)","details":"Apply operations over named dimensions, select values by labels and integers as well as efficient split-apply-combine operations with groupby via DimensionalData.jl.","link":"/UserGuide/group"},{"title":"Efficiency","details":"Efficient mapslices(x) and mapCube operations on huge multiple arrays, optimized for high-latency data access (object storage, compressed datasets).","link":"/UserGuide/compute"}]},"headers":[],"relativePath":"index.md","filePath":"index.md","lastUpdated":null}`),o={name:"index.md"};function i(r,n,l,s,d,c){return a(),t("div")}const m=e(o,[["render",i]]);export{f as __pageData,m as default}; +import{_ as e,c as t,o as a}from"./chunks/framework.eQVMtpgY.js";const f=JSON.parse(`{"title":"","description":"","frontmatter":{"layout":"home","hero":{"name":"YAXArrays.jl","text":"Yet another xarray-like Julia package","tagline":"A package for operating on out-of-core labeled arrays, based on stores like NetCDF, Zarr or GDAL.","image":{"src":"/logo.png","alt":"VitePress"},"actions":[{"theme":"brand","text":"Get Started","link":"/get_started"},{"theme":"alt","text":"View on Github","link":"https://github.com/JuliaDataCubes/YAXArrays.jl"},{"theme":"alt","text":"API reference","link":"/api"}]},"features":[{"title":"Flexible I/O capabilities","details":"Open and operate on NetCDF and Zarr datasets directly. Or bring in data from other sources with ArchGDAL.jl, GRIBDatasets.jl, GeoJSON.jl, HDF5.jl, Shapefile.jl, GeoParquet.jl, etc.","link":"/UserGuide/read"},{"title":"Interoperability","details":"Well integrated with Julia's ecosystem, i.e., distributed operations are native. And plotting with Makie.jl is well supported."},{"title":"Named dimensions and GroupBy(in memory)","details":"Apply operations over named dimensions, select values by labels and integers as well as efficient split-apply-combine operations with groupby via DimensionalData.jl.","link":"/UserGuide/group"},{"title":"Efficiency","details":"Efficient mapslices(x) and mapCube operations on huge multiple arrays, optimized for high-latency data access (object storage, compressed datasets).","link":"/UserGuide/compute"}]},"headers":[],"relativePath":"index.md","filePath":"index.md","lastUpdated":null}`),o={name:"index.md"};function i(r,n,l,s,d,c){return a(),t("div")}const m=e(o,[["render",i]]);export{f as __pageData,m as default}; diff --git a/previews/PR439/assets/jdozwjp.BvrJM6At.png b/previews/PR439/assets/jdozwjp.BvrJM6At.png new file mode 100644 index 0000000000000000000000000000000000000000..f8407840daeeebfe5aba0599203222360844496b GIT binary patch literal 80145 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
~tDDXk7#tcN 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%0AQz7<1-ujvk;*6{lCnwVfuz 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 ZD(CQK{mlYq6Dj`x&;R^A!2I6wzW_@zTxtLS literal 0 HcmV?d00001 diff --git a/previews/PR439/assets/tmxiuji.DubXWmj2.jpeg b/previews/PR439/assets/tmxiuji.DubXWmj2.jpeg deleted file mode 100644 index cd47d9caa3113fc07f5495edc1261da912f5ea23..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 37905 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
julia
using CairoMakie
+import{_ as i,c as a,a2 as n,o as h}from"./chunks/framework.eQVMtpgY.js";const l="/YAXArrays.jl/previews/PR439/assets/jdozwjp.BvrJM6At.png",k="/YAXArrays.jl/previews/PR439/assets/epkiuye.kSio4V24.png",c=JSON.parse('{"title":"Mean Seasonal Cycle for a single pixel","description":"","frontmatter":{},"headers":[],"relativePath":"tutorials/mean_seasonal_cycle.md","filePath":"tutorials/mean_seasonal_cycle.md","lastUpdated":null}'),p={name:"tutorials/mean_seasonal_cycle.md"};function t(e,s,E,d,r,g){return h(),a("div",null,s[0]||(s[0]=[n(`

Mean Seasonal Cycle for a single pixel

julia
using CairoMakie
 CairoMakie.activate!()
 using Dates
 using Statistics

We define the data span. For simplicity, three non-leap years were selected.

julia
t =  Date("2021-01-01"):Day(1):Date("2023-12-31")
@@ -37,26 +37,26 @@ import{_ as i,c as a,a2 as n,o as h}from"./chunks/framework.DsPJznl_.js";const l
 end
 
 msc = mean_seasonal_cycle(c);
365×1 Matrix{Float64}:
- -0.010599650263461291
-  0.016861627371078585
-  0.02476075259795259
-  0.08901859058714479
-  0.18377130350197302
-  0.12436224777191839
-  0.198342210915642
-  0.14133553323232134
-  0.10995536299007104
-  0.19274071078555954
+  0.040526623795688374
+ -0.07275599751751732
+  0.04080351822051476
+  0.0295015227104298
+  0.008834246776204854
+  0.06243503155809218
+  0.1150399051804945
+  0.038315328375180986
+  0.1871713142406989
+  0.15937678223176033
 
- -0.13343247127168564
- -0.08817673905511103
- -0.10309078031467937
-  0.0277956887000952
- -0.10646417542589198
- -0.03973148385823724
- -0.020514608916575052
-  0.013209602475927312
- -0.0822811869251565

TODO: Apply the new groupby funtion from DD

Plot results: mean seasonal cycle

julia
fig, ax, obj = lines(1:365, var[1:365]; label="2021", color=:black,
+ -0.1996511651172422
+ -0.08087830435264516
+ -0.03460295994703177
+ -0.0482229805286965
+  0.06478346429191269
+  0.034346591598340526
+ -0.07352572033535747
+  0.04096655445135466
+  0.01090464377842514

TODO: Apply the new groupby funtion from DD

Plot results: mean seasonal cycle

julia
fig, ax, obj = lines(1:365, var[1:365]; label="2021", color=:black,
     linewidth=2.0, linestyle=:dot,
     axis = (;  xlabel="Day of Year", ylabel="Variable"),
     figure=(; size = (600,400))
diff --git a/previews/PR439/assets/tutorials_mean_seasonal_cycle.md.ugsuHDM5.lean.js b/previews/PR439/assets/tutorials_mean_seasonal_cycle.md.q3id7hWF.lean.js
similarity index 89%
rename from previews/PR439/assets/tutorials_mean_seasonal_cycle.md.ugsuHDM5.lean.js
rename to previews/PR439/assets/tutorials_mean_seasonal_cycle.md.q3id7hWF.lean.js
index a1af5537..90935200 100644
--- a/previews/PR439/assets/tutorials_mean_seasonal_cycle.md.ugsuHDM5.lean.js
+++ b/previews/PR439/assets/tutorials_mean_seasonal_cycle.md.q3id7hWF.lean.js
@@ -1,4 +1,4 @@
-import{_ as i,c as a,a2 as n,o as h}from"./chunks/framework.DsPJznl_.js";const l="/YAXArrays.jl/previews/PR439/assets/cxbndsy.CnxSdCFY.png",k="/YAXArrays.jl/previews/PR439/assets/vamhvpz.sL5mDvRX.png",c=JSON.parse('{"title":"Mean Seasonal Cycle for a single pixel","description":"","frontmatter":{},"headers":[],"relativePath":"tutorials/mean_seasonal_cycle.md","filePath":"tutorials/mean_seasonal_cycle.md","lastUpdated":null}'),p={name:"tutorials/mean_seasonal_cycle.md"};function t(e,s,E,d,r,g){return h(),a("div",null,s[0]||(s[0]=[n(`

Mean Seasonal Cycle for a single pixel

julia
using CairoMakie
+import{_ as i,c as a,a2 as n,o as h}from"./chunks/framework.eQVMtpgY.js";const l="/YAXArrays.jl/previews/PR439/assets/jdozwjp.BvrJM6At.png",k="/YAXArrays.jl/previews/PR439/assets/epkiuye.kSio4V24.png",c=JSON.parse('{"title":"Mean Seasonal Cycle for a single pixel","description":"","frontmatter":{},"headers":[],"relativePath":"tutorials/mean_seasonal_cycle.md","filePath":"tutorials/mean_seasonal_cycle.md","lastUpdated":null}'),p={name:"tutorials/mean_seasonal_cycle.md"};function t(e,s,E,d,r,g){return h(),a("div",null,s[0]||(s[0]=[n(`

Mean Seasonal Cycle for a single pixel

julia
using CairoMakie
 CairoMakie.activate!()
 using Dates
 using Statistics

We define the data span. For simplicity, three non-leap years were selected.

julia
t =  Date("2021-01-01"):Day(1):Date("2023-12-31")
@@ -37,26 +37,26 @@ import{_ as i,c as a,a2 as n,o as h}from"./chunks/framework.DsPJznl_.js";const l
 end
 
 msc = mean_seasonal_cycle(c);
365×1 Matrix{Float64}:
- -0.010599650263461291
-  0.016861627371078585
-  0.02476075259795259
-  0.08901859058714479
-  0.18377130350197302
-  0.12436224777191839
-  0.198342210915642
-  0.14133553323232134
-  0.10995536299007104
-  0.19274071078555954
+  0.040526623795688374
+ -0.07275599751751732
+  0.04080351822051476
+  0.0295015227104298
+  0.008834246776204854
+  0.06243503155809218
+  0.1150399051804945
+  0.038315328375180986
+  0.1871713142406989
+  0.15937678223176033
 
- -0.13343247127168564
- -0.08817673905511103
- -0.10309078031467937
-  0.0277956887000952
- -0.10646417542589198
- -0.03973148385823724
- -0.020514608916575052
-  0.013209602475927312
- -0.0822811869251565

TODO: Apply the new groupby funtion from DD

Plot results: mean seasonal cycle

julia
fig, ax, obj = lines(1:365, var[1:365]; label="2021", color=:black,
+ -0.1996511651172422
+ -0.08087830435264516
+ -0.03460295994703177
+ -0.0482229805286965
+  0.06478346429191269
+  0.034346591598340526
+ -0.07352572033535747
+  0.04096655445135466
+  0.01090464377842514

TODO: Apply the new groupby funtion from DD

Plot results: mean seasonal cycle

julia
fig, ax, obj = lines(1:365, var[1:365]; label="2021", color=:black,
     linewidth=2.0, linestyle=:dot,
     axis = (;  xlabel="Day of Year", ylabel="Variable"),
     figure=(; size = (600,400))
diff --git a/previews/PR439/assets/tutorials_other_tutorials.md.CPP_YMH6.js b/previews/PR439/assets/tutorials_other_tutorials.md.CKEvpyL5.js
similarity index 97%
rename from previews/PR439/assets/tutorials_other_tutorials.md.CPP_YMH6.js
rename to previews/PR439/assets/tutorials_other_tutorials.md.CKEvpyL5.js
index c8a03783..cc47a018 100644
--- a/previews/PR439/assets/tutorials_other_tutorials.md.CPP_YMH6.js
+++ b/previews/PR439/assets/tutorials_other_tutorials.md.CKEvpyL5.js
@@ -1 +1 @@
-import{_ as t,c as a,a2 as r,o}from"./chunks/framework.DsPJznl_.js";const c=JSON.parse('{"title":"Other tutorials","description":"","frontmatter":{},"headers":[],"relativePath":"tutorials/other_tutorials.md","filePath":"tutorials/other_tutorials.md","lastUpdated":null}'),i={name:"tutorials/other_tutorials.md"};function l(s,e,n,h,u,f){return o(),a("div",null,e[0]||(e[0]=[r('

Other tutorials

If you are interested in learning how to work with YAXArrays for different use cases you can follow along one of the following tutorials.

  • Currently the overview tutorial is located at ESDLTutorials Repository

  • You can find further tutorial videos at the EO College. Beware that the syntax in the video tutorials might be slightly changed.

  • the other tutorials are still work in progress.

General overview of the functionality of YAXArrays

This tutorial provides a broad overview about the features of YAXArrays.

Table-style iteration over YAXArrays

Work in progress

Sometimes you want to combine the data that is represented in the data cube with other datasets, which are best described as a data frame. In this tutorial you will learn how to use the Tables.jl interface to iterate over the data in the YAXArray.

Combining multiple tiff files into a zarr based datacube

',9)]))}const b=t(i,[["render",l]]);export{c as __pageData,b as default}; +import{_ as t,c as a,a2 as r,o}from"./chunks/framework.eQVMtpgY.js";const c=JSON.parse('{"title":"Other tutorials","description":"","frontmatter":{},"headers":[],"relativePath":"tutorials/other_tutorials.md","filePath":"tutorials/other_tutorials.md","lastUpdated":null}'),i={name:"tutorials/other_tutorials.md"};function l(s,e,n,h,u,f){return o(),a("div",null,e[0]||(e[0]=[r('

Other tutorials

If you are interested in learning how to work with YAXArrays for different use cases you can follow along one of the following tutorials.

  • Currently the overview tutorial is located at ESDLTutorials Repository

  • You can find further tutorial videos at the EO College. Beware that the syntax in the video tutorials might be slightly changed.

  • the other tutorials are still work in progress.

General overview of the functionality of YAXArrays

This tutorial provides a broad overview about the features of YAXArrays.

Table-style iteration over YAXArrays

Work in progress

Sometimes you want to combine the data that is represented in the data cube with other datasets, which are best described as a data frame. In this tutorial you will learn how to use the Tables.jl interface to iterate over the data in the YAXArray.

Combining multiple tiff files into a zarr based datacube

',9)]))}const b=t(i,[["render",l]]);export{c as __pageData,b as default}; diff --git a/previews/PR439/assets/tutorials_other_tutorials.md.CPP_YMH6.lean.js b/previews/PR439/assets/tutorials_other_tutorials.md.CKEvpyL5.lean.js similarity index 97% rename from previews/PR439/assets/tutorials_other_tutorials.md.CPP_YMH6.lean.js rename to previews/PR439/assets/tutorials_other_tutorials.md.CKEvpyL5.lean.js index c8a03783..cc47a018 100644 --- a/previews/PR439/assets/tutorials_other_tutorials.md.CPP_YMH6.lean.js +++ b/previews/PR439/assets/tutorials_other_tutorials.md.CKEvpyL5.lean.js @@ -1 +1 @@ -import{_ as t,c as a,a2 as r,o}from"./chunks/framework.DsPJznl_.js";const c=JSON.parse('{"title":"Other tutorials","description":"","frontmatter":{},"headers":[],"relativePath":"tutorials/other_tutorials.md","filePath":"tutorials/other_tutorials.md","lastUpdated":null}'),i={name:"tutorials/other_tutorials.md"};function l(s,e,n,h,u,f){return o(),a("div",null,e[0]||(e[0]=[r('

Other tutorials

If you are interested in learning how to work with YAXArrays for different use cases you can follow along one of the following tutorials.

  • Currently the overview tutorial is located at ESDLTutorials Repository

  • You can find further tutorial videos at the EO College. Beware that the syntax in the video tutorials might be slightly changed.

  • the other tutorials are still work in progress.

General overview of the functionality of YAXArrays

This tutorial provides a broad overview about the features of YAXArrays.

Table-style iteration over YAXArrays

Work in progress

Sometimes you want to combine the data that is represented in the data cube with other datasets, which are best described as a data frame. In this tutorial you will learn how to use the Tables.jl interface to iterate over the data in the YAXArray.

Combining multiple tiff files into a zarr based datacube

',9)]))}const b=t(i,[["render",l]]);export{c as __pageData,b as default}; +import{_ as t,c as a,a2 as r,o}from"./chunks/framework.eQVMtpgY.js";const c=JSON.parse('{"title":"Other tutorials","description":"","frontmatter":{},"headers":[],"relativePath":"tutorials/other_tutorials.md","filePath":"tutorials/other_tutorials.md","lastUpdated":null}'),i={name:"tutorials/other_tutorials.md"};function l(s,e,n,h,u,f){return o(),a("div",null,e[0]||(e[0]=[r('

Other tutorials

If you are interested in learning how to work with YAXArrays for different use cases you can follow along one of the following tutorials.

  • Currently the overview tutorial is located at ESDLTutorials Repository

  • You can find further tutorial videos at the EO College. Beware that the syntax in the video tutorials might be slightly changed.

  • the other tutorials are still work in progress.

General overview of the functionality of YAXArrays

This tutorial provides a broad overview about the features of YAXArrays.

Table-style iteration over YAXArrays

Work in progress

Sometimes you want to combine the data that is represented in the data cube with other datasets, which are best described as a data frame. In this tutorial you will learn how to use the Tables.jl interface to iterate over the data in the YAXArray.

Combining multiple tiff files into a zarr based datacube

',9)]))}const b=t(i,[["render",l]]);export{c as __pageData,b as default}; diff --git a/previews/PR439/assets/tutorials_plottingmaps.md.PPBYZybh.js b/previews/PR439/assets/tutorials_plottingmaps.md.CWNQRTL8.js similarity index 99% rename from previews/PR439/assets/tutorials_plottingmaps.md.PPBYZybh.js rename to previews/PR439/assets/tutorials_plottingmaps.md.CWNQRTL8.js index 5aebe8da..b3f2c4ff 100644 --- a/previews/PR439/assets/tutorials_plottingmaps.md.PPBYZybh.js +++ b/previews/PR439/assets/tutorials_plottingmaps.md.CWNQRTL8.js @@ -1,4 +1,4 @@ -import{_ as i,c as a,a2 as h,o as n}from"./chunks/framework.DsPJznl_.js";const t="/YAXArrays.jl/previews/PR439/assets/mlaobzm.xrZxBsPv.jpeg",k="/YAXArrays.jl/previews/PR439/assets/hqxthcy.B7KFIfDV.jpeg",l="/YAXArrays.jl/previews/PR439/assets/bgdwfly.96k_BqPR.jpeg",F=JSON.parse('{"title":"Plotting maps","description":"","frontmatter":{},"headers":[],"relativePath":"tutorials/plottingmaps.md","filePath":"tutorials/plottingmaps.md","lastUpdated":null}'),p={name:"tutorials/plottingmaps.md"};function e(E,s,r,d,g,y){return n(),a("div",null,s[0]||(s[0]=[h(`

Plotting maps

As test data we use the CMIP6 Scenarios.

julia
using Zarr, YAXArrays, Dates
+import{_ as i,c as a,a2 as h,o as n}from"./chunks/framework.eQVMtpgY.js";const t="/YAXArrays.jl/previews/PR439/assets/zdgwzhg.xrZxBsPv.jpeg",k="/YAXArrays.jl/previews/PR439/assets/dytjtkd.B7KFIfDV.jpeg",l="/YAXArrays.jl/previews/PR439/assets/znvbflt.96k_BqPR.jpeg",F=JSON.parse('{"title":"Plotting maps","description":"","frontmatter":{},"headers":[],"relativePath":"tutorials/plottingmaps.md","filePath":"tutorials/plottingmaps.md","lastUpdated":null}'),p={name:"tutorials/plottingmaps.md"};function e(E,s,r,d,g,y){return n(),a("div",null,s[0]||(s[0]=[h(`

Plotting maps

As test data we use the CMIP6 Scenarios.

julia
using Zarr, YAXArrays, Dates
 using DimensionalData
 using GLMakie, GeoMakie
 using GLMakie.GeometryBasics
diff --git a/previews/PR439/assets/tutorials_plottingmaps.md.PPBYZybh.lean.js b/previews/PR439/assets/tutorials_plottingmaps.md.CWNQRTL8.lean.js
similarity index 99%
rename from previews/PR439/assets/tutorials_plottingmaps.md.PPBYZybh.lean.js
rename to previews/PR439/assets/tutorials_plottingmaps.md.CWNQRTL8.lean.js
index 5aebe8da..b3f2c4ff 100644
--- a/previews/PR439/assets/tutorials_plottingmaps.md.PPBYZybh.lean.js
+++ b/previews/PR439/assets/tutorials_plottingmaps.md.CWNQRTL8.lean.js
@@ -1,4 +1,4 @@
-import{_ as i,c as a,a2 as h,o as n}from"./chunks/framework.DsPJznl_.js";const t="/YAXArrays.jl/previews/PR439/assets/mlaobzm.xrZxBsPv.jpeg",k="/YAXArrays.jl/previews/PR439/assets/hqxthcy.B7KFIfDV.jpeg",l="/YAXArrays.jl/previews/PR439/assets/bgdwfly.96k_BqPR.jpeg",F=JSON.parse('{"title":"Plotting maps","description":"","frontmatter":{},"headers":[],"relativePath":"tutorials/plottingmaps.md","filePath":"tutorials/plottingmaps.md","lastUpdated":null}'),p={name:"tutorials/plottingmaps.md"};function e(E,s,r,d,g,y){return n(),a("div",null,s[0]||(s[0]=[h(`

Plotting maps

As test data we use the CMIP6 Scenarios.

julia
using Zarr, YAXArrays, Dates
+import{_ as i,c as a,a2 as h,o as n}from"./chunks/framework.eQVMtpgY.js";const t="/YAXArrays.jl/previews/PR439/assets/zdgwzhg.xrZxBsPv.jpeg",k="/YAXArrays.jl/previews/PR439/assets/dytjtkd.B7KFIfDV.jpeg",l="/YAXArrays.jl/previews/PR439/assets/znvbflt.96k_BqPR.jpeg",F=JSON.parse('{"title":"Plotting maps","description":"","frontmatter":{},"headers":[],"relativePath":"tutorials/plottingmaps.md","filePath":"tutorials/plottingmaps.md","lastUpdated":null}'),p={name:"tutorials/plottingmaps.md"};function e(E,s,r,d,g,y){return n(),a("div",null,s[0]||(s[0]=[h(`

Plotting maps

As test data we use the CMIP6 Scenarios.

julia
using Zarr, YAXArrays, Dates
 using DimensionalData
 using GLMakie, GeoMakie
 using GLMakie.GeometryBasics
diff --git a/previews/PR439/assets/vamhvpz.sL5mDvRX.png b/previews/PR439/assets/vamhvpz.sL5mDvRX.png
deleted file mode 100644
index f8c80323411557c76af6dbffdc01563db97ad7da..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 108115
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

EexE{Q{dhi}ub*#-1$%$QQN?=`iVIugXb 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 Klyn)RoBstoTd^Vl diff --git a/previews/PR439/assets/mlaobzm.xrZxBsPv.jpeg b/previews/PR439/assets/zdgwzhg.xrZxBsPv.jpeg similarity index 100% rename from previews/PR439/assets/mlaobzm.xrZxBsPv.jpeg rename to previews/PR439/assets/zdgwzhg.xrZxBsPv.jpeg diff --git a/previews/PR439/assets/bgdwfly.96k_BqPR.jpeg b/previews/PR439/assets/znvbflt.96k_BqPR.jpeg similarity index 100% rename from previews/PR439/assets/bgdwfly.96k_BqPR.jpeg rename to previews/PR439/assets/znvbflt.96k_BqPR.jpeg diff --git a/previews/PR439/development/contribute.html b/previews/PR439/development/contribute.html index 4ad2821a..ecad3276 100644 --- a/previews/PR439/development/contribute.html +++ b/previews/PR439/development/contribute.html @@ -8,11 +8,11 @@ - + - - - + + + @@ -23,7 +23,7 @@
Skip to content

Contribute to YAXArrays.jl

Pull requests and bug reports are always welcome at the YAXArrays.jl GitHub repository.

Contribute to Documentation

Contributing with examples can be done by first creating a new file example here

new file

  • your_new_file.md at docs/src/UserGuide/

Once this is done you need to add a new entry here at the appropriate level.

add entry to docs

Your new entry should look like:

  • { text: 'Your title example', link: '/UserGuide/your_new_file.md' }

Build docs locally

If you want to take a look at the docs locally before doing a PR follow the next steps:

Install the dependencies in your system, locate yourself at the docs level folder, then do

sh
npm i

Then simply go to your docs env and activate it, i.e.

sh
docs> julia
 julia> ]
 pkg> activate .

Next, run the scripts. Generate files and build docs by running:

sh
include("make.jl")

Now go to your terminal in the same path docs> and run:

sh
npm run docs:dev

This should ouput http://localhost:5173/YAXArrays.jl/, copy/paste this into your browser and you are all set.

- + \ No newline at end of file diff --git a/previews/PR439/development/contributors.html b/previews/PR439/development/contributors.html index 63468864..2d039e4b 100644 --- a/previews/PR439/development/contributors.html +++ b/previews/PR439/development/contributors.html @@ -8,11 +8,11 @@ - + - - - + + + @@ -21,7 +21,7 @@
Skip to content

Contributors

Current core contributors

They have taking the lead for the ongoing organizational maintenance and technical direction of , and .

Fabian Gans

Fabian Gans

Geoscientific Programmer

Felix Cremer

Felix Cremer

PhD Candidate in Remote Sensing

Rafael Schouten

Rafael Schouten

Spatial/ecological modelling

Lazaro Alonso

Lazaro Alonso

Scientist. Data Visualization

Our valuable contributors

We appreciate all contributions from the Julia community so that this ecosystem can thrive.

- + \ No newline at end of file diff --git a/previews/PR439/get_started.html b/previews/PR439/get_started.html index 946fadda..54ae0a83 100644 --- a/previews/PR439/get_started.html +++ b/previews/PR439/get_started.html @@ -8,11 +8,11 @@ - + - - - + + + @@ -66,17 +66,17 @@ ├─────────────────────────────────────────────────────────────────── file size ┤ file size: 46.88 KB └──────────────────────────────────────────────────────────────────────────────┘

Get the temperature map at the first point in time:

julia
a2[variable=At("temperature"), time=1].data
10×15 view(::Array{Float64, 4}, 1, :, :, 1) with eltype Float64:
- 0.323718  0.642158  0.826147  0.345767   …  0.967799  0.555863   0.990195
- 0.220229  0.026899  0.815069  0.766402      0.162528  0.754065   0.0735199
- 0.702987  0.852771  0.930783  0.808801      0.844079  0.604165   0.880638
- 0.701337  0.344085  0.803436  0.0936418     0.556428  0.291416   0.81805
- 0.251903  0.627566  0.397237  0.207575      0.732383  0.18356    0.20244
- 0.506979  0.502413  0.656012  0.3594     …  0.280241  0.378478   0.149175
- 0.478229  0.392517  0.347398  0.929437      0.476681  0.259157   0.620262
- 0.379323  0.627428  0.436438  0.86309       0.843691  0.379751   0.250047
- 0.230661  0.854213  0.659839  0.654809      0.855416  0.0158282  0.0101602
- 0.994603  0.189296  0.340619  0.567633      0.663953  0.35393    0.794844

Updates

TIP

The Julia Compiler is always improving. As such, we recommend using the latest stable version of Julia.

You may check the installed version with:

julia
pkg> st YAXArrays

INFO

With YAXArrays.jl 0.5 we switched the underlying data type to be a subtype of the DimensionalData.jl types. Therefore the indexing with named dimensions changed to the DimensionalData syntax. See the DimensionalData.jl docs.

Kuc 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 Seasonal Cycle for a single pixel

- + 0.695428 0.282139 0.652365 … 0.777618 0.28866 0.0689529 + 0.974376 0.423084 0.526144 0.482169 0.758746 0.900078 + 0.0982191 0.959161 0.965556 0.966025 0.011153 0.539111 + 0.315291 0.567886 0.971143 0.363858 0.338157 0.599162 + 0.228198 0.156712 0.43967 0.0857272 0.716538 0.257035 + 0.294422 0.992659 0.0103313 … 0.430734 0.849854 0.111783 + 0.743371 0.953079 0.196104 0.551798 0.680375 0.937264 + 0.904908 0.291044 0.560174 0.133802 0.0713371 0.375066 + 0.762404 0.319642 0.121877 0.984036 0.733506 0.607992 + 0.238475 0.437609 0.418982 0.579101 0.755983 0.979778

Updates

TIP

The Julia Compiler is always improving. As such, we recommend using the latest stable version of Julia.

You may check the installed version with:

julia
pkg> st YAXArrays

INFO

With YAXArrays.jl 0.5 we switched the underlying data type to be a subtype of the DimensionalData.jl types. Therefore the indexing with named dimensions changed to the DimensionalData syntax. See the DimensionalData.jl docs.

+ \ No newline at end of file diff --git a/previews/PR439/hashmap.json b/previews/PR439/hashmap.json index 6feebb1f..22434a51 100644 --- a/previews/PR439/hashmap.json +++ b/previews/PR439/hashmap.json @@ -1 +1 @@ -{"api.md":"Dly8rYKd","development_contribute.md":"BWwOAw2T","development_contributors.md":"CoMZNRUw","get_started.md":"sZZBtLM3","index.md":"Bv3wVUT0","tutorials_mean_seasonal_cycle.md":"ugsuHDM5","tutorials_other_tutorials.md":"CPP_YMH6","tutorials_plottingmaps.md":"PPBYZybh","userguide_cache.md":"DrZNdhY2","userguide_chunk.md":"CVYnaEEy","userguide_combine.md":"CaPMEqhA","userguide_compute.md":"BGU8kcLm","userguide_convert.md":"CNBOJiLd","userguide_create.md":"gFPkFgUd","userguide_faq.md":"BP6xwZhs","userguide_group.md":"DSkdS4D2","userguide_read.md":"BJ8u47O-","userguide_select.md":"tLX-52T8","userguide_types.md":"I2GRauaH","userguide_write.md":"DZ48Cyo7"} +{"api.md":"CuxAjYWA","development_contribute.md":"BseKsFbx","development_contributors.md":"DWwIsxSc","get_started.md":"Dq5Ai7fh","index.md":"gTZdB-M9","tutorials_mean_seasonal_cycle.md":"q3id7hWF","tutorials_other_tutorials.md":"CKEvpyL5","tutorials_plottingmaps.md":"CWNQRTL8","userguide_cache.md":"CUC71_fe","userguide_chunk.md":"CX6Cn7I-","userguide_combine.md":"CTZVFaD9","userguide_compute.md":"B6Xntqw3","userguide_convert.md":"nKMCMtPl","userguide_create.md":"BK-99Q8y","userguide_faq.md":"CV4pRDSp","userguide_group.md":"DtC221VH","userguide_read.md":"DhrhYHR5","userguide_select.md":"C6wPH9uR","userguide_types.md":"CxTnMviM","userguide_write.md":"CKTq8NKF"} diff --git a/previews/PR439/index.html b/previews/PR439/index.html index 9ed88316..59f4707d 100644 --- a/previews/PR439/index.html +++ b/previews/PR439/index.html @@ -8,11 +8,11 @@ - + - - - + + + @@ -21,7 +21,7 @@ - + \ No newline at end of file diff --git a/previews/PR439/tutorials/mean_seasonal_cycle.html b/previews/PR439/tutorials/mean_seasonal_cycle.html index 4e10cf41..00a982df 100644 --- a/previews/PR439/tutorials/mean_seasonal_cycle.html +++ b/previews/PR439/tutorials/mean_seasonal_cycle.html @@ -8,11 +8,11 @@ - + - - - + + + @@ -31,7 +31,7 @@ ) ax.xticklabelrotation = π / 4 ax.xticklabelalign = (:right, :center) -fig

Define the cube

julia
julia> using YAXArrays, DimensionalData
+fig

Define the cube

julia
julia> using YAXArrays, DimensionalData
 
 julia> axes = (Dim{:Time}(t),)
(Time Date("2021-01-01"):Dates.Day(1):Date("2023-12-31"))
julia
julia> c = YAXArray(axes, var)
╭──────────────────────────────────╮
 1095-element YAXArray{Float64,1}
@@ -59,26 +59,26 @@
 end
 
 msc = mean_seasonal_cycle(c);
365×1 Matrix{Float64}:
- -0.010599650263461291
-  0.016861627371078585
-  0.02476075259795259
-  0.08901859058714479
-  0.18377130350197302
-  0.12436224777191839
-  0.198342210915642
-  0.14133553323232134
-  0.10995536299007104
-  0.19274071078555954
+  0.040526623795688374
+ -0.07275599751751732
+  0.04080351822051476
+  0.0295015227104298
+  0.008834246776204854
+  0.06243503155809218
+  0.1150399051804945
+  0.038315328375180986
+  0.1871713142406989
+  0.15937678223176033
 
- -0.13343247127168564
- -0.08817673905511103
- -0.10309078031467937
-  0.0277956887000952
- -0.10646417542589198
- -0.03973148385823724
- -0.020514608916575052
-  0.013209602475927312
- -0.0822811869251565

TODO: Apply the new groupby funtion from DD

Plot results: mean seasonal cycle

julia
fig, ax, obj = lines(1:365, var[1:365]; label="2021", color=:black,
+ -0.1996511651172422
+ -0.08087830435264516
+ -0.03460295994703177
+ -0.0482229805286965
+  0.06478346429191269
+  0.034346591598340526
+ -0.07352572033535747
+  0.04096655445135466
+  0.01090464377842514

TODO: Apply the new groupby funtion from DD

Plot results: mean seasonal cycle

julia
fig, ax, obj = lines(1:365, var[1:365]; label="2021", color=:black,
     linewidth=2.0, linestyle=:dot,
     axis = (;  xlabel="Day of Year", ylabel="Variable"),
     figure=(; size = (600,400))
@@ -91,8 +91,8 @@
 ax.xticklabelrotation = π / 4
 ax.xticklabelalign = (:right, :center)
 fig
-current_figure()

- +current_figure()

+ \ No newline at end of file diff --git a/previews/PR439/tutorials/other_tutorials.html b/previews/PR439/tutorials/other_tutorials.html index 2737ea06..b4b58d47 100644 --- a/previews/PR439/tutorials/other_tutorials.html +++ b/previews/PR439/tutorials/other_tutorials.html @@ -8,11 +8,11 @@ - + - - - + + + @@ -21,7 +21,7 @@
Skip to content

Other tutorials

If you are interested in learning how to work with YAXArrays for different use cases you can follow along one of the following tutorials.

  • Currently the overview tutorial is located at ESDLTutorials Repository

  • You can find further tutorial videos at the EO College. Beware that the syntax in the video tutorials might be slightly changed.

  • the other tutorials are still work in progress.

General overview of the functionality of YAXArrays

This tutorial provides a broad overview about the features of YAXArrays.

Table-style iteration over YAXArrays

Work in progress

Sometimes you want to combine the data that is represented in the data cube with other datasets, which are best described as a data frame. In this tutorial you will learn how to use the Tables.jl interface to iterate over the data in the YAXArray.

Combining multiple tiff files into a zarr based datacube

- + \ No newline at end of file diff --git a/previews/PR439/tutorials/plottingmaps.html b/previews/PR439/tutorials/plottingmaps.html index 3318552f..c741d9e7 100644 --- a/previews/PR439/tutorials/plottingmaps.html +++ b/previews/PR439/tutorials/plottingmaps.html @@ -8,11 +8,11 @@ - + - - - + + + @@ -46,19 +46,19 @@ fig, ax, plt = heatmap(ct1_slice; colormap = :seaborn_icefire_gradient, axis = (; aspect=DataAspect()), figure = (; size = (1200,600), fontsize=24)) -fig

Wintri Projection

Some transformations

julia
δlon = (lon[2]-lon[1])/2
+fig

Wintri Projection

Some transformations

julia
δlon = (lon[2]-lon[1])/2
 nlon = lon .- 180 .+ δlon
 ndata = circshift(data, (192,1))

and add Coastlines with GeoMakie.coastlines(),

julia
fig = Figure(;size=(1200,600))
 ax = GeoAxis(fig[1,1])
 surface!(ax, nlon, lat, ndata; colormap = :seaborn_icefire_gradient, shading=false)
 cl=lines!(ax, GeoMakie.coastlines(), color = :white, linewidth=0.85)
 translate!(cl, 0, 0, 1000)
-fig

Moll projection

julia
fig = Figure(; size=(1200,600))
+fig

Moll projection

julia
fig = Figure(; size=(1200,600))
 ax = GeoAxis(fig[1,1]; dest = "+proj=moll")
 surface!(ax, nlon, lat, ndata; colormap = :seaborn_icefire_gradient, shading=false)
 cl=lines!(ax, GeoMakie.coastlines(), color = :white, linewidth=0.85)
 translate!(cl, 0, 0, 1000)
-fig

3D sphere plot

julia
using Bonito, WGLMakie
+fig

3D sphere plot

julia
using Bonito, WGLMakie
 Page(exportable=true, offline=true)
 
 WGLMakie.activate!()
@@ -74,7 +74,7 @@
 zoom!(ax.scene, cameracontrols(ax.scene), 0.5)
 rotate!(ax.scene, 2.5)
 fig
- + \ No newline at end of file